Ideal Editor

I spend a lot of time editing text and I have used different text editors over the years. I started off on Sublime Text then I was introduced to Vim by a friend and it didn’t quite stick then and it didn’t help that I didn’t know how to touch type. I spent time in the Jetbrain gulag even buying multiple licenses for different IDEs, then came VS Code and back to Vim. I primarily use Vim now because it’s UI is minimal and helps me stay focused but I am not a Vim purist and there are things that I like from other editors I wish Vim had.

The reason why Vim makes it easy for me to stay focused is because of two things; minimal UI and modal editing. I find using vs code exhausting because of numerous widgets on the screen, pop ups and badges. With Vim, I can focus on the task at hand. The other reason is modal editing which reduces effort needed to try out different ideas whereas a mouse increases the drudgery.

Like I mentioned, I am not a purist and frequently use vs code to “debug in production” because where Vim will require me to manually install language servers and dependencies VS Code’s remote development feature just works. And because I don’t use it for long during this time I don’t mind the inconvenience. Vim emulation in VS Code is great but it doesn’t feel the same which is why I keep going back to Vim.

I also think Sublime Text is a great editor with a beautiful UI, I haven’t used it for more than a few consecutive days and my ignorance might show here but I find the lack of an integrated terminal limiting. My workflow involves building things in small iterations and as such I rely on the terminal to validate my assumptions and having to switch to a different window to do this is asking for too much. Also, I never seem able to get the language servers to work reliably.

With that said, my ideal editor would have Vim’s modal editing as a native feature not an emulation and minimal ui, Sublime Text’s beautiful UI and VS Code’s extension marketplace and remote development feature. This editor doesn’t exist and I might have to build it.