有没有办法在GNUS中更改组的显示名称而不实际重命名该组?我从IMAP服务器上读取电子邮件,而且组名相当丑陋(例如nnimap+uwindsor:INBOX)。我尝试使用
gnus-group-rename-group
命令,但它试图更改服务器上的名称。有没有办法将实际名称映射到某个本地显示名称,以使我的组缓冲区更易读一些?以下是我如何解决这个问题的方法。首先,非常感谢abiessu通过他的评论使我找到了正确的方向。
(setq gnus-group-line-format "%M%S%5y/%-5t: %uG %D\n")
(defun gnus-user-format-function-G (arg)
(let ((mapped-name (assoc gnus-tmp-group group-name-map)))
(if (null mapped-name)
gnus-tmp-group
(cdr mapped-name))))
这个小函数简单地在我定义的映射中查找当前组名,如果有“翻译”,它会显示翻译后的名称而不是实际名称。在我的配置中使用了一些示例:
(setq group-name-map '(("nnimap+uwindsor:INBOX" . "School-Inbox")
("nnimap+uwindsor:[Gmail]/Starred" . "School-Starred")
("nnimap+uwindsor:[Gmail]/Sent Mail" . "School-Sent")))
仅使用alist非常好,因为我可以按照自己的意愿创建映射,无需诉诸于正则表达式、模式等。
(banner . REGEXP)
组参数将从文章中剥离任何匹配到REGEXP
的内容... - abiessu(变量形式)
列出了去除标签等的方法... - abiessugnus-group-line-format
变量了吗?请注意这个页面,特别是讨论“用户格式函数”的NAMESPACE
部分。 - abiessu%uG
技术。 - bstamour