ファイルが見つからないと言う代わりに、実行可能ファイルを検索できる場所を説明するようにzshを設定するにはどうすればよいですか?

ファイルが見つからないと言う代わりに、実行可能ファイルを検索できる場所を説明するようにzshを設定するにはどうすればよいですか?

基本構成強く打つ存在するUbuntu、インストールされていないソフトウェアの名前を入力すると、強く打つ実行可能ファイルがある場合はインストールする方法、ない場合は非常に似た名前の実行可能ファイルをインストールする方法について説明します。例えばEmacs(マイコンピュータにはインストールされていません):

$ emacx
No command 'emacx' found, did you mean:
 Command 'emacs' from package 'emacs23-lucid' (universe)
 Command 'emacs' from package 'e3' (universe)
 Command 'emacs' from package 'emacs23-nox' (main)
 Command 'emacs' from package 'emacs24' (main)
 Command 'emacs' from package 'emacs24-nox' (main)
 Command 'emacs' from package 'emacs23' (main)
 Command 'emacs' from package 'jove' (universe)
 Command 'emacs' from package 'emacs24-lucid' (universe)
emacx: command not found
$ emacs
The program 'emacs' can be found in the following packages:
 * emacs23
 * emacs23-nox
 * emacs24
 * emacs24-nox
 * e3
 * emacs23-lucid
 * emacs24-lucid
 * jove
Try: sudo apt-get install <selected package>

現在のzsh構成に基づいて、以下を取得します。

$ emacx
zsh: command not found: emacx
$ emacs
zsh: command not found: emacs

インストールされているソフトウェア名にエラーがある場合でも動作は異なります。始めたいと言う編集者変える編集者。そして強く打つ、私は得る:

$ kedit
No command 'kedit' found, did you mean:
 Command 'xedit' from package 'x11-apps' (main)
 Command 'edit' from package 'mime-support' (main)
 Command 'nedit' from package 'nedit' (universe)
 Command 'gedit' from package 'gedit' (main)
 Command 'jedit' from package 'jedit' (universe)
 Command 'medit' from package 'medit' (universe)
 Command 'ledit' from package 'ledit' (main)
kedit: command not found

zshを使用すると、次のようになります。

$ kedit
zsh: correct 'kedit' to 'edit' [nyae]?

だから私の質問は次のとおりです。

  • 同様の行動が可能でしょうか?そして強く打つまだインストールされていない実行可能ファイルを実行しようとすると?それではどうですか?
  • 誤字が発生したとき、間違っているかもしれない修正をする代わりに、すべての可能性を示すことは可能ではないだろうか?

ベストアンサー1

command-not-foundDebian(およびおそらくUbuntu)のデフォルトのzsh設定には、基本パッケージのサポートは含まれていません。

同じ機能を使用するには、次の方法で/etc/zsh_command_not_foundデフォルト値を取得できます。~/.zshrc

[ -f /etc/zsh_command_not_found ] && . /etc/zsh_command_not_found

ロードしてcommand-not-found有効にする必要がありますzsh

おすすめ記事