Comment commenter un bloc de code dans Emacs?


12

Dans Emacs, comment commenter un bloc de texte, c'est-à-dire comment mettre en retrait un bloc de texte vers la droite par des nespaces et mettre une séquence de caractères choisie, disons ##, au début de chaque ligne?

Original

foo
bar foobar
   foo bar

Voulu:

# foo
# bar foobar
#    foo bar
  • J'ai besoin d'une méthode qui n'interfère pas avec le mode CUA.
  • comment-dwin ne me permet pas de choisir une séquence de caractères arbitraire.

Réponses:


15

Une façon consiste à utiliser string-rectangle( C-x r t).

Marquez le bloc, puis appelez string-rectangleet donnez ##une chaîne à insérer.


3
Voici des étapes plus concrètes: 1) déplacer le curseur au début 2) C-M-@3) déplacer le curseur à la fin 4) C-x r t5) taper la séquence de caractères de préfixe, comme ## , appuyer surENT
qazwsx

est-il également possible de faire l'inverse?
mustISignUp

Vous pouvez sélectionner un rectangle et le supprimer avecC-x R K
Juancho

10

Selon le mode que vous utilisez (par exemple le mode CC, le mode Lisp), vous pouvez sélectionner la région, puis utiliser la commande comment-region(généralement liée à Cc Cc. Si tout est correctement défini, il doit utiliser les caractères de commentaire appropriés pour le type de fichier vous éditez.


9
En quoi est-ce différent de M-;?
qazwsx

4
@duperuser M-;est une commande de commentaire plus générale. Lorsqu'il n'y a pas de région active, il insère un commentaire (après toutes les instructions sur la ligne, et aligné avec la colonne de commentaire). Lorsqu'une région est sélectionnée, elle se comporte comme comment-region. Lorsqu'il n'y a pas de région active, comment-regionn'insère pas de commentaire.
jwernerny

Non seulement cela, mais comment-regioncontrairement à comment-dwim(qui est M-;par défaut) vous permet d'imbriquer et d' annuler les commentaires de bloc de manière flexible . Utilisez plain C-upour désemparer un niveau d'imbrication. (I se lient C-x C-;à comment-regionfait, je lier à. comment-region-linesDe misc-cmds.el.)
Drew

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.