我想在允许用户复制文本之前评估某些条件。据我所知,我需要一个建议"kill-ring-save"
。如果条件不满足,我需要忽略用户复制该文本的请求,如果满足则允许它。我怎样才能做到这一点?
(更新)——关于约束的更多信息:仅在 Emacs 的特定模式(例如 NXML 模式)中,应应用此建议并且仅在满足一个/多个特定条件时应用。
我想在允许用户复制文本之前评估某些条件。据我所知,我需要一个建议"kill-ring-save"
。如果条件不满足,我需要忽略用户复制该文本的请求,如果满足则允许它。我怎样才能做到这一点?
(更新)——关于约束的更多信息:仅在 Emacs 的特定模式(例如 NXML 模式)中,应应用此建议并且仅在满足一个/多个特定条件时应用。
快速概念验证;你不知道你的约束是什么,所以这必然是模糊/无用的。
(defvar moo nil)
(defadvice kill-ring-save (around kill-ring-check-constraints activate compile)
"If in `nxml-mode', don't save to kill ring if `moo' is `nil'."
(if (and (eq major-mode 'nxml-mode) (null moo))
(message "Not copied.")
ad-do-it) )
为了回应下面的评论,添加了额外的主要模式约束。如果您希望在每种模式下都这样做,只需取出模式检查即可。