Existe uma maneira simples de inserir um link no modo organizacional diretamente da área de transferência do sistema? Estou pensando em selecionar um URL no Safari e inserir esse link diretamente em um documento no modo organizacional.
Existe uma maneira simples de inserir um link no modo organizacional diretamente da área de transferência do sistema? Estou pensando em selecionar um URL no Safari e inserir esse link diretamente em um documento no modo organizacional.
Respostas:
Sua pergunta não é muito específica em relação ao tipo de link que você deseja e ao que você considera "simples". Supondo que você queira dizer um link do seguinte formulário:
[[target][description]]
o fluxo de trabalho padrão (depois de colocar o URL na sua área de transferência) é:
C-c C-l C-y RET description
RET
Digitar a description
é opcional; se você não especificar um, o link terá o formato
[[target]]
x-clipboard-yank
vez de yank
colar o conteúdo da área de transferência. Esse comando não está vinculado a uma chave por padrão, portanto, você precisará chamá-lo usando M-x
. Se isso resolver o problema, é claro que você pode configurar uma ligação de chave conveniente para ele (via (global-set-key (kbd "C-c y") 'x-clipboard-yank)
).
Dependendo de qual das duas opções você preferir, aqui estão duas funções que verificam se há uma URL na área de transferência e, se houver, insira-a no ponto como um org-mode
link. O primeiro faz isso na forma de [[url]]
, e o último na forma de [[url][description]]
e deixa você no description
campo.
(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")))))
Eu criei um pacote emacs que pode ajudá-lo a inserir links do modo organizacional na área de transferência:
org-cliplink
(também disponível via Melpa)Ele faz uma solicitação HTTP para o URL da área de transferência e se a resposta contém HTML ele tenta extrair o título e insere o link org-mode neste formato: [[URL][extracted-title]]
.
Por exemplo, depois de copiar o link desta pergunta , fazer M-x org-cliplink
em um buffer de modo organizacional irá inserir:
[[https://emacs.stackexchange.com/q/3280][org mode - Orgmode insert link from clipboard? - Emacs Stack Exchange]]
e o link parecerá com hiperlink como modo organizacional - Orgmode inserir link da área de transferência? - Emacs Stack Exchange nesse buffer.