¿Cómo comentar un bloque de código en Emacs?

12

En Emacs, la forma de comentar un bloque de texto, es decir, cómo sangrar un bloque de texto hacia la derecha por nespacios en blanco y poner una secuencia de caracteres elegido, por ejemplo ##, al comienzo de cada línea?

Original

foo
bar foobar
   foo bar

Deseado:

# foo
# bar foobar
#    foo bar
  • Necesito un método que no interfiera con el modo CUA.
  • comment-dwin no me permite elegir una secuencia de caracteres arbitraria.
qazwsx
fuente

Respuestas:

14

Una forma es usar string-rectangle( C-x r t).

Marque el bloque, luego llame string-rectangley dele ##como una cadena para insertar.

Juancho
fuente
3
Aquí hay más pasos concretos: 1) mover el cursor al comienzo 2) C-M-@3) mover el cursor al final 4) C-x r t5) escribir la secuencia de caracteres del prefijo, como ## , presioneENT
qazwsx
¿También es posible hacer lo inverso?
mustISignUp
Puede seleccionar un rectángulo y eliminarlo conC-x R K
Juancho
11

Dependiendo de qué modo esté ejecutando (por ejemplo, Modo CC, Modo Lisp), puede seleccionar la región y luego usar el comando comment-region(generalmente vinculado a Cc Cc. Si todo está configurado correctamente, debe usar los caracteres de comentario apropiados para el tipo de archivo estás editando

jwernerny
fuente
77
¿Cómo es esto diferente de M-;?
qazwsx
44
@duperuser M-;es un comando de comentarios más general. Cuando no hay una región activa, inserta un comentario (después de cualquier declaración en la línea y se alinea con la columna de comentarios). Cuando se selecciona una región, se comporta como comment-region. Cuando no hay una región activa, comment-regionno inserta un comentario.
jwernerny
No solo eso, sino que comment-region, a diferencia comment-dwim(que es el M-;predeterminado), le permite anidar de forma flexible y anular los comentarios de bloque. Use simple C-upara anular un nivel de anidamiento. (Ato C-x C-;a comment-region. En realidad, yo ato a comment-region-linespartir misc-cmds.el.)
dibujó
3

Desea seleccionar la región de código y luego M-;

olleicua
fuente
La mejor y más simple respuesta de emacs.
Manoel Vilela