oh-my-zsh 히스토리 완료


45

나는 robbyrussell 's를oh-my-zsh 사용하여 최근에 zsh로 전환했습니다 . 그 전에 나는 많은 커스텀 물건과 함께 bash를 사용했고 zsh가 '너무 똑똑해'려고하기 때문에 한 가지만 누락되었습니다.

내가 입력 git commit한 다음 ↑zsh는 모든 최근 git명령을 거 칩니다 . 내가 정말로 원하는 것은 git commit(뿐만 아니라 git)로 시작하는 모든 명령을 수행하는 것 입니다.

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


이상하게도 OMZSH를 사용하며 다음과 같이 작동합니다. zshrc에 'plugins = (git)'이 있습니까?
— Chris2048

네,하지만 git 전용이 아니며 모든 명령이 이런 식으로 완료됩니다.
— Patrick Oscity

답변:


66

ZSH 설명서 에서 내 문제에 대한 해결책을 찾았습니다 . Oh-my-zsh는 키 ↑와 ↓키를

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

위에서 설명한 정확한 동작을 산출합니다. zsh을 문서는의 동작 설명 history-search-backward등을

버퍼에서 첫 번째 단어로 시작하는 행을 히스토리에서 뒤로 검색 하십시오 .



대신 내가 원했던 것은 다음 매핑이었습니다 ~/.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


1
감사합니다 감사합니다 감사합니다 !! 나는 이것을
— 망설이고 있었다

나와 같은 비 OMZ 사용자의 경우 : bindkey버그로 인해 실제 작업을 수행하지 않으므로 OMZ 팀은 이 플러그인으로 패치했습니다 . 간단히 다운로드하여 소스를 만드십시오 bindkey.
— Franklin Yu

@FranklinYu 당신은 그게 총 BS인지 알고 있습니까? 해당 플러그인은 이벤트를 잡기 위해 USE를 제외하고 bindkey로 아무것도하지 않습니다.
— nonchip

와, 이건 완벽 해!
— 다람쥐

12

oh-my-zsh설치된 플러그인과 zsh에 대해 동일한 동작을 원했습니다 history-substring-search.

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

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

이 질문이 제기되었을 때이 플러그인이 다시 존재하지 않았다고 생각합니다. 같은 것을 달성하는 다른 방법.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.