Bash 및/또는 Zsh: 특정 수의 문자를 이동하는 바인딩을 생성하기 위해 Vi 삽입 모드를 사용자 정의할 수 있습니까?

Bash 및/또는 Zsh: 특정 수의 문자를 이동하는 바인딩을 생성하기 위해 Vi 삽입 모드를 사용자 정의할 수 있습니까?

내 Vim 설정은 약간 독특합니다. Shift+H와 Shift+L을 바인딩하여 각각 왼쪽으로 7자, 오른쪽으로 7자를 이동했습니다. 이렇게 하면 뇌가 키보드 반복 시간을 더 쉽게 정하여 가능한 한 빨리 커서를 원하는 위치로 빠르게 이동할 수 있습니다.

어쨌든 단일 키를 이러한 작업(7자 이동)에 매핑하는 것이 가능한지 궁금하고 셸 자체를 패치해야 할 수도 있습니다. 하지만 키바인딩 시스템이 이것을 허용할 수도 있을까요?

H공통 문자 와 문자를 계속 보내려면 터미널 자체가 필요하기 때문에 다른 수준(예: 터미널 에뮬레이터)에서 변환이나 매핑을 수행하는 것은 의미가 없다고 생각합니다 L.

답변1

CURSORzshzle(1)문서 에 따르면 ZSH로 이동할 수 있습니다.

rm ~/.zcompdump
bindkey -v
autoload -U compinit
compinit
function leftsevent {
    CURSOR=$(( CURSOR - 7 ))
}
function rightsaidfred {
    CURSOR=$(( CURSOR + 7 ))
}
zle -N leftsevent
zle -N rightsaidfred
bindkey H leftsevent
bindkey L rightsaidfred

(한 줄 입력에 경계 검사를 사용하는 것은 필수는 아닌 것 같지만 < 0아마도 > $#BUFFER좋은 일일 것입니다...)

관련 정보