1---
  2title: "Configuration and plugin hell and why I don't use Vim and Tmux anymore"
  3url: configuration-and-plugin-hell-and-why-i-dont-use-vim-and-tmux-anymore.html
  4date: 2024-03-14T11:11:20+01:00
  5type: post
  6draft: true
  7---
  8
  9There are three tiers of CLI software as far as I am concerned:
 10
 11- tools like `ls`, `cat`, `ps` (you use flags to customize, and you pipe
 12  results through them),
 13- tools like `htop`, `nvtop`, `midnight commander` (you can change the theme
 14  and maybe small things),
 15- editors like `vim`, `helix`, `emacs` and multiplexers like `tmux`, `zellij`,
 16  `screen` (usually very customizable).
 17
 18I understand that something like [GNU
 19utils](https://www.gnu.org/software/coreutils/) need to be small and concise
 20and minimal. No unnecessary fat or configuration options. I am a massive
 21proponent of [POSIX](https://en.wikipedia.org/wiki/POSIX) style of utilities. I
 22still think the [`pipe
 23operator`](https://www.geeksforgeeks.org/piping-in-unix-or-linux/) is one of
 24the most amazing things ever invented. I am still in awe when I use it today.
 25
 26But when it comes to applications like text editors or terminal multiplexers, I
 27have a bit of a different opinion. I think they need to have some basic
 28batteries included. And I agree that basic batteries included is a loaded term
 29and means different things to different people. I will try to make a case that
 30takes in account things that matter to me and, by extension, also may matter to
 31others. Otherwise, they would not have configuration files for these
 32applications that are bigger than some of their own projects.
 33
 34It is very naive to think that bare-bones [Vim](https://www.vim.org/) is enough
 35for working on a larger codebase. For some it may be so, but the majority of
 36people would prefer some minimal
 37[LSP](https://en.wikipedia.org/wiki/Language_Server_Protocol) integration to
 38quickly jump to definitions, fuzzy finding of files, things like that. And in
 39[Vim](https://www.vim.org/), I need a plugin to do this. The same goes for
 40[Neovim](https://neovim.io/).
 41
 42People bash on others when they say: I would rather not deal with
 43configurations, or I just want to use my system without the time investment of
 44learning everything into details and then configuring it.
 45
 46Most people don't derive their pleasure from ricing their setup. How is this so
 47impossible to understand for some people?
 48
 49There is also the argument that you should learn your tools. That is correct
 50and true. But again, it's a matter of perspective. Not everything needs to be
 51conquered and dominated. I am perfectly fine with knowing only 30% of some tool
 52if 30% is what I need from it to do the job I need to do.
 53
 54For me, the argument, "But what if you end up being on a server?" is
 55ridiculous. Firstly, you shouldn't be developing on a server. If you need to
 56SSH to debug something, there is probably
 57[Vi](https://en.wikipedia.org/wiki/Vi_%28text_editor%29) there already and `:w`
 58and searching config files will work. And if nothing else, you most likely have
 59`nano`. Not pretty, but gets the job done. I don't think people making these
 60arguments take their [Neovim](https://neovim.io/) setup (with all their custom
 61shortcuts and plugins, which makes this a [PDE](https://www.guidefari.com/pde/)
 62actually) with them on the server. If they do this, they should be fired. :)
 63
 64You should learn [Vim motions](https://vim.rtorr.com/) is another one. They
 65will change your life. I did learn a lot of them. I think they are amazing. But
 66my life wasn't changed at all. I can still hop into a normal notepad and do
 67some coding there and be very productive. Nothing really changed for me. I
 68suspect these are the things that people who have very addictive personalities
 69say because [Vim](https://www.vim.org/) motions bring joy to them. I can
 70imagine they get a massive dopamine hit using it. For me, it does nothing. It
 71is a convenient way to edit text. If I don't have them, I also don't miss them.
 72[Vim motions](https://vim.rtorr.com/) I mean. I adapt quickly. Doesn't bother
 73me at all.
 74
 75The next argument I hear a lot is, "I only check my setup once a year, and then
 76I am set. I don't tinker with my setup at all". This is an argument of a
 77seasoned user who went through all the stages of Vimtopia. If you were to put a
 78vanilla Vim in front of them, they would feel almost as lost as a first-time
 79user. You get a completely warped sense of reality when you rice your setup to
 80ungodly levels. Which you tend to do anyway. It's the nature of the beast.
 81Sure, you would know some basic motions, but all those custom shortcuts you are
 82so used to would not be there. You would feel lost. No question about it.
 83
 84Did I have a massive `.vimrc`? Yes, I did. I was transitioning from
 85[Emacs](https://www.gnu.org/software/emacs/) to [Vim](https://www.vim.org/) and
 86I wanted some basic things to navigate code and not waste time finding stuff in
 87projects I work on. And to reproduce something usable required multiple plugins
 88to make [LSP](https://en.wikipedia.org/wiki/Language_Server_Protocol) work,
 89fuzzy searching was a bit easier, just two plugins, I think. But it required a
 90ton of reading and Googling for information. Also, let's not pretend these
 91plugins are frozen in time. Making
 92[LSP](https://en.wikipedia.org/wiki/Language_Server_Protocol) work with
 93[Neovim](https://neovim.io/) became much easier, and you now use different
 94plugins than you did two years ago. So, you also have to keep track of these
 95things. This adds a big overhead. Let's be honest about it.
 96
 97The same goes for [Tmux](https://github.com/tmux/tmux). Tmux also supports
 98plugins. And here we go again. And saying you can just use the native
 99functionalities is a dishonest thing to say. Because if that were true, nobody
100would use these plugins, and they would not be popular at all.
101
102Now, if you like ricing your setup. Configuring things. And playing around with
103your environment, you go for it. I can understand. I was the same in my youth.
104It was fun and I loved every minute of it.
105
106The problematic thing that occurs is that Vim evangelists then go and preach
107the Vim gospel, making everybody not using it feel like shit and incompetent
108fools who do not care about "real" programming.
109
110I have friends who use [VS Code](https://code.visualstudio.com/) and are
111amazing programmers. They don't care about terminals or plugins or config
112files. They open their editor of choice and smash at writing the code they need
113to write. And my respect for them has nothing to do with the complexity of
114their setup. I respect them because the code they write is of high quality. How
115they come up with it is of no importance to me.
116
117Most of the software we use daily or runs our world was written by people who
118barely knew how to use a keyboard. Just watch [Brian Kernighan
119type](https://www.youtube.com/watch?v=tc4ROCJYbm0) and you will see what I
120mean. And then look at his accomplishments. Slow typing doesn't mean shit. It's
121the quality of the work that matters.
122
123The reason why I switched to [Helix](https://helix-editor.com/) is simple. It
124has [LSP](https://en.wikipedia.org/wiki/Language_Server_Protocol) and fuzzy
125finding built-in. There is no plugin system in place, so they needed to include
126common things programmers need these days. For commenting a line, you don't
127need a plugin. Just press `ctrl+c` over the line and that's it. I don't remap
128anything. I use the defaults. The only thing I did was change a default theme.
129And I choose one that was bundled with the editor. That was it!
130
131The same goes for [Tmux](https://github.com/tmux/tmux). I don't use it anymore,
132but I need a multiplexer. I am used to it. Old dog, new tricks kind of a thing.
133I've used it for years and years. And [Zellij](https://zellij.dev/) is a modern
134take on [Tmux](https://github.com/tmux/tmux). Batteries included and with sane
135defaults. No config file or plugins on my system to make it usable.
136
137This elitism about personal setups is so exhausting. You should use your
138computer the way you want to use it, and I will use mine the way I see fit.
139This herd mentality I see so often is so cringe. I'm so over taking people
140seriously when it comes to these topics.