Text Expansion の略。
パターンはトリガーワードとテキストの組。
TE はトリガーワードが入力されると、対応するテキストを挿入するという仕組み。
たとえば トリガーワード li[、テキストが <li></li> とすると、li[ と打った時点で <li></li> が挿入される。この時、既に入力済の li[ 部分は BackSpace 消去される。
以降、パターンは「li[ → <li></li>」のように記述する。
あるトリガーワードが完全に入力され、テキストが挿入されること。
TE はトリガーワードが入力されたらテキストを挿入するものだが、では何を以て「トリガーワードが入力された」とみなすのか。実は色んなやり方がある。
- (1)Tab, Space, Enter などの Whitespace を常に終端として使う
- ⭕ 意図通りに発動させやすい
- ❌ 一文字分余分な入力が必要
- (2)トリガーワードの最後の文字を終端にする
- ⭕ 余分な入力がない
- ❌ 誤発動しやすい
ここで「トリガーワードの最後の文字を Whitespace にすること」と (1) は何が違うのか?という疑問が生じるが、前者は各トリガーワード中に Whitespace を含めるのに対し、(1) は TE によってシステム的に「最後には(たとえば)Enterを打ちなさい」としている。なのでトリガーワードが 100 個あれば、前者だと 100 回分の設定が必要で、後者だとシステム設定一つで済む。
テキスト中に記載可能な、特別な意味を持つ文字列。
- テキスト挿入後にキャレットを移動させる
- 例:
li[で<li></li>を挿入する場合 <li>(ここにキャレットを移動させる)</li>
- 例:
- 現在の日付時刻を所定フォーマットで挿入する
dt[[で2017/09/05 10:14:28を挿入する
TE は、「このトリガーワードの n 文字目までは既に入力されている(あとこれとこれと打てば発動する)」といった情報をリアルタイムに記録している。キャンセルとは、この記録情報をクリアすること。
たとえばパターン「li[ → <li></li>」があるとして、li まで入力済の場合、次に [ を打てば発動するが、ここでキャンセルを実行すると「li まで入力した」という記録がクリアされるため、[ を打っても発動しない。
キャンセルは誤発動を意図的に防ぐために適宜用いる操作である。
発動時に入力済のトリガーワードを BackSpace で消去すること。
バック調整が失敗すると、以下のいずれかが起こる。
- トリガーワードの前の文章まで消去している( 侵食。こちらについて言及する)
- トリガーワードを消去しきれていない
侵食は日本語入力モード(「ひらがな」)中に発動させると生じる。
たとえば「ari/ → ありがとう」があるとして、全角入力中に 誠にari/ と打ったとする。結果は「誠ありがとう」となる(「に」が消えている)。この時、バック調整で消去するのは a r i / の四文字であるが、日本語入力モード中だと あ り ・ の三文字になっている。一文字分が余計に BackSpace されてしまうのである。
侵食を回避するためには、母音を含まないトリガーワードを使うなり、日本語入力モード中に発動させないなどの対策が必要である。
発動後、挿入されるテキストが一部崩れる(余計な空白や改行が入る、意図しない文字が入る)現象。
崩れは
- テキストが複数行文字列であり、
- かつ挿入先のテキストエディタで自動インデント(など入力支援機能)が働いている
場合に起こる。
直感的に、自然に発動させるための仕組み全般を指す。
たとえば「BackSpaceを考慮したトリガー判定」が挙げられる。これは、l i a <BackSpace> [ と入力した時に、li[ が入力された、と解釈する方式であり、「li[ → 」のパターンを発動できる。(もしこの機能が無い場合、lia[ と解釈されるため発動しない)。