button - 如何获取调用函数的可点击文本
问题描述
假设我在缓冲区中有以下文本
CMM-3: Description
CMM-91: Description 2
我希望 CMM-XX 成为调用自定义功能的可点击区域
(defun jira-ticket-view (&optional jira-ticket)
"Open Jira Ticket Inside Emacs"
(interactive)
....)
如何在 emacs/elisp 中实现这一点?
解决方案
创建一个新的键盘映射,绑定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 参考手册中的可点击文本部分。
推荐阅读
- c# - 如何将非单例添加到 DotNet Core 3.0 Worker 服务?
- php - Lumen/Laravel 6:调用未定义的函数 array_except()
- c++ - std::localtime 返回 null
- sql - 从 nvarchar 文本中提取前 6 行,其余部分
- c# - .net core 3.0 AOT JIT 第一次调用还是很慢
- java - 注释作为对象的替代品?
- pandas - 如何使用熊猫将基于时间的列保存到 excel 文件中?
- python - 如何将 Python 对象(不是 JSON 可序列化的)从一个(AWS)lambda 函数传递到另一个?
- excel - 更新库存清单
- c - 在 C 中使用大小为 10 的一维数组添加偶数