当我通过vim的输入shell命令 - 例如,:!rake routes
- 我会得到一些输出,然后:如何在vim的shell命令输出中滚动?
Press ENTER or type command to continue
如果我在这一点上按什么,我总是带回主VIM UI。我该如何在shell模式下停留一段时间,具体来说,我可以向后滚动以查看命令的所有输出?
当我通过vim的输入shell命令 - 例如,:!rake routes
- 我会得到一些输出,然后:如何在vim的shell命令输出中滚动?
Press ENTER or type command to continue
如果我在这一点上按什么,我总是带回主VIM UI。我该如何在shell模式下停留一段时间,具体来说,我可以向后滚动以查看命令的所有输出?
终端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。
:r! [shell command]
会将命令的输出读入缓冲区。所以,如果你打开一个新的缓冲区,然后使用该命令,你可以搜索和滚动你喜欢的所有。有关更多信息,请参阅Vimcasts episode 57。
您是否尝试过使用管道?像例如':!rake routes \ | more'?这可能会起作用。 – Annabelle
[如何向上滚动以查看Vim中系统命令的输出]的可能重复(http://stackoverflow.com/questions/18130722/how-to-scroll-up-to-view-the-output-of-系统命令在-VIM) – glts