Debian に geoip-bin というパッケージがあるのを見つけた。 このパッケージには IP アドレスから国名を得るためのツール geoiplookup が含まれている。これはなかなか便利かも。
% geoiplookup www.asahi.com GeoIP Country Edition: JP, Japan
調べてみると、AWSTatsでGeoIP というページが見つかった。
昨日の設定に関して、鵜飼さんから次のような設定でいいんじゃないのと教えてもらった。
PROMPT='%n@%m:%(5~,%-2~/.../%2~,%~)%# '
確かにこの方が簡潔でいいですね、 perl も動かないし。奥が深い! というわけで、次のように修正した。
case "$TERM" in
xterm*|kterm*|rxvt*)
PROMPT=$(print "%B%{\e[34m%}%m:%(5~,%-2~/.../%2~,%~)%{\e[33m%}%# %b")
PROMPT=$(print "%{\e]2;%n@%m: %~\7%}$PROMPT") # title bar
;;
*)
PROMPT='%m:%c%# '
;;
esac
追記: 翌日のエントリの方法の方がよいです。
かなりしょうもないけど、 zsh のプロンプトの設定を次のように変えてみた。 ~/.zshrc の設定:
case "$TERM" in
xterm*|kterm*|rxvt*)
function precmd () {
# Shorten the path of pwd
pwd=`pwd | \
perl -pe 's!$ENV{"HOME"}!~!;s!^(.{10,}?/)(.+)(/.{15,})$!$1...$3!'`
PROMPT=$(print "%B%{\e[34m%}%m:${pwd}%{\e[33m%}%# %b")
PROMPT=$(print "%{\e]2;%n@%m: %~^G%}$PROMPT") # title bar
}
;;
esac
このおまじないにしか見えないコードでは、/ を区切りにして短縮しているので、this-is-very-very-long-long-directory-name のような長いサブディレクトリがあるとうまくいきません。
カレントディレクトリの表示は $PROMPT の中で %~ を使えばできるのですが、ディレクトリがやたら深い場合に邪魔になる場合があるので、上のように設定しました。下のスクリーンショットでは上の行が使用前、下が使用後です。
