如何删除Emacs中的某些链接类型?

时间:2016-04-22 07:44:29

标签: emacs

我通过以下方式点击了所有网址:

(define-globalized-minor-mode global-goto-address-mode goto-address-mode goto-address-mode)
(global-goto-address-mode)

但是,当我有一个带有" service命令的shell命令时,"子字符串,Emacs将其视为链接不正确。如何删除该链接类型?

2 个答案:

答案 0 :(得分:1)

Emacs 27.1通过两个新变量使它更具可配置性:

  • goto-address-uri-schemes-ignored
  • goto-address-uri-schemes

您应该仅设置两个中的一个,并且对于每个文档字符串,必须在加载goto-addr库之前 进行设置。这是因为新变量只是定义goto-address-url-regexp时使用的中间值 1 -就像以前一样,它是库最终使用的唯一值。

如果要在加载goto-addr后更改 的行为,则需要重新生成或设置goto-address-url-regexp,与早期版本完全相同。有关执行此操作的示例,请参见my original answer


1 具体来说,goto-address-uri-schemes-ignored影响goto-address-uri-schemes默认值,而该值又影响 default 的值的goto-address-url-regexp

答案 1 :(得分:0)

试试这个:

(setq goto-address-url-regexp
      (concat "\\<"
              (regexp-opt (cl-delete-if
                           (lambda (x)
                             (member x '("mailto:" "data:" "service:")))
                           (copy-sequence thing-at-point-uri-schemes))
                          :paren)
              thing-at-point-url-path-regexp))

这也应该修复原始正则表达式中的错误,所以它也可以匹配一些新的东西,但可能没什么你担心的(“svn + ssh://”和“bzr + ssh://”将现在匹配,其他一些将受到更多限制点的关注。基本上原始代码没有regexp引用方案!)

请注意,“mailto:”和“data:”被排除在原文中。