Vim+Taglist+Ctags(源码阅读).
终于搞定了,之前弄那么两天配置,都不成功.
需要软件:
ctags
taglist
1,ctags.
1)说明:
这个我就不演示了,我的RedHat5.5本身就有ctags.
2)验证ctags是否已经安装:
在终端上输入
ctags --version
后,会出现如下所示信息(表示安装过):
Exuberant Ctags 5.6, Copyright (C) 1996-2004 Darren Hiebert
Compiled: Jul 17 2006, 11:39:49
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
2,taglist
1)下载:
http://sourceforge.net/projects/vim-taglist/files/ 上搜搜,我的文件名为 taglist_46.zip.
2)新建目录,存放taglist:
在个人根目录($HOME)下运行:
mkdir ~/.vim
2)解压下载的 taglist_46.zip 文件(假设当前也在 个人根目录下):
unzip taglist_46.zip
此时,目录中多处了两个目录 "doc" 和 "plugin",将两个目录移动至 ~/.vim目录下:
mv doc/ plugin/ .vim/
3)安装taglist:
在终端输入 vi(m)打开 vim,在命令模式下输入:
helptags ~/.vim/doc
4)关联ctags和taglist:
首先,检查一下 ctags的安装目录:
which ctags
会显示: /usr/bin/ctags
知道ctags的安装目录后,在终端输入:
vim .vim/plugin/taglist.vim
找到 if !exists('loaded_taglist') 这行(其实在if !exists('s:cpo_save')行的上面也是可以,我第一次就是这样,看错了,也正常的原因可以猜到),在改行上面输入 let Tlist_Ctags_Cmd="/usr/bin/ctags"
let Tlist_Ctags_Cmd="/usr/bin/ctags"
if !exists('loaded_taglist')
" First time loading the taglist plugin
71 "
72 " To speed up the loading of Vim, the taglist plugin uses autoload
73 " mechanism to load the taglist functions.
74 " Only define the configuration variables, user commands and some
到此,已经安装完毕.
3.使用
转到要分析源码的目录,运行:
ctags -R
后,会在该目录下多一个tags的文件.
打开要分析的文件(如 vi inout.c),进入 vim;在命令模式用 TlistToggle 命令控制函数列表的开关.按住ctrl键,并且按两下W,即可在正常编辑区域和tags区域中切换。在tags区域中,把光标移动到变量、函数名称上,然后按下enter键,就会自动在正常编辑区域中定位到指定内容。
函数列表区显示的只是 inout.c 中的函数情况,在该文件中使用的在其他代码文件中的函数定义并没有显示出来。可以将光标停留的要查看的函数上,然后按“Ctrl+]”即可查看该函数的定义。查看完该函数的定义,按“Ctrl+O”可以跳回原文件。
具体的命令上网搜一下吧,这里也没有必要一个个列出.
ref:
1,http://www.cnblogs.com/shenlian/archive/2011/06/14/2080655.html
2,<Linux编程技术详解(杜华)>
Vim+Taglist+Ctags(源码阅读).的更多相关文章
- 内核源码阅读vim+cscope+ctags+taglist
杜斌博客:http://blog.db89.org/kernel-source-read-vim-cscope-ctags-taglist/ 武特博客:http://edsionte.com/tech ...
- [转]Linux下阅读源代码:(g)vim+Taglist+ctags
Linux下阅读源代码的方法很多,聪明人从标题应该就可以知道,需要(g)vim+Taglist+ctags.3者配合,真是珠联璧合,功力无限啊! vim/gvim什么是vim/gvim,如果看官连 ...
- 【linux】vim编辑器vim+taglist+ctags的配置
很多linux软件开发实际上并不实在X window的情况下进行的,这时我们不可能启动基于X window的图形化窗口,在这一情况下我们所能使用的主要的编辑器是vim和emacs.(ps:emacs和 ...
- ubuntu下linux内核源码阅读工具和调试方法总结
http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是l ...
- CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程
最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】FMDB源码阅读(二)
[原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...
- 【原】FMDB源码阅读(一)
[原]FMDB源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于 ...
- 【原】AFNetworking源码阅读(六)
[原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...
随机推荐
- Python学习笔记:06魔法方法和迭代器
魔法方法,属性和迭代器 新式类 通过赋值语句__metaclass=true或者class NewStyle(object)继承内建类object,可以表明是新式类. 构造方法 对象被创建后,会立即调 ...
- 探究Android中Listview显示错乱问题
问题 最近在项目中遇到过一个很棘手的问题,就是ListView在滑动后就莫名其妙的显示错乱,网上查阅资料后问题很容易的就解决了,但是对于问题产生的原因仍是一知半解,所以不甘心的我定下心来,狠读源码,终 ...
- 实验二:基于mykernel实现的时间片轮转调度
原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 如果我写的不好或者有误的地方请留言 ...
- Egret 入门
居然使用 TyptScript... 先贴手册地址:http://www.typescriptlang.org/docs/tutorial.html. 先要接受一个诡异的写法: private loa ...
- android 休眠唤醒机制分析(三) — suspend
本文转自:http://blog.csdn.net/g_salamander/article/details/7988340 前面我们分析了休眠的第一个阶段即浅度休眠,现在我们继续看休眠的第二个阶段 ...
- SCALA中的函数式编程
演示了值函数,匿名函数,闭包... 其它具体的应用,还得在生产当中吧.. 这个告一段落..其它SAM,CURRY,高阶函数,集合,泛型,隐式类..这些,还是找专门的书去深入了解啦... C:\User ...
- java 上传图片 打水印
其实就是在现有的图片上,画东西,也可以直接 贴图片 //添加水印 @Override public File pressFile(File file,String press_path) throws ...
- RR 和RC隔离问题
Sesssion 1: mysql> select @@tx_isolation; +-----------------+ | @@tx_isolation | +--------------- ...
- SDUT2087 离散事件模拟-银行管理(模拟)
题目链接. 分析: 模拟. 果然模拟什么的最讨厌了. 用e1,e2分别记录队列1,队列2的结束时间. 每个结点的s记录开始时间,e一开是记录逗留时间,进队列的时候,改成离开的时间.时刻记录总时间就可以 ...
- 多线程爬虫Java调用wget下载文件,独立线程读取输出缓冲区
写了个抓取appstore的,要抓取大量的app,本来是用httpclient,但是效果不理想,于是直接调用wget下载,但是由于标准输出.错误输出的原因会导致卡住,另外wget也会莫名的卡住. 所以 ...