我有“Super + Alt + left”设置布局,以便左窗格更宽(66%):
我还希望将相同的按键笔划集中在左侧标签上,以便我可以立即开始输入而无需单击或按Ctrl + 0。
这是我尝试过的。我添加了一个新的插件:
import sublime, sublime_plugin
class ExpandAndFocusLeftPane(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("focus_group", "args": {"group": 0})
self.view.run_command("set_layout", "args": {
"cols": [0.0, 0.66, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
})
我将“Super + Alt + Left”绑定到这个新命令。
{
"keys": ["super+alt+left"],
"command": "expand_and_focus_left_pane",
"args":
{
"cols": [0.0, 0.66, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
}
},
但它仍然没有做我想要它做的事情。有任何想法吗 ?
答案 0 :(得分:1)
首先,您必须检查“focus_group”和“set_layout”命令是否按预期工作。 打开控制台(View-> Show Console)并尝试:
view.run_command("focus_group", "args": {"group": 0})
你会得到一个:
File "<string>", line 1
view.run_command("focus_group", "args": {"group": 0})
^
SyntaxError: invalid syntax
如果您将其更改为
view.run_command("focus_group", {"group": 0})
它不起作用。这是因为“focus_group”和“set_layout”是window
命令,所以这将起作用:
window.run_command("focus_group", {"group": 0})
window.run_command("set_layout", { "cols": [0.0, 0.66, 1.0], "rows": [0.0, 1.0], "cells": [[0, 0, 1, 1], [1, 0, 2, 1]] })
因此,您的插件应该展开sublime_plugin.WindowCommand
并使用self.window
:
class ExpandAndFocusLeftPaneCommand(sublime_plugin.WindowCommand):
def run(self):
self.window.run_command("focus_group", {"group": 0})
self.window.run_command("set_layout", {
"cols": [0.0, 0.66, 1.0],
"rows": [0.0, 1.0],
"cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
})
ExpandAndFocusLeftPane
应为ExpandAndFocusLeftPaneCommand
。