파티에 늦게 (그리고 여기의 첫 번째 게시물), 이것이 다른 사람들에게도 유용 할 것이라고 생각합니다. 허용 된 답변은 emacs 내부에서 다시 king을 때 완벽하게 작동하지만 시스템 클립 보드에 복사 된 실제 텍스트는 여전히 전체 조직 모드 구문입니다. 나는 org-mode 와 emacs 에서 링크를 복사 할 수있는 것을 원했습니다 . 사용 사례 : 최근에 많은 웹 개발을 해왔으며 종종 여러 브라우저를 사용합니다. 그중 하나만 C-c c-o
바로 가기 의 기본값이 될 수 있으며 때로는 기본이 아닌 링크로 링크를 열고 싶습니다. 또한 Slack 등의 동료와의 링크를 붙여 넣습니다.
간단히 말해서, 나는 받아 들여진 대답 을 혼합하고 일치 시켜이 솔루션을 생각해 냈습니다 .
(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))))))
이렇게하면 조직 모드 링크의 일부만 링크를 클립 보드에 복사합니다.
사실, 나는 이전 답변의 솔루션 과이 새로운 기능을 모두 내 .emacs
자신의 키 바인딩으로 my 안에 통합 했습니다. 전체 코드는 다음과 같습니다.
(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)
xport와 opy에 대한 좋은 니모닉 이고 org-mode에서는 사용되지 않기 때문에 C-c e
and C-c c
키 바인딩을 선택했습니다 . 또한 펜싱 링크에 대한 기존 키 바인딩과 어쨌든 맞습니다 .e
c
C-c C-o
o
if
GUI를 이맥스를 사용할 때 항상 전체 링크 (복사 있기 때문에,[[a]][b]]
대신 URL 부분의) (a
)