2001-02-15(木) zsh、Palm Desktop 4.0 [長年日記]
■ 最近の我が家のヒット。納豆のアボガド和え。うまいです。うげ、マイペディアによれば「アボガド」じゃない、「アボカド」だ。avocadだし。この歳になって新事実発覚かー。とほほ。
■ zsh
職場で初めてのUNIXプログラミング(←仕事)に悪戦苦闘してる人からzsh
の質問を受けたんだけど、zsh
なんて使ったことなかったから答えられなかったわけよ、もちろん(いばれません)。で、Webでちょこちょこ調べたら、なんか面白そうなことがわかったので、むらむらと使ってみたくなってきた。そういえばRubyコミュニティでは渡辺哲也さんが熱烈なzsh
ユーザだったような覚えがある(けど二人の渡辺さんの区別がいまだに混乱しているので自信なし)。
Kondara 2000にはzsh-3.0.7
が入っているので、それを入れた。最新は3.1.9あたりらしいけど(Jiraiにはパッケージがある)、まぁ、初めて使うんだからたいして違いはないだろう。bash
のコマンドはほとんどそのまま使えそうなことがわかったので、.bash_profile
と.bashrc
を、.zshenv
と.zshrc
に適当に振り分ける。ちょこちょこ動かしてみて問題なさそうなので、いきなりchsh
してしまう(笑)。
問題が二つ。まず、ログイン時だけ以下のようなメッセージが出る。
app_one: no matches found: /tmp/00functions.lGsStI* [8] app_one: no matches found: /tmp/00functions.cet7xP* [8] app_one: no matches found: /tmp/00functions.5V7pIV* [8] app_one: no matches found: /tmp/00functions.sojol0* [8] app_one: no matches found: /tmp/00functions.RXMXt3* [8]
■ app_one
つーのがなんだかわからん。which
で見つからないから、内部コマンド? あ、見つけた、function
にある。誰がどこでこれを定義してるのかわからないので、手の打ちようがないなぁ。なんでしょね、これ。Webで調べても何も出てこないし。と思ったら、bash
でも実行できるね >app_one
正体がわからないのは相変わらずだけど。
お、見つけたぞ。/etc/profile
が、/etc/zprofile
から呼ばれている。で、その/etc/profile
にこんなコードがある。
for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i fi done
■ で、/etc/profile.d/00functions.sh
に、問題のapp_one
があった。ざっと読むと、ようするに環境変数に指定した文字を追加する関数だ。それを呼び出しているスクリプトも同じところにあって、特になくてもいいようだったので(おおざっぱすぎ)、/etc/profile
の問題の箇所を、下のコードで挟み込んでしまった。ま、これで問題が出たら、例によって泥縄で関数の方を改造しよう。
if [ ! $SHELL = /bin/zsh ]; then : fi
■ それから、C-u
でコマンドラインが全部消えちゃうことが問題。bash
ではカーソルの前にある文字が全部消えたはずなんだけど、zsh
は挙動が違う。不便なのでなんとかしたい。たぶんbindkey
で設定できると思うんだけど……。
■ Palm Desktop 4.0
Palm Incが公開しているPalm Desktop 4.0が、バージョンはそのままにこっそり差し替えられているという情報をもらう。せっかく作ったパッチが当たらないらしい。なんてことすんねんっ >Palm Inc. 現在、houkou様が鋭意対応中でございます。やれやれ。Palmの世界って、オープンなように見えるけど、こういうところを見るとぜんぜんクローズドだよなぁ。