Existe uma maneira de obter uma saída colorida ao usar o preenchimento de guias em um terminal? Minhas cores são boas em qualquer outro lugar, então eu sei que habilitei um terminal de cores com sucesso.
Como você especifica uma "saída colorida ao usar o preenchimento de tabulação"?
slhck 27/02
Respostas:
21
Não há facilidade no Bash para colorir a saída durante a conclusão, como no fish e no zsh. Pode-se escrever funções de conclusão que produzam seqüências de controle de cores, mas você teria que manter cópias das conclusões propostas com e sem códigos de cores ou remover quando o usuário fizer uma seleção, pois o Bash usa a seleção diretamente normalmente e os códigos de cores entrar no caminho.
Se esse é um recurso importante para você, recomendo que você considere o uso do zsh.
Atualizar
O readline do Bash 4.3 adiciona uma variável que permite que a cor para o preenchimento de guias mostre cores diferentes para arquivos executáveis, diretórios etc. durante o preenchimento de guias:
colored-stats
O Readline no próximo Bash 4.4 adiciona uma variável que permite que a cor indique a parte correspondente da sequência durante o preenchimento da guia.
colored-completion-prefix
Você pode ver os valores dessas variáveis usando
bind -v | grep color
Para defini-los, adicione linhas ao seu ~/.inputrcarquivo, como:
@Ryan: Zsh é bastante compatível com o Bash. Você provavelmente consideraria a mudança bastante fácil. Ele tem muitos recursos poderosos que o Bash não possui (ou você precisa usar utilitários externos). Existem apenas algumas coisas que são significativamente diferentes no básico. Um exemplo é que os índices de matriz são baseados em um em vez de em zero, mas há uma configuração que afeta isso. Só uso o zsh ocasionalmente.
Pausado até novo aviso.
11
@AstroFloyd: No Bash Manua : "As definições de cores são obtidas do valor da LS_COLORSvariável de ambiente." A documentação para essa variável está aqui . Como não há uma configuração para as manpáginas, você precisará verificar onde LS_COLORSé definido e encontrar a combinação de cores que corresponde e alterá-la. No meu sistema, mannomes de página não se colorido quando sendo guia concluída (e links simbólicos quebrados, enquanto o vermelho-on-cinza na lssaída, ...
. Pausada até novo aviso
11
... são azul claro como links simbólicos válidos durante a conclusão da guia).
Pausado até novo aviso.
11
@AndyCarlson: bind -v | grep colorMostra os dois set colored-completion-prefix one set colored-stats on? Se sim, o que acontece quando você digita a letra a seguida de pressionar tab duas vezes? Se você adicionou as configurações ao seu, ~/.inputrcmas não iniciou um novo terminal ou não executou re-read-init-filepressionando control-x control-r, as configurações não terão efeito.
Pausado até novo aviso.
2
@AndyCarlson O que é produzido em um prompt do bash quando você pressiona ctrl-x ctrl-v?
Pausado até novo aviso.
3
Eu não sei sobre as cores de conclusão para opções de comando e argumentos, mas para nome de arquivo e diretórios, de acordo com ( /unix//a/133866 ) estados user495470 que em Bash 4.3 e mais tarde você pode adicionar set colored-stats onpara ~/.inputrccomeçar colorido conclusão quando você faz ls <tab>.
Respostas:
Não há facilidade no Bash para colorir a saída durante a conclusão, como no fish e no zsh. Pode-se escrever funções de conclusão que produzam seqüências de controle de cores, mas você teria que manter cópias das conclusões propostas com e sem códigos de cores ou remover quando o usuário fizer uma seleção, pois o Bash usa a seleção diretamente normalmente e os códigos de cores entrar no caminho.
Se esse é um recurso importante para você, recomendo que você considere o uso do zsh.
Atualizar
O readline do Bash 4.3 adiciona uma variável que permite que a cor para o preenchimento de guias mostre cores diferentes para arquivos executáveis, diretórios etc. durante o preenchimento de guias:
O Readline no próximo Bash 4.4 adiciona uma variável que permite que a cor indique a parte correspondente da sequência durante o preenchimento da guia.
Você pode ver os valores dessas variáveis usando
Para defini-los, adicione linhas ao seu
~/.inputrc
arquivo, como:fonte
LS_COLORS
variável de ambiente." A documentação para essa variável está aqui . Como não há uma configuração para asman
páginas, você precisará verificar ondeLS_COLORS
é definido e encontrar a combinação de cores que corresponde e alterá-la. No meu sistema,man
nomes de página não se colorido quando sendo guia concluída (e links simbólicos quebrados, enquanto o vermelho-on-cinza nals
saída, ...bind -v | grep color
Mostra os doisset colored-completion-prefix on
eset colored-stats on
? Se sim, o que acontece quando você digita a letra a seguida de pressionar tab duas vezes? Se você adicionou as configurações ao seu,~/.inputrc
mas não iniciou um novo terminal ou não executoure-read-init-file
pressionando control-x control-r, as configurações não terão efeito.Eu não sei sobre as cores de conclusão para opções de comando e argumentos, mas para nome de arquivo e diretórios, de acordo com ( /unix//a/133866 ) estados user495470 que em Bash 4.3 e mais tarde você pode adicionar
set colored-stats on
para~/.inputrc
começar colorido conclusão quando você fazls <tab>
.fonte