zsh-3.0.5から3.1系に乗り換えるときの注意

Last modified Mon Sep 11 13:22:49 2000 on firestorm

zsh-3.0.5 はかなり安定していてzsh本来のデフォルト値もぐーで、 居心地良かったのだが、やはり

% mv /usr/sbin/{send[TAB]
  で、べろーんと
% mv /usr/sbin/{sendmail,

に開いてくれるなんてヨダレが垂れまくってしまったので、ついに 1999年4月、乗り換えを決意した(遅いって)。ところが、zsh-3.1での デフォルト仕様変更が結構曲者だったのでそのメモ。

compctlのデフォルトがいくつか消えたので追加
compctl -o setopt unsetopt
compctl -b bindkey
setopt auto_list がデフォルトになっちゃってうざいので
unsetopt auto_list
history-search-backwardの仕様が変わって単語としてマッチしないと だめになっちゃったので、泣く泣く変更
旧 bindkey '^e' history-search-backward
新 bindkey '^e' history-beginning-search-backward
compctl の -k オプションでの単語リストをquoteしないと駄目になった
旧 compctl -g "(.|)*(-/)" -x \
  's[-]' -k (d l L e n N p x q f V r a A) - \
  'c[-1,-f]' -f - \
  'c[-1,-V]' -K glob_syncdir -- syncdir
新 compctl -g "(.|)*(-/)" -x \
  's[-]' -k '(d l L e n N p x q f V r a A)' - \
  'c[-1,-f]' -f - \
  'c[-1,-V]' -K glob_syncdir -- syncdir
setopt auto_name_dirs してると $PWD に反応してしまってRPROMPTが 常に [~PWD] になってしまう(これは絶対エンバグ(※1)だ!)。
unsetopt auto_name_dirs
どうでもええがまだ magic_equal_subst がまともに機能しない
あ、これは乗り換えには関係なかった。

※1 zsh-3.1.5の不具合について
やっぱ zsh-workers ML でも不具合として修正されたらしい。 ので、次のバージョンでは直っているはずだ。とりあえず、正式版ではないが auto_name_dirs が動くようなパッチを作ってみた。ついでに、FreeBSDでsuした ときに /bin/sh emulation mode に入ってしまうのを修正するのも混ぜた。
ほい、パッチ
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]