我已选中一行中的某部分内容。我想删除选中内容中的所有非单词字符,并将所有空格字符替换为下划线。
我该如何继续这件事呢?
答案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 会'<,'>
为您填补该部分。
编辑
重新阅读问题后,我将上面的“空格”替换为“空白字符”。