Android Emacs で日本語を入力する

日本語入力中

Android Emacs で,日本語の入出力をする tips.

背景

本エントリ執筆時点では,非rootの Android で Emacs を動作させる最も簡単な方法は,Google Play に上がっているこのアプリケーション(Zeim版)を使う方法である.

しかし,単に導入しただけでは,日本語の入力ができず,表示で文字化けする. 入力は,頑張って SKK を入れればなんとかなるような気もするが,表示は困る.

注意

私は独自環境の構築中で,もしかすると Zeim版では何らかの理由で上手くいかないかもしれない.(でもたぶん大丈夫だと思う)

また,Zeim版は,Android Terminalの改変バージョンを端末エミュレータとして使っている. よってAndroid Terminal を使ってリモートログインし,Emacs を使うという場面でも,本エントリは役に立つのかもしれない.

ちなみに,私の環境のソースコードは,GitHubに置いてある.

手段

まず,端末側で UTF-8 を扱えるようにする必要がある. メニューから[設定] – [Default to UTF-8] のチェックボックスをonにする.

続いて,Emacs 側の設定. ~/.emacs.d/init.el を開き(無ければ作り),最低限下記の通り設定する.

1
2
(set-keyboard-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)

set-terminal-coding-system の設定で表示を,set-keyboard-coding-system で入力をそれぞれ設定している. これで,入力はできる.

加えて

1
2
3
(set-language-environment 'utf-8)
(set-default-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

辺りも設定したほうがよいかも. set-default-coding-system だけで済むような気がするのだけれど,set-keyboard-coding-system と set-terminal-coding-system は,別途明示的に設定しないとダメっぽい.

あとは,メニューから [ソフトキーボード] を選択して,ご愛用のIMEを表示し,お好きなように.

(ワタクシ的には)要検討課題

IMEによっては,Ctrl を吸ってしまい,Emacs (というか端末エミュレータ)に渡してくれないものがあるっぽい.少なくとも Google 日本語入力は,その疑いが濃厚. だから,だーーーっと日本語ベタ打ちするならあまり気にならないけれど,日本語を入力しつつ編集をしようと思うとストレスが溜まるかも.

AndroidだとIMEが吸う前のキーストロークをフックするのは困難な気がする.ワタクシ的には要調査.

SKK 使えばこの課題は解消されるだろうと思うけれど.もうちょっと汎用的な解は無いものか….