本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!

在我先前的博文⎣在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。


------------------------------------ 

大家可以+关注我的博客,以便得到最新的文章。

------------------------------------

打字不易,转载请注明出处(http://www.cnblogs.com/humaoxiao/p/3581424.html),谢谢。


在Mac OS X中使用VIM开发STM32(2)的更多相关文章

  1. 在Mac OS X中使用VIM开发STM32(1)

       本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!     在我先前的博文⎣在Mac OS X中搭建STM32开发环境⎤中,我们在Mac中DIY出了最 ...

  2. 在Mac OS X中使用VIM开发STM32(4)

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!       在上三篇文章中,我们基本搭建好了开发STM32的IDE环境,当然vim.ctags.tagl ...

  3. 在Mac OS X中使用VIM开发STM32(3)

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!       在上一篇文章中,我们安装了ctags插件,ctags能对我们的源代码文件中的元素建立索引表, ...

  4. 如何在Mac OS X中开启VIM语法高亮和显示行号

    VIM (Wikipedia图) Vim 是一款相当给力的源自UNIX平台的命令行文本编辑器,不过不给力的是,Mac OS X下并没有诸多Linux发行版上VIM那些牛逼哄哄的神马代码高亮显示啊,自动 ...

  5. 转-在Mac OS上搭建Python的开发环境

    在Mac OS上搭建Python的开发环境   本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执 ...

  6. Mac OS X 中一些常用的命令行技巧

    一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物 ...

  7. 在Mac OS X中配置Apache + PHP + MySQL

    在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Ap ...

  8. 在MAC OS X中默认的Web共享目录

    在Mac OS X中可以很方便的通过开启"Web共享"启用Apache服务:设置方法如下: 打开"系统设置偏好(System Preferences)" -&g ...

  9. 在Mac OS X中配置Apache + PHP + MySQL 很详细

    这是一篇超级详细的配置mac os下面php+mysql+apache的文章.非常详细我的大部分配置就是参考上面的内容的,比如,PHP不能连接数据库,就是改一下默认的php.ini中pdo_mysql ...

随机推荐

  1. cocos2d-x 屏幕坐标系和OPenGL坐标系转换

    转自:http://home.cnblogs.com/group/topic/57609.html cocos2d坐标系(OPenGL坐标系):以左下角为原点,x向右,y向上 屏幕坐标系(androi ...

  2. php join函数使用,很是方便

    以前数组转换成用逗号隔开的字符串都是自己写一个数组,最后还要去除多余的一个逗号,好麻烦. 无意中发现join函数,原来一句话就可以了. $_array = array('a','b','c','d', ...

  3. 增强的for循环(或foreach)

    增强的for循环(也称为foreach循环):不用下标变量,顺序的訪问整个数组.不能以其它顺序訪问数组,或者改变数组的元素. for(elementType element: arrayRefVar) ...

  4. ios开发——实用技术OC-Swift篇&触摸与手势识别

    iOS开发学习之触摸事件和手势识别   iOS的输入事件 触摸事件 手势识别 手机摇晃 一.iOS的输入事件   触摸事件(滑动.点击) 运动事件(摇一摇.手机倾斜.行走),不需要人为参与的 远程控制 ...

  5. android学习日记19--四大组件之BroadcastReciver(广播接收者)

    二.BroadcastReciver(广播接收者) 1.简述 BroadcastReciver位于android.content包下,主要用于对广播消息(Intent)的过滤并响应的控件.可以理解为全 ...

  6. careercup-C和C++ 13.6

    13.6 基类的析构函数为何要声明为virtual? 解答: 用对象指针来调用一个函数,有以下两种情况: 如果是虚函数,会调用派生类中的版本. 如果是非虚函数,会调用指针所指类型的实现版本. 析构函数 ...

  7. java_jdbc_利用结果集元数据将查询结果封装为map_MetaData

    package cn.itcast.batch; import java.sql.Connection; import java.sql.ParameterMetaData; import java. ...

  8. java递归所有文件

    import java.io.File; public class Filep { public static File f = new File("E:\\javatest"); ...

  9. ASP.Net_入门准备

    基础篇:(学习能力取决于你的基础扎不扎实) 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NET是一个全 ...

  10. Microsoft Visual Studio 2013 Update 2 离线安装程序

    ☆ 微软官网地址:☆ http://www.microsoft.com/zh-cn/download/details.aspx?id=42665☆ 离线安装程序 直接下载链接:☆ Microsoft ...