Env:ctags和Taglist安装与配置
注:文章参照http://blog.csdn.net/vaqeteart/article/details/4146618
想必用过Source Insight的人都记得这样一个功能:
- SI能够把当前文件中的宏、全局变量、函数等tag显示在Symbol窗口,用鼠标点上述tag,就跳到该tag定义的位置;
- 可以按字母序、该tag所属的类或scope,以及该tag在文件中出现的位置进行排序;
- 如果切换到另外一个文件,Symbol窗口更新显示这个文件中的tag。
在VIM中的taglist插件所实现的就是上述类似的功能,有些功能比SI弱,有些功能比SI更强。而且,taglist插件仍在不断完善中!
注:安装完ctags和Taglist可以不在源码目录下生成tags文件夹,而是只是利用ctags的目录提取功能,配合cscope来进行源码阅读。
一. ctags
1. 安装
sudo apt-get install ctags
2. 配置
在源码目录下执行ctags -R *,会在源码目录下生成一个tags文件夹
在vimrc中添加set tags=/code_source/tags即可
3. 使用
- Ctrl + ] 是跳转函数
- Ctrl + o 调回
- Ctrl + t 返回
- gd 转向局部变量定义处,并高亮显示
- *转向当前光标指向的单词下一次出现的地方
- #转向当前光标指向的单词上一次出现的地方
- :ts (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令
二. Taglist
1. 安装
- 首先,到http://www.vim.org/scripts/script.php?script_id=273下载最新版本的taglist plugin,目前版本是4.6(20130227)
- 下载后,把该文件在~/.vim/目录中解压缩,这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件
- plugin/taglist.vim – taglist插件
- doc/taglist.txt - taglist帮助文件
- windows用户需要把这个插件解压在你的$VIM/vimfiles或$HOME/vimfiles目录
2. 配置
在vimrc中添加如下代码(推荐):
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
if MySys() == "windows" "设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = 'ctags'
elseif MySys() == "linux" "设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Left_Window = "在右侧窗口中显示taglist窗口
3. 使用
在taglist窗口中,可以使用下面的快捷键
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助
总结:
ctags+Taglist配置
".............................ctags+taglist.......................................
"默认打开Taglist let Tlist_Auto_Open= let Tlist_Ctags_Cmd = '/usr/bin/ctags' let Tlist_Show_One_File = "不同时显示多个文件的tag,只显示当前文件的 let Tlist_Exit_OnlyWindow = "如果taglist窗口是最后一个窗口,则退出vim let Tlist_Use_Right_Window = "在右侧窗口中显示taglist窗口 " minibufexpl插件的一般设置 let g:miniBufExplMapWindowNavVim = let g:miniBufExplMapWindowNavArrows = let g:miniBufExplMapCTabSwitchBufs = let g:miniBufExplModSelTarget =
Update:
1. Taglist窗口快捷键
nnoremap <silent> <F4> :TlistToggle<CR>
注意:首先是vimrc中快捷键不要有重复,其次注意<F4>后面的空格。具体用法可参考doc/taglist.txt说明文档
Env:ctags和Taglist安装与配置的更多相关文章
- vim Ctags 和taglist安装和使用
Ctags是一个用于从程序源代码树产生索引文件(或tag文件),从而便于文本编辑器来实现快速定位的实用工具.在产生的tag文件中,每一个tag的入口指向了一个编程语言的对象.这个对象可以是变量定义.函 ...
- VIM Taglist安装配置和使用
问题描述: VIM Taglist安装于配置 问题解决: (1)安装Taglist包 (2)解压taglist压缩包 (3)将 ...
- vim配置之——ctags与TagList的配置以及NERDTree && doxygentoolkit的安装
参考(2)vim插件:显示树形目录插件NERDTree安装 和 使用 本文档主要对Linux下vim的ctags,TagList,NerdTree与doxgentoolkit进行相关的配置. 以下部分 ...
- vim下的ctags和taglist等的使用和配置
1.ctags (1)到 http://prdownloads.sourceforge.net/ctags/ctags-5.6.tar.gz 下载ctags源码ctags-5.6.ta ...
- 【转】使用 vim + ctags + cscope + taglist 阅读源码
原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...
- Linux 核心阅读工具vim+ctags+cscope+taglist
今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...
- 1. vim 的安装及配置
简介 vim是什么 vim是一款功能强大.支持各种插件.配置极为灵活的编辑器,且支持多种主流OS(linux.Unix.mac.windows),可用来各种编程预言的coding和文件编辑,用习惯了v ...
- 使用 vim + ctags + cscope + taglist 阅读源码
转自:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找到合 ...
- Linux环境下SVN服务器端的安装与配置
最近尝试了下在Linux(CentOS6.5)环境下安装与配置SVN服务器端,安装过程中碰到了一些问题,参看了网友们分享的一些心得,并通过自己实际的操作,最终安装与配置成功!总的来说网上的说法芸芸,大 ...
随机推荐
- SAP系统联机应用程序帮助
新安装好的SAP系统,联机帮助是不能用的. 通过菜单中的“帮助-应用程序帮助” 和“帮助-SAP库”都打不开任何帮助页面.这并不是因为SAPgui安装不完整,而是因为SAP的帮助系统本身就不包含在GU ...
- 235. Lowest Common Ancestor of a Binary Search Tree
代码如下: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; ...
- Soapui 简单学习整理
post 请求 输入汉字提示错误的问题 ; 如图 将request请求 下的属性 Encoding改为UTF-8
- c++内置函数---7
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 内置函数 调用函数时需要一定的时间和空间的开销.一般,函数调用包括5部分: 1.程序先执行函 数调用之前 ...
- CSS--滚动条设置;
CSS滚动条实现步骤及美化小技巧 1.overflow-y : 设置当对象的内容超过其指定高度时如何管理内容:overflow-x : 设置当对象的内容超过其指定宽度时如何管理内容. 参数:visib ...
- HDU-4405 Aeroplane chess(概率DP求期望)
题目大意:一个跳棋游戏,每置一次骰子前进相应的步数.但是有的点可以不用置骰子直接前进,求置骰子次数的平均值. 题目分析:状态很容易定义:dp(i)表示在第 i 个点出发需要置骰子的次数平均值.则状态转 ...
- poj3159 最短路(差分约束)
题意:现在需要分糖果,有n个人,现在有些人觉得某个人的糖果数不能比自己多多少个,然后问n最多能在让所有人都满意的情况下比1多多少个. 这道题其实就是差分约束题目,根据题中给出的 a 认为 b 不能比 ...
- Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒
http://www.51itong.net/android-badgenumber-9789.html Android系统 小米/三星/索尼 应用启动图标未读消息数(BadgeNumber)动态提醒 ...
- MFC-CString 字符串分割
CString strSrc = _T("1++2+3+4"); CStringArray strResult; CString strGap = _T("+" ...
- 【转】iOS开发拓展篇—静态库
原文网址:http://www.cnblogs.com/wendingding/p/3893095.html iOS开发拓展篇-静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码 ...