| Re: How to simulate pressing a key |
|
 |
|
 |
|
 |
|
 |
Group: gnu.emacs.help · Group Profile
Author: netawaternetawater Date: Sep 19, 2008 19:50
"Drew Adams" oracle.com> writes:
>> I can not just call the function which key is binding for it may
>> have uncertainty parameter, like tab's function forward-button has
>> parameter, but lisp-indent-line does not.
>>
>> although execute-extended-command works perfect, but I can not use
>> it in my elisp function.
>
> I'm not sure I understand your question, but if I do, have a look at function
> `call-interactively'. It lets you call an interactive function (command) in
> such
> a way that the function's `interactive' spec is used to obtain the argument
> values.
>
> See the Elisp manual, node `Interactive Call'.
Thanks for your reply.
I do not want to interactive call a function but call it like pressing a key.
for example, press tab in help-mode will cause forward-button function which
has a parameter, however I do not need give it parameter and it get parameter
by itself.
my aim is to binding a funtion to tab key in every mode: if cursor is at
the end of word then call M-TAB's function, else call TAB's function.
(defun my-indent-or-complete ()
"if cursor is at
the end of word then call M-TAB's function, else call TAB's function."
(interactive)
;; ^C^t is binding to tab key's function in mode-hook.
(let ((TAB-func (key-binding "^C^t"))
(M-TAB-func (key-binding "\M-\t"))
)
(if (looking-at "\\>")
(apply M-TAB-func '())
(apply TAB-func '())
))
)
my way is only suitable for lisp-indent-line but not forward-button.
|