vim查看函数原型

vim 查看函数原型可以分为系统函数和自定义函数

一、系统函数:

偶用shift+K

二、自定义函数:vim 配合ctags实现函数原型快速定位

ctags可以分析程序生成tag文件为vim所用,从而在编写程序时实现函数原型、数据结构声明等快速跳转,很是方便。

首先确定你的Linux系统里安装了ctags。没有的话,请先安装ctags。如果是Debian或者Ubuntu系统,直接在终端上运行:

sudo apt-get install ctags

装好ctags后,找一个源码目录,在终端上运行如下命令,会生成一个tags文件。

ctags -R

然后打开vi,输入类似如下的指令,tags=后面为刚才生成的tags文件的全路径名。

:set tags=/Your/Path/To/tags

然后就可以尝试跳转了。如果是经常使用的工程,将上面的set一行写在你的.vimrc文件里即可。

常用跳转方法:光标处Ctrl-]键:跳到光标所在单词的tag。Ctrl-T键:跳回原来的位置。g]键(先按g再按]):如果有同名的多个tag,可以用这两个键进行跳转,会提示选择序号。

三、显示函数列表:

大概用法:在使用vim的时候,使用:TlistToggle命令切换函数列表的开、关。按住ctrl键然后按两下w键在正常编辑区域和tags区域中切换。在tags区域中,把光标移动到变量、函数名称上,然后敲回车,就会自动在正常编辑区域中定位到指定内容了,很方便的。   如果我们写了一个函数首先应该保存文件,然后切换到函数列表区,再从列表区切换回来是就可以看到列表区有我们刚刚写的函数了。

时间: 2024-08-30 05:41:16

vim查看函数原型的相关文章

vim配置函数跳转(c/c++)

暂时草记一下,有时间好好整理 ctags 如果只是查看函数与变量是在哪里定义的,用ctags就可以了. ctrl+]跳到定义的地方,ctrl+t跳回来. 想要像IDE那样在旁边显示函数与变量列表,用taglist插件. ctags下载地址http://ctags.sourceforge.net/ cscope 如果想要更多,比如: 函数是在哪里实现的 变量是在哪里赋值的 函数在哪里被调用了 此时就要用cscope. cscope下载地址http://cscope.sourceforge.net

Linux中快速找到函数原型的方法

在Linux的控制台,输入man命令,即可查看对应函数原型,用法,及所需要的头文件啦 eg: man stat 但是你会发现这个stat是一个Linux 命令,不是我们想查找的函数.那是因为我们找错了章节.stat函数的用法应该在第二章节,即man 2 stat;

“函数声明”、“函数原型”与“函数定义”辨析

最近在看一本关于C的书,对函数声明和函数定义的定义很是模糊,分不清楚,百度了一下,发现一篇帖子写的很是不错,转载过来: 原文: 对函数的“定义”和“声明”不是一回事.函数的定义是指对函数功能的确立,包括指定函数名,函数值类型.形参及其类型以及函数体等,它是一个完整的.独立 的函数单位.而函数的声明的作用则是把函数的名字,函数类型以及形参的类型.个数和顺序通知编译系统,以便在调用该函数时进行对照检查(例如,函数名是否 正确,实参与形参的类型和个数是否一致),它不包括函数体.————谭浩强 ,<C程

vim 查看某字符串出现的次数

http://blog.chinaunix.net/uid-23577393-id-1751983.html To count how often any pattern occurs in the current buffer use the substitutecommand and add the 'n' flag to avoid the substitution.  The reported numberof substitutions is the number of items. 

函数原型prototype以及对象的隐式原型__prot0__的基本了解

prototype原型: 一. 函数与对象的关系    1. 函数是对象的一种(函数是对象类型)        例: function fn1(){.........}           console.log(fn1 instanceof Object);           返回true,说明函数(fn1)是对象类型. 2. 对象是由函数创建的       例: var obj = new Object();           var arr = new Array(3);       

void swap(int a,int b)这样一个函数原型能交换两个数么?可以!!

昨天在指导别人指针的时候,突发奇想想到这么一道题,我觉得挺有意思的,发给大家看看,虽然不是什么很高级的技术,但是是个很有趣的思路..... 题目就是: void swap(int a,int b)这个函数原型,不能用全局变量与静态变量的情况下,怎么实现交换两个数? 如果你有兴趣可以思考一下,如果没兴趣就直接看下面的答案吧. --------------------------------------------------华丽的分割线-------------------------------

基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------&gt; 可以返回派生类对象的引用或指针

您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 http://bbs.csdn.net/topics/380238133 的作者无关,不对其内容负责.百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面. 首页 精选版块 移动开发 iOS Android Qt WP 云计算 IaaS Pass/SaaS 分布式计算/Hadoop J

函数原型属性-JavaScript深入浅出(三)

前两次总结了JavaScript中的基本数据类型(值类型<引用类型>,引用类型<复杂值>)以及他们在内存中的存储,对内存空间有了一个简单的了解,以及第二次总结了this深入浅出的用法,我们知道了this的用法取决于函数四种调用的方式. 这一次我们来对JavaScript中原型以及原型链做一个深入浅出的理解. JavaScript深入浅出系列 1)复杂值vs原始值&&内存空间 - JavaScript深入浅出(一) 2)this的用法 – JavaScript深入浅出

C语言strcat,ctrcpy函数原型和改进

函数原型如下: char *strcpy(char *strDest, const char *strSrc) { char *address=strDest; assert((strDest!=NULL) && (strSrc!=NULL)); while(*strSrc!='\0') { *strDest++=*strSrc++; } *strDest='\0'; return address; } char *strcat(char *strDest, const char *str