14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

zshでcommand not foundという冷やかなメッセージを暖かくする

Posted at

たとえば 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

14
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?