[ESS] Emacs/ESS better than Notepad++ because...

Vitalie Spinu spinuvit at gmail.com
Mon Jul 1 19:47:11 CEST 2013

Hi Paul, 

Thanks for your efforts to put non-believers on the righteous path, but
I am afraid Emacs can do so many things that other editors cannot,  that
listing them all would be an unbearable task. 

For an impression: http://melpa.milkbox.net

As to ESS, you can just look into the most recent reference card and you
will see immediately what is not available in other editors: 


These are my favorites:

1) Huge variety of process interaction commands, most-notably
C-c C-c, C-M-x and C-RET, are still not available in any R editor out

2) Help under your fingertips:

C-c C-d C-a	ess-display-help-apropos
C-c C-d C-d	ess-display-help-on-object
C-c C-d C-e	ess-describe-object-at-point
C-c C-d C-v	ess-display-vignettes
C-c C-d C-w	ess-help-web-search
C-c C-d i 	ess-display-package-index
C-c C-d o 	ess-display-demos

3) probably the most used command of mine is imenu-anywhere. Install
from melpa then

   (global-set-key (kbd "C-.") 'imenu-anywhere)

and you will be able to navigate to the definition of the symbol at
point as long as the other file is open. This is like tag navigation but
more convenient IMO. Both ido and helm interfaces are available.

4) Tracebug highlighting of errors and quick navigation with M-g n, M-g p.

Here I also include
   C-c `     	ess-show-traceback
   C-c ~     	ess-show-call-stack

which display source locations.

5) Tracebug visual debugger.

6) multiple processes. I think ESS handling of multiple processes is
pretty unique. Even in emacs realm you don't see this that often.

   C-c C-s ess-switch-process 

Other nice tools ( probably not available in other editors):

- eldoc support. Nothing similar is out there to the best of my
knowledge. All other editor seem to agree on tooltips which I find very
intrusive and inefficient.

- ac support: http://www.emacswiki.org/emacs/ESSAuto-complete

- Range of tracebug/developer commands that I use all the time:

   C-c C-t C-a	ess-developer-add-package
   C-c C-t C-b	ess-bp-set
   C-c C-t C-d	ess-debug-flag-for-debugging
   C-c C-t C-e	ess-debug-toggle-error-action
   C-c C-t C-t	ess-toggle-developer
   C-c C-t C-u	ess-debug-unflag-for-debugging
   C-c C-t B 	ess-bp-set-conditional
   C-c C-t k 	ess-bp-kill
   C-c C-t l 	ess-developer-load-package (this one is in ESS dev as yet)

- Misc:

   C-c C-q + M-x R to quickly restart the process.
   C-c C-z   	ess-switch-to-inferior-or-script-buffer (jump back to script)
   C-c .     	ess-set-style (different indentation under your fingertips)
   C-c C-e i 	ess-install-library
   C-c C-e l 	ess-load-library
   C-c C-e C-t	ess-build-tags-for-directory (then use M-. to jump to definition)
   C-c C-e C-w	ess-execute-screen-options    

 >> Paul Johnson <pauljohn32 at gmail.com>
 >> on Mon, 1 Jul 2013 11:09:56 -0500 wrote:


 > So please add on to this list.

 > "Emacs can do this, Notepad++ cannot."

 > 1. Run R help page examples by hitting the letter "l".  Open the help pages
 > in Emacs, NOT in the web browser. Scroll to the example, and run line by
 > line by striking the "l" key.

"l" style is almost deprecated:) Install polymode and you will get all
examples in (editable) R mode.

 > My second favorite is "C-x C-e d" to edit the code of a loaded function.
 > But I know many of you are uncomfortable with that one, so I won't push
 > it..

I use this one quite often in conjunction with ess-developer. C-x C-e
C-d, chose function from an attached package. Edit, then evaluate into
the namespace of the package. I don't think namespace level editing is
available in any other editor out there.


More information about the ESS-help mailing list