Vim (text editor)
I have been using Vim as my only text editor and writing tool since 2013 or something when I first learned it. I’m one of those guys whose Vim configuration is over a thousand lines long and makes use of dozens of plugins. I can’t really even use Vim with the default config (eg on someone else’s computer).
For programming, I hate IDEs with passion, even when they come with a very good Vim mode. For other writing, I just can’t live without the abilities vim gives for fast editing. Common for both of these cases is that I hate using the mouse when I’m in the “writing mode” (touch typing).
I started programming in C almost 20 years ago. Vim is, without question, the worst C codebase I have seen. Copy-pasted but subtly changed code abounds. Indentation is haphazard. Lines contain tabs mixed with spaces. Source files are huge. There are almost 25,000 lines in eval.c. That file contains over 500 #ifdefs and references globals defined in the 2,000 line globals.h. Some of Vim’s source code isn’t even valid text. It’s not ASCII or UTF-8.
I have no idea if the quote is true, but Vim is still the best text editor out there, or at least was until neovim came along. The best thing about it is probably the customization ability, and modal editor model is the “sane” design choice that sets it apart from emacs (a text editor which has lots of cool non-editor features that have been said to make it more like an “operating system”. I just need a good text editor).
Anecdotally, a lot of good PC games also seem to have horrible code bases, but I think there it’s more understandable because once the game is done the code can in theory be abandoned. However, personally I think even “finished” code should be clean: Most importantly because you rarely know when you will actually be finished so the risk of getting stuck with unmaintainable code before you are done is severe. These days it’s a norm that a game will be updated for some time after the initial release. Clean code is also secondarily important because for a compentent programmer there is really no excuse to ever write bad code. Sure you might be in a hurry once in a while and take some shortcuts, but if you are in an environment where that is the norm, then I would think you are limiting your growth as a programmer and should consider switching jobs.


