Hacker News new | ask | show | jobs
by masukomi 1075 days ago
The thing about vim and emacs is that both of them, out of the box, suck. BUT, what they both offer better than anything else, is the ability to gradually modify them to match what your brain needs.

I 100% agree with your hyperbolic "200 keybinds to make a view component" But that's ...that's not how it works unless that's what your brain wants.

With ALL editors you eventually encounter "ugh, this is frustrating" or "i wish i didn't have to do that" and then you have 30+ years of plugins and configs you can draw on to modify it to match your liking without any coding. VERY rarely, you'll want to tweak it in a way that there isn't a plugin / config for and you'll find communities of very helpful people who'll respond with "what about this solution..."

The fact is that _your_ brain is different from everyone else's. The less configurable an editor is the less it will be able to support the way your brain likes to work.

You _can_ accept pre-made defaults like those provided by VSCode OR you can gradually refine your editor to be a perfectly crafted tool for your particular and very individual way of thinking.

I choose the latter because i spend SO much time staring at my editor and trying to convince it to do things that are almost always better with automated assistance from it.

3 comments

> You _can_ accept pre-made defaults

In my case, I'd prefer to do so. I'm a different use-case though, I'm a server admin so I want to be as comfortable with bare-bones defaults as possible so that I can jump on any server and just use Vim (or sometime just vi!). I can't afford the time it would take to set up a custom config on every server in every environment, so the most I need is a basic .vimrc that has `set number` and a couple netrw tweaks that I can copy with scp and get going. Most of the time I don't even copy that over and run `:set number` when I open a file.

Note that I'm still an intermediate Vim user at best, splits and markers are the most complex features I use (no macros yet). I know I can edit remote files, so maybe once I'm comfortable with that then I can set up some real customization in each environment.

Sysadm here as well, been using vi since the '80s. A year or so ago I threw away all my custom vimrc and went with (nearly) bone stock LunarVim, and have really enjoyed getting off the treadmill of maintaining a custom vim setup. Partly because of the 100s of machines issue, partly because of managing plugins and interactions between them. I program maybe 5% of the time, so the stuff I do to make it IDE-like often isn't worth maintaining for that 5% time, so I often end up with partially working plugins or whatnot.

LunarVIM has been a bit tricky, mostly related to upgrades around LunarVIM, usually neovim updates. But, the capabilities of having Language Server in vim have been so refreshing! Particularly when working with Python 2 code to bring it up to Python 3, pretty much just follow what Language Server says.

When it gets right down to it, there are only a couple little tweaks from my old setup I want to carry over, everything else I want to go back to using defaults (places where I've diverged my own functionality) and stop pushing around a poorly maintained manual config that gives me 10% of what Lunar or similar gives.

One of the things I noticed about LunarVim is that they were not very receptive about it in the official NeoVim rooms whereas people there (including NeoVim developers) were quite positive about LazyVim. The other alternative they suggested was https://github.com/echasnovski/mini.nvim

TLDR is that with the global lvim object, custom path, breakages because of unstable plugins it causes a lot of support issues where people go to the official NeoVim channel and not the LunarVim one.

I switched to LazyVim, which is developed by folke (one of the main developers of most of the plugins (trouble.nvim, tokyonight, which-key, lazy.nvim etc) https://github.com/folke?tab=repositories) the other "vim distributions" use anyway.

It worked out of the box, the method of simply overriding a few settings https://www.lazyvim.org/configuration/general was a lot easier to understand.

I'm also very happy I only maintain now "one configuration", I really disliked having "nvim" and "lvim" simultaneously on the same machine.

The method of checking out the "starter" repo https://www.lazyvim.org/installation and simply deleting the .git folder is a LOT nicer than an annoying installation script that does a gazillion things (LunarVim).

I've got a painstakingly crafted neovim config that approximately works how I want it to, most of the time, and I'm happy with it. But it's taken a while, a lot of nights inevitably spent mucking with plugins and LSP and gluing it all together instead of working on more rewarding things.

I'd be lying if I said I'd never thrown something at a wall in frustration due to vim acting in some bizarre, inexplicable way and not knowing why, although that definitely happens less nowadays with nvim.

I hadn't heard of lazyvim until the other day and I doubted I'd really need it, but now that I know it's something new from folke, I'm gonna have to give it a shot. Always quality stuff from him -- dude is a machine, when does he sleep?

mini.nvim is not a pre-made setup, but a bundle of plugins.
Nonsense. I've been using Vim for 15 years and I don't have any special keybindings. It absolutely does not "suck out of the box".
Exactly. You absolutely need maximum configurability for the most important tools in your arsenal. You can pass with defaults on less used tools but everyday stuff should be as efficient as possible. In my case those tools are editor, shell, browser, OS, media player - they are customized extensivelly.