Vim警告:输出不是终端

时间:2015-03-27 14:14:41

标签: linux vim perforce

我不明白为什么,在几个星期我不确定发生了什么变化,我在尝试执行这个vim功能时遇到了一个奇怪的错误:

function! P4diff()
       aboveleft 40new
       setlocal nomodified buftype=nofile nowrap filetype=diff
       %!p4 diff #
       setlocal nonu                                                                    
       setlocal
       readonly                                                                
       syntax on
    :endfunction

我收到错误:

Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
[51;1H"tmp.15529.64" [RO][converted] 119L, 2893C
"ProxyChain.java"                         [51;19H[converted] 115L, 2943C
Vim: Error reading input, exiting...
Vim: Finished.
[51;1H

要编辑的2个文件

任何人都知道为什么?

1 个答案:

答案 0 :(得分:1)

使用:{range}!命令通过外部程序过滤行时,Vim会在stdin上发送行并重定向stdout以捕获输出。

您调用的p4 diff命令看起来像是在内部使用Vim(可能是寻呼机),而下级Vim实例正在抱怨上述警告。在非交互式使用p4时,您可能希望禁用分页(可能有命令行参数或控制此参数的环境变量)。