Bash 和/或 Zsh:是否可以自定义 Vi 插入模式来创建移动特定数量字符的绑定?

Bash 和/或 Zsh:是否可以自定义 Vi 插入模式来创建移动特定数量字符的绑定?

我的 Vim 配置有点不传统。我绑定 Shift+H 和 Shift+L 分别向左移动 7 个字符和向右移动 7 个字符。这使我的大脑更容易计算键盘重复的时间,从而将光标快速定位到我希望它尽可能快地移动的位置。

不管怎样,我很好奇将单个键映射到这样的操作(移动七个字符)是否可能,并且我可能需要修补 shell 本身。但是,也许按键绑定系统可以允许这样做?

我不认为在任何其他级别(例如终端模拟器)进行转换或映射是有意义的,因为我需要终端本身继续发送常用字符HL字符。

答案1

CURSOR根据zshzle(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但这可能是一件好事......)

相关内容