n
前进到搜索字符串的下一个实例。我以为我可以做类似ciw
的操作,但是这会改变整个单词,而不仅仅是突出显示的文本。 我熟悉
:%s/old/new/g
,但我不想更改所有实例。相反,我想将光标移到每个实例,然后决定是否更改它。#1 楼
使用gn
运动来编辑当前搜索匹配。下面的示例将当前匹配项更改为“ FooBar”:假设下一场比赛将以您可以使用.
重复的相同方式进行更改。或通过.
跳过一些匹配项,然后使用n
。 /> cgnFooBar
#2 楼
如果您已经使用/word
或?word
搜索了单词。您可以使用
:%s//newword/gc
将搜索词(newword
)保留为空,从而用s//..
替换以前搜索的单词。 c
标志表示应确认所有更改,方法是按y
(是)或n
(否)。评论
我知道您说过要看帮助,但您也可以明确提到您也可以按l,a和q(或
–杰夫
17年9月13日在1:48
#3 楼
方法1您可以利用
gn
和gN
映射来完成所需的操作。 gn
将向前搜索最后使用的搜索词,并直观地选择匹配项。 gN
做完全一样的事情,除了它向后搜索。当与诸如c
之类的运算符结合使用时,该运算符将应用于匹配,例如,如果最后一个搜索字符串为“ foo”并键入cgn
,它将向前搜索下一个“ foo”实例,将其删除,然后将您置于插入模式下以输入替换文本。有关这些的更多信息,请参阅
:help gn
和:help gN
。方法#2
您可以将
:substitute
命令与c
标志一起使用。这将要求您确认每次替换。例如,假设您要在整个文件中用bar替换foo,但要确认每次替换::%s/foo/bar/gc
有关此的更多信息,请参见以下帮助主题:
:help :s_flags
,:help cmdline-ranges
和:help :substitute
。
评论
当您需要在不同的地方使用不同的替换字符串时,这绝对是正确的方法。我不确定似乎由gn调用的可视模式的细微差别,因此这是我刚刚发现的类似方法:c // e
–杰夫
17年9月13日在1:51
有没有办法一次更改所有选择/比赛?基本上可以重构吗?
–老年性贫血
18-11-17在22:57
@Geremia,是的,:%s / oldtext / newstuff / g会将oldtext的所有匹配项更改为newstuff。
– zundarz
19年7月30日在16:28
@zundarz我不想做一个正则表达式,而只替换变量名。而不是打。多次,我可以使用:%norm。 (资源)。
–老年性贫血
19年7月30日在17:41