Vim使用常见插件安装

一、前言
各种IDE工具有代码提示以及可以方便切换到各个文件,所以也想在VIM上实现近似的功能。因为目前Linux开发都是在远程连接服务器进行开发,常用的远程连接工具:xshell、putty、MobaXterm等。虽然大部分Linux开发还是使用纯VIM开发,但是对于提高效率来说,安装需要的插件,仍然是有必要的。
配置界面
本文主要讲述常用插件的安装:Bundle、YouCompleteMe、nerdtree、pathogen、tagbar、a.vim等。

二、安装过程

1、安装Bundle插件——插件管理

          git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/plugin/Vundle.vim

         安装后,可以使用Plugin Install、PluginList、PluginSearch,用于插件安装等;

2、安装a.vim——用于文件切换

      官网地址:https://www.vim.org/scripts/script.php?script_id=31,下载后的a.vim直接~/.vim/plugin/中,即可实现头文件和源文件进行切换;

       操作:

        :A 头文件/源文件切换
        :AS 分割窗后并切换头/源文件(切割为上下两个窗口)
        :AV 垂直切割窗口后切换头/源文件(切割为左右两个窗口)
        :AT 新建Vim标签式窗口后切换
        :AN 在多个匹配文件间循环切换,将光标所在处单词作为文件名打开
        :IH 切换至光标所在文件
        :IHS 分割窗口后切换至光标所在文件(指将光标所在处单词作为文件名打开)
        :IHV 垂直分割窗口后切换
        :IHT 新建标签式窗口后切换
        :IHN 在多个匹配文件间循环切换

3、YouCompleteMe的安装(重头戏)——实现补全,代码检查

      (1) 安装基础环境:

             sudo apt-get install vim ctags libpython3.6-dev

      (2) 安装apt-vim

             git clone https://raw.githubusercontent.com/egalpin/apt-vim,执行sh install.sh,执行成功后,会安装pathogen、tagbar两个插件;

              apt安装于~/.vimpkg/bin/apt-vim 目录,执行source ~/.bashrc环境变量中可进行调用。

      (3) 安装nerdtree文件列表

            apt-vim install -y https://github.com/scrooloose/nerdtree.git

      (4) 安装YouCompleteMe插件

            apt-vim install -y https://github.com/Valloric/YouCompleteMe.git

           cd ~/.vim/bundle/YouCompleMe/

           安装各种第三方库,更新子模块;git submodule update --init --recursive

      (5) 对于64位系统,可以直接使用./install.py --clang-completer进行YCM插件的安装;

      (6)对于32位系统而言,由于直接使用./install.py --clang-completer提示Clang.so库无法正确链接( "libclang-${CLANG_VERSION}-i386-unknown-freebsd11"下载是有问题的),所以使用apt install clang-10进行相关包的下载,将/usr/lib/i386-linux-gnu/libclang-10.so替换lib/libclang.so.10文件,该lib位置放于~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp该目录,修改如下

CMakeList.txt![build.py](https://img-blog.csdnimg.cn/2020070414565680.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ZlbmdfODA3MQ==,size_16,color_FFFFFF,t_70
(6)最终显示如下,无报错则表示安装成功
install三、.vimrc配置(相关插件配置)

"Vundle install
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'gmarik/Vundle.vim'
Plugin 'bundle/nerdtree'
Plugin 'bundle/tagbar'
Plugin 'bundle/pathogen'
Plugin 'bundle/YouCompleteMe'

call vundle#end()

"Tagbar
let g:tagbar_width=35 "宽度
let g:tagbar_ctags_bin='/usr/bin/ctags' "设置tagbar使用的ctags的插件
let g:tagbar_right=1 "位置在右侧
let g:tagbar_autofocus=0 "是否自动聚焦
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen() "打开文件自动打开tagbar
nmap <F6> :TagbarToggle<CR> "快捷键

" NERD tree
let NERDChristmasTree=0
let NERDTreeWinSize=35
let NERDTreeChDirMode=2
let NERDTreeIgnore=['\~$']
let NERDTreeShowBookmarks=1
let NERDTreeWinPos="left"
""修改树的显示图标
let g:NERDTreeDirArrowExpandable = '+'
let g:NERDTreeDirArrowCollapsible = '-'
"""窗口是否显示行号
let g:NERDTreeShowLineNumbers=1
""不显示隐藏文件
let NERDTreeShowHidden=1
" Automatically open a NERDTree if no files where specified
autocmd vimenter * if !argc() | NERDTree | endif
" Close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Open a NERDTree
nmap <F5> :NERDTreeToggle<cr>

" #####YouCompleteMe Configure
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示`
"YouCompleteMe "自动开启语义补全
let g:ycm_seed_identifiers_with_syntax = 1
"在注释中也开启补全
let g:ycm_complete_in_comments = 1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
"字符串中也开启补全
let g:ycm_complete_in_strings = 1
let g:ycm_collect_identifiers_from_tags_files = 1
"开启基于tag的补全,可以在这之后添加需要的标签路径
let g:ycm_collect_identifiers_from_tags_files = 1 "开始补全的字符数
let g:ycm_min_num_of_chars_for_completion = 2
"补全后自动关闭预览窗口
let g:ycm_autoclose_preview_window_after_completion = 1
"禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_cache_omnifunc=0
"回车即选中当前项
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
"离开插入模式后自动关闭预览窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
"语法关键字补全
let g:ycm_seed_identifiers_with_syntax = 1
"在实现和声明之间跳转,并分屏打开
let g:ycm_goto_buffer_command = 'horizontal-split'
"nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳转到定义处
"nnoremap <Leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR>
nmap <F12> :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <Leader>j :YcmCompleter GoToInclude<CR>
execute pathogen#infect()
call pathogen#helptags()

备注:若YCM比对是颜色比较亮色,导致无法代码查看,可以更换主题,colorscheme industry

参考链接:
https://blog.csdn.net/qq_37968132/article/details/79856758
https://www.cnblogs.com/jhssd/p/6803689.html

以下是新的个人博客的地址:http://106.53.224.102:8080/wordpress-zh/feng_8071/http://106.53.224.102:8080/wordpress-zh/feng_8071/vim使用常见插件安装//

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章