vim插件【功能说明、安装方法和使用方法介绍】

11 #=============================================================================
122. ctags
13 (1). 帮助手册查看
14 :help usr_29
15
16 (2). 功能
17 ctags的功能, 只要在unix/linux环境编程过的人都知道它的历害! 我在这也作个小
18 小介绍吧ndow=0: 对浏览代码非常的方便, 可以在函数, 变量之间跳来跳去等等.(注
19 意: 我这里说到的仅是小小的一部分!).
20
21 (3). 安装
22 sudo apt-get install ctags
35 (4). 使用方法
58 本节我们主要讲一下Ctags这个程序。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。
熟练的使用ctags仅需记住下面七条命令:(很简单吧,呵呵)
1. $ ctags –R * ($ 为Linux系统Shell提示符)
2. $ vi –t tag (请把tag替换为您欲查找的变量或函数名)
3. :ts (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令)
4. :tp (tp 助记字:tags preview)---此命令不常用,可以不用记
5. :tn (tn 助记字:tags next) ---此命令不常用,可以不用记
6. Ctrl + ]---跳到定义处
7. Ctrl + O---返回


下面我们逐条的解释上面的命令:
“$ ctags –R *”:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表:
用#define定义的宏
枚举型变量的值
函数的定义、原型和声明
名字空间(namespace)
类型定义(typedefs)
变量(包括定义和声明)
类(class)、结构(struct)、枚举类型(enum)和联合(union)
类、结构和联合中成员变量或函数
VIM用这个“tags”文件来定位上面这些做了标记的对象。

剩下的命令就是定位这些对象的方法:
“$ vi –t tag” :在运行vim的时候加上“-t”参数,例如:
[/usr/src]$ vim -t main
这个命令将打开定义“main”(变量或函数或其它)的文件,并把光标定位到这一行。如果这个变量或函数有多处定义,在VI命令行模式“:ts”命令就能列出一个列表供用户选择。 “:tp”为上一个tag标记文件,“:tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。 :(
最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl+]”,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。用“Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回 。 ^_^

注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:settags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。在完成编码时,可以手工删掉tags文件(帚把不到,灰尘不会自己跑掉^_^)。

59
60 #=============================================================================
61 3. TagList 插件
62 (1). 帮助手册查看
63 :help taglist.txt
64
65 (2). 功能
66 高效地浏览源码, 其功能就像vc中的workpace, 那里面列出了当前文件中的所有宏,
67 全局变量, 函数名等.
68
69 (3). 安装
70 下载taglist压缩包, 然后把解压的两个文件taglist.vim 和 taglist.txt 分别放到
71 $HOME/.vim/plugin 和 $HOME/.vim/doc 目录中.
72
73 (4). 使用方法
74 首先请先在你的~/.vimrc文件中添加下面语句:
75 let Tlist_Ctags_Cmd='/bin/ctags' // 若在windows中应写成: let/
76 Tlist_Ctags_Cmd='ctags.exe'
77 let Tlist_Show_One_File=1
78 let Tlist_OnlyWindow=1
79 let Tlist_Use_Right_Window=0
80 let Tlist_Sort_Type='name'
81 let Tlist_Exit_OnlyWindow=1
82 let Tlist_Show_Menu=1
83 let Tlist_Max_Submenu_Items=10
84 let Tlist_Max_Tag_length=20
85 let Tlist_Use_SingleClick=0
86 let Tlist_Auto_Open=0
87 let Tlist_Close_On_Select=0
88 let Tlist_File_Fold_Auto_Close=1
89 let Tlist_GainFocus_On_ToggleOpen=0
90 let Tlist_Process_File_Always=1
91 let Tlist_WinHeight=10
92 let Tlist_WinWidth=18
93 let Tlist_Use_Horiz_Window=0
94
95
96 此时用vim打开一个c源文件试试:
97 $ vim ~/vim/src/main.c
98
99 进入vim后用下面的命令打开taglist窗口.
100 :Tlist
101
102 为了更方便地使用, 可以在.vimrc文件中加入:
103 map <silent> <leader>tl :TlistToggle<CR>
104 这样就可以用 ",tl" 命令进行taglist窗口的打开和关闭之间方便切换了. // 这里
105 的","是我.vimrc设置的leader, 你也可以设置成别的, 在.vimrc中修改即可, 如我
106 的: let mapleader=","
140 #=============================================================================
141 5. cscope
145 (2). 功能
146 用Cscope自己的话说 - "你可以把它当做是超过频的ctags", 其功能和强大程度可见
147 一斑吧, 关于它的介绍我就不详细说了, 如果你安装好了前文介绍的帮助手册.
148
149 (3). 安装
150 如果是在linux环境中, cscope一般都会随系统一起安装了;
153 sudo apt-get install cscope
154 (4). 使用方法
使用cscope前,必须为代码生成一个cscope数据库。假设当前代码在/usr/src/linux目录下,则运行下列命令。

进入有 C 代码的目录cd /usr/src/linux

cscope –Rbq

然后会生成3个文件:cscope.in.out,cscope.out,cscope.po.out。

在cscope.out文件所在的目录下打开VIM可以直接使用cscope了
也可以先用vim打开代码文件,将刚才生成的cscope文件导入到vim中。

vim init/main.c

:cs add /usr/src/linux/cscope.out /usr/src/linux


155 在.vimrc中增加如下设置, 就可以利用相应的快捷键进行不同的查找了.
156 if has("cscope")
157 set cscopetag " 使支持用 Ctrl+] 和 Ctrl+t 快捷键在代码间跳来跳去
158 " check cscope for definition of a symbol before checking ctags:
159 " set to 1 if you want the reverse search order.
160 set csto=1
if fileradable("cscope.out")
    cs add csope.out
elseif $CSCOPE_DB  != ""
    cs add $CSCOPE_DB
endif
170 " show msg when any other cscope db added
171 set cscopeverbose
172
Cscope的功能通过它的子命令“find”来实现。

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

  • s:查找C代码符号
  • g:查找本定义
  • d:查找本函数调用的函数
  • c:查找调用本函数的函数
  • t:查找本字符串
  • e:查找本egrep模式
  • f:查找本文件
  • i:查找包含本文件的文件

    " The following maps all invoke one of the following cscope search types:
    "
    "   's'   symbol: find all references to the token under cursor
    "   'g'   global: find global definition(s) of the token under cursor
    "   'c'   calls:  find all calls to the function name under cursor
    "   't'   text:   find all instances of the text under cursor
    "   'e'   egrep:  egrep search for the word under cursor
    "   'f'   file:   open the filename under cursor
    "   'i'   includes: find files that include the filename under cursor
    "   'd'   called: find functions that function under cursor calls

可以在.vimrc中添加下面的快捷键,免得每次都要输入一长串命令


173 nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR>
174 nmap <C-/>g :cs find g <C-R>=expand("<cword>")<CR><CR>
175 nmap <C-/>c :cs find c <C-R>=expand("<cword>")<CR><CR>
176 nmap <C-/>t :cs find t <C-R>=expand("<cword>")<CR><CR>
177 nmap <C-/>e :cs find e <C-R>=expand("<cword>")<CR><CR>
178 nmap <C-/>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
179 nmap <C-/>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
180 nmap <C-/>d :cs find d <C-R>=expand("<cword>")<CR><CR>
181 endif
182
183 (5). 使用例子
184 首先进入源码目录, 在linux终端中输入以下命令以创建cscope数据库:
185 $ find ~/work/..Project/ -name "*.h" -o -name "*.cpp" > cscope.files
186 $ cscope -bkq -i cscope.files
190
191 然后, 用vim打开一个源文件(如: vim main.cpp),
192 打开后, 第一件事就是导入cscope数据库了:
193 :cs add /home/yourname/workpace/cscope.out /home/yourname/workpace
194
195 cscope数据库导入成功后, 就可以利用"步骤(4)"中定义的快捷键进行相关的查找,
196 浏览等操作了(当然也可以直接利用相关命令, 嘿嘿).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习 Vimscript 的方法有很多种,而且没有所谓的“笨方法”。不过,我可以给你一些建议来帮助你更好地学习 Vimscript: 1. 了解基础知识:开始学习之前,先了解一些基本的 Vimscript 概念,比如变量、函数、条件语句等。可以阅读一些入门教程或者官方文档来快速入门。 2. 学习示例代码:找一些简单的示例代码,并逐行分析它们的含义和功能。可以在网上搜索一些 Vimscript 示例或者阅读一些 Vim 插件的源代码。通过学习他人的代码,你可以了解到 Vimscript 的常用技巧和惯用法。 3. 实践操作:Vimscript 最好的学习方式就是实际使用它来编写 Vim 配置和插件。尝试编写一些简单的自定义命令、键盘映射或者自动命令,并将其应用到你的 Vim 环境中。通过实践操作,你可以更好地理解和掌握 Vimscript 的语法和功能。 4. 阅读文档:Vim 自带了详细的帮助文档,可以通过在 Vim 中输入 `:help` 命令来查看它们。在文档中搜索关键词,可以找到对应的说明和示例代码。阅读文档是学习 Vimscript 的重要途径,可以帮助你了解 Vimscript 的各种功能和用法。 5. 参考资料:除了 Vim 自带的文档外,还有一些优秀的在线资料可供参考,比如 Vimscript 的官方文档、Vim 社区论坛、博客文章等。通过阅读这些资料,你可以深入学习 Vimscript 的高级特性和技巧。 记住,学习 Vimscript 需要耐心和实践,多写代码并不断尝试新的功能和技巧是提高的关键。祝你学习愉快!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值