TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Is switching from VSCode to Vim worth it?

19 pointsby LecroJSabout 3 years ago
I used the vim extension for about a month and am now making what is a very jarring/uncomfortable switch to exclusively using vim (neovim technically). I thought I had comfortably got the movements inside a file down, but now that I’m trying to navigate medium/large projects, I see how much more I need to learn before I can “break even” and get back to my speed/comfort in vscode. I’m finding myself doubting the amount of time I’m dedicating to configuring/practicing vim and am seeking insights as to whether or not this is a worthwhile way to spend my time as I don’t really know what the vim endgame looks like, while vscode was definitely good enough.

23 comments

frau_wacholderabout 3 years ago
what are your goals?<p>&#x27;if it ain&#x27;t broke, don&#x27;t fix it&#x27; - if you find that you are able to work comfortably with vscode with the vim extension, and it is meeting all your needs, then honestly that might be what works best for you. However, if you find that you are hitting walls with extensibility or flexibility, _then_ it&#x27;s time to maybe consider a switch. in my experience of using vim for like a decade now, a successful vim user is often someone who is _obsessed_ with squeezing usability and optimization out of their tools&#x2F;toolchain. I have seen many an engineer try and force Vim on themselves because of the perception they think others will have of them as a somehow more skilled or &#x27;in the know&#x27; engineer. And while i&#x27;m not suggesting thats what you are doing, it&#x27;s definitely a pattern i&#x27;ve seen more and more.<p>Moral of the story, figure out what you need out of your tools and adapt your toolchain to those needs. and if navigation is your main issue, you should look into easy-motion and Tags, those will help a lot.<p>And for what it&#x27;s worth. After a lot of tinkering and thinking about my own goals, i ultimately settled on Doom Emacs, and that&#x27;s been my preferred editor for a few years now. Many vimmers have found that to be the ideal &#x27;endgame&#x27;, anecdotally, at least.
评论 #30842640 未加载
layer8about 3 years ago
I’d encourage you to apply the three-step process presented in [0] (there’s also a video [1]), which is actually not specific to Vim:<p>1. While you are working with software tools, keep an eye out for actions you repeat and&#x2F;or spend quite a bit of time on.<p>2. Find out if there is a command (or macro facility etc.) that will do this action quicker. Read the documentation, ask a friend, or look at how others do this.<p>3. Train using the command. Do this until your fingers type it without thinking.<p>This means that you can learn new commands only as the need comes up by observing what you do. Which commands you will want to learn thus depend on the operations you are frequently doing and&#x2F;or that cost you a lot of time.<p>As I said, that strategy is applicable in general. Tools however differ in how well they support it, e.g. in terms of available commands and facilities.<p>You could start applying that strategy in VSCode (which I’m not familiar with, by the way). If it works well enough, great. If you find it limiting, switch to Vim, Emacs, or some other IDE that serves your needs better.<p>[0] <a href="https:&#x2F;&#x2F;moolenaar.net&#x2F;habits.html" rel="nofollow">https:&#x2F;&#x2F;moolenaar.net&#x2F;habits.html</a><p>[1] <a href="https:&#x2F;&#x2F;youtu.be&#x2F;eX9m3g5J-XA" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;eX9m3g5J-XA</a>
eatonphilabout 3 years ago
The biggest reason I have to use vi(m) is for messing with servers in production and opening large files.<p>Otherwise I use non-GUI Emacs. Before that I used vim. My biggest motivation for using terminal-based text editors is that they&#x27;re faster than GUI editors and easier to switch between CLI tools and the editor. Also, I prefer to do my development within remote servers (that are much beefier than my laptops&#x2F;desktops). So I just SSH in and do the work.<p>I&#x27;m ok with giving up the builtin niceties like jump-to-definition and syntax-aware find-replace. (I could get this working in emacs but it never works in every language or I forget how to set it up when switching environments or something so I end up not using this kind of feature).<p>If you have a motivation then you&#x27;ll figure out how to make it work eventually. If you don&#x27;t have these kinds of motivations then I&#x27;m not sure why you&#x27;d pick terminal editor.
faisalhackshahabout 3 years ago
If you&#x27;re already comfortable with an editor (such as VSCode), don&#x27;t worry about learning another one unless you inherently enjoy the journey (which it seems that you don&#x27;t). Instead, invest some time learning features, keyboard shortcuts, and configurations of your current editor.<p>Also, if you use languages for which an IDE provides significant value - continue using whatever IDE you are using (... if you don&#x27;t enjoy the vim&#x2F;shell lifestyle). Vim is <i>not</i> an IDE, though it can eventually be configured to act like one. If you mainly program in C for example, an IDE provides minimal value beyond what a lightly configured Vim would provide.<p>Source: Near-full time vimmer and terminal tools user. I found joy in the journey as an end in and of itself.
mooredsabout 3 years ago
You don&#x27;t mention anything about your needs.<p>Vim shines when you need the same editing interface <i>anywhere</i>, on any VM, any server, any machine.<p>If that&#x27;s not you and VSCode suits your needs, especially around navigating large projects, then I&#x27;d say stick with that.
评论 #30841546 未加载
aprdmabout 3 years ago
I did the other way around! I have ~10 years of experience in VIM and for the last 3y or so have been only in vscode. I use vim for the occasional config file but vscode is great and I don&#x27;t miss using vim on my day to day at all.
adingusabout 3 years ago
Its definitely worth learning vim, which you can do plenty well with the VScode vim plugin. Its probably not worth moving unless you have some real issues with your workflow or you&#x27;re bored and want to learn something new.<p>Im trying to move completely to Lunarvim, a vim config with a lot of neat tools built in, but only because I fell in love with the keybinds and I don&#x27;t want to spend the time configuring vscode or pycharm to do the same. That said, I still swap to pycharm or vscode for the debugger.
camgunzabout 3 years ago
Re: configuring, I&#x27;ve used (Neo)Vim for +15 years, and I configure very rarely. I started out with a 5 line .vimrc which is now a 150 line init.vim, about half of which is plugin installation and a few options for ALE.<p>That said when I do configure, I&#x27;m dedicated to it. The goal is to set it and forget it for literally years in order to build up muscle memory. So it&#x27;s worth playing around and finding what works.<p>It did take me a few months of consistent use to get better in Vim than other editors. I think that&#x27;s faster than most people? I&#x27;m a pretty good typist so I think that probably makes a big difference. All of which is to say:<p>- Definitely stick with it (maybe try to think of it as &quot;cool&quot; rather than a slog, maybe investigate cool plugins or color schemes to help reinforce that)<p>- Invest in your config<p>- Work on your typing (and address any discomfort that arises--super important)
Olognabout 3 years ago
I probably started using vi in 1989. What I learned then I still use all the time.<p>On the other hand, I primarily program Android at work, and in 2009 Android recommended I use the Eclipse IDE, so I learned how to use that. Then starting around 2013, Android said they were shifting from Eclipse to Android Studio, so then I learned that. Android Studio has odd keyboard shortcuts - on a Linux (or Windows) box you jump to a line by hitting Control-G - on a Mac you hit Command-L.<p>The vi on my Mac and Linux seem fairly similar in terms of keyboard shortcuts and what I use now on both of them is what I used in 2013 and what I used in 1989 as well, and I have used it for a host of things. Whereas even in the specialty of Android programming, the recommended IDE switched some years back, and it has differences on different platforms.
评论 #30864297 未加载
andrewdubinskyabout 3 years ago
I used the vim extension to learn the basics. From my perspective vscode is an ide and it does some cool things. However, vim&#x2F;neovim is more of a worldview. I&#x27;m much faster when I don&#x27;t touch the mouse. I don&#x27;t have to slow down how I think. It&#x27;s upsetting to have to stop typing, moving, etc..and click a button or tab. So I&#x27;m more inclined to go faster.<p>However, it&#x27;s not a skill developed overnight. It takes time to invest in the tool, but for me the payoff has been significantly increased productivity. I won&#x27;t ever stop learning new vim skills though. It&#x27;s both wide and deep. Vim just makes sense to me now, but it took a while to really get it.
tomeknabout 3 years ago
I know the feeling. I flirted with vim and later neovim for a few years on-off, but kept going back to vscode because i wasn&#x27;t as fast in vim. I did stick with the vim keybinds in VSC though and, over time, each foray into vim lasted longer until the time came where I finally stuck with it.<p>I&#x27;d recommend using one of the pre-baked configs (LunarVim, Astro, NvChad) to get a taste for what a batteries included vim build feels like. If you&#x27;re like me you&#x27;ll use it for a while, tinker with the configs etc. until you reach a point where something annoys you and you&#x27;ll build a config from scratch. Seeing a fully completed config and playing with it has been really useful!<p>Was it worth it? Hard to say, but I&#x27;m now at the point where all the vim stuff is muscle memory, and I&#x27;m now getting comfortable with macros etc. You reach a point where rather than thinking of editing code as an interaction with an interface you start to think of it as just editing code. It&#x27;s a difficult concept to get across but the fact i rarely interact with a mouse has definitely led me to become less easily distracted while coding.<p>My custom config feels like what I imagine having a model railway would feel like. It takes a bit of maintenance and tinkering, but it does exactly what i want it to and I get a sense of satisfaction from keeping it up to date.
评论 #30849130 未加载
fiveaabout 3 years ago
&gt; I used the vim extension for about a month (..) I thought I had comfortably got the movements inside a file down, but now that I’m trying to navigate medium&#x2F;large projects, I see how much more I need to learn before I can “break even” and get back to my speed&#x2F;comfort in vscode.<p>Keep in mind that even though vscode&#x27;s vim extension is not bad, it has significant differences to the point it degrades the user experience and gets in the way.
Stoidsabout 3 years ago
I use coc-nvim [0] for my development environment and love it. The VS Code plugin is a great start to get used to vim movement, but eventually you&#x27;ll run into some limitations that end up being slightly annoying (albeit this was a few years back and those might not exist anymore!).<p>Most of my development is in TypeScript, which has a pretty good language server, so I don&#x27;t feel like I&#x27;m really missing out on any of the &quot;IDE&quot; features that I get in VSCode. I am not a &quot;pure vim&quot; zealot, so I have a decent amount of plugins to bring my environment closer to an &quot;IDE&quot; than &quot;just vim&quot; (eg. NerdTree, fugitive, surround, sneak).<p>I haven&#x27;t really touched my dotfiles in a year or two outside a few custom keybinds for new workflows I find myself repeating.<p>Getting good at whatever editor you choose to use for your daily development is a good investment. If you&#x27;re going to choose one, vim is probably a decent choice for how long it&#x27;s stayed around.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;neoclide&#x2F;coc.nvim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;neoclide&#x2F;coc.nvim</a>
seanw444about 3 years ago
4-5 years ago I was all about the editors with pretty UIs (VS Code, Brackets, Atom, JetBrains IDEs, etc). I thought Vim was dumb and outdated. Boy was I wrong.<p>I eventually decided to try out Emacs, and settled on Spacemacs, which comes with Evil mode pre-installed (a Vim emulation layer on top of Emacs), so I basically <i>had</i> to learn some Vim bindings. Now I&#x27;m on Doom, which uses them even more heavily. And boy do I regret not having learned this stuff sooner. So much faster and simpler than jumping through UIs and pointing and clicking.<p>If you haven&#x27;t heard of it already, Vim&#x2F;NeoVim come with a tutorial built-in, called Vimtutor. Definitely run through that for a quick interactive primer on how to effectively use the basics.<p>Also, the bonus is that Vim is <i>much</i> more lightweight and snappy than VS Code, even on much older and cheaper machines. So you&#x27;ll feel at home anywhere you run it. The same cannot be said for VS Code.
评论 #30843739 未加载
aoiwelleabout 3 years ago
I personally much prefer vim due to its infinite portability (I can use the same editor pretty much anywhere), but it came with a big up-front learning curve that I used when I was ramping up on a new codebase anyways.<p>If you like VSCode and feel productive in it, you should stick with it. If you&#x27;re in a situation where you&#x27;re able to go slower and ramp up with vim, I think that would be a good time to try it out. The end-game is that your vim-config is truly portable, and no matter where you go, you&#x27;ll be able to easily duplicate your work environment. Also, once you master the motions, you&#x27;ll be much faster navigating bigger code-bases and can easily work on a server if need be.
martindbpabout 3 years ago
I don&#x27;t know. My take is, I learned Vim once, and I&#x27;ll stick to it no matter what kind of text editing I do. Learning Vim is like learning to ride a bicycle. Once I&#x27;ve learned it I can ride a normal bicycle, a modified bicycle, a sports bike, one with a child seat in the back, doesn&#x27;t matter. I can ride it in the US, in Europe or in China, it&#x27;s portable and I only have to learn it once. I don&#x27;t want to learn a mode of transportation that only works in France. I don&#x27;t want my way of getting around to depend on a cloud service which may disappear, or a company which may stop supporting at some point in the future.
epirogovabout 3 years ago
Yes vim will help with small tasks even for beginner, still require advanced study how to use to get vim power. After hype impression of vs code I have found it only extend my workspace ability on the half. Usually I need code something from thin pc where vs code works slow or even I need to connect to cloud terminal instance to programming here on the place.<p>Form thin pc I preffer to use Zed code editor from google apps, this small js program works offline and do not freeze for large code base.<p>For terminals i prefer micro, it is golang written code editor.<p>Recently dev.github.com provides online code editor that works with ci&#x2F;cd piplines.
peakabooabout 3 years ago
The biggest advantage of vim, besides the language for editing text in normal mode, is that you are really fast and it just feels like you never have to wait for your computer anymore.
评论 #30843819 未加载
stonecharioteerabout 3 years ago
I did what you&#x27;re considering. I was tired of VSCode because of Electron and wanted something lightweight. Neovim suited me. But you should know that if you use the lsp, most of the language servers are written in Node. You should learn to configure them for performance, especially pyright, if you use Python. Look up Kickstart.nvim and try to follow that. And checkout telescope. It&#x27;s amazing.
JonChesterfieldabout 3 years ago
emacs and vim are competitive advantages over those who don&#x27;t use them, once one is over the learning curve. The break even point is sooner if you spend less time changing the configuration.
cellisabout 3 years ago
Stick with VSCode. “Editing code on the server”? This isn’t 2010. We use docker and continuous deployment, and if someone is trying to edit production code in the server something is deeply wrong.
评论 #30844750 未加载
评论 #30869614 未加载
bobafetabout 3 years ago
Why not use the VSCode vim extension best of both worlds :)
评论 #30842679 未加载
pcvonzabout 3 years ago
&gt; I’m finding myself doubting the amount of time I’m dedicating to configuring&#x2F;practicing vim<p>If it&#x27;s not fun, then it&#x27;s probably not worth it. It really depends on what VIM can do to improve your current workflow. So, you may need to drop the VSCode mindset while you start using VIM.<p>&gt; but now that I’m trying to navigate medium&#x2F;large projects,<p>I actually have trouble navigating large projects in VSCode. The buffer, tab, window model that Vim uses makes more sense to me (but it&#x27;s unique to VIM afaik, so it may be jarring at first). Combine that with a fuzzy finder[1] and it allows:<p>- rip-grep to search for files with text &#x2F; file names<p>- Searching through currently currently opened buffers<p>Whenever I have to use VSCode (mainly for the live share feature, I find myself pretty lost with VSCode&#x27;s tab based interface (I usually end up with like 20 tabs cluttering my workspace, and tabs are local to a split, which is jarring for me).<p>&gt; the vim endgame looks like<p>It never _really_ ends. Some VIM features that I miss when I use another editor are:<p>- Really nice integration with terminal commands. One thing that I do very often is copy the name of the current file: `!echo % | xclip -sel clip` so I can use the filename as an argument in a terminal split (running tests for example)<p>- Filters (`:help !`) so I can pass parts of a file in to a program that accepts standard input. Example: `&#x27;&lt;,&#x27;&gt;!jq` to prettify bits of JSON.<p>- Global commands and macros. VSCode vim supports them, but I&#x27;ve noticed that they can run pretty slowly.<p>- The buffer, tab, window, model (probably the biggest one I miss when I start using VSCode)<p>For LSP support, I&#x27;ve tried to migrate to neovim&#x27;s native LSP tools, but I still find COC to be a lot more intuitive. You should feel right at home with it since a lot of the plugins are similar to their VSCode counterpart.<p>If you&#x27;d like a really general and guided tour of VIM, I&#x27;d recommend picking up Practial Vim[2] It really helped me understand the workflow a bit more. Approaching VIM with the mindset of another editor wont give you all the benefits of using VIM. Though, if the workflow doesn&#x27;t click, then that&#x27;s not a big deal. You can always go back to VSCode.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;Shougo&#x2F;denite.nvim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Shougo&#x2F;denite.nvim</a> (many people use Telescope: <a href="https:&#x2F;&#x2F;github.com&#x2F;nvim-telescope&#x2F;telescope.nvim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nvim-telescope&#x2F;telescope.nvim</a>) [2] <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Practical-Vim-Thought-Pragmatic-Programmers&#x2F;dp&#x2F;1934356980" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Practical-Vim-Thought-Pragmatic-Progr...</a>
评论 #30846748 未加载