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?
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With