程序移动
回忆上节课内容🤔
- 上次内容很简单,主要针对文本类素材
移动段落
- { 向前
- } 向后
移动句子
- ( 向前
- ) 向后
- 如果我想程序中快速移动
- 怎么办?🤔
#首先下载文本找到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/overmind19...)
[Gitee地址] (https://gitee.com/overmind198...)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/course...)