[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 ()
(interactive)
(if (looking-at "\\>")
(apply M-TAB-func '())
(apply TAB-func '())
))
)
Then I try to bound it to \t key:
(add-hook
'find-file-hook
'(lambda ()
(let ((M-TAB-func (key-binding "\M-\t"))
(TAB-func (key-binding "\t"))
)
(local-set-key
"\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!
- How to use elisp's closure,
netawater <=
- Message not available