My vim related articles
- Mac Vim Usage – Basics
- Mac Vim Usage – Advanced
- Mac Vim Usage – Customization
- Install vim on macOS High Sierra using source code
We have learned about vim basics (Mac Vim Usage – Basics) and some advanced usages (Mac Vim Usage – Advanced). Now let’s apply some plugins and configuration to make our vim be more beautiful and powerful.
Currently there are 4 popular vim plugin managers to install plugins. They are
You can choose anyone that you want. I will choose pathogen as my plugin manager.
Follow the installation guide from here: https://github.com/tpope/vim-pathogen .
mkdir -p ~/.vim/autoload ~/.vim/bundle && \ curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
Create .vimrc file and .vim directory under home directory, e.g. ~/
This will be the place where vim customisation settings is. And also, you need to configure your plugin manager function call inside this file. For example, we use pathogen as plugins manager. Then add below line on the top of this file.
execute pathogen#infect() syntax on filetype plugin indent on
There are quite a lot of plugins available online. For my personal experience, I only list the ones that I think is awesome.
Think of sensible.vim as one step above
'nocompatible' mode: a universal set of defaults that (hopefully) everyone can agree on.
cd ~/.vim/bundle && \ git clone https://github.com/tpope/vim-sensible.git
For more details, please check: https://github.com/tpope/vim-sensible
NERDTree is nice plugin for your vim to have file tree on the left panel. This is very helpful and intuitive when you are working with a bunch of files under some a root directory. The
NERDTreeToggle command used most frequently is to toggle the file tree explorer. Use below command to quickly install this plugin:
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
For more details, please check: https://github.com/scrooloose/nerdtree
Something not perfect for this plugin is that when you press enter on a directory, it will also open a new empty which does not make sense. By installing this small plugin will help solve this problem. Use below command to quickly install this plugin:
cd ~/.vim/bundle && git clone https://github.com/Nopik/vim-nerdtree-direnter.git
For more details, please check: https://github.com/Nopik/vim-nerdtree-direnter
This is a plugin giving you a better outlooking for your status bar, where the basic information of the current file will be displayed, e.g. vim mode, character set, file name etc. Having this plugin will make your vim be more like a GUI application. Use below command to quickly install this plugin:
git clone https://github.com/itchyny/lightline.vim ~/.vim/bundle/lightline.vim
For more details, please check: https://github.com/itchyny/lightline.vim
Configure tab and indent
:set expandtab :set shiftwidth=4 :set autoindent :set smartindent
:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣ ":set list
Display line numbers
" :set relativenumber! :set number
Set keymaps for toggling directory tree panel on left
" key maps let NERDTreeMapOpenInTab='<ENTER>' map <C-o> :NERDTreeToggle<CR>
After setting up above plugins and configuring the .vimrc file. You vim should look like below screenshot. Looks cool! Isn’t it? 🙂
ww switch between left tree panel and file content
:set list or
:set nolist Enable/disable whitespace display
:set number or
:set nonumber Enable/disable display line number
:set relativenumber or
:set norelativenumber Enable/disable display relative line number
:NERDTreeToggle toggle directory tree on the left panel. This command actually has been configured as a shortcut inside .vimrc file by mapping it to
o. Typing this command and press this shortcut will have the same effect.