当使用 SublimeREPL 运行 python 代码时重新使用选项卡

Re-use tab when running python code with SublimeREPL

在这个问题中 How to Run Python Code on SublimeREPL, an answer is given on how to use the usual Ctrl+b shortcut to run a python code using SublimeREPL 在 SublimeText 中。

步骤简单:

1- 创建一个新的空文件并将命令粘贴到其中:

{
    "target": "run_existing_window_command", 
    "id": "repl_python_run",
    "file": "config/Python/Main.sublime-menu"
}

2- 将文件另存为:

/home/USER/.config/sublime-text-3/Packages/User/SublimeREPL-python.sublime-build

3- 转到您的 Python 文件选项卡并 select:

Tools > Build System > SublimeREPL-python

之后通常的 Ctrl+b 快捷方式将打开一个执行代码的新选项卡。

问题是标签没有被重复使用。这意味着每次您点击 Ctrl+b 都会打开一个新标签页 ,而不是之前打开的同一标签页中的代码 运行。

有没有办法让 SublimeREPL 重新使用选项卡?

不幸的是,即使在最新版本的 SublimREPL 上,您也无法做到这一点。 您可以做的是向开发人员打开 ticket 以请求此实现。但我不确定 Sublime Text 是否能够做到这一点。

在 SublimeREPL\config\Python\Main.sublime-menu 的 "repl_python_run" 命令中添加以下行,就在 "external_id" 之前: "python" 参数:

"view_id": "*REPL* [python]",

然后更改行:

if view.id() == view_id

进入:

if view.name() == view_id

在SublimeREPL\sublimerepl.py.

找到 here

我找到了更好的方法 Terminus

  1. 安装总站
  2. 创建一个新的构建系统
  3. 在构建系统中输入以下内容:
{
    "target": "terminus_open",
    "title": "Python REPL",
    "tag": "python-repl",
    "auto_close": false,
    "shell_cmd": "python -u -i \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"PYTHONIOENCODING": "utf-8"},
}
  1. 现在使用这个新的构建系统构建

像repl一样使用终端的截图:

这基本上会为您创建一个 repl,而无需在每次构建后打开新选项卡,如果您愿意,您可以使用折纸进一步修改它以在屏幕的右、左、上、底部显示控制台。

您还可以在默认输出控制台 window 中使用 terminus 和 运行 它,同时接受输入并使其可交互 为此-

  1. 创建一个新的构建系统
  2. 在构建系统中输入以下内容:
{
    "target": "terminus_exec",
    "cancel": "terminus_cancel_build",
    "focus": true,
    "timeit": false,
    "shell_cmd": "python -u -i \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"PYTHONIOENCODING": "utf-8"},
}
  1. 现在使用这个新的构建系统构建
  2. 还要确保将这些添加到密钥中 - 绑定
[
    //----------------------- OPEN CMD CONSOLE -----------------------

    {
       "keys": ["ctrl+enter"], // you can change the keys
       "command": "terminus_open",
       "args" : {
           "cmd": "cmd.exe",
           "cwd": "${file_path:${folder}}",
           "panel_name": "Terminus"
       }
    },

    //----------------------- CLOSE TERMINUS CONSOLE -----------------------

    {
        "keys": ["ctrl+x"], "command": "terminus_close", // you can change the keys
        "context": [{ "key": "terminus_view"}]
    },
]
  1. 第一个允许您在默认控制台区域(ctrl + enter)中创建一个 cmd shell,第二个允许通过关闭终端(ctrl + x)来关闭默认控制台,这是它喜欢的。

控制台终端截图:

我浪费了很多时间试图找到一种在 repl 中重新使用选项卡的方法,那时我发现 sublime repl 不再被积极维护。这就是我找到 terminus 的方式,它得到积极维护并且可以做类似 repl 的事情,希望这对你有帮助。

这里是 github 指南 link:https://github.com/wuub/SublimeREPL/issues/481#issuecomment-917862655