zsh 프롬프트에 이미 입력한 텍스트를 입력하여 기록을 검색하려면 어떻게 해야 합니까?

zsh 프롬프트에 이미 입력한 텍스트를 입력하여 기록을 검색하려면 어떻게 해야 합니까?

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기록에서 역검색을 수행할 수 있으며 입력을 시작하면 일치하는 명령이 제안으로 표시됩니다.

관련 정보