将组织模式超链接显示为纯文本


25

尽管org-mode如何显示超链接很方便,但有时我还是想查看底层的纯文本,例如[[./file.org][Title]]。我怎样才能做到这一点?

我知道org-insert-link,但这不是我想要的:

Cc Cl运行命令org-insert-link,这是org.el中的一个交互式编译的Lisp函数。

...

如果此时已经存在链接,则此命令将允许您编辑链接和描述部分。

Answers:


28

我刚刚在组织的源代码中找到了一个不错的功能:M-x org-toggle-link-display

这是源代码,只是为了好玩:

(defun org-toggle-link-display ()
  "Toggle the literal or descriptive display of links."
  (interactive)
  (if org-descriptive-links
      (progn (org-remove-from-invisibility-spec '(org-link))
         (org-restart-font-lock)
         (setq org-descriptive-links nil))
    (progn (add-to-invisibility-spec '(org-link))
       (org-restart-font-lock)
       (setq org-descriptive-links t))))

3
这个。另外,如果要永久保留此行为,只需将其添加(setq org-descriptive-links nil)到您的init文件中即可。
撤销2014年

2
注意这个变量是从“单位>超链接”菜单访问
安德鲁·斯旺

12

一种有用的方法是

M-x font-lock-mode

切换字体锁定。禁用字体锁定后,超链接将以其未修饰的形式显示[[./file.org][Title]]。这对于查看缓冲区中的其他标记是一种有用的方法。


3

我一直在使用此功能。它将在fundamental-mode和原始模式之间切换 (org-mode在这种情况下)。有点奇怪,但我喜欢:

(defun illiterate ()
  (interactive)
  (let ((coding-system-for-read 'utf-8))
    (if (eq major-mode 'fundamental-mode)
        (revert-buffer nil t)
      (let ((pt (1+ (length
                     (encode-coding-string
                      (buffer-substring-no-properties (point-min) (point))
                      'utf-8))))
            (file-name (buffer-file-name)))
        (kill-buffer (current-buffer))
        (find-file-literally file-name)
        (goto-char pt)))))

2
您为什么不能只称基本模式?
马拉巴巴

3
普通文本fundamental-mode将无法正常工作,因为org-mode文本属性会造成太多混乱,并且不会重置。它必须是这样。
abo-abo 2014年

3

一种技术含量较低的方法是将点移动到链接文本的开头,然后键入Cd(即invoke org-delete-char)。这将删除第一个“ [”字符,以便您不再具有格式正确的超链接,并且可以将其其余部分作为原始文本查看。然后,完成后,只需调用undo即可将其还原到以前的状态。


1
在默认组织安装的Mac OS X上的Emacs 24.4(9.0)中,这对我不起作用。
David J.

0

组织模式使用以下代码实现链接效果:

(if org-descriptive-links (add-to-invisibility-spec '(org-link)))

这增加org-link了变量buffer-invisibility-spec,这意味着将其不可见属性设置为的文本org-link将被隐藏。

使用M-x visible-mode RET可以将buffer-invisibility-spec临时重置为nil,这意味着隐藏的文本将从那里开始显示。

M-x visible-mode RET再次使用,您可以将buffer-invisibility-spec其重置为先前的值,这将再次隐藏相关的文本部分。


@Drew现在好了吗?我不知道还有什么添加
clemera '18

@Drew更新了答案
clemera '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.