mozc を emacs 風キーバインディングにする

引き続き Ubuntu のデスクトップいじり。mozc が気に入ったので、常用することにしました。「scim-mozcのキーバインドをEmacs風にする」をベースに、更に後戻りできないキーバインディングに。具体的には

  • 変換中に C-b, C-f で文節区切りの伸縮、Alt-b, Alt-f で文節の左右移動
  • 状況によらず C-g でキャンセル
  • C-h で左削除、C-d で右削除
  • C-a, C-e で左右の端に移動
  • 平仮名変換やカタカナ変換などは使用頻度に合わせて C-0 などにマップ

という感じです。Alt-e とか C-k も欲しいところですが、残念ながら実装されていないようです。
mozc の設定ツールの起動が最初わからなくて困りましたが、以下の二通りの方法で起動できます:

  • /usr/lib/mozc/mozc_tool --mode=config_dialog
  • ibus (や scimuimも?) の設定で言語パネルが表示されるように設定し、言語パネルのスパナのアイコンから起動

以下のテキストを適当なファイルに保存して mozc 設定ツールで「キー設定の選択」「カスタム」(略)「インポート」でできます。設定ツールでは Alt キーが認識されないので Alt-b, Alt-f によるキーが指定できないようですが、テキストファイルに Alt と書いて読ませると文句言わずに読み込みます。ちなみに Hoge みたいな存在しないキーを書くと、そのエントリーだけ華麗にスルーされました。
なお、このファイルは TSV (タブ区切り) なので "status", "key", "command" の間や、それらに対応する列の間の区切り文字はタブでないと mozc にスルーされます。ブラウザでコピペすると空白になることもあるようなので注意。

status	key	command
Precomposition	Space	InsertFullSpace
Precomposition	Shift Space	InsertAlternateSpace
Precomposition	Space	InsertSpace
Precomposition	Ctrl Backspace	Revert
Composition	Backspace	Backspace
Composition	Ctrl 9	ConvertToHalfAlphanumeric
Composition	Ctrl 2	ConvertWithoutHistory
Composition	Ctrl 0	ConvertToHiragana
Composition	Ctrl 8	ConvertToFullKatakana
Composition	Ctrl 7	ConvertToHalfWidth
Composition	Ctrl 6	ConvertToFullAlphanumeric
Composition	Ctrl a	MoveCursorToBeginning
Composition	Ctrl h	Backspace
Composition	Ctrl d	Delete
Composition	Ctrl e	MoveCursorToEnd
Composition	Ctrl Eisu	ToggleAlphanumericMode
Composition	Ctrl Enter	Commit
Composition	Ctrl f	MoveCursorRight
Composition	Ctrl g	Cancel
Composition	Ctrl h	Backspace
Composition	Ctrl i	ConvertToFullKatakana
Composition	Ctrl m	Commit
Composition	Ctrl e	MoveCursorToEnd
Composition	Shift Space	InsertHalfSpace
Composition	Ctrl Space	InsertFullSpace
Composition	Delete	Delete
Composition	Eisu	ToggleAlphanumericMode
Composition	End	MoveCursorToEnd
Composition	Enter	Commit
Composition	ESC	Cancel
Composition	Space	Convert
Composition	F9	SwitchKanaType
Composition	Right	MoveCursorRight
Composition	Shift Left	MoveCursorLeft
Composition	Shift Right	MoveCursorRight
Composition	Shift Space	Convert
Composition	Space	Convert
Composition	Tab	PredictAndConvert
Suggestion	Down	PredictAndConvert
Suggestion	Shift Enter	CommitFirstSuggestion
Conversion	Ctrl g	Cancel
Conversion	Ctrl 9	ConvertToHalfAlphanumeric
Conversion	Ctrl 0	ConvertToHiragana
Conversion	Ctrl 8	ConvertToFullKatakana
Conversion	Ctrl 7	ConvertToHalfWidth
Conversion	Ctrl 6	ConvertToFullAlphanumeric
Conversion	Ctrl a	SegmentFocusFirst
Conversion	Ctrl Backspace	Cancel
Conversion	Ctrl d	Delete
Conversion	Ctrl Enter	CommitOnlyFirstSegment
Conversion	Ctrl p	ConvertPrev
Conversion	Enter	Commit
Conversion	Ctrl Eisu	ToggleAlphanumericMode
Conversion	Ctrl f	SegmentWidthExpand
Conversion	Ctrl g	Cancel
Conversion	Ctrl h	Backspace
Conversion	Ctrl b	SegmentWidthShrink
Conversion	Left	SegmentFocusLeft
Conversion	Ctrl n	ConvertNext
Conversion	Ctrl p	ConvertPrev
Conversion	Ctrl e	SegmentFocusLast
Conversion	Ctrl a	SegmentFocusFirst
Conversion	Backspace	Cancel
Conversion	Down	ConvertNext
Conversion	Eisu	ToggleAlphanumericMode
Conversion	End	SegmentFocusLast
Conversion	Enter	Commit
Conversion	ESC	Cancel
Conversion	F10	ConvertToHalfAlphanumeric
Conversion	F6	ConvertToHiragana
Conversion	F7	ConvertToFullKatakana
Conversion	F8	ConvertToHalfWidth
Conversion	F9	ConvertToFullAlphanumeric
Conversion	Henkan	ConvertNext
Conversion	Home	SegmentFocusFirst
Conversion	Alt b	SegmentFocusLeft
Conversion	Alt f	SegmentFocusRight
Conversion	Muhenkan	SwitchKanaType
Conversion	PageDown	ConvertNextPage
Conversion	PageUp	ConvertPrevPage
Conversion	Right	SegmentFocusRight
Conversion	Shift Backspace	Cancel
Conversion	Shift Down	ConvertNextPage
Conversion	Shift ESC	Cancel
Conversion	Shift Henkan	ConvertPrev
Conversion	Shift Left	SegmentWidthShrink
Conversion	Shift Muhenkan	ConvertToFullAlphanumeric
Conversion	Shift Right	SegmentWidthExpand
Conversion	Shift Space	ConvertPrev
Conversion	Shift Up	ConvertPrevPage
Conversion	Space	PredictAndConvert
Conversion	Tab	PredictAndConvert
Conversion	Up	ConvertPrev
Precomposition	Ctrl Eisu	ToggleAlphanumericMode
Precomposition	Eisu	ToggleAlphanumericMode
Composition	Backspace	Backspace
Composition	Ctrl b	MoveCursorLeft
Precomposition	ASCII	InsertCharacter
Composition	ASCII	InsertCharacter
DirectInput	Hiragana	IMEOn
DirectInput	Katakana	IMEOn
DirectInput	Eisu	IMEOn
DirectInput	ON	IMEOn
DirectInput	Hankaku/Zenkaku	IMEOn
DirectInput	Kanji	IMEOn
DirectInput	F13	IMEOn
DirectInput	Henkan	IMEOn
Precomposition	OFF	IMEOff
Precomposition	ON	IMEOn
Precomposition	Hankaku/Zenkaku	IMEOff
Precomposition	Kanji	IMEOff
Composition	OFF	IMEOff
Composition	ON	IMEOn
Composition	Hankaku/Zenkaku	IMEOff
Composition	Kanji	IMEOff
Conversion	OFF	IMEOff
Conversion	ON	IMEOn
Conversion	Hankaku/Zenkaku	IMEOff
Conversion	Kanji	IMEOff