gn是Vim 7.4新增的一个操作(motion),作用是跳到并选中下一个搜索匹配项。
具体说,Vim里执行搜索后,执行n操作只会跳转到下一个匹配项,而不选中它。但是我们往往需要对匹配项执行一些修改操作,例如替换、删除或修改大小写等,如果先跳转再执行对应操作,会比较繁琐。gn可以和相应的操作结合,简化这些过程。
举个栗子。如果要把所有的win、linux替换成大写,可以先用正则搜索“\(win|linux\)\C”,然后执行“gUgn”,此时下一个匹配的结果就会被替换成大写,然后直接执行“.”重复上次操作即可。
此外,常用的组合有:
- cgn: 删除下一个匹配项,并进入插入模式。
- dgn: 删除下一个匹配项,并保持常规模式。
和操作“N”相同,执行“gN”是逆向操作。