.bashrcと.zshrcを再インポートして再起動せずにその機能を削除できますか?

.bashrcと.zshrcを再インポートして再起動せずにその機能を削除できますか?

そこに機能がありましたが.zshrc削除しました。

.zshrc今すぐインポートしようとすると、インポートされたが以前に存在していた機能はメモリから削除されません。

私のコンピュータを再起動せずにこの機能を削除する方法はありますか(今はメモリ、zsh名前空間などを信じます)?

答え1

unhash -f functionnamezshでは機能を有効または削除できますunfunction functionname

しかし、これは与えられた起動ファイルから削除された機能を自動的にクリーンアップしません。なぜなら、シェルは関数が元々どこで得られたのか覚えておらず、同じファイルを再取得するのに特別な意味を与えないからです。したがって、何を忘れたいのかを知る必要があります。

.bashrcトピックで述べたように、bashに対応するものは次のとおりです。unset -f functioname

答え2

unhash -mf "*"すべての機能を削除するために使用できます。
標準zshの利点を排除するので/etc/zsh/zshrc

私の.zshrcの先頭には次のものがあります。

# Clear all functions and aliases
unhash -mf "*"
unhash -ma "*"
. /etc/zsh/zshrc  # reload standard functions and aliases

関連情報