您的位置:首页 > 其它

Emacs/ESS注释编辑技巧

2014-04-23 16:22 141 查看
注释是代码文件必不可少的一部分。为提高注释编辑效率,需要花一点点时间熟悉Emacs/ESS的相关内容并做一些方便设置。

1 注释/取消注释(Emacs)

命令函数动作
M-;comment-dwim在当前行插入或对齐注释;如果有激活选取,其作用则是注释或取消注释
C-u M-;comment-kill删除当前行的注释内容
C-x ;comment-set-column设置注释列
M-jcomment-multi-line如果正在输入注释,其作用是插入新行并将其注释和对齐;如果不是则仅仅插入新行
C-M-j同上
M-x comment-region(无需解释)
C-c C-c被ESS劫持为运行选区或当前行

2 相关命令的说明

一般情况下,注释的对齐列由comment-column变量定义,但不同的编辑模式可能会有fancy-comment。在ESS中,由于ess-fancy-comments的作用会有以下表现:

以 ### 开始的注释行对齐到第1列(前置空白符全部删除)
以 ## 开始(前面的情况除外)的注释当成代码进行缩进处理(和代码对齐)
以 # 开始(前面的情况除外)的注释缩进40列
行首以 #! 开始的注释行(#前没有空白符)保留在原位置

可以通过修改ess-indent-line函数的代码进行自定义。

M-;命令使用时插入的注释符由comment-start变量确定,如果要改变注释风格,在.emacs文件中修改,如:

(add-hook 'ess-mode-hook (lambda () (setq comment-start "##-")))


M-;注释选定代码行时只考虑以注释符开头的代码行,注释符不在首列则当成代码行处理。
comment-padding变量设定注释符和注释内容之间的分隔符号,默认为一个空格。当然也可以修改,方法同上。
M-j命令的表现方式由comment-multi-line变量确定
comment-indent-function

3 自定义代码分隔线的快捷输入

提高代码可读性的方法之一是多使用空行。但空行的作用不是很醒目,最好能使用类似于分隔线之类的东西。使用Emacs的自定义函数功能很容易实现这个功能:

(defun insert-break-line()
"Insert a break line at cursor point."
(interactive)
(insert "## =======================================================")
(eval (newline-and-indent))
(insert "## ")
(define-key ess-mode-map (kbd "C-M-j") 'insert-break-line)


Author: ZGUANG@LZU

Created: 2014-04-07 一 19:12

Emacs 24.3.1 (Org mode 8.2.1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: