editor-bootstrap / vim-bootstrap

Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.
https://vim-bootstrap.com/
MIT License
2.07k stars 211 forks source link
bootstrap dotfiles editor-bootstrap hackertoberfest hacktoberfest neovim nvim starter-template vim vim-bootstrap vim-configuration vimrc vimrc-configuration

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!

vim-bootstrap - Your configuration generator for Neovim/Vim | Product Hunt

Pre-requisites

The distribution is designed to work with Vim >= 8 and neovim.

Mac OSX

$ brew install git ctags

Linux

$ sudo apt-get install git exuberant-ctags ncurses-term curl
$ sudo dnf install ncurses-devel git ctags curl

BSD

Python bundle (optionally)

$ pip install flake8 jedi
$ pip2 install --user --upgrade neovim
$ pip3 install --user --upgrade neovim

Elm bundle (optionally)

$ 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

vim: mv ~/Downloads/generate.vim ~/.vimrc

neovim: mv ~/Downloads/generate.vim $XDG_CONFIG_HOME/nvim/init.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.

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

:black_small_square: Basic Commands Commands | Descriptions --- | --- `:cd ` | 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
:black_small_square: 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
:black_small_square: 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)
:black_small_square: 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: