2

我正在寻找 VI(M) 中的快速命令,我可以在其中删除从行尾开始到字符的所有文本。我可以反过来:

:%s/.*"

但我想要相反。我试过:

:%s/$.*" 

但这不起作用(我的逻辑是 $ - 从行尾开始,找到所有内容到 " 并删除它。

这是我正在尝试操作的文本示例(编辑:但此行多次出现-该解决方案必须适用于类似结构的多行-单行解决方案是不够的-抱歉首先不清楚):

APPPOOL "default app pool" (some long list of stuff, more entries here)

变成

APPPOOL "default app pool"
4

2 回答 2

11

为什么不只是简单地输入$dT"

如果你真的想用 :s 来做,试试

:s/"[^"]*$/"/
于 2013-01-28T17:07:11.790 回答
2

两个想法。第一的:

:s/\(.*"\).*/\1/

或者,转到行尾并执行以下操作:

dT"x

对整个缓冲区进行操作:

:%normal $dT"x
于 2013-01-28T17:03:46.197 回答