【问题标题】:Running arbitrary vim commands from bash command line to script vim从 bash 命令行运行任意 vim 命令以编写 vim 脚本
【发布时间】:2016-07-04 13:33:04
【问题描述】:

我想编写 vim 脚本以从命令行编辑文件。例如,我想做一些类似的事情:

vim -<SOME_OPTION> 'Iworld<Esc>bIhello <Esc>:wq helloworld.txt<CR>'

或:

echo 'Iworld<Esc>bIhello <Esc>:wq helloworld.txt<CR>' | vim

并让它保存文件helloworld.txt,正文为hello world

这可能吗?我尝试了几种不同的方法,但似乎都没有。我意识到我可以执行 vim +PluginInstall 之类的操作来从命令行运行 Ex 命令,但我希望能够将任意动作串在一起

【问题讨论】:

  • 可能重复(在 StackExchange 的另一部分):unix.stackexchange.com/questions/34983/…
  • 这非常接近我想要的,但并不完全。如果有一个 ex 命令可以让我像使用映射一样运行任意按键,那肯定可以完成这项工作
  • set -o vi 不做你想做的事吗?

标签: vim


【解决方案1】:

这可以通过+ 标志和:normal 命令来实现:

$ vim +"norm Iworld" +"norm Ihello " +"wq helloworld.txt"

【讨论】:

  • 很好,没有我希望的那么优雅,但这样就完成了工作。谢谢!
【解决方案2】:

我认为您正在寻找的是 vim 的 -w/W-s {scriptin} 选项。那么在您的情况下,您应该制作一个脚本文件,并使用 -s file 让 vim 执行您所有的“按键”

我认为 vimgolf 也使用了这些选项。

【讨论】:

  • 酷我会仔细阅读 vimgolf 的一些例子
  • @JoshBodah 如果您这样做,则不需要 tmp 文件vim -s &lt;(echo "whatever")
猜你喜欢
  • 1970-01-01
  • 2013-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多