Pregunta

En GNU Emacs, no es una buena manera de cambiar el comando comentario-región en el modo C de

/* This is a comment which extends  */
/* over more than one line in C. */

a

/* This is a comment which extends
   over more than one line in C. */

? He tratado

(setq comment-multi-line t)

pero esto no ayuda. Hay una sección de en varias líneas de comentarios en el manual de Emacs , pero no menciona nada.

¿Fue útil?

Solución

Desde Emacs 21, ha habido un módulo denominado 'newcomment , que tiene diferentes estilos de comentarios (véase la variable 'comment-styles Este ajuste se acerca a lo que quiere:

(setq comment-style 'multi-line)

(Nota: probablemente debería hacer ese ajuste en 'c-mode-hook).

Sin embargo, ninguna de las opciones hacen los comentarios se parecen a lo que desea.

La forma más fácil Vi a conseguir lo que quieres es añadir este truco:

(defadvice comment-region-internal (before comment-region-internal-hack-ccs activate)
  "override 4th argument to be just spaces"
  (when (eq major-mode 'c-mode)  ; some condition here
    (let ((arg (ad-get-arg 4)))
      (when arg
        (ad-set-arg 4 (make-string (length arg) ?\ ))))))

Los valores actuales de comment-style siempre el prefijo líneas de comentario con "*" (si no el conjunto "/ *").

Si usted no tiene Emacs 21, supongo que podría simplemente descargar newcomment.el desde el repositorio. No sé si funciona tal cual en las versiones anteriores de Emacs, pero podría valer la pena un tiro, a pesar de la mejora de Emacs sería una solución mejor.

Mi truco rompe el 'uncomment-region. Una solución adecuada sería cambiar 'comment-padright. Eso sería tomar un poco más de investigación a fin de no romper otras cosas. El truco anterior sólo cambia el comportamiento en 'c-mode (ajustar la condición de su agrado).

Otros consejos

más cercano que pude encontrar con la incorporada en comentar apoyo es si se establece comment-style a multi-line, que producirá la siguiente:

/* This is a comment which extends
 * over more than one line in C. */

Si eso no es lo suficientemente cerca, echar un vistazo a newcomment.el y definir sus propias funciones que comentan en su caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top