Solist Work Blog

Software engineer note

Google日本語入力(Mozc)

過去にマルチバイトのバグに悩まされたことがあったので、多くのソフトウェアエンジニアと同じく 私はプログラミングは基本的に英語で書いてきましたが、 最近ブログを書くようになって日本語を入力することが増え、日本語入力の重要さを今頃気づいた次第です。 パソコンで日本語入力なしで仕事をする人はいないでしょうし、 日本語入力の効率的なやり方を改善すればほとんどの人に役に立つと思いますので、 この記事では日本語入力について書いていきます。

多くの人と同じように日本語の単語を打ったあとIMEをオフにして英語の単語を打ちまたIMEをONにするという作業を繰り返して入力してきました。 しかし大量に日本語を打ち込むようになるとこの方法では流れるように文章がでてきません。 確かにGoogle日本語入力(Mozc)は賢いですが、一般的でないプログラミングに関する英単語混じりの長文の文章を一発で変換してくれるほど賢くはありません。流れるように文章が打てればアウトプットももっと増えていくはずです。

そこでまず考えたのが日本語で英単語を入力しようというものです。

日本語でクリスマスを入力してXmasに

このように「くりすます」と打てば 「Xmas」と変換してくれます。 なかなかGoogle日本語入力(Mozc)は賢いです。 しかし、この手法が使えるのはメジャーな単語だけです。

日本語でリナックスと入力

見てのとおり、「りなっくす」と打って「RINAKKUSU」とでてきていまう始末です。 「いーまっくす」と打っても「I-MAKKUSU」がでてきてしまいます。 Linuxの高い知名度ですらこれではソフトウェアエンジニアがこの方法で文章を書くことはできないでしょう。 Google日本語入力(Mozc)の賢さに頼るところは頼るべきですが、全部の面倒を見てもらうには無理がありそうです。

Google日本語入力(Mozc)に頼らない部分を決める

Google日本語入力(Mozc)に頼らない部分を決めてうまく共存することを考えます。

Mozcの設定画面

Composition	Ctrl j	DisplayAsHiragana
Composition	Ctrl k	DisplayAsFullKatakana
Composition	Ctrl l	ConvertToHalfAlphanumeric

まずキモになるのはこのショートカットキーを定義することです。 Ctrl-jを押すと何があってもひらがなになります。 Ctrl-kを押すと何があってもカタカナになります。 Ctrl-lを押すと何があっても小文字英数になり、2回押すと大文字英数になり、3回押すと先頭だけ大文字英数になります。

「よこはま」と入力した状態で

  • Ctrl-lを押すとyokohama
  • Ctrl-l 2回目を押すとYOKOHAMA
  • Ctrl-l 3回目を押すとYokohama
  • Ctrl-j を押すとよこはま
  • Ctrl-k を押すとヨコハマ

となります。いくらGoogle日本語入力(Mozc)が賢くなっても「よこはま」の使い分けは難しいだろうと思います。 人間はいつも同じ「ヨコハマ」を使うとは限らないからです。

さて、話を「りなっくす」と「いーまっくす」に戻します。

「ぃぬx」と入力した状態で`Ctrl-l`を押すとlinux、2回押すとLINUX、3回押すとLinux
「えまcs」と入力した状態で`Ctrl-l`を押すとemacs、2回押すとEMACS、3回押すとEmacs

となります。英語と日本語の境目でIMEをONにしたりOFFしたりしなくてよくなるので 慣れは必要ですが、流れるように文章が書けるようになります。

「いめ」と打って`Ctrl-l`を2回押してでIME
「おn」と打って`Ctrl-l`を2回押してでON
「おっf」と打って`Ctrl-l`を2回押してでOFF

この文章はこのように入力しています。英語は英語入力モードで入力しなければいけないという先入観を取り除けばこれほど楽になるとは思いませんでした。頭をやわらかくして見落としているものを見つけていかなければいけません。 きっと他にも思い込みによって阻害されているものがたくさんあるはずです。先入観にとらわれないセンスを磨く必要がありそうです。 その他の設定も最後に書いておくので参考にしてください。 わたしは基本的にEmacs脳なのでEmacsベースのキーバインドになっています。

Google日本語入力(Mozc)の学習したデータ

Google日本語入力(Mozc)があなたの癖を学習しても再インストールやマシントラブルでデータが消えればレベル1からやり直しです。 私の場合はArchLinuxなので~/.mozcにデータがあります。 Dropboxでいつでも復活できるようにしておきましょう。 ~/.mozcのデータを~/Dropbox/mozc/.mozcに保存したらこのようなシンボリックリンクを貼っておくとバックアップ不要になります。

ln -sfn ~/Dropbox/mozc/.mozc ~/.mozc

そしてMakefileを作ると次回以降はmake mozcを実行するだけでよいのです。

mozc: ## Install ibus-mozc
	test -L ${HOME}/.mozc || rm -rf ${HOME}/.mozc
	ln -vsfn ${HOME}/Dropbox/mozc/.mozc   ${HOME}/.mozc
	yay -S ibus-mozc
	ibus-daemon -drx

allinstall: ttf-cica install init initdropbox pipinstall goinstall aur mozc neomutt docker mariadb redis rbenv rustinstall nodeinstall screenkey dnsmasq desktop chromium sxiv zeal zoom toggle sylpheed rubygem

make allinstall するとmake mozcも実行されるのでさらにわかり易くなります。 面倒なことは自動化しておけば、本質的なことに集中できるのではないでしょうか。

Google日本語入力(Mozc)の設定

参考までに私の設定を書いておきます。

status	key	command
Composition	Backspace	Backspace
Composition	Ctrl ;	DisplayAsHalfWidth
Composition	Ctrl :	DisplayAsHalfAlphanumeric
Composition	Ctrl '	DisplayAsHalfAlphanumeric
Composition	Ctrl a	MoveCursorToBeginning
Composition	Ctrl b	MoveCursorLeft
Composition	Ctrl d	Delete
Composition	Ctrl e	MoveCursorToEnd
Composition	Ctrl f	MoveCursorRight
Composition	Ctrl g	Cancel
Composition	Ctrl h	Backspace
Composition	Ctrl j	DisplayAsHiragana
Composition	Ctrl k	DisplayAsFullKatakana
Composition	Ctrl l	ConvertToHalfAlphanumeric
Composition	Ctrl Left	MoveCursorToBeginning
Composition	Ctrl m	Commit
Composition	Ctrl m	Commit
Composition	Ctrl Right	MoveCursorToEnd
Composition	Delete	Delete
Composition	Eisu	ToggleAlphanumericMode
Composition	End	MoveCursorToEnd
Composition	Enter	Commit
Composition	ESC	Cancel
Composition	F10	DisplayAsHalfAlphanumeric
Composition	F2	ConvertWithoutHistory
Composition	F6	DisplayAsHiragana
Composition	F7	DisplayAsFullKatakana
Composition	F8	DisplayAsHalfWidth
Composition	F9	DisplayAsFullAlphanumeric
Composition	Shift Space	IMEOff
Composition	Home	MoveCursorToBeginning
Composition	Left	MoveCursorLeft
Composition	Option a	DisplayAsHalfWidth
Composition	Option c	DisplayAsFullAlphanumeric
Composition	Option F1	DisplayAsHiragana
Composition	Option F2	DisplayAsFullKatakana
Composition	Option F3	DisplayAsFullAlphanumeric
Composition	Option F4	DisplayAsHalfWidth
Composition	Option F5	DisplayAsHalfAlphanumeric
Composition	Option j	MoveCursorLeft
Composition	Option l	MoveCursorRight
Composition	Option s	DisplayAsHalfAlphanumeric
Composition	Option Space	InsertFullSpace
Composition	Option x	DisplayAsFullKatakana
Composition	Option z	DisplayAsHiragana
Composition	Right	MoveCursorRight
Composition	Space	Convert
Composition	Tab	PredictAndConvert
Conversion	Backspace	Cancel
Conversion	Ctrl ;	DisplayAsHalfWidth
Conversion	Ctrl :	DisplayAsHalfAlphanumeric
Conversion	Ctrl '	DisplayAsHalfAlphanumeric
Conversion	Ctrl a	SegmentFocusFirst
Conversion	Ctrl b	SegmentFocusLeft
Conversion	Ctrl d	SegmentFocusRight
Conversion	Ctrl e	ConvertPrev
Conversion	Ctrl f	SegmentFocusRight
Conversion	Ctrl h	Cancel
Conversion	Ctrl i	SegmentWidthShrink
Conversion	Ctrl j	DisplayAsHiragana
Conversion	Ctrl k	DisplayAsFullKatakana
Conversion	Ctrl l	DisplayAsHalfAlphanumeric
Conversion	Ctrl Left	SegmentFocusFirst
Conversion	Ctrl m	Commit
Conversion	Ctrl n	ConvertNext
Conversion	Ctrl o	SegmentWidthExpand
Conversion	Ctrl p	ConvertPrev
Conversion	Ctrl q	SegmentWidthShrink
Conversion	Ctrl Right	SegmentFocusLast
Conversion	Ctrl s	SegmentFocusLeft
Conversion	Ctrl w	SegmentWidthExpand
Conversion	Ctrl x	ConvertNext
Conversion	Down	ConvertNext
Conversion	End	SegmentFocusLast
Conversion	Enter	Commit
Conversion	Ctrl g	Cancel
Conversion	F10	DisplayAsHalfAlphanumeric
Conversion	F6	DisplayAsHiragana
Conversion	F7	DisplayAsFullKatakana
Conversion	F8	DisplayAsHalfWidth
Conversion	F9	DisplayAsFullAlphanumeric
Conversion	Shift Space	IMEOff
Conversion	Home	SegmentFocusFirst
Conversion	Left	SegmentFocusLeft
Conversion	Option a	DisplayAsHalfWidth
Conversion	Option c	DisplayAsFullAlphanumeric
Conversion	Option F1	DisplayAsHiragana
Conversion	Option F2	DisplayAsFullKatakana
Conversion	Option F3	DisplayAsFullAlphanumeric
Conversion	Option F4	DisplayAsHalfWidth
Conversion	Option F5	DisplayAsHalfAlphanumeric
Conversion	Option i	ConvertPrev
Conversion	Option k	ConvertNext
Conversion	Option s	DisplayAsHalfAlphanumeric
Conversion	Option x	DisplayAsFullKatakana
Conversion	Option z	DisplayAsHiragana
Conversion	PageDown	ConvertNextPage
Conversion	PageUp	ConvertPrevPage
Conversion	Right	SegmentFocusRight
Conversion	Shift Down	ConvertNextPage
Conversion	Shift Left	SegmentWidthShrink
Conversion	Shift Right	SegmentWidthExpand
Conversion	Shift Space	ConvertPrev
Conversion	Shift Tab	ConvertPrev
Conversion	Shift Up	ConvertPrevPage
Conversion	Space	ConvertNext
Conversion	Tab	PredictAndConvert
Conversion	Up	ConvertPrev
DirectInput	Ctrl Shift r	Reconvert
DirectInput	Shift Space	IMEOn
Precomposition	Backspace	Revert
Precomposition	Ctrl Backspace	Undo
Precomposition	Ctrl Shift r	Reconvert
Precomposition	Eisu	ToggleAlphanumericMode
Precomposition	Shift Space	IMEOff
Precomposition	Space	InsertSpace
Prediction	Ctrl Delete	DeleteSelectedCandidate
Suggestion	Ctrl n	PredictAndConvert
Suggestion	Down	PredictAndConvert
Suggestion	Shift Enter	CommitFirstSuggestion
Composition	Kanji	IMEOff
Composition	OFF	IMEOff
Composition	ON	IMEOn
Conversion	Kanji	IMEOff
Conversion	OFF	IMEOff
Conversion	ON	IMEOn
DirectInput	Kanji	IMEOn
DirectInput	ON	IMEOn
Precomposition	Kanji	IMEOff
Precomposition	OFF	IMEOff
Precomposition	ON	IMEOn

タグ一覧

お仕事のご相談などはこちらからどうぞ

お仕事の依頼はこちらからどうぞ