oh-my-zsh履歴の完了


45

私は最近、robbyrusselloh-my-zshを使用してzshに切り替えました。その前に、私はbashを多くのカスタムのもので使用しましたが、zshが「あまりにもスマート」になろうとしているので、私は1つだけが欠けています。

iと入力するgit commitと、zshは最近のすべてのgitコマンドを実行します。私が本当に欲しいのは、git commit(ではなくgit)で始まるすべてのコマンドを実行することです。

(oh-my-)zshでこの動作を実現するにはどうすればよいですか?


奇妙なことに、私はOMZSHを使用していますが、このように動作します。zshrcに 'plugins =(git)'がありますか?
Chris2048

はい、できますが、これはgitだけでなく、すべてのコマンドがこのように完了します。
パトリックオスシティ

回答:


66

私の問題の解決策は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矢印または下矢印で機能しない場合は、<ctrl-v><KEY (e.g., up arrow)>を与える別のターミナルを押します^[OA。次に、の代わりにこれを使用できます\e[A。プロセスはここで説明されています:http : //zshwiki.org/home/zle/bindkeys


1
ありがとう、ありがとう、ありがとう!!私はこの上でナッツつもりだった
mhenrixon

私のような非OMZユーザーの場合:bindkeyバグが原因で実際​​には何もしないため、OMZチームはこのプラグインでパッチを適用しました。単にそれをダウンロードして、前にそれをソースしbindkeyます。
フランクリンゆう

@FranklinYuあなたはそれが合計bsであることを理解していますよね?そのプラグインは、いくつかのイベントをキャッチするためにそれを使用する以外、bindkeyで何もしません。
ノンチップ

うわー、これは完璧です!
リス

12

oh-my-zshプラグインがインストールされ、見つかったzshに対して同じ動作が必要でしたhistory-substring-search

プラグインをmyに追加することで、上記と同じ動作を実現しました~/.zshrc

plugins=(git brew npm history-substring-search)

この質問が提起されたとき、このプラグインは存在していなかったと思います。同じことを達成するための単なる代替方法。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.