A zshmisc
página de manual da minha nova instalação do Debian Squeeze afirma, em SIMPLE PROMPT ESCAPES
:
%m
The hostname up to the first `.'. An integer may follow the '%' to specify how
many components of the hostname are desired. With a negative integer, trailing
components of the hostname are shown.
Quando incluo %2m
meu prompt, vejo um comportamento diferente entre OSX e Linux.
No OSX (10.7.3), executando o zsh 4.3.11, o prompt se comporta conforme o esperado, mostrando os dois componentes principais do nome do host do sistema.
No Debian, executando o zsh 4.3.10, o prompt ainda mostra apenas o nome do host. hostname -f
neste sistema confirma que o nome completo do host está definido corretamente. Observe também que a página de manual desta versão zsh diz que %2m deve ser suportado.
Alguém tem alguma sugestão sobre onde começar a depurar isso?
Responder1
Uma rápida olhada no zshcódigo-fonte de manipulação imediatasugere que isso %m
se baseia no que seu sistema retorna para a gethostname
chamada do sistema. É como correr hostname
sem -f
opção.
Estou assumindo que está correndohostname
sem -f
retorna seu nome de host simples em seu sistema Debian?
Você pode tentar alterar seu nome de host para incluir o nome de domínio. O DebianDocumentos Como fazer/Alterar nome do hostdeveria ajudar com isso. Mas talvez algumas ferramentas Debian assumam que seu nome de host não inclui o nome de domínio, então isso pode ser uma má ideia.
Pode fazer mais sentido usar apenas a substituição de comandos.
Primeiro defina a opção PROMPT_SUBST
setopt PROMPT_SUBST
então você pode executar qualquer comando e colocar sua saída no prompt assim:
PS1='$(hostname -f)$ '
para obter apenas as primeiras partes do nome do host, você pode usarcut
, por exemplo
PS1='$(hostname -f | cut -f 1-2 -d .)$ '
Como o seu nome de host não deve mudar, você também pode ser um pouco mais eficiente executando o comando apenas uma vez e armazenando-o em uma variável e depois usando a variável, por exemplo
HOSTANDSUBDOMAIN="$(hostname -f | cut -f 1-2 -d .)"
PS1="$HOSTANDSUBDOMAIN$ "