Archive for May, 2008
Emacs buttons – an introduction for the somewhat impatient
Working out how to make buttons work in emacs took rather too much effort – I suspect I was just being slow. However, I thought I’d write a tiny how-to for anyone else who tries to do this:
Below is a prototypical emacs lisp function call to create a new button in your text between characters beg and end is:
(defun f (button) (call-interactively 'find-file)) (make-button beg end 'action 'f 'follow-link t)
Note the following:
- The properties are defined via a variable number of arguments . It does does not take a list.
- Removing the follow-link property would cause left mouse-clicks on the link to have no effects
- f must take a single argument otherwise this will fail.
For more on emacs buttons see:
http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Buttons
If you want to make your button more anonymous (so that changing the function value associated with f has no deleterious results) you can use the following
(make-button beg end 'action (lambda (button) (call-interactively 'find-file)) 'follow-link t)