help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: define abbrev for emacs-lisp-mode but not other lisp-mode


From: Xah Lee
Subject: Re: define abbrev for emacs-lisp-mode but not other lisp-mode
Date: Wed, 08 Dec 2010 15:36:36 -0000
User-agent: G2/1.0

On Nov 17, 12:52 am, harven <har...@free.fr> wrote:
> Xah Lee <xah...@gmail.com> writes:
> > On Nov 16, 6:54 am, harven <har...@free.fr> wrote:
> >> Xah Lee <xah...@gmail.com> writes:
> >> > this is a odd thing.
>
> >> > when in emacs-lisp-mode, and when you define a abbrev (e.g. call
> >> > define-mode-abbrev then “ah” then “add-hook”), then call write-abbrev-
> >> > file
>
> >> > then you get this in your abbrev file (e.g. at 〔~/.emacs.d/
> >> > abbrev_defs〕)
>
> >> > (define-abbrev-table 'lisp-mode-abbrev-table '(
> >> >     ("ah" "add-hook" nil 0)
> >> > ))
>
> >> > note that it's lisp-mode-abbrev-table not emacs-lisp-mode-abbrev-
> >> > table.
>
> >> > Why's that?
>
> >> > (if you change it to the latter, it won't work.)
>
> >> > i'm wondering because i want the abbrev to be for emacs-lisp-mode
> >> > only, not general lisp mode.
> >> > It appears that emacs-lisp-mode is defined on top of lisp-mode. Ok, so
> >> > my question is, what's the purpose of lisp-mode? Is that supposed to
> >> > be the base for other lisp lang modes to be defined on top of? A look
> >> > at scheme-mode seems to confirm this, but still, i want my abbrev for
> >> > emacs lisp mode only. Is that possible?
>
> >> > thanks.
>
> >> >  Xah ∑http://xahlee.org/☄
>
> >> I would try the following in .emacs
>
> >> (define-abbrev-table 'emacs-lisp-mode-abbrev-table '(
> >>   ("ah" "add-hook" nil 0)))
>
> >> (add-hook 'emacs-lisp-mode-hook (lambda()
> >>          (setq abbrev-mode t)
> >>          (setq local-abbrev-table emacs-lisp-mode-abbrev-table)))
>
> > thanks. Interesting solution.
>
> > Before i redefine my stuff, i did some more testing on my original
> > question.
>
> > i tried to go to scheme-mode and apparantly the abbrev does not work,
> > but only in emacs-lisp-mode.
>
> > if i'm in scheme-mode and i call define-mode-abbrev, it generate this
> > code:
>
> > (define-abbrev-table 'scheme-mode-abbrev-table
> >   '(
> >     ("ttt" "hhh" nil 0)
> >    ))
>
> > So, my question is probably caused by unnecessarily looking under the
> > hood.
>
> >> I think that the nil argument after add-hook is deprecated in emacs ≥ 23.
>
> > any reference you have on this? thanks.
>
> Sorry, that's the 0 notation that is obsolete. It is now an optional property,
> and is written as :count 0. See the docstring of define-abbrev.
>
> ┌────────────────────────────────────────────────────────────────┐
> │(define-abbrev TABLE NAME EXPANSION &optional HOOK &rest PROPS) │
> │                             ...                                │
> │An obsolete but still supported calling form is:                │
> │(define-abbrev TABLE NAME EXPANSION &optional HOOK COUNT SYSTEM)│
> └────────────────────────────────────────────────────────────────┘

thanks.

emacs stilll generate code with that 0... perhaps the code needs to be
updated.

 Xah


reply via email to

[Prev in Thread] Current Thread [Next in Thread]