退出vim后,Cygwin终端输入消失

时间:2017-07-31 15:01:32

标签: vim cygwin

使用Cygwin,我尝试在Vim中创建和编辑文件:

touch test | vim

这显然是一个错误;像vim "$(touch test)"这样的东西有更好的实际工作机会。然而,此命令会抛出错误:

  

Vim:警告:输入不是来自终端。

在此之后,Vim打开,我用:q退出程序。我进入终端的任何后续命令都会被隐藏起来,直到我重新启动Cygwin。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

你不明白管道|在shell中做了什么。

在子shell中,Pipe会将pervious命令的stdout作为stdin作为下一个命令。

你的touch foo没有产生任何输出,你期望发生什么?同样适用于vim "$(touch test)"

如果您想创建一个文件并一次性在vim中打开它,您可以尝试:

touch foo && vim foo

如果你想用vim编辑它,实际上,你可以简单地说:

vim foo

然后在编辑后保存缓冲区。