什么为一次操作?
从进行插入模式开始,直到返回普通模式为止,在此期间的任何修改都视为一次操作; 使用 u 可以撤销最新的修改;
所以呢,控制好在插入模式的操作就可以控制好撤销命令的粒度;
另外,最好在插入模式下避免使用上下左右进行移动,因为它们都可以产生一个新的插入块;
还有,在插入模式下,进行换行时,我们可以避免使用回车键,而是先退出插入模式再添加下一行;
技巧1 : 构造可重复的修改; 可以后面会用于相同的修改了;
技巧2:用次数作简单的运算:
很多的普通模式的命令都可以带一个次数前缀,这样VIM就可以深度把该命令执行指定的次数了;
而 ctrl+a 与 ctrl+x 表示对数字加减一次,所以可以在前面加入数字表示加减多次;
当光标不在数字上时,它会默认地去在当前行正向查找一个数字。 所以呢,没有必要光标一定在数字上,这是一个快捷;
注意:在vim中,当数字以0开头时,会被认为这是8进制的;
技巧3:能够重复 就别在前面加入数字使用次数;
原因在于吧,当我们在前面加入数字使用次数时,我们还需要花时间数一下次数上;
技巧4:双剑合璧,天下无敌
各种操作符与动作的命令的组合使用很强大的。
如各种的操作符:
c 修改;
d 删除;
y 复制到寄存器;
g~ 反转大小写;
gU 转换为大写;
gu 转换为小写;
> 增加缩进;
< 减少缩进;
= 自动缩进;操作符后面都可以跟这个表示范围的指令:
l: 表示一个字符,可以于操作符组合使用; aw :表示一个单词; 不会count 空格; 前面可以加数字的; iw: 选中一些单词, 会包括空格; 前面可以加数字; ap: 表示一个段落,与操作符组合使用;操作符后面也可以跟这些跳转动作指令:
G键是跳转命令。默认跳到最后一行;前面可以加数字的;表示跳到第几行; gg键为跳转命令,默认跳到第一行,前面可以加数字,表示跳到第几行; 0: 跳转命令,跳到行首 ; $: 表示跳到行尾; w: 表示跳转到下一个单词的头部; e: 表示跳转到下一个单词的尾部; b: 表示跳转到上一个单词的头部; ge: 表示跳转到上一位单词的尾差部;另个,也可以使用一些插件自定义的操作符;
如果使用它们,应该安装插件;
参考:VIM实用技巧,第二版,作者:Drew Neil;翻译:杨源, 车文隆;