2012-03-10 2 views
21

Мне интересно, как некоторые интерактивные команды в emacs представляют значение по умолчанию, а другие нет. Например, когда я нахожусь в файле C и курсор стоит на printf, запуск manual-entry будет предлагать показ справочной страницы для printf по умолчанию. Я хотел бы сделать свои собственные интерактивные команды со значением по умолчанию. Как? Кажется, что вещь-на-точке - хорошее направление, но как я могу сочетать вещи в точке и интерактивно?интерактивные команды emacs со значением по умолчанию

ответ

23

У вас уже есть хорошие отправные точкой для изучения вашего собственного решения.

thing-at-point, вероятно, полезен в этом контексте. Я недавно answered вопрос, на котором я объяснил, как решить этот тип проблемы, изучая базу кода Emacs .

Вот грубая игрушечная функция, с которой я придумал.

(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)) 

Одна ключевая вещь здесь, чтобы понять, как работает interactive форма. Я бы внимательно прочитал соответствующий manual section.

+0

Это похоже на то, что я искал. Большое спасибо! –

Смежные вопросы