首页 > 解决方案 > 如何获取调用函数的可点击文本

问题描述

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

CMM-3:       Description
CMM-91:      Description 2

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

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

如何在 emacs/elisp 中实现这一点?

标签: buttonemacs

解决方案


创建一个新的键盘映射,绑定mouse-1到要调用的函数,并将键盘映射作为文本属性添加到链接文本中。设置并添加mouse-face以增加用户友好性 - 当用户将鼠标指针悬停在文本上时生效。highlighthelp-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 参考手册中的可点击文本部分。


推荐阅读