程序移动

回忆上节课内容

  • 上次内容很简单,主要针对文本类素材

  • 移动段落

  • {向前

  • }向后

  • 移动句子

  • (向前

  • )向后

  • 如果我想程序中快速移动

  • 怎么办?

#首先下载文本找到tomsawyer.txt git clone http://github.com/overmind1980/vimtutorial.git #然后把文本打开 cd vimtutorial vi oeasy.java

括号间跳转 %

  • 当我们的鼠标在小括号内部时

  • 我们可以使用 % 跳转到括号对的前半部分

  • 然后我们可以使用 % 在这对儿括号的两个位置指间跳转

  • 比如在 public static void main(String[] args) 中的 小括号( 上

  • 这个 % 不但对于小括号有用,对于成对的大括号、中括号也都有用

  • 对于c语言的 / ... / 注释的头尾 ୧(﹒︠ᴗ﹒︡ )୨有用

  • 对于 #if,#ifdef,#else,#elif,#endif 也有用

  • 这个 % 不支持 [count]

小括号跳转

  • 方向

  • ]) 近挨着的下一个)

  • [( 进挨着的上一个(

  • [ 往上

  • ] 往下

  • 如果是大括号呢?

括号跳转

  • [( 跳转到上一个没配对的 (

  • ]) 跳转到下一个没配对的 )

  • [{ 跳转到上一个没配对的 {

  • ]} 跳转到下一个没配对的 }

  • 支持 [count]

  • 向上就是[

  • 向下就是]

函数中的跳转

  • 方向

  • ]} 近挨着的下一个}

  • ]] 本块的最后一行

  • [{ 紧挨着的上一个{

  • [[ 本块的第一行

  • [ 往上

  • ] 往下

注释的头尾

  • 注释跳转

  • [/、[*上一个注释/* .... */的头

  • ]*、]/下一个注释/* .... */的头

函数间跳转

-函数跳转

- `[m`下一个函数开头 - `[M`上一个函数结尾 - `]m`下一个函数开头 - `[M`上一个函数结尾 - 支持 `[count]` - `3]m` 可以往下跳到第 `3` 个函数开头 - `[m`、`]m` 这两个其实还挺好用的

跳到定义

  • 找到本地定义

  • gd - goto global declaration

  • 和 * 不一样的是它会往前找到第一个

  • 在 [[ 的范围内的第一个

没有配对的 #if 宏定义

  • 这个是针对宏定义里面的内容来的

  • [# 上一个没有配对的 #if、#else

  • ]# 下一个没有配对的 #else、#endif

标签跳转

#查找matchit.vim sudo find / -name matchit.vim # 把match.vim插件放到系统插件文件夹 cp /usr/share/vim/vim81/macros/matchit.vim /usr/share/vim/vim81/plugin #打开一个网页 vi oeasy.html

  • 这个matchit可以支持标签的跳转

  • 比如在 <html> 处按下 % 就可以到配对的 </html>

  • 挺好玩的

  • 试试吧

总结

  • 括号间跳转

  • [( 跳转到上一个没配对的 (

  • [) 跳转到下一个没配对的 )

  • [{ 跳转到上一个没配对的 {

  • [} 跳转到下一个没配对的 }

  • 成对括号间跳转 %

  • 不成对括号间跳转

  • 函数间跳转

  • ]m 下一个函数开头

  • [m 上一个函数结尾

  • ]M 下一个函数开头

  • [M 上一个函数结尾

  • #if、#else、#endif 没有配对的

  • [# 上一个没有配对的 #if、#else

  • ]# 下一个没有配对的 #else、#endif

  • 注释的头尾

  • [/、[* 上一个注释 /* .... */ 的头

  • ]*、]/ 下一个注释 /* .... */ 的头

  • 如果我想快速找到某个东西怎么办呢?

  • 下次再说

[Github地址] (https://github.com/overmind1980/vimtutorial) [Gitee地址] (https://gitee.com/overmind1980/vimtutorial) [蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)

oeasy教您玩转vim - 32 - # 函数跳转的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  7. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  9. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. 平衡二叉树(AVL)插入结点后的再平衡思路

    理解平衡二叉树 在解决平衡二叉树动平衡问题,我们先来明确什么是平衡二叉树: 平衡二叉树是二叉搜索树的一种特殊情况,所以在二叉搜索树的基础上加上了如下定义: 平衡因子:我们将二叉树中各个结点的左右子树的 ...

  2. Windows中实现将bat或exe文件作为服务_且实现命令行安装、配置、启动、删除服务

    一.背景描述 在Windows环境下进行日常的项目开发过程中,有时候需要将bat文件或exe文件程序注册为Windows的服务实现开机自己运行(没有用户登陆,服务在开机后也可以照常运行).且对于那些没 ...

  3. Docker 启动 Redis 就停止解决方案(2022-3)

    启动命令如下: docker run -itd \ -p 6379:6379 \ --name myredis \ -v /home/redis/redis.conf:/etc/redis/redis ...

  4. 在 Rainbond 中一键安装高可用 Nacos 集群

    描述如何通过云原生应用管理平台 Rainbond 一键安装高可用 Nacos 集群.这种方式适合不太了解 Kubernetes.容器化等复杂技术的用户使用,降低了在 Kubernetes 中部署 Na ...

  5. uniapp 页面跳转传值和接收

    前端面试题库地址:https://www.yuque.com/sxd_panda/sdluga 1.首先介绍最原始的跳转方法,类似于html中的a标签,不过在uniapp中需要将a标签换成 <n ...

  6. IMX6ULL基本环境搭建

    基本环境搭建 1 交叉编译工具 在虚拟机中安装交叉编译工具,为后续开发做准备. 1.1 工具版本 工具版本:Linaro Releases 当前虚拟机为64位系统,因此下载64位系统的工具: $ un ...

  7. Java中编译异常与运行异常的区别

    编译期异常和运行期异常的区别 编译期异常和运行期异常的区别如下 异常处理要求不同:编译期异常(也称为检测异常checked Exception)要求在代码中显式地处理(使用try-catch或者thr ...

  8. INFINI Easysearch 与华为鲲鹏完成产品兼容互认证

    何为华为鲲鹏认证 华为鲲鹏认证是华为云围绕鲲鹏云服务(含公有云.私有云.混合云.桌面云)推出的一项合作伙伴计划,旨在为构建持续发展.合作共赢的鲲鹏生态圈,通过整合华为的技术.品牌资源,与合作伙伴共享商 ...

  9. (四)基于multiprocessing.dummy线程池爬取梨视频的视频信息

    功能:爬取梨视频科技栏最热的几个视频.  1. 找到视频对应的通用标签 可以看出关于视频的信息都存放在li标签中 2. 拿到视频的名称以及对应的url 3.进入Video的url,找到视频信息的地址 ...

  10. 暴走漫画系列之高仿淘宝收货地址(附demo)

    引语: 我是个程序猿,一天我坐在路边一边喝水一边苦苦检查bug. 这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱. 然后接着调试程序.他可能生意不好,就无聊的看看我在干什么,然后过了 ...