검색 기록 에 대해 alt매핑 했지만 대부분의 경우 커서를 특정 위치로 이동하고 일부 변경을 수행해야 하기 때문에 기록 항목이 호출될 때마다 vicmd를 자동으로 전환하고 싶습니다.kaltj
이것은 .zshrc의 현재 설정입니다. 위의 내용을 달성하려면 어떻게 해야 합니까?
bindkey '^[k' up-line-or-history
bindkey '^[j' down-line-or-history
답변1
Esc나중에 원하는 작업을 수행하려면 Alt+ j또는 +를 누르기만 하면 되지만 , 1개의 키 입력을 저장하려면 파일에 다음을 추가하는 것이 도움이 될 수 있습니다.Altk.zshrc
vi-cmd-up-line-history() {
zle vi-cmd-mode
zle up-line-or-history
}
zle -N vi-cmd-up-line-history
bindkey -M vicmd '^[k' vi-cmd-up-line-history
bindkey -M viins '^[k' vi-cmd-up-line-history
vi-cmd-down-line-history() {
zle vi-cmd-mode
zle down-line-or-history
}
zle -N vi-cmd-down-line-history
bindkey -M vicmd '^[j' vi-cmd-down-line-history
bindkey -M viins '^[j' vi-cmd-down-line-history
그것이 하는 일은 vi-cmd-down-line-history
and라는 이름의 새 위젯을 + 및 + vi-cmd-up-line-history
에 바인딩하는 것입니다 . 이 위젯은 모드를 다음으로 변경합니다.AltjAltk지침위젯을 호출한 vi-cmd-mode
다음 down-line-or-history
및 를 트리거합니다 up-line-or-history
.