私は最近 robbyrussellのoh-my-zsh
を使用してzshに切り替えました。その前に、多くのカスタムスタッフでbashを使用しましたが、zshが「スマートすぎる」ようにしようとしているため、1つだけ不足しています:
git commit
と入力してから ↑ zshは、最近のすべてのgit
コマンドを実行します。私が本当に望んでいるのは、git commit
で始まるすべてのコマンドを実行することです(git
だけではありません)。
(oh-my-)zshでこの動作を実現するにはどうすればよいですか?
ZSHのドキュメント で問題の解決策を見つけました。 Oh-my-zshは ↑ そして ↓ のようなものへの鍵
_bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward
_
上記で説明したとおりの動作が得られます。 ZSHドキュメントは_history-search-backward
_の動作を次のように説明しています
バッファの最初の単語で始まる行を履歴で後方検索します。
代わりに私が欲しかったのは、_~/.zshrc
_に挿入した次のマッピングです。
_bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward
_
_history-beginning-search-backward
_の動作は次のとおりです。
履歴で前方に行現在の行からカーソルまでを検索します。これにより、カーソルは元の位置に残ります。
また、上矢印または下矢印に対して_\e[A
_が機能しない場合は、_^[OA
_を提供する別のターミナルで<ctrl-v><KEY (e.g., up arrow)>
を押します。次に、これを_\e[A
_の代わりに使用できます。プロセスはここで説明されています: http://zshwiki.org/home/zle/bindkeys
_oh-my-zsh
_をインストールしてプラグイン_history-substring-search
_を見つけ、zshで同じ動作をしたいと思いました。
プラグインを_~/.zshrc
_に追加することで、上記と同じ動作を実現しました。
plugins=(git brew npm history-substring-search)
この質問が出されたとき、このプラグインは存在しなかったと思います。同じことを達成するための単なる代替方法。