我看到如何在特定行中搜索和替换,按行号指定,以及如何使用当前行作为对多行向下的引用进行搜索和替换.
如何仅在当前行中搜索和替换?我正在寻找一个简单的解决方案,不涉及链接解决方案指定行号.
Ste*_*n.W 22
替换所有出现的str1与str2某些行:
:s/str1/str2/g
Run Code Online (Sandbox Code Playgroud)
g如果要仅替换第一个匹配项,请删除该选项.
Tot*_*oto 15
您可以使用.当前行,例如:
:.s/old/new/
Run Code Online (Sandbox Code Playgroud)
这将改变old由new只在当前行.
小智 7
确认 ( c) 并替换:
:s/foo/bar/gc
Run Code Online (Sandbox Code Playgroud)
找到 'foo' 的出现,并在用 'bar' 替换它之前要求确认。
Vim 为您提供以下选项:
replace with bar (y/n/a/q/l/^E/^Y)?
Run Code Online (Sandbox Code Playgroud)
y - 是的n - 不a - 替换所有出现的q - 退出l - 替换当前并停止(最后)^E( CTRL+ e) - 向下滚动^Y( CTRL+ y) - 向上滚动现在,在您的情况下,您可以使用y,n和的组合l来实现您的目的。
如果要搜索并替换当前行中所有匹配的单词,则可以在命令模式下轻松地将simple substitute (s)与g修饰符配合使用。
:s/search/replace/g
Run Code Online (Sandbox Code Playgroud)
如果您只想搜索和替换当前行中的第一个匹配单词,只需将g修饰符从命令中移开即可。
:s/search/replace/
Run Code Online (Sandbox Code Playgroud)
参考: :help substitute