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

使用vim+tmux时,如何不退出Python环境重新执行脚本?

我之前也碰到过一模一样的糟心事!每次改完代码切终端、退Python、重跑,不仅手忙脚乱,之前测过的命令全丢,太影响效率了。折腾了好几种方法,下面这几个亲测好用,分享给你:

方案1:用ipython替代默认Python+%run魔法命令

  • 先把默认的Python交互环境换成ipython——它天生自带历史记录持久化功能,就算你关了终端再重启,之前输入的命令都能找回来。
  • 当你在Vim里改完代码保存后,不用退出ipython会话!直接在ipython里输入%run script.py,它会重新执行你的脚本,而且之前定义的变量、测试过的命令全都保留着。
  • 嫌每次敲%run script.py麻烦?按↑键就能调出上次的命令,直接回车就行,或者在ipython里配置个快捷键,比如把%run script.py绑定成\r之类的,更省心。

方案2:在Vim里直接把代码发送到终端会话

  • 装个vim-slime插件,它能帮你把Vim里的代码或者命令直接发送到tmux的终端面板里,完全不用手动切换窗口。
  • 配置好后,你可以:
    • 输入:%SlimeSend把整个脚本发送到正在运行的ipython会话里重新执行
    • 选中部分代码,按快捷键发送过去单独测试
  • 不想装插件的话,也可以用Vim内置的jobstart和jobsend功能,后台启动ipython会话后直接发送命令,不过配置稍微繁琐一点,新手还是插件更友好。

方案3:优化tmux切换+保留后台会话

  • 给tmux配置快速切换面板的快捷键,比如把Ctrl+a + <和Ctrl+a + >绑定成左右面板切换,或者用数字键直接切换面板,比默认快捷键快一倍。
  • 关键是别每次退出ipython!就让它在tmux的终端面板里后台挂着,改完代码切过去直接重跑,历史记录一直都在——ipython默认会把历史存在~/.ipython/profile_default/history.sqlite里,就算重启电脑都能找回之前的命令。

我现在日常用方案1+方案3的组合,改完代码保存后按个快捷键切到终端,↑回车就重新跑脚本,测试过的变量和命令全在,效率提升太多了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:02:47