Hacker News new | ask | show | jobs
by INTPenis 785 days ago
Makes me glad I stuck with vim.

I do pretty much the same thing as you, what made you use vscode in the first place? What are the coolest features in your context?

2 comments

VS Code has a strong plugin ecosystem, and is built around plugins. You can find plugins for everything, so whatever linting, code formatting, back end integration, custom renderers, menus, etc you want you can build and plug in if they aren't available already. Beyond that access to a project tree view / definition list toggle on the side, debug code at cursor, context menu options to refactor/find usage/etc, and easy pixel perfect control of pane layout when working with multiple documents simultaneously.

I never got that deep into vim/emacs but I wasn't impressed with their versions of the features I listed compared to what is available in a good IDE like intellij/vscode. I do wish the performance was a bit better but I have a beastly workstation so it's not a big deal.

I'd say everything you described is true of vim as well, especially nowadays with LSP and tree-sitter and async capabilities in plugins. The plugin ecosystem is thriving. Neovim's lua api makes it even easier to develop plugins.

It does take a fair bit of configuration if you want to start from scratch, but there's also distributions (such as LazyVim [1]) which make it trivial to start from an editor basically as fully featured as VScode.

Of course, there's still the learning curve for a modal editor, but that's the whole point of using vim. I assume there are vi-style plugins for VScode, but then you're missing out on performance.

1: https://www.lazyvim.org/

As well as its own plugins Vim/NeoVim can use VSCode's LSPs, DAPs and extensions either directly or via plugins like CoC[1] and Mason[2].

I would be surprised if emacs couldn't do the same.

1. https://github.com/neoclide/coc.nvim

2. https://github.com/williamboman/mason.nvim

VimL can be cumbersome, but I believe Lua in Neovim can be nicer to work with. But if you’re pressed by time or the task is not that important, I’d say VSCode is good enough. But everything is mostly a CLI away and VIM is especially good interacting with CLI tools. And Emacs is an operating system for texts.

I’d go with Jetbrains IDEs for their language stacks though, because they’re really good at what they do.

Seems like a lot of training wheels to me. I mean linting, formatting can be done by piping buffer into external programs. Not sure what back end integration means but you can accomplish a lot with just bash+vim+tmux (or zellij which I recently switched to).

The disadvantage is of course that it's not integrated, but the advantage is that my editor never crawls to a halt.

Training wheels isn't a fair characterization, the IDE tools are just better for a lot of use cases. I haven't had an IDE grind to a halt since earlier versions of IntelliJ on some large codebases back in ~2016 where the internal linting process lost the plot. Mostly they're just memory hungry and they start up slower.
IMO, the big is one good/smart programming language support, either out of the box or with a few clicks. If you know vim well, the vim plugin has serious limitations though. On windows/linux the reliance on home/end/pgup/pgdn/arrow-keys/del/mouse etc... is atrocious if you are used to vim so the vim plugin is still a life saver. The remote dev extensions also pretty good.