[ESS] proposal re: underscore

Jack Tanner ihok at hotmail.com
Wed Apr 4 19:52:41 CEST 2012

Premise: the smart-underscore behavior in ESS is problematic because 

1) it's inconsistent across modes, as described in my post a couple of weeks ago
and repeated below for convenience

2) it's confusing to novices, as evidenced by the fact that it's a FAQ

3) it will be even more confusing to novices over time, because underscore as
assignment operator was phased out in R a long time ago

4) it requires two keystrokes of underscore to get an actual underscore

Proposal: ESS should emulate another R editor on this point, namely StatET. The
behavior is as follows:

1) typing = gets you =

2) typing _ gets you _

3) typing <- gets you <-

4) (this is the magic one) typing Ctrl+= gets you <-

The main argument 'pro' is that 1-3 are not at all confusing to novices, and 4
is a discoverable feature, i.e., a reward for advanced users. Additionally, this
would be consistent across S, R, BUGS, and JAGS, and would not violate their
syntax, unlike the current behavior (explained in my older note, below).

The current smart-underscore could be retained as-is for those who want it but
turned off by default in future versions.

-- my older email, repeated for reference --

1. In ESS[BUGS] mode, underscore is bound to ess-bugs-hot-arrow, which is
definitely wrong, because it doesn't let me create variables like foo_bar. 

2. I'd like it if I could use smart-underscore as in ESS[S] mode, but if I do

(define-key ess-bugs-mode-map (kbd "_") 'ess-smart-underscore)

then there's no smart-underscore behavior, just a plain underscore.

More information about the ESS-help mailing list