docs/vim8.md

84 lines
1.8 KiB
Markdown

# Vim
This document describes my personal preference for Vim 8 setup.
## Compile Vim 8 from source and install in home directory
```bsh
# install required dependencies
sudo apt install libncurses5-dev python3-dev git
# clone vim from github repositories
git clone https://github.com/vim/vim.git
# build vim 8
cd vim
./configure --with-features=huge --enable-multibyte --enable-python3interp=yes --prefix=$HOME/.local
make
make install
# add $HOME/.local bin to PATH to prioritize Vim8
echo "export PATH=\$HOME/.local/bin:\$PATH" >> $HOME/.bashrc
```
## Setup plugins using vundle
```bash
# clone from github repositories
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
# create .vimrc configuration file in home
cd $HOME
cat << EOF > .vimrc
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'Shougo/Denite.nvim'
Plugin 'Valloric/YouCompleteMe'
call vundle#end()
filetype plugin indent on
set backspace=indent,eol,start
set tabstop=4 shiftwidth=4 expandtab
set number numberwidth=4
set splitbelow
set encoding=utf-8 fileencoding=utf-8
set mouse=a
syntax on
EOF
# install plugins
vim +PluginInstall +qall
```
# Additional config for auto-completion using YouCompleteMe
```bash
# install compile dependencies
sudo apt install build-essential cmake python-dev
# clone from github repositories and install python, go, and javascript completion
cd $HOME/.vim/bundle/YouCompleteMe
./install.py --go-completer --js-completer
# for javascript autocompletion
cd $HOME/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/tern_runtime
npm install --production
cat << EOF > $HOME/.tern-config
{
"libs" : [
"browser"
]
"plugins": {
"node": {}
}
}
EOF
```