8.1 KiB
Perguntas Frequentes
Qual é a configuração usada no GIF de demonstração?
- Emulador de Terminal: iTerm2
- Tema: Minimal
- Esquema de Cores: Snazzy
- Fonte: FiraCode Nerd Font
- Shell: Fish Shell
- Configuração: matchai's Dotfiles
- Prompt: Starship
Como eu consigo obter autocompletar de comando, conforme mostrado no GIF de demonstração?
O suporte de autocompletar, é provido pelo shell que você escolher. No caso da demonstração, é utilizado o Fish Shell, que prove autocompletar como padrão. Se você usa Z Shell (zsh), Eu sugiro que você dê uma olhada no zsh-autosuggestions.
De forma geral format
e <module>.disabled
fazem a mesma coisa?
Sim, ambos podem ser usados para desativar os mulos no prompt. Se seu objetivo geral é desativar modulos, <module>.disabled
é o mais recomendado pelas seguintes razões:
- Desabilitar módulos é mais explícito do que omiti-lo através do
format
- Modulos recém-criados serão adicionados quando o Starship for atualizado
As documentações dizem que o Starship é cross-shell. Porque minha shell preferida não é suportada?
A forma em que o Starship foi construído, faz com que ele seja compatível com qualquer shell. O binário do starship é sem estado e shell agnóstico, então se o seu shell suporta customização de prompt e expansão de shell, Starship pode ser utilizado.
Aqui está um pequeno exemplo de como o Starship funciona com o bash:
# Recupera o status do último comando executado
STATUS=$?
# Recupera o número de jobs que estão rodando.
NUM_JOBS=$(jobs -p | wc -l)
# Define a saída do prompt para ´starship prompt`
PS1="$(starship prompt --status=$STATUS --jobs=$NUM_JOBS)"
A implementação do Bash embutida no Starship é um pouco mais complexa para aceitar recursos avançados como o Módulo de duração de comando e para garantir isto o Starship é compatível com configurações pre-instaladas.
Para uma lista de flags aceitos pelo starship prompt
, use o seguinte comando:
starship prompt --help
O prompt vai usar o contexto fornecido, mas nenhuma flag é obrigatória.
Como faço para rodar o Starship em distribuições Linux com versões antigas do glibc?
Se você está tendo um erro como "version 'GLIBC_2.18' not found (required by starship)" quando usa o binário prebuilt (por exemplo, no CentOS 6 ou 7), você pode usar um binário compilado com musl
em vez do glibc
:
curl -sS https://starship.rs/install.sh | sh -s -- --platform unknown-linux-musl
Porque eu vejo alertas de Executing command "..." timed out.
?
O Starship executa comandos diferentes para recuperar as informações para exibir no prompt, por exemplo a versão de um programa ou o status atual do git. Para ter certeza de que o starship não travou durante uma execução destes comandos nos definimos um limite de tempo, se um comando ultrapassar este limite o starship vai parar a execução do comando e exibe o alerta acima, esse é um comportamento esperado. Este limite de tempo é configurado usando a chave command_timeout
então se você quiser você pode aumentar este limite. Você pode também seguir os passos para debugar para ver qual comando esta demorando e se você pode otimizar ele. Finalmente você pode definir a variável de ambiente STARSHIP_LOG
para error
para esconder estes alertas.
Eu vejo símbolos que não entendo ou não esperado, o que isso significa?
Se você vê símbolos que não reconhece você pode usar starship explain
para exibir os módulos que estão sendo mostrados no momento.
O Starship esta fazendo algo inesperado, como eu posso debugar?
Você pode ativar os logs de debug usando a variavel de ambiente STARSHIP_LOG
. Este logs podem ser bastantes verboso então é bastante útil usar o comando module
se você esta tentando debugar um modulo em particular, por exemplo, se você esta tentando debugar o modulo rust
você pode executar o seguinte comando para rastrear logs e saídas do modulo.
env STARSHIP_LOG=trace starship module rust
If starship is being slow you can try using the timings
command to see if there is a particular module or command that is to blame.
env STARSHIP_LOG=trace starship timings
Isto vai retornar o rastreamento do log e um detalhamento de todos os módulos que levam mais que 1ms para executar ou produzir alguma saída.
Por fim se você encontrar um bug use o comando bug-report
para criar um GitHub issue.
starship bug-report
Por que não consigo visualizar um simbolo glifo no meu prompt?
A causa mais comum é a configuração incorreta do sistema. Algumas distribuições Linux em particular não vem com suporte de fontes pronto para uso. Você deve conferir os pontos abaixo:
- Sua localização está configurada como UTF-8, como por exemplo
de_DE.UTF-8
ouja_JP.UTF-8
. SeLC_ALL
não estiver configurado como UTF-8, você deve mudar. - Você tem uma fonte de emoji instalda. A maioria dos sistemas vem com uma fonte de emoji instalada como padrão, mas alguns não (principalmente o Arch Linux). Você pode instalar uma em seu sistema, através do gerenciador de pacotes-noto emoji é uma escolha popular.
- Você está usando uma Nerd Font.
Para testar seu sistema, execute o comando abaixo em um terminal:
echo -e "\xf0\x9f\x90\x8d"
echo -e "\xee\x82\xa0"
A primeira linha deve produzir um emoji de cobra, enquanto a segunda linha deve produzir um um simbolo de bifurcação (e0a0).
Se um dos símbolos acima falhar seu sistema ainda está configurado de forma errada. Infelizmente, obter a configuração de fontes correta as vezes é difícil. Usuários no Discord podem te ajudar. Se os dois símbolos acima exibirem de forma correta, mas você ainda continua sem visualizar no Starship, registre um erro!
Como eu desinstalo o Starship?
O Starship é tão fácil de desinstalar tão como é para instalar.
- Remova qualquer linha da configuração do seu shell (ex:
~/.bashrc
) usada para iniciar o Starship. - Delete o binário do Starship.
Se o Starship foi instalando usando algum gerenciador de pacotes, por favor consulte as documentações do mesmo para instruções de desinstalação.
Se o Starship foi instalado usando o script de instalação, o comando abaixo irá remover o binário:
# Localiza e exclui o binário do starship
sh -c 'rm "$(command -v 'starship')"'
How do I install Starship without sudo
?
The shell install script (https://starship.rs/install.sh
) only attempts to use sudo
if the target installation directory is not writable by the current user. The default installation diretory is the value of the $BIN_DIR
environment variable or /usr/local/bin
if $BIN_DIR
is not set. If you instead set the installation directory to one that is writable by your user, you should be able to install starship without sudo
. For example, curl -sS https://starship.rs/install.sh | sh -s -- -b ~/.local/bin
uses the -b
command line option of the install script to set the installation directory to ~/.local/bin
.
For a non-interactive installation of Starship, don't forget to add the -y
option to skip the confirmation. Check the source of the installation script for a list of all supported installation options.
When using a package manager, see the documentation for your package manager about installing with or without sudo
.