2013-11-04 41 views
6

当我通过vim的输入shell命令 - 例如,:!rake routes - 我会得到一些输出,然后:如何在vim的shell命令输出中滚动?

Press ENTER or type command to continue 

如果我在这一点上按什么,我总是带回主VIM UI。我该如何在shell模式下停留一段时间,具体来说,我可以向后滚动以查看命令的所有输出?

+0

您是否尝试过使用管道?像例如':!rake routes \ | more'?这可能会起作用。 – Annabelle

+0

[如何向上滚动以查看Vim中系统命令的输出]的可能重复(http://stackoverflow.com/questions/18130722/how-to-scroll-up-to-view-the-output-of-系统命令在-VIM) – glts

回答

2

终端vim滚动由终端仿真器(或终端多路复用器,如tmux/screen,如果您使用它)提供。即如果您的终端在使用<S-PageUp>时滚动,则它也必须与Vim的!一起滚动。鼠标滚轮也是如此(即使vim配置为独立处理鼠标,它也适用于我)。

如果有终端vim,并且在按下<CR>后需要查看输出,则可以使用<C-z>/:susp。这两种功能都会因vim或终端(终端多路复用器)的配置不正确而被破坏(即终端配置为不支持备用屏幕(这通常是终端多路复用器的问题,而不是终端仿真器:screen要求altscreen on.screenrc中)或vim设置vim在启动/恢复和关机/挂起时输出到终端的内容被破坏)。

如果您有GUI vim,您的选项非常有限。在这种情况下,最好遵循@glts或@EricAndres建议提供的链接,因为我不使用GUI vim。

1

:r! [shell command]会将命令的输出读入缓冲区。所以,如果你打开一个新的缓冲区,然后使用该命令,你可以搜索和滚动你喜欢的所有。有关更多信息,请参阅Vimcasts episode 57

相关问题