在 shell 命令完成之前切换回 VIM

Jos*_*lfe 1 vim shell

在 VIM 中执行 shell 命令时,它会等待命令完成。您可以按Enter切换回 VIM,但它只会在命令完成后切换回。如果 shell 任务运行时间较长,返回 VIM 继续工作会更有利,稍后再检查 shell 输出。

什么是最简单的方法:

  1. 运行 Shell 命令 ( :!jshint %)
  2. 在命令完成之前切换回 VIM。
  3. 稍后再检查输出。(我发现的最简单的方法是:!

s.w*_*ner 6

您可以执行任何命令,就像在普通 shell&中一样将其发送到后台:

:! (long_running command) & 
Run Code Online (Sandbox Code Playgroud)

并返回到 vim。

虽然你应该注意,如果命令确实输出了一些东西,它会让 vim 看起来很乱。如果您的命令没有输出任何内容,我认为您应该没问题。

如果您的命令确实输出文本,您可以考虑:

:! (long_running command >output 2>&1) &
Run Code Online (Sandbox Code Playgroud)

如果你想在一个文件中拥有stdout以及stderr

:! (long_running command >output.stdout 2>output.stderr) &
Run Code Online (Sandbox Code Playgroud)

如果您希望它们在单独的文件中。