ヘルプ機能を強化
zshにおいてM-hを押すとコマンドをmanする機能がある。実際はrun-helpコマンドが実行され、デフォルトではmanにaliasされている。しかし、zsh組み込みコマンドでは使えなかったりして不便だ。しかし、以下の作業をしてあげれば組み込み関数やmanのないコマンドにも対応できる。まずはコマンドを実行する。~/src/zsh-4.3.2はzshのソースを展開したディレクトリだ。
mkdir ~/zsh/help cd ~/zsh/help man zshall | colcrt - | perl ~/src/zsh-4.3.2/Util/helpfiles
Debian GNU/Linuxの場合はhelpfilesスクリプトはhelpfiles.gzになっているので、以下のようにする。=(〜)はコマンドの出力結果を格納した一時ファイルに展開される便利なzsh記法だ。
すると~/zsh/help以下に組み込みコマンドのヘルプがわんさか出てくる。zshのmanpageをperlで処理して生成しているのでバージョンアップしても簡単にヘルプに反映できる。もちろん、manpageのないコマンドのヘルプを自分で追加しておくといい。
man zshall | colcrt - | perl =(zcat /usr/share/doc/zsh/examples/Util/helpfiles.gz)
そして、以下を.zshrcに追記する。環境によってはunaliasをunfunctionに変える必要があるかもしれない。Debian GNU/Linuxの場合はすでにautoloadされているので(/etc/zsh/zshrc参照)HELPDIRの設定だけでよい。
unalias run-help autoload run-help HELPDIR=~/zsh/help
実はDebian GNU/Linuxの場合デフォルトで組み込みコマンドのヘルプを用意しているのだが、上記のコマンドを使ったほうがより強力だ。run-help zleしてみればわかるが、デフォルトのままでは「zle See the section `Zle Builtins' in zshzle(1).」のつれない一言で終わってしまう。だから自分でヘルプを生成したほうがいい。だったらdebianizeするときに最初からやってくれよ。
フォントエラーでXが立ち上がらない
apt-get upgradeしたからか、Xが立ち上がらなくなった。etch使ってるくせにいまだにXFree86なんか使ってるからかもしれないけど…。1年ちょっと前にX.orgにしたら描画速度ががたっと落ちたからそれ以来避けている。xengineが10000くらいだからこれで十分だし、わざわざ新しいのにする意味を感じない。もっと描画速度が上がるのだったら乗り換えてもいいかな…
/etc/X11/XF86Config-4でFilesセクションのFontPathを適切に設定すれば起動するようになった。いつのまにか/usr/lib/X11/fontsから/usr/share/X11/fontsへ場所が変わっていた。俺のシステムでは古いパッケージも混在しているようで完全には統一されていない。
Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems, we can fall back on these FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/share/X11/fonts/100dpi/:unscaled" FontPath "/usr/share/X11/fonts/75dpi/:unscaled" FontPath "/usr/share/X11/fonts/Type1" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/share/X11/fonts/100dpi" FontPath "/usr/share/X11/fonts/75dpi" EndSection
noglob - ファイル名展開をしない
~% noglob echo * * ~% noglob echo http://www.example.com/?hoge http://www.example.com/?hoge
わざわざquoteする必要がない。とくにqueryつきのURLを引数に指定するときに便利かも。