Vim:如何在不影响 Return 按键的情况下映射 Ctrl-M?

标签 vim

我想在插入模式下将 Ctrl-M 映射到 Ctrl-N。如果我只是做imap <C-M> <C-N>然后 Ctrl-M 确实开始像 Ctrl-N 一样运行,但是然后按 Enter 也一样。我想按 Return 继续插入新行,同时让 Ctrl-M 插入下一个关键字完成匹配,就像 Ctrl-N 一样。那可能吗?

编辑:
我设法修改了 Vim 的源代码以无条件地将 Ctrl-M 视为 Ctrl-N 而不会影响 Return。在这样做的同时,我也意识到,如果不更改源代码,确实没有办法做到这一点,因为实际按下的内容(Enter 或 Ctrl-M)之间的区别似乎在按键处理过程中过早地消失了。它发生在依赖于平台的 UI 模块中,按键处理中的可移植代码部分已经不知道是否实际按下了 Ctrl-M 或 Return 导致键码 13。

我在 FreeBSD (GTK) 和 Windows 的 GUI 模块中进行了修改,因为这些是我最常使用 gvim 的平台。

附言如果有人想实现同样的目标,请随时给我留言。

附言对于所有提供此问题答案的人:非常感谢!你的评论对我帮助很大。

最佳答案

:help key-notation明确指出 CTRL-M 等同于 Enter。这是因为回车是 ASCII 字符号。 13 和 M 是字母表中的第 13 个字母。

关于Vim:如何在不影响 Return 按键的情况下映射 Ctrl-M?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3935970/

相关文章:

python - vim 中用于缩进 python 文件的选项卡

Vim match 和 matchadd 似乎工作不一样

regex - 试图删除文档的第一列。

c++ - 如何让 YouCompleteMe 突出显示错误和警告?

Vim mksession 将变量作为文字

vim - 如何设置vim高亮ColorColumn指南透明度?

vim - 如何在 vim 中设置 UI 语言?

vim - 是否可以让 vim 在我的光标当前所在的括号范围内加下划线?

python - [1]+ Stopped vim foo.py 错误,如何解决?

Bash in vi-mode : browsing shell history with cursor up/down, 光标位置不在末尾?