Показывать гиперссылку в режиме org как обычный текст

25

Хотя в режиме org-mode удобно показывать гиперссылки, бывают случаи, когда я хочу увидеть основной текст, например [[./file.org][Title]]. Как я могу это сделать?

Я знаю о org-insert-link, но это не то, что я хочу

Cc Cl запускает команду org-insert-link, которая представляет собой интерактивно скомпилированную функцию Lisp в org.el.

...

Если в данный момент ссылка уже есть, эта команда позволит вам редактировать части ссылки и описания.

Дэвид Дж.
источник

Ответы:

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)в свой файл инициализации.
отменить
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слишком много портит свойства текста и они не сбрасываются. Это должно быть так, как есть.
Або-або
3

Низкотехнологичный способ - переместить точку в начало текста ссылки и ввести Cd (то есть вызвать org-delete-char). Это удаляет первый символ «[», так что у вас больше нет правильно отформатированной гиперссылки, и вы можете увидеть оставшуюся часть в виде необработанного текста. Затем, когда вы закончите, просто вызовите, undoчтобы восстановить то, что вы имели ранее.

user98761
источник
1
Это не сработало для меня в Emacs 24.4 (9.0) на Mac OS X с установкой org по умолчанию.
Дэвид Дж.
0

В режиме Org достигается эффект ссылки, используя следующий код:

(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прежнее значение, что снова скроет соответствующие части текста.

clemera
источник
@ Лучше сейчас? Я не знаю, что еще добавить
Clemera
@Drew Обновил ответ
Clemera