如何映射键以执行程序,并在GVim中显示其输出?

时间:2010-06-24 14:13:53

标签: vim

在我的.gvimrc上,我有以下一行:

map <f4> :!./%<  

在源文件中,我必须按F4然后输入,但它正常工作,显示输出,并挂起,直到我再次按回车。

如果我改为:

map <f4> :!./%< <CR>

它表现出输出,但不等到我按下回车(因此无法读取输出)。

有没有办法显示程序的输出,并在我按下回车之前挂起,而不必在命令前输入,而不必打开一个单独的窗口?

3 个答案:

答案 0 :(得分:3)

您的第二个映射应该可以正常工作。有时这个问题是由于在映射结束时有一个额外的空间。

答案 1 :(得分:1)

请参阅:help redir。您可以将该输出重定向到寄存器并将其转储到缓冲区中。

为了让您了解它是如何工作的,我在我的vimrc中有这个来查看:g/的结果。

"" Puts the last g search command in a new buffer -- clobbers your c buffer
cabbrev what :redir @c<CR>:g//<CR>:redir END<CR>:new<CR>:put! c<CR><CR>

答案 2 :(得分:0)

您的第二个映射应该可以正常工作。一个有用的替代方案是安装Dr Chip的RunView插件。这可以用于具有垂直分割窗口,其中包含您在一个窗格中编辑的脚本以及另一个窗格中脚本的输出。每次按下已映射的键时,脚本的输出都会添加到输出窗格中。

非常适用于调试脚本。