コマンドが見つからない場合は、指定されたディレクトリにCDを移動する方法は?

コマンドが見つからない場合は、指定されたディレクトリにCDを移動する方法は?

zsh 組み込みコマンドでないものを入力し、$PATH にそのような実行可能ファイルがない場合、zsh はエラーを報告します。代わりに、zshにその名前の名前付きディレクトリがあることを確認し、そのディレクトリにCDを挿入したいと思います。

私は command_not_found_handler() 関数を定義してみましたが、関数を実行するためにサブシェルをフォークするので動作しません。したがって、ディレクトリの変更は実際のシェルに反映されません。

いくつかの設定や新しい(有用ですか?)機能ですでに可能ですか?

ベストアンサー1

これzsh マニュアル状態:

外部コマンドが見つからないが関数が存在する場合、command_not_found_handlerシェルはすべてのコマンドライン引数を使用して関数を実行します。 (…)ハンドラは外部コマンドを実行するために分岐したサブシェルで実行されるため、ディレクトリ、シェルパラメータなどを変更してもデフォルトのシェルには影響しません。

そのため、zsh パッチ以外に説明した操作を実行することはできません。

名前付きディレクトリごとに関数を作成できます。

おすすめ記事