reverse-search-history
기본적으로 Cr에 바인딩됩니다. Cr을 입력하여 검색을 시작한 다음 Cr을 다시 입력하여 이전 일치 항목으로 이동할 수 있습니다.
나는 reverse-search-history
\er(Alt-r)로 묶였습니다. 이 새로운 바인딩은 초기 검색에 작동하지만 Alt-r을 눌러도 검색이 계속되지 않습니다. Cr은 여전히 역방향 검색을 반복해야 할 것 같습니다.
Alt-r을 반복 기능에도 사용할 수 있는 방법이 있습니까? 아니면 "계속 검색" 기능을 기본 키가 아닌 다른 키에 바인딩하는 방법이 있나요? emacs에서는 이 작업을 수행할 수 있지만 bash/readline에 대한 관련 문서를 찾을 수 없습니다.
답변1
몇 가지 테스트를 거친 후 다음과 같은 답변을 얻었습니다.
존재하다리눅스 가상 콘솔, "Alt-R"은 showkey -a
"Esc"와 "r"인 "^[r"을 생성하고 Escape는 검색 문자열을 삭제하여 역방향 검색을 중지합니다.
존재하다xterm\M-r
, "ò"로 표시됨 :
]# bind -p |grep ' reverse-se'
"\C-r": reverse-search-history
"\e[172": reverse-search-history
"\e[1;3A": reverse-search-history
"ò": reverse-search-history
설명하신 대로 "\e..."는 부분적으로만 작동합니다(수정된 위쪽 화살표임).
man bash
실제로 몇 가지 정보가 있습니다.
convert-meta (On)
If set to On, readline will convert characters with the eighth bit set to an
ASCII key sequence by stripping the eighth bit and prefixing an escape char-
acter (in effect, using escape as the meta prefix). The default is On, but
readline will set it to Off if the locale contains eight-bit characters.
다음은 readline 변수입니다:
isearch-terminators
... If this variable has not been given a value,
the characters ESC and C-J will terminate an incremental search.