Respostas:
Para copiar a região atual para a área de transferência do OS X, você pode usar
(shell-command-on-region (region-beginning) (region-end) "pbcopy")
A inversa, copiar o buffer de colagem do OS X para o Emacs kill ring, não é recomendada. Anéis de matança e pranchetas são estruturas muito diferentes e não há uma boa resposta para o que, exatamente, empurrar uma prancheta para um anel de matança deve fazer. Ainda assim, você pode executar pbpaste
manualmente para obter o conteúdo atual da área de transferência.
Adicione isto a ~/.emacs
:
(defun pbcopy ()
(interactive)
(call-process-region (point) (mark) "pbcopy")
(setq deactivate-mark t))
(defun pbpaste ()
(interactive)
(call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))
(defun pbcut ()
(interactive)
(pbcopy)
(delete-region (region-beginning) (region-end)))
(global-set-key (kbd "C-c c") 'pbcopy)
(global-set-key (kbd "C-c v") 'pbpaste)
(global-set-key (kbd "C-c x") 'pbcut)
Se você usa o Emacs no iTerm 2, também pode remapear as combinações de teclas nas preferências:
Em seguida, adicione algo como isto para ~/.emacs
:
(global-set-key (kbd "<f13> c") 'pbcopy)
(global-set-key (kbd "<f13> v") 'pbpaste)
(global-set-key (kbd "<f13> x") 'pbcut)
Aqui está uma solução para integrar o OS X Clipboard ao ring kill do Emacs de Daniel Nelson: https://github.com/wesen/emacs/blob/master/pbcopy.el
Comentários do autor:
Permite que o kill-ring interaja com a área de transferência ao executar o Emacs a partir de um terminal Mac OSX (sem perder a funcionalidade completa do kill-ring). Tudo o que fiz foi modificar
xclip.el
para trabalhar compbcopy
epbpaste
. Os verdadeiros agradecimentos a Leo Shidai Liu, autor do xclip.el.
O seguinte simplesmente funciona, entendi daqui :)
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
(let ((process-connection-type nil))
(let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
(process-send-string proc text)
(process-send-eof proc))))
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx))
A versão do emacs incluída no OS X é muito antiga para fornecer essa funcionalidade.
Felizmente, você pode atualizar o emacs para uma versão integrada à sua área de transferência aqui: http://emacsformacosx.com
Acredito que você use Ctrl+ Ypara colar no emacs, após a atualização.
pbcopy
e pbpaste
ambos aplicativos de terminal; qualquer outro aplicativo de terminal pode fazer o que eles fazem, ou simplesmente chamá-los diretamente.
pbcopy
ao Emacs cut & copy. É possível?
Achei este post realmente útil (definindo 2 funções e atribuindo atalhos para elas no seu arquivo ~ / .emacs).
Depois de adicionar essas linhas ao seu arquivo .emacs, você não terá acesso a esses atalhos até abrir uma nova sessão de shell (guia / janela). Permita que as alterações sejam aplicadas.
Você pode obter essa interação com a área de transferência de forma transparente enquanto executa o Emacs no terminal de texto ativando o xclip-mode
fornecido pelo xclip
pacote que você pode instalar no GNU ELPA (ou seja, via M-x package-list-packages RET
).
Consulte também /emacs/10900/ para obter uma pergunta e respostas semelhantes.
/usr/bin/emacs
executável fornecido pela Apple com o OSX e que é arbitrariamente limitado ao terminal de texto?