9

当我通过 vim 输入 shell 命令时——例如:!rake routes——我会得到一些输出,然后:

Press ENTER or type command to continue

如果我在那个时候按下任何东西,我总是会被带回主 vim UI。如何在 shell 模式下停留更长时间,特别是我可以向后滚动查看命令的所有输出?

4

2 回答 2

2

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

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

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

于 2013-11-04T20:26:24.077 回答
1

:r! [shell command]将命令的输出读入缓冲区。因此,如果您打开一个新缓冲区然后使用该命令,您可以随意搜索和滚动它。有关更多信息,请参阅Vimcast 第 57 集

于 2013-11-04T19:02:16.280 回答