在编辑.scm
文件时,如果Vim在我开始)
后立即自动放置结束括号(
,那将会很棒。我该怎么做?
答案 0 :(得分:35)
您可以根据自己的喜好映射左大括号:
:imap ( ()<left>
答案 1 :(得分:31)
尝试使用AutoClose插件。
答案 2 :(得分:13)
最简单的答案是包含地图。例如:
:inoremap ( ()<left>
问题是你需要为你想要自动关闭的每个符号添加一个条目('{','[','“'等)。此外,插件通常更聪明,提供诸如检测“关闭”字符而不是重复它。
上面的解决方案和大多数插件的问题在于,它们会打破撤消序列(gundo任何人?),如:help ins-special-special中所述。
以下是您所要求的插件列表(来自vimtips):
答案 3 :(得分:11)
我也需要一个,我已经尝试了一些插件:
AutoClose,http://www.vim.org/scripts/script.php?script_id=1849,有点激进。
简单对http://www.vim.org/scripts/script.php?script_id=2339依赖于Python。如果您使用的是Linux,这不是问题,但在Windows上,将Vim版本与您的Python解释器相匹配可能会遇到麻烦。
我的建议是ClosePairs,你可以找到http://www.vim.org/scripts/script.php?script_id=2373,这对我来说非常合适。它简单实用。
答案 4 :(得分:8)
关于这个主题有很多提示和插件。请查看vimtips网站中的relevant entry。
答案 5 :(得分:6)
我现在正在使用auto-pairs并且效果非常好。
插件破坏撤销/重做/重复的问题似乎在上面列出的一些插件中持续存在,但我不认为这是一个很大的问题(好吧,至少目前不在我这里)。 / p>
但有一点需要注意,我无法使用:helptags在撰写本文时使用此插件生成帮助文件。
答案 6 :(得分:3)
查看这个新插件:vim-autoclose by Townk。前面提到的AutoClose是积极的,有时表现得不合适。
答案 7 :(得分:1)
使用此功能时出现问题(通过imap或其中一个脚本)。您将无法使用.
命令重复完整编辑。
e.g. (foo) with . only gets you foo, without the brackets.
如果正常插入括号,它可以正常工作。
答案 8 :(得分:1)
答案 9 :(得分:1)
https://github.com/vim-scripts/Auto-Pairs
测试此插件是否为undu redo。 2013它只是有效。还有python-mode插件。
答案 10 :(得分:0)