[ESS] R-mode local key binding

Richard M. Heiberger rmh at temple.edu
Sat Jan 29 20:39:17 CET 2005

This is a good start.  It has a few clashes with the ESS style.

1. Don't defun R-mode, as that is a function name already used by ESS.
Redefining an important function name might make things stop working.

2. The specific functions you are defining are already in ESS.
puts comment symbols at the beginning of a single empty line and at
the end of a single line that already has code.  If you mark a region,
it puts comment symbols at the beginning of each line in the region.


3. The message you use "cleaning R code" is not the ideal message.
"indenting R code" is better.  ESS usually uses the word "clean"
in the function ess-transcript-clean-region which is used to
convert an S language output transcript file myfile.rt or
myfile.st into an input file.

   ess-transcript-clean-region is an interactive Lisp function in `ess-trns'.
   (ess-transcript-clean-region beg end even-if-read-only)
   Strip the transcript in the region, leaving only (R/S/Lsp/..) commands.
   Deletes any lines not beginning with a prompt, and then removes the
   prompt from those lines that remain.  Prefix argument means to use
   C-x C-q to clean even if the buffer is M-x read-only.

4.  Here is how to define a key and limit it to a single mode, in
this case ess-mode.  This function and key definition displays
the date and time when pressed in ess-mode (which includes
R-mode), but not elsewhere.

(defun jeaneid ()
  "display the date and time"
  (message (time-stamp-string)))

(define-key ess-mode-map [(control f8)] 'jeaneid)

More information about the ESS-help mailing list