我正在尝试编写一个命令(在vim rc中),该命令自动创建一个新的拆分并启动一个终端(即,通过执行:Term),然后在该终端上自动执行一些bash命令(特别是“ conda activate”)< / p>
这是我走了多远:
command CustomTerminal execute "vsplit ." <bar> execute "Term"
如何扩展此命令,以便在此终端上通过管道执行一些bash命令?
答案 0 :(得分:0)
我看到您的命令定义存在以下问题:
:execute
; <Bar>
也仅在映射中需要vsplit .
创建目录列表;那是故意的吗?:Term
命令?打开终端的内置命令为:terminal
:term
自行执行(水平)拆分; :help :terminal
提及如果要垂直拆分窗口,请使用:
:vertical terminal
:terminal
命令已经接受可选的Shell命令。如果您需要的是,可以轻松扩展自定义命令以接受并传递此参数:
:command -nargs=? CustomTerminal vertical terminal <args>
请参见:help :command-nargs
和:help <args>
。
此外,您可以通过-complete=shellcmd
添加:help :command-completion
。
如果要运行多个命令然后关闭终端,因此要重用单个终端会话,必须遵循:help terminal-to-job
才能将命令从Vim发送到终端(由交互式shell接收或无论当前正在运行的任何应用程序)。看起来像这样:
call term_sendkeys(buf, "ls *.java\<CR>")