Interact with this post using Mastodon or
Why not another text editor?
Published on
Since I’ve wrote a Why not another shell?
post I thought I would take some time to write a similar one for my text editor. Before anything else, I’d like to say that this post will obviously lack tons of details, explanations, accuracy… because it would take a 200-page book to compare all the text editors available to GNU/Linux users. Also, this is not what I’m aiming at here. One more time, I simply want to share my user experience and briefly (hence incompletely) expose to you the main reasons why neovim
is my daily text editor.
╭── The world of text editors is vast
If you look at the available options you can easily find at least 50 candidates which you can divide between GUI, CLI, or both. In this jungle, emacs
and vim
are the most notorious ones. Everyone has a preference and it’s my personal opinion that - once you master either of these 2 text editors well enough - they’re both fast and hugely extensible so at the end of the day I’d say that the main difference to me is the coding language and the philosophy.
╭── It’s been a long journey
I’ve tried vim
when I moved to Linux more than two decades ago. At that time I didn’t really know what I needed and I was so impatient to discover a brand new world that I quickly get lost with vim
and used it as a very basic text editor only.
After few years, I became more and more familiar with Linux as a whole and I grasped the knowledge I was lacking to better benefit from the vim
power. Nonetheless, I was still using vim
way below its capabilities. So, last year when a friend introduced me to emacs
it simply blew my mind and I thought this was the tool I was waiting for at that point in my Linux journey.
But yes, I moved back to vim
so what was wrong with emacs
? Nothing… I mean the tool by itself is awesome, it’s just not the one that works the best for me. And guess what? The best part of this story is that I still have a good relationship with my emacs
friend :) So there’s still hope in this world.
╭── emacs
was great
As often, the “issue” with a tool is not the tool itself but we couldn’t build a strong relationship together so I decided to leave it before making it suffer too much. Yes, I have a weird relationship with my Linux tools.
Anyway, I was the faulty one because:
- lisp is too complicated to me. At least,
vim
language and lua now are way more accessible to me - the lack of uniformity across plugins coding which sometimes created some conflicts
- I could not find my way working with the
emacs
wiki and can more easily find clear support online and especially invim
plugins github pages - the “do one task and do it well” philosophy resonates in me every time I use a tool. Even though,
(neo)vim
can be overcharged and complete tasks beyond a simple text/code editor, these extra features are still limited by the nature ofvim
itself which is to be a “dumb” text editor. If this can be seen as a limitation, I see it as a sanity measure in this particular case
╭── (neo)vim
works better… for me
One of the things I really love is to be offered with a pretty bare bones tool that is insanely customizable and extendable. With that you end up with the perfect tool for you and no extra features that you are not using but have to be maintained to not break your tool. (neo)vim
offers that with a simple implementation approach.
I am an average user who likes coding simple things (in bash, lua, python, and few others). I also need to organize quite complex notes for scientific papers, and I like writing stories for rolegames amongst other things. These are my basic needs and vim
can cover it all through plugins. And icing on the cake, you can find different plugins to cover the same need but with a slightly different focus/approach and that’s super neat. I love having the choice and as I always says that’s one of the magic of Linux in general: you have the real luxury choice to chose the tools that fit your need the best.
If we add to this list that I like portability and being able to integrate a tool in my other tools then vim
became quite obvious to me because I can use it in my web browser and in my email client.
On top of that, it’s great to be able to use the extremely powerful navigation and text edition offered by vim
in zsh
and several other tools (like ucollage
, newsboat
…) for example.
╭── I’m using a fake emacs
When talking with this friend who introduced me to emacs
, I now realize that his all-in-one experience with emacs
is what I reproduced by combining neovim
to tools like tmux
for example.
BTW, tmux
is a super coding companion. It allows you to attach/detach sessions so you can keep the session running in the background and come back to a given project when needed while having all your windows already configured (and you can also scripted them).
It’s a personal preference to combine tools rather than using a do-it-all one because - while it requires more efforts - I learn a lot from tweaking these different tools, I use each of them individually to complete other tasks, and it’s often more stable/flexible.
Thanks for your read. Hope it's been useful to you.
✄ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈
More food for thoughts? Check other posts about: #(Neo)vim