Modo de copia Tmux: seleccione automáticamente toda la línea y recórtela al seleccionarla, copiarla o pegarla

Modo de copia Tmux: seleccione automáticamente toda la línea y recórtela al seleccionarla, copiarla o pegarla

Cuando estoy en modo de copia, me gustaría que las teclas de navegación del teclado seleccionen automáticamente toda la línea actual. Idealmente, la línea seleccionada se recortaría al seleccionar/copiar/pegar.

Ejemplo

A menudo quiero seleccionar líneas completas y recortadas para seleccionar la salida, git <anything>etc ls -1.:

# git status

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        robots.txt
        index.php
        [...]

Quiero enviar robots.txt, así que entro en modo copia y empiezo a mover el cursor hacia la línea robots.txt. Al subirlo, selecciona primero index.php:

# git status

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        robots.txt
        **index.php** (<-- text between ** is auto selected)
        [...]

# git status

Luego, al mover el cursor hacia arriba (con el teclado), selecciona la línea con robots.txt (recortada):

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        **robots.txt** (<-- text between ** is auto selected)
        index.php
        [...]

¿Es algo que se pueda hacer en la versión actual de tmux?

Respuesta1

Solución

Aquí hay una macro que "sube/abajo y selecciona la línea recortada" en C-Up/ C-Down(normalmente Control + Arriba / Control + Abajo):

En tmux ingrese al modo de comando mediante C-b :, luego use el siguiente código:

bind -T copy-mode C-Up send-keys Up \; send -X back-to-indentation \; send -X begin-selection \;  send -X end-of-line 
bind -T copy-mode C-Down send-keys Down \; send -X back-to-indentation \; send -X begin-selection \;  send -X end-of-line

Para copiar el texto y pegarlo presionas C-wyC-b ]

Esencia

Corrección de errores, mejoras, etc.: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb

Manifestación

Después git status:

ingrese la descripción de la imagen aquí

Después C-b [y 3x C-Up:

ingrese la descripción de la imagen aquí

Ahora solo es cuestión de C-w(copiar) seguido de C-b ](pegar)

información relacionada