程序移动

回忆上节课内容

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

  • 移动段落

  • {向前

  • }向后

  • 移动句子

  • (向前

  • )向后

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

  • 怎么办?

#首先下载文本找到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. Java的深浅拷贝认识

    目录 浅拷贝 深拷贝 分辨代码里的深浅拷贝 在Java中,深拷贝和浅拷贝是对象复制的两种方式,主要区别在于对对象内部的引用类型的处理上. 浅拷贝 定义: 浅拷贝是指创建一个新的对象,但这个新对象的属性 ...

  2. Ceph存储池管理

    目录 Ceph存储池 1. Ceph的存储流程 1. 数据写入 2. 数据读取 2. 资源池的配置 2.1 资源池创建 pgp是什么 (Placement Group for Placement pu ...

  3. HTML——input标签

    很多表单元素都是由一个个的 input 元素组成的.它是自闭合标签,根据其 type 属性值的不同分为很多种,例如单行文本框.密码框.单选按钮.复选框.隐藏域.文件上传域.普通按钮.提交按钮以及重置按 ...

  4. 在 Inno Setup 中检测 .NET 5 / .NET Core 运行环境是否存在

    为了将 .NET 5 / .NET Core 应用程序部署到客户机,我们可以编写 Inno Setup 代码来判断客户机是否安装了必要的运行环境..NET 官方仓库 中提供了一个名为 NetCoreC ...

  5. iOS性能优化-内存泄漏

    一.现象 最近直播助手在iOS11 ReplayKit上面经常出现进程使用内存超过50MB被系统杀掉,并且这种进程被杀掉不会有任何crash log留下来,只能在Console中留下一点消息. 二.使 ...

  6. js 生成pdf

    最简洁的代码 <script src="js/html2canvas.min.js" type="text/javascript" charset=&qu ...

  7. wireshark常见使用技巧

    (1)wireshark根据报文不同字段排序 举例说明:现在有50000个1588 sync报文,我想根据报文的originalTimestamp(seconds)字段进行排序,该如何操作呢? 操作过 ...

  8. Github Markdown 指定图片在光亮或暗黑模式展示

    Github 根据系统配置不同的主题模式: 如果想要在光亮模式和暗黑模式显示不同的主题的图片,比如以下就是同一个图片在暗黑模式和光亮模式下展示: 解决方案 在markdon 的图片链接后添加#gh-d ...

  9. CF364E

    problem 算法1 我会暴力!!! 直接枚举右上角和左下角,然后计算答案,使用前缀和优化后时间复杂度为 \(O(n^4)\). 算法2 我会分治!!!. 我们知道答案就是左边+右边+两边都有的个数 ...

  10. java多线程编程:你真的了解线程中断吗?

    java.lang.Thread类有一个 interrupt 方法,该方法直接对线程调用.当被interrupt的线程正在sleep或wait时,会抛出 InterruptedException 异常 ...