2009-06-04 35 views
9
código

Mi SAS requiere este tipo de comentario:insertar comentarios automáticamente en Vim

/* 
* This is the comment 
*/ 

he sido capaz de escribir este comando (De la Vim Comment Howto):

:set comments=sl:/*,mb:*,elx:*/ 

El problema es que una vez que escribo este comando set no sé cómo obtener realmente esos comentarios para agregar al código. Las instrucciones dicen que ingrese /\*<enter>, pero en el modo de inserción, esto solo actúa normalmente, y en el modo de comando, esto hace un buscar en *.

¿Cómo hago para que esto funcione, y hay formas mejores que esto para insertar automáticamente marcas de comentarios?

Respuesta

19

Por omisión, Vim no lo hace inserte automáticamente las nuevas líneas o los marcadores finales para usted. En su lugar, hace que sea fácil de insertar los a medida que escribe, siempre y cuando 'formatoptions' contiene r:

:set formatoptions+=r 

Después de esto, empiece a escribir su comentario con normalidad: "/*<Enter>" (en el modo de inserción). Después de presionar la tecla Intro, el líder del comentario (un asterisco y un espacio) debe aparecer automáticamente en la línea siguiente, listo para que empiece a escribir. Cuando finalice su comentario, termínelo con "<Enter>/"; el <Enter> se mueve a la siguiente línea, y la barra se convierte en el segundo carácter del marcador final. Sí, eliminará el espacio para usted, pero solo después de presionar Enter.

Para facilitar la edición de este tipo de comentario, también desea agregar los caracteres c y/o o al formatoptions. El primero permite que los comentarios se envuelvan automáticamente, y el segundo inserta el líder de comentarios cuando crea una nueva línea dentro del comentario usando comandos de modo normal.

+0

Parece que he roto mi vim - presionar ' /' al final de mis comentarios solo da como resultado una barra diagonal comentada y más comentarios en la línea siguiente - es decir, vim no reconoce la '* /' como '* /'. –

+0

@Daniel: Ese comportamiento se desencadena por el carácter 'x' en la línea': set comments' anterior. Consulte ': help 'format-comments'' para más detalles. Para ver dónde se está estableciendo el valor malo de '' comments'', use ': verbose set comments?'. – eswald

2

¿Qué idioma?

En C Vim autoloads este ajuste para comentarios:

" Set 'comments' to format dashed lists in comments. 
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// 

que funciona como era de esperar. ¿Quizás necesites agregar eso al ftplugin para el idioma/extensión que estás usando?

+1

OP menciones código SAS – webwesen

1

que tienen esta abreviatura en mi .vimrc:

" /// -> insert javadoc comment 
iab <buffer> /// /**^M *^M*/^[0A 

donde^[0A es Ctrl-V + hacia arriba.
Tipo /// en el modo de inserción para obtener un comentario como

/** 
* 
*/ 
1

this script de Vim podría resolver su problema - sólo hay que poner en "vimXY/sintaxis" carpeta

1

También recuerde verificar su estilo de comentarios (:set comments?) si está usando múltiples tipos de archivos. PHP, por ejemplo, a veces utilizará los comentarios de estilo HTML <!-- ... --> si hay HTML incorporado, por lo tanto, escriba /* y luego presione Ingrese parecerá que no tiene ningún efecto.

Tengo el siguiente en mi archivo .vimrc para asegurarse de que los comentarios de PHP se utilizan de forma predeterminada

au Bufenter *.php set comments=sl:/*,mb:*,elx:*/ 

código HTML todavía se comentó correctamente, sin embargo, los espacios dentro de código HTML podrían utilizar la convención comentando PHP (si usa complementos como tComment) y no tendrá comentarios HTML de múltiples líneas, que no creo que sean posibles de todos modos.

Cuestiones relacionadas