AquaSKKを使っているために,Terminal.appで日本語を入力することができず,困っていた.
AquaSKK 使ってる人 : uim-fep で skk しろ
とのことだったので,入れてみた.
パッチを書く(これは別にしなくてもいい)
GNU screen modeで起動すると,必ずステータスがbacktickになってしまう.
hardstatusに日本語を出すと文字化けして不便だったので,GNU screen modeでもステータスをlastlineに出せるようにした.
一行コメントアウトしただけ.
diff -rc uim-1.5.6_original/fep/uim-fep.c uim-1.5.6/fep/uim-fep.c *** uim-1.5.6_original/fep/uim-fep.c 2009-08-09 18:00:46.000000000 +0900 --- uim-1.5.6/fep/uim-fep.c 2009-08-09 19:12:26.000000000 +0900 *************** *** 382,388 **** } if (gnu_screen) { ! g_opt.status_type = BACKTICK; s_master = PROC_FILENO; g_win_in = WIN_IN_FILENO; g_win_out = WIN_OUT_FILENO; --- 382,388 ---- } if (gnu_screen) { ! // g_opt.status_type = BACKTICK; s_master = PROC_FILENO; g_win_in = WIN_IN_FILENO; g_win_out = WIN_OUT_FILENO;
インストールする
普通に入れる.
% ./configure % make % sudo make install
intltoolがないと言われたらportで入れる.
% sudo port install intltool
~/.uimを書く
~/.uimに設定を書く.
- uimにデフォルトでskkを使うよう指示
- skkの辞書の場所を指定
だけ書いた.
(define default-im-name 'skk) (define skk-dic-file-name (string-append (getenv "HOME") "/.emacs.d/etc/skk/SKK-JISYO.L"))
AquaSKKがサーバーになってるので,本当はそっちを使いたかったけど,うまくいかなかった.
~/.screenrcを書く
screen上でC-z jで起動,C-z kで終了する設定
bind j exec | uim-fep -s lastline -S bind k eval 'exec cat' kill redisplay
まとめ
GUIアプリケーションではAquaSKK,Emacsではddskk,ターミナルではuimのSKK,という3つのSKKを併用することになってしまった.
ただ,二ヶ月ほどターミナルで日本語を入力することができず,大変不便だったことを考えると,これはこれで便利になった.
参考
追記
上記の通りにやると,uim-fepが/usr/local/binに入るのだけど,PATHに/usr/local/binが入ってないかもしれない.
.loginにPATHを追加するか,.screenrcでフルパスを指定するとよい.