阅读大型代码,我们经常需要打开很多的代码文件,搜索各种定义。windows下用惯了ide的朋友,转战Linux的时候可能会觉得很难受,找不到合适的阅读工具。其实万能的vim就可以实现。下面介绍一下vim+ctags+taglist的配置。

安装ctags

ubuntu源提供了ctags的安装。

sudo apt-get install ctags

安装taglist

下载:

http://vim.sourceforge.net/scripts/download_script.php?src_id=6416

拷贝到ubuntu中,使用命令解压:

mkdir ~/.vim
unzip taglist_42.zip -d ~/.vim

解压后应该得到/doc和/plugin。 两个目录然后安装进vim

cp ~/.vim/doc/taglist.txt /usr/share/vim/vim74/doc/
cp ~/.vim/plugin/taglist.vim /usr/share/vim/vim74/plugin/

然后启动vim,命令模式输入

:helptags /usr/share/vim/vim74/doc/

之后,我们就可以使用

:help taglist.txt

命令来查看taglist的帮助文档。

之后,修改,vimrc 文件。

添加如下内容:

"""""""""Ctags"""""""""
set tags=tags
"""""""""taglist"""""""""
let Tlist_Auto_Open = 1
let Tlist_Sort_Type="name"
let Tlist_Exist_OnlyWindow =1
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1
let Tlist_Use_Lift_Window = 1

以后,你只需要在源码目录顶层输入

ctags -R 

生成tags文件,然后用vim打开你的C文件,就可以使用快捷键进行跳转了。

使用ctr 和两次w在侧窗口和主窗口之间进行切换。

        Ctrl + ] //跳入定义
Ctrl + T //调回

为ctags生成系统tags

如上之后,你会发现,ctags仅仅支持源文件中定义的宏,变量和函数,但是我们调用的基本函数和系统函数都没办法实现跳转。

使用下面的命令生成系统头文件tags

ctags -I __THROW --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --fields=+S  -R -f ~/.vim/systags /usr/include /usr/local/include

最后,设置你的~/.vimrc,加入一行:

set tags+=~/.vim/systags

就可以享受系统库函数跳转等功能了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. Windows计划任务执行时不显示窗口的问题
  2. OC三种方法实现定时器
  3. C++ ORM ODB 入门介绍(二)
  4. Java基础知识强化之IO流笔记53:IO流练习之 自定义类模拟BufferedReader的readLine()功能案例
  5. [Java] TreeMap - 源代码学习笔记
  6. TPL异步并行编程之取消任务
  7. PHP做负载均衡回话保持问题参考
  8. FB面经 Prepare: Largest Island
  9. [原创]Burp Suite web应用程序渗透测试神器
  10. golang sync包
  11. 频分复用(Frequency Division Multiplexer)
  12. day 93 Django学习之django自带的contentType表
  13. SSH整合案例
  14. ansible用playbook实现定期监控各机器磁盘和进程状态
  15. Web API使用记录系列(三)Web API与Owin
  16. 一个简单题,引发的思索 + nyoj 1189
  17. Eclipse集成resin服务器
  18. js 浮点数计算Bug
  19. 【BZOJ3834】[Poi2014]Solar Panels 分块好题
  20. 实现一个排序,要求时间效率O(n)

热门文章

  1. RSA算法原理及实现
  2. js带缩略图的图片切换效果
  3. 解决Android SDK Manager更新(一个更新Host的程序的原理实现和源码)
  4. 安装plsql
  5. UML类图的6中关系
  6. bzoj 3527: [Zjoi2014]力 快速傅里叶变换
  7. easyui的datagrid组件,如何设置点击某行不会高亮该行的方式
  8. Java使用JAX-WS来写webservice时 Unable to create JAXBContext
  9. in an effort to
  10. IP 碎片重组