zsh tcsh와 유사한 기록 탐색

zsh tcsh와 유사한 기록 탐색

에서 tcsh및 명령 \eP\eN첫 번째 단어뿐만 아니라 현재 줄의 공백 정규화된 접두사를 고려합니다.

예를 들어 내 기록에 다음이 포함되어 있다면

git pull upstream feature-dancing-pigs
git clone

그리고 나는 타자를 친다

% git pull

그런 다음 를 \eP입력 tcsh하면

% git pull upstream feature-dancing-pigs

\eP를 입력하면 zsh명령과 일치하는 기록 항목을 얻습니다.

% git clone

zsh동작을 에뮬레이션하도록 구성하고 싶습니다 tcsh. 가능합니까?

나는 zsh기본 emacs 키 구성과 명시적인 키 구성을 사용해 보았습니다.

bindkey "\eP" history-search-backward

밝혀진 바에 따르면

bindkey "\eP" history-beginning-search-backward

^[처음에 . 대신 사용했던 예상 동작이 있습니다 \e.

답변1

zshcontrib에 문서화된 함수가 있습니다 up-line-or-beginning-search. 이를 실행하여 볼 수 있습니다.

man zshcontrib | less '+/^\s*up-line-or-beginning-search'

이러한 위젯은 내장 함수 up-line-or-search 및 down-line-or-search와 유사합니다. 여러 줄 버퍼에 있는 경우 버퍼 내에서 위 또는 아래로 이동하고, 그렇지 않으면 시작 부분과 일치하는 히스토리 라인을 검색합니다. 현재 라인. 그러나 이 경우에는 다음과 같은 행을 검색합니다.현재 줄을 현재 커서 위치까지 일치시킵니다., 기록 시작 - 검색 - 뒤로 및 앞으로의 방식으로,줄의 첫 번째 단어보다는.

ZLE FUNCTIONS섹션 상단에 제공된 지침을 보면man zshcontrib

ZLE 함수
위젯
이 함수는 모두 대화형 셸의 키 입력에 바인딩될 수 있는 사용자 정의 ZLE 위젯(zshzle(1) 참조)을 구현합니다. 이를 사용하려면 .zshrc에 다음 형식의 줄이 포함되어야 합니다.
autoload function
zle -N function

개인적으로 나는 위의 지침을 따랐지만 요즘에는 그럴 필요가 없을 수도 있습니다...~/.zshrc

# register the function with the autoloader
autoload -U up-line-or-beginning-search
# define new zle widget
zle -N up-line-or-beginning-search
# bind UP key
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-beginning-search

관련 정보