linux vim ctags,Linux环境上代码阅读与编写的利器-vim+ctags+cscope

Linux环境下代码阅读与编写的利器----vim+ctags+cscope

所谓工欲善其事,必先利其器。

从事Linux程序开发,特别是Linux驱动程序的开发,不管是通过windows下虚拟一个Linux,还是通过samba访问Linux都是很郁闷的事情。

原因就是程序本身需要Linux的编译和执行环境,但是又离不开windows下的IDE编码工具。Linux环境下编写代码和走读代码真的这么困

难吗?其实不然,vim就是一个十分强大的文本编辑工具,习惯了图形界面和鼠标的人刚接触都会认为其非常的难用,但是上手之后会觉得

挺高效,但我发现好多人都只是停留在输入、删除、移动等这些基本的操作上,其实vim的使用技巧非常的多,o'reilly 还有一本书专门讲

vim的使用《学习vi和vim编辑器》,当然技巧这么多好多都记不住,但是vim安装上一些插件和配合一些软件一块使用,还是能明显提高

其功能的。网络上也有 《将你的vim打造成IDE》这样的文章的,非常的详细,具体到每个功能的配置,篇幅也比较长。

这里用最快的步骤教你提高vim编码和走读代码的方法;

1.安装必要的软件,这些用于工程中函数的跳转查找。

sudo apt-get install ctags

sudo apt-get install cscope

2.这才是重点,已经配置好的vim的配置文件,可实现代码高亮、自动补齐,打开文件自动定位到上次退出的地方等功能,压缩包下载下

来之后解药到~/目录就能生效,下载地址http://download.csdn.net/detail/shamofeiyu/5123757点击打开链接

完成这些后,~/目录下会有一个脚本builtsrc,如果只是写写代码的话就可以使用了。如果是要走读工程代码可以到工程目录下,需要生

成一些索引文件,运行builtsrc脚本就会自动生成了,在生成索引文件的目录下用vim打开一个代码文件,光标定位到一个函数调用,

Ctr+】键便可以跳转到函数的实现了,Ctrl+o可以回退,当然还有很多的功能,这里篇幅有限不一一举例了,在使用中慢慢发掘吧!

来一张效果图

102715388.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle vm中的xp添加共享文件夹

接着就可以在虚拟的电脑系统里面打开我们的共享文件夹,在桌面找到”网络邻居“,双击打开 我们需要通过”添加一个网络邻居“来加载我们刚才添加的”共享文件夹“,根据向导一步步执行 然后点击”浏览“ 展开前面的 ”“ visualBox shared fold…

MSBuild + MSILInect实现编译时AOP-改变前后对比

实现静态AOP,就需要我们在预编译时期,修改IL实现对代码逻辑的修改。Mono.Cecil就是一个很好的IL解析和注入框架,参见编译时MSIL注入--实践Mono Cecil(1)。 我的思路为:在编译时将加有继承制MethodInterceptBaseAttribute标签的原方…

惊人体积,无码改造,黑月V1.7.4增强版[20110810]

使用方法:替换 易语言 LIB目录下的黑月支持库 记得备份 去掉代码长度过少不能编译的限制.(比如空代码) 优化编译出来的文件体积大小.(exe貌似没问题,dll貌似也没问题,就是dll对体积的优化不会太多) 体积减少了N倍...不解释,不解释,高手懂得... 转载于:https://blog.51cto.com…

linux stm32 ide,一文教你如何在ubuntu上快速搭建STM32 CubeIDE环境(图文超详细+文末有附件)...

在快速ubuntu上安装cubeide你值得拥有;适合对linux系统还不是很熟悉的同学;1 下载 cubeide登陆官网,下载链接不知道是否有效,如果无效,需要提交自己的邮箱地址,ST官方会将下载链接发送至你的邮箱&#xff0…

思科(Cisco)路由器策略路由配置详解

策略路由是路由优化的常用方法。在做路由牵引时很多情况都要用到策略路由。 网络拓扑 R2的E1\E2口分别与R3的E1\E2口相连。 先配置好静态路由&#xff0c;使192.168.2.X与192.168.1.X互通(不经过R3)。即R1<->R2<->R4是互通的。 下面介绍一下配置策略路由的方法。 实…

python numpy中sum()时出现负值

import numpy anumpy.random.randint(1, 4095, (5000,5000)) a.sum() 结果为负值, 这是错误的&#xff0c;a.sum()的类型为 int32&#xff0c;如何做才能是结果显示正确呢&#xff1f;按照如下做法&#xff1a; cnumpy.int64(a).sum() 结果为正直&#xff0c;正确&#xff0c;c…

SQL Server插入中文数据出现乱码问题

问题如上图。 创建数据库的代码---创建promary表 create table promary ( proID int primary key, proName varchar(50) not null ) 出现上图所示内容是因为proName varchar(50) not null这个地方有问题。一般来说&#xff0c;如果含有中文字符&#xff0c;用nchar/nvarchar&…

c语言find和mid函数的使用方法,Excel Mid函数和MidB函数使用方法的7个实例,含与Len和Find组合反向提取字符或截取单位...

在 Excel 中&#xff0c;Mid函数用于从文本中提取从指定位置开始的指定字符数&#xff0c;而MidB函数用于从文本中提取从指定位置开始的指定字节数&#xff1b;它们的区别为&#xff1a;前者把全角(如汉字)与半角(如数字和字母)都算作一个字符&#xff0c;后者把全角算作两个字…

C++类指针类型的成员变量的浅复制与深复制

本篇文章旨在阐述C类的构造&#xff0c;拷贝构造&#xff0c;析构机制&#xff0c;以及指针成员变量指针悬空问题的解决。需要读者有较好的C基础&#xff0c;熟悉引用&#xff0c;const的相关知识。 引言&#xff1a; 类作为C语言的一种数据类型&#xff0c;是对C语言结构体的一…

21天学通c语言第四版pdf,21天学通Visual C++ PDF扫描版[116MB]

21天学通Visual C 内容简介&#xff1a;本书是Visual C语言的入门教程&#xff0c;较全面地介绍了Visual C编程的相关知识&#xff0c;然而&#xff0c;本书并没有泛讲Visual C语言的所有知识&#xff0c;而是突出重点&#xff0c;选择最重要的内容进行讲解。本书一共分为五篇&…

继续聊WPF——动态数据模板

我为啥称之为“动态数据模板”&#xff1f;先看看下面的截图&#xff0c;今天&#xff0c;我们就是要实现这种功能。 大概是这样的&#xff0c;我们定义的DataTemplate是通过触发器动态应用到 ComboBoxItem 上。 这个下拉列表控件绑定了一个Person集合&#xff0c;Person类的定…

刺激战场c语言,刺激战场:假车库、C字楼都是啥?学会吃鸡术语新手变大神!...

原标题&#xff1a;刺激战场&#xff1a;假车库、C字楼都是啥&#xff1f;学会吃鸡术语新手变大神&#xff01;刺激战场有越来越多的新玩家加入其中&#xff0c;然而新手想入门&#xff0c;却有时候找不对方法&#xff0c;其实吃鸡这个游戏其实还是非常简单的&#xff0c;不过想…

HTMLParser-实战

了解了HTMLParser库的知识后&#xff0c;选择做一个小训练&#xff0c;对https://www.python.org/events/python-events/这个网址进行分析&#xff0c;之后输出其中每次会议的题目、时间和地点。 如果要简单了解下HTMLParser库可以点击打开 下面进入正题 这是网站的源码&#x…

c++2015语言,2015年7月TIOBE编程语言排行榜:C++ 的复兴

2015年7月TIOBE编程语言排行榜&#xff1a;C 的复兴C是2015年上半年同比增长最快的编程语言。具体为C 增长3.1%&#xff0c;Java 增长2.0%&#xff0c;C#增长1.6%&#xff0c;Python增长1.6%。C大幅度增长的原因可能是引入了新的C11标准。这使得C被大范围的接受。C 11标准为C带…

android抽奖动画,Android App中实现简单的刮刮卡抽奖效果的实例详解

主要思想&#xff1a;将一个view设计成多层&#xff1a;背景层&#xff0c;含中奖信息等&#xff1b;遮盖层&#xff0c;用于刮奖&#xff0c;使用关联一个Bitmap的Canvas在该Bitmap上&#xff0c;使用它的canvas.drawPath的api来处理 手势滑动(类似刮奖的动作)使用paint.setXf…

如何提高英语听力(内容摘自NECCS)+ 乘法表

乘法表 print(\n.join([ .join([%s*%s%-2s%(y,x,x*y) for y in range(1,x1)]) for x in range(1,10)])) 如何提高英语听力 很喜欢这篇关于提高英语听力的文章&#xff0c;所以收藏下来和大家一同分享一下 人走路时要用两条腿&#xff0c;没有任何人会觉得走路费劲。可如果让人…

android新拟态实现方法,Android 新拟态UI (Neumorphism)

前言本文转自github&#xff0c;只是进行了图片的处理和部分翻译&#xff0c;已获作者授权截至首次发文前找到的原作者的文章地址-May,17,2020若找到本文章更新的时间节点&#xff0c;请私信我更新。原作者github地址文末附源码下载地址&#xff0c;免费。Android上的拟态化UIT…

codeforces 919E Congruence Equation

E. Congruence Equationtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGiven an integer x. Your task is to find out how many positive integers n (1 ≤ n ≤ x) satisfy where a, b, p are all known co…

android 过滤数组中的重复元素,Flutter List数组避免插入重复数据的实现

List具有一定长度存在索引的对象集合(长度为0不存在索引,长度>0存在索引)常见列表1、定长列表默认值null例如:List fixedLengthList new List(2)、List fixedLengthList new List(8)List fixedLengthList new List(2);for(int i0;i<2;i){print("索引为${i}的值${…

[js]jquery里的jsonp实现ajax异源请求

同源请求-jquery <script type"text/javascript" src"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script type"text/javascript">$.ajax({url: "data.txt",type: "get",dataType…