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