
vicmd 모드로 R바인딩 하고 싶다고 가정해 보겠습니다 .redo
이것은 작동합니다.
bindkey -a r redo
이걸로 바꾸면 안되네요.
bindkey -a rr redo
나는 성공하지 못한 채 다양한 것을 시도했습니다. 이것이 불가능합니까? emacs 모드에서 키에 시퀀스를 바인딩하는 것이 가능해야 한다는 것을 알고 있지만 vi 모드에서 문자에도 동일한 작업을 수행할 수 있습니까?
답변1
표준 vicmd 모드에서는 R이미 vi-replace-chars
.
R따라서 + Rto redo
with를 정의하면
bindkey -a rr redo
R를 눌렀을 때 Zsh가 따를 수 있는 두 가지 가능한 작업이 있습니다.
- 명령으로 해석
vi-replace-chars
하거나 - 두 번째 문자를 기다린 다음 명령을 해석하십시오.
redo
Zsh에서 키보드 명령을 일치시키는 알고리즘은 짧은 명령을 선호하므로 항상 1. 작업을 사용합니다.
Zsh가 이 작업을 수행하는 것을 중지하려면 먼저 바인딩을 제거해야 합니다 R.
bindkey -a -r r
그런 다음 새 옵션을 추가하십시오.
bindkey -a rr redo
그런 다음 다음을 추가할 수도 있습니다 vi-replace-chars
.
bindkey -a re vi-replace-chars