Long before other editors had auto-correction, Emacs had a simple mechanism to achieve the same. It was called abbrevs which may be a reason why it may not be well known by new comers to Emacs.
From the comp.emacs newsgroup, here's a nice little tutorial on Emacs Abbrevs from Xah Lee. Apart from spell corrections, you could use it as an expansion for your code snippets for any local OR global modes. You'll soon find yourself using C-x a i l and C-x a i g a lot to save yourself a lot of typing. See the manual section for more info on this.
And as a bonus, you could save yourself some more time by adding the following contents to your .abbrev file.
From the comp.emacs newsgroup, here's a nice little tutorial on Emacs Abbrevs from Xah Lee. Apart from spell corrections, you could use it as an expansion for your code snippets for any local OR global modes. You'll soon find yourself using C-x a i l and C-x a i g a lot to save yourself a lot of typing. See the manual section for more info on this.
And as a bonus, you could save yourself some more time by adding the following contents to your .abbrev file.
6 comments:
Is there a way to get emacs to make it more obvious when it applies an abbrev substitution? Perhaps printing a message to the minibuffer or temporarily highlighting the word it changed?
The abbrev feature would be more useful to me if emacs made it clear that it did the substitution---so I know to verify that it made the right correction.
Anonymous:
(add-hook 'pre-abbrev-expand-hook
#'(lambda ()
(let* ((abbrev (second (abbrev--before-point)))
(expansion (abbrev-expansion abbrev)))
(message "Expanded %s to %s" abbrev expansion))))
That hook is broken. Write the word "abbrev" and try to press space after that.
Anonymous:
My bad. I don't use abbrev-mode, so I didn't really test it on things that weren't in an abbrev table! This version will not break your emacs' abbrev-mode:
(add-hook 'pre-abbrev-expand-hook
#'(lambda ()
(let ((before-point (abbrev--before-point)))
(when before-point
(let* ((abbrev (second before-point))
(expansion (abbrev-expansion abbrev)))
(message "Expanded %s to %s" abbrev expansion))))))
Author: feel free to delete that comment so that people won't try to use it and break their abbrev-mode.
The second script provided seems to work great. Thanks for your help!
I laughed out loud when you said:
"C-x a i g a lot to save yourself a lot of typing" I think most of the words I have to type are shorter than that key sequence.
I love emacs but the keyboard shortcuts are nothing short of insane.
Post a Comment