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 -1
etc:
# 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-w
eC-b ]
Essência
Correções de bugs, melhorias etc.: https://gist.github.com/mklepaczewski/ee9c4cd85f678859c90844ef18ac8ceb
Demonstração
Depois git status
:
Depois C-b [
e 3x C-Up
:
Agora é só uma questão de C-w
(copiar) seguido de C-b ]
(colar)