Para copiar texto al portapapeles X en tmux, lo que hago actualmente es:
- ir al modo de selección con prefix[
- comenzar la selección con space(usando
mode-keys vi
BTW) - selecciona el texto y presiona enter
- copiar el búfer tmux al portapapeles X usando prefixctrl+c
(Tengo un mapeo como bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
Estoy tratando de eliminar algunos de estos pasos haciendo un mapeo para el modo de selección. Yo he tratado:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
lo que me da y error:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(No pude copiar el error)
¿Cómo puedo arreglar esto?
EDITAR: Me di cuenta de que puedo seleccionar y copiar en el búfer tmux (primeros 3 pasos) usando el mouse como una selección normal (aunque el resaltado no dura, todavía selecciona el texto) y luego usar el siguiente enlace para copiar al portapapeles x :
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(Utilicé este método para copiar este texto y fue fácil;)
tenga en cuenta que -n
denota "sin prefijo", por lo tanto, no se necesita escapar. Si no se confunde con el resaltado que desaparece, esto es análogo a la copia regular (interfaz de usuario común).
esto es lo mejor que se me ocurrió hasta ahora ...
Edit2: resultó ctrl+csolapamientos con lo proceso de interrupción así que cambié a ctrl+alt+cpor ahora. (no me gustó)
EDIT3: tmux 1.8 más o menos agregó soporte para agregar combinaciones de teclas en modo copia, por lo que ahora mi primera intención original es posible usando algo como:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
Estos dos enlaces permiten copiar texto al portapapeles cuando lo usé entero yterminar de copiar.
Todavía mantengo esta línea en caso de que copie con el mouse y decida obtener el contenido del búfer tmux en el portapapeles más adelante:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
fuente
stty intr=^Z
. Tenga cuidado con ese comando, es posible establecer un carácter regular para que sea el carácter de interrupción (si lo hace, use ctrl-v para ingresarlo hasta corregir la configuración). Y no se confunda con la clave que se utiliza (por ejemplo, ctrl-z es normalmente la clave de suspensión).^c
siendo la tecla de interrupción ya que la uso con más frecuencia que la copia. También he actualizado la respuesta para reflejar mi solución actual a este problema.bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
vivo da:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
funciona bien.Respuestas:
Esta respuesta no responde directamente a su pregunta sobre la creación de un acceso directo. Pero esto es lo que hago.
Puede suspender temporalmente el paso de sus eventos de teclas / mouse a tmux manteniendo presionado shift. Por lo tanto, puede mantener presionada la tecla Mayús y los accesos directos regulares del usuario de terminal / X para hacer la copia. En mi caso usando Terminator, presiono shift, resalto con el mouse lo que quiera, copio conCtrl+Shift+C
Y en caso de que tenga paneles divididos, puede hacer zoom en el panel actual con la tecla de alternar zoom Prefix + zy realizar la operación de copia. (probado en tmux v1.8)
fuente
Esto no responde directamente a su pregunta, pero eche un vistazo a tmux-yank , como se describe en Usar el portapapeles del sistema en modo vi-copy en tmux y Cómo hacer que tmux copie un búfer en el portapapeles . Después de la instalación,
fuente