如何获取调用函数的可点击文本

时间:2019-03-26 18:37:19

标签: button emacs

假设我在缓冲区中有以下文字

CMM-3:       Description
CMM-91:      Description 2

我希望CMM-XX成为可调用自定义功能的可点击区域

(defun jira-ticket-view (&optional jira-ticket)
  "Open Jira Ticket Inside Emacs"
  (interactive)
  ....)

这如何在emacs / elisp中实现?

1 个答案:

答案 0 :(得分:5)

创建一个新的键盘映射,将mouse-1绑定到要调用的函数,然后将键盘映射作为文本属性添加到链接文本中。将mouse-face设置为highlight并添加help-echo可以提高用户友好度-当用户将鼠标指针悬停在文本上方时,这些设置才会生效。

(defun my-function ()
  (interactive)
  (message "You've clicked the text!"))

(let ((map (make-sparse-keymap)))
  (define-key map [mouse-1] 'my-function)
  (insert "Foo: "
          (propertize "bar" 'keymap map 'mouse-face 'highlight 'help-echo "Click here!")
          "\n"))

有关更多信息,请参见elisp参考手册中的Clickable text部分。