![](/img/trans.png)
[英]Map a caps lock key that is mapped to ctrl system wide to Escape just in vim
[英]in vim, enter is being mapped to a ctrl key custom key map
我在使用ctrl键的vim中的键盘映射遇到了一些奇怪的行为。 我猜这有一个简单的原因和解决方案,但我只是看不到它。
在重构文本的编辑过程中,我发现自己输入了类似的内容
:math:`x`
经常(这个:数学:角色会导致刻度内的任何内容被排版为例如乳胶输出中的数学)。
我想映射一个像m这样的键来输入:math:``进入文本并将光标定位在刻度内。
我做到了这一点
map m i:math:``ha
这似乎工作正常。
但是,我希望能够在插入模式下使用此映射。 为此,我认为使用ctrl + m是最好的。 我弄完了
imap <c-m> :math:``ha
虽然是正确输入:数学:``和定位蜱内光标,当我做CTRL + M,麻烦的是,在这之后,每次我按在插入模式输入时,它运行相同的命令,如果我输入CTRL + m 。 换句话说,现在进入插入模式似乎映射到
:math:``ha
同样。
看起来它肯定与使用ctrl键有关。 如果我按如下方式绑定例如F5键
imap <F5> :math:``ha
一切都好。
我可以使用例如F5键并为自己节省更多麻烦,但我想知道将来会发生什么。
在我丢失的键映射中使用ctrl键有什么基本的东西吗?
谢谢,
您必须为映射使用不同的控件组合,例如<Cg>
。
由于键盘输入在内部处理的方式,遗憾的是,如果没有这些副作用,即使在GVIM中也是如此。 某些键组合(如Ctrl +非字母)无法映射,而Ctrl +字母与Ctrl + Shift +字母无法区分。 (除非您的终端为其发送不同的termcap代码,但大多数情况下都没有。)这也适用于<Tab>
/ <CI>
, <CR>
/ <CM>
/ <Esc>
/ <C-[>
等。 (唯一的例外是<BS>
/ <CH>
。)这是一个众所周知的痛点,也是关于vim_dev和#vim IRC频道的各种讨论的主题。
有些人(最重要的是Paul LeoNerd Evans)希望解决这个问题(即使是支持这种情况的终端中的控制台Vim),并提出了各种提案,cp。 http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8
但截至今天,尚未有任何补丁或志愿者挺身而出,尽管许多人表示希望在未来的Vim 8主要版本中使用它。
如果你做了
:h keycodes
你会看见:
notation meaning equivalent decimal value(s) ~
-----------------------------------------------------------------------
....
<CR> carriage return CTRL-M 13 *carriage-return*
<Return> same as <CR> *<Return>*
<Enter> same as <CR> *<Enter>*
所以它告诉, <cm>
与<Enter>
相同(相同的键码13)
您也可以在shell中进行测试,例如,输入ls
然后<Enter>
<cm>
而不是<Enter>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.