VIM和GVIM 配置总结

2017-01-05 11:38:48来源:CSDN作者:goulei2010人点击

1.前言

关于如何VIM的配置,网上已经有很多相关教程,详细的教程只会是重复,本文仅介绍本人的配置心得和觉得需要注意的地方。详细可以教程可以参考http://blog.csdn.net/wooin


2.VI、VIM与GVIM的区别

VIM是VI的升级版,且完全兼容VI指令,GVIM跟VIM的区别是VIM要求全部键盘操作,而GVIM可以使用鼠标进行可视化操作。关于GVIM与VIM,该使用谁,得看自己的使用习惯,本人更喜欢GVIM,以下配置均以GVIM为例,但两者配置方法区别不大。


3.如何安装GVIM
本人使用的Linux系统是Fedora9,以Fedora9为例子。

1.安装GVIM,终端输入命令yuminstall gvim,注意更新前,一定不要用过VIM,要不然会显示无法更新,遇到这样的情况,建议重启linux。

2.为GVIM配置个人设定,在/HOME下新建plugin、doc和syntax三个文件夹。

mkdir ~/.vim/{plugin,doc,syntax} –p

3. 在文件 ~/.vim目录下创建vimrc

 

Plugin 放置插件.vim 脚本文件

Syntax 语言高亮提示设置,能设置某些函数高亮,如c.vim

Doc 对应插件的说明文档


 4.Vimrc文件的作用

 VIMRC能控制VIM编辑器,利用配置命令行控制VIM的显示方式,换行方式和插件工作方式等。


5.如何安装VIM插件

VIM插件安装不同其他Linux程序,通过make脚本或shell脚本来安装,而是把下载好的插件文件放到VIM对应的目录后,通过VIMRC配置文件进行设置后使用。例如插件taglist_45,安装包内有两个文件,分别是taglist.vim 和 taglist.txt,将taglist.vim放到刚创建的plugin目录下,将taglist.txt放到doc目录下,然后配置vimrc文件,让其工作。

 

6.插件功能汇总
Ctag
 

ctags –R 建立tag标签

:set tags=/(PWD)/tags 设置tags路径

 

WinManager

输入wm 打开WinManager和Tlist

 

按键

功能

<F1>         

显示帮助

<cr>

如果光标下是目录, 则进入该目录; 如果光标下文件, 则打开该文件

-

返回上级目录

c

切换vim 当前工作目录正在浏览的目录

d

创建目录

D

删除目录或文件

i

切换显示方式

R

文件或目录重命名

s

选择排序方式

x

定制浏览方式, 使用你指定的程序打开该文件

 

Cscope

cscope –Rbq 生成Cscope需要的TAGS

:cs add /(PWD)/cscope.out/home/wooin/vim71 添加TAGS

 

cs find c|d|e|f|g|i|s|t name

0 或 s     查找本 C 符号(可以跳过注释)

1 或 g     查找本定义

2 或 d     查找本函数调用的函数

3 或 c     查找调用本函数的函数

4 或 t     查找本字符串

6 或 e     查找本 egrep 模式

7 或 f      查找本文件

8 或 i      查找包含本文件的文件

 

热键映射

nmap <C-_>s :cs find s<C-R>=expand("<cword>")<CR><CR>

nmap <C-_>g :cs find g<C-R>=expand("<cword>")<CR><CR>

nmap <C-_>c :cs find c<C-R>=expand("<cword>")<CR><CR>

nmap <C-_>t :cs find t<C-R>=expand("<cword>")<CR><CR>

nmap <C-_>e :cs find e<C-R>=expand("<cword>")<CR><CR>

nmap <C-_>f :cs find f<C-R>=expand("<cfile>")<CR><CR>

nmap <C-_>i :cs find i^<C-R>=expand("<cfile>")<CR>$<CR>

nmap <C-_>d :cs find d<C-R>=expand("<cword>")<CR><CR>

 

 

调出QuickFix窗口

:cw

:cn       // 切换到下一个结果

:cp       // 切换到上一个结果

 

插件A:头文件与源文件快速切换

nnoremap <silent> <F12>:A<CR>

 

 

自动补全

Ctrl+P       向前切换成员

Ctrl+N      向后切换成员

Ctrl+E       表示退出下拉窗口, 并退回到原来录入的文字

Ctrl+Y       表示退出下拉窗口, 并接受当前选项

 

vim中的其他补全方式还有:

Ctrl+X Ctrl+L

整行补全

Ctrl+X Ctrl+N   根据当前文件里关键字补全

Ctrl+X Ctrl+K    根据字典补全

Ctrl+X Ctrl+T    根据同义词字典补全

Ctrl+X Ctrl+I     根据头文件内关键字补全

Ctrl+X Ctrl+]     根据标签补全

Ctrl+X Ctrl+F    补全文件名

Ctrl+X Ctrl+D   补全宏定义

Ctrl+X Ctrl+V   补全vim命令

Ctrl+X Ctrl+U   用户自定义补全方式

Ctrl+X Ctrl+S    拼写建议

 

7. 我的VIMRC文件

[plain] view plain copy
  1. " ===============================================================================  
  2. "        Filename: vimrc  
  3. "        Author: 河蟹(李政甫)  
  4. "        Email: sosofullmoon#vip.qq.com  
  5. "        Homepage: http://blog.csdn.net/youyudehexie  
  6. "        Created: 2011-3-4  
  7. " ===============================================================================  
  8.   
  9. colorscheme desert  " 设置主题方案  
  10. set number          " 显示行号  
  11. set cursorline      " 突出显示当前行  
  12. set tabstop=4       " 设置tab键的宽度  
  13. set backspace=2     " 设置退格键可用  
  14.   
  15. syn on              " 打开语法高亮  
  16. set showmatch       " 设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号  
  17. set smartindent     " 智能对齐方式  
  18. set shiftwidth=4    " 换行时行间交错使用4个空格  
  19. set autoindent      " 自动对齐  
  20. set ai!             " 设置自动缩进  
  21. filetype plugin indent on     " 开启插件  
  22. set completeopt=longest,menu  
  23.   
  24.   
  25. " ===============================================================================  
  26. " TagList :Tlist  
  27. " ===============================================================================  
  28.   
  29. let Tlist_Show_One_File=1  
  30. let Tlist_Exit_OnlyWindow=1  
  31.   
  32. " ===============================================================================  
  33. " WinManager :WMToggle  
  34. " ===============================================================================  
  35.   
  36. let g:winManagerWindowLayout='FileExplorer|TagList'  
  37. nmap wm :WMToggle<cr>  
  38.   
  39. " ===============================================================================  
  40. " cscope  
  41. " ===============================================================================  
  42.   
  43. set cscopequickfix=s-,c-,d-,i-,t-,e-  
  44.   
  45. " ===============================================================================  
  46. " MiniBufExp  
  47. " ===============================================================================  
  48.   
  49. let g:miniBufExplMapCTabSwitchBufs = 1  
  50. let g:miniBufExplMapWindowNavVim = 1  
  51. let g:miniBufExplMapWindowNavArrows = 1  
  52.   
  53. " ===============================================================================  
  54. " SuperTab :SuperTabHelp  
  55. " ===============================================================================  
  56.   
  57. let g:SuperTabRetainCompletionType=2  
  58. let g:SuperTabDefaultCompletionType="<C-X><C-O>"  
  59.   
  60. " ===============================================================================  
  61. " 热键映射  
  62. " ===============================================================================  
  63.   
  64. nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>   "cscope插件热键  
  65. nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>  
  66. nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>  
  67. nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>  
  68. nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>  
  69. nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>  
  70. nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>{1}lt;CR>  
  71. nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>  
  72.   
  73. nmap <F6> :cn<cr>    “ cw模式下热键  
  74. nmap <F7> :cp<cr>  
  75.   
  76. map <F11> :A<cr>     “ 头文件与源文件切换  
  77.   
  78. map <F5> :w<CR>:make<CR>   ”执行编译MAKE  
  79. map <F5><F5> :make clean<CR>    
  80.   
  81. vmap <C-c> "yy   “复制模拟 CTRL + C  
  82. vmap <C-x> "yd  
  83. nmap <C-v> "yp  
  84. vmap <C-v> "yp  
  85. nmap <C-a> ggvG$  
  86.   
  87. nmap <C-s> :wa<cr>  “模拟WIN 保存 CTRL + S  
  88. imap <C-s> <Esc>:wa<cr>i<Right>  

8.常用shell

目录树生成脚本,在脚本当前目录生成cscope.in.out、cscope.out、cscope.po.out和tags

[plain] view plain copy
  1. #!/bin/sh  
  2. #################################################################################  
  3. # Filename: tag_rebuild  
  4. # Author: Wu Yin(吴垠)  
  5. # Email: lazy_fox@gmail.com  
  6. # Created: 2007-9-19  
  7. # Description: Rebuild Ctags and Cscope files at the path you assign  
  8. # Usage: tag_rebuild [PATH]  
  9. # "tag_rebuild" will rebuild the Cscope tag file and Ctags   
  10. # tag file at the PATH you gived. The current directory by default.  
  11. # The following files will be created or rebuilded after you   
  12. # run "tag_rebuild".  
  13. # > cscope.in.out  
  14. # > cscope.out  
  15. # > cscope.po.out  
  16. # > tags  
  17. ################################################################################  
  18.    
  19. WORK_PATH=$1  
  20. if [ -z "$WORK_PATH" ]; then  
  21. WORK_PATH="."  
  22. fi  
  23. cd $WORK_PATH   
  24. echo "Cscope ... " $WORK_PATH  
  25. cscope -bqR  
  26. echo "Ctags ... " $WORK_PATH  

  1. ctags -R --fields=+lS  

转自:http://blog.csdn.net/youyudehexie/article/details/7318029

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台