¿Bash tiene características similares, como las sugerencias automáticas y el resaltado de Fish?


37

Recientemente noté 2 características en Fish y me preguntaba si alguien sabía si estas también estaban disponibles en Bash.

Resaltado de sintaxis

ss # 1

Detalles específicos:

  • Notarás rápidamente que el pez resalta la sintaxis mientras escribes. Los comandos no válidos son de color rojo por defecto:
  • Un comando puede ser inválido porque no existe o se refiere a un archivo que no puede ejecutar. Cuando el comando se vuelve válido, se muestra en un color diferente
  • fish subraya las rutas de archivo válidas a medida que las escribe
  • Esto le indica que existe un archivo que comienza con 'somefi', que es un comentario útil a medida que escribe.

Sugerencias automáticas

ss # 2

Detalles específicos:

  • fish sugiere comandos a medida que escribe y muestra la sugerencia a la derecha del cursor, en gris.
  • Conoce caminos y opciones.
  • Para aceptar la autosugestión, presione la flecha derecha o Control-F. Si la autosugestión no es lo que desea, simplemente ignórelo.

44
Sobre el análogo más cercano que bashtiene es el autocompletado. Desafortunadamente, fishel script es tan elemental que es un sustituto muy pobre para el tipo de cosas con las que hago habitualmente bash.
DopeGhoti

1
@DopeGhoti, de ahí mi pregunta al Q 8-)
slm

2
Pruébalo en un enlace ssh de alta latencia, llegarás a odiar las funciones en línea bastante rápido.
llua

1
@slm La mayoría de ellos son casos de esquina, algunos más desagradables que otros, pero puede ser bastante malo cuando se implementa en muchos entornos. Las "características asesinas" para 4.3 son cd -@, wait -n, globasciiranges, y $BASH_COMPAT, lo que mucha gente quería. Casi todo lo demás es solo extinción de incendios.
Chris Down

1
@strugee, hay un resaltador de sintaxis zsh: github.com/zsh-users/zsh-syntax-highlighting , lo encontré a través del genial oh-my-zsh.
Joe Block

Respuestas:


2

No estoy seguro acerca del resaltado de Bash, pero es probable que la función de autocompletar de Bash sugiera automáticamente, como usted mencionó.

Aunque el Autocompletado de Bash no pudo mostrar sugerencias como desea, en realidad llena el contenido cuando presiona [TAB]. Si hay muchas opciones para completar el contenido, presiona [TAB] dos veces y muestra todas las opciones.

Por ejemplo:

$ cat /etc/pa[TAB]

=> no pasa nada

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

=> muestra que todos los archivos / directorios comienzan con "/ etc / pa"

Puede configurar para que se complete automáticamente con cualquier comando, parámetros, archivos / directorios ..., o jugar con él como programación
Más información en: http://www.linuxjournal.com/content/more-using-bash-complete -mando

Si desea saltar a un comando pasado, presione ^ R y luego escriba algunos caracteres:

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

=> saltar al último comando comenzar con "cd"

Sé que esto no es exactamente lo que quieres, pero eso casi hace lo mismo y te ayuda lo suficiente.


8
Gracias por tomarse el tiempo para responder esto y ofrecer esta sugerencia. Estoy familiarizado con esta característica y la uso a diario, la característica que quería era que lo hiciera dinámicamente sin la necesidad de presionar [TAB] [TAB] para iniciarla.
slm

2

Desafortunadamente no. Pero predigo, que bash se ralentizará enormemente si intentas implementar estas características. Quizás es por eso que nadie "portó" estas características todavía.

Lo más cercano que encontré fue https://github.com/dvorka/hstr , un cuadro de sugerencias de shell


aparte bash:

No lo probé, pero la única "alternativa portada" que encontré fue escrita para zsh: https://github.com/zsh-users/zsh-autosuggestions

Algunas preguntas también me llevan a https://websetnet.com/shell-packs-power-python-bash/ y https://github.com/xonsh/xonsh alias http://xon.sh , quizás también apoya eso fuera de la caja

... pero, estoy bastante seguro de que no estás interesado en otras alternativas a bash, porque entonces puedes cambiar a pescado;)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.