Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/editor-bootstrap/vim-bootstrap

Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.
https://github.com/editor-bootstrap/vim-bootstrap

bootstrap dotfiles editor-bootstrap hackertoberfest hacktoberfest neovim nvim starter-template vim vim-bootstrap vim-configuration vimrc vimrc-configuration

Last synced: 2 days ago
JSON representation

Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.

Awesome Lists containing this project

README

        

# 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](https://vim-bootstrap.com/)!

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

* 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

* [rls](https://github.com/rust-lang/rls#setup)

```
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

: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:

* [Learn Vim Progressively](https://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/)
* [Vim Adventures](https://vim-adventures.com/)
* [Vimcasts](http://vimcasts.org)
* [Byte of Vim](https://vim.swaroopch.com/)
* [MinuteVim Tricks](https://www.youtube.com/user/MinuteVimTricks)
* [Join the Church of Vim, and you too can be a saint!](https://www.avelino.run/church-vim)
* [Vim para noobs (in portuguese)](https://woliveiras.com.br/vimparanoobs/)
* [Vimbook (in portuguese)](https://cassiobotaro.gitbooks.io/vimbook/content/)