崇高なテキストスニペットで生産性を高める方法


簡単に言えば、最近、私は自分の仕事で多くのbashスクリプトを作成しなければならないプロジェクトに割り当てられました。私はPythonのバックグラウンドを持っており、すべての開発作業にJupyterNotebookを使用しています。私にとってのbashスクリプトの問題は、ブラケットの使用法がわかりにくく、すべてのスクリプトでコードが繰り返しブロックされることです。

その時点まで、私はNanoエディターを使用してbashスクリプトを作成していました。 Nanoは、ターミナルエディタとしていくつかの基本的な機能を提供しますが、ポイントを超えることはありません。そこで、調査を行い、bashやその他のプログラミング言語の頼りになるエディターとして「SUBLIMETEXT3」を選択しました。反復関数、ワンライナー、bashスクリプトの制御ブロックのスニペットをたくさん作成したので、時間を節約できるだけでなく、生産性も向上しました。

スニペットは、多くの最新のテキストエディタまたはIDEエディタに付属している人気のあるプログラミング機能です。スニペットは、必要なときにいつでも再利用できるテンプレートと考えることができます。スニペットは特定のプログラミング言語に制限されていません。新しいスニペットを作成し、挿入するテキストを追加して、トリガーワードを割り当てるだけです。これらの機能はすべて、次のセクションで説明します。

定義されたスニペットを崇高なテキストで一覧表示するには

デフォルトでは、崇高なテキストには、bash用の事前定義されたスニペットがいくつか付属しています。スニペットを検索している現在のファイルに基づいて、スニペットがスマートに表示されます。私はシェルスクリプト内にいて、コマンドパレットを呼び出してスニペットを入力すると、bashに定義されたスニペットのリストが自動的に提供されます。

SublimeTextのスニペットにアクセスする方法は2つあります。

  1. MENU DRIVEN ⇒ SUBLIME TEXT → TOOLS → SNIPPETS
  2. COMMAND PALETTE ⇒ SUBLIME TEXT → COMMAND PALETTE (CTRL+SHIFT+P) → TYPE SNIPPETS

崇高なテキストで新しいスニペットを作成する

崇高なテキストは、新しいスニペットを作成するときにXML形式のデフォルトテンプレートを提供します。テンプレートを作成するには、SUBLIMETEXT→TOOLS→DEVELOPER→NEWSNIPPETに移動します。

テンプレートの定義を理解し、パラメータを変更しましょう。

  • The actual content or block of code to be inserted should be placed within <content><![CDATA[ ]]></content>. I am going to create a snippet for “header comment“. Every script you create will have a header comment defining the information about the script like author name, created date, version number, deployment date, etc..
  • Tabtrigger (Optional) which binds a “TEXT” that acts as a trigger for the snippet. When the trigger name is typed and you press the “TAB“, the snippet will be inserted. It is commented by default, remove the comment, and add some text for the trigger. Choose a descriptive and short name. For Ex: I am choosing “hcom” for inserting header comments. It can be anything of your choice.
  • Scope (Optional) defines to which language you snippets are bonded to. You may work with 2 or 3 different programming languages at a time and you might use the same name for different snippets across different programming languages. In that case scope controls to which language you snippet should be inserted to thus avoiding the collision. You can get the list of scopes from Link. Alternatively, you can go to TOOLS → DEVELOPER → SHOW SCOPE NAME or Press <CTRL+ALT+SHIFT+P> to get the scope name of the language you are using.
  • Description (Optional) will not be available in the default template but you can use it to define some context on what this snippet does.

これで、いくつかの基本的な作業が完了しました。 「hcom」タブトリガーにバインドされ、シェルスクリプトにソースされる単純なヘッダーコメントを挿入するスニペットを定義しました。

それでは、新しいbashファイルを開いて「hcomと入力」しましょう。下の画像を「hと入力」すると、スニペットの定義に説明が表示されます。 キーを押して展開するだけです。

フィールドは、 などを使用して示されます。フィールドを使用すると、 キーを押すだけで、フィールドマーカーが配置されている位置にジャンプできます。

スニペットを見ると、2つのフィールドマーカー が追加されています。スニペットを挿入すると、カーソルが なので、その位置に何かを入力できます。

次に、 キーを押して、次のマーカー にジャンプし、何かを入力する必要があります。この場合、2つの位置に という同一のマーカーがある場合、1つの位置でフィールドを更新すると、同一のフィールド()が更新されることに注意してください。

  • <tab> key → Jump to the next field marker.
  • <shift+tab> key → Jump to previous field marker.
  • <Esc> key → Break out of field cycle.
  • $0 → Controls the exit point.

プレースホルダーは、中括弧&#36 {0:}; 内で定義されたキーと値のペアのようなものです。フィールドマーカーにはデフォルト値のタグが付けられます。値を変更するか、そのままにしておくことができます。スニペットが挿入され、タブを押すと、カーソルがデフォルト値に置かれます。

これで、スニペットがデフォルト値で挿入され、マウスが (この場合は v1 )に配置されます。値を変更するか、 キーを押して次のマーカーに移動します。

Sublime Textスニペットの唯一の欠点は、すべてのスニペットを1つのファイルにグループ化できないことです。ファイルごとに1つのスニペットのみが許可されているため、面倒です。ただし、 .sublime-completion ファイルの作成などの他のオプションもあります。これについて詳しくは、ドキュメントをご覧ください。

スニペットファイルは、サフィックス .sublime-snippet を付けて保存する必要があります。 [設定]→[パッケージの参照]に移動します。ユーザー定義の設定が保存されているディレクトリが開きます。スニペットファイルが保存されるディレクトリ「User」に移動します。

Snippet-generator-appは、入力に基づいてWebベースの自動スニペット生成を提供します。 Sublime Text、Atom、およびVSCodeで使用できます。左側に説明、タブトリガー、コンテンツを入力すると、ページの右側にライブコードが生成されます。

AmbariAPIからクラスター名を取得するサンプルスニペット。

それが今日のすべてです。崇高なテキストでスニペットを使用することの利点を見てきました。スニペット機能を示す例として単純な疑似テキストを使用しましたが、それだけではありません。また、この機能は、Vim、Atom、Eclipse、Pycharm、Vscodeなどのすべてのエディター/ IDEで使用できることも指摘しておきます。