reverse-i-search 명령으로 검색 기록을 전달하는 방법 (Ctrl + R)?


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에서 사용하기 위해 시퀀스를 비우려면, 예를 들어 stop 터미널 시퀀스를 다른 시퀀스로 설정하십시오.

stty stop ^J

또는 함께 제거하십시오

stty stop undef

그 후 C-s주어진 터미널에서 작동합니다.

~/.bashrc모든 터미널에서 작동하도록 설정하십시오 .

M-시퀀스 수단 Alt키, 이미 언급한다.


^ J는를위한 좋은 선택 stop입니다. 다른 용도로는 사용되지 않습니다.
호브

3

위에서 제안한 것처럼 다른 TTY 'stop'문자를 할당하는 것 외에도 다음과 같이 사용하지 않을 경우 완전히 제거 할 수 있습니다.

$ stty stop undef

그러면 readline은 정방향 검색에 control-s를 사용할 수 있으며 새로운 정지 문자가 추가되어 이상한 동작을하지 않습니다.


이것은 훨씬 더 좋은 방법입니다.
A.Danischewski

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

우분투 18.04 LTS 작업


0

내가 사용한 것을 주목하십시오

stty stop ^J
stty -ixoff

ctrl.s를 눌렀을 때 Konsole에서 "Ctrl + S를 눌러 출력이 일시 중지되었습니다. Ctrl + Q를 눌러 다시 시작합니다"메시지가 표시되도록하려면 .bashrc에서 정방향 검색을 활성화하고 Dolphin에서 Konsole 통합을 개별적으로 중단했습니다. "F4"바로 가기)를 사용하여 ctrl + c를 두 번 눌러야 작동하고 그래픽을 탐색 할 때 삽입되지 않는 자동 "cd"명령

그래서 나는 지금 선호한다 :

stty stop undef
stty -ixon

그것은 같은 효과가 있습니다. 모두 예상대로 작동하는 것 같습니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.