トップ 最新

ただのにっき

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の世界って、オープンなように見えるけど、こういうところを見るとぜんぜんクローズドだよなぁ。