Public | Automated Build

Last pushed: 7 months ago
Short Description
Minified bundle of the awesome Vim plugins
Full Description

jare/vim-bundle:latest

For the more "IDE like experience" try jare/drop-in

Or Vim/Emacs hybrid jare/spacemacs

Based on "The Ultimate vimrc"

The best way to use:

Make an alias:
alias edit='docker run -ti --rm -v $(pwd):/home/developer/workspace jare/vim-bundle'
Have fun! edit some.file
Also You can use this one for getting updates: alias edit_update="docker pull jare/vim-bundle:latest"

How to disable some plugins:

docker run ... -e DISABLE="'vim-airline', 'nerdtree'" ... jare/vim-bundle

How to add your plugins and .vimrc:
  1. Create a folder with your .vimrc file and, if you want to add plugins, subfolder called bundle with them.
  2. mount it: docker run ... -v <***>/my-stuff:/ext/ ... jare/vim-bundle
    But the best we will be extending this container.
Plugins:
  1. Airline Lean & mean status/tabline for vim that's light as air
  2. Tagbar Plugin that displays tags in a window, ordered by scope
  3. EasyGrep Fast and Easy Find and Replace Across Multiple Files
  4. Bufexplorer BufExplorer Plugin for Vim
  5. CtrlP Fuzzy file, buffer, mru, tag, ... finder with regexp support
  6. The NERD Tree A tree explorer plugin for vim
  7. NERDTree tabs NERDTree and tabs together in Vim, painlessly
  8. Syntastic Syntax checking hacks for vim
  9. Vim-Scala Integration of Scala into Vim - not a ton here, but useful
  10. Solarized Colorscheme for Vim Solarized Colorscheme
  11. Taglist Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)
  12. Vim-expand-region Visual selection of increasingly larger regions using the same key combination
  13. Fugitive fugitive.vim: a Git wrapper so awesome, it should be illegal
  14. Gitgutter Plugin which shows a git diff in the gutter (sign column) and stages/reverts hunks
  15. Vim-go Go development plugin for Vim
  16. Vim-markdown Vim Markdown runtime files
  17. Vim-indent-object Defines a new text object representing lines of code at the same indent level
  18. Vim-multiple-cursor True Sublime Text style multiple selections for Vim
  19. Vim-repeat Enable to repeat last change by non built-in commands
  20. Vim-surround surround.vim: quoting/parenthesizing made simple
  21. The Most Recently Used (MRU) Plugin to manage Most Recently Used (MRU) files
  22. YankRing Maintains a history of previous yanks, changes and deletes
  23. Vim-HAML Vim runtime files for Haml, Sass, and SCSS
  24. snipMate & UltiSnip Snippets vim-snipmate default snippets (Previously snipmate-snippets)
  25. Easymotion Vim motions on speed!
  26. Undotree The ultimate undo history visualizer for VIM
  27. Vim-javascript Vastly improved Javascript indentation and syntax support in Vim.
  28. NerdCommenter Plugin for intensely orgasmic commenting
  29. Tabular Script for text filtering and alignment
  30. DelimitMate Plugin, provides insert mode auto-completion for quotes, parens, brackets, etc.
  31. Vim-indent-guides A Vim plugin for visually displaying indent levels in code
  32. Vim-less vim syntax for LESS (dynamic CSS)
  33. HTML5.vim HTML5 omnicomplete and syntax
  34. Vim-json Syntax highlighting for JSON in Vim
  35. Vim-addon-mw-utils vim: interpret a file by function and cache file automatically
  36. Tlib Some utility functions for VIM
  37. Vim-tmux-navigator to navigate seamlessly between vim and tmux splits using a consistent set of hotkeys
  38. UltiSnips The ultimate snippet solution for Vim!
  39. YouCompleteMe Fast, as-you-type, fuzzy-search code completion
  40. Vimproc.vim Interactive command execution in Vim
  41. Dockerfile.vim syntax file for Docker's Dockerfile and snippets for snipMate

.vimrc

Working with Golang:
  • For the full Golang support you need to mount /usr/lib/go. For example, run jare/go-tools in the detached mode docker create -v /usr/lib/go --name vim-go-tools jare/go-tools /bin/true and mount its volumes like this docker run ... --volumes-from vim-go-tools ... jare/vim-bundle or add it to the alias alias edit="docker run -ti --rm --volumes-from go-tools -v $(pwd):/home/developer/workspace jare/vim-bundle"
  • If you want to use a go-tool , but vim-go doesn't provide a shorthand - you can simply type, for example, :!gofmt % and it will output formatted source of the current buffers(%:p absolute file path, %:h head of the file name and %:p:h is the current directory). If you want to overwrite - use :% ! gofmt % The gofmt tool used as an example, actually, it covered in vim-go.
Alternatively, you can put something like this into .bashrc to automatically bootstrap all containers:
#docker vim-bunlde
function ed() {
  local dtc_id=$(docker ps -a -q --filter 'name=vim-go-tools')
  if [[ -z "${dtc_id}" ]]; then
   echo 'vim-go-tools container not found. Creating...'
   docker create -v '/usr/lib/go' --name 'vim-go-tools' \
     'jare/go-tools' '/bin/true'
   echo 'Done!'
  fi
  echo 'Starting Vim'
  docker run -ti --rm -p 8080:8080 --volumes-from 'vim-go-tools' \
    -v $('pwd'):/home/developer/workspace 'jare/vim-bundle' "${@}"
}
export -f ed
Keep in mind:
  • With something like GNOME terminal You should be able to:
    • drag and drop text into the Vim.
    • use mouse right button menu by holding Shift.
  • <Leader> mapped to ,. I use the basic mappings from the great amix .vimrc
  • You can set the user with the ENV variables in the Dockerfile
  • If Vim or Powerline doesn't look right in the tmux try tmux -2
  • If the Golang auto-complete doesn't work try go install package
  • Leave a comment if you found a bug or if you have a suggestion
  • Any contribution are greatly appreciated as well as new runtime containers!
Docker Pull Command
Owner
jare
Source Repository

Comments (11)
jare
10 months ago

@varung jare/drop-in runs tmux and has all the jare/vim-bundle stuff in it. But I never tried to run one of my vim containers inside external tmux.

varung
10 months ago

I want to run tmux inside, and then vim inside one of those, rather than only vim. Can I do this without modifying your entry point?

jare
a year ago

@jesseolsen fixed. Thx.

jesseolsen
a year ago

Use single quotes instead of double quotes so that $(pwd) doesn't get expanded until you run the edit alias: alias edit='docker run -ti --rm -v $(pwd):/home/developer/workspace jare/vim-bundle' instead of alias edit="docker run -ti --rm -v $(pwd):/home/developer/workspace jare/vim-bundle"

fesnavarro
a year ago

Some skill to solve buffer on workspace directory ? If I open /home/user/.bashrc close and open /root/.bashrc it replace the root files with the previous file. Any trick ?

yongbam
2 years ago

Nice :))))

jare
2 years ago

@any35 Added new stuff to the jare/go-tools container

jare
2 years ago

@chunjiang Hi! Use jare/drop-in - it has tmux or even jare/spacemacs - the best of both worlds!

chunjiang
2 years ago

hi nice to see this. I used the simplest docker machine to lunch your image. but I only see one vim window. anything to suggest? thanks a lot.

jare
2 years ago

@any35 I added new stuff and elaborated some aspects of the go-tools integration.
Do you have any suggestions? What should I add?