I do miss the terminal in a lot of ways. I feel a lot of nostalgia for the days when I got all my work done with just 2x2 terminals taking up the entire screen. (You could just fit them in with 1024x768 and the 8px high Tixus font.) But in 2022 it feels impossible to live entirely in a terminal unless you're in very specific areas of work.
Nobody lives entirely in terminal these days; but terminals have gotten much nicer.
Running Neovim in something like WezTerm, Kitty or Alacrity is closer to what it was like to use a GUI version of Vim (like MacVim) not too long ago.
Full-color support, full OpenType support (like ligatures), built-in multiplexing at least in WezTerm, in a fast, GPU-accelerated UI.
Neovim's support for the same LSPs as VS Code + support for Treesitter.
+1 for LSP-Zero, which makes configuring LSPs and linters trivially easy for Neovim.
I'm not suggesting that you or anyone else should use Neovim instead of VS Code, but I've certainly read enough blog posts about TypeScript and Rust developers moving from VS Code or IntelliJ to Neovimn for a variety of reasons. I've seen Neovim core developers coding on YouTube and Twitch and they look pretty productive to me.
I've attempted to use VS Code; it usually starts okay but doesn't end well and I go back to Neovim.
Neovim hasn't made it to version 1.0 but so far, it's on the right track and I love the vibe of the Neovim community.
I think very few people "live entirely in a terminal". I've never been all that big on IRC or mutt and the like, or "do X from the terminal!"-type programs, but a huge chunk of what I do is writing stuff (code, or just plain text), and Vim works pretty well for that. I also find it works very well for managing files and such; for example a few weeks ago I took over an old Go project, and I wanted to fix some of the "if foo == false" conditions to just "if !false", as well as reformat with the newest version of gofmt, so:
for f in **/*.go~vendor/*; gofmt -w $f
for f in **/*.go~vendor/*; gofmt -w -r 'a == false -> !a' $f
I guess maybe you have some buttons for that VSCode, but this sort of stuff is pretty fast to type out, and you have a lot of control like "exclude this directory" (like the vendor directory in the example). You can also do more advanced stuff; some time ago I wanted to see how much space my qemu images were using so I could use reasonable defaults for new versions:
for f in *.qcow2; printf '%-30s %-15s %s\n' \
$f \
"$(qemu-img info $f | grep -o '^virtual size: [0-9.]* [KMG]iB' | sed 's/virtual //')" \
"$(qemu-img info $f | grep -o '^disk size: [0-9.]* [KMG]iB' | sed 's/disk size/used/')"
Which is a bit hacky, but it's a one-time command and it prints a reasonable nice-ish table. This kind of stuff is much harder from a GUI.
It's really flexible and just as "simple" or simpler once you know all the tricks. Learning all the tricks of course takes a long time; say hello to my teenage years with no friends or girlfriend.
Anyway, aside from file management and Vim I do almost everything in the browser, and more or less always have, but for some things it's hard to beat a good shell.
> But in 2022 it feels impossible to live entirely in a terminal unless you're in very specific areas of work.
To be honest, that was true 25 years ago for most of us. Some programmers could have perhaps gotten away with only the terminal, but most people using computers in their work have long had to use word processors, spreadsheets, and other critical GUI software if we wanted to keep our jobs.
Admittedly I was a student at the time, so I had a lot of time to explore and make things work.
I used mutt for email, irssi and the bitlbee proxy for chat, wrote styled docs with LaTeX, etc. When I interned at IBM in 2005 I was even able to get Lotus123 or whatever horrible email thing they used to work with mutt, and my supervisor even encouraged me because he wanted to use it, too.