TextExpander の使い方

このブログでは TextExpander について色々とエントリしてきましたが、エントリが分散していて読みにくいのと内容が陳腐化してしまっているので、こちらにまとめ直しました。

TextExpander とは


TextExpander とは Mac OS X や iOS での入力補助ツールです。スニペットという省略文字列 (Abbreviation) を入力すると、決められた文字列に展開してくれるユーティリティです。同じような文字列入力を省略文字を入力するだけで簡単に入力できるようになり、プログラミングやブログのタイピング効率を上げることができるようになります。

多くの方は日本語辞書への単語登録という方法で同じようなことをされていると思います。たとえば、「メール」という読みにメールアドレスを登録することで入力を簡易化していると思います。TextExpander もこのような入力支援ができるものです。ただし、単語登録では定型文を登録しておくことができますが、TextExpander ではそれ以上に細かい入力支援をすることができます。

単純な定型文への置換であれば TextExpander ではなく、辞書登録することをお勧めします。その理由は、iOS 版の TextExpander は文字入力先のアプリケーションが TextExpander に対応していないと使えないからです (iOS 8からはカスタムキーボードとして TextExpander キーボードを使うことですべてのアプリケーションで使えるようになるということです)。辞書登録であれば日本語入力できるのであればどこでも使えますので、そちらの方が便利でしょう。私も、自分のメールアドレスなどは辞書登録をしています。
Mac の場合は、OS X の機能を使っていますので、 TextExpander が使えないというアプリケーションは基本的にはありません。

それでも Mac の場合と iPhone の場合を使い分けるのは混乱しかねませんので、単純な定型文は辞書登録、少しテクニックを使う細かい入力補助は TextExpander を使う、という使い分けをお勧めします。

TextExpander には、Mac版の TextExpander for Mac と iOS 版の TextExpander Touch の 2 種類があります。どちらもそれなりの価格となっていますが、一度使うと手放せない、価格の分だけの価値はあるツールだと思います。Mac 版は 公式サイト から試用版をダウンロードすることができます。ここから先を読まれる際には自分で試しながら読んでいただくと理解しやすいと思いますので、試用版をダウンロードしておくことをお勧めします。

Mac 版はAppStoreからではなく公式サイトから

Mac 版は AppStore でもリリースされていますが、最新版は公式サイトからダウンロードして購入する必要があります。最近の Mac OS にはサンドボックスというセキュリティ対策の機能があります。TextExpander はこのサンドボックスがあると動かないため AppStore からはリリースできなくなったそうです。

公式サイトの販売ページはこちらです。
公式サイトの販売ページ

iOS版はAppStoreから


iOS 版の TextExpander Touch は AppStore から購入することができます。iOS 版でできることは Mac 版に比べて少なくなっています。しかし、iPhone のタッチスクリーンで文章を入力するのはキーボード入力よりも効率が落ちます。だからこそ、多くの機能が無かったとしても効果は高いと思います。

TextExpander (価格: ¥500)
カテゴリ: 仕事効率化
販売元: SmileOnMyMac, LLC
App



なお、Mac 版と iOS 版の TextExpander の間で Dropbox を使ってスニペット情報を共有できます。スニペットを iOS 版のみで定義していくよりも、Mac 版で定義して iOS 版で同期する方が格段に楽だと思います。両方使われる予定の方は、まずは Mac 版で試して、使えると判断してから iOS 版を購入して Dropbox でスニペットを同期すればすぐに使えるようになります。

ここからの説明は基本的には Mac 版での説明となります。 iOS 版でもほとんど変わらないので iOS 版で使われる方は読み替えてください。なお、一部の機能は iOS 版では利用できない場合などがあります。その場合は、iOS での違いを個別に説明していきます。

スニペットとは


スニペットとは「省略形」と「省略形を入力した際に展開する文字列」のセットのことです。
省略形は Abbreviation と書かれているフィールドに入力します。この例では「;web」を省略語に指定しています。
TextExpander 002

展開する文字列を Content に定義します。Content は 4 種類ありますが、ひとまずはプレインテキストを使っておきましょう。
TextExpander 003

このように設定することでエディタなどで「;web」と入力すると「http://www.smilesoftware.com/」に展開されるようになります。

スニペットのサンプル


ブログを書いている人などは、特によく入力する文字列をスニペットに登録しておくと良いと思います。例えば自分のブログのURL などを必ず定型で入力しているような人は、次のようなスニペットが便利でしょう。
(便宜上、省略形 = 展開文字列 の形で書いています)。

;url = <a href="http://azur256.com">最近,気になったこと…</a>

Twitter アカウントなどを次のように設定しても便利です。

;tw = <a href="http://twitter.com/azur256">@azur256</a> です。

注意したいこと


スニペットを作成する時に注意したいのが、省略形をどれだけうまく定義できるか、ということです。省略形の定義に失敗すると、入力したい文字が入力できなくなってしまったり、スニペットの展開に手間がかかってしまったりします。

例えば tw という省略形で http://twitter.com を展開するようなスニペットを作ったとしましょう。そうすると twin という単語を入力したくても入力できなくなってしまいます。tw を入力したところで文字が展開されてしまうからです。これを防ぐために最初の例のように “;web” のような一般には入力されそうも無い文字を組み合わせてスニペットを作ることになります。

しかし、この方法には一つ課題があります。それは、この手の記号は iPhone ではキーボードを切り替えないと入力できないのでキーボード切り替えの手間がかかるという事です。

TextExpander 007

そこで、私の場合は以下のような方法でなるべく重複しない省略形を作り、かつ、キーボード切り替えも少なくなるようにしています。

まず、先頭の単語を重ねるようにしています。例えば、twitter の URL であれば ttw といったように先頭の文字を重ねます。英語で先頭の文字が重なる単語はほとんどありませんので、先頭文字を重ねるのは非常に有効です。

さらに、勝手に展開されてしまうことをを防ぐために、文字入力後にすぐに展開しないで特定の記号が入力されたら展開するようにするというオプションを使っています。

TextExpander の設定画面で「Expand abbreviations」 というオプションがありますので、これを有効にして「at delimiter」を選択します。
TextExpander 004

その右にある「Set Delimiters」というボタンを押した先で区切り文字を指定することで、単語に続いて区切り文字が入力された時にだけ展開するようにできます。

TextExpander 006

ここでも、iPhone のキーボードで入力しやすい文字としてスペースを選んでいます。このように省略形を工夫することで入力の手間を格段に減らすことができます。

単なる文字列展開ではない TextExpander

ここまでで紹介してきた内容は、辞書登録でも十分できることです。ここからは TextExpander ならではの便利な機能をご紹介していきます。

まずは、次のスニペットを見てください。
TextExpander 008

これはブログを書く際に多用するであろう、h3 タグを入力するためのスニペットです。展開する文字列が <h3></h3> とはなっておらず <h3>%|</h3> となっています。この「%|」という記号(マクロ)は、文字列を展開した後にカーソルを「%|」の位置に移動することを指示しています。
つまり、文字列を展開した後にそのまま h3 タグで囲むべき内容を入力できるようになる、ということです。

また、次のようなマクロもあります。
TextExpander 009

今回は <h3>%clipboard</h3> と定義しています。これは 「%clipboard」 と書いた部分にクリップボードの内容をペーストして h3 タグと共に展開してくれるようになります。

このようなマクロ機能との組み合わせで通常の辞書登録ではできない展開の仕方が可能になるのが TextExpander の魅力の一つです。マクロは、先ほどの 「%clipboard」 のように文字列で指定しても構いませんが、他にも色々あるので、こちらのメニューから選択するのが便利です。
TextExpander 010

ここでは詳細の説明は省略しますが、沢山のマクロが提供されていますので、ぜひ見てください。
TextExpander 011

提供されているスニペットを見てみよう


TextExpander でのスニペットがどんなものかを理解していただけたと思いますが、実際にスニペットを作ろう、と思うとなかなか思いつかなかったりします。

スニペットは「同じような入力を何度もやってて面倒だ」と感じてから作るのが良いと思います。あらかじめ使うかもしれない、というものを作っても結局は使わないことがほとんどです。

とはいえ、ヒントになるようなものがあった方が良いと思いますので、TextExpander で最初から提供されているスニペットを見てみたいと思います。

TextExpander のメニューにある「Add Predefined Group」の中にいくつものグループが登録されています。これらを選択すると、スニペットのサンプルがダウンロードされて TextExpander に登録されます。
TextExpander 014

なお、TextExpander をドックに表示しないように設定している場合はメニューが表示されません。この画面の「Hide TextExpander icon in Dock」がオンになっている場合です。
TextExpander 013

この場合は、メニューバーの TextExpander アイコンから「Show TextExpander Menu Bar」を選ぶと表示されるようになります。
TextExpander 012

さて、では実際にダウンロードしてみたいと思います。今回は「Accented Words」を選びます。このメニューを選ぶとスニペットグループをダウンロードしてきて登録してくれます。TextExpander に「Accented Words」というグループ作られて、その中にスニペットがいくつも入っていると思います。
TextExpander 015

このグループはアクセント記号を使う単語をスニペットとして登録しておくことで、例えば café というような単語の入力を簡単にしてくれるものです。アクセント記号のコンビネーションって良く忘れてチートシートを見てしまうようなものはこうやって登録しておくと便利です。

このサンプルには「AutoCorrect」という、間違いやすい単語を省略形に登録しておき、その単語が入力されると正しい単語に直してくれる、というものもあります。これが便利で、良くつづりを間違える英単語を登録しています。また、英単語はスペースで区切りますので、先ほどご紹介したスペースをデリミタに設定して TextExpander で展開する設定は好都合です。

これらのサンプルは省略形の書き方がまちまちだったりするので、そのまま使うのではなく、自分なりに定義し直した方が良いとは思いますが、スニペットになれるための第一歩として使えると思いますので、ダウンロードして眺めてみてください。

マクロを使ってみる


TextExpander のマクロには先ほど紹介したカーソル移動させるものやクリップボード以外にも、日付関係のマクロ、スニペットの中で他のスニペットを呼び出すマクロ、特殊キーを操作するマクロ、フィルインマクロ(画面ではファイルインと訳されていますが、Fill-in なのでフィルインとします)、画像を埋め込むピクチャマクロがあります。

TextExpander 011

これらのマクロのうち代表的なものをご紹介します。なお、マクロは iPhone では使えないものがありますので、iPhone でも使いたい場合は事前に簡単なサンプルを作って使えるかを確認することをお勧めします。

フィルインマクロの使い方


フィルインとは、ほとんどが同じだが一部だけ変えたい文などを簡単に入力できるマクロです。
例えば、ある人の twitter アカウントへのリンクは ID の部分だけが違って、他の部分はほとんど同じになります。

例えば、私のリンクは



ですし、お友達のくらちゃん (@kuracyan) のリンクは



となります。この ID の部分だけ入力すれば Twitter へのリンクを簡単に作れるようなスニペットがフィルインです。フィルインを使うとこのようなダイアログが表示されます。
TextExpander 016

このテキストボックスに入力した ID を使って Twitter のリンクが作れます。このスニペットの定義は次のように書きます。




フィルインマクロを選ぶと %filltext:name=name:default=azur256% の部分を作成してくれます。

TextExpander 018

なお、その後に %fill:name% と書かれているところがありますが、これは、フィルインで入力した文字列と同じ文字列を使うところで指定します。最初のフィルインの指定のところで name として “id” を指定していますので、参照する部分で “id” を使って参照します。
一つのスニペットの中で複数のフィルインを使う場合、それぞれに違う id を付ければ別のもの、同じ id を付ければ同じ文字列を入れてくれます。

この例では、1行目と3行目は同じ id を、2行目は違う id を指定しています。
TextExpander 019

先ほどの画面で一番最初のダイアログだけを変更すると、同じ id が指定してあるすべてのフィールドが変更され、違う id の部分はそのままになります。

TextExpander 020

スニペットの定義はこのようになっています。



フィルインマクロはほんの少しだけ変わるような定型文、よくある差し込み印刷のようなイメージで使うことができますので、試してみてください。

キーマクロの使い方

キーマクロとは、特殊キーのコードを出力するマクロです。このマクロを書いておくと、その部分で特殊キーを押したのと同じ効果を発揮してくれます。
対象のキーは次の4つのキーです。
  • エンターキー(Enter Key)
  • エスケープキー(ESC Key)
  • リターンキー(Return Key)
  • タブキー(Tab Key)

これらのキーを文章を書くような時に使うケースは少ないかもしれませんが、例えば、タブキーを3回押して入力フィールドを移動した後に特定の id を入れてリターンを押す、というようにアプリケーションの入力を支援するマクロとして使うことができます。

先ほどのキーマクロだとこのようなイメージになります。


ブラウザで特定のフィールドまでタブキーを何度か押して移動してから決まった文字列を入力する、というようなシーンで使えるマクロです。

アップルスクリプトを使う(Mac版のみ)


Mac 版の TextExpander を使うなら、ぜひチャレンジしていただきたいのがアップルスクリプトの利用です。これを使うことによって TextExpander でできることが非常に多くなります。

アップルスクリプトを使うにはスニペットの定義画面で「アップルスクリプト」を選びます。通常は「プレインテキスト」になっているところをクリックするとプルダウンで選択できるようになります。
TextExpander 022

アップルスクリプトを使うと何ができるのか


アップルスクリプトを使うことでアプリケーションの色々な情報にアクセスしたりすることができます。例えば、次のスニペットを見てください。

TextExpander 023

スニペットのコードには次のように書いてあります。これは Google Chrome で表示している画面の URL を入力するスニペットになります。




次のように書くと Safari で表示しているページのタイトルを取ってくることができます。




アップルスクリプトを使うと Chrome や Safari のようなアプリケーションの情報にアクセスして、それを活用したスニペットを定義することができるようになるのです。アップルスクリプトはプログラミング言語ですので、アプリケーションとの連携が強化されるだけでなく、文字列操作などもできます。URLエンコードをするスニペットなども簡単に作ることができます。アップルスクリプト以外にシェルスクリプトを使うこともできます。また、これらのスクリプトから他のスクリプト(例えば、Ruby のスクリプトなど)を呼び出すこともできますので、様々な拡張をすることができます。

アップルスクリプトは最初は難しいかもしれませんが、使えるようになると TextExpander の価値が何倍にも跳ね上がりますので、ぜひチャレンジしていただきたいです。

アップルスクリプトとは


アップルスクリプト (AppleScript) とは、Mac OS に標準搭載されているスクリプト言語です。このアップルスクリプトを使うことで他のOSでのバッチ処置やシェルスクリプト処理と同じようなことが(もっと複雑なことも)できます。

アップルスクリプトを書く時に便利なのが Mac OS Xに標準でバンドルされているアップルスクリプトエディタです。このエディタを使ってアップルスクリプトを書いて動くことを確認してから TextExpander のスニペットにコピーすると良いと思います。
TextExpander 024

スクリプトエディタを使うもう一つのメリットは用語辞書という機能があります。この辞書には、アップルスクリプトからアプリケーションが持っている色々な情報にアクセスする方法が載っています。
TextExpander 026

ここではアップルスクリプトの詳細についてはこれ以上は説明しませんので、アップルスクリプトに興味のある方は以下のようなサイトを参考に勉強してみてください。


スニペットからスニペットを呼び出す


固定の文字列を展開するスニペットだけを利用している場合はあまり利用頻度がないかもしれませんが、先ほどご紹介したようなアップルスクリプトを使ったスニペットなどが増えてくると、同じような内容をいくつものスニペットで使いたくなることがあると思います。そのような場合は、スニペットから別のスニペットを呼び出せる機能を使って、スニペットライブラリを作ると良いと思います。

例えば次のように使います。これは、テーブルの td タグの中で先ほど紹介した Safari からページのタイトルを取ってくるスニペットを呼び出すサンプルです。%snippet:???getTitleFromSafari% の部分が別のスニペットを呼び出す書き方になります。




スニペット呼び出しは

%snippet:<スニペット名>%

とすることで、その部分に別のスニペットを呼び出した結果を展開してくれる機能になります。

表示中のブラウザからタイトルや URL を取得する機能をこのように独立させておくと、様々なスニペットから活用することができます。ここで、スニペットの名前に注目してください。先ほどの例ではスニペット名が ???getTitleFromSafari となっています。スニペット名は普通に呼び出せるもので構わないのですが、このように便利な機能を作っていくと、どんどんスニペットの数が増えてきます。そのため、他のスニペットから呼び出されるために作ったスニペットは、先頭を ??? で始める、というルールにしています。このようなルールを作っておくことで、他のスニペットとの省略形がぶつかることを減らすことができます。皆さんも自分のルールを作っておくと良いでしょう。

スニペットを同期する


TextExpander には Mac 版と iOS 版の TextExpander Touch がありますが、それぞれの間でスニペットの定義を同期することができます。iOS でスニペットを定義するのはなかなか大変なので、Mac 版で定義したものを同期するのが良いと思います。

同期には Dropbox を使う


スニペットを同期させる時には Dropbox を使います。まず、Mac 版の場合ですが、TextExpander の設定画面から設定をします。設定画面の Sync メニューにある Synchronization method で Dropbox を選びましょう。これで定義してあるスニペットが Dropbox に格納されます。

TextExpander 029
これを複数の Mac で設定することで、Mac 間でスニペットを同期することができます。また、iOS 版でも Dropbox を使うように設定することで Mac 版と iOS 版の間でもスニペットを同期することができるようになります。

iOS 版も設定から Dropbox を使うように設定しましょう。設定にある SYNCHRONIZATION で Use Dropbox をオンにします。この時に Dropbox へのアクセスを許可するように聞いてくるので許可してください。

TextExpander 027

Mac 版と iOS 版を同期した時の注意点


Mac 版と iOS 版を同期した時に 2 つの注意点があります。1 つは、Mac 版でしか動作しないスニペットがあるということ。アップルスクリプトやシェルスクリプトなどの機能を使うスニペットはスニペット定義は同期されますが、iOS 版でこのスニペットを使っても展開はされません。

2つ目の注意点は、アップルスクリプトなどを使っているスニペットを iOS 版で編集をすると壊れてしまうこと。 iOS 版でスニペットを編集しようとすると 「(Script)」 と表示されていると思いますが、ここで編集してしまうと、その編集した内容がプレインテキストとして同期されてしまいますので、注意してください。

TextExpander の Tips


TextExpander は今までご紹介したように単なる文字列展開ツールではなく様々なことができるツールです。工夫をすれば、様々な自動化ができるようになります。
そのような使い方をするためのヒントは、ヘルプ と FAQ に書かれています。TextExpander のヘルプは Mac 版の TextExpander アプリケーションに入っているものは日本語化されています。Web 上にもヘルプが公開されていますが、こちらは英語だけが公開されているようです。

TextExpander Help: Index

また Web 上では FAQ も公開されています。こちらも英語のみですが役に立つ情報があると思いますので、何か悩んだら見てみると良いと思います。

TextExpander: Mac Typing Shortcut Utility Saves You Time

類似のツール


Dash という Mac 版のアプリケーションでもスニペットを登録することができます。
アップルスクリプトやシェルスクリプトなどは利用できませんが、TextExpander のマクロと同じくらいの機能までは搭載していますので、その範囲で使うのであれば Dash のスニペット機能を利用するという選択肢もあると思います。もっと高度なことをやりたいのであれば、TextExpander をお勧めします。


Dash (Docs & Snippets) (価格: 無料)
カテゴリ: 開発ツール
販売元: Bogdan Popescu
App



あとがき


最初は過去記事をまとめて公開しようと軽い気持ちで始めましたが、書き始めたら書き下ろしになってしまいました。
本当はサンプルなども載せたかったのですが、時間の都合でここまでで一度公開させていたこうと思います。また機会があれば加筆していきたいと思っています。
(近々リリースされるであろう iOS8 に対応した TextExpander Touch に合わせて修正しないといけないですし)。

改版履歴


  • 2014.09.04
    初版公開
URL
TBURL

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

フェイスブックでのコメント

Return Top