首页 > 解决方案 > 如何使用 `:term` 命令进行 shell 重定向?

问题描述

我正在使用 Vim 终端 ( :term) 在单独的窗口中打印我的 Python 脚本的输出:

:term python3 myfile.py

它可以工作,但是当我尝试从文件重定向输入时:

:term python3 myfile.py < input.txt

它不这样做,只是坐在那里等待输入。

如何在 Vim 命令模式下使用重定向输入:term

标签: redirectvimterminalstdinterm

解决方案


你想要执行 shell 重定向,但 Vim 命令行不是 shell,所以默认情况下,整个输入作为命令及其参数传递。
如果您希望 Vim 先将命令传递给 shell(例如 Bash)而不是直接执行,您需要使用++shell选项,如下所示:

:term ++shell python3 myfile.py < input.txt

要了解有关 Vim 内置终端选项的更多信息,请查看:h :term:h term++open


推荐阅读