12

I want to set up a part of my Mathematica package so that typing <-Space is replaced with the left arrow character ( or \[LeftArrow]) just like it does with ->Space. Does anyone know how to do this? I looked briefly at event handling but didn't see anything immediately useful. I already know, of course, that Esc<-Esc will insert , and that doing so is not that much additional effort, but I'm more interested in the concept involved here. Any ideas?

rm -rf
  • 88,781
  • 21
  • 293
  • 472

1 Answers1

9

Normally you could use:

SetOptions[$FrontEndSession,
  InputAutoReplacements -> {"<-" -> "\[LeftArrow]"}
]

But this fails because Mathematica already parses <- differently. Specifically the documentation states:

In expression input, automatic replacements can be performed only on strings of characters that correspond to complete input tokens.

You can see that this setting works for other strings, e.g.:

SetOptions[$FrontEndSession,
  InputAutoReplacements -> {"stuff" -> "\[LeftArrow]"}
]

Then typing (with a space):

x stuff 

Will render:

x \[LeftArrow] 
Mr.Wizard
  • 271,378
  • 34
  • 587
  • 1,371