3

我一直踢到终端(查看某些命令的输出等)的方式是 run :!<CR>,但是它总是打印出来Press ENTER or type command to continue并将输出提高一行,最终导致一些东西滚出屏幕。

有没有更好的方法从 vim 显示终端?或者有没有办法让它:!<CR>不打印那个短信?

4

2 回答 2

3

使用:susp<C-z>fg在 shell 中恢复 vim。

通常回滚是可以通过的<C-PageUp>,因此不需要不惜一切代价避免一行滚动。

于 2013-07-13T15:45:08.213 回答
0

如果您想查看一个带有参数的命令(例如 tail、ls、locate 等)的结果,您还可以使用:

command! -nargs=* -complete=shellcmd ShellRead new | setlocal buftype=nofile bufhidden=hide noswapfile | read !<args>
cabbrev Sh ShellRead

这将 shell cmd 的结果显示到会话中的“临时”窗口中。
如果需要,可以更轻松地拉动/保存/使用。没有额外提示按 Enter。

例如:ShellRead locate blast
,将在新的拆分窗口中显示结果,如果成功,则显示错误消息

当然这是你想要的交互式shell进程,那这行不通。;)

于 2013-07-18T08:21:00.873 回答