zsh
しばらく幸せに使ってきましたし、以下の履歴設定にとても満足しています。
# Write to history immediately
setopt inc_append_history
# History shared among terminals
setopt share_history
# Save extended info in history
setopt extended_history
# Ignore duplicates
setopt hist_ignoredups
ただし、一部の特定のディレクトリで特定のコマンドを使用する必要があることがよくあります。たとえば、私が入るときは普通に~/my_project
電話しmake target1 && ./run1
ますが、私が入るときは~/second_project
通常が必要ですmake target2 && cat foobar | ./run2
。
つまり、ディレクトリは異なりますが、コマンドは似ています。
だから私は通常cd ~/my_project
何かを入力し、必要なmake
ものが見つかるまで履歴を逆に検索します。しかし、偶然に仕事をすると、second_project
記録の検索中に不要なコマンドが見つかります。
だから私の質問:履歴から検索すると、現在のディレクトリから呼び出されたコマンドが最初に表示されるようにzshのプラグイン/設定/何かがありますか?
理想的には、一致する他のすべての履歴コマンドがこれらのコマンドの後に表示され、オプションで優先順位要素の最大数を指定します。
私もこのようなことを書こうとしていますが、カスタムzshプラグインを書く方法、履歴を処理する方法などはまだわかりません。
ベストアンサー1
必要な作業を正確に実行すると主張するプラグインがあり、名前が適切です。ディレクトリ別履歴プラグイン:
https://github.com/jimhester/oh-my-zsh/commit/baa187e4b903f39422a84b580e6e617ec3738e09
「ディレクトリごとの履歴 - ctrl-gを使用して各ディレクトリ間を動的に切り替える機能を使用して、各現在のディレクトリの以前のコマンド履歴をグローバルに追跡します。」彼らのwikiは言います。
直接テストしたことはありませんが、コメントによるとうまくいきます。