52

ZSHでは、次のようなことができると言われました。commandその後、ヒットすると、指定されたコマンドに基づいて履歴がフィルタリングされます。しかし、これを試してみると、bashのように履歴が循環します。これはデフォルトで無効になっていますか?

4

7 に答える 7

93

を押しCtrl+Rて、いくつかの文字を入力します。これらの文字で前のコマンドが検索されます。Ctrl+ Rを押し続けると、前の検索が続行されます。
bash、zsh(および私が推測する他のシェル)で動作します。

私が個人的に持っているのが好きなのは、いくつかの文字を入力してを押すUpと、同じ文字で始まる前のコマンドが表示されることです。とてもパワフルで、大好きです。
必要なキーとをバインドする必要がhistory-beginning-search-backwardありhistory-beginning-search-forwardます。

それだけでは不十分な場合は、zshに多くのオプションがあります。Zshラインエディタを調べて、教えてください。
bashの場合、それほど強力ではありませんが、より一般的な、履歴用のBashコマンド

于 2012-12-26T14:24:46.603 に答える
12

感嘆符を使用する:

> !<starts-with this string>

それで始まったすべてのコマンドを上下に矢印で移動できます。私はいつも「!v」を使用して、Vimでファイルを開くための以前のコマンドを取得しています。

疑問符を使用して、文字列の先頭に一致する以外の検索を行うこともできます。

> !?status

「gitstatus」を見つけることができます。

于 2013-01-22T23:05:59.140 に答える
7

percolを使用して、 Ctrl-を使用して履歴を動的に検索およびナビゲートしますr

  • percolをインストールします:sudo pip install percol
  • zsh-history-searchコードスニペットを.zshrcファイルに追加します。

Ctrl-の後r、同じウィンドウに履歴全体を表示できます。キーワードを(動的に)検索すると、そのリストが絞り込まれます。キーバインディング(configのようなこのemacsのような)を使用して、リストを上下に移動し、最終的に選択を行うことができます。

sudo installこれは、選択された履歴で使用可能なすべてのコマンドの検索ですsudo make install

percol_history_search_example

Enter選択したコマンドを発行します。

于 2015-11-22T17:58:16.540 に答える
6

zshでvimキーバインディングをアクティブにすると、viコマンドモードでvi-history-search-backward(/)を使用できます。

于 2015-11-26T10:10:35.110 に答える
5

これはfishで利用できる機能ですが、誰かがそのためのzshプラグインを作成したようです。標準のZSHでは使用できません。

于 2012-12-26T12:21:20.373 に答える
3

fzfを使用して、コマンド履歴をインタラクティブにあいまい検索することもできます。

インストール方法は次のとおりです。

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

そのすべての構成に「はい」と言います。その後、zshシェルを再起動しCtrl-R、、whoaを押すと、インタラクティブなコマンド履歴検索がポップアップ表示されます。楽しみ!

于 2021-03-23T03:24:42.520 に答える
2

キーバインディングを追加したくない場合は、デフォルトで+を使用しCtrlR後方に移動し、 Ctrl+を使用しSて前方に移動して検索できます。

キーショートカットCtrl+RまたはCtrl+のいずれかを使用して検索を開始できますS

于 2018-07-18T06:56:53.083 に答える