Preface
If you want a preface it’s here, it matters not but if you need or want one for this topic here it is; if not, just skip it. Modern editors are amazing, whether it be Neovim, Sublime Text, VS Code, Cursor, Helix or whatever else you decide to use. I wrote this blog post in Emacs and you can say whatever you want about it. I have used VS Code, Eclipse, Neovim, Notepad++, Notepad, Netbeans, Sublime Text and vim to write stuff before and this is enough for me to have formed my personal opinion based on my short and limited experience.
Now let’s move forward and don’t ever forget.
Text Editor Of Choice Matters
The editor you pick matters to me about as much as what you ate for breakfast yesterday. Can you build properly with it? Are you properly productive and effective with it? Do you know at least 4 shortcuts in it (if applicable) that aren’t open, save or close file/buffer? How do I exit vim? If you couldn’t answer any of those properly (except last one) or your answer is “no” or “kinda” for the first two, then you are not doing well in your editor. Does that mean that you should change editor in my eyes? If your editor is plain notepad (I love notepad more than vim btw), then yes otherwise no. Your editor matters cause it helps shape how you work alongside being a reflection of your mind and some editors are very customizable to just be made fit with your flow easily. I personally hate customizing an editor, and trust me I tried to get a feel for it by spending around 24 hours in neovim config file only to end up with a very minimal configuration. I really couldn’t care more about how “customizable” your editor of choice is but if you care about that then you go have fun.
I don’t like having modes and I really tried to understand the great appeal. I spent around 1 year, maybe a bit more, using Neovim and Vim for code and all text editing I did. I don’t think it’s a wrong thing to try, in fact I’d recommend trying it out. I find it fascinating how after getting “used” to switching between the modes in Vim effectively, I just felt like I was attempting kill my own soul and replace it with a different person’s soul. Interestingly though, there are people that have the thing feel like a brain re-configuration and they feel an uplifting feeling or at least that’s what I read/heard online by tech people whose opinions I respect sometimes (decent tech takes sometimes). Meanwhile when Vim motions clicked for me, I felt like I was thrown to the dirt and kicked while I was down and spat on. I don’t say this as in I didn’t become effective using it and it was slowing me down. I became rather proficient and fast in writing and editing code, faster than I was in VS Code. However, by now I have forgotten about half or more of what I did when I was actively using it. The 2 biggest take aways I had after using Vim/Neovim is that simple and I mean really simple regexes are okay and I realized that writing code without an LSP is nice.
Coding without an LSP is a freeing feeling but that’s definitely a rant for some other time. Setting that muse aside, the most critical step after choosing your editor isn’t endless customization, but rather the act of consistently using it to create something.
Spend Time Writing
The biggest issue I think that can exist after you pick a text editor is that you don’t write enough text in it! Actually write stuff with it, be it code, markdown, notes, urmom jokes, omegaverse fanfics (if you don’t know what this means, it’s fine you don’t need to know), or your billion dollar ideas that will surely bring you debt. I don’t care, don’t show it to me if it’s not relevant to me but write stuff with it. See whenever you find something repetive or hard to do see if there’s a way your editor can simplify that. What do you write most throught your day? Maybe it’s documentation, poetry, stories, code, notes or something else. Throughout my time with Neovim, I spent most of my time writing being code and notes. I actually became appreciative of the idea of just opening Neovim for quick edits in a file because it was open file, press /
for searching what I wanted to change or doing :<line-number>
for jumping straight to the line to needing changes and maybe do something like ciw
to change a word. I learned my own habits of how I think about sequences of words and phrases, by writing and being conscious of my thinking. This of course was also helped by my walking through different text editors but not strictly a necessity for this self-investigation.
I liked code snippets in VS Code, so I tried to get them in Neovim and then realized that I am perfectly fine without them after I failed to set them up. Then I didn’t even bother once I moved to Emacs. I learned that I didn’t need snippets, and it felt meditative to write that boiler plate by hand. I am talking about HTML, I actually just didn’t write more HTML while I did Neovim. The thing is outside of HTML I didn’t feel the need for snippets. I wrote some Python, C, GDScript, and even Rust without feeling like snippets were something I required as much with Neovim and with Emacs I just felt like certain things I can quickly just jump to it after writing it once, copy it and paste it, with some minor changes sometimes. That flow just makes more sense to me personally than snippets. This is a stupid mini-rant about snippets but the thing is I wouldn’t have known that I like better not using them if I didn’t write and try out different editors that had a tiny bit higher bar of friction for this action to be used. That is just one of the things that I switched perspective on after moving through editors. Some of the perspective shifts I had wasn’t even about writing but ironically I had that switch because of the flow changes.
Flows in general are a whole separate topic though. The thing that these flows bring up though, is how we connect willingly or unwillingly with our tools in a relatively emotional sense.
Editors Carry Emotions
All editors carry the emotions of their original creators in a sense, you feel the touch of the personality of the original maker of that piece of software. How well you mesh with the developer’s feelings about text shows with how well you feel the defaults fit with you. The saying of “good defaults” is hard for me to apply for a text editor cause text editors like Notepad, Vim, and Emacs are all different. They differ in how you go around and do the same things by default but all three are good text editors in their own right which follow different philosophies. If you think any of those are wrong, then you are saying that the mind set needed for these editors to connect with someone is plain wrong. Does that mean that person’s mind is wrong? Do they need fixing in your eyes? I might be broken in some way but being flawed is part of the human experience. Personally, I never could feel like I connected with vim motions even after a year. I do some quick file edits with Vim/Neovim sometimes and move through the file with motions. I wrote macros, I understand the basics of motions but I’m a person with different views of text than Vim. My emotions aren’t the same, so we disagree and sometimes when we disagree I feel insulted or confused or even annoyed at worst.
I felt like Notepad for quite sometime being the only text editor that gets me in some way. Recently I felt like Emacs gets me more on my view of words but we differ in stanzas. Which somehow is the opposite of how I feel with Vim. Vim connected to me like our stanzas rhymed, Emacs seemed to write words like I would pick’em and Notepad agreed in the scenic views I prefer to hold. I could try to customize Emacs or Neovim to make them feel exactly like how I want them to feel, possibly put lots of effort into the “perfect” configuration for myself. The issue about that is that I hate spending lots of time configuring something. I even feel like I used so much time to end with my Neovim config that I just wasted most of that time. My Emacs configuration has more things than my Neovim one yet I spent considerably less time & effort on it. I won’t be showing my files, but I assure you they are relatively minimal. Also when I mean spending time configuring the editor I refer to fixing custom bindings, plugins for functionality, setting up a package manager, but setting up a mode per language in Emacs is not part of this configuring. Mostly the reason being because I just use the builtin package manager in Emacs and copy and paste the setup given by the package’s README. This of course is just my own emotional connection to these actions and you can feel different from doing these same things, that’s natural.
Conclusion
- Your text editor sucks for someone even if that someone isn’t you
- All editors have tradeoffs
- I never felt more dead writing than when vim motions clicked
- All editors are awesome
- You should understand your emotional connection with your editor and yourself
- You should love yourself
- Don’t evangelize your editor
- You should write a lot
No, I didn’t talk about all the points listed above. My conclusion is really just that you should write and understand your own mindset on text. Maybe try out different editors for a good while, while writing a lot and actually trying to understand your editor.