gpt4 book ai didi

vim - vim 可视模式下的多个 s///命令

转载 作者:行者123 更新时间:2023-12-02 04:21:04 25 4
gpt4 key购买 nike

我想要:

  • 选择多行(Shift-v)
  • 在每个选定行上插入前导空格
  • 删除每个选定行上的尾随空格(如果有)

我想一步完成更改。以下是我可以通过多个步骤完成此操作的方法:

:'<,'>s/^/    /
gv
:'<,'>s/ *$//

这是我发现的一步完成此操作的唯一方法:

:'<,'>s/^/    /|:exec "norm gv:s/ *$//^@"

其中^@Ctrl-vCtrl-j

有没有更好的方法来做到这一点。我对视觉模式下多个 s/// 命令的通用解决方案感兴趣,而不仅仅是一个关于前导和尾随空格的解决方案。

最佳答案

一次替换即可完成所有操作:

:s/\(.\{-}\)\s*$/    \1/

我们捕获该行的“内容”并添加起始空格,同时删除尾随空格。

多次替换:

:s/^/    /|'<,'>s/\s*$//

我们明确使用'<,'>作为我们的视觉范围(参见:h '<)。我们还可以使用*作为 '<,'> 的简写。例如:*s/\s*$//

关于vim - vim 可视模式下的多个 s///命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com