2013-05-09 29 views
0

结合我有“超级+ Alt +左​​键”来设置布局使得左窗格更宽(66%)的屏幕的:分配多个命令相同的键在ST2

current ST2 layout

我也想同样的关键笔划集中在左边的标签,这样我就可以立即开始打字而不需要点击或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

您是否从这个组合键看到任何效果?仔细检查你的'默认(OSX).sublime-keymap'文件(默认和用户),以确保你没有在其他地方分配过这个组合。 – MattDMo 2013-05-09 13:52:22

+0

是的,我看到这个键绑定的效果。 – gprasant 2013-05-10 05:20:55

回答

1

首先,您必须检查“focus_group”和“set_layout”命令是否按预期工作。 打开控制台(查看 - >显示控制台),并尝试这个办法:

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

+0

我应该使用什么名字来保存插件文件?在哪个目录中?有一个约定吗? – gprasant 2013-05-10 04:58:24

+0

最后,我如何设置此命令的密钥绑定? – gprasant 2013-05-10 05:29:10

+0

@gprasant'{“keys”:[“super + alt + left”],“command”:“expand_and_focus_left_pane”}'应该可以工作。你可以使用'window.run_command(“expand_and_focus_left_pane”)来测试它' – dusan 2013-05-10 13:15:48

相关问题