工欲善其事必先利其器--开发者利器vim插件篇
1. vim
常用插件
我看了下官网上目前的插件有5千多个,每个都看明显不现实也没有那个必要,所以根据我日常的工作搬砖需求,我下了一些插件来用,主要用的插件有Vundle.vim
,YouCompleteMe
, nerdtree
, Nvim-R
, vim-markdown
, mathjax-support-for-mkdp
, markdown-preview.vim
,vim-rmarkdown
, vim-pandoc-syntax
, vim-pandoc
。其中Vundle.vim
是插件管理工具,就是很多插件可以用这个安装,YouCompleteMe
(号称最难装的插件)是自动补全的插件,nerdtree
是一个文件系统管理工具,可以让你的终端看起来就是个IDE
,Nvim-R
是一个R
的vim
版IDE
,估计很多人都会选择Rstudio
,用这个插件主要是后面的rmarkdown
会有用到。vim-markdown
从名字上看就是markdown
的编辑工具。mathjax-support-for-mkdp
与markdown-preview.vim
都是为了用浏览器浏览markdown
文件才装的。vim-rmarkdown
配合vim-pandoc-syntax
和vim-pandoc
是为了编辑rmarkdown
文件。
2. 插件安装
首先先安装下Vundle.vim
插件,如果是多人要同时使用的话建议安装在一个公共的固定位置下,不然默认是安装在用户$HOME
目录下的.vim/bundle
中。这里我选择安装在/opt/vimbundle/bundle
下,你们可以根据自己情况选择安装的路径。
# 在/opt/vimbundle/bundle文件夹下clone.
git clone https://github.com/VundleVim/Vundle.vim.git
接着设置好~/.vimrc
文件,配置如下。
" Vundle.vim bundle conf
set nocompatible
filetype off
set rtp+=/opt/vimbundle/bundle/Vundle.vim
call vundle#begin("/opt/vimbundle/bundle")
Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'jalvesaq/Nvim-R'
Plugin 'plasticboy/vim-markdown'
Plugin 'iamcco/mathjax-support-for-mkdp'
Plugin 'iamcco/markdown-preview.vim'
Plugin 'vim-pandoc/vim-rmarkdown'
Plugin 'vim-pandoc/vim-pandoc-syntax'
Plugin 'vim-pandoc/vim-pandoc'
Plugin 'flazz/vim-colorschemes'
call vundle#end()
filetype plugin indent on
然后vi
打开vim
输入:PluginInstall
(注意你的左下角是不是有这个命令,也是可以用tab键补全的)进行安装。细心观察的同学可能会发现没有YouCompleteMe
插件,前面说了YouCompleteMe
是最难装的插件,没有之一。所以拿出来另外讲。
2.1 YouCompleteMe
插件安装
2.1.1 vim
版本确认
首先你得先确认下你的vim
版本是多少,至少得保证8
以上的版本,没有的话就得去升级了。
vim --version
## VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Aug 17 2018 15:22:29)
## Included patches: 1-503, 505-680, 682-1283
## Compiled by root@apple.com
## Normal version without GUI. Features included (+) or not (-):
## +acl +file_in_path -mouse_sgr +tag_old_static
## -arabic +find_in_path -mouse_sysmouse -tag_any_white
## +autocmd +float -mouse_urxvt -tcl
## -balloon_eval +folding +mouse_xterm -termguicolors
## -browse -footer +multi_byte -terminal
## +builtin_terms +fork() +multi_lang +terminfo
## +byte_offset -gettext -mzscheme +termresponse
## +channel -hangul_input +netbeans_intg +textobjects
## +cindent +iconv +num64 +timers
## -clientserver +insert_expand +packages +title
## -clipboard +job +path_extra -toolbar
## +cmdline_compl +jumplist -perl +user_commands
## +cmdline_hist -keymap +persistent_undo +vertsplit
## +cmdline_info +lambda +postscript +virtualedit
## +comments -langmap +printer +visual
## -conceal +libcall -profile +visualextra
## +cryptv +linebreak +python/dyn +viminfo
## +cscope +lispindent -python3 +vreplace
## +cursorbind +listcmds +quickfix +wildignore
## +cursorshape +localmap +reltime +wildmenu
## +dialog_con -lua -rightleft +windows
## +diff +menu +ruby/dyn +writebackup
## +digraphs +mksession +scrollbind -X11
## -dnd +modify_fname +signs -xfontset
## -ebcdic +mouse +smartindent -xim
## -emacs_tags -mouseshape +startuptime -xpm
## +eval -mouse_dec +statusline -xsmp
## +ex_extra -mouse_gpm -sun_workshop -xterm_clipboard
## +extra_search -mouse_jsbterm +syntax -xterm_save
## -farsi -mouse_netterm +tag_binary
## system vimrc file: "$VIM/vimrc"
## user vimrc file: "$HOME/.vimrc"
## 2nd user vimrc file: "~/.vim/vimrc"
## user exrc file: "$HOME/.exrc"
## defaults file: "$VIMRUNTIME/defaults.vim"
## fall-back for $VIM: "/usr/share/vim"
## Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DMACOS_X_UNIX -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
## Linking: gcc -L/usr/local/lib -o vim -lm -lncurses -liconv -framework Cocoa
主要看下是否支持python
或者python3
,因为用后的编译需要用到,有+号表示支持,我这里支持python
,不支持python3
。
2.1.2 依赖包安装
确保环境中有cmake
, python-dev
, python3-dev
,没有的话需要事先安装
sudo apt-get install cmake python-dev python3-dev clang
如果不想要YouCompleteMe
支持c族语言的自动补全,也是可以的,也不需要安装clang
轻量级编译器,之前上面的clang
去掉就可以了。
2.1.3 YouCompleteMe
及其依赖包下载
#在/opt/vimbundle/bundle/文件夹下
git clone https://github.com/ycm-core/YouCompleteMe.git
cd YouCompleteMe
# 下载依赖库,这一步与网速有关,可能会断掉报错,重新运行可以了。
git submodule update --init --recursive
如果你没有翻墙的话,中间估计会有一个依赖包下载不了。可以通过下面解决。
cd /opt/vimbundle/bundle/YouCompleteMe/third_party/ycmd/third_party/go/src/golang.org/x
# 如果该文件夹下有空的tools,则删掉,然后用下面的代码下载安装。
git clone https://github.com/golang/tools.git
2.1.4 编译YouCompleteMe
下载好YouCompleteMe
及其依赖包后,打开vi
发现仍然会报错,是因为其核心包ycmd
还没有被编译好,需要我们手动编译。
cd /opt/vimbundle/bundle/YouCompleteMe/
# 具体是支持哪个python版本看自己情况,我这边指支持python,所以用python编译。要不要支持c语言也看自己需要,不需要的话就去掉`--clang-completer`。
python install.py --clang-completer
2.1.5 可能的报错
如果编译好ycmd_core
后仍然报错,那很可能就是一些python module
没有安装,通过下面方法检测出来再安装即可。
cd /opt/vimbundle/bundle/YouCompleteMe/third_party/ycmd/
cp ycmd/default_settings.json .
# 通过下面查看是不是出现python的某些模块没有安装,如果是,那就安装上就好了。
python ycmd --options_file default_settings.json
3. 插件配置
具体的插件配置我就不一一详细说了,感兴趣的同学可以点击阅读原文
查看我个人的配置文件。可以结合自身需要自行去对应的插件的github
中找相应的配置方法。