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.
qazwsx
la source

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.

Juancho
la source
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.

jwernerny
la source
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
6

Vous souhaitez sélectionner la région du code, puis M-;

olleicua
la source
La meilleure et simple réponse emacs.
Manoel Vilela