hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

uim-fepを入れてターミナルで日本語を打てるようにした

AquaSKKを使っているために,Terminal.appで日本語を入力することができず,困っていた.

AquaSKK 使ってる人 : uim-fep で skk しろ

とのことだったので,入れてみた.

ダウンロードする

Uimに入ってるのでソースを取ってくる.

パッチを書く(これは別にしなくてもいい)

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;

これで,uim-fep -S -s lastlineとか,uim-fep -S -s backtickとかできる.

インストールする

普通に入れる.

% ./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

使う

起動すると,下のほうにステータスが出る.使い方は普通のskkと同じ.
http://gyazo.com/5df2eb3419eb3b2b49b5e6e5e31b502a.png

まとめ

GUIアプリケーションではAquaSKKEmacsではddskk,ターミナルではuimSKK,という3つのSKKを併用することになってしまった.
ただ,二ヶ月ほどターミナルで日本語を入力することができず,大変不便だったことを考えると,これはこれで便利になった.

追記

上記の通りにやると,uim-fepが/usr/local/binに入るのだけど,PATHに/usr/local/binが入ってないかもしれない.
.loginにPATHを追加するか,.screenrcでフルパスを指定するとよい.