[ESS] ess 5.3.6; Suggest that some ESS[S] mode bindings also work in ESS Help mode

Tim Hesterberg timh at insightful.com
Mon Jan 14 17:53:29 CET 2008

Thanks Martin,

I didn't realize about the one-letter equivalents for some of the
commands.  That is a good idea.  However, there are two caveats:

(1) This is inconsistent - in Ess-help mode some key commands have
one-letter versions, while others have longer commands that are consistent
with Ess[S] mode.
				Ess[S]		Help
ess-eval-line-and-step		C-c C-n		l
ess-eval-line			C-c C-j		C-c C-j
ess-display-help-on-object	C-c C-v		h

(2) User/brain interface.  I work best in emacs when I don't have to
think about emacs -- my fingers automatically do the keystrokes to
invoke an emacs command without me thinking about it.  This works best
if the same keystrokes work in all contexts, or at least in all
contexts that I will switch between frequently.

So I have no objection to one-letter bindings, but I would like the
longer bindings also defined.  I can do this for myself, but I think
that others would value this, so they don't have to learn different
sets of bindings for different modes.


>>>>>> "TH" == Tim Hesterberg <timh at insightful.com>
>>>>>>     on Wed, 09 Jan 2008 14:26:14 -0800 writes:
>[to ESS-bugs; we agreed on replying here at more visible "ESS-help"]
>    TH> When I'm looking at examples in a help file and want to try the
>    TH> examples, it would be nice if
>    TH> C-c C-n		ess-eval-line-and-step
>    TH> had the same behavior as when editing a source file.
>    TH> Some other bindings would also be useful.  So it would be nice
>    TH> if some of the bindings from ESS[S] mode would also be set in ESS Help mode.
>    TH> Most useful:
>    TH> C-c C-n		ess-eval-line-and-step
>    TH> C-c C-j		ess-eval-line
>    TH> C-c C-v		ess-display-help-on-object
>    TH> Possibly useful:
>    TH> C-c C-c		ess-eval-function-or-paragraph-and-step
>    TH> C-c C-f		ess-eval-function
>    TH> C-c C-p		ess-eval-paragraph-and-step
>    TH> C-c C-r		ess-eval-region
>    TH> C-M-a		ess-beginning-of-function
>    TH> C-M-e		ess-end-of-function
>    TH> various other ess-eval-* functions
>Ess-help mode  {this is what emacs is in, in the buffer "help[R](lm)"
>	        after 'C-c C-v lm' or (in R only) "?lm"}
>has short cuts for (almost all of) these already,
>but not the "long C-c <other-key>" ones, but rather short
>one-letter ones.
>This is the Emacs "philosophy", that a buffer where you don't *write*
>should have simple one-key short cuts; 
>e.g.,  see
>'Info' mode (C-h i); other help modes,
>'Dired' (Emacs directory editor) or mail reading, web browsing,
>	.... emacs modes.
>So instead of "C-c C-n" you use "l" (for "L[ine]") etc:
>Type 'C-h b' ("b": [B]indings) in an emacs mode to see *all* available key
>bindings. If you do it in ess-help mode,
>you see that most commands you mention have very simple
>one-letter keys, and quite a few are already additionally bound
>to the "ess-mode" equivalent long keys
>(I've slightly rearranged the lines here):
>key             binding
>---             -------
>C-c		Prefix Command
>ESC		Prefix Command
><remap>		Prefix Command
>RET		next-line
>SPC		scroll-up
>DEL		scroll-down
>/		isearch-forward
><		beginning-of-buffer
>>		end-of-buffer
>?		ess-describe-help-mode
>b		scroll-down
>f		ess-eval-function-or-paragraph-and-step
>h		ess-display-help-on-object
>k		kill-buffer
>l		ess-eval-line-and-step
>n		ess-skip-to-next-section
>p		ess-skip-to-previous-section
>q		ess-switch-to-end-of-ESS
>r		ess-eval-region-and-go
>s		Prefix Command
>x		ess-kill-buffer-and-go
>C-c C-f		ess-eval-function
>C-c C-j		ess-eval-line
>C-c C-k		ess-request-a-process
>C-c C-l		ess-load-file
>C-c C-r		ess-eval-region
>C-c C-s		ess-switch-process
>C-c C-v		ess-display-help-on-object
>C-c C-y		ess-switch-to-ESS
>C-c C-z		ess-switch-to-end-of-ESS
>C-c ESC		Prefix Command
>C-M-a		ess-beginning-of-function
>C-M-e		ess-end-of-function
>C-M-x		ess-eval-function
>C-c M-f		ess-eval-function-and-go
>C-c M-j		ess-eval-line-and-go
>C-c M-r		ess-eval-region-and-go
>s <		beginning-of-buffer
>s >		end-of-buffer
>s ?		ess-describe-sec-map
>s D		ess-skip-to-help-section
>s a		ess-skip-to-help-section
>s d .. s e	ess-skip-to-help-section
>s n		ess-skip-to-help-section
>s r .. s s	ess-skip-to-help-section
>s u .. s v	ess-skip-to-help-section
>So, some of the wishes you were expressing above have already
>been there (C-c C-j, or C-c C-f).
>In general, I very much believe users should learn a bit about
>the one-letter short cuts (which are also shown on the ESS-help
>menu, aren't they on Windows?), e.g.,
>  "h" : *-help-on-*
>  "l" : eval-line-*
>I think users should really learn to use them,
>but as you can see C-c C-v or C-c C-j actually already *do*
>work as alternatives.
>Hmm, I get the feeling that maybe I've misunderstood parts of
>what you were saying/asking .. ?
>Martin Maechler, ETH Zurich

More information about the ESS-help mailing list