虽然我的配置当中有 multiple-cursors, 但现在很少用了。
multiple-cursors 之类的操作问题在于,操作过程中一旦出错,你再想把光标在回归到正确的位置就很困难了,只好二二三四再来选择一遍。
Ctrl-D (类似 Sublime Text )选中第2个、第3个。。。编辑位置,中间跳过某些,或者再调转光方向选择第-1 、第-2个。。。等等,操作起来很麻烦。中间掉链子就哭了,特别是当选择的跨度超过一屏。但是不否认这个操作看起来很酷炫。
我的替代方案是,先把需要批量编辑的内容圈出来:
- 只编辑一次,就简单选中需要编辑的段落,然后正则替换
:'<,'>s/foo/bar/g
- 需要多次编辑的,就 narrow 这段文本,然后正则替换。屏蔽了其他不想干的内容,也省去了多次选择。
- 更复杂的情况,用 helm-swoop 把需要编辑的行找出来,集中到一个临时 buffer 编辑。
这样做的好处:
- 很方便观察到修改前/后的差别,确认有无疏漏
- 筛选出来(等修改的)位置可以比较长时间的保持