在 vim 中重新映射修饰符键

Posted

技术标签:

【中文标题】在 vim 中重新映射修饰符键【英文标题】:Remap modifiers key in vim 【发布时间】:2017-06-27 02:28:21 【问题描述】:

我已经使用 xmodmap 将我的 capslock 重新映射到了作为 mod3 的超级键。 这是xmodmap的结果

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Hyper_L (0x42),  Hyper_L (0xcf)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

那么是否可以在 vim 中将这个 mod3 键重新映射为领导者。

【问题讨论】:

【参考方案1】:

不,很遗憾没有。 Vim 只能理解 ShiftCtrlAlt 修饰符(参见:help key-notation),并且您只能将修饰符与常规键,例如<C-a> 作为 Ctrl + A

在终端中,Vim 甚至不会注册唯一修改键的按键;不会向它发送任何事件。在 GVIM 中,这在技术上是可行的,但 Vim 使用统一的输入模型,故意忽略了一些 GUI 功能 (:help design-not)。

这适用于映射以及 Leader 键。您需要选择非修饰键,或者修饰键 + 组合键。

【讨论】:

以上是关于在 vim 中重新映射修饰符键的主要内容,如果未能解决你的问题,请参考以下文章

检测 UIKit for Mac (Catalyst) 中的单个修饰符键更改

自定义 v-model 之修饰符

Uni-App方向:侦听器、事件修饰符及事件映射表

有条件申请?每个属性的映射类型中的修饰符

映射类型:删除可选修饰符

Angular 无法编译 Typescript 的映射类型修饰符