2015/12/25

zsh でインストールされていないコマンドを叩いた場合、パッケージ名を推測して教えてくれるようにする

@Ubuntu 14.04 LTS

zsh では bash のような機能が働かない

Ubuntu の bash では、インストールされていないコマンドを叩いた場合、以下のように類推したパッケージ名を教えてくれて便利です。
$ vld
No command 'vld' found, did you mean:
 Command 'gld' from package 'postfix-gld' (universe)
 Command 'vlc' from package 'vlc-nox' (universe)
 Command 'bld' from package 'bld' (universe)
 Command 'fld' from package 'kon2' (universe)
 Command 'vl' from package 'atfs' (universe)
 Command 'ld' from package 'binutils' (main)
vld: command not found

ところが、zsh だとエラーメッセージだけ。
% vld
zsh: command not found: vld

zsh でも出来るようにする

これを bash 風に変えるには以下を設定ファイルに追加します。

~/.zshrc (or /etc/zshrc)
if [[ -f /etc/zsh_command_not_found ]] then
  source /etc/zsh_command_not_found
fi

command-not-found がインストールされていない場合

/etc/zsh_command_not_found が存在しない場合は、インストールしましょう。

% sudo apt-get install command-not-found

0 件のコメント: