emacs copia e cola

5

Como posso copiar do emacs e colar em outra instância do emacs ou em outro lugar?

Se eu faço C-space , M-w e, em seguida, C-y , só posso colar na instância aberta do Emacs. Se eu navegar para outra janela do Emacs ou fora do Emacs, Crtl + v não faz nada ou cole algo que eu copiei que não estava no Emacs.

Estou procurando uma solução que atualize o script init lisp ( ~/.emacs ). Eu não quero mudar de programa. A partir de agora, eu tenho isso no meu .emacs , mas não parece fazer o truque.

;; Copy and paste between Emac instances                                          
(setq x-select-enable-clipboard t)
(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)
    
por dustin 16.04.2013 / 13:35

5 respostas

5

Se você não estiver executando o emacs no modo X, ele não terá acesso à área de transferência do X, portanto, você não poderá copiar / colar com outros aplicativos X. Você terá que usar a função copiar / colar do seu xterm.

Para copiar / colar entre diferentes sessões do emacs, a maneira do emacs é não executar múltiplas sessões. Em vez disso, você pode abrir quadros em terminais diferentes, todos vinculados à mesma sessão, para que eles compartilhem o mesmo kill ring. Você faz isso usando M-x server-start na instância principal e, em seguida, usa emacsclient -t para abrir um novo quadro em outro terminal.

    
por 16.04.2013 / 16:15
0

Você pode usar a aba Edit para usar o mouse (pelo menos no XEmacs, não usei o GNU Emaccs por um bom tempo).

    
por 16.04.2013 / 13:44
0

Eu não sou um usuário do emacs, mas se você trabalha fora de um ambiente GUI, você pode usar o daemon mouse de uso geral ( gpm ) no linux e eu acho que alguns outros * nixes . A maioria das distros tem disponível como um pacote, então tudo que você precisa fazer é instalá-lo e iniciar o serviço.

Você pode cortar e colar em um VC dessa maneira com um mouse (acho que o botão 1 é selecionado, o botão 2 é colado - não há menu popup; isso leva um pouco para se acostumar). Você pode, de fato, copiar e colar em VC's. Ele funciona com aplicativos ncurses complexos como o emacs, como o vim.

    
por 16.04.2013 / 14:06
0

Para ter acesso ao anel kill do Emacs, eu não sei , mas se você descobrir, por favor, nos diga, e eu ficaria muito grata. Mas há algumas outras coisas que eu sei que podem ajudá-lo.

Não é verdade que você não pode acessar a área de transferência do X no Linux VT / tty / console.

Confira esses aliases, como eles são exibidos quando eu uso where em zsh:

xi: aliased to xclip -d ":0" -selection clipboard
xo: aliased to xclip -d ":0" -selection clipboard -o

Eu também coloco a parte xo em um script (chamado pst ), para colar do X no Emacs.

#!/bin/zsh

CLIP='xclip -d ":0" -o -selection clipboard'
CLIP_LEN='echo -n $CLIP | wc -c'
echo "(set-variable '*clip-len* $CLIP_LEN)" > ~/.clip_len
echo -n $CLIP

Então, no Emacs:

;; clipboard
(setq *clip-len* 0)

(defun pst ()
  "Inserts the X clipboard (xclip -d ':0' -o -selection clipboard)
at point. 'M-1' (the '(1)) to insert in the current buffer."
  (interactive)
  (shell-command "/home/user_name/scripts/pst" '(1))
  (load-file "/home/user_name/.clip_len")
  (forward-char *clip-len*) )

Agora, para obter a comunicação Emacs-Emacs (e eu concordo que várias instâncias não são ideais), se eles compartilham o acesso a um arquivo, que tal usá-lo configurando funções como:

(defun write-to-file-clipboard ()
  "Write the region to '~/.fclipboard.txt'"
  (interactive)
  (write-region (region-beginning) (region-end) "~/.fclipboard.txt") )

Em seguida, faça um similar para append-to-file , insert-file , etc. e, em seguida, configure os atalhos e / ou aliases (Emacs) para acesso rápido.

Este não é o kill ring do Emacs, mas pelo menos eu os achei muito úteis como uma "próxima melhor coisa".

    
por 17.04.2013 / 01:00
-1

Esta questão foi respondida aqui . A resposta vinculada inclui uma discussão (acima) e alguns trechos de código para permitir a interoperabilidade entre a área de transferência do emacs e a GUI, área de transferência X, mesmo quando executando emacs-nox ou emacs -nw .

    
por 31.07.2017 / 18:40