考虑任何解释型编程语言。
我可以使用 运行当前打开的脚本! interpreter %
,并在执行完成后使用返回键返回到vim。
是否有可能不使用执行的 shell 命令的输出替换当前窗口,而是在新的拆分窗格中打开输出?我希望在执行我的脚本期间仍然看到我的源代码。
我试过了:split ! interpreter %
,但没有用。
有办法吗?我正在使用 vim 7.3。
Ing*_*kat 29
使用:!
,外部命令在 shell 中执行,转瞬即逝的输出不会在 Vim 中捕获;您只需要看到打印到终端的内容,然后在外部命令完成后控制权返回给 Vim。
要保留输出,您必须将其读入 Vim缓冲区。为此,有:read!
命令。要打开一个新的暂存缓冲区,请将其与:new
:
:new | 0read ! <command>
Run Code Online (Sandbox Code Playgroud)
如果要将当前缓冲区的文件名 ( %
) 传递给外部命令,则必须使用:execute
,以便在当前缓冲区中对其进行评估:
:execute 'new | 0read ! interpreter' expand('%')
Run Code Online (Sandbox Code Playgroud)
或者,您使用这样一个事实,即使用新缓冲区,前一个缓冲区成为备用缓冲区,并使用#
代替%
:
:new | 0read ! interpreter #
Run Code Online (Sandbox Code Playgroud)
删除暂存缓冲区:bdelete!
。
如果您想在执行时异步查看输出,则需要外部多路复用器或插件,如@chaos 答案中所述。
归档时间: |
|
查看次数: |
14297 次 |
最近记录: |