Vim中如何从行首非空白字符开始进行模式替换
在Vim中为行首空白后的单词间插入多空格
方法一:全局替换命令
直接执行以下命令,可一次性处理所有行:
:%s/^\s*\zs\(\w\+\)\s\+/\1 /g
参数说明:
%:作用于所有行^\s*\zs:跳过行首所有空白字符,从第一个非空白处开始匹配\(\w\+\)\s\+:匹配一个完整单词及其后的空格\1:保留原单词,替换为「单词+3个空格」(可自行调整空格数量)g:每行内替换所有匹配项
方法二:可视区域替换
适合逐行或选部分行处理:
- 光标移到目标行,按
^跳转至第一个非空白字符 - 按
v$选中从当前位置到行尾的内容 - 输入命令并回车:
:s/\s\+/ /g
此操作仅修改选中区域,不会改动行首的空白缩进。
自定义空格数量
如果需要调整插入的空格数,只需修改命令中替换部分的空格数量即可。比如要插入2个空格,就把\1 改成\1 ,\s\+/ /改成\s\+/ /。
内容的提问来源于stack exchange,提问作者Nizamudheen At
相关产品推荐
相关产品推荐

