O enlace de tecla pára o eco da entrada do teclado e atrapalha o prompt do PS1

1

Eu quero que o Bash limpe o histórico de rolagem quando eu pressionar Ctrl+L , especialmente quando eu estiver executando um comando com muita saída; Eu quero rolar para a primeira linha de saída, sem ultrapassar a saída anterior. E começar uma nova aba, então voltar para a aba anterior e fechá-la, não é realmente uma opção; no meu laptop que é Ctrl+Shift+T , Ctrl+Fn+PgDn , Ctrl+D , que é um pouco difícil de digitar. Seguindo o conselho em Como realmente limpar o terminal? , eu adicionei a seguinte linha no meu arquivo .bashrc , após a definição PS1 :

PS1="\u@\h \w\n\$ "
bind -x '"\C-L": tput reset'

No entanto, descobri que depois de cancelar um comando Bash de longa execução, o terminal parou de ecoar a entrada padrão quando eu digitado e começou a mostrar um prompt PS1 modificado. Eu finalmente reduzi-o a pressionar Ctrl+L , depois iniciei e interrompi um comando de longa duração (para este exemplo find / | head ).

hwalters@Wintermute ~
$ 
hwalters@Wintermute ~
$ 
hwalters@Wintermute ~
$ (press Ctrl+L)
hwalters@Wintermute ~
$ find / | head
/
/proc
/proc/fb
/proc/fs
/proc/fs/ext4
/proc/fs/ext4/dm-0
/proc/fs/ext4/dm-0/options
/proc/fs/ext4/dm-0/mb_groups
/proc/fs/ext4/dm-0/es_shrinker_info
/proc/fs/ext4/nvme0n1p2
hwalters@Wintermute ~
$ hwalters@Wintermute ~
$ hwalters@Wintermute ~
$ hwalters@Wintermute ~
$ hello
hwalters@Wintermute ~
$ world
hwalters@Wintermute ~
$ 

Eu incluí os resultados de pressionar Enter algumas vezes, antes e depois de dar errado. Observe as duas linhas de saída hello e world , que foram mostradas depois que eu inseri echo hello e echo world ; os comandos e parâmetros echo não foram mostrados como eu digitei, mas foram executados.

Note que isso não acontece se eu inserir tput reset em vez de pressionar Ctrl+L , então é uma combinação disso e da ligação de chave. Originalmente, pensei que poderia ser uma combinação da redefinição de tela e do prompt colorido que geralmente uso, mas também acontece com o prompt de baunilha neste exemplo. Alguma idéia?

Se isso faz alguma diferença, estou usando o Gnome Terminal (3.18.3) no Ubuntu (16.04).

    
por Huw Walters 26.09.2016 / 23:27

0 respostas