《Vim实用技巧(第2版)》——1.3 以退为进
本节书摘来自异步社区《Vim实用技巧(第2版)》一书中的第1章,第1.3节,作者:【英】Drew Neil(尼尔)着,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 以退为进
我们可以用一种常用的Vim操作习惯在一个字符前后各添加一个空格。乍一看,这种方法有点古怪,不过其好处是可重复,这将使我们可以事半功倍地完成工作。
假设有一行代码看起来是这样的:
the_vim_way/3_concat.js
var foo = "method("+argument1+","+argument2+")";
在JavaScript里把字符串连接到一起从来都不美观,但可以像下面这样在 + 号前后各添加一个空格,让肉眼更容易识别。
var foo = "method(" + argument1 + "," + argument2 + ")";
使修改可重复
下面的惯用方法可以解决这个问题。
s 命令把两个操作合并为一个:它先删除光标下的字符,然后进入插入模式。在删除 + 号后,先输入␣+␣,然后退出插入模式。
先后退一步,然后前进三步,这是个奇怪的小花招,看起来可能不够直接。但这样做最大的好处是:我们可以用 . 命令重复这一修改。我们所要做的只是把光标移到下一个 + 号处,然后用 . 命令重复这一操作即可。
使移动可重复
本例中还有另外一个小窍门。f{char} 命令让Vim查找下一处指定字符出现的位置,如果找到了,就直接把光标移到那里(参见 :h f)。因此,输入 f+ 时,光标会直接移到下一个 + 号所在的位置。我们将会在技巧50里学到更多关于 f{char} 命令的知识。
完成第一处修改后,可以重复按 f+ 命令跳到下一个 + 号所在的位置。不过,还有一种更好的方法可以用。; 命令会重复查找上次 f 命令所查找的字符,因此不用输入4次 f+,而是只输入一次,后面跟着再用3次 ; 命令。
合而为一
; 命令带我们到下一个目标字符上, . 命令则重复上次的修改。因此,可以连续输入3次 ;. 来完成全部修改。看起来是不是很熟悉?
与其和Vim区分模式的编辑模型做斗争,倒不如与它一起协同工作。然后,你就会发现它能把特定任务变得多么的容易。
最后更新:2017-06-06 07:38:12
上一篇:
《Vim实用技巧(第2版)》——1.4 执行、重复、回退
下一篇:
《Vim实用技巧(第2版)》——1.2 不要自我重复
Jackson 高性能的JSON处理 android/移动开发必备jackson
c++ c# java 区别小汇
一步一步写正则 1:金额正则表达式
自定义带图标的Preferecnce-----类ListPreference实现
SQL2005附加数据库提示——版本为655,无法打开,此服务器支持611版本
vmware安装系统注意点
windows media player 控件的常用属性及方法
阿里云RDS PostgreSQL OSS 外部表 - 并行写提速案例
Couldn't get connection because we are at maximum connection count (150/150) and there are none 异常解决
Openstack neutron 报错503故障排查