Live data from Hacker News

How Did Vim Become So Popular?

pragmaticpineapple.com

311–320 of 507 posts

Re: How Did Vim Become So Popular?

#311
post #239

Earlier quoted context omitted.

Vim can jump to definitions and stuff too. It integrates with ctags. It can also do code completion and everything else. I have it bound to clang-format with ctrl-k.

Just feel the urge to mention cscope which is ctags on steroids

And LSP is yet SO MUCH better

Re: How Did Vim Become So Popular?

#312

For me it is being able to efficiently navigate a file without leaving the home row (Gotta learn touch typing first). Once you understand the commands follow a composable grammar it is really like a superpower for dancing around text. „Go down 5 lines, move right two word, replace the contents of the brackets“. I don‘t use the actual editor all that often but have vim mode enabled in all my „real“ editors like VSCode…

I have been using VI(M) since the 80's and it's amazing how fast you can navigate in it when it's just deep muscle/neural memory. In fact if you asked me how to do some navigation in there, I actually could not tell you - but I could just do it. I'm also someone who immediately installs a VI plugin into any IDE I use, as otherwise I'm lost. IDEs and their editor key/control systems come and go, but VI(M) remains cons…

I simply won't use an IDE if it doesn't have a decent Vim plugin.

Re: How Did Vim Become So Popular?

#314
post #209

Earlier quoted context omitted.

I use both QuteBrowser and Firefox with Vim Vixen, one of the thing that make me reluctant to switch completely are mostly addons, Multi-Container, cookies auto delete, ublock origin, Privacy Badger, ... I can't browse the Internet without those, and the built-in adblocker of QB is unfortunately not that performant. Also, you can't use the keyboard everywhere (thanks to the modern web) Random example off the top of m…

> and the built-in adblocker of QB is unfortunately not that performant With "performant", I assume you mean "how well it works", not "how fast it works"? FWIW a better adblocker is in progress: https://github.com/qutebrowser/qutebrowser/pull/5317 > Also, you can't use the keyboard everywhere (thanks to the modern web) Random example off the top of my head: https://questions.wizardzines.com/event-loops.html Yay... Yo…

> With "performant", I assume you mean "how well it works", not "how fast it works"?

Exactly, sorry, not a native speaker.

> Yay... You can always customize the hints.selectors setting to add selectors for those

Didn't know about that, thanks

Re: How Did Vim Become So Popular?

#315
post #284

Earlier quoted context omitted.

IDE has syntactic understanding of your code, which allows you to navigate your whole codebase as if it's one big hypertext document (invalueable especially when learning new code). Also, the syntactic understanding allows you to do one-click fairly complex refactorings with guarantees that nothing will get broken (at least it works for sane languages, like Java. I don't know how well it works for C/C++, where prepro…

I have mainly used vim for development and I can navigate my codebase just as seamlessly with ctags-generated indexes. I'd agree on vim being of limited utility when it comes to automated refactoring (it's a text editor after all), but beyond changing the names or extracting functions what can an IDE do for you in this respect?

Refactoring in IDEA also allow you to for example also change function signature, safely delete an element (class, function etc.) - i.e. with full impact analysis, move code, extract interface/trait out of a class.

I've tried the ctags-indexes with Sublime and afair the basic navigation was not bad (I think I remember there being an issue with some delay though? It was a while ago). I'm not sure if things like "show code which access this variable" or "show all children of this class" are supported though?

Apart from those advantanges, I can think of two more:

1. IDE can import your build file (maven, sbt or bazel project for example), parse out the project structure from it and download the necessary dependencies. I don't think that ctags-like powered solution is as robust, which means you'd have to fiddle with it until it can understand the structure a complex repo.

2. IDE can run and show the results of unit tests. (just right-click on test you want and select "Run" from context menu).

Re: How Did Vim Become So Popular?

#316
post #298

Earlier quoted context omitted.

Where I work we use a lot of jetbrains IDE's and I've been a massive fan of Intellij, I absolutely love it when I can show someone something that makes their life easier. Whether it's how to implement an external program properly using all the expansions or how to use bookmarks (how people can use an IDE for years and not find that is a good question). I've always RTFM of whatever tool I'm using as the first step the…

... and Jetbrains IDEs support a plugin called IdeaVIM that provides pretty solid vi/vim emulation.

(intellij sometimes has recurring problems with lost keyboard input under linux+gnome. IdeaVIM is one of the first plugins i disable, when that happens. and it often helps.)

Re: How Did Vim Become So Popular?

#317
post #198

Earlier quoted context omitted.

I love emacs, but I taught myself to use vi because I know when I ssh into a remote server there will have a vi.

Emacs has an edit-over-ssh mode that's pretty useful.

You can do that in vim via scp like this:

vim scp://user@myserver[:port]//path/to/file.txt

Re: How Did Vim Become So Popular?

#318

Earlier quoted context omitted.

I've used Emacs for many years, and recently switched to Spacemacs, a set of configs that kind of takes over Emacs and puts a great platform on top of it. I frequently describe Spacemacs as a better vim than vim. Don't get me wrong, I've used vim for ages; I'll never stop editing server config with vi, nor will I stop getting mad when vi is actually vi and not vim. But for a day to day code editor? Spacemacs is aston…

The problem with Emacs and all its modifications is that it cannot match Vim's flexible system for custom keybindings. And because of that Evil mode has the same limitation, beside its insistence to prefer using builtin Emacs functionality over emulating Vim behaviour correctly. And the other thing that I could never get used to is that Emacs' terminals can't handle ncurses applications. I usually like to run Vim in…

I have to agree. Emacs w/ Evil is a nice solution and gets almost there, but there are enough edge cases that interfere with the elegance of pure Vim. Everytime you install a new emacs plugin, you have to consider that it will use Emacs keybindings, not Vim, and you jump through hoops to remedy that, or, more often, you find yourself having to mix the emacs ways and the Vim way, which I personally found annoying after awhile.

Emacs is awesome and more powerful overall, but actually using Vim is easier -- from setting up keybindings, configuring your vimrc file, it's all quite simple compared to what you can do, and often do, in setting up Emacs.

But to be honest they are much closer to each other than either is to a more conventional/modern IDE. They are spiritual siblings for sure.

Re: How Did Vim Become So Popular?

#319

Earlier quoted context omitted.

Alas, the emacs install base is fraction of vi/vim.

I am also surprised by this. What are you basing it on? For arbitrarily comparable online communities, it looks like emacs.stackexchange.com is twice as active as vi.stackexchange.com

Well vi or vim is nearly always installed by default everywhere, but emacs rare is so.

Re: How Did Vim Become So Popular?

#320
I know I'm going against the popular opinion here, but I have never observed anyone using either Vim or Emacs to outperform a competent IDE user, especially Visual Studio or IntelliJ.

I mean sure, if you think IDEs are just slow, expensive text editors with fewer keyboard shortcuts, then you'll be disappointed, but features like "navigate to any symbol by prefix", "find all usages", and "Ctrl-click to navigate to definition" have no comparable analogue in traditional text-focused, non-IDE editors.

Not to mention visual debuggers, not to mention remote debugging! The VS IntelliTrace feature alone is worth the cost of the entire IDE.

Visual Studio Live Share lets two people concurrently use the entire IDE at the same time, remotely: https://visualstudio.microsoft.com/services/live-share/

There's just nothing like any of this in Vim or Emacs.

I mean sure, if you futz around with plugins, you might be able to reproduce some small subset of these features, but then you'd have wasted more of your time tinkering with the editor than actually getting work done.

What I've noticed with a lot of tools that trace their origins to the UNIX world is the perception of speed. Typing many keys rapidly to trigger shortcuts feels like you're doing things faster than moving a mouse cursor and then clicking something, because there are more actions per second. However, objective tests show that even highly skilled users aren't as fast at completing high-level tasks as mouse-users.

One study that shocked me compared wall-clock development times for a moderately complex puzzle problem. It was designed so that most people would have to debug the program at least once or twice. Participants could use any development environment and language. Among the fastest solutions were users programming in F# and C# using Visual Studio, at roughly 30 minutes for F# and 60 minutes for C#. People programming in languages like C, C++, and Java in typical Vim/Emacs environments took days or weeks to solve the same problem! Days!

I've observed this effect with "command line jockeys" too, where they're absolutely convinced that bash is some power tool that nothing can hold a candle to, and then they take hours to solve some problem that's three clicks away in the GUI.

Post reply on HN