Sim, existe. Embora não haja (atualmente) um sinalizador bindkey
que afete o modo de cópia somente (não o modo de comando também), ainda há uma maneira de obter resultados semelhantes, embora significa aprender uma nova sintaxe para isso.
A correção
O comando markkeys
afeta apenas o modo de cópia, e não afetará os comportamentos do modo de comando. É mais exigente sobre os personagens que aceitará, mas é melhor do que nada e conclui o trabalho nesta situação:
markkeys "$=5"
markkeys "\^=1"
O acima diz screen
para alias o início-de-linha e fim-de-linha e sinais (que são enviados por Home e End ) para o ^ e $ teclas de movimento respectivamente. ^
está escrito com escape como \^
na string porque é normalmente usado para definir seqüências de escape, mas queremos dizer o literal.
Note que se você preferir que Home vá até o início / esquerda em vez de apenas até o primeiro caractere visível, então substitua markkeys "\^=1"
por markkeys "0=1"
.
Note também que você ainda pode usar g e G para chegar ao início global ou ao final do histórico de uma janela enquanto estiver no modo de cópia.
Como encontrei a correção
Embora eu ainda não saiba de uma referência completa que expõe todos os hex-escapes úteis para tais coisas, eu consegui encontrar os dois relevantes executando bindkey -m
dentro da tela e então substituindo os mapeamentos lá até que eu quebrei o comportamento que me interessava. As linhas relevantes eram:
kh -> stuff 1
kH -> stuff 5
Com a ajuda do pessoal do irc: //irc.freenode.net/screen, aprendi que os códigos da esquerda podem ser consultados a partir do shell via man terminfo
, o que os relaciona na coluna Tcap como
Variable Capname TCap Code Description
string
---------------------------------------------------------------------------
key_home khome kh home key
...
key_ll kll kH lower-left key (home down)
Colocar dois e dois juntos e fazer um pouco de adivinhação para obter a ligação correta leva à correção acima.