【问题标题】:Vimrc ignoring my <cr>Vimrc 忽略了我的 <cr>
【发布时间】:2016-03-11 14:33:07
【问题描述】:

我正在尝试映射“-”键以向下移动一行

在我的 vimrc 中有

noremap - :m .+1 &lt;cr&gt;

但回车被忽略并在终端中显示为&lt;cr&gt;

阅读Vim ignores <cr> 后,我尝试添加一个额外的&lt;cr&gt;,但这只会重复两次字符。

所以在按下“-”键后,我必须物理按下&lt;enter&gt; 键才能运行命令。

我在 mac 和 linux 上都试过了,结果是一样的。

【问题讨论】:

  • 对我来说很好用 :)
  • 此处无法重现。这两个&lt;CR&gt; 无济于事,因为它与您的问题不同。你有没有尝试在没有插件没有 vimrc 配置的情况下启动 vim。然后在命令行中创建映射?
  • @dimeetel 你在使用终端 vim 吗?你能告诉我你使用的是什么操作系统、终端、shell吗?
  • @Kent 我试过vim -u NONE 然后:noremap - :m .+&lt;cr&gt; 仍然有同样的问题。 vim 底部的消息栏显示:m .+&lt;cr&gt; 我必须按回车
  • nnoremap - :m+&lt;CR&gt;

标签: vim


【解决方案1】:

如果我set nocp,它会起作用。 我没有遇到任何必须设置此设置才能使&lt;cr&gt; 工作的说明。

所以这就是问题所在。 如果检测到 vimrc,则设置 set nocp

如果您正在测试自定义 vimrc 并使用 vim -u mycustomvimrc 启动 vim,那么尽管它正在加载 vimrc 文件,但它不会 set nocp 并保持向后兼容性。在这种情况下,您需要明确地set nocp

感谢所有解决此问题的建议。

【讨论】:

  • 或在激活vim时使用-N选项。
  • @yosh :thubmbsup: 切换是个好主意。我没有意识到 vims 的行为取决于 vimrc 文件的名称,而不是它是否存在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 2017-12-09
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
相关资源
最近更新 更多