查看原文
其他

工欲善其事必先利其器--开发者利器vim插件篇

biocoder BT开发者 2022-09-20

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-mkdpmarkdown-preview.vim 都是为了用浏览器浏览markdown 文件才装的。vim-rmarkdown 配合vim-pandoc-syntaxvim-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 中找相应的配置方法。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存