Orgmode inserir link da área de transferência?


9

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.


11
Além disso, é muito bom configurar um bookmarklet para inserir automaticamente o link usando a captura. Veja aqui: orgmode.org/worg/org-contrib/org-protocol.html
mbork

Respostas:


12

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]]

Simples o suficiente. Funciona como esperado em uma máquina Windows, mas, por algum motivo, não pode copiar / colar uma URL do Firefox ou Safari no Emacs no MacOS com o Emacs 25.0.50
Alain

@ Alain Não estou no MacOS, então não posso testá-lo, mas você pode tentar usar em x-clipboard-yankvez de yankcolar 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)).
itsjeyd

3

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-modelink. O primeiro faz isso na forma de [[url]], e o último na forma de [[url][description]]e deixa você no descriptioncampo.

(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

Eu criei um pacote emacs que pode ajudá-lo a inserir links do modo organizacional na área de transferência:

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-cliplinkem 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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.