2004年2月4日の日記の1番目の記事へのコメント
■zshで日本語
以前からzshにこちらのパッチを当てて使っているのに何故かコマンドラインに打った日本語を1文字ずつきちんと消せなくてちょっと困ってたんですが,コマンドラインからanthyの辞書ファイルに直接単語登録しようと思い本格的に困るようになりました.
rootとかテスト用のユーザでzshあげるときちんと文字単位で消せるんで環境変数の問題かと思い全部unsetしてみたんですがこれは効果無し.次にsetoptしてあるものを一つ一つ外していったんですがこれもだめ.仕方ないんでソースを見て必殺printfデバッグして追っかけてみたところ・・・,自分の環境だとbackspaceを押しても文字を消す関数が呼ばれていないことが判明!しかも,Ctrl-U押すと,何故かEUCパッチで変更が入っている削除関数が呼ばれている・・・.なんじゃこりゃ,stty?と思ったんですが他のユーザとsttyは何ら変わりありません.
で,ソースに更にprintfを足して(^^;追ったところ,実は.zshrcのbindkeyに問題があったことが判明.zsh-3.xの頃の設定を半端に引き継いでいたため,bindkeyに'^A'とか'^D'とかだけを個別に指定して,'^H'とか'^U'を指定してなかったのが敗因でした.ここを今風に「bindkey -e」と書き換えたらもうばっちり.日本語もばりばり消せます.
あれ,待てよ.テスト用のユーザの.zshrcにも全く同じ個別bindkeyがあるのに,なんであっちはへいきだったんだろう・・・?謎だ.
[コメントを書く]
2004年2月4日の日記の1番目の記事へのコメント
[コメントを書く]