在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一节我们安装代码标签索引工具ctags,它一个最常用的功能就是“转到定义”了,查找某个变量的出处,查找它被引用的地方等等。当然它还可以与taglist等工具配合使用,获得更强大的功能,在这一篇文章中我们只介绍ctags的安装与使用。
二、下载安装ctags
在MAC OS X中,目录/usr/bin中有ctags这个程序,这时如果你在终端输入
$ctags
将会打印出以下信息:
$usage: ctags [-BFadtuwvx] [-f tagsfile] file ...
但是,系统自带的ctags并不是我们想要的ctags,我们暂且忽略它,不过要记得有这么回事。
2.1 下载ctags源码包
打开http://ctags.sourceforge.net网站下载ctags源码包,已经很久很久没有更新了,最新版本是ctags-5.8.tar.gz。
下载下来后,将其解压到你的用户文件夹下,我的用户名是apple,所以我将它解压到/Users/apple目录下。
这时候应该有/Users/apple/ctags-5.8这个文件夹了,为了方便起见,我们将文件夹ctags-5.8重命名为ctags。
2.2 编译ctags源码
cd到ctags文件夹中,执行命令
./configure
完成后再执行命令
make
顺利的话,在ctags文件夹下就会出现ctags这个可执行文件了。
2.3 添加用户变量
如果不添加用户变量的话,我们每次输入ctags,调用的还是/usr/bin当中的ctags,这不是我们想要的。所以我们更改用户变量,使ctags指向/Users/apple/ctags文件夹。
在终端执行命令
vim ~/.profile
在打开的文件中,添加这么一行
export PATH=/Users/apple/ctags:$PATH
保存退出后执行命令
source ~/.profile
使.profile生效,这时如果我们再次在终端中输入ctags命令,就会打印出以下信息
ctags: No files specified. Try "ctags --help".
这说明系统调用了正确的ctags程序,阶段性胜利!
2.4 Demo
关于ctags的使用,我们可以通过在终端输入
$ctags —help
进行查看。
在这里我们还是以我在在博文⎣Mac OS X中搭建STM32开发环境(3)⎤中Demo使用的源码为例子,让大家感受一下ctags的使用方法。
我们还是将Demo源码解压到自己的用户文件夹之中,这里我解压到/Users/apple中,此时应该会有/Users/apple/stm32f4-discovery文件夹了。我们cd进去,执行命令
ctags -R
给所有的源码文件添加索引,这时候在stm32f4-discovery文件夹下就会出现一个名为tags的文件,该文件中保存的就是所有源码中得element reference信息。我们从当前目录启动MACVIM,查看main.c文件:
mvim src/main.c
这时打开了文件main.c,如下图
举个例子,如果我们想查看RCC的定义,只需要在vim中执行命令
:ta RCC
这时候,就会自动跳转到RCC的定义,如图中光标所在的行
这时,如果我们想跳回到main.c文件中,只需使用快捷键Ctrl+t即可。
怎么样,还算简单吧,复杂的功能也有很多,通过—help获得更详细的信息吧,另外,能够背过命令并且熟练使用也是很重要的。
下一节我将会给大家带来taglist的使用,就是在vim的窗口左面分出一片窗口显示文件目录,但是taglist的使用是需要ctags的,希望大家能首先安装好ctags。
上一篇:在Mac OS X中使用VIM开发STM32(3)
下一篇:STM32F40xxx 与 STM32F41xxx Flash结构详解
推荐阅读






推荐帖子
- 求无线移动充电电源的设计
- 有看到有人在论坛 DIY的无线移动电源求联系想转化生产联系朱先生13798801628 [本帖最后由court于2013-9-1508:48编辑]求无线移动充电电源的设计
-
court
电源技术
- U-BOOT代码编译问题,board_init 修改异步总线模式的代码报语法错误!求高人解答!
- 错误提示 100ask24x0.c:Infunction`board_init\': 100ask24x0.c:106:warning:implicitdeclarationoffunction`_asm_\' 100ask24x0.c:110:error:syntaxerrorbefore\':\'token 100ask24x0.c:135:error:syntaxerrorbefore\':\'token make[1]:***[10
-
szhengxindz
嵌入式系统
- 请教有源低通滤波器和直流电压跟随问题
- 1、以上有源低通滤波直流跟随电路,用TINA仿真V_IN和V_OUT可以跟随的很好,电压差几十uV左右,实际电路中V_IN在0.5V时V_OUT会高出13mV左右,V_IN在4.5V时V_OUT会高出2mV左右,测试电路中V_IN电压变化由R2、R5分压产生,请问是什么原因如何解决跟随问题,多谢2、顺便请教此类现象如何通过更改仿真器件参数通过TINA重现,多谢 \0\0\0eeworldpostqq请教有源低通滤波器和直流电压跟随问题
-
LJB
模拟与混合信号
- 磁芯材质及厂家
- 各位朋友,请帮忙提供以下下面这个规格磁芯的生产厂家和磁芯材质(锰锌OR镍锌)。 磁芯材质及厂家
-
summer1988
RF/无线
- 仪表放大器——可避免常见的设计陷阱
- 本帖最后由dontium于2015-1-2311:45编辑仪表放大器(IA)是运算放大器和反馈电阻的结合,用于精确地获取和放大信号。 使用这些通用放大器的一个常见错误是没有为输入偏置电流提供一条通路。25年以来,我们一直在向人们展示一幅图表,强调正确运行所要求的必要输入偏置,但广大设计人员似乎都没有注意到这一点。之所以会这样也许正是因为它的名字——仪表放大器。它听起来像是实验室仪器,例如:示波器或者频谱分析仪等,包括一些随时可用的输入。好吧,差不多是这样,但仪表放大器需要
-
德州仪器
模拟与混合信号
- 看到很多交流输入电压等采样信号都采用这种电路结构
- 这边稳压管是不是就是让进MCU的电压采样信号不超过3.3V吧,就是交流输入端电压采样信号等等1)为啥都用这种结构?有啥讲究;2)查了一下稳压管规格书,稳压值都选80V这么高,只是钳位3.3V呀?还是别的地方用到这么高的,统一物料? 看到很多交流输入电压等采样信号都采用这种电路结构
-
西里古1992
模拟电子