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 をタップしても、ターミナルは先に進みません。何か間違っているのでしょうか?
また、Meta プレフィックス「M-」はどのキーを表していますか?
答え1
このシーケンスはC-s
ターミナルドライバから取得されます。
stty -a | grep '\^S'
readlineで使用できるようにシーケンスを解放するには、停止ターミナルシーケンスを他のシーケンスに設定します。たとえば、
stty stop ^J
または完全に削除する
stty stop undef
その後はC-s
指定されたターミナルで動作します。
設定すると~/.bashrc
、すべての端末で動作するようになります。
すでに述べたように、シーケンスはキーを意味M-
します。Alt
答え2
上で提案したように別の TTY の「停止」文字を割り当てることに加えて、それを使用する予定がない場合は (私はあまり使用しません)、次のように完全に削除することもできます。
$ stty stop undef
すると、readline は前方検索に control-s を使用でき、新しい停止文字が追加されることによる異常な動作は発生しなくなります。
答え3
forward-search-history (Cs) は機能しません (マニュアル ページには記載されていますが)。
「M-」はAltキー修飾子を表します。
答え4
以下のものは使用しないでください:
stty stop ^J
しかし
stty stop ^P
または、他の何か、^J
SSH で大きな問題を引き起こすためです。(とにかく理由はわかりません。) ログインした後Enter、バックスラッシュが機能しなくなりました。または、次のように入力する必要がありました。
stty sane
export TERM=linux
入力する前に
ssh root@192...
それで
stty stop ^P
両方の問題を同時に解決しました。