繁体   English   中英

Vim 自动运行终端命令

[英]Vim Running Terminal Command Automatically

我正在尝试编写一个命令(在 vim rc 中)自动创建一个新的拆分并启动一个终端(即通过执行:Term),然后在该终端上自动执行一些 bash 命令(特别是“conda activate”)

这是我走了多远:

command CustomTerminal execute "vsplit ." <bar> execute "Term" 

如何扩展此命令,使其在此终端上管道并执行一些 bash 命令?

我看到您的命令定义存在以下问题:

  • 你不需要:execute在这里; <Bar>也仅在映射中需要
  • vsplit. 创建目录列表; 这是故意的吗?
  • 您是否定义了自定义:Term命令? 打开终端的内置命令是:terminal
  • :term自行执行(水平)拆分; 它的:help:terminal提到

如果要垂直拆分 window,请使用:

 :vertical terminal

:terminal命令已经接受可选的 shell 命令。 如果这是您所需要的,您可以轻松扩展您的自定义命令以获取并传递此参数:

:command -nargs=? CustomTerminal vertical terminal <args>

请参阅:help:command-nargs:help <args>

此外,您可以通过-complete=shellcmd添加:help:command-completion

保留终端并向其提供命令

如果要运行多个命令然后关闭终端,那么要重用单个终端 session,您必须按照:help terminal-to-job将命令从 Vim 发送到终端(由交互式 Z25254918B70124BFE 接收)应用程序当前正在运行)。 它看起来像这样:

call term_sendkeys(buf, "ls *.java\<CR>")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM