在我的.gvimrc上,我有以下一行:
map <f4> :!./%<
在源文件中,我必须按F4然后输入,但它正常工作,显示输出,并挂起,直到我再次按回车。
如果我改为:
map <f4> :!./%< <CR>
它表现出输出,但不等到我按下回车(因此无法读取输出)。
有没有办法显示程序的输出,并在我按下回车之前挂起,而不必在命令前输入,而不必打开一个单独的窗口?
答案 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插件。这可以用于具有垂直分割窗口,其中包含您在一个窗格中编辑的脚本以及另一个窗格中脚本的输出。每次按下已映射的键时,脚本的输出都会添加到输出窗格中。
非常适用于调试脚本。