gpt4 book ai didi

vim - 在 vim 中,输入被映射到一个 ctrl 键自定义键映射

转载 作者:行者123 更新时间:2023-12-04 16:20:11 28 4
gpt4 key购买 nike

我在 vim 中使用 ctrl 键的键盘映射遇到一些奇怪的行为。我猜这有一个简单的原因和解决方案,但我只是看不到它。

在编辑重组文本的过程中,我发现自己在输入类似的东西

:math:`x` 

经常(这个 :math: 角色将导致刻度内的任何内容在例如 latex 输出中被排版为数学)。

我想映射一个像 m 这样的键来输入 :math:`` 到文本中并将光标定位在刻度内。

我已经做到了
map m i:math:``ha

这似乎工作正常。

但是,我希望能够在插入模式下使用此 map 。为此,我认为使用 ctrl+m 是最好的。我弄完了
imap <c-m> :math:``ha

虽然正确输入:math:`` 并在我执行 ctrl+m 时将光标定位在刻度内,但问题是在此之后,每次我在插入模式下按 enter 时,它都会运行与我输入 ctrl 相同的命令+米。换句话说,以插入模式输入现在似乎映射到
:math:``ha

也是。

似乎这绝对与使用 ctrl 键有关。如果我绑定(bind)例如F5键如下
imap <F5> :math:``ha

一切安好。

我可以使用例如F5 键并为自己省去更多麻烦,但我想知道发生了什么以供将来引用。

在我缺少的键映射中使用 ctrl 键有什么基本的吗?

谢谢你,

最佳答案

您必须为映射使用不同的控制组合,例如<C-g> .

由于键盘输入在内部处理的方式,不幸的是,如果没有这些副作用,即使在 GVIM 中,今天通常也无法做到这一点。某些组合键,如 Ctrl + 非字母无法映射,无法区分 Ctrl + 字母与 Ctrl + Shift + 字母。 (除非您的终端为它发送一个独特的 termcap 代码,而大多数人不会。)这也适用于 <Tab>/<C-I> , <CR>/<C-M>/<Esc>/<C-[>等等(唯一的异常(exception)是 <BS>/<C-H> 。)这是一个已知的痛点,也是 vim_dev 和 #vim IRC channel 上各种讨论的主题。

有些人(最重要的是 Paul LeoNerd Evans)想要解决这个问题(即使是支持这个的终端中的控制台 Vim),并提出了各种建议,cp。 http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

但截至今天,还没有补丁或志愿者出现,尽管许多人表示希望在 future 的 Vim 8 主要版本中拥有它。

关于vim - 在 vim 中,输入被映射到一个 ctrl 键自定义键映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768450/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com