Modo de cópia Tmux - selecione automaticamente a linha inteira e corte-a após a seleção, copie ou cole

Modo de cópia Tmux - selecione automaticamente a linha inteira e corte-a após a seleção, copie ou cole

Quando estiver no modo de cópia, gostaria que as teclas de navegação do teclado selecionassem automaticamente toda a linha atual. Idealmente, a linha selecionada seria cortada ao selecionar/copiar/colar.

Exemplo

Muitas vezes quero selecionar linhas inteiras aparadas para selecionar a saída git <anything>ou ls -1etc:

# git status

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

        robots.txt
        index.php
        [...]

Quero confirmar o robots.txt, então entro no modo de cópia e começo a mover o cursor em direção à linha robots.txt. Ao movê-lo para cima, ele seleciona primeiro 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

Então, ao mover o cursor para cima (com o teclado), ele seleciona a linha com robots.txt (aparado):

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

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

É algo que pode ser feito na versão atual do tmux?

Responder1

Solução

Aqui está uma macro que "subi/desce e seleciona a linha aparada" em C-Up/ C-Down(geralmente Control + Up / Control + Down ):

No tmux, digite o modo de comando por C-b :e use o seguinte 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 o texto e colá-lo, pressione C-weC-b ]

Essência

Correções de bugs, melhorias etc.: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb

Demonstração

Depois git status:

insira a descrição da imagem aqui

Depois C-b [e 3x C-Up:

insira a descrição da imagem aqui

Agora é só uma questão de C-w(copiar) seguido de C-b ](colar)

informação relacionada