Thanks for suggesting skip-syntax-backward, see new patch. On Mon, Jun 17, 2019 at 7:44 AM Noam Postavsky wrote: > > Allen Li writes: > > > Defining an inverse abbrev in a buffer like so (@ is point): > > > > some text foo @ > > > > C-x a i l find outer otter RET > > > > defines an abbrev "foo " -> "find outer otter" > > > * lisp/abbrev.el (inverse-add-abbrev): Skip trailing nonword > > characters when defining abbrev. > > > (defun inverse-add-abbrev (table type arg) > > (let (name exp start end) > > (save-excursion > > - (forward-word (1+ (- arg))) > > + (if (<= arg 0) > > + (forward-word (1+ (- arg))) > > + (forward-word (- arg)) > > + (forward-word)) > > (setq end (point)) > > (backward-word 1) > > This seems like a somewhat obfuscated way of skipping nonword > characters. How about using skip-syntax-backward instead?