5

プロジェクト用にさまざまなシェルビルドスクリプトがあり、どのシェルスクリプトを実行できるようにするオプションを備えた1つの集中型ビルドシステムを作成したいと考えています。たとえば、ユーザーがCmd + Bを押すと、次のオプションが表示されます。

1)shellscript1.sh
2)shellscript2.sh
3)shellscript3.sh

ユーザーが3を押すと、SublimeTextは「shshellscript3.sh」を実行します。

http://sublimetext.info/docs/en/reference/build_systems.htmlを読んでいますが、このオプションをSublimeTextビルドシステムのJSONコードに統合する方法がわかりません。

Sublime Text 2のビルドシステムでこれをどのように達成しますか?

ありがとう!

4

3 に答える 3

2

実際には、独自のプラグインは必要ありません。必要なのはビルドバリアントだけです。サンプルコマンドを使用した簡単な例を次に示します。

{
  "name Script 1",
  "cmd": ["shellscript1.sh", "$file"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${project_path:${folder:${file_path}}}",

  "variants":
  [
    {
      "name": "Script 2",
      "cmd": ["shellscript2.sh", "$file"]
    },
    {
      "name": "Script 3",
      "cmd": ["shellscript3.sh", "$file"]
    }
  ]
}

これをMyScript.sublime-buildとしてユーザー設定フォルダーに保存します。その後、ビルドメニューから選択して、自動ターゲットをオフにすることができます。

Commandこれで、 + B(Macの場合はControl+ B、WindowsおよびLinuxの場合)を押すと、デフォルトのターゲットがファイルに対してスクリプト1を実行しますが、いずれかのバリアントを選択することもできます。

さまざまなMakeターゲットのバリアントを提供するために私が個人的に使用するビルドファイルについても、この回答を参照してください。

于 2012-12-15T02:12:09.087 に答える
1

特定のコードを提供するのに十分なPythonはわかりませんが、コマンドの配列を処理して制御ロジックを提供するには、独自のexec.pyを作成する必要があるようです。次に、JSONファイルで、「cmd」キーの値をとして書き込む必要があります[["first cmd"], ["second cmd"],..., ["last cmd"]],

私はこの質問に従っています。私はあなたの考えが本当に好きです。

于 2011-11-10T15:25:07.527 に答える
1

私は自分のプラグインを作成し、run()に次のプラグインを配置しました。

self.view.window().run_command('exec', {'cmd': ['sh', 'script.sh'], 'quiet': False})        

私はこのGitサポートプラグインのコードに基づいています:https ://github.com/notanumber/gitst2

于 2011-11-14T08:40:21.527 に答える