The Idea #
For almost a half-dozen years, I have been toying with the idea of ditching Visual Studio Code and moving my development in to the terminal. When I started thinking about it, I set out some steps to follow:
- Swap from
bash
tozsh
- I like the look and utility of the prompts available - Find a way to manage and sync my CLI environment between hosts, with backup and restore
- Add a terminal window manager like
screen
ortmux
- Install and learn
vim
/neovim
- Configure the window manager to function like an IDE with different sessions, windows, panes, etc
- Configure
neovim
to work seamlessly with the window manager to complete the IDE
Current State #
In 2018 or so, I made the switch to zsh
, with oh-my-zsh
as the manager. Then a year or two later I created a repo on my self-hosted Gitlab which I cloned to each of my hosts under ~/.user.d
- in that folder I put all my dot-files and sym-linked to them from their original location. Some time in 2021 I decided to revisit byobu
as a window manager, opting for the screen
based variant and installed neovim
and configured it as my preferred editor. AAnd that is pretty much where my progress stalled.
I still use my old command line editor mcedit
(part of midnight commander) more often than neovim
, mostly due to muscle memory. And I haven’t managed to get byobu-screen
to function like an IDE in any way, besides having a default window config that opens up around 17 different windows for the different things I use my primary server’s command line for.
Next Steps #
So here, in late 2024, I am rebooting my efforts with a slightly list of steps to take, based on what I have learned in the first attempt:
- Either continue with
zsh
or swap tofish
- Ditch my cobbled-together dot-files management solution and swap to chezmoi
- Use
tmux
rather thanscreen
for window management, and start with a plaintmux
config rather than usebyobu
or similar wrappers - Create two aliases:
/usr/bin/vim
asmcedit
- to prevent my muscle memory interfering with me learningneovim
/usr/bin/mcedit
asstopusingmcedit
- so I can still usemcedit
if I really need to, but will get a reminder to stop using it every time I do
- Configure
tmux
to function like an IDE - Configure
neovim
to work seamlessly withtmux
to complete the IDE experience
Finally, in a last ditch effort to keep myself accountable and pursuing my goal, I will be documenting the steps I take, more as a how I did than a how to guide, in case any one else is in the same situation.