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