Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

emacs interactive commands with default value

I am wondering how is that some interactive commands in emacs present default value while others don't. For instance when I am in C file and cursor stands on printf, running manual-entry will suggest showing manual page for printf by default. I would like to make my own interactive commands with default value. How? It seems like thing-at-point is a good direction, but how do I blend thing-at-point and interactive together?

like image 551
Alexander Sandler Avatar asked Mar 10 '12 11:03

Alexander Sandler


1 Answers

You already have good starting points to research your own solution.

thing-at-point is probably useful in this context. I recently answered a question where I explained how to solve this type of problem by exploring the Emacs code base.

Here is a rough toy function I came up with.

(defun say-word (word)
  (interactive (list
                (read-string (format "word (%s): " (thing-at-point 'word))
                             nil nil (thing-at-point 'word))))
  (message "The word is %s" word))

One key thing here is to understand how the interactive form works. I would read the relevant manual section carefully.

like image 155
event_jr Avatar answered Oct 19 '22 14:10

event_jr