Partiye geç (ve buradaki ilk yazım), ancak bunun başkaları için de yararlı olabileceğini düşünüyorum. Kabul edilen cevap tekrar emac'ların içine girerken mükemmel çalışır, ancak sistem panosuna kopyalanan gerçek metin hala tam org modu sözdizimidir. Ben org-mod ikisinin bir bağlantıyı kopyalayabilirsiniz şey istedim ve emacs. Kullanım örnekleri: Son zamanlarda çok fazla web geliştirdim ve sık sık birden çok tarayıcı kullanıyorum. Bunlardan yalnızca biri C-c c-o
kısayol için varsayılan olabilir ve bazen varsayılan olmayan bir bağlantıda bir bağlantı açmak istiyorum. Ayrıca, Slack, et cetera'daki çalışma arkadaşlarına bağlantılar yapıştırmak.
Uzun lafın kısası, kabul edilen cevabı karıştırarak ve eşleştirerek bu çözümü buldum :
(defun my-org-export-url ()
(interactive)
(let* ((link-info (assoc :link (org-context)))
(text (when link-info
(buffer-substring-no-properties (or (cadr link-info) (point-min))
(or (caddr link-info) (point-max))))))
(if (not text)
(error "Not in org link")
(string-match org-bracket-link-regexp text)
(kill-new (substring text (match-beginning 1) (match-end 1))))))
Bu, panoya bir kuruluş modu bağlantısının yalnızca bir bölümünü kopyalar.
Aslında, hem önceki yanıtlayıcının çözümünü hem de bu yeni işlevi içimde birleştirdim .emacs
, her birinin kendi tuş bağlantısı var. Tam kodu burada:
(defun my-yank-org-link (text)
(if (derived-mode-p 'org-mode)
(insert text)
(string-match org-bracket-link-regexp text)
(insert (substring text (match-beginning 1) (match-end 1)))))
(defun my-org-copy-smart-url ()
(interactive)
(let* ((link-info (assoc :link (org-context)))
(text (when link-info
(buffer-substring-no-properties (or (cadr link-info) (point-min))
(or (caddr link-info) (point-max))))))
(if (not text)
(error "Not in org link")
(add-text-properties 0 (length text) '(yank-handler (my-yank-org-link)) text)
(kill-new text))))
(global-set-key (kbd "C-c c") 'my-org-copy-smart-url)
(defun my-org-export-url ()
(interactive)
(let* ((link-info (assoc :link (org-context)))
(text (when link-info
(buffer-substring-no-properties (or (cadr link-info) (point-min))
(or (caddr link-info) (point-max))))))
(if (not text)
(error "Not in org link")
(string-match org-bracket-link-regexp text)
(kill-new (substring text (match-beginning 1) (match-end 1))))))
(global-set-key (kbd "C-c e") 'my-org-export-url)
Benim seçimim C-c e
ve C-c c
onlar için iyi kısaltmalar çünkü keybinding e
Dışa Aktar ve c
opyala ve org modunda kullanılmayan bulunmaktadır. Ayrıca, bağlantı bağlantıları C-c C-o
için zaten var olan tuş o
bağlama ile bir şekilde uyuyorlar.
if
GUI Emacs kullanırken her zaman Bağlantının tamamını (kopyalanan çünkü[[a]][b]]
yerine URL kısmının) (a
)