2009-06-30 6 views
6

No estoy seguro de que esto sea posible, pero estoy interesado en que esto suceda.
Idealmente, me gustaría asignar esta función a SHIFT +CTRL + .¿Tiene Vim una función de comentario automático basada en la sintaxis del archivo?

Estoy buscando una forma de que Vim escriba un comentario (una sola línea) que corresponde a la sintaxis del archivo que estoy editando. Si hay varios estilos de comentarios de una sola línea, Vim podría elegir uno automáticamente o darme la opción. Si el comentario de una sola línea tiene dos partes (por ejemplo /* y */), a continuación, pulsando SHIFT + CTRL + primera vez se iniciará el comentario, y la segunda vez se cerrará el comentario.

Ejemplos:

  • Python: #
  • JavaScript: //
  • C, C++: /* con */ o //

Sé que hay secuencias de comandos que insertar comentarios para ti, pero no he visto ninguno que haga esto bas ed en la sintaxis del archivo.

Respuesta

5

tipo de! No creo que vim lo haga de manera inmediata, pero puede instalar complementos que hagan comentarios bastante inteligentes (usando teclas de movimiento, resaltado de líneas visuales, etc.) que sean específicos del tipo de archivo que se está editando. Puede obtener estos complementos fuera de vim.org, y debería poder hacer sus propias asignaciones de teclas en su archivo .vimrc si no le gustan los que vienen con.

tComment está muy bien considerado, y me ha funcionado.

He oído que EnhCommentify podría ser mejor, pero yo no lo he usado.

+0

Gracias! Ambos se ven muy bien. Voy a probarlos en algún momento de hoy. –

2

Ver: this script que proporciona una función para comentó un área resaltada en el modo visual.

que desea iniciar un comentario en el modo de inserción para que su función se vería más como:

fun CommentLines() 
    exe ":[email protected]^@".g:Comment."@g" 
endfun 
-1

No es exactamente lo que estás buscando, pero eficiente, y supongo que sabes qué comentario usar. (todo esto en modo comando) Coloque el cursor en la primera línea que desea comentar.A continuación, willl definir un marcador llamado (nombres válidos son az, carácter individual) escribiendo

ma 

poner el cursor a la última línea, a continuación, establecer un marcador llamado b escribiendo

mb 

Entonces comentar todo el bloque (mediante la búsqueda de una nueva línea e insertar el carácter de comentario (nótese el uso de "#" como delimitador de búsqueda porque de lo contrario wee tienen que escapar de la "/")

:'a,'bs#^#//# 

o para Python:

:'a,'bs/^/#/ 

descomentar:

:'a,'bs#^//## 

Al hacer comentarios de la línea, no importa si tenemos otras observaciones que ya están en el archivo, que se conservará.

Cuestiones relacionadas