jare/vim-bundle:latest
Make sure to use "Solarized Dark" compatible theme or color palette may look weird.
You can configure terminal color mode by setting TERM variable docker run ... -e TERM=<VALUE> jare/vim-bundle
By default the <VALUE>
is xterm-256color
but for the "less colorful" terminals set it to xterm
.
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:
- Create a folder with your
.vimrc
file and, if you want to add plugins, subfolder called bundle
with them.
- mount it:
docker run ... -v <***>/my-stuff:/ext/ ... jare/vim-bundle
But the best way will be extending this container.
Plugins:
- Airline Lean & mean status/tabline for vim that's light as air
- Tagbar Plugin that displays tags in a window, ordered by scope
- EasyGrep Fast and Easy Find and Replace Across Multiple Files
- Bufexplorer BufExplorer Plugin for Vim
- CtrlP Fuzzy file, buffer, mru, tag, ... finder with regexp support
- The NERD Tree A tree explorer plugin for vim
- NERDTree tabs NERDTree and tabs together in Vim, painlessly
- Syntastic Syntax checking hacks for vim
- Vim-Scala Integration of Scala into Vim - not a ton here, but useful
- Solarized Colorscheme for Vim Solarized Colorscheme
- Taglist Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)
- Vim-expand-region Visual selection of increasingly larger regions using the same key combination
- Fugitive fugitive.vim: a Git wrapper so awesome, it should be illegal
- Gitgutter Plugin which shows a git diff in the gutter (sign column) and stages/reverts hunks
- Vim-go Go development plugin for Vim
- Vim-markdown Vim Markdown runtime files
- Vim-indent-object Defines a new text object representing lines of code at the same indent level
- Vim-multiple-cursor True Sublime Text style multiple selections for Vim
- Vim-repeat Enable to repeat last change by non built-in commands
- Vim-surround surround.vim: quoting/parenthesizing made simple
- The Most Recently Used (MRU) Plugin to manage Most Recently Used (MRU) files
- YankRing Maintains a history of previous yanks, changes and deletes
- Vim-HAML Vim runtime files for Haml, Sass, and SCSS
- snipMate & UltiSnip Snippets vim-snipmate default snippets (Previously snipmate-snippets)
- Easymotion Vim motions on speed!
- Undotree The ultimate undo history visualizer for VIM
- Vim-javascript Vastly improved Javascript indentation and syntax support in Vim.
- NerdCommenter Plugin for intensely orgasmic commenting
- Tabular Script for text filtering and alignment
- DelimitMate Plugin, provides insert mode auto-completion for quotes, parens, brackets, etc.
- Vim-indent-guides A Vim plugin for visually displaying indent levels in code
- Vim-less vim syntax for LESS (dynamic CSS)
- HTML5.vim HTML5 omnicomplete and syntax
- Vim-json Syntax highlighting for JSON in Vim
- Vim-addon-mw-utils vim: interpret a file by function and cache file automatically
- Tlib Some utility functions for VIM
- Vim-tmux-navigator to navigate seamlessly between vim and tmux splits using a consistent set of hotkeys
- UltiSnips The ultimate snippet solution for Vim!
- YouCompleteMe Fast, as-you-type, fuzzy-search code completion
- Vimproc.vim Interactive command execution in Vim
- 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-bundle
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!