Ctrlzsh에서는 + 를 사용하여 기록을 검색 할 수 있다는 것을 알고 있습니다 r. 그러나 프롬프트에서 직접 명령을 입력하기 시작하다가 기록을 검색해야 한다는 사실을 깨닫는 경우가 많습니다. Ctrl+를 클릭하면 r다음과 같은 빈 기록 검색 프롬프트가 나타납니다.
프롬프트에는 텍스트가 있지만 기록 검색 프롬프트에는 없습니다. 다음과 같이 프롬프트에 이미 있는 텍스트를 사용하여 기록 검색을 시작하는 방법:
답변1
당신은 그것을 사용할 수 있습니다질러의history-search
기능:
bindkey "^[[A" history-beginning-search-backward
bindkey "^[[B" history-beginning-search-forward
이것은 프롬프트에 입력된 내용을 기반으로 바인딩 Up하고 (자신의 이스케이프 시퀀스에 맞게 조정하여) 앞뒤로 기록을 검색합니다 .Down
따라서 "vim"을 입력하고 을 클릭하면 Upzsh는 "vim"으로 시작하는 명령만 찾아 기록을 거꾸로 탐색합니다.
zsh 기록에서 원하는 명령을 선택한 후에는 다음을 사용할 수도 있습니다.기록 검색이 종료되었습니다함수(보통 에 있음 ) 는 다음과 같이 각 줄의 끝에 /usr/share/zsh/functions/Zle/
추가됩니다 .-end
autoload -U history-search-end
zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end
bindkey "^[[A" history-beginning-search-backward-end
bindkey "^[[B" history-beginning-search-forward-end
답변2
또 다른 유용한 옵션은history | grep
별칭을 할당하세요.
alias hg='history | grep'
hg whatever
그런 다음 Enter를 입력 하여 사용한 명령을 검색 할 수 있습니다 .
$ hg chmod
1309 chmod +x rotate_files.sh
1385 chmod +x rotate_files_270.sh
1512 chmod +x testy.sh
1528 chmod +x act_on_2_numbers.sh
2142 chmod +x ~/bin/display_tmux_pane_pwd.sh
4532 chmod +x cat_files.rb
이 별칭을 내 도트 파일에 넣었습니다.
답변3
당신이 사용하는 경우아 맙소사, 행 history-substring-search
에 추가되었습니다 plugins=(...)
.
그런 다음 추가
bindkey "^[[A" history-substring-search-up
bindkey "^[[B" history-substring-search-down
. 라인 아래 어딘가에 있습니다 source $ZSH/oh-my-zsh.sh
. 새 터미널을 저장하고 시작하거나 source ~/.zshrc
현재 터미널에서 실행하십시오.
노트: ^[[A
내가 사용하는 터미널(키티)과 다른 많은 터미널의 위쪽 화살표에 대한 이스케이프 시퀀스입니다. 선택한 터미널을 확인하려면 showkey -a
이스케이프 문자열을 찾으려는 키를 입력한 다음 누르세요.
답변4
타사 솔루션
1 - 어떻게 작동하나요?zsh-autosuggestions
?
문제는 입력하는 모든 명령에 대해 플러그인이 허용되거나 허용되지 않을 수 있는 몇 가지 제안을 표시한다는 것입니다. 사용해 보시고 의견을 보내주세요.
2 - 중후지브설치하고 적절하게 구성한 후에는 역방향 검색 기록(기본적으로 fzf-history-widget에 바인딩됨)을 변경할 수 있는 위젯을 추가하면 Ctrlr명령 기록에 일부 퍼지 검색이 추가됩니다. 나는 그것을 자동 제안과 결합하여 사용하고 있으며 정말 잘 작동합니다.
기본 솔루션
플러그인이 없으면 Ctrlr기록에서 역검색을 수행할 수 있으며 입력을 시작하면 일치하는 명령이 제안으로 표시됩니다.