Como comentar um bloco de código no Emacs?


13

No Emacs, como comentar um bloco de texto, ou seja, como recuar um bloco de texto à direita por ncaracteres de espaço em branco e colocar uma sequência de caracteres escolhida, digamos ##, no início de cada linha?

Original

foo
bar foobar
   foo bar

Desejado:

# foo
# bar foobar
#    foo bar
  • Preciso de um método que não interfira no modo CUA.
  • comment-dwin não me permite escolher uma sequência arbitrária de caracteres.

Respostas:


15

Uma maneira é usar string-rectangle( C-x r t).

Marque o bloco, depois chame string-rectanglee dê ##como string para inserir.


3
Estes são passos mais concretos: 1) movimento do cursor para começando 2) C-M-@de cursor 3) movimento para terminar 4) C-x r t5) sequência de caracteres de tipo prefixo, tais como ## , primaENT
qazwsx

também é possível fazer o inverso?
mustISignUp

Você pode selecionar um retângulo e excluí-lo com #C-x R K
Juancho

11

Dependendo do modo em execução (por exemplo, Modo CC, Modo Lisp), você pode selecionar a região e, em seguida, usar o comando comment-region(geralmente vinculado a Cc Cc. Se tudo estiver definido corretamente, use os caracteres de comentário apropriados para o tipo de arquivo você está editando.


9
Como isso é diferente M-;?
qazwsx

4
@duperuser M-;é um comando de comentário mais geral. Quando não há região ativa, ele insere um comentário (após qualquer declaração na linha e alinhado com a coluna de comentários). Quando uma região é selecionada, ela se comporta como comment-region. Quando não há região ativa, comment-regionnão insere um comentário.
jwernerny

Não apenas isso, mas comment-region, ao contrário comment-dwim(que é M-;por padrão), permite aninhar e desanimar com flexibilidade os comentários. Use simples C-upara desnaturar um nível de aninhamento. (I ligam-se C-x C-;a comment-regionNa verdade, se ligam a ele. comment-region-linesDe misc-cmds.el.)
Desenhou

6

Você deseja selecionar a região do código e, em seguida, M-;


A melhor e mais simples maneira de responder.
Manoel Vilela
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.