readline: 비증분 검색은 증분 검색이 제공하지 않는 기능을 제공합니까?

readline: 비증분 검색은 증분 검색이 제공하지 않는 기능을 제공합니까?

나는 bash에서 증분 검색(Ctl-r/Ctl-s)을 많이 사용하는데, 이것이 매우 유용하다고 생각합니다.

나는 Meta-p(Esc p)가 비증분 검색을 실행한다는 것을 알았고, 증분 검색이 존재한다는 점을 고려하면 그것이 어떤 목적으로 사용되는지 궁금합니다. 내가 간과하고 있는 몇 가지 트릭이 숨어 있는 걸까요? 명령 기록이 엄청나게 크다면 더 빠를 수도 있겠죠?

증분 검색에서 얻는 것과 동일한 대화형 피드백을 제공하지 않기 때문에 이를 사용하는 이유가 궁금합니다.

답변1

나는 다른 인터페이스에서와 같은 이유로 Bash 기록에서 비증분 검색을 선호할 수 있다고 생각합니다. 찾고 있는 것이 무엇인지 정확히 알고 있으면 관련 없는 일치 항목이 지나가는 것을 보는 것은 다소 주의를 산만하게 할 수 있습니다.

또한, 효율성. 요즘에는 그리 많지 않지만 옛날에는 증분 검색을 수행하는 것이 훨씬 느릴 것이라고 상상할 수 있습니다.

답변2

나는 실제로 비증분 검색의 정말 좋은 기능을 발견했습니다. 기본적으로 Readline은 다음을 바인딩합니다.

  • M-n에게non-incremental-forward-search-history
  • M-p에게non-incremental-reverse-search-history

이거 좀 짜증나, IMHO. 하지만 Readline또한기본 바인딩이 없는 또 다른 비증분 검색 기능 쌍이 있습니다.

  • history-search-forward
  • history-search-backward

현재 행의 시작 부분과 해당 지점 사이의 문자열에 대한 기록을 통해 앞으로/뒤로 검색합니다.

이것들은 실제로 꽤 유용합니다. 기본 비증분 함수를 대체하여 M-nand 에 바인딩했습니다 .M-p

명령을 입력하기 시작하고 일치하는 기록 항목을 검색하기로 결정한 경우 탭하면 됩니다 Escape p(실제로 메타 키가 없기 때문에).

탭을 반복하면 더 뒤로 순환하고 Escape n다시 앞으로 순환합니다.

관련 정보