#vimscrip学习——跳转和移动
文章目录
文档内的跳转
基础移动
命令 | 操作 |
---|---|
h | 左移一列 |
l | 右移一列 |
j | 下移一行 |
k | 上移一行 |
0 | 移动到实际行的行首 |
^ | 移动到实际行的第一个非空白字符 |
$ | 移动到实际行的行尾 |
如果需要两次及以上的基础移动的操作可以考虑使用其他移动方式!
单词/字符串移动
命令 | 操作 |
---|---|
w | 正向移动到下一单词的开头 |
b | 反向移动到当前单词/上一单词的开头 |
e | 正向移动到当前单词/下一单词的结尾 |
ge | 反向移动到上一单词的结尾 |
一个单词由字母、数字、下划线,或其他非空白字符的序列组成,单词间以空白字符分隔。而字串的定义则更简单,它由非空白字符序列组成,字串间以空白字符分隔。
命令 | 操作 |
---|---|
W | 正向移动到下一字符串的开头 |
B | 反向移动到当前字符串/上一字符串的开头 |
E | 正向移动到当前字符串/下一字符串的结尾 |
gE | 反向移动到上一字符串的结尾 |
单行单字符查找
命令 | 操作 |
---|---|
f{char} | 正向移动到下一个{char} 所在之处 |
F{char} | 反向移动到上一个{char} 所在之处 |
t{char} | 正向移动到下一个{char} 所在之处的前一个字符上 |
T{char} | 反向移动到上一个{char} 所在之处的后一个字符上 |
; | 重复上次的字符查找命令 |
,(我自己将, 作为了leader),所以将\ 映射为, | 反转方向查找上次的字符查找命令 |
文本对象选择
文本对象 | 选择范围 |
---|---|
iw | 当前单词 |
aw | 当前单词及一个空格 |
iW | 当前字串 |
aW | 当前字串及一个空格 |
is | 当前句子 |
as | 当前句子及一个空格 |
ip | 当前段落 |
ap | 当前段落及一个空行 |
d{motion}
命令和aw
、as
和ap
配合起来使用比较好,而c{motion}
s命令和iw
及类似的文本对象一起用效果会更好。
使用位置标记跳转
命令 | 操作 |
---|---|
m{a-z/A-Z} | 用选定的字母标记当前关闭所在位置(大写全局可见,小写缓冲区局部可见) |
``{mark}` | 跳转到位置标记所在行 |
自动位置标记
位置标记 | 跳转到 |
---|---|
`` | 当前文件中上次跳转动作之前的位置 |
``. ` | 上次修改的地方 |
``^` | 上次插入的地方 |
``[` | 上次修改或复制的起始位置 |
``]` | 上次修改或复制的结束位置 |
``<` | 上次高亮选区的起始位置 |
``>` | 上次高亮选区的结束位置 |
匹配括号间跳转
命令 | 操作 |
---|---|
% | 在一组开闭括号件跳转 |
##文档间的跳转
<C-o>
后退到上次跳转光标位置
<C-i>
前进到下次跳转光标位置
跳转动作
命令 | 用途 |
---|---|
[count]G | 跳转到指定的行号 |
/pattern<CR>/?pattern<CR>/n/N | 跳转到下一个/上一个模式出现之处 |
% | 跳转到匹配的括号所在之处 |
(/) | 跳转到上一句/下一句的开头 |
{/} | 跳转到上一段/下一段的开头 |
H/M/L | 跳转到屏幕最上方/正中间/最下方 |
gf | 跳转到光标下的文件名 |
<C-]> | 跳转到光标下的关键字的定义之处 |
'{mark}/`{mark} | 跳转到一个位置标记 |
设置搜索文件的扩展名
:set suffixesadd+=.rb
设置搜索后缀名.rb的文件
通过设置全局标记同样可以实现文件之间的跳转。