我如何让Vim自动放置括号?

在编辑.scm文件的时候,如果Vim自动放置结束括号,那就太好了) 。我该怎么做?

您可以根据自己的喜好来映射左大括号:

 :imap ( ()<left> 

尝试使用AutoClose插件。

最简单的答案是包括一张地图。 例如。:

 :inoremap ( ()<left> 

问题是你需要为每一个你想自动closures的符号添加一个条目('{','[','''等等)。另外,插件通常更聪明,提供诸如检测“closures”字符,而不是重复它。

上面的解决scheme和大多数插件的问题是,他们往往打破撤消序列( gundo任何人?),如解释在:帮助ins特殊特殊 。

这里是你所问的插件列表(来自vimtips ):

  • 由以色列Chauca Fuentes划定(可configuration,并不打破撤消/重做/重复,但 – 打破iabbr)也在GitHub
  • AutoClose by Karl Guertin(自动closures特定的硬编码字符,但不会中断撤销/重做/重复)
  • AutoClose Thiago Alves(可configuration,但打破撤消/重做/重复)
  • 自动配对的苗族江对(可configuration,但打破撤消/重做/重复)
  • closures由Edoardo Vacchi(可configuration,但打破撤消/重做/重复)
  • 智能input由假名Natsuno(可configuration,但打破撤消/重做/重复)

除了vimtips之外, 网上还有另外一个很好的解释 。

我也需要一个,我已经尝试了一些插件:

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解释器可能是一个麻烦。

我的build议是ClosePairs,你可以在http://www.vim.org/scripts/script.php?script_id=2373find,这对我来说是完美的。; 这是简单而有用的。

这个主题有很多提示和插件。 看看vimtips网站的相关条目 。

我目前正在使用自动配对 ,它工作得非常好。

插件破解撤销/重做/重复的问题似乎在上面列出的一些插件中仍然存在,但我不认为它是一个问题(至less不是我目前)。

只是一个警告,但我不能使用:帮助标签生成与此插件的帮助文件在撰写本文时。

看看这个新的插件: 由Townk的vim-autoclose 。 前面提到的AutoClose是有侵略性的,有时会以不希望的方式行事。

使用这个(通过imap或其中一个脚本)有一个问题。 您将无法使用重复完整的编辑. 命令。

eg (foo) with . only gets you foo, without the brackets.

它正常工作,如果你正常插入括号,作为两个字符。

您可以尝试下载以下插件AutoClose:插入匹配的括号,paren,大括号或引号

https://github.com/vim-scripts/Auto-Pairs

testing了这个插件的重做。 2013这只是工作。 还用python模式插件。

有一个新的cohama插件:

lexima.vim ( github )

(尚未在vim.org上)

这个插件支持. 命令!
Afaik,这是唯一支持这个的插件。

此外撤消/重做序列的作品。