【问题标题】:How to run Vim commands from Terminal如何从终端运行 Vim 命令
【发布时间】:2012-11-23 03:01:35
【问题描述】:

我的问题是一个我没有看到回答的问题,通常的问题是如何对文件运行某些命令。

我的问题是如何从 Vim 外部(即终端)运行 Vim 命令或函数,这些不会影响任何文件,只会影响 Vim 本身。这甚至可能吗?如果有,怎么做?

如果这不可能,有没有办法进入 Vim,自动运行命令,然后在结束时退出?还是运行另一个命令然后退出?

感谢您的帮助!

【问题讨论】:

  • 您想使用 Vim 进行批处理(如 sed、awk、...)吗?不过,您说这些“不会影响任何文件”。那么启动 Vim 有什么用呢?
  • 这个想法是运行一些我在 Vim 中的维护任务,但这些不会影响任何文件。
  • 我还是很好奇;你在 Vim 内部做什么样的“维护”? (毕竟它是一个文本编辑器,用于修改文本文件!)
  • 我只是想写一个脚本来打开 Vim,运行 :BundleInstall! 然后退出,它是在新计算机上首次使用,所以我的包已经安装并准备好了(我顺便说一句,使用 Vundle)。如果你好奇,你可以去我的 dotfiles repo:github.com/Greduan/dotfiles
  • 下一次,尝试提供更多背景信息,您的最终目标是什么。当一个问题只是一个很小的技术步骤时,很难提供一个好的答案。您在这里的 cmets 中做了很多澄清,您的问题表现出兴趣和努力,所以它肯定会变得更好!继续努力!

标签: vim command-line terminal macvim


【解决方案1】:

使用

vim --cmd 'Command launched before vimrc' \
     -c 'Command launched after vimrc' \
     -c 'qa!' # Quit vim

。要在现有的 vim 会话中运行命令,您必须使用 +clientserver 功能:运行一个 vim

vim --servername vim

和其他人

vim --remote-send '<C-\><C-n>:Command<CR>'

【讨论】:

  • 哇!好的。它工作得很好,但是会弹出一个“点击输入提示”。有标志或其他东西可以跳过吗?
  • @TheFool Hit enter prompt 存在很大程度上取决于您正在运行的命令,它并不总是存在。也许你可以用:silent 让你沉默。还有一个选项 (shortmess) 可以避免一些点击输入提示。另见:h hit-enter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 2018-04-09
相关资源
最近更新 更多