oh-my-zsh 기록 완료

oh-my-zsh 기록 완료

나는 최근에 zsh로 전환했습니다.로비러셀의oh-my-zsh. 그 전에는 많은 사용자 정의 항목과 함께 bash를 사용했는데 zsh가 '너무 똑똑'하려고 하기 때문에 한 가지만 빠졌습니다.

내가 입력 git commit하면 zsh는 모든 최근 명령을 실행합니다 git. 하지만 내가 정말로 원하는 것은 git commit(뿐만 아니라 ) 로 시작하는 모든 명령을 수행하는 것입니다 git.

(oh-my-)zsh에서 이 동작을 어떻게 달성할 수 있나요?

답변1

나는 내 문제에 대한 해결책을 찾았습니다.ZSH 문서. Oh-my-zsh는 키를 다음과 같은 것으로 매핑하는 것 같습니다.

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

위에서 설명한 정확한 동작이 발생합니다. ZSH 문서는 history-search-backward다음과 같은 동작을 설명합니다.

다음으로 시작하는 줄을 기록에서 뒤로 검색합니다.버퍼의 첫 번째 단어.



대신 내가 원했던 것은 다음 매핑이었는데, 이를 my 에 삽입했습니다 ~/.zshrc.

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

의 동작은 history-beginning-search-backward다음과 같습니다.

행 기록에서 앞으로 검색현재 줄부터 커서까지. 이렇게 하면 커서가 원래 위치에 그대로 유지됩니다.

또한 \e[A위쪽 또는 아래쪽 화살표가 작동하지 않으면 를 <ctrl-v><KEY (e.g., up arrow)>제공하는 다른 터미널을 누르십시오 ^[OA. 그러면 대신 이것을 사용할 수 있습니다 \e[A. 프로세스는 여기에 설명되어 있습니다.http://zshwiki.org/home/zle/bindkeys

답변2

oh-my-zsh나는 플러그인을 설치하고 찾은 zsh에 대해 동일한 동작을 원했습니다 history-substring-search.

my 에 플러그인을 추가하여 위에서 설명한 것과 동일한 동작을 달성했습니다 ~/.zshrc.

plugins=(git brew npm history-substring-search)

이 질문이 제기되었을 당시에는 이 플러그인이 존재하지 않았던 것 같습니다. 동일한 것을 달성하는 대체 방법입니다.

관련 정보