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

Python 3.13 REPL如何启用Vim或Emacs按键绑定?

在Python 3.13 REPL中启用Vim/Emacs按键绑定

Python 3.13的REPL默认改用prompt-toolkit作为输入处理库,不再依赖传统的readline,因此旧版依赖readline或~/.editrc的按键绑定配置会失效。以下是两种可行的解决方法:

方法一:强制REPL使用readline(复用旧配置)

这个方法可以直接沿用你之前的~/.editrc或~/.inputrc配置:

  • 在shell的配置文件(如~/.bashrc、~/.zshrc)中添加环境变量:
    export PYTHON_REPL_USE_READLINE=1
    
  • 执行source ~/.bashrc(对应你的shell配置文件)或重启终端,之后启动Python REPL就会回到readline处理模式,旧的按键绑定自动生效。

方法二:使用prompt-toolkit原生编辑模式(保留新特性)

如果想保留Python 3.13 REPL的新特性(如语法高亮、智能缩进提示),可以直接配置prompt-toolkit的编辑模式:

  1. 创建~/.pythonrc.py文件,写入以下内容:
    from prompt_toolkit.shortcuts import set_preference
    from prompt_toolkit.enums import EditingMode
    
    # 启用Vim模式,如需Emacs模式则替换为EditingMode.EMACS
    set_preference(editing_mode=EditingMode.VI)
    
  2. 在shell配置文件中添加环境变量,让Python启动时自动加载这个配置:
    export PYTHONSTARTUP=~/.pythonrc.py
    
  3. 执行source命令或重启终端,之后启动REPL就会进入你设置的编辑模式。

临时启用方式(单次会话)

如果只需要在当前REPL会话中生效,可以直接执行:

  • Vim模式:import readline; readline.parse_and_bind('set editing-mode vi')
  • Emacs模式:import readline; readline.parse_and_bind('set editing-mode emacs')
    这种方式会临时切换回readline模式,仅对当前会话有效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:04:52