如何在 Emacs 中注释一段代码?

qaz*_*wsx 14 emacs editing

在 Emacs 中,如何注释文本块,即如何将文本块向右缩进n空格字符并##在每行开头放置一个选定的字符序列?

原来的

foo
bar foobar
   foo bar
Run Code Online (Sandbox Code Playgroud)

期望:

# foo
# bar foobar
#    foo bar
Run Code Online (Sandbox Code Playgroud)
  • 我需要一种不干扰 CUA 模式的方法。
  • comment-dwin 不允许我选择任意字符序列。

Jua*_*cho 15

一种方法是使用string-rectangle( C-x r t)。

标记块,然后调用string-rectangle并给出##作为要插入的字符串。

  • 下面是更具体的步骤: 1) 将光标移到开头 2) `CM-@` 3) 将光标移到结尾 4) `Cx rt` 5) 输入前缀字符序列,例如`##`,按`ENT` (3认同)

jwe*_*rny 11

根据您运行的模式(例如 CC 模式、Lisp 模式),您可以选择区域,然后使用命令comment-region(通常绑定到 Cc Cc。如果一切设置正确,则应为文件类型使用适当的注释字符你正在编辑。

  • 这与`M-;`有什么不同? (9认同)
  • @duperuser `M-;` 是一个更通用的注释命令。当没有活动区域时,它插入一个注释(在任何语句之后就行,并与注释列对齐)。当一个区域被选中时,它的行为类似于`comment-region`。当没有活动区域时,`comment-region` 不会插入评论。 (4认同)

小智 8

您要选择代码区域,然后 M-;

  • 最好和最简单的 emacs 方式答案。 (3认同)