Vim配置,YCM,TagBar,NERDTree

一、vim运行界面截图



此vim功能:

  • 自动添加脚本注释
  • 代码自动补全YCM
  • 文件自如切换NERDTree
  • 函数方法属性快速浏览TagBar


二、vim配置

1、先从github下载bundle插件


git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 

2、安装TagBar的依赖ctags


sudo apt-get install ctags


3、按照下面代码配置vim


syntax on
colorscheme slate
set background=dark
" vundle 插件管理
filetype on
set rtp+=~/.vim/bundle/Vundle.vim/
call vundle#rc()
" 插件
Bundle "Valloric/YouCompleteMe"
Bundle "scrooloose/nerdtree"
Bundle 'majutsushi/tagbar'

"nmap 
    
    
     
     tb :TagbarToggle
     
     
      
            "快捷键设置
let g:tagbar_ctags_bin='ctags'          "ctags程序的路径
let g:tagbar_width=30                   "窗口宽度的设置
map 
      
      
       
        :Tagbar
       
       
        
        
autocmd BufReadPost *.cpp,*.c,*.h,*.py,*.hpp,*.cc,*.cxx call tagbar#autoopen()  "如果是c语言的程序的话,tagbar自动开启

" 使用 NERDTree 插件查看工程文件。设置快捷键,速记:file list
"map 
        
        
          ne :NERDTreeToggle 
         
           map 
          
            :NERDTree 
           
             " 设置 NERDTree 子窗口宽度 let NERDTreeWinSize=30 " 设置 NERDTree 子窗口位置 let NERDTreeWinPos="left" " 显示隐藏文件 let NERDTreeShowHidden=0 " NERDTree 子窗口中不显示冗余帮助信息 let NERDTreeMinimalUI=1 " 删除文件时自动删除文件对应 buffer let NERDTreeAutoDeleteBuffer=1 "autocmd VimEnter * NERDTree " 自动补全配置 set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228) autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口 inoremap 
             
             
               pumvisible() ? "\ 
              
                " : "\ 
               
                 " "回车即选中当前项 "上下左右键的行为 会显示其他信息 inoremap 
                 
                 
                   pumvisible() ? "\ 
                  
                    " : "\ 
                   
                     " inoremap 
                     
                     
                       pumvisible() ? "\ 
                      
                        " : "\ 
                       
                         " inoremap 
                         
                         
                           pumvisible() ? "\ 
                          
                            \ 
                           
                             \ 
                            
                              " : "\ 
                             
                               " inoremap 
                               
                               
                                 pumvisible() ? "\ 
                                
                                  \ 
                                 
                                   \ 
                                  
                                    " : "\ 
                                   
                                     " "youcompleteme 默认tab s-tab 和自动补全冲突 "let g:ycm_key_list_select_completion=[' 
                                    
                                      '] let g:ycm_key_list_select_completion = [' 
                                     
                                       '] "let g:ycm_key_list_previous_completion=[' 
                                      
                                        '] let g:ycm_key_list_previous_completion = [' 
                                       
                                         '] let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示 let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎 let g:ycm_min_num_of_chars_for_completion=2 " 从第2个键入字符就开始罗列匹配项 let g:ycm_cache_omnifunc=0 " 禁止缓存匹配项,每次都重新生成匹配项 let g:ycm_seed_identifiers_with_syntax=1 " 语法关键字补全 nnoremap 
                                        
                                          :YcmForceCompileAndDiagnostics 
                                         
                                           "force recomile with syntastic "nnoremap 
                                          
                                            lo :lopen 
                                           
                                             "open locationlist "nnoremap 
                                            
                                              lc :lclose 
                                             
                                               "close locationlist inoremap 
                                               
                                                
                                                 
                                                 
                                                   "在注释输入中也能补全 let g:ycm_complete_in_comments = 1 "在字符串输入中也能补全 let g:ycm_complete_in_strings = 1 "注释和字符串中的文字也会被收入补全 let g:ycm_collect_identifiers_from_comments_and_strings = 0 nnoremap 
                                                  
                                                    jd :YcmCompleter GoToDefinitionElseDeclaration 
                                                   
                                                     " 跳转到定义处 "自动添加脚本头信息的配置 "SET Comment START autocmd BufNewFile *.php,*.js,*.py,*.sh exec ":call SetComment()" |normal 10Go func SetComment() if expand("%:e") == 'php' call setline(1, " 
                                                     :call SetComment() 
                                                    
                                                      :10 
                                                     
                                                       o "SET Comment END "SET Last Modified Time START func DataInsert() call cursor(9,1) if search ('Last Modified') != 0 let line = line('.') call setline(line, '# Last Modified: '.strftime("%Y-%m-%d %H:%M:%S")) endif endfunc autocmd FileWritePre,BufWritePre *.php,*.js,*.py,*.sh,*.cpp ks|call DataInsert() |'s "SET Last Modified Time END "开启行号 set nu "设置tab缩进值 set tabstop=4 
                                                      
                                                     
                                                    
                                                   
                                                  
                                                 
                                                
                                               
                                              
                                             
                                            
                                           
                                          
                                         
                                        
                                       
                                      
                                     
                                    
                                   
                                  
                                 
                                
                               
                              
                             
                            
                           
                          
                         
                        
                       
                      
                     
                    
                   
                  
                 
                
               
              
             
            
           
          
        
       
       
      
      
     
     
    
    

4、linux下输入vim进入如下界面,输入BundleInstall安装插件,并且等待插件安装完成就可使用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值