Live data from Hacker News

Vim After 15 Years (2017)

blog.langworth.com

11–20 of 116 posts

Re: Vim After 15 Years (2017)

#12
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

Just my 2 cents on this

> I don't quite remember something and having the internal file history with a diff readily available.

You're already in a terminal, git is just one command away

> Some of the click and find implementation/usages never seems to quite there to me.

This really depends on the language you are working in, but generally vim's gd (and plugins that augment it) enough most of the time, otherwise grep/rg if you know what you are looking for. If you are using something really dynamic, e.g. ruby, then you're pretty much shit out of luck.

> I could go on, if you're truly being productive and not missing out on feature, more power to you.

Here's the thing, the best part about it vim is that it is not slow (plus paired with a terminal emulator like kitty/wez/alacritty). When I type the characters actually appear on the screen as I type them. With most IDE's (at least the ones I have used) there is a noticeable delay from when I have stopped typing and characters appearing on screen.

Another thing to add is that vim is very fast to start up and shut down, I open and close vim multiple times as I am working. With an IDE, startup times are atrocious and dont really fit my work style of cd'ing somewhere quickly editing something, cd'ing somewhere else and rinse and repeat.

In general I find the original command line tools to be much better than IDE provided equivalents or integrations, there's no unnecessary animations and much less cpu/ram usage. Though one exception for me is the database clients, where I much rather prefer a GUI than using the CLI client.

Your tests are already runnable from command line (assuming CI is setup).

Basically, Unix becomes your IDE

Re: Vim After 15 Years (2017)

#13
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

You have to invest time in your vim setup. There’s a whole lot built in that you need to learn, but you also need to customise it to your workflow.

In terms of searching through multiple files, I use Telescope with ripgrep and fzf. It’s an insanely slick workflow that allows me to jump around code faster than anything else I’ve used in my last 25 years of coding.

Re: Vim After 15 Years (2017)

#14
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

IMO it’s because you’re conflating vim with an IDE. But really it’s unix that’s the IDE. I’ll use vim to literally edit files, and then in an alternative tmux pane either run my tests or ‘entr’ my source or ‘rg’ to search or git —-bless or whatever…

Editor + shell + tools is the IDE. And I like that I can swap out tools as necessary.

Re: Vim After 15 Years (2017)

#15
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

Neovim user, so a little different. I used to regularly use GoLand for ~3 years before I made the full switch over, and am a bit of an evangelist of it.

I'm simply faster in it. I'd probably say the initial main attractor was modal editing (vim-mode plugins in Jetbrains are not my favorite - usually not a full implementation of the real features vim offers).

* For syntax highlighting: tree-sitter is as good, if not better in my experience.

* For auto-complete/navigation/etc: LSP support + a small few plugins solve this, running on par with what GoLand offers.

* Search support, like the case you mentioned - I use Telescope + Ripgrep and usually my searches are roughly the same time to process as GoLand did.

Are there other features that are drastically important? Because the other features Neovim offers over GoLand are:

* It's way faster to load. Indexing in GoLand takes so long. LSP servers do usually take a bit of time to index but this is on the order of minutes faster than GoLand takes for the projects I have to use at work.

* Significantly less memory consumption.

* I can be purely keyboard driven.

* Modal editing and all the niceties that come with that (note: emulators are always subpar in my experience).

* Being already in the terminal is a significant advantage, especially on my laptop screen (less-so on my ultrawide).

* Customizability is a lower priority, but it is still worth mentioning - there's only so much you can do to customize a Jetbrains editor.

I am far more productive using it than I ever was with GoLand. I might make the exception for IntelliJ when I used to do Kotlin work - but that's the exception, not the rule. For every other language I definitely prefer Neovim.

I think, like all tools, it's important to spend the time to learn it (if you desire to actually use it). Otherwise, of course vim will just look like some archaic tool that seems like it lacks all modern support.

Re: Vim After 15 Years (2017)

#16
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

This is something I've been thinking about a lot recently, especially since listening to John Carmack interview (https://www.youtube.com/watch?v=I845O57ZSy4) and him saying that almost nobody uses IDEs at Meta.

I think it is totally possible to be (even very) productive in VIM. I do think, though, that a person who is productive in VIM would be more productive if he used a proper IDE.

This is my experience after I had been using VIM for about 10 years and switched to an IntelliJ IDE (and actually learned it)

(This, of course, assumes that there is a proper IDE for your language)

Re: Vim After 15 Years (2017)

#17
post #16
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

This is something I've been thinking about a lot recently, especially since listening to John Carmack interview ( https://www.youtube.com/watch?v=I845O57ZSy4 ) and him saying that almost nobody uses IDEs at Meta. I think it is totally possible to be (even very) productive in VIM. I do think, though, that a person who is productive in VIM would be more productive if he used a proper IDE. This is my experience after I…

> that a person who is productive in VIM would be more productive if he used a proper IDE.

What features does a "proper IDE" offer that, at least Neovim, does not or cannot provide?

Re: Vim After 15 Years (2017)

#18

This seems to hold pretty well. I've been using vim for approximately 15 years now too and my current setup and preferences are surprisingly similar to those in this post. There is a certain organizational aspect here that I think is important to emphasize: the given paradigm is that vim is a text editor forming one part of the design environment. Assembling this environment inside a tmux session is particularly easy…

I’d say that vim will never be an IDE as such, because the focus is on personal configuration. Personal Development Environment is how one of the neovim contributors is half rebranding it. The things that make modern IDEs good (like LSP) at all available but you get to shape them how you want, rather than being forced into your IDE of choices way of doing things.

(I imagine from your comment that you are probably aware of all this already)

Re: Vim After 15 Years (2017)

#19
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

I've used vim for a while now and using it isn't a point of pride, it's more that whenever I try an IDE I wonder how anybody could be productive using it.

I've rarely had a problem with search, I can type `:grep [some regex]` and I'm quickly shown all matches for that regex in the entire project. I admit I'm not sure how I would do a more complicated query, but this is almost always enough, what kinds of queries do you do which this doesn't cover? There's just one exception, I'm currently working in a codebase where members have very generic names, `Nonce` is a valid field name for a number of different structs, which makes search results for `Nonce` tedious to work through. For this situation I've added a keybinding which calls semgrep and lets me view all references for a specific struct's `Nonce` field.

Calling out to semgrep is an instance of a more general pattern: Because vim is not integrated I lean on tools outside of vim when necessary. The `git` cli, especially once you add some aliases, gives fine access to file history and diffs.

The feature I'm most jealous of is debugger integration. `gdb` and `dlv` get the job done but it's really convenient to be able step through your code with the same interface you use to write it.

> There is also the point of being able to use vim bindings inside of the IDE

Every vim keybinding re implementation I've tried has been missing essential features. When I'm inside an IDE I spend much of my time typing and navigating. When I'm inside vim I'm _thinking_, and the necessary changes occur about as quickly as I decide upon them.

Re: Vim After 15 Years (2017)

#20
post #9

It's alway pretty fascinating to me that people can actually be productive without an IDE. I've tried several times Vim and I just don't get it how you can live without certain functionalities, I'm sure that with enough tinkering you can get pretty close but, for example, search seems to always be kind of a pain in the ass for the complex queries with regex through many files and stuff like that, specially the presen…

When I need an interactive debugger, I alt-tab into a JetBrains product or VS/VSCode. The only time in my career that I wasn't primarily developing inside of vim/neovim and now Emacs was when I was working on a .NET team.
Post reply on HN