기록 검색 종료가 작동하지 않습니다.

기록 검색 종료가 작동하지 않습니다.

내 거 ~/.zshrc:

setopt histignoredups
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

위쪽 화살표를 지금까지 입력한 명령줄과 일치하는 마지막 명령줄로 채우고 싶습니다.

dotnet build
dotnet bin/Debug/netcoreapp2.2/MyProg.dll
dotnet build
dotnet bin<UP ARROW>

을 채워야 합니다 dotnet bin/Debug/netcoreapp2.2/MyProg.dll.

그러나 ~/.zshrc현재 가지고 있는 것만 으로는 dotnet build.

첫 번째 공간에서만 작동하는 것 같습니다.

위쪽 화살표가 지금까지 입력한 명령줄과 일치하는 마지막 명령줄을 선택하도록 하려면 어떻게 해야 합니까?

답변1

TL, 박사:

bindkey "^[OA" history-beginning-search-backward-end
bindkey "^[OB" history-beginning-search-forward-end

터미널에서 실제로 전송 ^[[A합니까 Up? 내 보내기 ^[OA. 그리고 당신 것 .zshrc:

darkstar% bindkey | grep '\^\[.A'
"^[OA" up-line-or-history
"^[[A" history-beginning-search-backward-end

Up보내기를 누르면 ^[OA기본 바인딩이 적용되고 이전 라인을 호출합니다. 이전 줄이 같은 단어로 시작하는 것은 단지 우연의 일치일 뿐입니다. Esc [ A필요한 경우 로 시작하는 이전 줄을 불러오려면 누릅니다 dotnet bin.

기능 키나 커서 키에 대해 터미널이 보내는 내용을 확인하려면 Ctrl+를 누른 V다음 키나 키 코드를 누르세요. 전체 화면 응용 프로그램은 특정 키가 다른 이스케이프 시퀀스(응용 프로그램 커서 키)를 보내는 명령줄 응용 프로그램과 다른 터미널 모드를 사용하는 경우가 많습니다. ^[[A는 일반적인 명령줄 이스케이프 시퀀스이고 Up, ^[OA일반적인 전체 화면 이스케이프 시퀀스입니다.

관련 정보