vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...

5e1efd40d03dd8cdf70075393bd5fe28.png

本篇文章介绍 vim 的一些使用技巧:

  • 在程序代码中快速跳转
  • 在文件内跳转到变量定义处

在程序代码中快速跳转

在 vim 中查看代码文件时,可以使用下面命令在程序代码中快速跳转,提高效率。

  • %
    跳转到光标所在括号的另一个配对括号上,适用于小括号()、大括号{}、方括号[]。
    例如当前光标在左大括号 { 上,输入 % 命令,光标会跳转到配对的右大括号 } 上。
    这个命令也适用于C语言的条件编译宏,可以在配对的 #if、#ifdef、#else、#elif、 #endif 之间快速跳转光标。
  • [m
    跳转到当前光标往上的最近一个函数开头,停在左大括号上。
    如果光标在函数内,就是跳转到当前函数的开头左大括号。
    如果光标在函数外,则跳转到上面最近一个函数的开头左大括号。
  • [M
    跳转到当前光标往上的最近一个函数结尾,停在右大括号上。
    无论当前光标在函数内、还是函数外,都是跳转到上面最近一个函数的末尾右大括号。
  • ]m
    跳转到当前光标往下的最近一个函数开头,停在左大括号上。
    无论当前光标在函数内、还是函数外,都是跳转到下面最近一个函数的开头左大括号。
  • ]M
    跳转到当前光标往下的最近一个函数结尾,停在右大括号上。
    如果光标在函数内,就是跳转到当前函数的末尾右大括号。
    如果光标在函数外,则跳转到下面最近一个函数的末尾右大括号。
  • [{
    跳转到当前光标往上最近一个没有匹配的左大括号,停在左大括号上。
    例如光标在 if 语句内,则跳转到 if 语句开头左大括号。
  • ]}
    跳转到当前光标往下最近一个没有匹配的右大括号,停在右大括号上。
    例如光标在 if 语句内,则跳转到 if 语句末尾右大括号。
  • [(
    跳转到当前光标前面最近一个没有匹配的左小括号,停在左小括号上。
    例如光标在一个小括号 () 内,则跳转到左边最近的左小括号。
  • ]) 跳转到当前光标后面最近一个没有匹配的右小括号,停在右小括号上。
    例如光标在一个小括号 () 内,则跳转到右边最近的右小括号。

这些命令都可以在前面加上数字,表示跳转级数. 例如:

  • 3[m
    将跳转到当前光标往上的第三个函数开始处,停在左大括号上。
    如果光标在函数内,则当前函数是第一个函数,会再往上跳两个函数。
  • 3[{
    将跳转到当前光标往上的第三级大括号开始处,停在左大括号上。

可以使用 :help [( 命令查看 [( 的说明。% 的说明在 [( 的上面。
可以使用 :help [m 命令查看 [m 的说明。
其他命令的说明可以类似查看。

在文件内跳转到变量定义处

在当前文件内,可以使用下面命令来快速跳转到变量定义处。

  • gd
    在当前函数内查找当前光标下的单词,如果找到,就跳转到该单词在函数内第一次出现的地方。
    对局部变量来说,也就是跳转到变量定义处。
    如果光标下的单词对应全局变量,这个命令不会跳转到全局变量定义处,而是会跳转到函数内第一次用到该变量的地方。
    这个命令本身没有进行语法解析,只是简单的执行字符串搜索并跳转。在实际使用时可用来查找任意单词,不限于查找变量。
  • gD
    在当前文件内查找当前光标下的单词,如果找到,就跳转到该单词在文件内第一次出现的地方。
    对全局变量来说,也就是跳转到全局变量定义处。
    对局部变量来说,也能跳转到局部变量定义处。
    如果变量是在文件外定义,就只能跳转到当前文件内第一次用到该变量的地方。

实际测试,gd 命令只能在函数内搜索,不会跳转到全局变量定义处。gD 命令是在整个文件内搜索,可以跳转到全局变量定义处,也能跳转到函数内的局部变量定义处。

如果不确认要搜索的单词是全局变量,还是局部变量,统一用 gD 命令即可。如果变量是在当前文件内定义,gD 命令一定能跳转到文件内的变量定义处,比 gd 命令要方便。

可以用 :help gd:help gD 命令来查看帮助说明,这两个命令的帮助说明是相邻的。

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

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

相关文章

震撼!英伟达用深度学习做图像修复,毫无ps痕迹

在计算机视觉研究领域,NVIDIA常常让人眼前一亮。比如“用Progressive Growing的方式训练 GAN,生成超逼真高清图像”,“用条件 GAN 进行 2048x1024 分辨率的图像合成和处理”的pix2pixHD项目,或者脑洞大开的让晴天下大雨、小猫变狮…

程序员过关斩将--重复的请求并不好过滤

为什么要做重复请求的过滤呢?不过滤不行吗?过滤重复请求很难吗?加一个请求ID不就好了吗?每个技术难点的话题,肯定是由一个产品需求引发的,俗话说:如果没有产品经理,程序员将不需要听…

.NET团队送给.NET开发人员的云原生学习资源

企业正在迅速采用云的功能来满足用户需求,提高应用程序的可伸缩性和可用性。要完全拥抱云并优化节约成本,就需要在设计应用程序时考虑到云的环境,也就是要用云原生的应用开发方法。这意味着不仅要更改应用程序的构建方式,还要更改…

深夜,学妹说她想做Python数据分析师

大家好,我是大鹏,目前是一名数据分析师。上周末晚上,我的学妹突然约我出来喝咖啡。想起学妹在学校就一直说想转行,最近在网上捣鼓自学数据分析软件有一小段时间了。我想她不是为了叙旧。果然来到咖啡店,她一屁股坐下来…

在真实工作中的编程是怎么样的,与学校里有什么不同?

学校里每门编程语言课程都是上一点上不完的,实验课写的代码最长一两百行。 而在真实的工作环境中,程序员写代码是怎么样的?每天要啪啪啪手敲成千上万行代码嘛?和在学校学习时写代码有什么异同呢?/*说说我的经验*/刚进公…

聊一聊Docker与时区

前言 当我们把应用部署到容器里面之后,基本都会要和时间/时区打交道!!大部分的应用,多多少少都会有获取当前时间的操作,试想一下应用拿到的时间不对,那么业务极有可能会乱套,造成严重的损失。时…

百度竟然不是中国的

2019独角兽企业重金招聘Python工程师标准>>> 身份之谜—百度是中国公司吗? 虽然,Baidu在美国上市使用了“中国的Google”这么一个概念,说真的,我知道的Baidu和Google最大的共同点也许就是他们都是美资公司。Baidu公司…

tortoisegit图标消失_安装TortoiseGit 状态图标不能正常显示

如果你安装 TortoiseSVN 之后,功能使用正常,但是文件夹或文件左上角就是不显示图标,那么你可能1. 64bit 系统上装了 32bit 的 TortoiseSVN解决方法是,再安装 64bit 的 TortoiseSVN,两者可并行运行2. Windows Explorer …

好用的验证框架FluentValidation(上)

把数据错误扼杀在早期,那就是在数据的入口处,一般数据都是打包成一个实体的方式进传递,FluentValidation就以实体类为单位进行属性验证的集合。Install-Package FluentValidation下面看一个例子吧。实体类:public class Person {p…

10G 职场晋升/IT干货/生活技能/理财秘籍 【全套】学习资料免费送!

你的同龄人正在抛弃你,大学毕业后五年,你就会发现,同龄人之间的差距已经是云泥之别。当年一起追剧,一起逃课,一起吹牛的同学,有人已经年薪百万,有人还在抢两块钱的红包。有人去过许多国家&#…

iNeuOS工业互联平台,发布消息管理、子用户权限管理、元件移动事件、联动控制、油表饼状图和建筑类设备驱动,v3.4版本...

目 录1. 概述... 22. 平台演示... 23. 消息管理... 24. 子用户权限管理... 35. 元件移动事件... 36. 联动控制... 47. 增加油表和饼图... 58. 增加住建部DL/T645和智能液位计协议驱动1. 概述发布iNeuOS 3.4版本,主…

程序猿看段子,越看越心碎!

程序员整天面对代码,压力一定很大吧~小编表示应该时不时也给你们来点段子,增加一下生活的乐趣,让你们看到希望的曙光...今天整理的10个段子,你们绝对喜欢。看看就知道啦!【一直有人问我,程序员应该看什么书…

mysql写入监控_zabbix 自定义key 监控mysql增删查改

vim /etc/zabbix/zabbix_agentd.d/mysql.conf##zabbix_agentd.d在这个文件夹下的.conf,都会被agent读取,我们这里新建的一个配置文件方便使用,这样就不需要去动主配置文件了UserParameterecho[*],echo "$1"#要传递参数要带[*],且ke…

自制H3C交换机CONSOLE线

单位有一台H3C S3600交换机,手痒痒的想进入玩一下。 从网上查得,连接CONSOLE接口用的是串口,只不过用RJ45水晶头插入而已。 山高路远,囊中羞涩,刚好手头上有一个文曲星的连接线,串口的。 凭自己半桶水的电子…

5月份Github上最热门的数据科学和机器学习项目

GitHub最近以数十亿美元的交易被微软收购。GitHub一直是开发人员之间协作的终极平台,我们已经看到数据科学和机器学习社区同样非常需要它,因此,我们希望GitHub能在微软的保护下继续发展下去。在本月排行中,上榜的项目有英特尔开源…

Blazor 中如何下载文件到浏览器

Blazor 中如何下载文件到浏览器目录一、前言二、方法一(导航跳转)三、方法二(下载后传出)(一) 使用 RestSharp 下载(二) 使用 BlazorDownloadFile 传出独立观察员 2021 年 3 月 28 日一、前言最近想给之前文章《下载中转加速器 VP…

荐书 | 5本数学科普让你不再“畏惧”数学,感受数学的内在美

最近,小木了解了许多关于数学的书籍,简直打开了小木数学新世界的大门。出版社寄了一些样书给小木,经过斟酌对比之后,推荐以下5本数学科普书给大家。01《数学简史》[中] 蔡天新 43.50提到数学,很多人的第一反应就是复杂…

ASP.NET Core依赖注入初识与思考

一、前言在上一篇中,我们讲述了什么是控制反转(IoC)以及通过哪些方式实现的。这其中,我们明白了,「控制反转(IoC)」 是一种软件设计的模式,指导我们设计出更优良,更具有松耦合的程序&#xff0c…

memcached mysql缓存_memcached做数据库缓存

最近研究memcache小有成果,把经验分享出来。白话:很早就听说memcache了,一直没搞懂,后来又看到redis很火,可以用来做缓存,研究了半天也没搞懂咋个做缓存,后来也不纠结了,继续学习python,当对pyt…

掌握Python爬虫基础,仅需1小时!

随着互联网的发展,google、百度等搜索引擎让我们获取信息愈加方便。但需求总会不断涌现,纯粹地借助百度等收集信息是远远不够的,因此编写爬虫爬取信息的重要性就越发凸显。比如有人为了炒股,专门爬取了多种股票信息;也…