vim查看函数原型跳转方法

本文介绍了如何在vim中通过安装ctags、生成索引文件、配置vim和使用ctags命令来实现系统函数和自定义函数的快速定位,提供了详细的操作步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 vim 查看函数原型可以分为系统函数和自定义函数
一、系统函数:
        使用shift+K会自动跳转到介绍函数原型的地
二、自定义函数:
       vim 配合ctags实现函数原型快速定位  ,ctags使用方法如下:

      1、安装

       使用的是Ubuntu系统,那么可以使用如下命令直接安装:apt-get install ctags

       2、生成索引文件

      在源码目录下执行   #ctags –R*   “-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文 件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。Tags文件中包括这些对象的列表: 用#define定义的宏枚举型变量的值函数的定义、原型和声明名字空间(namespace)类型定义(typedefs)变量(包括定义和声明)类 (class)、结构(struct)、枚举类型(enum)和联合(union)类、结构和联合中成员变量或函数VIM用这个“tags”文件来定位上 面这些做了标记的对象。

       3、ctags配置

       使用vim ~/.vimrc 编辑vim的配置文档,在其中加入如下命令:set tags=/home/zhouyl/linux-3.4.7/tags;"后面的路径是使用ctags -R 后生成的tags文件所在目录,如果需要配置多个tags,只需如下再添加 set tags=/home/zhouyl/rap/libpcap-1.3.0/tags; set autochdir

      4、使用

            熟练的使用ctags仅需记住下面七条命令:

           (1)# ctags –R * (#为Linux系统Shell提示符)   

           (2)# vim –t tag (请把tag替换为您欲查找的变量或函数名)   

           (3) :ts(ts助记字:tagslist, “:”开头的命令为VIM中命令行模式命令)   

           (4) :tp(tp助记字:tagspreview)---此命令不常用,可以不用记   

           (5) :tn(tn助记字:tagsnext) ---此命令不常用,可以不用记   

           (6) Ctrl+ ] 跳到光标所在函数或者结构体的定义处   

           (7) Ctrl+ t 返回查找或跳转“#vim  –t  tag” :在运行vim的时候加上“-t”参数,例如:[/usr/src]#vim - t main这个命令将打开定义“main”(变量或函数或其它)的文件,并把光标定位到这一行。如果这个变量或函数有多处定义,在vim命令行模式 “:ts”命令就能列出一个列表供用户选择。“:tp”为上一个tag标记文件,“:tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。(最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl+]”,这样就能直接跳到这 个变量或函数定义的源文件中,并把光标定位到这一行。用“Ctrl+T”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次 “Ctrl+t”也能回到最初打开的文件,它会按原路返回 。注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还 要用“:set tags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。在完成编码时,可以手工删掉tags文件

 

### Vim 插件实现函数跳转功能 #### 使用 `ctags` 实现跨文件函数跳转 为了实现在不同文件之间查找变量或函数定义的功能,可以在 Linux 环境下的 Vim 中安装并配置 `ctags` 工具。这使得用户能够如同在集成开发环境 (IDE) 中那样便捷地导航代码[^2]。 首先,确保已安装 Exuberant Ctags 或 Universal Ctags: ```bash sudo apt-get install exuberant-ctags ``` 接着,在项目根目录生成标签文件: ```bash ctags -R . ``` 最后,在 `.vimrc` 文件中加入以下设置以便更好地支持 ctags 的使用: ```vim set tags=./tags;,tags; nnoremap <C-]> :tag <cword><CR> nnoremap <leader>ta :!ctags -R .<CR> ``` 上述映射允许按下 Ctrl+] 组合键来跳转到光标所在单词对应的定义处;而 `<leader>ta` 则重新构建当前项目的 tag 数据库。 #### 使用 Coc.nvim 提供更现代的解决方案 对于追求高效能与智能化体验的开发者来说,基于 Language Server Protocol(LSP) 的 Coc.nvim 是一个不错的选择。它不仅限于简单的符号定位,还提供诸如自动补全、语法检查等功能。以下是关于如何利用此插件完成函数跳转的具体方法[^3]: 向 `.vimrc` 添加必要的快捷方式绑定: ```vim nmap <silent> gd <Plug>(coc-definition) nmap <silent> gy <Plug>(coc-type-definition) nmap <silent> gi <Plug>(coc-implementation) nmap <silent> gr <Plug>(coc-references) ``` 这些命令分别对应着前往定义(`gd`)、类型定义(`gy`)、接口/类实现(`gi`)以及查看引用位置(`gr`)的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值