내 거 ~/.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
일반적인 전체 화면 이스케이프 시퀀스입니다.