更改 GNUS 组的显示名称

Posted

技术标签:

【中文标题】更改 GNUS 组的显示名称【英文标题】:Changing the display name of a GNUS group 【发布时间】:2014-04-04 17:40:07 【问题描述】:

有没有什么方法可以在不重命名组的情况下更改 GNUS 中组的显示名称?我从 IMAP 服务器上读取了我的电子邮件,并且组名非常难看(例如 nnimap+uwindsor:INBOX。)我尝试使用命令 gnus-group-rename-group 但它试图更改实际服务器上的名称。有什么方法可以简单地将实际名称映射到某个本地显示名称,以使我的组缓冲区更具可读性?

【问题讨论】:

我希望该参数不会影响此特定问题,但(banner . REGEXP) 组参数会从文章中删除与REGEXP 的任何匹配项... 嗯,是的,这似乎不行。我不需要更改文章中的文字,而是更改组本身的名称。 另外,this page 上的 (variable form) 列出了删除标签等的方法... 您是否调整了gnus-group-line-format 变量?注意this page,尤其是NAMESPACE 部分,其中讨论了“用户格式功能”。 哇哦,谢谢。这实际上真的很有帮助。稍后我将使用 %uG 描述的技术将真实姓名映射到“更漂亮”的姓名。 【参考方案1】:

这就是我解决问题的方法。首先,非常感谢abiessu 通过他的 cmets 为我指明了正确的方向。

(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 很好,因为我可以随心所欲地创建映射,而不必求助于正则表达式、模式等。

【讨论】:

以上是关于更改 GNUS 组的显示名称的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查询每组的最大值

groupmod---更改群组识别码或名称

如何更改独立 watchOS 应用的显示名称?

Lync 2010 更改发件人的显示名称

更改 Cordova Geolocation iOS 的显示名称

Sharepoint 2010 - 通过 XSL 更改列表名称和列标题显示名称