Anyone knows if it's possible to color command line commands as you type them (kind of like an editor)?

Binette@lemmy.ml to Linux@lemmy.ml – 70 points –
30

You are viewing a single comment

What you are looking for is called Syntax Highlight. Are you asking this for the terminal? I think this is a property of the shell. Fish has it builtin and for ZSH, there is a plugin: https://github.com/zsh-users/zsh-syntax-highlighting I don't know if its possible with Bash.

Closest thing for bash would be ble.sh.

Tried it out and it works! Thanks!

Yeah, I used to use that before. But its slower for me. So now I use fish for interactions

Yeah, it's slow. I use it currently (because of better vi mode support) but plan to switch back to zsh.

Yes, I am looking for a syntax highlighter for the terminal. The one I use is called Kitty.

It would make sense for the terminal to handle syntax highlighting since that would match how editors work. But the convention is that the shell handles highlighting, not the terminal. You can check which shell you are running with the command,

$ echo $SHELL

It's done that way because the shell is a running program that is capable of telling the terminal which colors to show (by mixing color escape sequences into text). Compare that to code in an editor which is text, not a running program so the only option is for the editor to handle highlighting[1]. Editors need syntax files to configure highlighting for all the different programming languages, while terminals don't need this because the shell tells them what colors to show.

[1] setting aside the "semantic highlighting" LSP capability - that was invented long after syntax highlighting conventions were established