ESS/SAS key bindings.

Bo Peng bpeng at
Fri Sep 27 05:17:22 CEST 2002

On Thu, Sep 26, 2002 at 08:43:07PM -0500, Rodney Sparapani wrote:
> >1. I can not use
> >  (setq ess-sas-local-unix-keys t)_
> > in my .emacs file tp activate sas keys. Rather strangely,
> >  (ess-sas-local-unix-keys)
> > works.

> Actually, that's the way I do it too.  I think it's cleaner, but I'm 
> not sure if the documentation is very clear.  I call 
> (ess-sas-global-keys) after requiring ess-site.

That is fine. I was surprised why (setq ess-sas-local-unix-keys t) does
not work.

> >2. If I use -local-key, I can use F3 to run the SAS program but I can
> >  not go back from the shell window to SAS window with F4. So I use
> >  -global-key but then all my general F3, F4,.. are gone even when I
> >  am not in SAS mode. This also means that I can not use R and SAS
> >  at the same time since I define F8 for R mode.
> >
> >  If I have to tolerate global-key, how can I set up a hook that trigle
> >  ess-sas-global-unix-keys only when I open a sas file?
> >
> >  Or, can I use local-key and let shell, log, output windows know F4, 
> >F5
> >  etc?

> Hmmm.  ESS[BUGS] F-keys manage to co-exist with ess-sas-global-keys.  I 
> think the following excerpt is somehow responsible.  Maybe if you put 
> something like this in .emacs before requiring ess-site:

> (if ess-bugs-mode-map nil
>     (setq ess-bugs-mode-map (make-keymap))
>     (define-key ess-bugs-mode-map (quote [f2])  'ess-revert-wisely)
>     (define-key ess-bugs-mode-map (quote [f12]) 'ess-bugs-next-action)
> )

I do not use BUGS so I do not think ess-revert-wisely will help. After
some testruns, I find that it is pretty tricky to mix batch and
interactive mode. F3, F4, etc only work for batch mode and C-c C-r etc
only work for interactive mode. 

> So F3 would submit the code, but what would F4 do?

The idea ways (to me) to use ESS/SAS mode would be:

In batch mode:

1. open emacs
2. F3, run, F4 go back to program window etc. 
  Problem: with ess-sas-local-unix-keys, I can not
  use F4 to go from sh or log window to the program window.
  This only works for ess-sas-global-unix-keys.

In interactive mode:

1. open emacs
2. M-x SAS
3. Since ESS know that I am in interactive mode, I would like to use
  F3 to submit the buffer, F4, F5, F6 switch between program, SAS.lst, 
  SAS.log window. 
    a) No easy way to switch between windows. (F3, F4 will cause
       confusion now.)
    b) Log and lst window do not automatically go to the 
       beginning of the newest log/output.
    c) Key bindings for ess-mode-map does not work for sas-mode. 
       I have to use sas-mode-local-map instead.

Mixture of batch and interactive mode: Very confusing.

In general, I would like to customize ESS/SAS with:

1. set ess-sas-global-unix-keys when I open a SAS file. I could
   not find a sas-mode-hook to do this.

2. In batch mode, map F4, F5, F6 keys for shell, output and list window
   so that I can switch between windows easily. (This is less intrusive
   than ess-sas-global-unix-keys.)

3. In interactive mode, map F4, F5, F6 to switch between SAS.lst,
   SAS.log and the program window.

Since I am new to ESS/SAS, my wishes might not be appropriate. Any
suggestion is welcome.


ess-help mailing list -- To (un)subscribe, send
subscribe	or	unsubscribe
(in the "body", not the subject !)  To: ess-help-request at

More information about the ESS-help mailing list