文本编辑器Vim学习笔记(二)——移动、跳转
为了摆脱鼠标,高效准确的移动光标是首要的。下面总结移动指令。
上下左右
| 位置 | 按键 | 备注 |
|---|---|---|
| 上 | k | |
| 下 | j | |
| 左 | h | |
| 右 | i |
可以前加数字,表示移动的倍数。例如,”10j”表示下移动10行。
行
| 位置 | 按键 | 备注 |
|---|---|---|
| 首行 | gg | |
| 末行 | G | |
| 第{n}行 | {n}G、{n}gg、:{n} | ctrl-g查看当前位置 |
| 文件{n}%处的行 | {n}% | |
| 行首 | 0 | |
| 行尾 | $ | |
| 行内第一个非空字符 | - |
屏幕滚动
| 位置 | 按键 | 备注 |
|---|---|---|
| 下一页 | ctrl-f | |
| 上一页 | ctrl-b | |
| 下半页 | ctrl-d | |
| 上半页 | ctrl-u | |
| 下一行 | ctrl-e | |
| 上一行 | ctrl-y | |
| 当前页顶部 | H | Head |
| 当前页中部 | M | Medium |
| 当前页底部 | L | Last |
| 当前行滚到屏幕顶部 | zt | |
| 当前行滚到屏幕底部 | zb | |
| 当前行滚到屏幕中部 | zz |
单词
| 位置 | 按键 | 备注 |
|---|---|---|
| 下一词首 | w | |
| 下一词首(含符号) | W | |
| 上一词首 | b | |
| 上一词首(含符号) | B | |
| 下一词尾 | e | |
| 下一词尾(含符号) | E | |
| 上一词尾 | ge | |
| 下一词尾 | gE |
历史记录
| 位置 | 按键 |
|---|---|
| 上次位置 | ctrl-o |
| 下次位置 | ctrl-i |
搜索
搜索是最快速的跳转。
| 位置 | 按键 | 备注 | 下一个 | 上一个 |
|---|---|---|---|---|
| 下个{char} | f{char} | ; | , | |
| 上个{char} | F{char} | ; | , | |
| 下个{char}前 | t{char} | ; | , | |
| 上个{char}前 | T{char} | ; | , | |
| 下个{string} | /{string} | 正则表达式 | n | N |
| 上个{string} | ?{string} | 正则表达式 | n | N |
mark
设置标签:m{mark}
查看标签::marks
跳转到标签:`{mark}
Vim常用自动创建的位置标志有:
| 位置 | 标签名 | 备注 |
| —————- | —— | —- |
| 上次跳转位置 | ` | |
| 上次修改位置 | . | |
| 上次修改位置开头 | [ | |
| 上次修改位结尾 | ] | |
跳转
| 位置 | 按键 | 例子 |
|---|---|---|
| 关键字定义处 | ctrl+] | |
| 括号匹配处 | % |
折叠
Vim有 6 种折叠模式:
- manual 手工定义折叠
- indent 更多的缩进表示更高级别的折叠
- expr 用表达式来定义折叠
- syntax 用语法高亮来定义折叠
- diff 对没有更改的文本进行折叠
- marker 对文中的标志折叠
在.vimrc里增加set fdm=indent,即开启自动折叠。
常用操作为:
| 操作 | 按键 | 例子 |
|---|---|---|
| 关闭所有折叠 | zm | |
| 展开所有折叠 | zr | |
| 创建折叠 | zf | zf% 、zf56G |
| 关闭折叠 | zc | |
| 嵌套关闭折叠 | zC | |
| 展开折叠 | zo | |
| 嵌套展开折叠 | zO | |
| 下一个折叠 | zj | |
| 上一个折叠 | zk |
EasyMotion插件
Vim官网上评级为life changing的插件,能实现跨越多行的精准跳转。
使用方法:在原有的跳转指令前加{leader}{leader}键,{leader}默认为反斜杠\。
例如,输入\\w,效果如下:
输入位置对应的字母即可跳转过去。太帅了。
小结
总结了Vim常用移动和跳转指令,及Easymotion插件。