Como posso copiar texto do xterm (Awesome, Debian, VirtualBox)?


15

Eu executei a instalação mínima do Debian dentro de uma instância do VirtualBox, instalei o gerenciador de janelas X11 e Awesome manualmente (ainda sem nenhuma configuração personalizada) e instalei as adições do VirtualBox (e habilitei a área de transferência compartilhada nas configurações). No entanto, copiar e colar texto do terminal xterm ainda não parece funcionar: CTRL+ Cé enviado como um sinal para um terminal e Shift+ Insertinsere o texto que eu selecionei (o que provavelmente significa que ele foi copiado para algum buffer de alguma forma), mas ainda não está disponível no sistema operacional host.

Respostas:


19

O X11 usa dois buffers: PRIMARYe CLIPBOARD. Para copiar / colar no CLIPBOARDbuffer, você pode usar CTRL-Ce CTRL-V. Você pode inserir no PRIMARYbuffer selecionando um texto e colá-lo pressionando o botão do meio do mouse.

Se você deseja usar o CLIPBOARDbuffer, coloque-o no seu ~/.Xresourcesarquivo e use Ctrl+ Shift+C e Ctrl+ Shift+ Vpara copiar / colar de / para o CLIPBOARDbuffer no xterm:

xterm*VT100.Translations: #override \
                 Ctrl Shift <Key>V:    insert-selection(CLIPBOARD) \n\
                 Ctrl Shift <Key>C:    copy-selection(CLIPBOARD)

Você precisa correr xrdb ~/.Xresources depois de colocar isso no arquivo.


2
O uso xrdb ~/.Xresourcessubstituirá destrutivamente sua configuração padrão. Em vez disso usexrdb -merge ~/.Xresources
xaedes

14

Não é necessário modificar os recursos de conversão do xterm para copiar dados de / para o Firefox, a menos que você prefira usar o teclado para ajudar no processo.

Desde 2006, o xterm possui um recurso selectToClipboardque permite alternar entre a PRIMARYseleção (padrão) eCLIPBOARD (Firefox, etc).

Como alguns programas usam a seleção primária e outros não, é uma entrada de menu no xterm ( controlmiddle-mouse):

mostre selectToClipboard na entrada de menu

A adaptação da sugestão para caracteres de controle, como os aplicativos GNOME, permite usar o teclado e, ao mesmo tempo, permitir que o menu alterne entre os dois tipos de seleção:

xterm*VT100.Translations: #override \
                 Ctrl Shift <Key>V:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>C:    copy-selection(SELECT)

embora a adição shiftInsertpossa estar mais próxima da intenção original:

xterm*VT100.Translations: #override \
                 Shift <Key>Insert:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>V:    insert-selection(SELECT) \n\
                 Ctrl Shift <Key>C:    copy-selection(SELECT)

Uma planície controlCé geralmente atribuída a um sinal :INTR

$ stty -a
speed 38400 baud; rows 40; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Leitura adicional:


4
  1. Aberto xterm e realce o texto que você deseja copiar.
  2. Vá para o aplicativo em que deseja colar e passe o cursor do mouse sobre o campo em que deseja colar.
  3. Clique no botão de rolagem do mouse. (em laptops, isso pode ser feito pressionando o botão esquerdo e o botão direito ao mesmo tempo)

Quando você destaca o texto, ele copia o texto para o buffer principal. Lembre-se de que, se você destacar qualquer outro texto antes de colar, esse texto substituirá o conteúdo anterior no buffer primário.


1
Por favor, leia a pergunta com atenção. "Vá para o aplicativo em que deseja colar" - isso sugere que você não percebeu que eu precisava colá-lo no sistema operacional host.
Max Yankov

Desculpe, não tenho o terceiro botão do mouse. usando trackball aqui
holms

2

Acontece que eu não expliquei o fato de o X11 ter dois buffers: primário e de transferência . Meu texto do xterm foi copiado no buffer primário, enquanto eu precisava dele no buffer da área de transferência.

Consegui resolver o problema instalando o parcellitepacote, iniciando-o e configurando-o para sincronizar dois buffers.

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.