역방향 검색 전에 터미널을 자동으로 지우는 방법은 무엇입니까?

역방향 검색 전에 터미널을 자동으로 지우는 방법은 무엇입니까?

clear를 사용하여 역검색을 시작할 때 이 명령을 자동으로 실행할 수 있는지 궁금합니다 CTRLR.

저는 precmdzsh의 기능에 대해 잘 알고 있지만 판매 속도를 늦추지 않고 명령의 하위 집합으로 제한하는 방법을 모르겠습니다. 한 가지 가능한 해결책은 역방향 검색을 감지하는 if조건 을 추가하는 것입니다 precmd. 하지만 해당 조건이 무엇인지는 잘 모르겠습니다 history-incremental-search-backward.

답변1

function my-history-incremental-search-backward {
    zle clear-screen
    zle history-incremental-search-backward
}
zle -N my-history-incremental-search-backward
bindkey "^r" my-history-incremental-search-backward

먼저 화면을 지우고(실행할 수도 있지만 보기 흉하고 검색을 종료하면 clear프롬프트가 다시 그려지지 않음) 실제 .control+chistory-incremental-search-backward

또는 다음을 history-incremental-search-backward사용하여 위젯을 재정의할 수 있습니다.

function history-incremental-search-backward {
  zle clear-screen
  zle .$WIDGET
}
zle -N history-incremental-search-backward

따라서 위젯이 이미 바인딩된 모든 키를 다시 바인딩할 필요조차 없습니다.

관련 정보