如何将 ctrl x ctrl o 映射到终端 vim 中的 ctrl space?
在网上搜索了一下后,我似乎无法将 CtrlSpace 映射到任何/很多东西。今天有办法做到吗,我发现的通常是2岁的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在网上搜索了一下后,我似乎无法将 CtrlSpace 映射到任何/很多东西。今天有办法做到吗,我发现的通常是2岁的。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
我遇到了同样的问题,简短的回答是可以,而且不仅仅是在 GUI 版本中。在
.vimrc
上添加这个就足够了:I've run into the same issue, the short answer is yes you can, and not only in the gui version. Adding this on you
.vimrc
is enough:问题似乎是 Terminal.app 没有正确解释
并且 Vim 将其理解为
这是一个内置的-in 映射(:help CTRL-@
)。也许你可以在 .vimrc 中使用类似以下内容:
这似乎可以工作,但我不喜欢这样重写内置函数的想法。
相反,您应该尝试使用
(:helpleader
),它为您提供了定义自己的自定义映射的巨大可能性,并且(取决于mapleader< /code> 您选择的)不会干扰操作系统/应用程序特定的快捷方式/限制,因此更便携。
在我的 .vimrc 中,
我只需点击
,,
即可完成方法名称。The problem seems to be that Terminal.app doesn't interpret
<C-Space>
correctly and Vim understands it as<C-@>
which is a built-in mapping (:help CTRL-@
).Maybe you could go with something like the following in your .vimrc:
which seems to work, here, but I don't like the idea of overriding built-ins like that.
Instead you should try with
<Leader>
(:help leader
), it gives you huge possibilities for defining your own custom mappings and (depending on themapleader
you choose) won't interfere with OS/app specific shortcuts/limitations and hence be more portable.With this in my .vimrc:
I just hit
,,
to complete method names.吹毛求疵的人破坏了巴布洛解决方案。解决方案的关键在于重新映射。因此,当您禁用重新映射时,它就无法工作。
如果您确实想添加一个
noremap
,它看起来就是这样:什么不起作用:
inoremap;
'因为
部分本身不会被重新映射。The nitpicker broke pablox solution. The crux of the solution was just about remapping. So when you disable remapping, it cannot work.
If you really want to throw in a
noremap
, this is what it looks like:What will not work:
inoremap <C-@> <C-Space>
'cause the<C-Space>
part will not be remapped itself.:inoremap;
?:inoremap <c-space> <c-x><c-o>
?omnifunc
set?将以下代码添加到
~/.vimrc
中:来源:https://coderwall.com/ p/cl6cpq
Add the following code to
~/.vimrc
:Source: https://coderwall.com/p/cl6cpq
为了适应 Windows 和 Linux,我将其应用于
~/.vimrc
To accommodate both Windows and Linux I applied this to
~/.vimrc
我在 Mac OS 上的所有模式下使用这组映射获得了更好的结果。尚未测试 Windows 或 Linux。
我不明白例外的答案应该如何在终端模式下工作。
I had better results with this set of mappings across all modes on Mac OS. Have not tested Windows or Linux.
I don't understand how the excepted answer is supposed to work in terminal mode.
就像其他人所说,使用
inoremap
与您的术语的正确键(如使用 i_Ctrl_v)应该可以工作。我将添加插入模式映射问题的另一个可能原因:粘贴模式。正如 文档所述:这看起来似乎无关紧要,但这件事让我在尝试在 Vim 8.2 中使用类似的
inoremap
绑定时遇到了麻烦。我在 .vimrc 中设置了粘贴,并且必须用:finish
语句将其切碎(如 vim faq)来隔离导致问题的行。Like the others said, using
inoremap
with the correct key for your term (as discovered using i_Ctrl_v) should work. I will add to this another possible cause for problems with insert mode mappings: paste mode. As the docs state:This may seem irrelevant, but this very thing tripped me up trying to get a similar
inoremap
binding to work in Vim 8.2. I hadset paste
in my .vimrc, and had to chop it up with:finish
statements (as [recommended in the vim faq) to isolate the line causing the problem.