zsh vi 모드: 최근에 사용한 명령 찾아보기

zsh vi 모드: 최근에 사용한 명령 찾아보기

최근 zsh에서 vi 모드로 전환했는데 vi 모드에서 수행하는 방법을 찾을 수 없는 emacs 모드의 기능이 있습니다. 이 기능은 이미 입력한 내용부터 시작하여 한 줄씩 기록을 찾아보는 것입니다. 예를 들어, 입력 vi하고 또는 키를 누른 다음 로 시작하는 최근 명령을 찾아봅니다 vi. vi 모드도 사용할 수 있나요?

답변1

이맥스 모드그리고vi 모드키 바인딩에 대한 사전 설정이 다릅니다. 모든 위젯은 모든 모드에서 바인딩될 수 있습니다.

여기서 논의되는 위젯은 history-beginning-search-backward(대략 ) 및 history-beginning-search-forward( )입니다.

모드에서 위쪽 및 아래쪽 키에 바인딩하려면 vicmd다음을 실행하세요.

bindkey '^[[A' history-beginning-search-backward
bindkey '^[[B' history-beginning-search-forward
  • 참고 1: 이는 해당 키의 기본 설정을 재정의합니다.
  • 참고 2: ^[[A^[[B터미널에 대한 올바른 코드가 아닐 수도 있습니다.

    • Ctrlv+ 와 해당 키를 눌러 올바른 키를 찾으세요.
    • 또는 연관 배열을 활용하여 terminfo올바른 바인딩을 검색합니다(감사합니다.스티븐 차제라스이에 대한 그의 의견):

      bindkey "$terminfo[kcuu1]" history-beginning-search-backward
      bindkey "$terminfo[kcud1]" history-beginning-search-backward
      

      kcuu1그리고 kcud1능력 이름각각 . 맨페이지( )에서 가능한 함수 목록과 해당 이름을 얻을 수 있습니다 . 연관 배열은 "Cap-name" 열의 이름을 키로 사용합니다.terminfo(5)man 5 terminfoterminfo

관련 정보