Question

Dans GNU Emacs, est-il un bon moyen de changer la commande commentaire région en mode C de

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

à

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

? J'ai essayé

(setq comment-multi-line t)

mais cela ne suffit pas. Il y a une , mais il ne mentionne rien.

Était-ce utile?

La solution

Depuis Emacs 21, il y a eu un module nommé 'newcomment , qui a différents styles de commentaires (voir la 'comment-styles variable Ce paramètre se rapproche de ce que vous voulez:

(setq comment-style 'multi-line)

(Remarque: vous devriez probablement faire ce paramètre dans 'c-mode-hook).

Cependant, aucun des paramètres faire les commentaires ressemblent à ce que vous voulez.

La meilleure façon que je voyais pour obtenir ce que vous voulez est d'ajouter ce hack:

(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) ?\ ))))))

Les paramètres actuels de comment-style préfixe toujours des lignes de commentaire avec « * » (sinon la totalité « / * »).

Si vous n'avez pas Emacs 21, je suppose que vous pouvez simplement télécharger newcomment.el à partir du référentiel. Je ne sais pas si cela fonctionne en l'état dans les versions antérieures d'Emacs, mais il pourrait être vaut le coup, bien que la mise à niveau Emacs serait une meilleure solution.

Mon bidouille brise le 'uncomment-region. Une solution appropriée serait de changer 'comment-padright. Cela prendrait un peu plus de recherche afin de ne pas briser d'autres choses. Le hack ci-dessus ne change que le comportement dans 'c-mode (ajuster la condition à votre goût).

Autres conseils

la plus approchante avec le soutien des commentaires est intégré si vous définissez comment-style à multi-line, qui produira ceci:

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

Si cela ne suffit pas à proximité, jetez un oeil à newcomment.el et définir vos propres fonctions commentent le cas échéant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top