2013-04-22 10 views

答えて

15

* .sublime-menuファイルは単なるJSONです。ユーザーディレクトリにMain.sublimeメニューを作成すると、他のメニューエントリとマージされます。サードパーティのプラグインが持っているMain.sublime-menuファイルを調べることは有益でしょう。これらは一般的にははるかに短く、各エントリで定義する必要がある事項の一部を理解するのが簡単かもしれません。

編集

あなたは、任意のファイルをメモ帳を開くには、プラグインとして以下を使用することができます。

import sublime 
import sublime_plugin 
import subprocess 
import threading 
class OpenNotepadCommand(sublime_plugin.TextCommand): 
    def run(self, edit, filename=None): 
     th = NotepadThread(filename) 
     th.start() 

class NotepadThread(threading.Thread): 
    def __init__(self, filename=None): 
     self.filename = filename 
     threading.Thread.__init__(self) 

    def run(self): 
     if self.filename is not None: 
      subprocess.call("notepad.exe %s" % self.filename) 
     else: 
      subprocess.call("notepad.exe") 

メニュー項目を作成するときは、コマンドと引数に次のようなものを使用します。

{ 
    "command": "open_notepad", 
    "args": { "filename": "<the absolute path here>"} 
} 
+0

' default' packagesディレクトリには、組み込みの正式なメインメニュー(メニューバー)とコンテキストメニュー(右クリック)が含まれています。私はサイドバーメニューをカスタマイズすることも可能だと信じています - サイドバー拡張プラグインを見てください。 。 。 – lawlist

+0

@skuroda Googleを検索しています。カンツは何か役に立つものを見つける。誰でもサブライムテキストからファイルを実行できるプラグインを作成する方法を知っていますか?私はそれから自分の道を管理します。おかげで – Avi

+0

@AviAryanあなたは何をしようとしていますか?プラグインは単にpythonなので、サブプロセスモジュールを使って新しいプロセスを作成し、必要なものを実行することができます。 [Build Systems](http://docs.sublimetext.info/ja/latest/file_processing/build_systems.html)または[SublimeREPL](https://github.com/wuub/SublimeREPL)を参照してください。 )。 – skuroda

9

簡単なオプションはコマンドを実行するだけです。あなたのパッケージ/ユーザーディレクトリ内のファイルContext.sublimeメニューを作成し、次の行を追加します。

[ 
    { "caption": "<Your caption here>", "command": "exec", "args": {"cmd": ["<your cmd name>", "<arg1>", "<arg2>", <...>]} } 
] 

Exemple:ちょうどDIRを実行して、コンテキストメニューにメニュー項目を追加する:

[ 
    { "caption": "List files in current dir", "command": "exec", "args": {"cmd": ["dir"]} } 
] 
+0

この回答は私が大きく助けてくれました。このトピックでは、この単純な操作を実際にはカバーしていません。 – sugardaddy

+0

しかし、それを私のWindows ST2で動かすには、これを要素の1つ(キャプションやコマンドなどの兄弟)の1つとして追加する必要がありました... "id": "justSomethingUniqueLikeActionName" これは私のコードですRegReplaceプラグインのシーケンスを実行する... '{ \t "ID": "cfmlToCfScript"、 \t "キャプション": "CFSCRIPTにCFML"、 \t "コマンド": "reg_replace"、 \t "引数":{ \t \t "置換":[ \t \t \t "operation1" \t \t \t、 "operation2" \t \t] \t \t、 "find_only":偽 \t} } ' – sugardaddy

+0

プラグインのディレクトリを作成した場合(つまり、 'Packages/plugin_name')はsublime-menuファイルをそのディレクトリに置き、JSONの' command'値にプラグインのコマンド名を使用します。例: '{" caption ":" Plugin desc "、" command ":" plugin_cmd "}' – steve

関連する問題