Hiển thị siêu liên kết chế độ org dưới dạng văn bản thuần túy


25

Mặc dù thật tiện lợi khi chế độ org hiển thị các siêu liên kết, nhưng có những lúc tôi muốn xem văn bản đơn giản bên dưới, ví dụ [[./file.org][Title]]. Tôi có thể làm cái này như thế nào?

Tôi biết org-insert-link, nhưng đó không phải là điều tôi muốn:

Cc Cl chạy lệnh org-insert-link, là một hàm Lisp được biên dịch tương tác trong 'org.el'.

...

Nếu đã có một liên kết tại điểm, lệnh này sẽ cho phép bạn chỉnh sửa các phần liên kết và mô tả.

Câu trả lời:


28

Tôi chỉ tìm thấy một chức năng tốt đẹp trong mã nguồn org : M-x org-toggle-link-display.

Đây là mã nguồn, chỉ để cho vui:

(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
Điều này. Ngoài ra, nếu bạn muốn giữ hành vi này vĩnh viễn, chỉ cần thêm (setq org-descriptive-links nil)vào tệp init của bạn.
hủy bỏ

2
Lưu ý rằng biến này có thể truy cập được từ menu "Org> Hyperlinks"
Andrew Swann

12

Một cách hữu ích để làm điều này là

M-x font-lock-mode

mà tắt khóa chữ. Khi khóa phông chữ tắt, siêu liên kết sẽ hiển thị ở dạng không được trang trí [[./file.org][Title]]. Đây có thể là một cách tiếp cận hữu ích để xem các phần đánh dấu khác trong bộ đệm.


3

Tôi đã sử dụng chức năng này. Nó sẽ chuyển đổi giữa fundamental-modevà chế độ ban đầu ( org-modetrong trường hợp này). Hơi lạ một chút, nhưng tôi thích nó:

(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
Tại sao bạn không thể gọi chế độ cơ bản?
Malabarba

3
Plain fundamental-modesẽ không hoạt động, vì org-modelàm rối quá nhiều với các thuộc tính văn bản và chúng không được thiết lập lại. Nó cần phải là như vậy.
abo-abo

3

Một cách công nghệ thấp là di chuyển điểm đến đầu văn bản liên kết và gõ Cd (nghĩa là gọi org-delete-char). Điều đó loại bỏ ký tự "[" đầu tiên, do đó bạn không còn có một siêu liên kết được định dạng chính xác và bạn có thể thấy phần còn lại của nó là văn bản thô. Sau đó, khi bạn hoàn thành, chỉ cần gọi undođể khôi phục nó về những gì bạn đã có trước đó.


1
Điều này không hoạt động với tôi trong Emacs 24.4 (9.0) trên Mac OS X với cài đặt org mặc định.
David J.

0

Chế độ Org đạt được hiệu ứng liên kết bằng mã sau:

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

Điều này thêm org-linkvào biến buffer-invisibility-speccó nghĩa là văn bản có thuộc tính vô hình được đặt org-linksẽ bị ẩn.

Sử dụng M-x visible-mode RETbạn có thể đặt lại buffer-invisibility-spectạm thời nil, có nghĩa là văn bản ẩn sẽ được hiển thị từ đó.

Sử dụng M-x visible-mode RETlại, bạn có thể đặt lại buffer-invisibility-specvề giá trị trước đó, nó sẽ ẩn các phần văn bản có liên quan một lần nữa.


@Drew Tốt hơn bây giờ? Tôi không biết thêm gì nữa
clemera

@Drew Cập nhật câu trả lời
clemera
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.