如何在vim中插入两个花括号时禁用自动换行?

4
每当我键入两个花括号({{),我会得到像这样的东西:
{
|
}

|用于描述光标的位置。

这种行为非常令人烦恼,例如在使用不同的模板引擎时,这个语法被保留用于变量。

我该如何找出这种行为的来源?以及如何关闭它?

谢谢。


除了你输入的 {{ 以外,还有什么其他的东西可能会触发映射吗(例如 <Enter>)? - sehe
2个回答

5

要查找它来自哪里:

:verbose imap {{
:verbose map {{

请查找与“i”(插入模式映射)相关的映射,并查看其定义在哪里。

如果不是这个问题,可能是一个缩写:

:verbose abbrev

更新了我的问题,并附上了不同:verbose调用的输出。没有引起注意的地方。(除了我可能应该删除那个可恶的rails bundle ;-)) - balu
我猜我需要转义那些大括号。如果没有斜杠,就会得到“找不到映射”的错误。 - balu
@balu 确保你加载了相同的文件类型以检查地图。 - freitass
有趣的是,这似乎发生在所有文件类型中。很奇怪。感谢您的帮助,我会随时向您更新解决方案。 - balu
1
@sehe,我之前也不知道这个,但是:map命令无法显示imaps。你可以自己试一下,你会发现没有以i开头的行。Vim帮助文档map.txt在第一章中,更确切地说是在第112行介绍了:{x}map命令来列出可用的映射。请注意,:map本身只设置为显示nvo映射。另外需要指出的是,v模式实际上是一个双重映射模式。映射到v意味着映射到xs(分别是可视和选择模式),这就是为什么一些xs映射出现在:map列表中的原因。 - sidyll
显示剩余9条评论

4
如果您和我使用相同的插件AutoClose,那么您可以输入<leader>a来启用或关闭自动闭合功能(对于我来说是,a,具体取决于您的<leader>键)。

是的,autoclose 插件确实是问题所在。但我更感兴趣的是找出问题的原因。 ;) - balu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接