36 votes

Comment faire en sorte que Vim mette automatiquement des accolades de fin?

Lors de la modification des fichiers .scm , il serait intéressant que Vim mette automatiquement l’accolade finale ) dès que je lance ( . Comment puis-je faire cela?

36voto

soulmerge Points 37314

Vous pouvez mapper l'accessoire d'ouverture à votre convenance:

 :imap ( ()<left>
 

31voto

Mykola Golubyev Points 21210

Essayez d'utiliser le plugin AutoClose .

13voto

Rafael Barbosa Points 189

La réponse la plus simple est d'inclure une carte. Ex.:

:inoremap ( ()<left>

Le problème est que vous devez ajouter une entrée pour chaque symbole que vous souhaitez automatiquement fermé ('{','[','"',etc.). En outre, les plugins sont généralement plus intelligents, en fournissant des choses comme la détection de la "clôture" de caractère et de ne pas le répéter.

Le problème avec la solution ci-dessus et la plupart des plugins, c'est qu'ils ont tendance à casser l'annulation de la séquence (gundo quelqu'un?), comme l'explique:aider les ins-spécial-spécial.

Voici une liste de plugins qui font ce que vous demandez (à partir de vimtips):

  • delimitMate par Israël Chauca Fuentes (configurable, et ne se cassent pas annuler/refaire/répéter, mais à rupture de iabbr) également sur GitHub
  • Fermeture par Karl Guertin (auto-ferme spécifique codée en dur de caractères, mais ne rompt pas annuler/refaire/répéter)
  • Fermeture par Thiago Alves (configurable, mais les sauts de undo/redo/répéter)
  • auto-paires Auto Paires par Miao Jiang (configurable, mais les sauts de undo/redo/répéter)
  • ClosePairs par Edoardo Vacchi (configurable, mais les sauts de undo/redo/répéter)
  • smartinput par Kana Natsuno (configurable, mais les sauts de undo/redo/répéter)

En outre vimtips, il y a une autre belle explication de la question sur le web.

11voto

Caglar Toklu Points 506

J'en avais besoin, et que j'ai déjà essayé quelques-uns des plugins:

AutoClose, http://www.vim.org/scripts/script.php?script_id=1849, est un peu agressif.

de simples paires, http://www.vim.org/scripts/script.php?script_id=2339dépend de Python. Si vous êtes sur Linux, il n'est pas un problème, mais sous Windows il peut être un problème pour correspondre à la Vim version de l'interpréteur de Python que vous avez.

Mon conseil serait de ClosePairs, que vous pouvez trouver à http://www.vim.org/scripts/script.php?script_id=2373 qui a été fonctionne parfaitement pour moi. Il est simple et utile.

8voto

Luc Hermitte Points 14171

Il existe de nombreux conseils et plugins sur le sujet. Jetez un coup d'œil à l' entrée correspondante sur le site vimtips.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X