踊るサボテン工房|Mac|Snippet for CotEditor

Snippet(スニペット)

本家とは比ぶべくもない半端な実装で申し訳ありませんが、完成を待っているといつになるか分からないので、出来た分から公開します。

スニペットとは - IT用語辞典 Weblio辞書

本スニペットは現在、タブトリガーのみをサポートします。省略形を入力しタブキーを押すことで、定められたテキストを展開、挿入します。

インストール

SIMBL プラグインの Snippet をダウンロードし、CESnippet.bundle を下記のフォルダへコピーしてください。

~/Library/Application Support/SIMBL/Plugins/

コピーしたら CotEditor を再起動してください。再起動すると、下記フォルダにデフォルトの Snippets フォルダが作成されます。

~/Library/Application Support/CotEditor/

使い方

私は Finder と テキストエディタの組み合わせが多くの人にとって分け隔てなく使える最も安定した環境であると考えます。スニペットの管理はこの両者を使用して行います。

Snippets フォルダの中には、シンタックス名称のフォルダが並びます。CotEditor にて選択されているシンタックスによって、これらのフォルダに格納されたスニペットファイルが読み込まれます。

どのシンタックスでも使いたいスニペットは「nosyntax」フォルダに格納します。

※これは編集中のシンタックスに合わせてアクティブなスクリプトフォルダも変更して欲しいと言う個人的な希望とその実現方法に関するヒントをなんとなく含んでいます。

それらの中には既にいくつかのスニペット定義ファイルも存在します。

スニペットはプレーンテキストファイルで作成します。そのファイル名が(拡張子を含めて)タブトリガーになります。CotEditor 上でタブトリガーを入力し、タブキーを押下してください。スニペットを展開し、現在の編集点に挿入します。

作成したスニペットを直ぐに読み込んで使用したい場合、タブトリガー「update_snip」を入力し、タブキーを押下してください。

1 プレーンテキスト

単純にテキストを挿入するだけの場合は、ファイル内容に挿入したいテキストを書き、タブトリガーにしたい単語(省略語)をファイル名にして保存してください。

タブトリガー(つまりファイル名)は、その言葉を入力した後でタブキーを押すことが絶対に無いであろう単語で、且つ覚えやすいものにしましょう。単語の末尾に特定の記号(ピリオドなど)を付与するのも良い考えです。

スニペットつまりファイル内容において、$と`は(ドル記号とバックティック)予約語であるため、エスケープが(\$など)必要になることを覚えておいてください。

2 変数

頭に $ を冠したいくつかの変数名を使用することが出来ます。詳細は別途一覧を参照してください。

3 シェルスクリプト

スニペット中にバックティックで囲まれた部分が存在する場合、その部分はシェルスクリプトとして解釈され、その実行結果がスニペットに挿入されます。シェルは "/bin/sh" です。

クリップボード内容からリンク文字列を作る場合以下のようなスニペットになります。

<a href="`pbpaste`">`pbpaste`</a>

シェルスクリプトの実行は変数の展開の後になります。変数の値を利用したスクリプト処理が可能です。

ソースコードのブロックコメントを書く際に水平線を挿入する人は珍しくないと思いますが、水平線の幅はきれいに揃えたいものです。現在の挿入キャレットの位置から 80 桁目まで水平線を挿入するスニペットは以下のようになります。

`ruby -e "print '// ';i=0;while i<(77-${CurCol}); print '-'; i+=1; end;"`

4 タブストップ

スニペットの挿入後、通常は挿入テキストの末尾に入力キャレットが移動します。しかし、スニペット中の特定の場所で有って欲しい場合があります。これを $0 と記述することで指定することが出来ます。例えば、HTMLのdivのスニペットを作ってキャレットが開始タグと終了タグの間に位置するようにできます。スニペットは以下のようになります。

<div>
    $0
</div>

ロードマップ

次の実装予定は考え中です。でもあまりに人気の無さにやる気無くしてます。

プレイスホルダーは現在対応を考え中ですが、それまで <##> が出力されるようなスニペットにしておいて Zen-Coding に含まれているプレイスホルダー移動スクリプトを使用するというテもあります。

作成日:2012/01/28
更新日:2012/03/13

inserted by FC2 system