linux下通用代码阅读编辑:vim + Ctags +taglist+…

对照上图的图标, 我在本文中将教会你以下这些功能:

1简洁明了的Buffer浏览和操作 (MiniBufExplorer)2文件浏览器 (WinManager整合TagList窗口和netrw窗口)3tag浏览器 (taglist安装)4高亮的书签5更丰富的语法高亮6成员变量的下拉, 自动补全(omnicppcomplete安装)

1.安装vim

代码补全ctrl+P,ctrl+N

代码跳转 ctrl+],

代码跳回 ctrl+o

2.安装omnicppcomplete

安装omnicppcomplete后,分别键入ctrl+x, ctrl+o也可以实现代码补全。

安装步骤:

http://blog.csdn.net/gaoguoxin2/article/details/7658914

3 安装使用Ctags

Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。
3.1 下载和安装 

一、我是使用apt-get安装的:

sudo apt-get install ctags

二、下载源码安装(网上提供的方法)

1)从http://ctags.sourceforge.net/下载源代码包后,解压缩生成源代码目录,

2)然后进入源代码根目录执行./configure,

3)然后执行make,

4)编译成功后执行make install。

3.2 使用 

ctags –R *:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这 条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。

ctags filename.c: 给单个文件建立tags

ps:

ctags 识别很多语言,可以用如下命令来查看:

ctags --list-languages

4. 安装使用TagList

TagList功能:高效地浏览源码, 其功能就像vc中的workpace, 那里面列出了当前文件中的所有宏,全局变量, 函数名等.

如果没有~/.vim需要手动建立该文件夹

下载地址http://www.vim.org/scripts/script.php?script_id=273版本4.4安装在 ~/.vim 目录下解压taglist_xx.zip手册:help taglist.txt

配置.vimrc文件

加入下面几行配置” 设置TListlet Tlist_Use_LEFT_Window=1let Tlist_File_Fold_Auto_Close=1let Tlist_Show_One_File=1let Tlist_GainFocus_On_ToggleOpen=1let Tlist_Exit_OnlyWindow=1let g:winManagerWindowLayout=’FileExplorer’nmap tl :Tlist<cr>使用:

打开一个代码文件,输入tl 即可看到该文件的代码结构我们可以通过连按两下 ctrl+w快捷键或者ctrl+方向键在Taglist窗口和编辑区之间切换焦点

5. 安装使用winmanager

下载地址http://www.vim.org/scripts/script.php?script_id=95版本2.x安装在 ~/.vim 目录下解压winmanager.zip手册:help winmanager

现在在你的~/.vimrc中增加下面两句

let g:winManagerWindowLayout=’FileExplorer|TagList’nmap wm :WMToggle<cr>

然后重启vim, 打开~/vim71/src/main.c, 在normal状态下输入"wm"即可。

6.快速浏览和操作Buffer — 插件: MiniBufExplorer

下载地址http://www.vim.org/scripts/script.php?script_id=159版本6.3.2安装将下载的 minibufexpl.vim文件丢到 ~/.vim/plugin 文件夹中即可手册在minibufexpl.vim 文件的头部

需要在~/.vimrc中增加:

let g:miniBufExplMapWindowNavVim = 1let g:miniBufExplMapWindowNavArrows = 1let g:miniBufExplMapCTabSwitchBufs = 1let g:miniBufExplModSelTarget = 1

7.安装SuperTab

下载地址http://www.vim.org/scripts/script.php?script_id=1643版本0.43安装把supertab.vim 文件丢到 ~/.vim/plugin 文件夹就好了手册supertab.vim 文件头部, 和命令 ":SuperTabHelp"

这个安装包跟先前的几个Vim插件不同,它是一个vba文件,即Vimball格式的安装包,这种格式安装包提供傻瓜式的安装插件的方法。

1)用Vim打开.vba安装包文件。

2)在Vim命令行下运行命令“UseVimball ~/.vim”。此命令将安装包解压缩到~/.vim目录。VImball安装方式的便利之处在于你可以在任何目录打开.vba包安装,而不用切换到安装目的地目录。

在上面一节中你应该学会了自动补全代码的功能, 按下"Ctrl+X Ctrl+O"就搞定了, 如果你够懒的话肯定会说"这么麻烦啊, 居然要按四个键", 不必为此自责, 因为Gergely Kontra 和 Eric Van Dewoestine也跟你差不多, 只不过人家开发了supertab.vim这个插件, 可以永远懒下去了, 下面我来教你偷懒吧.在你的~/.vimrc文件中加上这两句:

let g:SuperTabRetainCompletionType=2let g:SuperTabDefaultCompletionType="<C-X><C-O>"

以后当你准备按"Ctrl+X Ctrl+O"的时候直接按<Tab>就好了, 够爽吧 ….我稍微再介绍一下上面那两句配置信息:

let g:SuperTabDefaultCompletionType="<C-X><C-O>"" 设置按下<Tab>后默认的补全方式, 默认是<C-P>," 现在改为<C-X><C-O>. 关于<C-P>的补全方式," 还有其他的补全方式, 你可以看看下面的一些帮助:" :help ins-completion" :help compl-omni let g:SuperTabRetainCompletionType=2" 0 – 不记录上次的补全方式" 1 – 记住上次的补全方式,直到用其他的补全命令改变它" 2 – 记住上次的补全方式,直到按ESC退出插入模式为止

8. My settng in /etc/vim/vimrc" libin //my settingsset nu" 代码折叠set foldmethod=syntaxset foldlevelstart=99" 设置自动缩进set autoindent" 设置自动对齐"set smartindent" 设置omnicppcompleteset nocompatiblefiletype plugin onautocmd FileType python set omnifunc=pythoncomplete#Completeautocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJSautocmd FileType css set omnifunc=csscomplete#CompleteCSSautocmd FileType php set omnifunc=phpcomplete#CompletePHPautocmd FileType c set omnifunc=ccomplete#Completeautocmd FileType java set omnifunc=javacomplete#Completesetlocal omnifunc=javacomplete#Complete" 设置TagListlet Tlist_Use_LEFT_Window=1let Tlist_File_Fold_Auto_Close=1let Tlist_Show_One_File=1let Tlist_GainFocus_On_ToggleOpen=1let Tlist_Exit_OnlyWindow=1"let g:winManagerWindowLayout=’FileExplorer’nmap tl :Tlist<cr>" 设置ewinManagerlet g:winManagerWindowLayout=’FileExplorer|TagList’nmap wm :WMToggle<cr>" 设置minibuf"let g:miniBufExplMapCTabSwitchBufs=1"let g:miniBufExplorerMoreThanOne=0let g:miniBufExplMapWindowNavVim = 1let g:miniBufExplMapWindowNavArrows = 1let g:miniBufExplMapCTabSwitchBufs = 1let g:miniBufExplModSelTarget = 1" 设置eclimlet g:EclimProjectTreeAutoOpen=1let g:EclimProjectTreeActions = [ \ {‘pattern’: ‘.*’, ‘name’: ‘Edit’, ‘action’: ‘edit’}, \ {‘pattern’: ‘.*’, ‘name’: ‘Tab’, ‘action’: ‘tabnew’}, \ {‘pattern’: ‘.*’, ‘name’: ‘Split’, ‘action’: ‘split’}, \ ]" 设置myProject"au BufEnter /home/libin/tmp/MyLockScreen/* setlocal tags+=/home/libin/tmp/MyLockScreen/tags"au BufEnter /home/libin/tmp/workspace2/duome-locus/* setlocal tags+=/home/libin/tmp/workspace2/duome-locus/tags" 设置supertablet g:SuperTabRetainCompletionType=2let g:SuperTabDefaultCompletionType="<C-X><C-U>""cscopenmap <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>成功是奋斗的结果,而奋斗是成功的必经之路。

linux下通用代码阅读编辑:vim + Ctags +taglist+…

相关文章:

你感兴趣的文章:

标签云: