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

linux下通用代码阅读编辑:vim + Ctags +taglist+..._第1张图片

对照上图的图标, 我在本文中将教会你以下这些功能:
1 简洁明了的Buffer浏览和操作 (MiniBufExplorer)
2 文件浏览器 (WinManager整合TagList窗口和netrw窗口)
3 tag浏览器 (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文件

加入下面几行配置
” 设置TList
let Tlist_Use_LEFT_Window=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_GainFocus_On_ToggleOpen=1
let Tlist_Exit_OnlyWindow=1
let 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 = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let 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=2
let 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 settings
set nu


" 代码折叠
set foldmethod=syntax
set foldlevelstart=99


" 设置自动缩进
set autoindent
" 设置自动对齐
"set smartindent


" 设置omnicppcomplete
set nocompatible
filetype plugin on
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType java set omnifunc=javacomplete#Complete
setlocal omnifunc=javacomplete#Complete


" 设置TagList
let Tlist_Use_LEFT_Window=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_GainFocus_On_ToggleOpen=1
let Tlist_Exit_OnlyWindow=1
"let g:winManagerWindowLayout=’FileExplorer’
nmap tl :Tlist<cr>


" 设置ewinManager
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>


" 设置minibuf
"let g:miniBufExplMapCTabSwitchBufs=1
"let g:miniBufExplorerMoreThanOne=0
let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let g:miniBufExplModSelTarget = 1


" 设置eclim
let g:EclimProjectTreeAutoOpen=1
let 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

" 设置supertab
let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-U>"

"cscope
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>

你可能感兴趣的:(linux下通用代码阅读编辑:vim + Ctags +taglist+...)