¿Cómo puedo copiar texto de xterm (Awesome, Debian, VirtualBox)?


15

Ejecuté la instalación mínima de Debian dentro de una instancia de VirtualBox, instalé X11 y Awesome window manager manualmente (sin ninguna configuración personalizada todavía) e instalé adiciones de VirtualBox también (y habilité el portapapeles compartido en la configuración). Sin embargo, copiar y pegar texto desde el terminal xterm todavía no parece funcionar: CTRL+ Cse envía como una señal a un terminal, y Shift+ Insertinserta el texto que había seleccionado (lo que probablemente significa que se copió a algún búfer de alguna manera), pero aún no está disponible desde el sistema operativo host.

Respuestas:


20

X11 usa dos buffers: PRIMARYy CLIPBOARD. Para copiar / pegar en el CLIPBOARDbúfer, a menudo puede usar CTRL-Cy CTRL-V. Puede insertar en el PRIMARYbúfer seleccionando un texto y pegarlo presionando el botón central del mouse.

Si desea usar el CLIPBOARDbúfer, colóquelo en su ~/.Xresourcesarchivo y use Ctrl+ Shift+ Cy Ctrl+ Shift+ Vpara copiar / pegar desde / al CLIPBOARDbúfer en xterm:

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

Debe ejecutar xrdb ~/.Xresourcesdespués de poner eso en el archivo.


2
El uso xrdb ~/.Xresourcessobrescribirá destructivamente su configuración predeterminada. en su lugar usexrdb -merge ~/.Xresources
xaedes

14

No es necesario modificar los recursos de traducción xterm para copiar datos a / desde Firefox, a menos que prefiera usar el teclado para ayudar con el proceso.

Desde 2006, xterm tiene una función selectToClipboardque le permite cambiar entre la PRIMARYselección (estándar) y CLIPBOARD(Firefox, etc.).

Debido a que algunos programas usan la selección primaria y otros no, es una entrada de menú en xterm ( controlmiddle-mouse):

muestre selectToClipboard en la entrada del menú

Adaptar la sugerencia para caracteres de control como las aplicaciones de GNOME le permite usar el teclado y, al mismo tiempo, dejar que el menú cambie entre los dos tipos de selecciones:

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

aunque agregar shiftInsertpodría estar más cerca de la intención 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)

controlCPor lo general, se asigna un plano a una señal :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

Otras lecturas:


4
  1. Abra xtermy resalte el texto que desea copiar.
  2. Vaya a la aplicación en la que desea pegar y desplace el cursor del mouse sobre el campo que desea pegar.
  3. Haga clic en el botón de desplazamiento de su mouse. (en computadoras portátiles, esto se puede hacer presionando el botón izquierdo y derecho al mismo tiempo)

Cuando resalta el texto, copia el texto en su búfer principal. Tenga en cuenta que si resalta cualquier otro texto antes de pegar, ese texto reemplazará el contenido anterior en el búfer primario.


1
Por favor, lea la pregunta cuidadosamente. "Vaya a la aplicación en la que desea pegar": esto sugiere que no se dio cuenta de que necesitaba pegarlo en el sistema operativo host.
Max Yankov

Lo siento, no tengo el tercer botón del mouse. usando trackball aquí
holms

2

Resulta que no tomé en cuenta el hecho de que X11 tiene dos buffers: primario y portapapeles . Mi texto de xterm se copió en el búfer primario, mientras que lo necesitaba en el búfer del portapapeles.

Pude solucionar el problema instalando el parcellitepaquete, ejecutándolo y configurándolo para sincronizar dos buffers.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.