たとえば ls
コマンドを実行しようとして間違えて lls
と打ってしまうことがあるかもしれません。
Zsh
[kengo@tkengo-mac] $ lls
zsh: command not found: lls
いつもの通り そんなコマンドないよ と冷たくあしらわれてしまいました。
コマンドを間違った時に嫌な気持ちにならないように zsh にはもっと暖かいメッセージを言ってもらいましょう。
command_not_found_handler
zsh には command_not_found_handler という特別な関数があります。この関数は、存在しないコマンドを呼びだそうとした時に呼ばれます。
~/.zshrc
に以下のように定義してみます。
~/.zshrc
function command_not_found_handler() {
echo "your input: $0" # $0には実行されたコマンド名が入っています
}
設定を読み直して lls
してみると
Zsh
[kengo@tkengo-mac] $ source ~/.zshrc
[kengo@tkengo-mac] $ lls
your input: lls
暖かいメッセージ
もうわかると思いますが echo コマンドで何でも出力できます。顔文字を出力してみると和みます。
~/.zshrc
function command_not_found_handler() {
echo "(o^ワ^)> $0 なんてコマンド無いぽ"
}
これで
Zsh
[kengo@tkengo-mac] $ source ~/.zshrc
[kengo@tkengo-mac] $ lls
(o^ワ^)> lls なんてコマンド無いぽ
こうなります。
本当は
こんなふざけた使い方をするよりかはもっと有益な使い方があるはず orz