Orgmode แทรกลิงค์จากคลิปบอร์ด?


9

มีวิธีง่าย ๆ ในการแทรกลิงค์โหมดองค์กรโดยตรงจากคลิปบอร์ดของระบบหรือไม่? ฉันกำลังคิดที่จะเลือก URL ใน Safari และแทรกลิงก์นั้นลงในเอกสารโหมดองค์กรโดยตรง


1
นอกจากนี้ยังเป็นเรื่องดีมากที่จะกำหนดค่า bookmarklet ให้แทรกลิงก์โดยอัตโนมัติโดยใช้การจับภาพ ดูที่นี่: orgmode.org/worg/org-contrib/org-protocol.html
mbork

คำตอบ:


12

คำถามของคุณไม่เจาะจงมากนักเกี่ยวกับประเภทของลิงค์ที่คุณต้องการและสิ่งที่คุณคิดว่า "ง่าย" สมมติว่าคุณหมายถึงลิงค์ของแบบฟอร์มต่อไปนี้:

[[target][description]]

เวิร์กโฟลว์เริ่มต้น (หลังจากใส่ URL ในคลิปบอร์ดของคุณ) คือ:

C-c C-l C-y RET description RET

การป้อน a descriptionเป็นทางเลือก หากคุณไม่ได้ระบุไว้ลิงค์จะอยู่ในแบบฟอร์ม

[[target]]

เรียบง่ายพอสมควร ใช้งานได้ตามที่คาดหวังในเครื่อง Windows แต่ด้วยเหตุผลบางอย่างไม่สามารถคัดลอก / วาง URL จาก Firefox หรือ Safari ลงใน Emacs บน MacOS ด้วย Emacs 25.0.50
Alain

@ ถึงแม้ว่าฉันไม่ได้อยู่ใน MacOS ดังนั้นฉันจึงไม่สามารถทดสอบได้ แต่คุณสามารถลองใช้x-clipboard-yankแทนที่จะyankวางเนื้อหาของคลิปบอร์ด M-xคำสั่งนี้จะไม่ผูกพันกับที่สำคัญโดยค่าเริ่มต้นดังนั้นคุณจะต้องเรียกว่าใช้ หากวิธีนี้แก้ปัญหาได้แน่นอนคุณสามารถตั้งค่าการเชื่อมโยงคีย์สะดวกสำหรับมัน (ผ่าน(global-set-key (kbd "C-c y") 'x-clipboard-yank))
itsjeyd

3

นี่คือฟังก์ชันสองอย่างที่ตรวจสอบเพื่อดูว่ามี URL ในคลิปบอร์ดหรือไม่และถ้าเป็นเช่นนั้นให้แทรกที่จุดนั้นเป็นorg-modeลิงก์ อดีตทำในรูปแบบของ[[url]]และหลังในรูปแบบของ[[url][description]]และออกจากคุณในdescriptionสนาม

(defun insert-url-as-org-link-sparse ()
  "If there's a URL on the clipboard, insert it as an org-mode
link in the form of [[url]]."
  (interactive)
  (let ((link (substring-no-properties (x-get-selection 'CLIPBOARD)))
        (url  "\\(http[s]?://\\|www\\.\\)"))
    (save-match-data
      (if (string-match url link)
          (insert (concat "[[" link "]]"))
        (error "No URL on the clipboard")))))

(defun insert-url-as-org-link-fancy ()
  "If there's a URL on the clipboard, insert it as an org-mode
link in the form of [[url][*]], and leave point at *."
  (interactive)
  (let ((link (substring-no-properties (x-get-selection 'CLIPBOARD)))
        (url  "\\(http[s]?://\\|www\\.\\)"))
    (save-match-data
      (if (string-match url link)
          (progn
            (insert (concat "[[" link "][]]"))
            (backward-char 2))
        (error "No URL on the clipboard")))))

3

ฉันได้สร้างแพ็คเกจ emacs ที่อาจช่วยคุณในการแทรกลิงก์โหมดองค์กรจากคลิปบอร์ด:

มันทำให้การร้องขอ HTTP ไปยัง URL จากคลิปบอร์ดและถ้าการตอบสนองมี HTML ก็พยายามที่จะดึงชื่อและแทรกลิงค์ org [[URL][extracted-title]]โหมดในรูปแบบนี้


ตัวอย่างเช่นหลังจากคัดลอกลิงก์ของคำถามนี้การทำM-x org-cliplinkในบัฟเฟอร์โหมดองค์กรจะแทรก:

[[https://emacs.stackexchange.com/q/3280][org mode - Orgmode insert link from clipboard? - Emacs Stack Exchange]]

และลิงค์จะดูไฮเปอร์ลิงก์เป็นโหมด org - Orgmode แทรกลิงค์จากคลิปบอร์ด? - Emacs Stack Exchangeในบัฟเฟอร์นั้น

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