[Top][All Lists]

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

How to use elisp's closure

From: netawater
Subject: How to use elisp's closure
Date: Mon, 16 Jun 2008 22:15:21 +0800
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

In most usual modes, TAB key is bound to an indent function and
M-TAB key is bound to a complete symbol function. 
I want to write a function if cursor is at the end of word then 
try to complete symbol, else indent. It is my function.

(defun my-indent-or-complete (M-TAB-func TAB-func)
;;   "If cursor is at the end of word then current mode;s M-TAB 
function, else TAB"
  (lambda ()
   (if (looking-at "\\>")
       (apply M-TAB-func '())
       (apply TAB-func '())

Then I try to bound it to \t key:

 '(lambda ()
    (let ((M-TAB-func (key-binding "\M-\t"))
          (TAB-func (key-binding "\t"))
      (my-indent-or-complete M-TAB-func TAB-func)))

However it does not work, it says Symbol's value as variable 
is void: TAB-func. I think it is because my function is not
a closure, but how can I resolve it?

Thank you very much!

reply via email to

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