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-"은 어떤 키를 나타냅니까?
답변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
전방 검색 기록(Cs)은 작동하지 않습니다(맨 페이지에 있지만).
'M-'은 Alt 키 수정자를 나타냅니다.
답변4
다음을 사용하지 마십시오:
stty stop ^J
하지만
stty stop ^P
^J
또는 ssh에 큰 문제를 일으키는 다른 것 . (왜인지는 모르겠습니다.) 로그인 후 Enter백슬래시가 작동하지 않았습니다. 아니면 다음을 입력해야 했습니다:
stty sane
export TERM=linux
내가 타이핑하기 전에
ssh root@192...
그래서
stty stop ^P
두 가지 문제를 동시에 해결했습니다.