基于行的基本移动:
看看就明白的东西:(主要明白屏幕行与实际行就好)
^ 移动到实际行第一个非空白符; g^ 移动到屏幕行第一个非空白符; gj, gk, g0, g$ 对应着屏幕行的移动; #另外: ctrl-f 向下翻一页; ctrl-b 向上翻一页; ctrl-d 向下翻半页; ctrl-u 向下翻半页; H: 当前页的页首; M:当前页的页中间; L:当前页的页尾; zz:让光标所在的行居于屏幕中央;
基于单词的移动:
对于单词与字符串的区别:一个长一个短吧。。!!可能吧。当面向字符串时,把w,b,e,ge 改为 W,B,E,gE就可以了;w 正向移动到下一个单词的开头; b 反向移动到当前/下一个单词的开头; e 正向移动到当前/下一个单词的结尾; ge 反向移动到上一个单词的开头;
字符的查找功能:
f{char} 正向移动到下一个{char}所在之处; T{char} 反向移动到上一个{char}所在之处; t{char} 正向移动到下一个{char}所在之处的前一个字符上; T{char} 反向移动到上一个{char}所在之处的前一个字符上;
另个,需要知道如何遍历查找的内容:对于查找一个单词时,可以使用:; 重复上次的查找命令; , 反向查找上次的查找命令;
/{单词} 正向查找; ?{单词} 反向查找; n 正向遍历查找的结果; N 反向遍历查找的结果;
用精确的文本对象选择选区:
Vim中的文本对象由两个字符组成, 第一个字符永远是 i 或 a, 一般以 i 开头的会选择分隔符内部的文本,以 a 开头的会包括分隔符在内的整个方本。
文本对象可以结合 v 来选择可视化区域, 也可以结合 d、c、y 等动作进行删除、修改与复制;
分隔符文本对象:
范围文本对象:
小技巧:对于iw等比较适合结合 c 使用, aw等比较适合结合 d 使用。
设置位置标记,方便快速跳回:
用 m{a-z,A-Z} 可以设置位置标记, 记住:小写字母在缓冲区局部可见,大写位置在全局可见(不同文件之间)
使用 ‘{mark} 命令可跳转到标记所在行; 使用 `{mark} (Esc下面的那个键) 可以返回到标记的位置;
另外,上面是一些自动标记的位置:
在匹配的括号间跳转:
使用 % 可以匹配的括号之间进行跳转;
参考:VIM实用技巧,第二版,作者:Drew Neil;翻译:杨源, 车文隆;