注:文章参照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中添加如下代码(推荐):

 1    """"""""""""""""""""""""""""""
 2    " Tag list (ctags)
 3    """"""""""""""""""""""""""""""
 4    if MySys() == "windows"                "设定windows系统中ctags程序的位置
 5      let Tlist_Ctags_Cmd = 'ctags'
 6    elseif MySys() == "linux"              "设定windows系统中ctags程序的位置
 7      let Tlist_Ctags_Cmd = '/usr/bin/ctags'
 8    endif
 9    let Tlist_Show_One_File = 1            "不同时显示多个文件的tag,只显示当前文件的
10    let Tlist_Exit_OnlyWindow = 1          "如果taglist窗口是最后一个窗口,则退出vim
11    let Tlist_Use_Left_Window = 1         "在右侧窗口中显示taglist窗口

3. 使用

在taglist窗口中,可以使用下面的快捷键

 1 <CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
 2 o             在一个新打开的窗口中显示光标下tag
 3 <Space>       显示光标下tag的原型定义
 4 u             更新taglist窗口中的tag
 5 s             更改排序方式,在按名字排序和按出现顺序排序间切换
 6 x             taglist窗口放大和缩小,方便查看较长的tag
 7 +             打开一个折叠,同zo
 8 -             将tag折叠起来,同zc
 9 *             打开所有的折叠,同zR
10 =             将所有tag折叠起来,同zM
11 [[            跳到前一个文件
12 ]]            跳到后一个文件
13 q             关闭taglist窗口
14 <F1>          显示帮助

总结

ctags+Taglist配置

 1 ".............................ctags+taglist.......................................
 2 "默认打开Taglist
 3
 4 let Tlist_Auto_Open=1
 5
 6 let Tlist_Ctags_Cmd = '/usr/bin/ctags'
 7
 8 let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
 9
10 let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim
11
12 let Tlist_Use_Right_Window = 0 "在右侧窗口中显示taglist窗口
13
14 " minibufexpl插件的一般设置
15
16 let g:miniBufExplMapWindowNavVim = 1
17
18 let g:miniBufExplMapWindowNavArrows = 1
19
20 let g:miniBufExplMapCTabSwitchBufs = 1
21
22 let g:miniBufExplModSelTarget = 1

Update:

1. Taglist窗口快捷键

nnoremap <silent> <F4> :TlistToggle<CR>

注意:首先是vimrc中快捷键不要有重复,其次注意<F4>后面的空格。具体用法可参考doc/taglist.txt说明文档

转载于:https://www.cnblogs.com/aaronLinux/p/5469230.html

Env:ctags和Taglist安装与配置相关推荐

  1. VIM插件离线安装与配置(taglist,airliner,gutentags,LeaderF,gtags,AutoComplPop,omnicppcomplete,fzf,Rg)

    VIM插件离线安装与配置 1.VIM 插件离线安装与配置 1.1 离线包 2.vim8安装 2.1.查看vim版本 2.2.vim下载 2.3 vim安装步骤 3. vimrc通用配置 4.插件管理( ...

  2. win7系统中给GVim 配置ctags和taglist插件

    Vim安装ctags和taglist插件 通过ctags建立索引,可以用其浏览代码. 通过taglist可以在窗口中直接看到源代码的结构. ctags的安装 这个安装非常简单,在http://ctag ...

  3. vim无法打中文_vim+ctags+cscope+Taglist+Nerdtree打造成sourceinsight

    听说vi很强大?是的,最近笔者需要在Linux下编写一些C代码和查看一些C源码,但是默认的vi并不支持函数之间的跳转.查看函数的定义等等,所以笔者就将vi打造成了一个ide(可以勉强称得上吧).首先我 ...

  4. Linux 内核阅读工具vim+ctags+cscope+taglist

    今天,来介绍一下vim+ctags+cscope+taglist的内核阅读配置.当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个例子).我们先来看看实现的界面是怎么样的: ...

  5. 【转】使用 vim + ctags + cscope + taglist 阅读源码

    原文网址:http://my.oschina.net/u/554995/blog/59927 最近,准备跟学长一起往 linux kernel 的门里瞧瞧里面的世界,虽然我们知道门就在那,但我们还得找 ...

  6. linux vim tag,Vim基础知识之ctags 及 Taglist 插件

    Vim基础知识之ctags 及 Taglist 插件 1. 我的界面 2. ctags exuberant ctags是一般Linux系统上缺省的ctags 我的ctags版本:Exuberant C ...

  7. vim 的ctags,taglist和supertab详解

    Taglist和Ctags介绍  Taglist是Vim的源代码浏览插件,提供了在Vim中查看文件中包含的函数列表和类的方法类表的功能.Taglist功能的实现要依赖于Ctags.Ctags是一个用于 ...

  8. Linux:Vim的安装与配置

    Vim的安装与配置 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme https://blog.csdn.net/gat ...

  9. zookeper安装_ZooKeeper安装和配置

    ##软件下载 写本文时, ZooKeeper 最新稳定版本是 3.4.8, 可以从 ZooKeeper官网下载 zookeeper-3.4.8.tar.gz.将下载的 zookeeper-3.4.8. ...

  10. Redash 9安装与配置(基于Docker方式)

    Redash 9 Docker方式安装与配置详解 安装docker 卸载原系统docker apt-get remove docker docker-engine docker.io 安装docker ...

最新文章

  1. Enigma Virtual Box:生成可执行文件。
  2. Zabbix 2.4.5 自定义 key 监控 apache
  3. linux文件备份与删除,【Linux Shell脚本编程】自动备份与删除历史备份脚本
  4. 配置 HTTP 与 DNS 功能
  5. python三维可视化:配置tvtk
  6. 嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )
  7. Oracle:imp导入dmp文件
  8. C#实现Word批量转换Pdf
  9. arm-linux 看门狗,S3C6410看门狗源码实例
  10. SQL Server中的聚集索引与堆
  11. UnityShader学习教程之<矩阵的左乘还是右乘所导致的效果问题>
  12. [洛谷]P3374 【模板】树状数组 1 (#树状数组)
  13. 智能工厂的IGT数据采集网关-PLC与数据库双向通讯的多种SQL语句配置
  14. 【架构设计】什么是CAP理论?
  15. 苹果耳机可以用在安卓手机上吗_安卓手机连接Airpods也可以有弹窗了,可以放心入手华强北的airpids啦...
  16. 【产品设计】有了创意,如何从零开始搭建一套产品模型
  17. Vue 中如何配置项目支持 JSX 语法
  18. 使用upgrade-insecure-requests的问题
  19. 免疫力低吃nmn有用吗,nmn提高免疫力效果如何,掌握健康!
  20. 【Python-opencv3.4】视频基本操作(帧率,总视频帧数、从第N帧开始播放、播放进度显示、按键控制视频)

热门文章

  1. java中几种Map在什么情况下使用,并简单介绍原因及原理
  2. Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister
  3. Mysql 基础操作:DDL、DML、CRUD 与 常用命令
  4. GitHub 使用入门,创建仓库、添加分支...
  5. java第二季_Java入门第二季
  6. 推荐一下干货-------为什么你的app不耐看
  7. 解析json结构绘制canvas
  8. 009-2010网络最热的 嵌入式学习|ARM|Linux|wince|ucos|经典资料与实例分析
  9. 每当Xcode升级之后,都会导致原有的Xcode插件不能使用,解决办法
  10. webrtc学习———记录三:mediaStreamTrack