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

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

Re: How to simulate pressing a key


From: netawater
Subject: Re: How to simulate pressing a key
Date: Sat, 20 Sep 2008 10:50:01 +0800
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

"Drew Adams" <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.



reply via email to

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