如何在vim中保留命令输出窗口

U00*_*001 7 vim

我正在寻找的是与当前包含命令输出到同一缓冲区的窗口不同的窗口.所以我可以执行:

:!php %
Run Code Online (Sandbox Code Playgroud)

并在底部拆分窗口中查看输出.这在我使用过的大多数图形编辑器中都很常见.

笔记:

  1. 不是当前的窗口.不想切换回来
  2. 每次都不创建新的缓冲区.(必须重用"输出"缓冲区)
  3. 我不希望在寄存器中,我希望能够立即看到输出.

流程将是:

  1. 打开vim -S会话......
  2. 编辑文件
  3. 执行一个简单的make-type命令
  4. 查看输出窗口中的命令输出

没有数百个新的缓冲区,不得不在窗口之间切换.

到目前为止我尝试过的并不令人满意......将输出发送到文件,打开自动写入,打开该文件的缓冲区.这有效,但我必须为所有文件打开autoread ..有点烦人.有没有办法为单个缓冲区/文件转为autoread?

谢谢你的帮助.

Joh*_*web 8

听起来你正在寻找Vim的" quickfix "窗口.我会用'makeprg',:make并且:copen,像这样:

:set makeprg=php\ %
:make
:copen
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用该'errorformat'选项将光标传递到包含错误的第一行.

:set errorformat=%m\ in\ %f\ on\ line\ %l
Run Code Online (Sandbox Code Playgroud)

为了速度,我已F5映射到make:

:nnoremap <F5> :<C-U>make<CR>
Run Code Online (Sandbox Code Playgroud)