スニペット展開アプリのTextExpanderの代替アプリとしてDashを使用する

Macでブログを書くとき、文字入力の補助としてスニペット展開アプリであるTextExpanderを使用してきました。しかし、そろそろ最新版以外のサポートの打ち切りが見えてきたため、将来性を鑑みスニペットを移行することとしました。弊サイトにおいても、こちらでご紹介したように、TextExpanderによる作業効率化の恩恵は多々受けていたのですが、月額制に移行するほどのものではないと思い、Dashに移行しました。

ドキュメント検索からスニペット展開までを補う開発者必携アプリ「Dash」

「Dash」は、WordPressでも使用されているPHPやMySQL、JavaScript、jQuery、HTML、CSSといった多種多様な言語のドキュメント参照用アプリです。さらに、文字入力の補助として使用できるスニペット展開アプリでもあります。

https://kapeli.com/dash

基本的に無償で使用できますが、無償版ではドキュメント参照時、瞬時に表示されず一定時間(数秒間)待つ必要があります。たまに参照するぶんにはまったくもって問題ありませんが、頻繁に利用するには有償版を購入することをオススメします。

スニペット展開は無償で使用可能

ドキュメント参照は、上記のように無償版、有償版で機能に差異がありますが、スニペット展開においては機能差異はありません。単純に文字列を展開するだけであれば、「Dash」は有用なスニペット展開アプリです。「TextExpander」は、スニペット展開に特化したアプリであり、たとえばAppleScriptやJavaScriptと連携、特定のアプリケーション内のみでスニペットを展開するなど融通がききます。逆にそこまで融通を利かす必要のない場面においては、「Dash」でも十分にスニペット展開を補うことができます。

スニペットは、「Dash」を起動し、メニューから新規作成(⌘+N)で登録可能です。スニペットはグループ化(タグ付け)でき、用途によってタグを使い分けることで整理できます。

たとえば、MarsEditでブログを執筆する上で、以下のようなスニペットを登録しておくと便利でしょう。「Abbreviation」とは、スニペットを登録するためのキーワードです。文字列入力中に、「Abbreviation」を入力することで即スニペットが展開されます。注意点として、Safariなどスニペットを展開したくないアプリにおいてもスニペット展開は有効であるため、「Abbreviation」の先頭に通常使用しない文字列を登録しておくと良いでしょう。

Abbreviation Snippet
;pp <p>@cursor</p>
<
;href <a href="@clipboard" target="_blank">placeholder</a;&gt
;twitter <a href="https://twitter.com/ottanxyz" target="_blank">@ottanxyz</a>

たとえば、上記のようなスニペットを登録できます。「@」から始まる文字列は特殊文字列(プレースホルダー)です。

Placeholders 内容
@clipboard スニペット展開時にクリップボードの内容に置換されます。たとえば、URLをコピーしておいて、スニペットを展開すると、展開後にそのURLに置換されます。<a>タグと相性が良いです。
@cursor スニペット展開後にカーソル位置を移動します。<p>タグ等で多用します。
@date スニペット展開後に、現在日付に置換されます。日付のフォーマットは任意に変更可能です。私は使用していません。
@time スニペット展開後に、現在時刻に置換されます。時刻のフォーマットは任意に変更可能です。私は使用していません。
placeholder スニペット展開後、ダイアログが表示され、ダイアログで入力した文字列に置換されます。長文には向きません。

placeholderの使用方法がイメージしづらいですが、スニペット展開後に下記のダイアログが表示されます。下記では、参照先としてURLをクリップボードから展開し、タグの内容を自分で入力して補完するようにしています。

また、すべてのスニペットの先頭に同様の文字列(今回は「;」)を使用することで、スニペット検索時、スニペット展開時に統一感を持たせることができ快適に使用できますのでオススメです。日常的に使用しない文字列を指定しておきましょう。

このように、Dashは、TextExpanderのスニペット展開を補って余りある機能を持ち合わせています。AppleScriptやJavaScriptなどを使用して複雑なことはできませんが、MarsEditのスクリプトで十分代替可能です。たとえば、私はMarsEditのスクリプトに以下のスクリプトを登録しています。

global pageURL
global pageTitle

tell application "Safari"
 set pageTitle to get name of current tab of window 1
 set pageURL to get URL of current tab of window 1
end tell

set the clipboard to "<a href=\"" & pageURL & "\" target=\"_blank\">" & pageTitle & "</a>"

Safariの現在のタブのURLとタイトルを取得して、タグの内容に整形してクリップボードにコピーする文字列です。コピーした文字列はそのまま⌘+Vでペースとしています。

まとめ

スニペット展開用のアプリとして「Dash」をご紹介しました。有名なアプリですのでご存知の方も多いかと思いますが、ブログを執筆されている方の参考になればと思います。

https://kapeli.com/dash

comments powered by Disqus