oeasy教您玩转vim - 32 - # 函数跳转
程序移动
回忆上节课内容
上次内容很简单,主要针对文本类素材
移动段落
{向前
}向后
移动句子
(向前
)向后
如果我想程序中快速移动
怎么办?
#首先下载文本找到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 - # 函数跳转的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- Java的深浅拷贝认识
目录 浅拷贝 深拷贝 分辨代码里的深浅拷贝 在Java中,深拷贝和浅拷贝是对象复制的两种方式,主要区别在于对对象内部的引用类型的处理上. 浅拷贝 定义: 浅拷贝是指创建一个新的对象,但这个新对象的属性 ...
- Ceph存储池管理
目录 Ceph存储池 1. Ceph的存储流程 1. 数据写入 2. 数据读取 2. 资源池的配置 2.1 资源池创建 pgp是什么 (Placement Group for Placement pu ...
- HTML——input标签
很多表单元素都是由一个个的 input 元素组成的.它是自闭合标签,根据其 type 属性值的不同分为很多种,例如单行文本框.密码框.单选按钮.复选框.隐藏域.文件上传域.普通按钮.提交按钮以及重置按 ...
- 在 Inno Setup 中检测 .NET 5 / .NET Core 运行环境是否存在
为了将 .NET 5 / .NET Core 应用程序部署到客户机,我们可以编写 Inno Setup 代码来判断客户机是否安装了必要的运行环境..NET 官方仓库 中提供了一个名为 NetCoreC ...
- iOS性能优化-内存泄漏
一.现象 最近直播助手在iOS11 ReplayKit上面经常出现进程使用内存超过50MB被系统杀掉,并且这种进程被杀掉不会有任何crash log留下来,只能在Console中留下一点消息. 二.使 ...
- js 生成pdf
最简洁的代码 <script src="js/html2canvas.min.js" type="text/javascript" charset=&qu ...
- wireshark常见使用技巧
(1)wireshark根据报文不同字段排序 举例说明:现在有50000个1588 sync报文,我想根据报文的originalTimestamp(seconds)字段进行排序,该如何操作呢? 操作过 ...
- Github Markdown 指定图片在光亮或暗黑模式展示
Github 根据系统配置不同的主题模式: 如果想要在光亮模式和暗黑模式显示不同的主题的图片,比如以下就是同一个图片在暗黑模式和光亮模式下展示: 解决方案 在markdon 的图片链接后添加#gh-d ...
- CF364E
problem 算法1 我会暴力!!! 直接枚举右上角和左下角,然后计算答案,使用前缀和优化后时间复杂度为 \(O(n^4)\). 算法2 我会分治!!!. 我们知道答案就是左边+右边+两边都有的个数 ...
- java多线程编程:你真的了解线程中断吗?
java.lang.Thread类有一个 interrupt 方法,该方法直接对线程调用.当被interrupt的线程正在sleep或wait时,会抛出 InterruptedException 异常 ...