Bash ha funzionalità simili come le segnalazioni automatiche e l'evidenziazione di Fish?


37

Di recente ho notato 2 funzionalità in Fish e mi chiedevo se qualcuno sapesse se fossero disponibili anche in Bash?

Evidenziazione della sintassi

ss # 1

specifiche:

  • Noterai rapidamente che il pesce esegue l'evidenziazione della sintassi durante la digitazione. I comandi non validi sono colorati in rosso per impostazione predefinita:
  • Un comando potrebbe non essere valido perché non esiste o fa riferimento a un file che non è possibile eseguire. Quando il comando diventa valido, viene visualizzato in un colore diverso
  • fish sottolineerà i percorsi dei file validi mentre li digiti
  • Questo ti dice che esiste un file che inizia con 'somefi', che è un feedback utile durante la digitazione.

autosuggestioni

ss # 2

specifiche:

  • fish suggerisce comandi durante la digitazione e mostra il suggerimento a destra del cursore, in grigio.
  • Conosce percorsi e opzioni
  • Per accettare l'autosuggestione, premi la freccia destra o Control-F. Se l'autosuggestione non è quello che desideri, ignoralo.

4
L'analogo più vicino che bashha è il completamento automatico. Sfortunatamente, lo fishscripting è così elementare che è un pessimo sostituto del tipo di cose che faccio abitualmente bash.
DopeGhoti,

1
@DopeGhoti - da qui la mia richiesta alla Q Cool -
slm

2
Provalo su un collegamento ssh ad alta latenza, arriverai ad odiare le funzionalità in linea abbastanza velocemente.
llua,

1
@slm La maggior parte di questi sono casi angolari, alcuni più cattivi di altri, ma può essere piuttosto male quando sei distribuito in molti ambienti. Le "caratteristiche killer" per 4.3 sono cd -@, wait -n, globasciiranges, e $BASH_COMPAT, che un sacco di gente voleva. Quasi tutto il resto è solo antincendio.
Chris Down,

1
@strugee, c'è un evidenziatore della sintassi zsh - github.com/zsh-users/zsh-syntax-highlighting , l'ho trovato attraverso il fantastico oh-my-zsh.
Joe Block,

Risposte:


2

Non sono sicuro dell'evidenziazione di Bash, ma è probabile che la funzione di completamento automatico di Bash suggerisca automaticamente come hai menzionato.

Anche se il completamento automatico di Bash non è in grado di mostrare i suggerimenti come desideri, ma in realtà riempie il contenuto quando si preme [TAB]. Se ci sono molte opzioni per completare il contenuto, si preme [TAB] due volte e mostra tutte le opzioni.

Per esempio:

$ cat /etc/pa[TAB]

=> non succede nulla

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

=> mostra tutti i file / directory che iniziano con "/ etc / pa"

Puoi configurare il completamento automatico con qualsiasi comando, parametro, file / directory ... o giocare con esso come la programmazione.
Maggiori informazioni su: http://www.linuxjournal.com/content/more-using-bash-complete -comando

Se vuoi passare a un comando passato, premi ^ R quindi digita alcuni caratteri:

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

=> salta all'ultimo comando inizia con "cd"

So che questo non è esattamente quello che vuoi ma che fa quasi lo stesso e ti aiuta abbastanza.


8
Grazie per aver dedicato del tempo per rispondere a questo e offrire questo suggerimento. Ho familiarità con questa funzione e la uso quotidianamente, la caratteristica che volevo era che lo facesse in modo dinamico senza la necessità di premere il [TAB] [TAB] per avviarlo.
slm

2

Sfortunatamente no. Ma prevedo che bash rallenterà enormemente se si tenta di implementare queste funzionalità. Forse è per questo che nessuno ha ancora "portato" queste funzionalità.

Il più vicino che ho trovato è stato https://github.com/dvorka/hstr , una scatola di suggerimenti di shell


a parte bash:

Non l'ho provato, ma l'unica "alternativa trasferita" che ho trovato è stata scritta per zsh: https://github.com/zsh-users/zsh-autosuggestions

Alcuni qwant'ing mi portano anche a https://websetnet.com/shell-packs-power-python-bash/ e https://github.com/xonsh/xonsh alias http://xon.sh , forse anche supporta questo fuori dalla scatola

... ma sono abbastanza sicuro che non ti interessano altre alternative a bash, perché allora potresti semplicemente passare al pesce;)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.