แสดงไฮเปอร์ลิงก์โหมดองค์กรเป็นข้อความธรรมดา


25

แม้ว่ามันจะเป็นวิธีที่สะดวก org [[./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)ไฟล์ init ของคุณ
ยกเลิกการประกาศ

2
หมายเหตุตัวแปรนี้สามารถเข้าถึงได้จากเมนู "องค์กร> ไฮเปอร์ลิงก์"
Andrew Swann

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
ทำไมคุณไม่สามารถเรียกโหมดพื้นฐานได้
Malabarba

3
ธรรมดาfundamental-modeจะไม่ทำงานเนื่องจากorg-modeยุ่งกับคุณสมบัติข้อความมากเกินไปและไม่ได้รับการรีเซ็ต มันจะต้องเป็นอย่างที่มันเป็น
abo-abo

3

วิธีที่ใช้เทคโนโลยีต่ำคือการย้ายจุดไปยังจุดเริ่มต้นของข้อความลิงก์และพิมพ์ Cd (เช่นเรียกใช้org-delete-char) ซึ่งจะลบอักขระ "[" ตัวแรกออกไปเพื่อให้คุณไม่มีไฮเปอร์ลิงก์ที่มีการจัดรูปแบบที่เหมาะสมอีกต่อไปและคุณสามารถเห็นส่วนที่เหลือเป็นข้อความดิบ จากนั้นเมื่อดำเนินการเสร็จสิ้นให้เรียกใช้undoเพื่อคืนค่าเป็นสิ่งที่คุณเคยทำก่อนหน้านี้


1
สิ่งนี้ไม่ได้ผลสำหรับฉันใน Emacs 24.4 (9.0) บน Mac OS X ด้วยการติดตั้ง org เริ่มต้น
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เป็นค่าก่อนหน้าซึ่งจะซ่อนส่วนข้อความที่เกี่ยวข้องอีกครั้ง


@ ดึงดีขึ้นตอนนี้? ฉันไม่รู้ว่าจะเพิ่มอะไรอีกบ้าง
clemera

@Drew อัปเดตคำตอบ
clemera
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.