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