sttyのことを調べはじめた理由は、KDE 3.2の下でターミナルでコントロールキーがうまく使えなくなってしまったからだ。
症状を調べてみると、
- X + fluxboxだと問題なく動作する。
- X + KDEだと駄目。
ということで調べはじめてみたのだが、ふと/bin/sh (といっても実体はbashだが)で同じことをやってみるとちゃんとできた。ということは、sttyでもなく単にzshの問題かもしれない。
zshもちょっと古くなっていたので、アップグレードする。
[ebuild N ] dev-lang/swig-1.3.21
[ebuild N ] sys-libs/libcap-1.10-r3
[ebuild U ] app-shells/zsh-4.1.1-r5 [4.0.6-r4]
ふーん、swigに依存するのか。libcapは、termcapのライブラリだろう。
/etc/zprofileも更新されたが、大した変更ではないので新しいものに単に置き換えた。
新しくしたzshで試してみたが、症状は改善せず。環境変数も比較してみたのだが、とりたてて違っている部分はなかった。ということで、zshの設定の問題らしいので、[zsh control key]でググってみると、1件目に「
Re: I lost the control key」が見つかった。まさに家の問題もこれだった。
KDEを起動すると、環境変数EDITORが/usr/bin/vimに設定される。エディターとしてviが選択されていると、zshはキーバインドをvi風に設定してしまうため、Emacs風のバインディングが無効になってしまったのだった。
~/.zshrcに次の行を入れて問題解決。
bindkey -e
これは、"Selects keymap `emacs', and also links it to `main'."だそうだ。main keymapについては調べていないが、そういうものがあるとのこと。