With the latest sml-mode(as of ELPA Jan 2022, Emacs 27), Emacs always creates some kind of pattern after a keyword such as val, fun and let and whitespace. So, if I type fun , I get

 fun  =  ^

where ^ indicates the cursor position.

I appreciate the hint about that pattern that I need to enter something before and after an equal sign =. But every time, I have to move the cursor back to where I was (i.e. after the fun and space), and then enter the function signature. Then, I need to move the cursor behind the = to enter the function body.

How can I disable this template insertion to avoid the jumping around the =?

  • How did you get the 2022 version? I can only see the 6.10 version from 2020.
    – NickD
    Commented Jan 2, 2022 at 9:13
  • 1
    Does setting sml-abbrev-skeletons to nil help?
    – NickD
    Commented Jan 2, 2022 at 9:16
  • @NickD Thanks! That does disable the template insertion. One additional question: this seems to disable all skeletons. If needed, can the same insertion behavior be manually/explicitly activated using a key combination for templates of other keywords such as structure?
    – tinlyx
    Commented Jan 2, 2022 at 12:30
  • I don't know. I just caught the variable out of the corner of my eye and suggested it to you. I didn't install or try out anything and I don't use the mode, so that's the extent of my knowledge.
    – NickD
    Commented Jan 2, 2022 at 12:34

1 Answer 1


As pointed out by @NickD, setting:

(setq sml-abbrev-skeletons nil)

in init.el disables any template insertion.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.