如何从终端运行Vim命令

17

我的问题是一个我没有看到答案的问题,通常的问题是如何将特定命令运行到文件中。

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

如果不能像这样实现,那么有没有办法进入 Vim,自动运行一个命令,然后在结束时退出?或者运行另一个命令然后退出?

感谢您的帮助!


1
我还是很好奇,你在Vim内部做什么样的“维护”?(毕竟它只是一个文本编辑器,用于修改文本文件!) - Ingo Karkat
1
我只是想编写一个脚本,打开Vim,运行:BundleInstall!,然后退出。这是为了在新电脑上首次使用,以便我的bundles已安装并准备就绪(我使用Vundle BTW)。如果你感兴趣,可以访问我的dotfiles repo:github.com/Greduan/dotfiles - greduan
@Eduan VAM(vim-addon-manager)在这种情况下具有更好的行为:它只会安装缺少的插件,需要一些“y”回答(除非配置为无需确认即可执行此操作)。然后可以在当前vim会话中正常访问插件,无需重新启动vim。 - ZyX
感谢提供详细信息,这解释了您的需求。我个人使用_Unison_工具来同步我的dotfiles,但您的方法也很常见和有效。 - Ingo Karkat
2
下次请尽量提供更多背景信息,说明您的最终目标是什么。当一个问题只涉及到一个小的技术步骤时,很难提供一个好的答案。您在评论中进行了很多澄清,并且您的问题表现出了兴趣和努力,所以它肯定会变得更好!继续保持良好的工作状态! - Ingo Karkat
显示剩余4条评论
1个回答

28

使用

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>'

哇!太棒了。它运行得很好,但是会弹出一个“按回车键提示”。有没有标志或其他东西可以跳过这个提示? - The Fool
2
@TheFool 按回车提示的存在性高度取决于您正在运行哪个命令,它并不总是存在。也许您可以使用 :silent 来消除这种提示。还有一个选项(shortmess),可以避免一些按回车提示。另请参见 :h hit-enter - ZyX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接