O Bash tem recursos semelhantes, como sugestões automáticas e destaque de Fish?

37

Recentemente, notei dois recursos no Fish e fiquei imaginando se alguém sabia se esses também estavam disponíveis no Bash.

Realce de sintaxe

ss # 1

Específicos:

  • Você notará rapidamente que o peixe executa o destaque da sintaxe enquanto você digita. Comandos inválidos são coloridos em vermelho por padrão:
  • Um comando pode ser inválido porque não existe ou se refere a um arquivo que você não pode executar. Quando o comando se torna válido, é mostrado em uma cor diferente
  • o fish sublinhará caminhos de arquivo válidos conforme você os digita
  • Isso informa que existe um arquivo que começa com 'somefi', que é um feedback útil enquanto você digita.

Sugestões automáticas

ss # 2

Específicos:

  • fish sugere comandos enquanto você digita e mostra a sugestão à direita do cursor, em cinza.
  • Conhece caminhos e opções
  • Para aceitar a sugestão automática, pressione a seta direita ou Ctrl + F. Se a sugestão automática não for o que você deseja, ignore-a.
slm
fonte
4
Sobre o analógico mais próximo que bashpossui é o preenchimento automático. Infelizmente, fisho script é tão elementar que é um substituto muito ruim para o tipo de coisa com que faço rotineiramente bash.
DopeGhoti
11
@DopeGhoti - por isso estou perguntando o Q 8-)
slm
2
Experimente através de um link ssh de alta latência, você odiará os recursos embutidos rapidamente.
llua
11
@slm A maioria desses casos é de canto, alguns mais desagradáveis ​​que outros, mas pode ser muito ruim quando você é implantado em muitos ambientes. As "características do assassino" para 4.3 são cd -@, wait -n, globasciiranges, e $BASH_COMPAT, o que muita gente queria. Quase todo o resto é apenas combate a incêndios.
Chris Baixo
11
@ strugee, existe um marcador de sintaxe zsh - github.com/zsh-users/zsh-syntax-highlighting , eu o encontrei através do muito legal oh-meu-zsh.
21372 Joe Block

Respostas:

2

Não tenho certeza sobre o destaque do Bash, mas o recurso Auto-Complete do Bash provavelmente sugerirá automaticamente, como você mencionou.

Embora o preenchimento automático do Bash não possa mostrar sugestões como você deseja, mas ele realmente preenche o conteúdo quando você pressiona [TAB]. Se houver muitas opções para concluir o conteúdo, pressione [TAB] duas vezes e ele mostra todas as opções.

Por exemplo:

$ cat /etc/pa[TAB]

=> nada acontece

$ cat /etc/pa[TAB][TAB]
pam.d/       passwd       paths        paths.d/

=> mostra todos os arquivos / diretórios iniciados com "/ etc / pa"

Você pode configurar para concluir automaticamente com qualquer comando, parâmetros, arquivos / diretórios ... ou brincar com ele como programação
Mais informações em: http://www.linuxjournal.com/content/more-using-bash-complete -comando

Se você quiser pular para um comando anterior, pressione ^ R e digite alguns caracteres:

(reverse-i-search)`cd': cd ..

=> pule para o último comando, comece com "cd"

Eu sei que isso não é exatamente o que você deseja, mas que quase faz o mesmo e ajuda a comodidade suficiente.

incous
fonte
8
Obrigado por responder e oferecer esta sugestão. Eu estou familiarizado com esse recurso e o uso diariamente, o recurso que eu queria era que o fizesse dinamicamente, sem a necessidade de pressionar o [TAB] [TAB] para iniciá-lo.
Slm
2

Infelizmente não. Mas prevejo que o bash diminuirá enormemente se você tentar implementar esses recursos. Talvez seja por isso que ninguém "portou" esses recursos ainda.

O mais próximo que encontrei foi https://github.com/dvorka/hstr , uma caixa de sugestões de shell


além do bash:

Não testei, mas a única "alternativa portada" que encontrei foi escrita para zsh: https://github.com/zsh-users/zsh-autosuggestions

Alguns qwant'ing também me levam a https://websetnet.com/shell-packs-power-python-bash/ e https://github.com/xonsh/xonsh alias http://xon.sh , talvez também suporta isso imediatamente

... mas, tenho certeza que você não está interessado em outras alternativas para o bash, porque então você pode simplesmente mudar para o peixe;)

childno͡.de
fonte