通过传递到 vim中 ,您正在更改标准输入流。由于 vim 是交互式程序,因此它需要标准输入作为控制台。
如果要在vim中查看,应该告诉它您正在从stdin中读取文件(通过提供参数
-):
history | vim -
另外,您可以使用 更多 或 更少 :
history | morehistory | less
后两者是优选的。如果通过管道 传送 到 vim
,它将看到您的“文件”具有修改,因此您不能直接使用
:q命令退出。相反,您必须通过强制退出
:q!,这有点笨拙。
在另一方面,你可以退出 更多 或 更少 只是打字
q。看看这两个程序的手册页。您会经常使用它们。
根据Russell Silva在评论中的建议,当您从stdin中读取时,可以以只读模式打开 vim
。只需提供
-R论点即可。然后,您可以正常退出而无需覆盖:
history | vim -R -



