vim可视模式下的多个s///命令
我想:vim可视模式下的多个s///命令,vim,Vim,我想: 选择多行(Shift-v) 在每个选定行上插入前导空格 删除每个选定行上的尾随空格(如果有) 我想一步完成更改。以下是我如何通过多个步骤完成这项工作: :'<,'>s/^/ / gv :'<,'>s/ *$// :'s/^/|:exec“norm gv:s/*$/^@” 其中^@是Ctrl-vCtrl-j 有没有更好的办法。我对视觉模式下的多个s//命令的通用解决方案感兴趣,而不仅仅是一个关于前导和尾随空格的解决方案。在一次替换中完成这一切: :s/
- 选择多行(Shift-v)
- 在每个选定行上插入前导空格
- 删除每个选定行上的尾随空格(如果有)
:'<,'>s/^/ /
gv
:'<,'>s/ *$//
:'s/^/|:exec“norm gv:s/*$/^@”
其中^@
是Ctrl-vCtrl-j
有没有更好的办法。我对视觉模式下的多个
s//
命令的通用解决方案感兴趣,而不仅仅是一个关于前导和尾随空格的解决方案。在一次替换中完成这一切:
:s/\(.\{-}\)\s*$/ \1/
我们捕获行的“肉”,并添加起始空格,同时删除尾随空格
多重替换:
:s/^/ /|'<,'>s/\s*$//
:s/^/|'此处;最好(即更短更快)同时进行两次删除(根据@PeterRincker的回答)。一般来说,您不需要重新选择;”:“这正是我在前面对彼得·林克的答案的评论中所说的,与他的部分答案基本相同。
:s/^/ /|'<,'>s/\s*$//
:'<,'>s/^/ / | '<,'>s/ *$//