youcompleteme you plugin for code vim autocomplete

you - ¿Cómo hago que Vim ponga automáticamente las llaves de cierre?



you autocomplete (11)

Actualmente estoy usando auto-pairs y funciona bastante bien.

Los problemas del complemento deshacer / rehacer / repetir parecen persistir entre algunos de los complementos enumerados anteriormente, pero no creo que sea un problema (bueno, al menos no para mí en este momento).

Solo una advertencia, no pude usar: etiquetas de ayuda para generar el archivo de ayuda con este complemento como en el momento de escribir esto.

Mientras .scm archivos .scm , sería genial si Vim pusiera automáticamente el corsé final ) tan pronto como empiece ( ¿Cómo hago esto?


Hay muchos consejos y complementos sobre el tema. Eche un vistazo a la vimtips en el sitio de vimtips.


Hay un nuevo complemento por cohama:

lexima.vim ( github )

(aún no está en vim.org)

Este complemento es compatible con . ¡mando!
Afaik, este es el único complemento que soporta esto.

También la secuencia de deshacer / rehacer funciona.


Hay un problema con el uso de esto (a través de imap o uno de los scripts). No podrá repetir la edición completa utilizando el . mando.

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

Funciona bien si inserta los corchetes normalmente, como dos caracteres.



La respuesta más simple es incluir un mapa. P.ej.:

:inoremap ( ()<left>

El problema es que necesitarás agregar una entrada por cada símbolo que quieras cerrar automáticamente (''{'', ''['', ''"'', etc.). Además, los complementos son normalmente más inteligentes, proporcionando cosas como detectar el" cierre " personaje y no repetirlo.

El problema con la solución anterior y la mayoría de los complementos es que tienden a romper la secuencia de deshacer ( gundo anyone?), Como se explica en : help ins-special-special .

Aquí hay una lista de complementos que hacen lo que preguntas (desde vimtips ):

  • delimitMate por Israel Chauca Fuentes (configurable, y no rompe deshacer / rehacer / repetir, pero - romper iabbr) también en GitHub
  • AutoClose de Karl Guertin (cierra automáticamente caracteres específicos codificados, pero no rompe deshacer / rehacer / repetir)
  • AutoClose de Thiago Alves (configurable, pero rompe deshacer / rehacer / repetir)
  • auto-pairs Auto Pairs de Miao Jiang (configurable, pero rompe deshacer / rehacer / repetir)
  • ClosePairs by Edoardo Vacchi (configurable, pero rompe deshacer / rehacer / repetir)
  • smartinput por Kana Natsuno (configurable, pero rompe deshacer / rehacer / repetir)

Además de vimtips , hay otra buena explicación del problema en la web.



Puede asignar la llave de apertura a su gusto:

:imap ( ()<left>


Puede intentar descargar el siguiente complemento AutoClose


Yo también necesitaba uno, y ya probé algunos de los complementos:

AutoClose, AutoClose , es un poco agresivo.

pares simples, http://www.vim.org/scripts/script.php?script_id=2339 , depende de Python. Si está en Linux, no es un problema, pero en Windows puede ser un problema emparejar la versión de Vim con el intérprete de Python que tiene.

Mi consejo sería ClosePairs, que puedes encontrar en ClosePairs que ha funcionado perfectamente para mí. Es simple y útil.