Orgmode chèn liên kết từ clipboard?


9

Có cách nào đơn giản để chèn liên kết chế độ org trực tiếp từ bảng tạm hệ thống không? Tôi đang nghĩ đến việc chọn một URL trong Safari và chèn liên kết đó trực tiếp vào tài liệu ở chế độ tổ chức.


1
Ngoài ra, thật tuyệt khi cấu hình bookmarklet để tự động chèn liên kết bằng cách sử dụng chức năng chụp. Xem tại đây: orgmode.org/worg/org-contrib/org-protatio.html
mbork

Câu trả lời:


12

Câu hỏi của bạn không cụ thể đối với loại liên kết bạn muốn và những gì bạn cho là "đơn giản". Giả sử rằng bạn có nghĩa là một liên kết của các hình thức sau đây:

[[target][description]]

quy trình làm việc mặc định (sau khi đặt URL vào khay nhớ tạm của bạn) là:

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

Nhập a descriptionlà tùy chọn; nếu bạn không chỉ định một, liên kết sẽ có dạng

[[target]]

Đủ đơn giản. Nó hoạt động như mong đợi trên máy Windows, nhưng vì một số lý do không thể sao chép / dán URL từ Firefox hoặc Safari vào Emacs trên MacOS với Emacs 25.0.50
Alain

@ Alain Tôi không có trên MacOS vì vậy tôi không thể kiểm tra nó, nhưng bạn có thể thử sử dụng x-clipboard-yankthay vì yankdán nội dung của bảng tạm. Lệnh này không bị ràng buộc với một khóa theo mặc định, vì vậy bạn sẽ phải gọi nó bằng cách sử dụng M-x. Nếu điều đó giải quyết được vấn đề, tất nhiên bạn có thể thiết lập một ràng buộc khóa thuận tiện cho nó (thông qua (global-set-key (kbd "C-c y") 'x-clipboard-yank)).
itjeyd

3

Tùy thuộc vào mục nào trong hai bạn thích, đây là hai chức năng kiểm tra xem có URL nào trong bảng tạm không và nếu có, hãy chèn nó tại điểm dưới dạng org-modeliên kết. Cái trước làm nó ở dạng [[url]], và cái sau ở dạng [[url][description]]và để bạn ở lại descriptioncánh đồng.

(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

Tôi đã tạo một gói emacs có thể giúp bạn chèn các liên kết chế độ org từ bảng tạm:

Nó tạo một yêu cầu HTTP đến URL từ bảng ghi tạm và nếu phản hồi có chứa HTML, nó sẽ cố trích xuất tiêu đề và chèn liên kết chế độ org theo định dạng này : [[URL][extracted-title]].


Ví dụ: sau khi sao chép liên kết của câu hỏi này , thực hiện M-x org-cliplinktrong bộ đệm chế độ org sẽ chèn:

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

và liên kết sẽ trông siêu liên kết dưới dạng chế độ org - liên kết chèn Orgmode từ clipboard? - Trao đổi ngăn xếp Emacs trong bộ đệm đó.

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.