我的 Vim 配置有点不传统。我绑定 Shift+H 和 Shift+L 分别向左移动 7 个字符和向右移动 7 个字符。这使我的大脑更容易计算键盘重复的时间,从而将光标快速定位到我希望它尽可能快地移动的位置。
不管怎样,我很好奇将单个键映射到这样的操作(移动七个字符)是否可能,并且我可能需要修补 shell 本身。但是,也许按键绑定系统可以允许这样做?
我不认为在任何其他级别(例如终端模拟器)进行转换或映射是有意义的,因为我需要终端本身继续发送常用字符H
和L
字符。
答案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
但这可能是一件好事......)