当使用 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
- 安装总站
- 创建一个新的构建系统
- 在构建系统中输入以下内容:
{
"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"},
}
- 现在使用这个新的构建系统构建
像repl一样使用终端的截图:
这基本上会为您创建一个 repl,而无需在每次构建后打开新选项卡,如果您愿意,您可以使用折纸进一步修改它以在屏幕的右、左、上、底部显示控制台。
您还可以在默认输出控制台 window 中使用 terminus 和 运行 它,同时接受输入并使其可交互
为此-
- 创建一个新的构建系统
- 在构建系统中输入以下内容:
{
"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"},
}
- 现在使用这个新的构建系统构建
- 还要确保将这些添加到密钥中 - 绑定
[
//----------------------- 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"}]
},
]
- 第一个允许您在默认控制台区域(ctrl + enter)中创建一个 cmd shell,第二个允许通过关闭终端(ctrl + x)来关闭默认控制台,这是它喜欢的。
控制台终端截图:
我浪费了很多时间试图找到一种在 repl 中重新使用选项卡的方法,那时我发现 sublime repl 不再被积极维护。这就是我找到 terminus 的方式,它得到积极维护并且可以做类似 repl 的事情,希望这对你有帮助。
这里是 github 指南 link:https://github.com/wuub/SublimeREPL/issues/481#issuecomment-917862655
在这个问题中 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
- 安装总站
- 创建一个新的构建系统
- 在构建系统中输入以下内容:
{ "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"}, }
- 现在使用这个新的构建系统构建
像repl一样使用终端的截图:
这基本上会为您创建一个 repl,而无需在每次构建后打开新选项卡,如果您愿意,您可以使用折纸进一步修改它以在屏幕的右、左、上、底部显示控制台。
您还可以在默认输出控制台 window 中使用 terminus 和 运行 它,同时接受输入并使其可交互 为此-
- 创建一个新的构建系统
- 在构建系统中输入以下内容:
{ "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"}, }
- 现在使用这个新的构建系统构建
- 还要确保将这些添加到密钥中 - 绑定
[ //----------------------- 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"}] }, ]
- 第一个允许您在默认控制台区域(ctrl + enter)中创建一个 cmd shell,第二个允许通过关闭终端(ctrl + x)来关闭默认控制台,这是它喜欢的。
控制台终端截图:
我浪费了很多时间试图找到一种在 repl 中重新使用选项卡的方法,那时我发现 sublime repl 不再被积极维护。这就是我找到 terminus 的方式,它得到积极维护并且可以做类似 repl 的事情,希望这对你有帮助。
这里是 github 指南 link:https://github.com/wuub/SublimeREPL/issues/481#issuecomment-917862655