ZSHでは、次のようなことができると言われました。command
その後、ヒットすると、指定されたコマンドに基づいて履歴がフィルタリングされます。しかし、これを試してみると、bashのように履歴が循環します。これはデフォルトで無効になっていますか?
7 に答える
を押しCtrl+R
て、いくつかの文字を入力します。これらの文字で前のコマンドが検索されます。Ctrl+ Rを押し続けると、前の検索が続行されます。
bash、zsh(および私が推測する他のシェル)で動作します。
私が個人的に持っているのが好きなのは、いくつかの文字を入力してを押すUp
と、同じ文字で始まる前のコマンドが表示されることです。とてもパワフルで、大好きです。
必要なキーとをバインドする必要がhistory-beginning-search-backward
ありhistory-beginning-search-forward
ます。
それだけでは不十分な場合は、zshに多くのオプションがあります。Zshラインエディタを調べて、教えてください。
bashの場合、それほど強力ではありませんが、より一般的な、履歴用のBashコマンド。
感嘆符を使用する:
> !<starts-with this string>
それで始まったすべてのコマンドを上下に矢印で移動できます。私はいつも「!v」を使用して、Vimでファイルを開くための以前のコマンドを取得しています。
疑問符を使用して、文字列の先頭に一致する以外の検索を行うこともできます。
> !?status
「gitstatus」を見つけることができます。
percolを使用して、 Ctrl-を使用して履歴を動的に検索およびナビゲートしますr。
- percolをインストールします:
sudo pip install percol
- zsh-history-searchコードスニペットを.zshrcファイルに追加します。
Ctrl-の後r、同じウィンドウに履歴全体を表示できます。キーワードを(動的に)検索すると、そのリストが絞り込まれます。キーバインディング(configのようなこのemacsのような)を使用して、リストを上下に移動し、最終的に選択を行うことができます。
sudo install
これは、選択された履歴で使用可能なすべてのコマンドの検索ですsudo make install
。
Enter選択したコマンドを発行します。
zshでvimキーバインディングをアクティブにすると、viコマンドモードでvi-history-search-backward(/)を使用できます。
fzfを使用して、コマンド履歴をインタラクティブにあいまい検索することもできます。
インストール方法は次のとおりです。
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
そのすべての構成に「はい」と言います。その後、zshシェルを再起動しCtrl-R
、、whoaを押すと、インタラクティブなコマンド履歴検索がポップアップ表示されます。楽しみ!
キーバインディングを追加したくない場合は、デフォルトで+を使用しCtrlてR後方に移動し、 Ctrl+を使用しSて前方に移動して検索できます。
キーショートカットCtrl+RまたはCtrl+のいずれかを使用して検索を開始できますS