You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vim的:term命令中实现shell输入重定向

问题根因

:term 命令默认会直接启动指定程序并传递参数,不会调用系统shell做预处理,因此shell语法中的输入重定向符 < 不会被识别,只会被当做普通参数传递给Python程序,无法触发从文件读取输入的逻辑,程序就会持续等待标准输入。

解决方案

方法1:显式调用shell执行命令

手动指定shell并将完整的带重定向的命令作为参数传入,shell会自动完成重定向逻辑:

  • Linux/macOS 环境(以bash为例):
    :term bash -c 'python3 myfile.py < input.txt'
    
  • Windows 环境(以cmd为例):
    :term cmd /c "python3 myfile.py < input.txt"
    

方法2:使用 ++shell 参数(Vim 8.2及以上版本支持)

Vim 8.2 为 :term 新增了 ++shell 可选参数,添加后Vim会自动调用默认shell执行后续命令,无需手动写shell调用逻辑:

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

注意事项

如果你的脚本路径、输入文件路径包含空格或特殊字符,需要给对应路径加引号转义,避免shell解析出错,示例:

:term bash -c 'python3 "我的脚本.py" < "输入文件.txt"'

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:39:03