Emacs中符号高亮

日常都是使用symbol-overlay包在编程时进行符号高亮,James Cherti介绍了Emacs内置功能实现符号高亮的方法,核心是使用Emacs内置的hi-lock包来实现。

执行 hi-lock-face-symbol-at-point 可以高亮当前符号,执行 hi-lock-unface-buffer 可以选择需要符号来取消高亮。James Cherti实现了一个便捷开启和关闭符号高亮的函数。

(defun simple-toggle-highlight-symbol-at-point ()
  "Toggle highlighting for the symbol at point."
  (interactive)
  (when-let* ((regexp (find-tag-default-as-symbol-regexp)))
    (if (member regexp (hi-lock--regexps-at-point))
        ;; Unhighlight symbol at point
        (hi-lock-unface-buffer regexp)
      ;; Highlight symbol at point
      (hi-lock-face-symbol-at-point))))

Mickey Petersen之前也在Mastering Emacs介绍了单词/句子/正则表达式匹配高亮的使用方法,Emacs已内置了快捷键来快速使用这些功能,这些功能也是hi-lock包提供的。