VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)

1.VIM 插件离线安装与配置

  • 看了很多vim的安装贴(这里特别感谢知乎韦易笑大部分文献都参考于他),基本都是基于github或者网络才能安装。对于一些离线安装的同学非常不友好,小白就更别说了。
  • 本贴将提供安装包和安装步骤,以及配置尽量手把手的教大家安装vim插件。
  • 本帖提供git(白嫖方式)和安装包(投币方式)安装方式

环境:Ubuntu 16.04
VIM:vim 8.x

2.vim8安装

VIM:vim 8.x

2.1.查看vim版本

:~# vim --version

VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)_第1张图片

  • 版本必须大于 vim 8.0(因为我曾经apt update过,不过我经常用的版本是8.2),小于这个版本有些插件可能不兼容,特别是如果需要安装YouCompleteMe,vim需要7.4.**(具体是几忘了)以上,并支持python2.6 or 3.7以上,索性直接安装vim8.2。
  • 离线下载方式:vim-8.2安装包,离线全安装包

2.2.vim下载

  • git下载方式:
git clone https://github.com/vim/vim.git
  • apt方式下载:
sudo add-apt-repository ppa:jonathonf/vim 
sudo apt update 
sudo apt install vim 

2.3 vim安装步骤

  • 解压vim-plugin
cd ~ && unzip ~/vim_plugin.zip
unzip ~/vim_plugin/vim_plugin.zip
  • 解压vim82zip
unzip ~/vim_plugin/vim82.zip
  • 解压vim-8.2.tar.bz2:
tar   -jxvf    vim-8.2.tar.bz2
  • 根据自己习惯新建一个文件夹放vim82源码:
mkdir -p  ~/.code_vim82
  • 配置环境以及指定安装目录,注意这里不能用相对路径不然会报错。
cd ./vim82
make distclean
//python配置
./configure --prefix=/home/weidonghui/.code_vim82 \
--enable-pythoninterp=yes \
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu

//python3配置
./configure --enable-multibyte \
--enable-python3interp=yes \
--with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu \
--enable-perlinterp=yes \
--with-python3-command=/usr/bin/python3 \
--prefix=/home/weidonghui/.code_vim82
  • 如果出现以下报错说明缺少ncurses库请,sudo apt-get install libncurses5-dev安装。
checking for tgetent()... configure: error: NOT FOUND!
      You need to install a terminal library; for example ncurses.
      Or specify the name of the library with --with-tlib.

这个安装包已经把决大多数依赖包对放在里面了。但是不同的环境可能依赖会不一样,请认真的查看报错,百度解决。

  • Python安装配置情况
    if compile and link flags for Python are sane... yes 出现这句话证明支持python,没有这句话,则安装出来的vim不支持python。
    VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)_第2张图片

  • 编译与安装

make
sudo make install
  • 这个时候其实已经可以用了可以通过~/.code_vim82/bin/vim验证
    VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)_第3张图片

  • 配置环境变量,我们直接vim --version发现还是自己原来的vim,这是没有配置环境变量导致的。这里给出一种解决办法。适用于非root用户和root用户。在~/.bashrc中添加vim的环境路径,注意必须添加到$PATH的前面,这样打开vim就优先找自己安装的版本。注意:关闭窗口在打开才有效

vim ~/.bashrc
export PATH="/home/weidonghui/.code_vim82/bin/:$PATH"
  • 这个时候你会发现vi和vim打开的版本可能不一样我们可以利用软连接将vi和vim开的版本变成一致的。注意:关闭窗口在打开才有效
cd ~/.code_vim82/bin
ln -s vim vi

3. .vimrc通用配置

"通用配置
"通用配置
syntax on  " 开启语法高亮
colorscheme peachpuff "vim配置方案
set number  " 显示行号
set hls "搜索时高亮显示被找到的文本
set scrolloff=3 " 上下可视行数
set incsearch   " 搜索时高亮显示被找到的文本
set ignorecase "搜索忽略大小写
set enc=utf-8  "编码设置
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 "编码自动识别
set mouse=n "鼠标普通模式
" set cursorline "选中行出现下划线
map qq :qa!<CR> "多窗口不保存关闭
map ww :wqa!<CR> "多窗口保存关闭
"vim自动打开跳到上次的光标位置
if has("autocmd")
        au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
set nocompatible  "设置backspace的工作方式
set backspace=indent,eol,start " 设置backspace的工作方式
map <F5> :set listchars=tab:>-,trail:-<CR> :set list<CR> " 显示空格和tab
map <F6> :set list!<CR> " 取消显示空格和tab

4.插件管理(vim-plug)

4.1.插件下载

  • git下载方式
git clone https://github.com/junegunn/vim-plug.git ~/.vim/autoload
  • 离线的同学点这里vim-plug安装包

4.2.插件安装步骤

4.2.1 解压vim-plug-master.zip

cd ~ && unzip ~/vim_plugin.zip
unzip ~/vim_plugin/vim-plug-master.zip

4.2.2 将下载好的plug.vim放到autoload

mkdir -p ~/.vim/autoload
cp -rf vim-plug-master/plug.vim ~/.vim/autoload/

4.2.3 在.vimrc中添加配置

call plug#begin('~/.vim/plugged')
"plug插件管理,全异步安装,不仅支持在线安装,更支持下载好的离线包直接安装。
"且安装完后,可以注释掉相关指令很方便的关闭对应插件。下面基本都是离线安装的例子
"Plug 'vim-scripts/vim-gutentags'
call plug#end()

4.2.4 打开vim在命令行模式下输入:PluginInstall(离线的同学可以忽略,不需要管)

VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)_第4张图片

5.标签列表插件(taglist)

taglist 依赖ctags。离线的同学搜一下自行安装。

sudo apt-get install ctags

5.1.效果预览

  • 优点可以在列表中看到函数定义,函数声明,全局变量,宏定义。
  • 可以通过鼠标或者ctrl +ww跳转到Tlist列表选择函数跳转到该函数定义。

5.2.安装步骤

5.2.1 下载

  • git下载方式
git clone https://github.com/vim-scripts/taglist.vim
  • 安装包方式(taglist安装包)

5.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/taglist.vim.zip

5.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/taglist.vim' "Tlist标签列表插件
call plug#end()

5.2.3 添加vimrc配置

"Tlist插件配置
let Tlist_Show_One_File           = 1 " 只显示当前文件的tags
"let Tlist_Auto_Open			  = 1 " 打开vim自动打开Tlist
"let Tlist_GainFocus_On_ToggleOpen = 1 " 打开Tlist窗口时,光标跳到list窗口
let Tlist_Exit_OnlyWindow         = 1 " 如果Tlist窗口是最后一个窗口则退出Vim
let Tlist_Use_Left_Window         = 1 " 在左侧窗口中显示
let Tlist_File_Fold_Auto_Close    = 1 " 自动折叠
let Tlist_Auto_Update             = 1 " 自动更新
" <F4> 打开 Tlist 窗口,在左侧栏显示
map <F4> :TlistToggle<CR>

6.快速注释插件(nerdcommenter)

  • .c,Makefile,vimrc等都有效

6.1 效果预览

6.2 安装步骤

6.2.1 下载

  • git下载方式
git clone https://github.com/preservim/nerdcommenter
  • (nerdcommenter)安装包下载

6.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/nerdcommenter-master.zip

6.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/nerdcommenter-master' "nerdcommenter快速注释插件
call plug#end()

6.2.4 添加vimrc配置

"nerdcommenter插件快速注释
let g:NERDSpaceDelims            = 1      " 在注释符号后加一个空格
let g:NERDCompactSexyComs        = 1      " 紧凑排布多行注释
let g:NERDDefaultAlign           = 'left' " 逐行注释左对齐
let g:NERDAltDelims_java         = 1      " JAVA 语言使用默认的注释符号
let g:NERDCustomDelimiters       = {'c': {'left': '/*', 'right': '*/'}} " C 语言注释符号
let g:NERDCommentEmptyLines      = 1      " 允许空行注释
let g:NERDTrimTrailingWhitespace = 1      " 取消注释时删除行尾空格
let g:NERDToggleCheckAllLines    = 1      " 检查选中的行操作是否成功
map <F12> <plug>NERDCommenterSexy         " 选中注释
map <c-F12> <plug>NERDCommenterUncomment  " 选中取消注释

7. 状态栏(airline)

  • 显示当前文件名及路径,总行数,当前光标行数等
  • 多文件间切换

7.1 效果预览

VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)_第5张图片

  • 文件切换注意看上半部分

7.2 安装步骤

7.2.1 下载

  • git下载方式
git clone https://github.com/vim-airline/vim-airline.git
  • (airline)安装包下载

7.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/vim-airline-master.zip

7.2.4 添加环境变量

export TERM=xterm-256color

7.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/vim-airline-master' "airline状态栏
call plug#end()

7.2.4 添加vimrc配置

"airline状态栏配置
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = '|'
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#formatter = 'unique_tail'
map <c-Left> :bp<CR>    " 切换到上一个
map <c-Right> :bn<CR>   " 切换到下一个
map <F2> :bd<CR>        " 关闭当前窗口
map 11 :b1<CR>          " 切换到编号1
map 22 :b2<CR>          " 切换到编号2
map 33 :b3<CR>          " 切换到编号3
map 44 :b4<CR>          " 切换到编号4
map 55 :b5<CR>          " 切换到编号5
map 66 :b6<CR>          " 切换到编号6
map 77 :b7<CR>          " 切换到编号7
map 88 :b8<CR>          " 切换到编号8
map 99 :b9<CR>          " 切换到编号9
map 00 :b10<CR>         " 切换到编号10

8. 自动异步生成tags插件(gutentags)

  • gutentags自动异步生成tags,并管理在~/.cache目录下不污染当前目录
  • 依赖vim8和ctags

8.1 效果预览

  • 进行tags跳转时不需要手动生成tags,在阅读linux源码时有很大帮助。
  • 可以看到当前目录下没有tags,而是异步生成在~/.cache目录下

8.2 安装步骤

8.2.1 下载

  • git下载方式
git clone https://github.com/ludovicchabant/vim-gutentags.git
  • gutentags安装包下载

8.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/vim-gutentags-master.zip

8.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/vim-gutentags-master' "gutentags异步tags插件
call plug#end()

8.2.4 添加vimrc配置

  • ctags --vesrion查看自己的ctags版本
" " 配置 ctags 的参数 "
map <c-]> g<c-]>  "ctags跳转不自动选择

" gutentags 搜索工程目录的标志,当前文件路径向上递归直到碰到这些文件/目录名
let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']

" 所生成的数据文件的名称
let g:gutentags_ctags_tagfile = '.tags'

" 同时开启 ctags 和 gtags 支持:
let g:gutentags_modules = []
if executable('ctags')
        let g:gutentags_modules += ['ctags']
endif
if executable('gtags-cscope') && executable('gtags')
        let g:gutentags_modules += ['gtags_cscope']
endif

" 将自动生成的 ctags/gtags 文件全部放入 ~/.cache/tags目录中,避免污染工程目录
let g:gutentags_cache_dir = expand('~/.cache/tags')

" 配置 ctags 的参数,老的 Exuberant-ctags 不能有--extra=+q,注意
let g:gutentags_ctags_extra_args = ['--fields=+niazS']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']

" 如果使用 universal ctags 需要增加下面一行,老的Exuberant-ctags 不能加下一行
"let g:gutentags_ctags_extra_args += ['--output-format=e-ctags']
" 禁用 gutentags 自动加载 gtags 数据库的行为
let g:gutentags_auto_add_gtags_cscope = 0

9. 异步模糊查找(LeaderF)

  • LeaderF参考链接

9.1 效果预览

  • 异步快速搜索文件
  • 异步快速搜索函数,变量,宏(内存要够不然会卡)

9.2 安装步骤

9.2.1 下载

  • git下载方式
git clone https://github.com/Yggdroot/LeaderF.git
  • (LeaderF)安装包下载

9.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/LeaderF-master_4991.zip

9.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/LeaderF-master' "LeaderF模糊查找插件
call plug#end()

9.2.4 添加vimrc配置

"LeaderF 模糊文件查找配置
let g:Lf_ShortcutF = '' " 文件快速搜索
" 函数,,变量快速搜索
noremap <c-f> :LeaderfTag<cr>
let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' }
let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git']
let g:Lf_WorkingDirectoryMode = 'Ac'
let g:Lf_WindowHeight = 0.30
let g:Lf_CacheDirectory = expand('~/.vim/cache')
let g:Lf_ShowRelativePath = 0
let g:Lf_HideHelp = 1
let g:Lf_StlColorscheme = 'powerline'
let g:Lf_PreviewResult = {'Function':0, 'BufTag':0}
命令 描述
<ESC> 退出LeaderF
<C-F> 在完整路径搜索模式和仅名称搜索模式之间切换
<C-J> 在结果窗口中向下移动光标
<C-K> 在结果窗口中向上移动光标
<Up>/<Down> 从历史回忆起上一个/下一个输入模式
<C-X> 在水平分割窗口打开
<C-]> 在垂直分割窗口打开
<C-T> 在新标签页中打开

10. 索引跳转插件(gtags)

  • gtags参数链接
  • 配合vim-gutentags,vim-gutentags_plus插件,LeaderF插件

10.1 效果预览

10.2 安装步骤

10.2.1 下载

  • 需要下gtags,vim-gutentags
https://ftp.gnu.org/pub/gnu/global/global-6.6.4.tar.gz
git clone https://github.com/skywind3000/gutentags_plus.git
  • gtags-6.6.4安装包,gutentags_plus安装包

10.2.2 解压global-6.6.4.tar.gz安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
tar -xf ~/vim_plugin/global-6.6.4.tar.gz

10.2.3 编译安装

./configure --with-sqlite3 --prefix=/home/weidonghui/.gtags_code
# gtags可以使用Sqlite3作为数据库, 在编译时需要加这个参数
# 将global安装到指定路径,必须是绝对路径
make -j
sudo make install

10.2.4 添加环境变量

vim ~/.bashrc
export PATH="/home/weidonghui/.gtags_code/bin:/home/weidonghui/.gtags_code/lib/gtags:/home/weidonghui/.gtags_code/share/gtags:/home/weidonghui/.gtags_code/share/info:/home/weidonghui/.gtags_code/share/man/man1:/home/weidonghui/.gtags_code/share/man/man5:$PATH"
  • 关闭窗口在打开新窗口
virtual-machine:~$ global --version
global (GNU GLOBAL) 6.6.4
Powered by Berkeley DB 1.85 and SQLite3 3.8.7.1.
Copyright (c) 1996-2019 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later <http://www.gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
virtual-machine:~$ 

10.2.5 global-6.6.4部署

  • 在global-6.6.4新建一个plugin目录,将*.vim,copy到plugin
mkdir -p ~/.vim/plugged/global-6.6.4/plugin
cd ~/.vim/plugged/global-6.6.4
cp -rf *.vim plugin/
  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/global-6.6.4' "gtags引用跳转
call plug#end()

10.2.6 添加global-6.6.4,vimrc配置

  • 这是Gtags,配合LeaderF进行
  • LeaderF gtags参考链接
let g:Lf_GtagsAutoGenerate = 1
let g:Lf_Gtagslabel = 'native-pygments'
" let g:Lf_Gtagsconf = '/usr/local/share/gtags/gtags.conf'
let g:Lf_Gtagsconf = '/home/weidonghui/.gtags_code/share/gtags/gtags.conf'
noremap <leader>fr :<C-U><C-R>=printf("Leaderf! gtags -r %s --auto-jump", expand(""))<CR><CR>
noremap <leader>fd :<C-U><C-R>=printf("Leaderf! gtags -d %s --auto-jump", expand(""))<CR><CR>
noremap <leader>fo :<C-U><C-R>=printf("Leaderf! gtags --recall %s", "")<CR><CR>
noremap <leader>fn :<C-U><C-R>=printf("Leaderf gtags --next %s", "")<CR><CR>
noremap <leader>fp :<C-U><C-R>=printf("Leaderf gtags --previous %s", "")<CR><CR>

10.2.7 解压gutentags_plus安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/gutentags_plus-master.zip

10.2.8 gutentags_plus部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/gutentags_plus-master' "gutentags_plus异步ctags插件
call plug#end()

10.2.9 添加gutentags_plus,vimrc配置

"启用gtags模块
let g:gutentags_modules = ['ctags''gtags_cscope']

"配置项目根标记。
let g:gutentags_project_root = ['.root']

"在我的缓存目录中生成日期数据库,防止gtags文件污染我的项目
let g:gutentags_cache_dir = expand('〜/ .cache / tags')

"搜索后将焦点更改为quickfix窗口(可选)。
let g:gutentags_plus_switch = 1
命令 描述
cg 查看光标下符号的定义
cs 查看光标下符号的引用
cc 查看有哪些函数调用了该函数
cf 查找光标下的文件
ci 查找哪些文件 include 了本文件

11. c/c++ 语法高亮(cpp-enhanced-highlight)

11.1 效果预览

VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop)_第6张图片

11.2 安装步骤

11.2.1 下载

  • git下载方式
git clone https://github.com/octol/vim-cpp-enhanced-highlight.git
  • (vim-cpp-enhanced-highlight)安装包下载

11.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/vim-cpp-enhanced-highlight-master.zip

11.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/vim-cpp-enhanced-highlight-master' "c/c++ 语法高亮
call plug#end()

11.2.4 添加vimrc配置

" cpp-enhanced-highlight c/c++ 语法高亮配置
" 默认情况下,不突出显示类范围。启用设置
let g:cpp_class_scope_highlight = 1

" 默认情况下,成员变量突出显示为禁用状态。启用设置
let g:cpp_member_variable_highlight = 1

" 默认情况下,在声明中高亮显示类名。启用设置
let g:cpp_class_decl_highlight = 1

" POSIX功能的突出显示默认情况下处于禁用状态。启用设置
let g:cpp_posix_standard = 1

" 有两种突出显示模板功能的方法。要么
let g:cpp_experimental_simple_template_highlight = 1

" 在大多数情况下都可以使用,但是在大文件上可能会有点慢。替代设置
let g:cpp_experimental_template_highlight = 1

" 这是一个较快的实现,但是在某些极端情况下它不起作用。
" 注意:众所周知,C ++模板语法很难解析,因此不要指望此功能是完美的。
" 库概念的突出显示由
let g:cpp_concepts_highlight = 1

" 这将突出显示关键字的概念,要求以及标准库中的所有命名要求(例如DefaultConstructible)
" 可以通过以下方式禁用突出显示用户定义的功能
let g:cpp_no_function_highlight = 1

12. 自动补全(AutoComplPop)

vim的自动补全有很多种强大入YouCompleteMe不过在离线状态下比较难安装目前还在研究目前找到一个替代品AutoComplPop效果也不错,安装方便效果也不错。

12.1 效果预览

12.2 安装步骤

12.2.1 下载

  • git下载方式
git clone https://github.com/vim-scripts/AutoComplPop.git
  • (vim-cpp-enhanced-highlight)安装包下载

12.2.2 解压安装包

cd ~ && unzip ~/vim_plugin.zip
cd ~/.vim/plugged
unzip ~/vim_plugin/AutoComplPop-master.zip

12.2.3 部署

  • 打开.vimrc添加以下指令
call plug#begin('~/.vim/plugged')
Plug 'vim-scripts/AutoComplPop-master' "查字典补全
call plug#end()

你可能感兴趣的:(VIM插件离线安装与配置(plug,taglist,nerdcommente,airliner,gutentags,LeaderF,gtags,AutoComplPop))