[ESS] Custom key bindings for SAS
Rodney Sparapani
rsparapa at mcw.edu
Tue Jun 30 21:22:12 CEST 2009
Daniel Muenz wrote:
> Hi, thanks for your suggestion. I've already tried the (setq
> ess-sas-global-unix-keys t) command though and it does not do exactly what
> I want. For example, I want the F3 key to not only submit the SAS program,
> but then also to take me automatically to the *shell* buffer. Something
> like this:
>
> (global-set-key [f3] '(lambda ()
> (interactive)
> (ess-sas-submit)
> (ess-sas-goto-shell))
>
> But I only want this to apply when the current buffer is a .sas, .log,
> or .lst file or the *shell*.
>
I don't know why you want this in a lambda clause, but here it is:
(global-set-key [f1] '(lambda ()
(interactive)
(let* ( (name (buffer-name))
(tail (car (reverse (split-string name "[./]")))) )
(if (or (string= name "*shell*")
(string= tail "sas")
(string= tail "log")
(string= tail "lst")) (progn
(ess-sas-submit)
(ess-sas-goto-shell))))))
You could fool it by opening a file named "sas", but nobody's perfect.
> Also, every time I hit a SAS-related key, I want a message echoed to the
> minibuffer area which describes what all the key presses do, .e.g,
>
> (defun my-ess-sas-message ()
> (interactive)
> (message "F3: submit F4: .sas F5: .log F6: .lst F8:
> shell"))
>
> So this message should be echoed each time I hit F3, F4, F5, F6, or F8. As
> an example:
>
> (global-set-key [f4] '(lambda ()
> (interactive)
> (ess-sas-goto-sas)
> (my-ess-sas-message)))
>
> Regarding my other question about the annoying dialog, sorry if this is in
> fact the wrong forum for that, but I mentioned it here because I've only
> seen it appear when using ESS.
>
It's just my charming personality :o) But seriously, it is not unique
to ESS. Any time you have a *shell* buffer you get that question. For
example try (with no ESS usage at all and exit):
emacs -f shell &
--
Rodney Sparapani Center for Patient Care & Outcomes Research (PCOR)
Sr. Biostatistician http://www.mcw.edu/pcor
4 wheels good, 2 wheels better! Medical College of Wisconsin (MCW)
WWLD?: What Would Lombardi Do? Milwaukee, WI, USA
More information about the ESS-help
mailing list