Uma barra de status na parte inferior do terminal no lugar do PS1

3

Ocorreu-me que quando estou fazendo coisas no terminal, meu PS1 é repetido várias vezes para cada comando. Meu PS1 inclui o CWD e o git branch para que ele fique razoavelmente longo.

Existe uma maneira de configurar meu PS1 para apenas um símbolo de $ dólar, mas mover essa outra informação para uma 'barra de status' ou apenas mantê-la na parte inferior do terminal? Muito parecido com a barra de status do tmux, mas com aqueles bits que geralmente fazem parte do meu prompt.

Idealmente, gostaria de uma solução que envolva apenas alterar minha .bashrc, mas qualquer solução funcionaria. Eu fiz um pouco de googling e encontrei uma coisa de git branch para o tmux (mas nenhum CWD / outros bits) e uma barra de status realmente simples com tempo em 'que realmente não funcionava.

Exemplo de problema:

    
por John Hunt 05.10.2018 / 10:06

1 resposta

3

Esta proposta deve ser lida como uma "prova de conceito", não necessariamente uma solução pronta para uso. Pode precisar ser refinado / adaptado.

Você parece usar console_codes de qualquer forma em seu PS1 , portanto, algum uso estendido pode ser permitido. Para que uma "barra de status" apareça na parte inferior da tela, não importando como ela foi redimensionada antes, a variável LINES shell pode ser usada, bem como algumas aritméticas inteiras de shell, para reduzir a região de rolagem, salvar / restaurar a localização do cursor e imprima na parte inferior da tela. Experimente

CSI=$'\e'"["
PS1="\[${CSI}s${CSI}1;$((LINES-1))r${CSI}$LINES;1f\u:YourOutputGoesHere:\w${CSI}K${CSI}u\]>"

Existem ressalvas conhecidas quando se lida com a variável de invólucro PS1 e códigos de função que não foram necessariamente considerados aqui mas cobertos em, e. outros tópicos , pesquisa nesses fóruns e incorporar, se necessário.

    
por 05.10.2018 / 13:18