从命令行运行 vim 命令

从命令行运行 vim 命令

我需要在几个文件中执行以下操作:dt{%lx:wq,即

  1. 删除到第一个{
  2. 找到匹配的}
  3. 删除下一个字符
  4. 保存并退出

如何在不打开屏幕的情况下从命令行执行此操作?

vi -c 'dt{%lx:wq'失败显而易见

E492: Not an editor command: dt{%lx:wq

我想我需要将每个命令 - dt{%lx- 转换为ex命令。我如何找到命令?

答案1

您可以同时使用viex,例如:

ex -s +'norm dt{%lx' -cwq foo

对于vi,只需添加-e(对于 Ex 模式):

vi -es +'norm dt{%lx' -cwq foo

因此,为了使您的示例发挥作用,基本上您需要添加norm/ normal,它会在普通模式下执行命令(就像您在 Vi 中输入的那样)。

关键参数包括:

  • -s- 静音模式不会打开屏幕。适合在终端中工作。
  • -evi- Ex-mode( /vim命令所必需),ex默认情况下已存在
  • -cwq- 更好的做法:wq

如果仍有问题,请添加-V详细信息。

更多示例请参见:

相关内容