vim-bootstrap
Vim Bootstrap provides a simple method for generating .vimrc configuration files for Vim, NeoVim, NeoVim-Qt, MacVim and GVim.
Want to generate your vim/neovim file? Access here!
Pre-requisites
The distribution is designed to work with Vim >= 8 and neovim.
Mac OSX
$ brew install git ctags
Linux
- Ubuntu\Debian
$ sudo apt-get install git exuberant-ctags ncurses-term curl
- Gentoo
$ sudo emerge --ask dev-util/ctags sys-libs/ncurses dev-vcs/git dev-python/pyflakes net-misc/curl
- Arch Linux via pacman
$ sudo pacman -S git ctags ncurses curl
- Fedora
$ sudo dnf install ncurses-devel git ctags curl
- openSUSE
$ sudo zypper in ncurses-devel git ctags curl
BSD
- FreeBSD via packages collection
# pkg install git p5-Parse-ExuberantCTags ncurses curl
Python bundle (optionally)
- pyflakes
- jedi
- neovim (neovim only)
$ pip install flake8 jedi
$ pip2 install --user --upgrade neovim
$ pip3 install --user --upgrade neovim
Elm bundle (optionally)
- elm-test
- elm-oracle
- elm-format
$ npm install -g elm-test
$ npm install -g elm-oracle
$ npm install -g elm-format@exp
Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Installation
- Download your own vimrc file at https://vim-bootstrap.com
- Put your vimrc file into home folder or
$XDG_CONFIG_HOME/nvim/init.vim
if you use NeoVim
vim: mv ~/Downloads/generate.vim ~/.vimrc
neovim: mv ~/Downloads/generate.vim $XDG_CONFIG_HOME/nvim/init.vim
- Execute ViM and it will install plugins automatically
vim
Fast-installation by URL parameters
Vim-bootstrap generator can accept URL params via request as example below.
curl 'https://vim-bootstrap.com/generate.vim' --data 'editor=vim&frameworks=vuejs&langs=javascript&langs=php&langs=html&langs=ruby' > ~/.vimrc
Updating to the latest version
:VimBootstrapUpdate (thanks to @sherzberg)
:PlugInstall
Offline usage
You can run vim-bootstrap Go package to generate a vimrc file, just download it:
go get github.com/editor-bootstrap/vim-bootstrap
cd $GOPATH/src/github.com/editor-bootstrap/vim-bootstrap
go build
Inside vim-bootstrap folder cd vim-bootstrap
use vim-bootstrap
module (file) like this example:
./vim-bootstrap -langs=python,lua,ruby,javascript,haskell -frameworks vuejs -editor=vim > ~/.vimrc
For more instructions run vim-bootstrap -h
openSUSE repo
vim-bootstrap is also available on openSUSE on both Leap 42.2/42.3 and Tumbleweed. Leap versions must add devel:tools repository before, while Tumbleweed users should have vim-bootstrap in the default repository without the need to add any extra repository.
- Leap 42.2
$ sudo zypper ar -f http://download.opensuse.org/repositories/devel:/tools/openSUSE_Leap_42.2/ devel:tools
$ sudo zypper ref
$ sudo zypper in vim-bootstrap
- Leap 42.3
$ sudo zypper ar -f http://download.opensuse.org/repositories/devel:/tools/openSUSE_Leap_42.3/ devel:tools
$ sudo zypper ref
$ sudo zypper in vim-bootstrap
- Tumbleweed
$ sudo zypper ref
$ sudo zypper in vim-bootstrap
Adding a new Theme
Create a folder inside generate/vim_template/themes/
with the name of your theme.
mkdir generate/vim_template/themes/my_theme
Inside this folder, add a file called mytheme.vim
with colorscheme instruction (optionally other configs).
echo "colorscheme mytheme" > generate/vim_template/themes/my_theme/mytheme.vim
Add a .bundle
extension file with instructions of how to install theme.
echo "Plug username/mytheme" > generate/vim_template/themes/my_theme/mytheme.vim.bundle
Submit a PR and when approved new theme was added.
Customization
It's highly recommended to add customizations in a separate file. This way, you can maintain the original vim-bootstrap generated vimrc file and subsequent updates.
For Vim users, the files available for customization are ~/.vimrc.local
and ~/.vimrc.local.bundles
. The former handles general configuration while the latter handles external Vim plugins through vim-plug
.
NeoVim users can also customize their configuration by using $XDG_CONFIG_HOME/nvim/local_init.vim
and $XDG_CONFIG_HOME/nvim/local_bundles.vim
.
Commands
▪️ Basic Commands
Commands | Descriptions |
---|---|
:cd <path> |
Open path /path |
Ctrlw+hjkl | Navigate via split panels |
Ctrlww | Alternative navigate vim split panels |
,. | Set path working directory |
,w or ,x | Next buffer navigate |
,q or ,z | previous buffer navigate |
shiftt | Create a tab |
tab | next tab navigate |
shifttab | previous tab navigate |
,e | Find and open files |
,b | Find file on buffer (open file) |
,c | Close active buffer (close file) |
F2 | Open tree navigate in actual opened file |
F3 | Open/Close tree navigate files |
F4 | List all class and method, support for python, go, lua, ruby and php |
,v | Split vertical |
,h | Split horizontal |
,f | Search in the project |
,o | Open github file/line (website), if used git in github |
,sh | Open shell.vim terminal inside Vim or NeoVim built-in terminal |
,ga | Execute git add on current file |
,gc | git commit (splits window to write commit message) |
,gsh | git push |
,gll | git pull |
,gs | git status |
,gb | git blame |
,gd | git diff |
,gr | git remove |
,so | Open Session |
,ss | Save Session |
,sd | Delete Session |
,sc | Close Session |
> | indent to right |
< | indent to left |
gc | Comment or uncomment lines that {motion} moves over |
YY | Copy to clipboard |
,p | Paste |
Ctrly + , | Activate Emmet plugin |
Ctrlh | Does a fuzzy search in your command mode history |
▪️ Python hotkeys
Commands | Descriptions |
---|---|
SHIFT+k |
Open documentation |
Control+Space |
Autocomplete |
,d |
Go to the Class/Method definition |
,r |
Rename object definition |
,n |
Show where command is usage |
▪️ Ruby hotkeys
Commands | Descriptions |
---|---|
,a |
Run all specs |
,l |
Run last spec |
,t |
Run current spec |
,rap |
Add Parameter |
,rcpc |
Inline Temp |
,rel |
Convert Post Conditional |
,rec |
Extract Constant (visual selection) |
,rec |
Extract to Let (Rspec) |
,relv |
Extract Local Variable (visual selection) |
,rrlv |
Rename Local Variable (visual selection/variable under the cursor) |
,rriv |
Rename Instance Variable (visual selection) |
,rem |
Extract Method (visual selection) |
▪️ Php hotkeys
Commands | Descriptions |
---|---|
,u |
Include use statement |
,mm |
Invoke the context menu |
,nn |
Invoke the navigation menu |
,oo |
Goto definition |
,oh |
Goto definition on horizontal split |
,ov |
Goto definition on vertical split |
,ot |
Goto definition on tab |
,K |
Show brief information about the symbol under the cursor |
,tt |
Transform the classes in the current file |
,cc |
Generate a new class (replacing the current file) |
,ee |
Extract expression (normal mode) |
,ee |
Extract expression (visual selection) |
,em |
Extract method (visual selection) |
,pcd |
cs-fixer fix directory |
,pcf |
cs-fixer fix file |
Learn Vim
Visit the following sites to learn more about Vim: