Emacs和ESS的使用技巧。
Posted lijianming180
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Emacs和ESS的使用技巧。相关的知识,希望对你有一定的参考价值。
1. 安装ESS
有两种方法可以安装,一种是直接使用系统自带的包安装系统,比如yum
:
# yum install emacs-ess
但是,有时可能不是ESS最新版本。所以,推荐第二种方法,使用Emacs自带的包系统,方便、更新及时,设置方法参考,安装ess
包。
2. 使用ESS
-
进入GNU Emacs界面之后,输入
M-X R
即可进入R界面。在这个过程中,会询问是否在当前运行目录下运行R,可以选择在不同目录下运行。M-x R
:
- 启动R。R运行的buffer因为是在Emacs编辑器下运行,所以称为inferior(Emacs文档中称之为iESS buffer)。
C-u M-x R RET --no-save RET
:启动R并且不保存。M-x ess-transcript-clean-region
:清理R界面。C-c C-z
:强制停止运行的R进程。
C-c C-x
:
- 代替
ls()
函数。 C-c C-s
:代替search()
函数。C-c C-d
:修改已经建立的对象,非常实用。
C-c C-n
:
- 把当前行送到R。
C-c C-c
:把当前段送到R。C-c C-b
:把当前整个文件送到R。
C-c tab
:自动补全R代码。C-x o
:滚动屏幕。C--
:
- 自动给出R语言中特有的
<-
。 C---
:连按两下–,则可以显示下划线。
C-c C-o C-o
:
- 在函数头按下会激活ESS对R代码的注释功能。
M-x customize-group RET ess RET
:配置默认模板,如果需要插入空行,回车没用,猛戳空格。C-c C-o C-c
:将代码注释为roxygen的##'
开头格式,特别是注释example的时候很好用。C-c C-o p
:光标跳转到注释段落开头。
大专栏 Emacs和ESS的使用技巧。 C-c C-o n
:光标跳转到注释所在函数段落结尾。M-q
:整理roxygen注释,将多行注释压缩整理。
3. 高级设置
结合Emacs的自动补全、补全括号、颜色显示等功能,设置更加强大的ESS编辑环境。将附加环境设置添加到Emacs设置文件,比如~/.emacs
。所需要的包使用M-x list-package
安装。
- 自动补全:
auto-complete
包
- 代码折叠:
hs-minor-mode
(系统自带) - 括号补全:
smartparens
- 括号颜色:
rainbow-delimiters
- 颜色显示:
rainbow-mode
附加内容
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; auto-completion
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'auto-complete)
(require 'auto-complete-config)
(ac-config-default)
;;;;;;;;;;;;;;;;;;;;;;;
; ESS set
;;;;;;;;;;;;;;;;;;;;;;;
(require 'ess-site)
(setq ess-use-auto-complete t)
;;;;;;;;;;;;;;;;;;;;;;;;
;open hs-mode
;;;;;;;;;;;;;;;;;;;;;;;
(add-hook 'ess-mode-hook 'hs-minor-mode)
;;;;;;;;;;;;;;;;;;;;;
;smartparens
;;;;;;;;;;;;;;;;;;;;;
(require 'smartparens-config)
(show-smartparens-global-mode t)
(smartparens-global-mode t)
;;;;;;;;;;;;;;;;;;;;;
;rainbow mode
;;;;;;;;;;;;;;;;;;;;;
(require 'rainbow-mode)
(dolist (hook '(ess-mode-hook inferior-ess-mode-hook))
(add-hook hook 'rainbow-turn-on))
;;;;;;;;;;;;;;
;rainbow-delimiters
;;;;;;;;;;;;;;
(require 'rainbow-delimiters)
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)
(add-hook 'ess-mode-hook 'rainbow-delimiters-mode)
以上是关于Emacs和ESS的使用技巧。的主要内容,如果未能解决你的问题,请参考以下文章
是否有可能在 Emacs ESS 中获得类似于 Rstudio 中可用的 R 代码完成?