Pokaż hiperłącze trybu org jako zwykły tekst

25

Chociaż wygodnie jest wyświetlać hiperłącza w trybie organizacji, zdarzają się chwile, gdy chcę zobaczyć podstawowy tekst, np [[./file.org][Title]]. W jaki sposób mogę to zrobić?

Wiem o tym org-insert-link, ale nie tego chcę:

Cc Cl uruchamia komendę org-insert-link, która jest interaktywną skompilowaną funkcją Lisp w `org.el '.

...

Jeśli w punkcie znajduje się już łącze, to polecenie pozwoli ci edytować części łącza i opisu.

David J.
źródło

Odpowiedzi:

28

Właśnie znalazłem piękny funkcji w kodzie źródłowym org: M-x org-toggle-link-display.

Oto kod źródłowy, dla zabawy:

(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))))
David J.
źródło
3
To. Ponadto, jeśli chcesz zachować to zachowanie na stałe, po prostu dodaj (setq org-descriptive-links nil)do pliku init.
wycofuje
2
Uwaga: ta zmienna jest dostępna z menu „Org> Hiperłącza”
Andrew Swann,
12

Przydatnym sposobem na to jest

M-x font-lock-mode

który przełącza blokowanie czcionek. Gdy blokowanie czcionek jest wyłączone, hiperłącze jest widoczne w nieokreślonej formie [[./file.org][Title]]. Może to być przydatne podejście do oglądania innych fragmentów narzutów w buforze.

Andrew Swann
źródło
3

Korzystałem z tej funkcji. Przełącza pomiędzy fundamental-modetrybem oryginalnym ( org-modew tym przypadku). To trochę dziwne, ale lubię to:

(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)))))
abo-abo
źródło
2
Dlaczego nie można po prostu wywołać trybu podstawowego?
Malabarba
3
Zwykły fundamental-modenie będzie działał, ponieważ org-modezbyt wiele bałaganu z właściwościami tekstu i nie zostaną zresetowane. Musi tak być.
abo-abo
3

Niski poziom techniki polega na przesunięciu punktu na początek tekstu linku i wpisaniu Cd (tj. Invoke org-delete-char). To usuwa pierwszy znak „[”, dzięki czemu nie masz już poprawnie sformatowanego hiperłącza, a resztę możesz zobaczyć jako nieprzetworzony tekst. Następnie, gdy skończysz, po prostu wywołaj, undoaby przywrócić to, co wcześniej.

użytkownik98761
źródło
1
Nie działało to dla mnie w Emacs 24.4 (9.0) na Mac OS X z domyślną instalacją org.
David J.
0

Tryb Org osiąga efekt połączenia za pomocą następującego kodu:

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

To dodaje org-linkdo zmiennej, buffer-invisibility-specco oznacza, że ​​tekst, dla którego ustawiono niewidoczną właściwość, org-linkzostanie ukryty.

Za pomocą M-x visible-mode RETmożesz zresetować buffer-invisibility-spectymczasowe na nil, co oznacza, że ​​ukryty tekst będzie odtąd wyświetlany.

Używając M-x visible-mode RETponownie, możesz zresetować buffer-invisibility-specdo poprzedniej wartości, która ponownie ukryje odpowiednie części tekstu.

Clemera
źródło
@Drew Better now? Nie wiem, co jeszcze dodać
clemera
@Drew Zaktualizowano odpowiedź
clemera,