使用regexp(1)突出显示emacs缓冲区中的文本后,在文件(2)中编写设置很容易,但我缺少持久性的第三步。
(1)设置
执行M-s h r
(highlight-regexp
),比如,\{.*\}
后跟italic
会突出显示该样式的花括号之间的所有内容。
(2)写
随后调用C-x w b
(hi-lock-write-interactive-patterns
)将写入字符串
# Hi-lock: (("\\{.*\\}" (0 (quote italic) t)))
在请求注释字符串(我使用#)后,在缓冲区中。
(3)重新使用
使这个突出显示持久化所需的第三步是什么,即使其能够在磁盘上保存/加载文件?
答案 0 :(得分:1)
如果您使用C-h f hi-lock-write-interactive-pattern,您将在帮助缓冲区中看到hi-lock.el的链接。通常Lisp库在文件的开头有一些使用信息,它很方便检查。
在这种情况下,它告诉如何使其持久化:
;; To enable the use of patterns found in files (presumably placed
;; there by hi-lock) include the following in your init file:
;;
;; (setq hi-lock-file-patterns-policy 'ask)
;;
;; If you get tired of being asked each time a file is loaded replace
;; `ask' with a function that returns t if patterns should be read.
答案 1 :(得分:0)
创建一个具有与要加载的文件相关的钩子的函数的可能性怎么样 - 例如,文本模式钩子或者特定的文件钩子(如果存在这样的东西)?
;; M-x ae-hi-lock-features
(global-hi-lock-mode 1)
(defface af-bold-yellow-box '((t (:background "black"
:foreground "yellow"
:underline "red"
:height 200
:bold t
))) "yellow-box-face")
(defun z-hi-lock-quizzes ()
;; this next line is necessary to correct sloppy hi-locking
(if (not hi-lock-mode)
(progn (hi-lock-mode -1)
(hi-lock-mode 1))
(hi-lock-mode)
(hi-lock-mode))
(highlight-regexp "^%-\\*-mode:LaTeX.*$" (quote hi-conceal-content));
(highlight-regexp "^%-@-(.+$" (quote hi-lock-page-break));
(highlight-regexp "food" (quote af-bold-yellow-box));
)
(defun ae-hi-lock-features ()
(interactive)
(z-hi-lock-quizzes)
;; ... call other functions ...
)
(add-hook 'text-mode-hook 'ae-hi-lock-features)
答案 2 :(得分:0)
https://www.gnu.org/software/emacs/manual/html_node/emacs/Highlight-Interactively.html
C-x w i
从当前缓冲区中的注释中提取regexp / face对(hi-lock-find-patterns)。
因此,您可以以交互方式输入模式 使用highlight-regexp,将它们存储到文件中 高保真 - 写 - 交互 - 模式,编辑它们(可能包括 匹配的不同括号部分的不同面孔),和 最后使用此命令(hi-lock-find-patterns)来获得Hi Lock 突出显示已编辑的模式。