reverse-i-searchコマンド(ctrl + r)でforward-search-historyを転送する方法は?


12

readlineマニュアル

# man readline

次に、後方検索と前方検索の方法を説明します。

reverse-search-history (C-r)
Search backward starting at the current line and moving `up' through the history as necessary.  This is an incremental search.

forward-search-history (C-s)
Search forward starting at the current line and moving `down' through the  history  as  necessary.   This  is  an  incremental search.

ctrl + rを押して「apt-get」と入力すると、ctrl + rを継続的にタップすることで、逆検索履歴を実行できます。しかし、それからctrl + sをタップすると、ターミナルは先に進みません。私は何か間違ったことをしていますか?

また、メタ接頭辞「M-」はどのキーを表しますか?

回答:


15

シーケンスC-sは端末ドライバから取得されます。

stty -a | grep '\^S'

readlineで使用できるようにシーケンスを解放するには、停止ターミナルシーケンスを他のシーケンスに設定します。

stty stop ^J

または完全に削除する

stty stop undef

その後C-s、与えられたターミナルで動作します。

~/.bashrcすべての端末で機能するように設定します。

M-順序は意味Alt、すでに述べたようにキーを、。


^ Jはに適しているためstop、他の目的には使用されません
ホブ

3

上記のように別のTTY 'stop' charを割り当てることに加えて、次のように、使用する予定がない場合は(完全に削除しないように)完全に削除できます。

$ stty stop undef

その後、readlineはcontrol-sを使用して前方検索を行うことができ、新しいストップ文字が追加されたために異常な動作が発生することはありません。


これははるかに良い方法です。
A.Danischewski 2017

1

forward-search-history(Cs)は機能しません(manページにはあります)。

「M-」はAltキー修飾子を表します。


1
C-s部分を修正しないで、私の答えを見てください。
enzotib

0

使用しないでください:

stty stop ^J

だが

stty stop ^P

^Jsshで大きな問題が発生するため、他の何か。(とにかく理由はわかりません。)ログインした後Enter、バックスラッシュが機能しませんでした。または私はタイプしなければなりませんでした:

stty sane 
export TERM=linux

入力する前に

ssh root@192...

そう

stty stop ^P

両方の問題を同時に解決しました。


0

XON / XOFFフロー制御を無効にすることができます:

stty -ixon

あなたに〜/ .profileファイルまたは類似し、Ctrl + Sは認識されます。


0

(Ctrl-Rコマンドを使用して)逆検索を使用しているときに前方に切り替えるには:

  1. .bashrcファイルを開きます。
    sudo gedit ~/.bashrc

  2. この行を追加します(文字「f」は、システムでまだ使用されていない別のものに置き換えることができます)。

    bind '"\C-f": forward-search-history' 
    
  3. あなたのファイルを閉じて、あなたの.bashrcを更新(または他の端末を開く)コマンドで:
    source ~/.bashrcまたは. ~/.bashrc

ショートカットで歴史の中で前進することができるようになりました:Ctrl + f

Ubuntu 18.04 LTSでの作業


0

私が使用したことに注意してください

stty stop ^J
stty -ixoff

.bashrcで前方検索を有効にし、Ctrl + Sを押したときにKonsoleで「出力がCtrl + Sを押して中断されました。Ctrl+ Qを押して再開しました」というメッセージを無効にしますが、どちらのコマンドもDolphinのKonsole統合を個別に壊しました( "F4"ショートカット)、Ctrl + Cを2回実行して機能するようにする必要があり、グラフィカルなナビゲート時に自動 "CD"コマンドが挿入されない。

だから私は今好む:

stty stop undef
stty -ixon

同じ効果があり、すべてが期待どおりに動作するようです;)

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