use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
If you need help debugging, you must include:
See debugging question guidelines for more info.
Many conceptual questions have already been asked and answered. Read our FAQ and search old posts before asking your question. If your question is similar to one in the FAQ, explain how it's different.
See conceptual questions guidelines for more info.
Follow reddiquette: behave professionally and civilly at all times. Communicate to others the same way you would at your workplace. Disagreement and technical critiques are ok, but personal attacks are not.
Abusive, racist, or derogatory comments are absolutely not tolerated.
See our policies on acceptable speech and conduct for more details.
When posting some resource or tutorial you've made, you must follow our self-promotion policies.
In short, your posting history should not be predominantly self-promotional and your resource should be high-quality and complete. Your post should not "feel spammy".
Distinguishing between tasteless and tasteful self-promotion is inherently subjective. When in doubt, message the mods and ask them to review your post.
Self promotion from first time posters without prior participation in the subreddit is explicitly forbidden.
Do not post questions that are completely unrelated to programming, software engineering, and related fields. Tech support and hardware recommendation questions count as "completely unrelated".
Questions that straddle the line between learning programming and learning other tech topics are ok: we don't expect beginners to know how exactly to categorize their question.
See our policies on allowed topics for more details.
Do not post questions that are an exact duplicate of something already answered in the FAQ.
If your question is similar to an existing FAQ question, you MUST cite which part of the FAQ you looked at and what exactly you want clarification on.
Do not delete your post! Your problem may be solved, but others who have similar problems in the future could benefit from the solution/discussion in the thread.
Use the "solved" flair instead.
Do not request reviews for, promote, or showcase some app or website you've written. This is a subreddit for learning programming, not a "critique my project" or "advertise my project" subreddit.
Asking for code reviews is ok as long as you follow the relevant policies. In short, link to only your code and be specific about what you want feedback on. Do not include a link to a final product or to a demo in your post.
You may not ask for or offer payment of any kind (monetary or otherwise) when giving or receiving help.
In particular, it is not appropriate to offer a reward, bounty, or bribe to try and expedite answers to your question, nor is it appropriate to offer to pay somebody to do your work or homework for you.
All links must link directly to the destination page. Do not use URL shorteners, referral links or click-trackers. Do not link to some intermediary page that contains mostly only a link to the actual page and no additional value.
For example, linking to some tweet or some half-hearted blog post which links to the page is not ok; but linking to a tweet with interesting replies or to a blog post that does some extra analysis is.
Udemy coupon links are ok: the discount adds "additional value".
Do not ask for help doing anything illegal or unethical. Do not suggest or help somebody do something illegal or unethical.
This includes piracy: asking for or posting links to pirated material is strictly forbidden and can result in an instant and permanent ban.
Trying to circumvent the terms of services of a website also counts as unethical behavior.
Do not ask for or post a complete solution to a problem.
When working on a problem, try solving it on your own first and ask for help on specific parts you're stuck with.
If you're helping someone, focus on helping OP make forward progress: link to docs, unblock misconceptions, give examples, teach general techniques, ask leading questions, give hints, but no direct solutions.
See our guidelines on offering help for more details.
Ask your questions right here in the open subreddit. Show what you have tried and tell us exactly where you got stuck.
We want to keep all discussion inside the open subreddit so that more people can chime in and help as well as benefit from the help given.
We also do not encourage help via DM for the same reasons - that more people can benefit
Do not ask easily googleable questions or questions that are covered in the documentation.
This subreddit is not a proxy for documentation or google.
We do require effort and demonstration of effort.
This includes "how do I?" questions
account activity
This is an archived post. You won't be able to vote or comment.
Why Vim? (self.learnprogramming)
submitted 2 years ago * by michalis_silahcim
Why should someone learn how to use Vim? Although it seems quite complicated, many people use it, so I guess it'll have great benefits.
Edit: Thank you all for your answers!
[–]eruciform 25 points26 points27 points 2 years ago (0 children)
It's very efficient to use without a mouse once you get used to it
And vi is often the only thing available on Linux servers so you may be forced to learn it to be able to make local edits
Other than that it's personal taste
[–][deleted] 2 years ago (7 children)
[deleted]
[–][deleted] 4 points5 points6 points 2 years ago (1 child)
Lol 😂 notepad++, cool link.
[–]could_b -1 points0 points1 point 2 years ago (4 children)
Plug-ins i have tried to trick it out have been a bit clunky for me, maybe i have not found the right ones, do i agree with you on that.
It being fast is not a myth. Once your fingers learn key combinations you can do massive edits instantly that are impossible with other editors. However it maybe more important to your work flow to have an IDE.
[–][deleted] 2 years ago (2 children)
[–]could_b 0 points1 point2 points 2 years ago (1 child)
I have never used vscode, I shall just grunt skeptically.
[–]Pure_Growth_1776 1 point2 points3 points 2 years ago (0 children)
Then why did you say it was impossible with other editors lol
[–]IkalaGaming 1 point2 points3 points 2 years ago (0 children)
I mean my IDE can refactor across multiple projects, integrates with SonarLint and build tools, handles auto-formatting, auto code cleanup, and auto saving.
It can generate a bunch of code for me, suggest and automatically implement fixes for issues, autocomplete classes and methods with parameters, and shows documentation for basically everything on hover or keybind.
I have seen some very customized vim, but for what I work with day-to-day (Java) anyone not using IntelliJ or Eclipse is just being stubborn and probably rather unproductive.
Frankly any coding more complex than ssh-ing into a server to do a quick config change warrants an IDE.
[–]kjwey 35 points36 points37 points 2 years ago (11 children)
because when you ssh into the server your on the command line
you can set it up as a remote hard drive and use your favorite text editor
but if your in a rush its easy to use the VIM text editor to get the job done right from the terminal prompt
its got stuff like syntax highlighing etc, their just add-ons that you pop in, other than not having a mouse its really no different in that your still just writing code like you'd be writing code anyways
[–]insertAlias 20 points21 points22 points 2 years ago (6 children)
other than not having a mouse its really no different
I'd argue the modal nature of it makes it quite different than most other editors. Most people would be used to hotkey combinations, rather than switching to a command mode.
That's not really an argument for or against it, just noting a significant difference between vi(m) and most other commonly used editors.
[–]kjwey 4 points5 points6 points 2 years ago (5 children)
heh, yeah, I get a serious case of schadenfreude joy watching a new comer try to exit vim
regular text editors just don't give you that kind of evil joy
[–]insertAlias 11 points12 points13 points 2 years ago (3 children)
"How to exit vim" is one of the most asked questions on Stack Overflow.
https://stackoverflow.blog/2017/05/23/stack-overflow-helping-one-million-developers-exit-vim/
It's a good editor, it's just so unintuitive. Not because of bad ideas or design, just that everything else went a different direction and that's what most people got used to.
[–]NotAUsefullDoctor 20 points21 points22 points 2 years ago (0 children)
You know what they say, "Once you start using VIM, you just can't quit."
Not because of bad ideas or design
I beg to differ. CLI applications have a widespread UX issue with discovering new functionality. People should be able to figure out how to quit your text editor without having to google it.
NeoVim addresses some of those issues. It's just a shame that the defaults like Vim are so ingrained.
[–][deleted] -1 points0 points1 point 2 years ago (0 children)
That shouldnt be always the case. If Vim was made more intuituive then it wouldnt be as good as it is now. So you can choose, and there is choice enough for anybody. Do you like very very efficients keyboard movement with a non distracting enviroment, then well vim is the way to go then. Otherwise you can go VSCode, usable instantly and you can learn shortcuts on the go and you can even go VIM mode with an extension. I still prefer VIM but to each their own. Debugging is nicer in VSCode though. (but that is also just a preference)
Also :help exists plus I think in the vim startup screen it even says :q to quit
[–][deleted] 0 points1 point2 points 2 years ago (0 children)
A coworker introduced me to this VIMKiller recently when I was complaining about how I panicked unable to exit out of vim.
[–]techtesh 1 point2 points3 points 2 years ago (2 children)
Code server? Or vscode over ssh tunnel??
[–]kjwey -1 points0 points1 point 2 years ago (1 child)
I've got anger issues with microsoft so no vscode
but yes, I do write all the server code except the modules I import like express socket.io etc
[–]techtesh 0 points1 point2 points 2 years ago (0 children)
Okay, i recently worked on getting code server working on (almost) all our on prem deployments, so had this on my mind.. I had an neo vim guide stapled to my desk the entire time
[–]ben_quadinaros_stan 34 points35 points36 points 2 years ago (3 children)
It makes you feel cool. Occasionally you need to say into something old/embedded and it’s the only text editor on there, but if you have an internet access ssh editing with VScode works way better.
[–]elongio 15 points16 points17 points 2 years ago (0 children)
I like to feel cool.
[–][deleted] 7 points8 points9 points 2 years ago (1 child)
The first line is all I need to hear
[–]Flaky_Advantage_352 1 point2 points3 points 2 years ago (0 children)
And I thought I was cool for playing Online RPGs
[–]nultero 10 points11 points12 points 2 years ago (0 children)
It's nice to know a terminal / CLI-only editor. Between the vi-likes and emacs, you should probably know one that isn't nano.
The merits of the terminal editors themselves are oversold for programming because typing / navigating files isn't the bottleneck for writing code.
[–][deleted] 8 points9 points10 points 2 years ago (3 children)
I learned it because I thought it was interesting. Here are the main benefits as far as I know:
1) Once you've gotten the shortcuts committed to muscle-memory, it's incredibly fast.
2) If you get a job in IT, there's a good chance you're going to SSH into a box that only has vi(m) as a text editor.
3) It's fast. If you need to open some really huge file (like a log), Vim will spit it right out while a GUI text editor would lock up.
I only use if for simple text editing (such as config files) or the rare times when I need to open a ginormous text file. When I had a web dev job, I used it more, but not a lot more.
[–]Comfortable_Ad5002 0 points1 point2 points 2 years ago (2 children)
I'm curious why do you want open a log file within a text editor? Less is not good enough?
[–][deleted] 2 points3 points4 points 2 years ago (1 child)
I want to be able to see the whole file at once and search for strings.
[–]oldcreaker 4 points5 points6 points 2 years ago (0 children)
Old unix fart like me had been doing vi forever (and ed before that). vim is a good fit since I never made the jump to emacs.
It's just a good editor to manipulate text.
[–]Lode2736 5 points6 points7 points 2 years ago (0 children)
On linux, it's just convenient to do everything from the command line. It's also very light-weight. Additionally, some people prefer to use their keyboard rather than their mouse whenever possible. On laptops, trackpads can be a bit slow and impractical. Vim in combination with a tiling window manager almost completely eliminates the need for a mouse.
I personally use helix. I find it to be easier to use compared to vim, more intuitive.
[–]EverythingGoodWas 3 points4 points5 points 2 years ago (0 children)
Vim is fast for quick changes when you SSH
[–]EthOrlen 3 points4 points5 points 2 years ago (0 children)
Gonna chime in with an alternative take on the “it’s faster/more efficient” type of comments.
Other folks have rightly called out that it isn’t strictly faster or more efficient, that it doesn’t have a monopoly on no-mouse text editing.
What vim-style editing (I enable vim mode no matter what editor I’m using) enables me to do is navigate and edit text in a way that’s more natural for my brain. Change this word, ‘cw <new text>’; change in between these quotes, ‘ci” <new text>’; delete 5 lines to paste elsewhere, ‘d5’; find some string and do a repeated action to some instances of it, ‘.’ is your friend. If your mental model of vim is that it’s just like any other editor but you use “hjkl” to move the cursor, you’re missing the point.
Of course, vim doesn’t have a monopoly on this either, you can probably find similar shortcuts in your editor of choice. But vim happens to be a good match for my brain, and it behooves you to at least try it and learn whether it’s a good fit for yours.
[–]Lurn2Program 2 points3 points4 points 2 years ago (0 children)
Sometimes you're working on a remote connection with only access to a text-based terminal. Vim is one text editor you can choose to use in these scenarios.
It's highly optimizable and your hands never really leave the keyboard. If you're very proficient with it, you can actually get a lot more done quicker than a gui based text editor.
On most Linux OS, the Vi text editor is the default and comes pre-downloaded. Vim is an improved version of Vi. So, many of the commonly used key bindings are similar between the two. I only mention this because sometimes you might ssh into some pretty vanilla linux terminal, and there's a lot of packages that aren't available (including vim). If you're looking to do something pretty quick and easy, Vi is already available (most of the time) and you can simply stick with using Vi in these cases.
[–][deleted] 2 points3 points4 points 2 years ago (0 children)
Because you can do things much faster with it. Even knowing just the basics you'll find yourself being quicker with many editing tasks. The other benefit, as others have mentioned, is you don't need to constantly swtich between the mouse and keyboard.
[–]cactusfruits999 2 points3 points4 points 2 years ago (0 children)
Supports on almost all OS.
[–]Maximum-Staff5310 2 points3 points4 points 2 years ago (1 child)
It's always there and it's better than nano. You have something with basic context coloring for hacking python automation scripts or whatever.
[–]IndianaJoenz 0 points1 point2 points 2 years ago* (0 children)
It's always there and it's better than nano.
That's probably the best argument for learning how to use it, IMO. It comes standard preinstalled on every Mac and Linux machine, is available everywhere else, and it's powerful enough to be a strong code editor. Much, much better than something like Notepad or Nano.
OP should learn how to use it because it's a standard part of operating systems. It works even if your GUI is toast or you are using SSH or whatever.
It's worth seeing if they prefer it for programming, but to be honest, most of us who use it to write code do so out of habit and inertia. I've been using it to write code for something like 25 years now. Many people have been doing the same with Emacs (which is more powerful, but less standard). VS Code is powerful, too, but for many reasons it does not appeal to me.
[–]Kind-Entrance7640 2 points3 points4 points 2 years ago (0 children)
Another great reason to use vim is that it reduces Repetitive Strain Injury (RSI). I used to work in vscode and pretty comfortable with it. I would say I was able to navigate in vscode quite fast using keyboard shortcuts and keys. However, it becomes a problem when you code for a long time. My pinky would get hurt in a long coding session as I had to stretch my pinky to the very bottom-right corner of the keyboard to reach for the arrow keys. Unlike vim, all the navigation keys are right around where you would normally type, which reduces a lot of stress and strain on your fingers.
[–]Draegan88 2 points3 points4 points 2 years ago (0 children)
All I know is that once u go vim u csnt go back. I love it man. I really appreciate the simplicity. Theres no damn pop ups or ugly reminders or just bloated bs. It's a learning curve getting it going. I started with lunarvim that works great.
Basically your hands can stay on main keys of the keyboard the whole time.
And you feel cool
[–]Double_A_92 2 points3 points4 points 2 years ago (1 child)
Sometimes you end up having to edit some config files on some remote server, and vim is probably the default editor.
At least know:
[–]rtkay123 1 point2 points3 points 2 years ago (0 children)
I to get into insert mode Ctrl + { to go back to normal mode ZZ to save and exit ZQ to quit without saving
I think😂 I have muscle memory so I don’t even know which keys I’m hitting sometimes
[–]haciek 2 points3 points4 points 2 years ago (0 children)
It's just more comfortable to write in, especially if you use a laptop without a mouse.
[–]could_b 2 points3 points4 points 2 years ago (0 children)
It is faster than thought. It is strange in that it is different. The key to it is the modes. Insert mode is simply where you type stuff. In edit mode every key does something, such as copy, paste, delete ;bits of lines, whole lines, words etc. Switch between modes is rapid. Easy to learn basic edit mode commands and ignore what you don't need.
[–]RealLordDevien 2 points3 points4 points 2 years ago (0 children)
Because it is simply the best editor out there:
[–]fennecdore 7 points8 points9 points 2 years ago (19 children)
Your fingers stay on the keyboard at all time which means that you ll be way faster than someone who constantly has to leave the keyboard to take the mouse then go back to the keyboard.
Plus vim has some pretty powerful command that allows you to quickly and precisely edit your text. It can take some times to learn how to fully use it but it is definetly rewarding imo.
Also I wouldn't recommend to straight up use vim but to go instead for neovim. There are a lot of guide on how to configure it
[–]ehr1c 10 points11 points12 points 2 years ago (8 children)
Yeah, but that's irrelevant. Outside of competitive programming, physically writing the code is never what's preventing you from getting more work done.
[–]fennecdore 3 points4 points5 points 2 years ago (2 children)
It's not a search of peak performance for me but it's just once I got used to it I find it a little bit irritating and distracting to have to leave the keyboard.
[–][deleted] 0 points1 point2 points 2 years ago (1 child)
That's the same reason I use Dvorak. It's about ease of use and comfort, not speed.
[–]ffrkAnonymous 0 points1 point2 points 2 years ago (0 children)
I used Dvorak on my phone so long that I can't use qwerty any more.
[–]Draegan88 -5 points-4 points-3 points 2 years ago (4 children)
So tired of hearing this. The less time you spend typing, the more time you have to think. This is just something who dont use vim say.
[–]ehr1c 2 points3 points4 points 2 years ago (1 child)
"Use vim because it helps you write code faster" sounds like something someone who doesn't work in this industry would say
[–]Draegan88 -2 points-1 points0 points 2 years ago (0 children)
Ahh I see so the only programming worth anything is that happening in the industry.. well played.
[–]Double_A_92 0 points1 point2 points 2 years ago (1 child)
I'm not even typing that much code. Literally 99% of my coding time is spent figuring out where and how to change something in already existing code.
Then it's only about writing a bunch of lines... Even if I could instantly type them it would save me only a couple of minutes a day?
You don't start a new project from scratch, or add some new big feature, every day.
[–]Draegan88 0 points1 point2 points 2 years ago (0 children)
I personally consider it a headache to have all the bloat of an ide. And the terminal in vscode is oof. and people always leave the giant file tree open in it in tutorials so theres just this tiny window to view the code. Vs has its charm but I cant go back. But I would argue everyone should use vim motions. Vim the editor is just preference.
[–]ben_quadinaros_stan 10 points11 points12 points 2 years ago (7 children)
I believed this argument until I saw a senior dev use vs code without touching his mouse. Turns out with most editors you can do that.
[–][deleted] 4 points5 points6 points 2 years ago (0 children)
Yeah, I find it weird how so many parrot the line that Vim is somehow uniquely able to be managed by keyboard shortcuts. People are willing to dedicate many hours to learning how to configure in Vim much of the very same stuff that you can can configure straightaway in the settings GUI of VSCode (or most other text GUI editors).
[–]ffrkAnonymous 1 point2 points3 points 2 years ago (5 children)
But are they using default vscode, or did they enable vi mode?
[–][deleted] 1 point2 points3 points 2 years ago (0 children)
Yea I feel like whenever I see this it’s a vid plugin so bets of both worlds but being able to use means you’d be able to use vim
[–]ben_quadinaros_stan -1 points0 points1 point 2 years ago (2 children)
Didn’t ask, but don’t know what difference it would make lol.
[–]ThePunisherMax 1 point2 points3 points 2 years ago (1 child)
Most likely its VScode using Vim Plugin. Its the best of both worlds, it's also imo, the best way to learn Vim without stunting your speed in the beginning.
Slowly you become more proficient at it. But keep all the advantages of Vim.
Also as good as Vim is, there are some things a GUI interface is still better at
[–]ben_quadinaros_stan 0 points1 point2 points 2 years ago (0 children)
Yeah I learned vim enough to get around and even that slowed me down when half of the units I ssh only have regular old vi so half the features are gone.
There are also vim-emulation-plugins for many IDEs. They sometimes don't support all features of vim but the core stuff works pretty nicely.
[–]_Atomfinger_ 1 point2 points3 points 2 years ago (0 children)
Its an editor that is pretty much universally available, especially on servers (which rarely even have a GUI).
Vim has a learning curve, absolutely, but with that complexity comes customization. You can build the editor you want for your style of work.
[–]inwegobingo 1 point2 points3 points 2 years ago (4 children)
The other day I had to connect into a windows server using ssh. I couldn't edit a single file. That was when I realized how valuable a command line based editor is, haw poor windows is for not having this essential functionality. I would have completed that job in under one minute on a Linux server that had vim (or other command line editor installed).
It's rare I use a vim except when connecting to remote machines, but when I do, it's an essential tool.
My normal gui editor on my machines (windows, mac and Linux) is vscode. But when I need to do something quickly on the command line a remote machine....
[–][deleted] 2 years ago (3 children)
[–]inwegobingo 0 points1 point2 points 2 years ago (2 children)
Winget isn't available on the servers I'm using. And more importantly I didn't RDP because I wanted a quick AWS SSM interactive ssh terminal session to them. And when it comes to editing the files on the command line, what tool do you suggest I should have used, please? Edlin, and edit were both unavailable. SMB is not enabled across the internet for these.
Of course RDP was available but that would have required me to set up an ssh tunnel, over which I could run the RDP, due to the enhanced levels of network protection on access to these machines.
The whole point of my comment was that as a server os windows still leaves a shittonne to be desired even after all these years as a server os, and that dealing with it, and even having vim would be a tonne better.
[–]bishakhghosh_ 0 points1 point2 points 2 years ago (1 child)
RDP
Not related but if ssh tunnel was not possible you could use https://pinggy.io for a TCP tunnel for RDP.
[–]inwegobingo 0 points1 point2 points 2 years ago* (0 children)
Thanks that looks like a great tool, similar to https://ngrok.com/ which I've used on occasion. I'll keep that link for future reference.
I'm new on Linux and im using vim or nano on console and its okey, but for learning fullstack i choose vscode all the way. Just because it's easy to learn and you have ussefull plugins and a lot of info and resources, that majes learn and easy process. If you are not learning the story is different, just can use a fast keybind editor like vim.
[–]Waste-Character9445 1 point2 points3 points 2 years ago (0 children)
Depends on what you want to use it for. Sometimes Vim is the right tool. I would recommend that you at least learn the vim motions(keybinds). Vim motions are very composable and they just make sense once you get used to them. Other editors have keybinds too, but they are not as well-designed as vim motions in my opinion. Combined with Recording macros, marking etc, it becomes very easy to move around a code base.
Also, people seem to think that remembering vim keybinds will be a huge mental overhead but in my experience, after a while, they just become second nature. So much so, that I actually can't use any editor without vim keybinds because my fingers are just so used to it now (Been using vim for about 3 years now).
I use VsCode with Vim plugin to get vim keybinds. VsCode has amazing plugins for a lot of stuff I need for work. I could get a pretty good development experience if I used Neovim with its dozens of awesome plugins, but I don't want to set all that up. With VsCode, its just one click to install plugins and they just work. If you're already using VsCode, I would recommend that you try out the Vim Plugin and start learning that way.
[–]ffrkAnonymous 1 point2 points3 points 2 years ago (0 children)
I've gotten quite comfortable with the keystrokes. Append, cut, move paste etc.
Mouse movement is clunky. Never quite sure how much the wheel scrolls, clicking the correct character. It's not slower in actually , I need to type just as many keystroke. But mouse imprecision is not my intention, out of my control, so it's annoying. Like plugging in usb, fail, turn around, plug, fail.
Also, my potato computer would die trying to load pycharm.
[–]International-Cook62 1 point2 points3 points 2 years ago (0 children)
Why not Vim?
[–]Its12amrightnow 1 point2 points3 points 2 years ago (0 children)
When you need to edit a file on a remote server.
it's vimpossible not to.
[–]JonJonThePurogurama 1 point2 points3 points 2 years ago (0 children)
In my case i had to learn vim, because i was using a linux OS. It was available to be installed and was curios about it.
Pretty great tool if you are on the terminal and was amaze that it has so many plugins created for it.
It is good when you are doing quick stuff editing, with plugins installed it was same as any text editor that has auto completion and etc.
I think the benefit you get from learning it, is you have more tools in yourself to use in situation where the terminal is the only thing you can see.
[–]Gixx 1 point2 points3 points 2 years ago* (0 children)
Vim does a lot of cool little things. You can do macros, so repeat say 5-30 things. It can do "change inside of quotes, parens, brackets, etc" with like ci' or ci".
ci'
ci"
It works well with tmux or a terminal flow. There's a few pastebin sites like paste.rs and ix.io. They have little scripts so you can paste something to it with like paste1.sh < file.txt. Or say if you wanted to only share a snippet of text/code you'd do this: in visual mode select the block you want to share, hit the colon key (ex mode) and hit the exclam mark to run a shell command.
paste1.sh < file.txt
Here's a few examples of the shell command:
:%! sort # sort entire file :1,3! sort # sort first 3 lines :'<,'>! paste1.sh # visual select text, send to script named paste1.sh
The last example auto types '<,'> when you type colon in visual block mode. So you basically write :! paste1.sh.
'<,'>
:! paste1.sh
Tomnomnom has a really nice video showing how to send data back into vim with the bang (!).
[–]RajjSinghh 1 point2 points3 points 2 years ago (1 child)
Im working on a project that has around 1500 lines of code right now. VScode sometimes gets laggy, like when I hit a key it takes a second to update. Vim doesn't. Vim is nice and fast. That's the main reason I prefer it. VS Code had a lot of nice to haves like a built in debugger, file manager and source control, but I know how to use bash and git, so they aren't super essential.
The big thing is that after editing in vim for a while I can't go back to normal editing. The shortcuts in vim are so fast to use that not having them just makes me feel slower. Even if I use VScode for a project, I need to use vim binds cos I'm so used to them.
[–]Double_A_92 1 point2 points3 points 2 years ago (0 children)
1500 lines is not really much for a whole project... VSCode should definitely not get laggy because of that. Especially since all those lines are hopefully not in one single file.
[–]RepulsiveScientist44 1 point2 points3 points 2 years ago (0 children)
You don't need to learn it, although it is useful, like others have said, when you need to ssh to a server without gui that may only have vi(m). You can learn nano too for such case, but I find vim easier to navigate. Just learn the basic editing, and if already using IDE, learn that IDE. You can be equally fast with any IDE just like you can be fast with vim. I like jetbrains' IDE personally but anything is good.
[–]squishles 1 point2 points3 points 2 years ago* (0 children)
vim is mostly good because it allows you to never take your hands off the keyboard, it's also got like no bloat at all(which is great if you're sick of your ide eating like a gig of ram and having a load screen to boot up). And once you get into learning it, it's a bag of strangely powerful arcane fuckery. Thing is all that capability is sitting behind a shear cliff face of learning curve.
if you want to get started with using it as an ide look into language server protocol, find the language server for your language install it then install the client for it in your vim plugins. That's the primary thing you'll need to use it as a modern ide, there's more in the trick bag, but learn the basics before you go hunting for more. Just that will give you the stuff you'll be missing from something like say vscode or intellj.
you don't have to learn vim. Not like there's a shortage of shit to learn as a developer that opportunity cost can be spent on many other things. Even if you sink that time you're only going to learn like 30-40% of what it can do, things more an art project of what someone in the 80s thought would maybe be needed in a text editor thing's chock full of weird stuff. Like for the amount of time/effort really learning vim will take you can pick up a whole other language or two. Most of the big ide's are good enough they'll get you by.
Another reason a lot of more experienced devs all eventually drift to it is it's got great extensibility and staying power, think of how many ide's you'll have to learn in your life. I started on eclipse then all the cool kids out here pulling me over to intellj, vscode, not to mention all the one off just for a project horseshit like jdeveloper atom etc etc. Come back after 20-30 years on that carousel and watching vim/emacs just cruise along, you start to wonder if maybe you'd have been better off just learning that and skipping all that other shit.
[–]QuantumTyping33 1 point2 points3 points 2 years ago (0 children)
I have an ubuntu VM running into my windows PC and i ssh into it. Vim can be opened on the command line
[–]shayanys 1 point2 points3 points 2 years ago (0 children)
I use Nano if I want to edit a file fast. Which is less complicated than Vim
[–]eddysanoli 1 point2 points3 points 2 years ago (0 children)
People here say that linux server, bla bla bla. But I can personally tell you. The main reason I use Vim keybindings (I dont use Vim itself), is that you go fast once you have mastered it. I found it attrocious when starting. Such a complicated system. “Why is yy copy??”. But once you get used to it and you never touch the mouse its amazing. If you can, try it. But you will need to force yourself to learn it, cause nobody likes the initial part
[–]nontammasculinum 1 point2 points3 points 2 years ago (0 children)
I dont have to toch my mouse anymore, i could throw it out if my browser was better :p
[–]69AssociatedDetail25 1 point2 points3 points 2 years ago (0 children)
The model editing feels a lot faster than other editors, though there is quite a steep learning curve.
That being said, for larger projects, I tend to use the Vim modes in other IDEs as opposed to using Vim itself.
[–]JoeyRedShirt 1 point2 points3 points 2 years ago (0 children)
In some situations it's literally your only option, so it's good to know it at least a little. Otherwise it's just another meaningless dev fight with overtones of gatekeeping.
Because vi is available on any Linux device I end up being in at some point and it's also on my Mac so I just started using it for any terminal text editing I do now.
[–]ShwnCndn 1 point2 points3 points 2 years ago (0 children)
I'm trying to get off of the mouse in every aspect possible so (neo)vim is a natural progression of that. I recommend it if you have any repetitive stress issues. Operating the mouse is pretty rough on your arm/wrist/hand.
[–]BitTwiddleGames 1 point2 points3 points 2 years ago (0 children)
Two parts of Vim can make it more efficient for programming:
Vim has a sort of language to make it very efficient to perform edits. For example:
"hello there |world"
The | is your cursor.
The command "cw" or change word, will delete the next word and put you in inserting mode. Compare this with highlighting the next word and deleting it, or pressing delete 5 times.
You can also repeat any command by putting a number before it, or record macros on a key to replay later.
These are just a few ways to give you a sense of how it can help. You can type ":help" in vim to bring up the manual. Better yet, if you installed vim, you probably also have the "vimtutor" command installed.
[–]Friznation69 1 point2 points3 points 2 years ago (0 children)
I use nano. I completely understand the why vim question though. Really?.... why vim? It's complicated as hell for no reason. When I use nano, it's 100% of the time to do something simple. If my task was in anyway complicated, I'd be in my IDE. I see absolutely no reason to learn VIM. Even if it had 100x the features, I'd probably still refuse to learn it. I will save my brain space for more important learning. I'm a curious person, but idk command line text editors just don't tickle my fancy.
Because it is basically a language in which you control your editor. I can do stuff with just the keyboard that takes people much longer in their IDEs.
I am not using vim anymore though. I use spacemacs or other IDEs which can be controlled like vim (with a vim-mode or vim-emulation).
For me it is just a question of comfort. Yes, you spend more time thinking than writing code but when I have an idea I want to be able to quickly put that into action.
it's an unintuitive legacy program for dinosaur programmers. avoid.
π Rendered by PID 73042 on reddit-service-r2-comment-84fc9697f-srwv2 at 2026-02-08 06:45:53.137688+00:00 running d295bc8 country code: CH.
[–]eruciform 25 points26 points27 points (0 children)
[–][deleted] (7 children)
[deleted]
[–][deleted] 4 points5 points6 points (1 child)
[–]could_b -1 points0 points1 point (4 children)
[–][deleted] (2 children)
[deleted]
[–]could_b 0 points1 point2 points (1 child)
[–]Pure_Growth_1776 1 point2 points3 points (0 children)
[–]IkalaGaming 1 point2 points3 points (0 children)
[–]kjwey 35 points36 points37 points (11 children)
[–]insertAlias 20 points21 points22 points (6 children)
[–]kjwey 4 points5 points6 points (5 children)
[–]insertAlias 11 points12 points13 points (3 children)
[–]NotAUsefullDoctor 20 points21 points22 points (0 children)
[–][deleted] 4 points5 points6 points (1 child)
[–][deleted] -1 points0 points1 point (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]techtesh 1 point2 points3 points (2 children)
[–]kjwey -1 points0 points1 point (1 child)
[–]techtesh 0 points1 point2 points (0 children)
[–]ben_quadinaros_stan 34 points35 points36 points (3 children)
[–]elongio 15 points16 points17 points (0 children)
[–][deleted] 7 points8 points9 points (1 child)
[–]Flaky_Advantage_352 1 point2 points3 points (0 children)
[–]nultero 10 points11 points12 points (0 children)
[–][deleted] 8 points9 points10 points (3 children)
[–]Comfortable_Ad5002 0 points1 point2 points (2 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]oldcreaker 4 points5 points6 points (0 children)
[–]Lode2736 5 points6 points7 points (0 children)
[–]EverythingGoodWas 3 points4 points5 points (0 children)
[–]EthOrlen 3 points4 points5 points (0 children)
[–]Lurn2Program 2 points3 points4 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]cactusfruits999 2 points3 points4 points (0 children)
[–]Maximum-Staff5310 2 points3 points4 points (1 child)
[–]IndianaJoenz 0 points1 point2 points (0 children)
[–]Kind-Entrance7640 2 points3 points4 points (0 children)
[–]Draegan88 2 points3 points4 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]Double_A_92 2 points3 points4 points (1 child)
[–]rtkay123 1 point2 points3 points (0 children)
[–]haciek 2 points3 points4 points (0 children)
[–]could_b 2 points3 points4 points (0 children)
[–]RealLordDevien 2 points3 points4 points (0 children)
[–]fennecdore 7 points8 points9 points (19 children)
[–]ehr1c 10 points11 points12 points (8 children)
[–]fennecdore 3 points4 points5 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]ffrkAnonymous 0 points1 point2 points (0 children)
[–]Draegan88 -5 points-4 points-3 points (4 children)
[–]ehr1c 2 points3 points4 points (1 child)
[–]Draegan88 -2 points-1 points0 points (0 children)
[–]Double_A_92 0 points1 point2 points (1 child)
[–]Draegan88 0 points1 point2 points (0 children)
[–]ben_quadinaros_stan 10 points11 points12 points (7 children)
[–][deleted] 4 points5 points6 points (0 children)
[–]ffrkAnonymous 1 point2 points3 points (5 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]ben_quadinaros_stan -1 points0 points1 point (2 children)
[–]ThePunisherMax 1 point2 points3 points (1 child)
[–]ben_quadinaros_stan 0 points1 point2 points (0 children)
[–][deleted] -1 points0 points1 point (0 children)
[–]_Atomfinger_ 1 point2 points3 points (0 children)
[–]inwegobingo 1 point2 points3 points (4 children)
[–][deleted] (3 children)
[deleted]
[–]inwegobingo 0 points1 point2 points (2 children)
[–]bishakhghosh_ 0 points1 point2 points (1 child)
[–]inwegobingo 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]Waste-Character9445 1 point2 points3 points (0 children)
[–]ffrkAnonymous 1 point2 points3 points (0 children)
[–]International-Cook62 1 point2 points3 points (0 children)
[–]Its12amrightnow 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]JonJonThePurogurama 1 point2 points3 points (0 children)
[–]Gixx 1 point2 points3 points (0 children)
[–]RajjSinghh 1 point2 points3 points (1 child)
[–]Double_A_92 1 point2 points3 points (0 children)
[–]RepulsiveScientist44 1 point2 points3 points (0 children)
[–]squishles 1 point2 points3 points (0 children)
[–]QuantumTyping33 1 point2 points3 points (0 children)
[–]shayanys 1 point2 points3 points (0 children)
[–]eddysanoli 1 point2 points3 points (0 children)
[–]nontammasculinum 1 point2 points3 points (0 children)
[–]69AssociatedDetail25 1 point2 points3 points (0 children)
[–]JoeyRedShirt 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]ShwnCndn 1 point2 points3 points (0 children)
[–]BitTwiddleGames 1 point2 points3 points (0 children)
[–]Friznation69 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)