ZLE_REMOVE_SUFFIX_CHARS
/ ZLE_SPACE_SUFFIX_CHARS
Estes parâmetros são usados pelo editor de linha. Em certas circunstâncias, os sufixos (normalmente espaço ou barra) adicionados pelo sistema de conclusão serão removidos automaticamente, porque o próximo comando de edição não era um caractere inserível ou porque o caractere foi marcado como requerendo a remoção do sufixo.
Essas variáveis podem conter os conjuntos de caracteres que farão com que o sufixo seja removido. Se ZLE_REMOVE_SUFFIX_CHARS
estiver definido, esses caracteres farão com que o sufixo seja removido; E seZLE_SPACE_SUFFIX_CHARS
estiver definido, esses caracteres farão com que o sufixo seja removido e substituído por um espaço.
Se ZLE_REMOVE_SUFFIX_CHARS
não estiver definido, o comportamento padrão será equivalente a:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
Se ZLE_REMOVE_SUFFIX_CHARS
estiver definido, mas estiver vazio, nenhum caractere terá esse comportamento. ZLE_SPACE_SUFFIX_CHARS
tem precedência, para que o seguinte:
ZLE_SPACE_SUFFIX_CHARS=$'&|'
causa os caracteres &
e |
remove o sufixo, mas substitui-o por um espaço.
Para ilustrar a diferença, suponha que a opção AUTO_REMOVE_SLASH
esteja em vigor e o diretório DIR tenha sido concluído, com um anexo /
, após o qual o usuário digita &
. O resultado padrão é DIR&
. Com ZLE_REMOVE_SUFFIX_CHARS
conjunto, mas sem incluir &
o resultado é DIR/&
. Com ZLE_SPACE_SUFFIX_CHARS
definido para incluir &
o resultado é DIR &
.
Observe que certas conclusões podem fornecer seu próprio comportamento de remoção ou substituição de sufixo, que substitui os valores descritos aqui.
zsh -f
(para pular o carregamento da sua configuração). Você notará que o zsh não fará mais isso. Então, você vai ter que cavar (mais provável) em oh-meu-zsh para descobrir como ele está causando que ;-)