有没有办法从 shell 脚本运行 Vim 并进入
stdout
匹配的模式?
例如,让我们搜索
function(x,y,z)
以及
function(
x, y, z)
直接方法
vim -es -c ":g/function(\_.\{-})/p" -c ":q!" file.c
仅打印第一行。
如何打印整个图案?
您可以向
:print
命令提供一个范围,例如当前行和右括号匹配的行:
vim -es -c"g/function(\_.\{-})/.,/)/p" -c"q!" file.c
这里
.
是当前行(:global
匹配的行),/)/
是 )
匹配的行。小警告是我们在一场比赛中进行匹配,并且我们需要重复比赛的最后一个字符。
:help :range
了解 /{pattern}/
范围。