Sublime テキスト スニペットで生産性を高める方法
簡単に言うと、最近私は仕事で大量の bash スクリプトを作成する必要があるプロジェクトに割り当てられました。私は Python のバックグラウンドを持っており、すべての開発作業にJupyter Notebook を使用しています。私にとって bash スクリプトの問題は、括弧の使用法がわかりにくいことと、すべてのスクリプトでコードのブロックが繰り返されることです。
その時点まで、私は Nano エディターを使用して bash スクリプトを作成していました。 Nano はターミナル エディタとしていくつかの基本的な機能を提供しますが、それ以上のものはありません。そこで私は調査を行った結果、bash およびその他のプログラミング言語の頼りになるエディターとして「SUBLIME TEXT 3」を選択しました。反復関数、ワンライナー、bash スクリプトの制御ブロック用のスニペットを多数作成しました。これにより、時間が節約されただけでなく、生産性も向上しました。
スニペットとは何ですか?
スニペットは、多くの最新のテキスト エディタや IDE エディタに付属している人気のあるプログラミング機能です。スニペットは、必要なときにいつでも再利用できるテンプレートと考えることができます。スニペットは特定のプログラミング言語に限定されません。新しいスニペットを作成し、挿入したいテキストを追加し、トリガーワードを割り当てるだけです。これらすべての機能については、次のセクションで説明します。
Sublime Text で定義されたスニペットをリストするには
デフォルトでは、崇高なテキストには、bash 用の事前定義されたスニペットがいくつか付属しています。スニペットを検索している現在のファイルに基づいて、スニペットがスマートに表示されます。私はシェル スクリプト内で、 コマンドパレットを呼び出してスニペットと入力すると、bash に定義されたスニペットのリストが自動的に提供されます。
Sublime Text のスニペットにアクセスするには 2 つの方法があります。
- メニュー主導 ⇒ サブライムテキスト → ツール → スニペット
- コマンド パレット ⇒ サブライム テキスト → コマンド パレット (CTRL+SHIFT+P) → スニペットを入力
Sublime Text で新しいスニペットを作成する
崇高テキストは、新しいスニペットを作成するときに XML 形式でデフォルトのテンプレートを提供します。テンプレートを作成するには、サブライムテキスト → ツール → 開発者 → 新しいスニペットに移動します。
テンプレートの定義を理解してパラメータを変更してみましょう。
- 挿入する実際のコンテンツまたはコードのブロックは、
内に配置する必要があります。 「ヘッダー コメント」のスニペットを作成します。作成するすべてのスクリプトには、作成者名、作成日、バージョン番号、展開日などのスクリプトに関する情報を定義するヘッダー コメントがあります。 - タブトリガー (オプション) スニペットのトリガーとして機能する「テキスト」をバインドします。トリガー名を入力して「TAB」を押すと、スニペットが挿入されます。デフォルトではコメント化されているため、コメントを削除し、トリガーのテキストを追加します。わかりやすい短い名前を選択してください。例: ヘッダー コメントの挿入に「hcom 」を選択しています。何でも構いません。
- スコープ (オプション) は、スニペットがどの言語に結合されるかを定義します。同時に 2 つまたは 3 つの異なるプログラミング言語を使用し、異なるプログラミング言語間で異なるスニペットに同じ名前を使用する場合があります。その場合、スコープはスニペットを挿入する言語を制御して衝突を回避します。リンクからスコープのリストを取得できます。または、[ツール] → [開発者] → [スコープ名を表示] に移動するか、
を押して、使用している言語のスコープ名を取得することもできます。 - 説明 (オプション) はデフォルトのテンプレートでは使用できませんが、これを使用して、このスニペットの動作に関するコンテキストを定義できます。
これで、いくつかの基本的な作業が完了しました。 「hcom 」タブ トリガーにバインドされ、シェル スクリプトにソースされる単純なヘッダー コメントを挿入するスニペットを定義しました。
次に、新しい bash ファイルを開いて「hcom」と入力します。下の画像を見ると、「h と入力」すると、スニペット定義が表示され、指定した説明が表示されます。 <tab>
キーを押して展開するだけです。
田畑
フィールドは、$1
、$2
、$3
などを使用して示されます。フィールドを使用すると、<tab>
キーを押すだけでフィールド マーカーが配置されている位置にジャンプできます。
私のスニペットを見ると、2 つのフィールド マーカー $1
と $2
が追加されています。スニペットを挿入すると、カーソルが に配置されます。 $1
なので、その位置に何かを入力できます。
次に、<tab>
キーを押して次のマーカー $2
にジャンプし、何かを入力する必要があります。 2 つの位置に同じマーカー、たとえば $1
がある場合、1 つの位置のフィールドを更新すると、同じフィールド ($1)
が更新されることに注意してください。
<tab>
キー → 次のフィールドマーカーにジャンプします。
キー → 前のフィールドマーカーにジャンプします。
キー → フィールドサイクルを終了します。$0
→ 終了ポイントを制御します。
プレースホルダー
プレースホルダーは、中括弧 $ {0:
内で定義されたキーと値のペアのようなもので、フィールド マーカーにはデフォルト値がタグ付けされます。値を変更することも、そのままにすることもできます。スニペットが挿入され、タブを押すと、カーソルはデフォルト値に配置されます。
これで、スニペットがデフォルト値で挿入され、マウスが $1
(この場合は v1
) に配置されます。値を変更するか、<tab>
キーを押して次のマーカーに移動します。
Sublime Text スニペットの唯一の欠点は、すべてのスニペットを 1 つのファイルにグループ化できないことです。ファイルごとに許可されるスニペットは 1 つだけですが、これは面倒です。ただし、.sublime-completion
ファイルの作成など、他のオプションもあります。これについて詳しく知りたい場合は、ドキュメントを参照してください。
スニペット ファイルはどこに保存されますか?
スニペット ファイルは、接尾辞 .sublime-snippet
を付けて保存する必要があります。 設定 → パッケージを参照 に移動します。ユーザー定義の設定が保存されているディレクトリが開きます。スニペット ファイルが保存されるディレクトリ「ユーザー 」に移動します。
スニペットジェネレーター
Snippet-generator-app は、入力に基づいて Web ベースの自動スニペット生成を提供します。これはSublime Text、Atom、VSCode で利用できます。左側に説明、タブトリガー、コンテンツを入力すると、ページの右側にライブコードが生成されます。
Ambari API からクラスター名を取得するサンプル スニペット。
それが今日のすべてです。ここまで崇高なテキストでスニペットを使用する利点を見てきました。スニペット機能を説明するために、単純な疑似テキストを例として使用しましたが、これには他にもたくさんの機能があります。この機能は、Vim、Atom、Eclipse、Pycharmなどのすべてのエディタ/IDE で利用できることも指摘しておきます。 >、Vscode など。