服务器上一般没有root权限,所以很多工具都需要手动安装。建议先看有root权限的这篇再来看这篇。

安装vim8

安装Vim-Plug

无区别,直接下载到autoload文件夹就行

1
2
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

提示补全

基本一样

  • Plug ‘ycm-core/YouCompleteMe’, { ‘do’: ‘./install.py’ }
  • Plug ‘rdnetto/YCM-Generator’, { ‘branch’: ‘stable’}
  • pip3 install jedi --user
  • git clone --recursive https://github.com/davidhalter/jedi-vim.git ~/.vim/plugged/jedi-vim
  • Plug 'davidhalter/jedi-vim'
  • 注意,有时候服务器因为git submodule的问题,启动vim时YCM会报类似no variable 'key'的错误,此时
    • 去YCM插件目录下运行python3 install.py,此时可能会提醒你git submodule的错误
    • 运行git submodule update --init --recursive下载没下载全的一些submodule
    • 再次运行python3 install.py
  • 有时候服务器上YCM-Generator因为一些原因无法正常运行,此时可以设置let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'直接用自己的设置,可以从这里下载,然后加入自己的配置

语法高亮

无区别,直接安装即可

  • Plug 'sheerun/vim-polyglot'

缩进线

无区别,直接安装即可

  • Plug 'Yggdroot/indentLine'

状态栏

无区别

  • Plug 'vim-airline/vim-airline'
  • Plug 'vim-airline/vim-airline-themes'

符号索引

  • 安装universal-ctags,祈祷依赖软件你服务器上都有,要不然每个都要手动转就麻烦了,还不如试着去安装
    • git clone https://github.com/universal-ctags/ctags.git
    • 安装
      1
      2
      3
      4
      $ ./autogen.sh
      $ ./configure --prefix=/where/you/want # defaults to /usr/local
      $ make
      $ make install # may require extra privileges depending on where to install
    • ~/.bash_profile中加入环境变量并source
  • 安装vim-gutentags
    • Plug 'ludovicchabant/vim-gutentags'

语法检查

  • 安装cppcheck
    • git clone https://github.com/danmar/cppcheck.git
    • cd cppcheck
    • make MATCHCOMPILER=yes FILESDIR=your-local-path/cppcheck CXXFLAGS="-O2 -DNDEBUG -Wall -Wno-sign-compare -Wno-unused-function"
    • 上面指定的FILESDIR好像没用,还是在当前make目录下生成cppcheck文件,./cppcheck --version验证安装, cp cppcheck -r your-local-path/cppcheck拷贝整个目录到自己的目录,记得是整个,因为还有std.cfg等文件。
    • ~/.bash_profile中加入环境变量指定cppcheck路径
    • source ~/.bash_profile
    • 随便写个错误的c++语法验证
  • 安装pylint
    • pip3 install pylint --user
  • 安装ALE
    • Plug 'dense-analysis/ale'
    • 配置中加入一句let g:airline#extensions#ale#enabled = 1让airline来处理ALE的状态栏

搜索文件

无区别,直接安装即可Plug 'wsdjeg/FlyGrep.vim'

也可以用fzf

  • Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
  • Plug 'junegunn/fzf.vim'

源文件头文件切换

无区别, 直接安装Plug 'tpope/vim-projectionist'

函数列表

  • Plug 'Yggdroot/LeaderF', { 'do': './install.sh' }
  • 注意LeaderfFunction需要ctags,所以要先安装ctags

折叠

无区别, 直接安装Plug 'tmhedberg/SimpylFold'

文件比较

无区别, 直接安装Plug 'mhinz/vim-signify'

目录

无区别,直接安装Plug 'tpope/vim-vinegar'

AsyncRun

  • Plug 'skywind3000/asyncrun.vim'
  • :AsyncRun make
  • :AsyncRun! grep -R <cword> . 感叹号表示不打开quickfix窗口, 表示当前cursor下的单词
  • :AsyncStop[!] 包含感叹号会signal KILL

快捷键映射

有时候,服务器上的快捷键映射会被其他软件劫持,比如tmux,你也没有权限改。此时你只能去选择一些没被劫持的键,或者你每次vim启动后重新映射:so myvimrc(我的机器上可以)。设置autocmd在我的机器上没用。可以定制一个大概率不会被劫持的快捷键做source,比如nnoremap bsv :source $MYVIMRC