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