我正在尝试找到一个 emacs 命令,它将自动注释类似于以下的代码:
命令之前
if(condition){
do ...
}
命令执行后
if(condition){
do ...
} //Matches if(condition){
我知道,当括号之间的代码块太大而无法容纳在当前页面上时,当我插入右括号时,它会显示“匹配 if(条件)”部分。但是,我想选择一个代码块,然后在 emacs 中执行此命令,以便它将注释放在那里。如果有任何不清楚的地方,请告诉我,我很乐意说明。如果这个问题以前被问过,我也很抱歉,但是,我找了找,没找到。如果是,请指出那个问题。
提前致谢。
答案1
将其添加到文件底部~/.emacs
并重新启动 Emacs。将键绑定更改为您选择的任何键序列:
(defun my-add-end-block-comment ()
"Documentation goes here ..."
(interactive)
(let (start text)
(save-excursion
(backward-sexp 3)
(setq start (point))
(end-of-line)
(setq text (buffer-substring start (point))))
(insert (concat " // " text))))
(global-set-key (kbd "C-z /") 'my-add-end-block-comment)
然后将光标置于右括号 ( }
) 后并按C-z /。这也适用于while
和for
循环。
答案2
您可以使用 Cs(正向搜索)来搜索 if 块,选择区域并使用 M-;(注释-dwim)来注释该区域。
如有疑问,请使用 Mx apropos < RET > < your-search-term-here > < RET >。
答案3
您可以使用一些代码片段工具,例如YASnippet,其末尾将有另一个字段用于注释。它的行为与您想要的不同,但最终它会做或多或少相同的事情。