假设我有以下文字。
this.is.some.text
this.is.emos.text
this.is.some.text
this.is.emos.text
Run Code Online (Sandbox Code Playgroud)
我想在“可视块”模式下编辑此文本,使文本如下所示。
this.is.some.text
this.is.emos_suffix.text
this.is.some.text
this.is.emos_suffix.text
Run Code Online (Sandbox Code Playgroud)
它应该像这样工作:
从视觉块模式或任何其他视觉模式中实现这一点的唯一本地方法是使用替换:
:'<,'>s/emos/&_suffix<CR>
Run Code Online (Sandbox Code Playgroud)
在哪里…
:,'<,'>为你插入范围,意思是“从第一个选定的行:help '<,,到最后一个选定的行,:help '>`,s/emos/&_suffixemos将给定范围的每一行上的每个第一次出现替换为自身,:help s/\&,然后是_suffix。视觉选择通常是一个不必要的步骤,在这种情况下,视觉块模式完全没有用,因为A或I无论如何都会对选择的每一行进行操作。
另一种方法:
/emos/e<CR>
a_suffix<Esc>
n
.
Run Code Online (Sandbox Code Playgroud)
另一个:
/emos<CR>
cgn<C-r>"
_suffix<Esc>
.
Run Code Online (Sandbox Code Playgroud)
另一个,假设光标位于样本的第一行:
:,'}s/emos/&_suffix<CR>
Run Code Online (Sandbox Code Playgroud)
等等。