Hacker News new | ask | show | jobs
by glotchimo 1266 days ago
Vim didn’t click for the longest time until I deleted VSCode and used it for everything. Much like with many other concepts/skills, throwing myself in the deep end worked best.
2 comments

You could just have installed one of the vim extensions for VSCode ;)

(even though it's not 'real vim', it's good enough for using both cmdline vim and vscode without the brain having to switch in and out of 'vim mode')

The problem with every fake vim plugin is that the underlying editor does not implement tabs the way vim does.

Combine that with the fact that all the UI elements are not vim-ified. In vim, since everything is a pane and a buffer, you just think "I want to select the panel to the left". Regardless of if it's a plugin view or a file or whatever.

In vim emulator's, that's never the case. It's really not the same, but better than nothing. The vscode plugin and the IntelliJ one are both pretty good compared to previous ones that I tried. But the IDEs are just incompatible with the vim ideology, in my opinion.

As someone who always wanted to try Vim out, I thought the Vim keybindings plug-in was a total game changer. I only use it for moving around in and manipulating the text - because that’s all it can do - and it’s awesome. Genuine life change.

Just a little counterpoint basically - I don’t think you need Vim’s entire editor model to get a lot of value out of it!

I'm sure it is! But I got used to everything following vim logic, so when I use an IDE that doesn't, I miss it/get annoyed.

My comment wasn't meant to dissuade anyone from trying the vim plugins. I was just trying to explain why someone would consider the vim emulation plugins not as good as the real thing.

I also seem to run into performance problems using IDEs (even on recent, high end hardware) while vim remains fast.

If nothing else, the performance characteristics of vim are predictable (to me, after all these years) and there are various ways to work around any problems that occur (disabling plug-ins, etc).

I'm not sure that's the problem. I think it's more likely one of several, but I'm not sure tabs are all that useful a feature in vim — vim is all about buffers.

Not once in the past eight years have I had to use tabs for something. The buffer list, yes. The argument list, yes. Tabs, no.

This guy here [0] articulates my thoughts about tabs perfectly.

If all you care about is buffers, what do you miss about them in vscode or IntelliJ? Their idea of buffers is the same as vim, as far as I can tell.

Or is the problem that the IDE functionality is not implemented as buffers? So you can't use your normal keys in non-text places? That was what I was referring in the second part of the comment.

[0] https://github.com/helix-editor/helix/issues/2295#issuecomme...

If that guy articulates your thoughts perfectly, then I think neither he nor you know how to use the argument list (or, buffers for that matter) in vim.

The workflow he is describing works with :bufdo, :argdo, :bn, :n, etc.

He is also not describing what is special about tabs. Tabs in vim are groups of windows.

I’m not sure if you were asking me, but no, buffers are not the reason why I exclusively use vim.

> If that guy articulates your thoughts perfectly, then I think neither he nor you know how to use the argument list (or, buffers for that matter) in vim.

> The workflow he is describing works with :bufdo, :argdo, :bn, :n, etc.

It's different because you are losing context. It's not about finding the right buffer, I understand buffers, I have no problem switching between them and finding them. It's about organizing windows in a way that makes sense and then quickly switching between them.

> He is also not describing what is special about tabs. Tabs in vim are groups of windows.

Exactly! And no other editor implements it that way. It's about context switching quickly. I setup my tabs per context and then I can quickly switch back and forth between them, and have all my windows like I left them.

No other editor does it like that (maybe emacs?), because it does not have the concept of vim tabs. Other editors use "tab" to mean "vim window". I'm constantly wasting time recreating window layouts in other editors depending on what I'm working on.

> I’m not sure if you were asking me, but no, buffers are not the reason why I exclusively use vim.

I'm asking what is missing from the IntelliJ vim plugin when it comes to buffers. The concept of buffers is not unique, most modern IDEs implement them the same way. It's why I'm surprised that you mention that buffers are the killer feature of vim, since I don't see anything unique about them compared to other editors.

why swap out of vim mode, add the key bindings to everything
No vim emulator is "good enough" if you actually know vim, although jetbrains is probably the closest due to the configurability of it's plugin.

there are almost always quirks, but the biggest issue tends to be when bridging the gap between vim and the GUI itself, particularly around the modality of vim vs graphical autocomplete.

If you're less experienced as a vim user these emulators are probably perfectly fine, but as someone who has been using vim for something like 20+ years, they _always_ feel just off enough that I either just go back to vim or edit the way the editor originally intended.

this.