我想使用 shell 命令(fmt
在本例中)对文件中正则表达式的每一行(不)匹配进行操作。我更喜欢在 内进行操作vim
!不过,我也愿意接受纯 shell/bash/zsh 解决方案,因为 vim:!
也提供。
是否可以合并
:g/pattern/[cmd]
使用在匹配行上执行的 shell 命令?类似
:g/pattern/!fmt -w 72
不管用。
答案1
我找到了答案!你可以使用
:g!/^ /.!fmt -w 40
在找到的行上使用该 shell 命令。但是,这仅适用于单行,因此它不会删除换行符,只会添加新的换行符。如果有人可以改进这一点,请随时发布如何改进 :)