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

7
我需要的是一个与当前窗口不同的窗口,它将命令的输出放入相同的缓冲区。这样我就可以执行以下命令:
:!php %

在底部拆分窗口中查看输出。我使用过的大多数图形编辑器都有这种功能。

注意:

  1. 不是在当前窗口。不想要频繁切换。
  2. 不是每次都创建一个新缓冲区。(必须重用“输出”缓冲区)
  3. 我不想把输出放在寄存器里,我想直接看到输出结果。

流程如下:

  1. 打开vim -S session ...
  2. 编辑文件
  3. 执行简单的make类型命令
  4. 在输出窗口中查看命令输出结果

而且不会产生数百个新缓冲区并需要在窗口之间切换。

到目前为止,我尝试过的不理想的方法是...将输出发送到文件,打开自动读取,打开一个该文件的缓冲区。虽然这可以实现,但我必须为所有文件打开自动读取,这有点麻烦。是否有一种方法只为单个缓冲区/文件打开自动读取?

感谢您的帮助。

1个回答

9

看起来您正在寻找 Vim 的 "quickfix" 窗口。我会使用 'makeprg':make:copen 来实现,如下所示:

:set makeprg=php\ %
:make
:copen

此外,您可以使用'errorformat'选项将光标移动到第一行包含错误的位置。

:set errorformat=%m\ in\ %f\ on\ line\ %l

为了加速,我将F5键映射到make命令:

:nnoremap <F5> :<C-U>make<CR>

1
请注意,这与 vim 中的任何其他外部命令调用一样,都是同步运行的,即 vim 会阻塞直到命令完成。 - kynan

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