什么是Vim中的mod密钥,我可以将Win密钥分配给Vim mod密钥吗



我知道Alt键是默认的mod键。

但是我可以在Vim中将其更改为Win键吗?因为Alt

或者具体地说,我可以使用Vim中的Win键来进行键映射吗?就像我想做<Win-J>,就像nnoremap中的<C-J>一样。

我读过这样一个问题:Windows密钥可以在Vim中映射吗?但它并没有回答我的疑虑。所以我来这里寻求帮助。

PS:我使用的是Ubuntu 14.04

由于Vim无法识别窗口键,您可能需要执行以下操作:

  1. 将窗口键映射到操作系统上未映射的ctrl键序列(例如ctrl+L)(仅当vim/shell是活动窗口时)

  2. `nnoremap v echo"嗨"。现在您可以按Win+v

这不是最好的解决方案,因为我不确定您的操作系统如何将持有win密钥视为Ctrl + l的多个分派。也许你需要弄清楚,当你按下win(但还没有发布)时,你是否可以让它"按下然后立即发布"

编辑:

解决方案分为两部分:将Windows密钥映射到某个序列(例如ctrl + l),然后在vim中,在你的vimrc:中放入这样的东西

inoremap <c-l><c-k> hello
nnoremap <c-l><c-k> :echo("hello")<cr>

现在,在插入模式下,按Win + k应该为您键入hello,而在正常模式下,按下win + k应该回显"hello"。

在我的系统中,我使用xmodmap制作Window密钥和额外的Ctrl密钥,这样我就使用Window密钥作为我的控制密钥(原始的Ctrl密钥仍然有效)。

~/.Xmodmap中保存以下行:

! Make windows Meta key an aditional Control key
remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Control_L Super_L

某些窗口管理器会自动加载此文件,如果没有,请使用xmodmap ~/.Xmodmap

最新更新