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.
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.
Câu trả lời:
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 description
là tùy chọn; nếu bạn không chỉ định một, liên kết sẽ có dạng
[[target]]
x-clipboard-yank
thay vì yank
dá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)
).
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-mode
liê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 description
cá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")))))
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:
org-cliplink
(cũng có sẵn thông qua Melpa)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-cliplink
trong 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 đó.