I’d say vi is in a fuzzy grey area below a tui. It’s more than a cli but shares a lot with cli programs; it pretty much has its own command line built in. At the same time it has nothing like dialog box or menus like normal tui programs.
Personally, I feel that if it uses control characters to update the screen in previous positions, altering the scroll buffer, moving beyond where the cursor is and redrawing the screen, then it’s a TUI.
CLI programs only output plain text in a stream, using just control characters for coloring and formatting, and if they do any re-drawing it’s only for the current line (eg. progressbars and so).
So… even something like less is a TUI program… but things like more or sed would be CLI programs.
Yes. Think of any terminal application with an interactive user interface, that mimics a GUI. Something that is not just controlled by commandline options like grep and sed in example.
It’s a UI that sits in the terminal (thus TUI). Think htop, or btop; They are often ran from CLI, but offer more of a UI.
Thanks! I guess something like vim would count as a TUI then.
I’d say vi is in a fuzzy grey area below a tui. It’s more than a cli but shares a lot with cli programs; it pretty much has its own command line built in. At the same time it has nothing like dialog box or menus like normal tui programs.
Personally, I feel that if it uses control characters to update the screen in previous positions, altering the scroll buffer, moving beyond where the cursor is and redrawing the screen, then it’s a TUI.
CLI programs only output plain text in a stream, using just control characters for coloring and formatting, and if they do any re-drawing it’s only for the current line (eg. progressbars and so).
So… even something like
lessis a TUI program… but things likemoreorsedwould be CLI programs.Fair enough. I’d never consider less to be a TUI program.
Yes. Think of any terminal application with an interactive user interface, that mimics a GUI. Something that is not just controlled by commandline options like grep and sed in example.