在 Vim 中更改当前可视选择中的文本

在 Vim 中更改当前可视选择中的文本

我已选中一行中的某部分内容。我想删除选中内容中的所有非单词字符,并将所有空格字符替换为下划线。

我该如何继续这件事呢?

答案1

以下假设您对 Vim:substitute命令有基本的了解。首先将空格字符替换为下划线。

:'<,'>s/\%V\s\%V/_/g

在视觉上选择文本时输入:将自动填充

:'<,'>

\%V空格前后的空格导致封闭的模式(空格)仅在视觉选择的区域内匹配。接下来删除非单词字符。键入以gv重新选择区域。然后键入

:'<,'>s/\%V\W\%V//g

其中\W是 Vim 正则表达式原子,表示“非单词字符”。参见

:help /\%V
:help /\s
:help /\W
:help gv

键入\%V可能会很尴尬。vis.vim插件简化了这一过程,允许人们通过键入 ex 命令在可视选择的区域执行任何 ex 命令,:从而B将上述操作简化为

:'<,'>B s/\s/_/g
gv
:'<,'>B s/\W//g

再次,Vim 会'<,'>为您填补该部分。

编辑
重新阅读问题后,我将上面的“空格”替换为“空白字符”。

相关内容