我一直在使用终端(查看某些命令的输出等)的方法是运行:!<CR>
,但它总是打印出Press ENTER or type command to continue
,并将输出向上凸起一行,最终导致一些内容从屏幕上滚动掉。
有没有更好的方式从vim显示终端?或者有没有办法让:!<CR>
不打印该短信?
使用:susp
或<C-z>
。外壳中的fg
恢复vim。
正常情况下,通过<C-PageUp>
可以进行回滚,但不需要不惜一切代价避免一行滚动。
如果您想查看带有参数(例如tail、ls、locate等)的一个命令的结果,也可以使用:
command! -nargs=* -complete=shellcmd ShellRead new | setlocal buftype=nofile bufhidden=hide noswapfile | read !<args>
cabbrev Sh ShellRead
这将在会话的"scratch"窗口中显示shell cmd的结果
如果需要的话,可以更容易地拉/保存/使用。没有额外提示按Enter键。
例如:ShellRead locate blast
将在新的拆分窗口中显示结果,如果成功,则显示错误消息
当然,这是一个您想要的交互式shell进程,那么这将不起作用。;)