vim配置手册

下定决心好好来配置一下 vim.

 基本配置

终端运行:

[plain]  view plain copy
  1. vim ~/.vimrc  

配置内容如下:

[plain]  view plain copy
  1. set nocp    "设置兼容  
  2. set expandtab   "设置tab  
  3. set shiftwidth=4    "设置tab的间隔  
  4. set tabstop=4   "四个空格代表一个tab  
  5. set sts=4  
  6. set showmatch   "在输入括号时光标会短暂地跳到与之相匹配的括号处  
  7. set autoindent  "设置自动缩进  
  8. set number  "设置是否显示行  
  9. set guifont=Monospace\ 12  "设置字体大小   
  10. set encoding=utf-8  "设置编码为utf-8  
  11. set fileencoding=utf-8  
  12. set fileencodings=ucs-bom,utf-8,GB18030,cp936,big5,euc-jp,euc-kr,latin1  
  13.   
  14. "自动补全配置  
  15. autocmd FileType python set omnifunc=pythoncomplete#Complete   
  16. autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS   
  17. autocmd FileType html set omnifunc=htmlcomplete#CompleteTags   
  18. autocmd FileType css set omnifunc=csscomplete#CompleteCSS   
  19. autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags   
  20. autocmd FileType php set omnifunc=phpcomplete#CompletePHP   
  21. autocmd FileType c set omnifunc=ccomplete#Complete   
  22.   
  23. "#######中括号 大括号 小括号 自动补全  
  24. :inoremap ( ()<ESC>i  
  25. :inoremap ) <c-r>=ClosePair(')')<CR>  
  26. :inoremap { {}<ESC>i  
  27. :inoremap } <c-r>=ClosePair('}')<CR>  
  28. :inoremap [ []<ESC>i  
  29. :inoremap ] <c-r>=ClosePair(']')<CR>  
  30. :inoremap < <><ESC>i  
  31. :inoremap > <c-r>=ClosePair('>')<CR>  
  32.   
  33. function ClosePair(char)  
  34.     if getline('.')[col('.') - 1] == a:char  
  35.         return "\<Right>"  
  36.     else  
  37.         return a:char  
  38.     endif  
  39.  endfunction  
  40. "#######中括号 大括号 小括号 自动补全  

代码自动补全

首先安装ctags

[plain]  view plain copy
  1. sudo apt-get install exuberant-ctags  

在主目录中创建.vim文件夹,然后按创建几个子目录:

[plain]  view plain copy
  1. cd .vim  
  2. mkdir plugin  
  3. mkdir doc  
  4. mkdir tags  

下载omnicppcomplete,点我下载

解压后生产三个文件夹,after, autoload, doc我直接把这三个文件夹放在 .vim这个文件夹下。


还需要下载一个文件,用于生成cpp的索引-libstdc++ 头文件

解压后终端cd到解压后的目录,用ctags生产索引。

[plain]  view plain copy
  1. ctags -R --sort=1 --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ -f cpp .  

目录下面会多出一个cpp文件,这就是生成的索引文件。

将cpp文件拷贝进~.vim/tags文件夹中。

最后修改一下~/.vimrc.在最后添加

[plain]  view plain copy
  1. "-- omnicppcomplete setting --  
  2. set tags+=/home/tao/.vim/tags/cpp  
  3. set completeopt=menu,menuone  
  4. filetype plugin indent on  
  5. let OmniCpp_MayCompleteDot = 1 " autocomplete with .  
  6. let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->  
  7. let OmniCpp_MayCompleteScope = 1 " autocomplete with ::  
  8. let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)  
  9. let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files  
  10. let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype  in popup window  
  11. let OmniCpp_GlobalScopeSearch=1  
  12. let OmniCpp_DisplayMode=1  
  13. let OmniCpp_DefaultNamespaces=["std"]  

重启vim,测试一下:



文件浏览器

在进行多文件编辑的时候,如果没有文件浏览功能,不停的切换文件将会非常之蛋疼..

这里要用到的插件是nerdtree,点我下载

解压后将plugin下的.vim和doc下的.txt文件拷贝到~/.vim下的对应目录。

[plain]  view plain copy
  1. #命令行  
  2. cp plugin/NERD_tree.vim ~/.vim/plugin/  
  3. cp doc/NERD_tree.txt ~/.vim/doc  

打开vim,执行命令:

[plain]  view plain copy
  1. :NERDTree



关于插件的使用:

进入当前目录的树形界面,通过小键盘上下键,能移动选中的目录或文件


目录前面有+号,摁Enter会展开目录,文件前面是-号,摁Enter会在右侧窗口展现该文件的内容,并光标的焦点focus右侧。


ctr+w+h 光标focus左侧树形目录,ctrl+w+l 光标focus右侧文件显示窗口。多次摁 ctrl+w,光标自动在左右侧窗口切换


光标focus左侧树形窗口,摁? 弹出NERDTree的帮助,再次摁?关闭帮助显示


输入:q回车,关闭光标所在窗口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值