手贱修改了一次电脑的配置,导致之前的 vim 重装,并丢失了相关的配置,本文记录一下重现安装并且配置的过程,作为备忘,在下次遇到相关的问题时,可以更快的恢复。
首先是安装 neovim,这里不选择 vim 的原因是听网上的推荐, neovim 更为现代化一点,所以尝试使用 neovim 替代 vim。
直接通过 brew
安装。
键入 nvim 就可以使用了,不想每次都输入 nvim,于是在 .zshrc
下添加一个 alias
这样所有的 vim 都实际上使用的是 nvim 了。
接下来就是配置 nvim.
1. 创建配置文件
nvim 的默认配置文件是 ~/.config/nvim/init.vim
, 如果目录不存在,需要新建目录, 并且创建文件
1 2
| $ mkdir -p ~/.config/nvim/ $ echo "set nu" > ~/.config/nvim/init.vim
|
添加最基本的配置,显示行号。然后就是插件的安装了
2. 配置插件
依托于丰富的插件,vim 可以获得媲美 IDE 的体验,在安装插件之前,首先需要先安装好插件管理器来帮助我们管理 vim 的插件。
首先安装 pynvim
, 来支持 python 书写的插件.
1
| pip install --user --upgrade pynvim
|
插件管理器选用 vim-plug,路径是 "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim
.
1 2
| sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
完成之后就可以开始安装所需要的插件了,编辑 ~/.config/nvim/init.vim
文件,新增如下的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-easy-align'
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
Plug 'fatih/vim-go', { 'tag': '*' }
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug '~/my-prototype-plugin'
Plug 'altercation/vim-colors-solarized'
call plug#end()
|
然后输入 PlugInstall
命令,就会自动下载安装指定的插件了.
删除插件只需要移除对应的插件声明,在运行 PlugClean
命令即可.
3. 优化配置
设置主题
1 2
| set background=dark colorscheme solarized
|
设置 NerdTree
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| map <F10> :NERDTreeToggle<CR> nmap <M-m> :NERDTreeFind<CR>
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
let NERDTreeShowHidden=0
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
let g:nerdtree_tabs_open_on_console_startup=1
let g:NERDTreeGitStatusIndicatorMapCustom = { \ "Modified" : "✹", \ "Staged" : "✚", \ "Untracked" : "✭", \ "Renamed" : "➜", \ "Unmerged" : "═", \ "Deleted" : "✖", \ "Dirty" : "✗", \ "Clean" : "✔︎", \ 'Ignored' : '☒', \ "Unknown" : "?" \ }
let g:NERDTreeGitStatusShowIgnored= 1 nmap <Leader>pwd :NERDTreeCWD<CR>
|
到这里就完成了基本的配置了,如果之后需要进一步的配置,就需要自己安装或者写一下插件,并且配置了。