zle do zsh e o readline do bash são donos da linha, do cursor e do redesenho.
A saída é não deixar o shell desenhar a linha. É isso que a linha de comando do TYBA faz: o PS1 sai da tela e a caixa onde você digita passa a ser do app.
Vem ligada. Instalação nova já abre com ela. Para desligar, use Configurações → Code → Linha de comando do TYBA, na chave Usar a linha do TYBA. A escolha vale para sessões novas — o modo entra no nascimento do shell, então a sessão já aberta segue como está.
O que você ganha
Completar comandos
A sugestão não depende mais de você já ter rodado aquilo. Cada parte da linha é completada por quem sabe dela:
A ordem não é alfabética. O que você usa mais, e usou há menos tempo, sobe.
A primeira palavra vem de duas fontes porque nenhuma das duas sozinha basta. O app lê o
$PATH do disco, que não custa nada ao shell. Mas nvm, asdf e direnv reescrevem o $PATH depois que a sessão nasce, e alias e função não existem em disco — esses o próprio shell informa, por sessão. O resultado é a lista que você veria digitando no seu terminal, não a que o app imaginaria.⌘L (Ctrl+Alt+L fora do macOS) limpa a tela sem fechar a sessão.
O histórico que você já tem
Na primeira vez, o TYBA importa o histórico do seu shell — zsh, bash e fish — para a sugestão nascer sabendo o que você roda, em vez de esperar você digitar tudo de novo. É só leitura: os arquivos de histórico do seu shell não são alterados. Para procurar dentro dele com escopo e filtro, veja a paleta de comandos.Quem recebe a tecla
A linha do TYBA não é sempre a dona do teclado, e isso é correção, não conforto:ssh, psql, python, o pedido de senha do sudo — todos leem o que você digita durante o comando. Uma caixa que engolisse essas teclas receberia a sua senha e não a mandaria a lugar nenhum.
Ctrl+C, Ctrl+D e Ctrl+Z vão para o processo mesmo com a linha em foco — são sinais, não texto. Ctrl+C também limpa a caixa, que é o que você espera dele.
Enquanto um comando roda, a seta para cima e para baixo não vai para o programa se o terminal estiver esperando uma linha inteira. Ali ela não serviria para nada e ainda apareceria como
^[[A na saída guardada. Em vim, htop ou num menu que lê tecla a tecla, ela passa normalmente.Se algo travar
É a válvula de escape, e ela existe porque a heurística pode falhar num shell com configuração exótica. Para voltar de vez, desligue a chave nas Configurações — as sessões já abertas seguem como estão até você abrir outra.Onde funciona
Sem os marcadores da shell integration não há como saber que o shell está no prompt. Nesse caso o TYBA degrada para o terminal clássico em vez de adivinhar.
Veja também
Blocos de comando
O que a linha do TYBA liga junto.
Shell integration
O pré-requisito, e por que ele não toca nos seus dotfiles.
Paleta de comandos
Histórico e snippets também vivem lá, sem depender desta página.
Configurações do usuário
Onde mora a chave, e o resto da seção Code.