2013-05-09 1 views
0

바인딩 동일한 키에 여러 명령을 할당 "슈퍼 + Alt + 왼쪽"왼쪽 창 화면 광범위한 (66 %)이되도록 레이아웃을 설정하려면I 가지고 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

이 키 조합의 효과가 전혀 보이지 않습니까? 'Default (OSX) .sublime-keymap' 파일 (기본값과 사용자 모두)을 다시 확인하여 다른 곳에이 콤보를 할당하지 않았는지 확인하십시오. – MattDMo

+0

예,이 키 바인딩의 효과가 나타납니다. – gprasant

답변

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]] }) 

그래서 플러그인이 self.windowsublime_plugin.WindowCommand를 확장하고 사용해야합니다

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]] 
     }) 

그리고 ExpandAndFocusLeftPaneExpandAndFocusLeftPaneCommand을해야합니다.

+0

플러그인 파일을 저장하기 위해 어떤 이름을 사용해야합니까? 어떤 디렉토리에 있습니까? 국제 대회가 있습니까? – gprasant

+0

그리고 마지막으로이 명령에 대한 키 바인딩을 어떻게 설정합니까? – gprasant

+0

@gprasant'{ "keys": [ "super + alt + left"], "command": "expand_and_focus_left_pane"}'작동해야합니다. 'window.run_command ("expand_and_focus_left_pane")' – dusan

관련 문제