0

左ペインが画面の幅 (66%) になるようにレイアウトを設定するには、「Super + Alt + left」を使用します。

現在のST2レイアウト

また、クリックや 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]]
  }
},

しかし、それはまだ私がやりたいことをしません。何か案は ?

4

1 に答える 1

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

于 2013-05-09T13:58:31.883 に答える