Emacsの単語略称機能
Emacsにはデフォルトで動的略称機能とAbbrevモードの2種類の機能が備わっている。
動的略称機能
編集中のバッファ内に存在する単語を動的に検索して補完してくれる。
ある単語を途中まで入力し、
または、
M-/
とコマンドすると、ポイントから最も近い単語を補完する。
M-x dabbrev-expand
M-/を繰り返し打つことで他に該当する単語に切り替わる。
この機能はモードではないので常に有効。
Abbrevモード
入力が面倒くさい文字列に対して略称を付けることができる機能。
たとえば、略称Aと展開後の単語Bの組み合わせを登録しておくことで、バッファ編集中にAを入力してSpaceを押すとBに変換してくれる。
この機能を有効にするには、
としてマイナーモードであるAbbrevモードを有効にする必要がある。(モードラインにAbbrevが表示される)
M-x abbrev-mode
このコマンドはAbbrevモードを有効/無効にするトグルなのでもう一度上のコマンドを打つと無効(デフォルト)に戻る。
略称を定義する
展開後にしたい文字列をリージョンで指定して
と打つと、
C-u 0 M-x add-global-abbrev
とメッセージが出るので略称を入力してEnterを押す。
Global abbrev for "xxxxx":
add-global-abbrevの代わりにadd-mode-abbrevを使うと、編集中バッファのモードでのみ有効になる略称が定義される。
定義済み略称は、
で一覧表示できる。
M-x list-abbrevs
また一覧表示された略称定義を直接編集・削除することもできる。
略称定義を永続化する
上のコマンドで登録した略称はEmacsを終了すると消えてしまうので定義ファイルに残す必要がある。
と打ち、~/.abbreb_defs(任意)とファイル名を指定する。
M-x write-abbrev-file
これで.abbreb_defsに略称定義が保存される。
Emacsを再起動して
と打つと、さっき定義した略称定義は消えているが、
M-x list-abbrevs
として定義ファイルを読み込むと前回定義した略称が再び定義される。
M-x read-abbrev-file
.emacsファイルに以下のように設定すればEmacs起動時にAbbrevが有効になり略称定義も読み込み済みとなる。
(setq-default abbrev-mode t)
(read-abbrev-file "~/.abbrev_defs")
(setq save-abbrevs t)