From 6b056e50a0c4b55d6bf1736ccf3156e14bd30c0a Mon Sep 17 00:00:00 2001 From: gdkrmr Date: Mon, 23 Oct 2017 20:57:43 +0200 Subject: [PATCH] improved keybindings for ess layer --- layers/+lang/ess/README.org | 132 ++++++++++++++++++++++++++++------- layers/+lang/ess/packages.el | 37 ++++++---- 2 files changed, 130 insertions(+), 39 deletions(-) diff --git a/layers/+lang/ess/README.org b/layers/+lang/ess/README.org index 016adb746..4e1bbba7b 100644 --- a/layers/+lang/ess/README.org +++ b/layers/+lang/ess/README.org @@ -8,7 +8,11 @@ - [[#install][Install]] - [[#key-bindings][Key Bindings]] - [[#inferior-repl-process][Inferior REPL process]] - - [[#helpers][Helpers]] + - [[#help][Help]] + - [[#more-interaction-with-the-repl][More interaction with the REPL]] + - [[#r-devtools][R devtools]] + - [[#debugging][Debugging]] + - [[#editing-markdown][Editing Markdown]] - [[#options][Options]] * Description @@ -29,35 +33,113 @@ file. ** Inferior REPL process Send code to inferior process with these commands: -| Key Binding | Description | -|-------------+------------------------------------------------------------------| -| ~SPC m c c~ | send knitr/sweave chunk and keep buffer focused | -| ~SPC m c C~ | send knitr/sweave chunk and switch to REPL in insert mode | -| ~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 | -| ~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 (debug) | -| ~SPC m s D~ | send function or paragraph and step (debug) | -| ~SPC m s i~ | start an inferior REPL process | -| ~SPC m s l~ | send line and keep code buffer focused | -| ~SPC m s L~ | send line and switch to REPL in insert mode | -| ~SPC m s r~ | send region and keep code buffer focused | -| ~SPC m s R~ | send region and switch to REPL in insert mode | -| ~SPC m s f~ | send thing at point (function) and keep code buffer focused | -| ~SPC m s F~ | send thing at point (function) and switch to REPL in insert mode | -| ~CTRL+j~ | next item in REPL history | -| ~CTRL+k~ | previous item in REPL history | +| Key Binding | Description | +|-------------+------------------------------------------------------| +| ~SPC m '~ | start REPL | +| ~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 ,~ | send region, current function, or paragraph and step | +|-------------+------------------------------------------------------| +| ~SPC m s b~ | send buffer and switch to REPL in insert mode | +| ~SPC m e b~ | send buffer and keep code buffer focused | +| ~SPC m s d~ | send region or line and step | +| ~SPC m s D~ | send function or paragraph and step | +| ~SPC m e l~ | send line and keep code buffer focused | +| ~SPC m s l~ | send line and focus REPL | +| ~SPC m e r~ | send region and keep code buffer focused | +| ~SPC m s r~ | send region and focus REPL | +| ~SPC m e f~ | send function and keep code buffer focused | +| ~SPC m s f~ | send function and focus REPL | -** Helpers -Helpers for inspecting objects at point are available in R buffers only. +** Help +Get help and helpers for inspecting objects at point are available in R buffers only. | Key Binding | Description | |-------------+----------------------------------------------------------------| -| ~SPC m h d~ | view data under point using [ess-R-data-view][ess-R-data-view] | +| ~SPC m h h~ | display help on object | +| ~SPC m h d~ | display help on object | +| ~SPC m h e~ | describe object | +| ~SPC m h m~ | manual lookup | +| ~SPC m h o~ | display demos | +| ~SPC m h r~ | lookup reference | +| ~SPC m h w~ | help web search | +| ~SPC m h v~ | display vignettes | +| ~SPC m h i~ | display index for package | +| ~SPC m h a~ | help apropos | +| ~SPC m h p~ | view data under point using [ess-R-data-view][ess-R-data-view] | | ~SPC m h t~ | view table using [ess-R-data-view][ess-R-data-view] | +| ~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 TAB~ | install package | +| ~SPC m r i~ | install package | +| ~SPC m r l~ | load installed package | +| ~SPC m r /~ | set working directory | +| ~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 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 i~ | 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 l~ | interface for =devtools::load_all()= | +| ~SPC m w t~ | interface for =devtools::tests()= | +| ~SPC m w u~ | interface for =devtools::unload()= | +| ~SPC m w r~ | interface for =devtools::revdep_check()= | +| ~SPC m w s~ | set a package for ESS r-package commands | + +** 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 m~ | mark knitr/sweave chunk around point | +| ~SPC m c n~ | next knitr/sweave chunk | +| ~SPC m c N~ | previous knitr/sweave chunk | +| ~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 | * Options To turn off the automatic replacement of underscores by =<-=, set in your diff --git a/layers/+lang/ess/packages.el b/layers/+lang/ess/packages.el index fb49aec42..9628b2861 100644 --- a/layers/+lang/ess/packages.el +++ b/layers/+lang/ess/packages.el @@ -77,8 +77,31 @@ "'" 'julia "si" 'julia) (spacemacs/set-leader-keys-for-major-mode 'ess-mode + "," 'ess-eval-region-or-function-or-paragraph-and-step "'" 'spacemacs/ess-start-repl "si" 'spacemacs/ess-start-repl + "ss" 'ess-switch-to-inferior-or-script-buffer + "sS" 'ess-switch-process + ;; REPL + "sb" 'ess-eval-buffer-and-go + "eb" 'ess-eval-buffer + "sd" 'ess-eval-region-or-line-and-step + "sD" 'ess-eval-function-or-paragraph-and-step + "sl" 'ess-eval-line-and-go + "el" 'ess-eval-line + "sr" 'ess-eval-region-and-go + "er" 'ess-eval-region + "sf" 'ess-eval-function-and-go + "ef" 'ess-eval-function + ;; ESS doc map + "h" 'ess-doc-map + "hh" 'ess-display-help-on-object + ;; R helpers + "hp" 'ess-R-dv-pprint + "ht" 'ess-R-dv-ctable + "r" 'ess-extra-map + "w" 'ess-r-package-dev-map + "d" 'ess-dev-map ;; noweb "cC" 'ess-eval-chunk-and-go "cc" 'ess-eval-chunk @@ -86,20 +109,6 @@ "cm" 'ess-noweb-mark-chunk "cN" 'ess-noweb-previous-chunk "cn" 'ess-noweb-next-chunk - ;; REPL - "sB" 'ess-eval-buffer-and-go - "sb" 'ess-eval-buffer - "sD" 'ess-eval-function-or-paragraph-and-step - "sd" 'ess-eval-region-or-line-and-step - "sL" 'ess-eval-line-and-go - "sl" 'ess-eval-line - "sR" 'ess-eval-region-and-go - "sr" 'ess-eval-region - "sF" 'ess-eval-function-and-go - "sf" 'ess-eval-function - ;; R helpers - "hd" 'ess-R-dv-pprint - "ht" 'ess-R-dv-ctable ) (define-key ess-mode-map (kbd "") 'ess-eval-line) (define-key inferior-ess-mode-map (kbd "C-j") 'comint-next-input)