我正在使用Vim/etc/zsh/zshrc
为其添加键绑定,zsh
因为它不适用于inputrc
。在我的tmux终端中,当我输入Ctrl+ vthen Ctrl+时LeftArrow,将显示shell ^[OD
。但是,当我处于Vim插入模式时,按相同的顺序将导致^[[D
。
我发现^[[D
是,当我输入的内容外壳生产Ctrl+v则LeftArrow。我也改变了^[[D
对^[OD
在该文件中/etc/zsh/zshrc
,它按预期工作(按Ctrl+LeftArrow使光标移动回一个字)。这是我正在谈论的行:
bindkey "^[OD" backward-word
我猜Vim出了点问题,因为它正在消耗Ctrl。我该如何解决?
实际上,这是您的终端在做一些奇怪的事情,而不是Vim。出于历史原因,终端有两组与光标键相关联的控制序列:一组用于全屏应用程序,通常称为“应用程序光标键模式”,另一组用于读评估打印应用程序(例如shell)。
在过去,读评估打印应用程序不具有任何行编辑功能,并且其目的是使终端或OS终端驱动程序最终变得更加复杂。因此,终端发送了针对终端驱动程序的控制序列。某种程度上,Unix终端驱动程序从未获得过不错的行编辑功能。而是将它们添加到应用程序中(例如,通过readline库)。
的终端发送␛OD
用于Ctrl+Left在行编辑光标键模式,并且␛[D
在应用光标键模式。您有两种选择:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句