unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* How to bind a function with argument?
@ 2010-12-18  0:35 Rafael
  2010-12-18  1:31 ` LanX
  2010-12-18  1:49 ` Pascal J. Bourguignon
  0 siblings, 2 replies; 7+ messages in thread
From: Rafael @ 2010-12-18  0:35 UTC (permalink / raw)
  To: help-gnu-emacs


I would like to bind a key to the function that results from

C-u M-x org-insert-link

From 4.6 of http://www.nongnu.org/emacs-tiny-tools/keybindings/, I
thought that 

  (global-set-key [(super f)]
                   '(lambda () (interactive) (org-insert-link 4)))

would do the trick. But it doesn't, the effect is no different than just
doing 

  (global-set-key [(super f)] 'org-insert-link)

which is not what I want. Any help, please?


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How to bind a function with argument?
  2010-12-18  0:35 How to bind a function with argument? Rafael
@ 2010-12-18  1:31 ` LanX
  2010-12-18  1:43   ` Rafael
  2010-12-18  1:52   ` LanX
  2010-12-18  1:49 ` Pascal J. Bourguignon
  1 sibling, 2 replies; 7+ messages in thread
From: LanX @ 2010-12-18  1:31 UTC (permalink / raw)
  To: help-gnu-emacs

 (global-set-key [(super f)]
                  '(lambda () (interactive) (org-insert-link '4)))


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How to bind a function with argument?
  2010-12-18  1:31 ` LanX
@ 2010-12-18  1:43   ` Rafael
  2010-12-18  1:52   ` LanX
  1 sibling, 0 replies; 7+ messages in thread
From: Rafael @ 2010-12-18  1:43 UTC (permalink / raw)
  To: help-gnu-emacs

LanX <lanx.perl@googlemail.com> writes:

>  (global-set-key [(super f)]
>                   '(lambda () (interactive) (org-insert-link '4)))

Hmm, thanks for your answer, but again it has the same effect as not
quoting the 4...


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How to bind a function with argument?
  2010-12-18  0:35 How to bind a function with argument? Rafael
  2010-12-18  1:31 ` LanX
@ 2010-12-18  1:49 ` Pascal J. Bourguignon
  2010-12-18  2:00   ` LanX
  2010-12-18  2:03   ` Rafael
  1 sibling, 2 replies; 7+ messages in thread
From: Pascal J. Bourguignon @ 2010-12-18  1:49 UTC (permalink / raw)
  To: help-gnu-emacs

Rafael <rvf0068@gmail.com> writes:

> I would like to bind a key to the function that results from
>
> C-u M-x org-insert-link
>
> From 4.6 of http://www.nongnu.org/emacs-tiny-tools/keybindings/, I
> thought that 
>
>   (global-set-key [(super f)]
>                    '(lambda () (interactive) (org-insert-link 4)))
>
> would do the trick. But it doesn't, the effect is no different than just
> doing 
>
>   (global-set-key [(super f)] 'org-insert-link)
>
> which is not what I want. Any help, please?

Read the documentation of org-insert-link.  Follow the link to the
source.  See that it has a (interactive "P") declaration.  Read the
documentation of interactive.  See that "P" means prefix arg in raw
form.

If you don't know it, search in emacs lisp documentation, and you'll
find that the prefix arg in raw form, for a single C-u, is passed as
(4), not 4, and for C-u C-u, it's (16).

So it should be:

(global-set-key [(super f)]  (lambda () (interactive) (org-insert-link '(4))))


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
A bad day in () is better than a good day in {}.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How to bind a function with argument?
  2010-12-18  1:31 ` LanX
  2010-12-18  1:43   ` Rafael
@ 2010-12-18  1:52   ` LanX
  1 sibling, 0 replies; 7+ messages in thread
From: LanX @ 2010-12-18  1:52 UTC (permalink / raw)
  To: help-gnu-emacs

hmm this seems to work for me:

(global-set-key [(super f)]
		'(lambda () (interactive) (org-insert-link (quote (4)))))


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How to bind a function with argument?
  2010-12-18  1:49 ` Pascal J. Bourguignon
@ 2010-12-18  2:00   ` LanX
  2010-12-18  2:03   ` Rafael
  1 sibling, 0 replies; 7+ messages in thread
From: LanX @ 2010-12-18  2:00 UTC (permalink / raw)
  To: help-gnu-emacs

> Read the documentation of org-insert-link.  Follow the link to the
> source.  See that it has a (interactive "P") declaration.  Read the
> documentation of interactive.  See that "P" means prefix arg in raw
> form.
>
> If you don't know it, search in emacs lisp documentation, and you'll
> find that the prefix arg in raw form, for a single C-u, is passed as
> (4), not 4, and for C-u C-u, it's (16).

or just do M-x repeat-complex-command to see the lisp code of your
last command. :)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How to bind a function with argument?
  2010-12-18  1:49 ` Pascal J. Bourguignon
  2010-12-18  2:00   ` LanX
@ 2010-12-18  2:03   ` Rafael
  1 sibling, 0 replies; 7+ messages in thread
From: Rafael @ 2010-12-18  2:03 UTC (permalink / raw)
  To: help-gnu-emacs

"Pascal J. Bourguignon" <pjb@informatimago.com> writes:

> Rafael <rvf0068@gmail.com> writes:
>
>> I would like to bind a key to the function that results from
>>
>> C-u M-x org-insert-link
>>
>> From 4.6 of http://www.nongnu.org/emacs-tiny-tools/keybindings/, I
>> thought that 
>>
>>   (global-set-key [(super f)]
>>                    '(lambda () (interactive) (org-insert-link 4)))
>>
>> would do the trick. But it doesn't, the effect is no different than just
>> doing 
>>
>>   (global-set-key [(super f)] 'org-insert-link)
>>
>> which is not what I want. Any help, please?
>
> Read the documentation of org-insert-link.  Follow the link to the
> source.  See that it has a (interactive "P") declaration.  Read the
> documentation of interactive.  See that "P" means prefix arg in raw
> form.
>
> If you don't know it, search in emacs lisp documentation, and you'll
> find that the prefix arg in raw form, for a single C-u, is passed as
> (4), not 4, and for C-u C-u, it's (16).
>
> So it should be:
>
> (global-set-key [(super f)]  (lambda () (interactive) (org-insert-link '(4))))

Indeed it should. Thanks Pascal, for your detailed answer, and LanX!


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-12-18  2:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-18  0:35 How to bind a function with argument? Rafael
2010-12-18  1:31 ` LanX
2010-12-18  1:43   ` Rafael
2010-12-18  1:52   ` LanX
2010-12-18  1:49 ` Pascal J. Bourguignon
2010-12-18  2:00   ` LanX
2010-12-18  2:03   ` Rafael

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).