ユーザ辞書に入力変換のペアを登録できるdefaultsコマンドを見つけた(けれど実用に耐えない)

2016年1月23日

Macを新しく買い、環境を一新したので、日本語入力(旧ことえり)も使い直してみようと一月ほど使ってみていますが、唯一の不満がユーザ辞書の編集のしにくさ。

edit_DictionaryReplacement

メニューバーから「ユーザ辞書を編集」をクリックして、表示されたシステム環境設定からぽちぽち編集しなければなりません。

AquaSKKを使っていた身としてはこれが嫌で嫌で全然登録していませんが、なんとかキーボード操作だけでユーザ辞書の編集ができないものかと色々調べてみました。

まずはユーザ辞書とはどういう仕組みでどこに保存されるのか?

参考にしたのは以下のサイト。

  • Mavericksのことえりの仕組みを探ってみる | ザリガニが見ていた…。

ユーザ辞書とは「~/Library/Dictionaries/CoreDataUbiquitySupport」以下に保存され、CoreData形式のファイルであるらしい。

さらに「CoreDataUbiquitySupport」という単語を元にネットを調べてみると以下の2サイトに辿り着いた。

どうやらユーザ辞書に入力変換のペアを登録できるdefaultsコマンドがあるらしい!

登録するにはターミナルを開いて以下のようなコマンドを実行する。

defaults write -g NSUserDictionaryReplacementItems -array-add '{on=1;replace=a;with=b;}'

edit_DictionaryReplacement1

aには入力の単語をbには変換の単語を当てはめて実行。(日本語ならば""で括る)

登録された入力変換のペア「~/ライブラリ/Preferences/.GlobalPreferences.plist」に記録され以下のようなコマンドで確認できる。

defaults read -g NSUserDictionaryReplacementItems

これでこれからはもりもり単語登録できるぞ!と喜んでいたら問題が発生。

「システム環境設定」 >「キーボード」 > 「ユーザ辞書」を開く、もしくは編集をすると、defaultsコマンドで登録した入力変換のペアが消えてしまいます。

おそらくiCloudにあるデータと「.GlobalPreferences.plist」にあるデータに齟齬が生じるとiCloudにあるデータに上書きされてしまうためだと思われます。

なのでこれまで長々説明してきた方法はiCloudを無効にした状態の時にしか使えない方法となり、僕にとっては無駄な情報になってしまいました。