No shell do peixe , a linha de comando real é destacada na sintaxe:
Existe alguma maneira de obter esse mesmo comportamento no bash?
Existe algo assim, mas para o zsh, não para o bash. É possível que isso possa ser portado para o bash?
Para esclarecer para quem não entende a captura de tela, a explicação ou o link fornecido: Quero destacar o texto real que é inserido no terminal. Os comandos, parênteses, aspas, etc.
bash
syntax-highlighting
fish
Wuffers
fonte
fonte
Respostas:
O Bash é usado
readline
para entrada interativa; portanto, o destaque da sintaxe precisaria ser implementado nesse programa. Encontrei uma discussão dos Grupos do Google sobre como codificar esse recurso.O shell do peixe usa seu próprio editor de linha específico para esse programa e não pode ser portado diretamente.
Você pode achar que
zsh
é muito semelhante ao bash e seu editor de linha é extensível . Encontrei zsh-syntax-realce para ativar esse recurso no zsh.fonte
Não existe uma maneira simples de obter realce de sintaxe no GNU Bash (ou GNU Readline), mas é, em princípio, possível implementar seu próprio editor de linha nos scripts Bash, vinculando todas as entradas do usuário às funções do shell usando o comando embutido
bind -x 'BYTE: SHELL-COMMAND'
. É claro que é possível integrar o recurso de destaque de sintaxe em seu próprio editor de linha.Na verdade, implementei um editor de linha
ble.sh
com recursos como destaque de sintaxe e sugestões automáticas. Ele suporta o Bash 3.0--5.0. Como está escrito em scripts Bash (quase) puros, você pode apenassource
o script~/.bashrc
. Aqui está um exemplo para configurarble.sh
no bashrc (consulte o README para obter detalhes):Nota : Sei que às vezes responder a perguntas com links para produtos próprios é considerado autopromoção e imprevisível, por isso evitei responder a essa pergunta. No entanto, nenhuma outra solução apareceu por muito tempo, e essa pergunta também tem muitas visões (o que reflete sua demanda significativa). Então, eu decidi responder a esta pergunta hoje. Referindo as seguintes meta perguntas / respostas, descrevi a idéia primeiro e a seguir forneceu um link para o meu projeto como uma implementação de exemplo.
Sim, tenho que admitir que isso é realmente autopromoção , mas acredito que isso ajude as pessoas que desejam o recurso. Se houver problemas, eu apreciaria se você pudesse me dizer isso pelos comentários.
fonte
Eu não acho que o realce da sintaxe deva acontecer no nível do shell, mas no nível da interface (apenas a minha opinião - e de outra pessoa parece) -, então eu procuraria em "plugins" para o Terminal ou seu console favorito, por exemplo, este plug- in para Kate pode ajudar, ou este outro que oferece destaque de sintaxe no nano
Aqui ainda há mais informações sobre como destacar a sintaxe no Terminal:
embora aqui seja melhor explicado como
Espero que ajude
fonte
ls
comando com base no tipo de arquivo, que não tem nada a ver com a sintaxe do shell.