En el shell de peces , la línea de comando real está resaltada en la sintaxis:
¿Hay alguna manera de obtener este mismo comportamiento en bash?
Hay algo como esto, pero para zsh, no bash. ¿Es posible que esto pueda ser portado a bash?
Para aclarar a aquellos que no entienden la captura de pantalla, la explicación o el enlace proporcionado: Quiero resaltar el texto real que se ingresa en la terminal. Los comandos, paréntesis, citas, etc.
bash
syntax-highlighting
fish
Wuffers
fuente
fuente
Respuestas:
Bash utiliza
readline
para la entrada interactiva, por lo que el resaltado de sintaxis debería implementarse en ese programa. Encontré una discusión de Grupos de Google sobre cómo codificar dicha función.El shell de peces utiliza su propio editor de línea que es específico para ese programa y no se puede portar directamente.
Puede encontrar que
zsh
es muy similar a bash, y su editor de línea es extensible . Encontré el resaltado de sintaxis zsh para habilitar esta función en zsh.fuente
No hay una manera simple de obtener resaltado de sintaxis en GNU Bash (o GNU Readline), pero en principio es posible implementar su propio editor de línea en scripts Bash vinculando todas las entradas del usuario a las funciones de shell utilizando el comando incorporado
bind -x 'BYTE: SHELL-COMMAND'
. Por supuesto, es posible integrar la función de resaltado de sintaxis en su propio editor de línea.De hecho, implementé un editor de líneas
ble.sh
con características como resaltado de sintaxis y sugerencias automáticas. Es compatible con Bash 3.0--5.0. Dado que está escrito en scripts de Bash (casi) puros, puede ingresarsource
el script~/.bashrc
. Aquí hay una muestra para configurarble.sh
en bashrc (ver README para más detalles):Nota : Sé que a veces responder preguntas con enlaces a productos propios se considera autopromoción y no es preferible, por lo que me he abstenido de responder a esta pregunta. Sin embargo, no aparecieron otras soluciones durante mucho tiempo, y esta pregunta también tiene muchos puntos de vista (lo que refleja su importante demanda). Así que decidí responder a esta pregunta hoy. Refiriéndome a las siguientes preguntas / respuestas meta, describí la idea primero y luego proporcioné un enlace a mi proyecto como ejemplo de implementación.
Sí, tengo que admitir que esto es en realidad autopromoción , pero creo que esto ayuda a las personas que desean la función. Si hay problemas, le agradecería que me lo dijera mediante comentarios.
fuente
No creo que el resaltado de sintaxis deba suceder a nivel de shell sino a nivel de interfaz (solo mi opinión, y la de alguien más parece), por lo que buscaría en "complementos" para Terminal o su consola favorita, por ejemplo, este complemento para Kate podría ayudar, o este otro que ofrece resaltado de sintaxis en nano
Aquí hay más información sobre cómo resaltar la sintaxis en Terminal:
aunque aquí se explica mejor cómo
Espero eso ayude
fuente
ls
comando basado en el tipo de archivo, que no tiene nada que ver con la sintaxis de shell.