Esta é uma espécie de resposta lateral para a sua pergunta, mas eu prefiro usar um prompt invertido (que se destaca e é fácil de detectar) com a finalidade de determinar rapidamente onde o último comando foi executado. .
Você pode inverter a cor do seu prompt (ou seja, texto preto sobre fundo branco) adicionando as sequências ANSI <esc>[7m
(invert) ao início do prompt e <esc>[0m
(reset) ao final dele.
A maioria dos shells mais sofisticados (como bash
e zsh
) também rastreiam o comprimento do prompt na tela, então você precisa adicionar um pouco de açúcar para dizer ao shell que essas sequências não movem o cursor para frente. Em zsh
, isso é feito usando %{...%}
, enquanto bash
usa \[...\]
.
Assim, para inverter seu prompt em zsh
use:
PROMPT=$'%{\e[7m%}'"${PROMPT% }"$'%{\e[0m%} '
e em bash
, use:
PS1=$'\[\e[7m%\]'"${PS1% }"$'\[\e[0m\] '
$'...'
é uma maneira especial de citar uma string, que traduz \e
em <esc>
${VARNAME%SUFFIX}
remove as saídas VARNAME
, mas remove qualquer string final SUFFIX
(nos casos acima o espaço final, uma vez que não queremos inverter isso para ver o cursor corretamente).
Ocasionalmente eu acho que o truque acima é impraticável (normalmente quando surge a necessidade de olhar para algum arquivo de log ou algo em um servidor que não é realmente meu para personalizar até a morte), mas nessas ocasiões eu costumo achar que todos as soluções sugeridas acima também são muito trabalhosas, e eu apenas pressiono <enter>
por um tempo.