spacemacs/layers/+lang/ess/README.org

165 lines
8.5 KiB
Org Mode
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#+TITLE: ESS (R) layer
#+TAGS: dsl|layer|programming
[[file:img/r.jpg]]
* Table of Contents :TOC_5_gh:noexport:
- [[#description][Description]]
- [[#features][Features:]]
- [[#install][Install]]
- [[#options][Options]]
- [[#key-bindings][Key bindings]]
- [[#inferior-repl-process][Inferior REPL process]]
- [[#help][Help]]
- [[#more-interaction-with-the-repl][More interaction with the REPL]]
- [[#r-devtools][R devtools]]
- [[#debugging][Debugging]]
- [[#editing-markdown][Editing Markdown]]
* Description
This layer adds support for statistical programming languages to Spacemacs.
** Features:
- Syntax highlighting
- Auto-completion
- Syntax-checking via [[https://github.com/jimhester/lintr][lintr]]
- Additional data viewer for R via [[https://github.com/myuhe/ess-R-data-view.el][ess-R-data-view]]
- Support for Org-Babel
- Showing of inline help for =R= constructs
- Repl support via =R terminal=
- Support for =S=, =SAS= and =R=
- Much more via the [[https://ess.r-project.org/Manual/ess.html#Current-Features][ESS Project]]
* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =ess= to the existing =dotspacemacs-configuration-layers= list in this
file.
Also install [[https://github.com/jimhester/lintr][lintr]] library via the R terminal to enable syntax checking.
To do so start the R terminal and type below code.
#+BEGIN_SRC R
install.packages("lintr")
#+END_SRC
* Options
Use a key binding to insert =<-=:
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '((ess :variables
ess-assign-key "\M--")))
#+END_SRC
* Key bindings
** Inferior REPL process
Send code to inferior process with these commands:
| Key binding | Description |
|-------------+------------------------------------------------------|
| ~SPC m '~ | start REPL |
| ~SPC m ,~ | send region, current function, or paragraph and step |
| ~SPC m s i~ | start REPL |
| ~SPC m s s~ | switch between file and REPL |
| ~SPC m s S~ | switch the process associate with file |
|-------------+------------------------------------------------------|
| ~SPC m s b~ | send buffer and keep code buffer focused |
| ~SPC m s B~ | send buffer and switch to REPL in insert mode |
| ~SPC m s d~ | send region or line and step |
| ~SPC m s D~ | send function or paragraph and step |
| ~SPC m s f~ | send function and keep code buffer focused |
| ~SPC m s F~ | send function and focus REPL |
| ~SPC m s l~ | send line and keep code buffer focused |
| ~SPC m s L~ | send line and focus REPL |
| ~SPC m s r~ | send region and keep code buffer focused |
| ~SPC m s R~ | send region and focus REPL |
** Help
Get help and helpers for inspecting objects at point are available in R buffers only.
| Key binding | Description |
|-------------+----------------------------------------------------------------|
| ~SPC m h a~ | help apropos |
| ~SPC m h d~ | display help on object |
| ~SPC m h e~ | describe object |
| ~SPC m h h~ | display help on object |
| ~SPC m h i~ | display index for package |
| ~SPC m h m~ | manual lookup |
| ~SPC m h o~ | display demos |
| ~SPC m h p~ | view data under point using [ess-R-data-view][ess-R-data-view] |
| ~SPC m h r~ | lookup reference |
| ~SPC m h t~ | view table using [ess-R-data-view][ess-R-data-view] |
| ~SPC m h v~ | display vignettes |
| ~SPC m h w~ | help web search |
| ~C-j~ | next item in REPL history |
| ~C-k~ | previous item in REPL history |
** More interaction with the REPL
Helpers that provide further interaction with the REPL.
| Key binding | Description |
|---------------+-------------------------------------------------------|
| ~SPC m r /~ | set working directory |
| ~SPC m r TAB~ | install package |
| ~SPC m r d~ | edit object source or dump() object into a new buffer |
| ~SPC m r e~ | execute a command in the ESS process |
| ~SPC m r i~ | install package |
| ~SPC m r l~ | load installed package |
| ~SPC m r r~ | reload ESS process |
| ~SPC m r s~ | set source style |
| ~SPC m r t~ | build tags for directory |
| ~SPC m r w~ | set "width" option |
** R devtools
Interaction with the =R= =devtools= package.
| Key binding | Description |
|---------------+------------------------------------------|
| ~SPC m w TAB~ | interface for =devtools::install()= |
| ~SPC m w a~ | ask for a devtools command and runs it |
| ~SPC m w c~ | interface for =devtools::check()= |
| ~SPC m w d~ | interface for =devtools::document()= |
| ~SPC m w i~ | interface for =devtools::install()= |
| ~SPC m w l~ | interface for =devtools::load_all()= |
| ~SPC m w r~ | interface for =devtools::revdep_check()= |
| ~SPC m w s~ | set a package for ESS r-package commands |
| ~SPC m w t~ | interface for =devtools::tests()= |
| ~SPC m w u~ | interface for =devtools::unload()= |
** Debugging
Tools for debugging
| Key binding | Description |
|--------------+-------------------------------------------------------------------|
| ~SPC m d ?~ | =ess-tracebug-show-help= |
| ~SPC m d `~ | show traceback and last error message |
| ~SPC m d \~~ | display call current call stack |
| ~SPC m d b~ | set breakpoint |
| ~SPC m d B~ | set conditional breakpoint |
| ~SPC m d d~ | set debugging flag for function |
| ~SPC m d e~ | toggle the =on-error= action |
| ~SPC m d i~ | jump to point where the last debugger or traceback event occurred |
| ~SPC m d k~ | kill breakpoint |
| ~SPC m d K~ | kill all breakpoints in buffer |
| ~SPC m d l~ | Set breakpoint logger |
| ~SPC m d n~ | go to next breakpoint |
| ~SPC m d N~ | go to previous breakpoint |
| ~SPC m d p~ | go to previous breakpoint |
| ~SPC m d o~ | toggle breakpoint state |
| ~SPC m d s~ | set environment for evaluation |
| ~SPC m d t~ | toggle tracebug |
| ~SPC m d u~ | unflag function for debug |
| ~SPC m d w~ | trigger ESS watch mode |
** Editing Markdown
Edit Markdown files
| Key binding | Description |
|-------------+-----------------------------------------------------------|
| ~SPC m c C~ | send knitr/sweave chunk and switch to REPL in insert mode |
| ~SPC m c c~ | send knitr/sweave chunk and keep buffer focused |
| ~SPC m c d~ | send knitr/sweave chunk and step to next chunk |
| ~SPC m c m~ | mark knitr/sweave chunk around point |
| ~SPC m c n~ | next knitr/sweave chunk |
| ~SPC m c N~ | previous knitr/sweave chunk |