:!
命令时,结果将显示在整个窗口中。是否可以仅在活动拆分上显示输出?#1 楼
您可以使用以下命令::new | 0read ! command
这将打开一个新的拆分,并将命令的输出放入此拆分中(尽管您提到的当前活动拆分中没有)。 br /> new-创建新的拆分
read-获取命令输出
command-实际命令
#2 楼
您可以执行以下命令:打开新的拆分(或标签)
运行命令并显示该拆分(或标签)中的结果
命令如下所示:
:Rsplit command
或
:Rtab command
在您的
.vimrc
可以这样写:" execute a command and show its output in a split window
command! -nargs=* -complete=shellcmd Rsplit execute "new | r! <args>"
" execute a command and show its output in a new tab
command! -nargs=* -complete=shellcmd Rtab execute "tabnew | r! <args>"
您可以找到如何使用
:help :command
编写自己的命令。#3 楼
那是不可能的。您必须使用tmux(IIRC),屏幕等其他工具来拆分屏幕。如果不需要与执行的程序进行交互,则可以直接导入其结果在您希望使用
:h windows
的任何窗口中(在vim中为:r!command line
)。 :h :r!
评论
不,这是不可能的。输出:在命令行中显示,其中只有一个,并且只能在屏幕底部。我能想到的最好的办法是在当前缓冲区下面创建一个新的buffer /:split ...@Carpetsmoker,对我来说,:!的输出!不转到命令行。相反,vim会话消失了,整个终端窗口显示了终端输出,包括在调用vim之前打印的内容。
也许是由于您使用的终端和/或TERM设置所致?
这种差异与altscreen(在屏幕中)或备用屏幕(在tmux中)有关。