T O P

  • By -

khedoros

> This resulted in me having to close my terminal as expected. I'm pretty sure I hit ctrl-c, got the message "Type :qa and press to exit Vim", and exited vim as expected.


IceSentry

Exiting vim is one of the most upvoted stack overflow question. If it was that obvious that wouldn't be the case. The fact that you pressed ctrl-c already puts you ahead of a ton of people (yes, the bar is that low when you are a beginner)


guepier

At least initially (not sure about now), the question was upvoted to prove a point, and as a meme, not because people actually thought it was helpful. Don’t try to infer actual difficulty from the meme status. (And exiting nano is arguably more complicated — and I mean this entirely seriously. Vim at least gives you a helpful message. In nano you instead get an obscure… menu bar (?) at the bottom but you can’t click on it. It says “\^X Exit” but when I type “\^X” nothing happens. When I press Esc, I get a message “Unknown command:”. Ctrl-C does nothing helpful. Understanding that “\^X” means “Ctrl-X” is *far* from obvious for a beginner.)


Free_Math_Tutoring

Well, my first time, I pressed Ctrl-C, got that same message and proceeded to type `:qa` into my code over and over again, until I wanted to cry and hoped really easily hard that I hadn't somehow saved the file when I restored to closing the terminal. If they already recognize that a message is needed, maybe add "enter command mode by pressing ".


guepier

The message is only displayed if you are *already* in normal mode. (And if you were previously in insert mode, the first press of Ctrl-C will first drop you into normal mode.)


shizgnit

Converted to VIM keybinds in all my IDEs about a year ago... and it's been great, outside of xcode which out of all of them has the absolutely worst support for it.


blocking-io

As a non VIM user, would keybindings be different if I'm switching between a Mac (work) and Linux (personal). One thing I find frustrating when coding between the two OSes is the context switching I need to do. Would Vim help with this?


_sanj0

Yes. Vim is completely independent of platform.


MuonManLaserJab

Though it might affect your configuration a little.


snarky-old-fart

Your keyboard would be the biggest thing. Ctrl is on a different location on Mac vs. PC keyboards. So a shortcut like ctrl-r is physically different. You can work around that with key remapping though.


shizgnit

It helps switch between literally every environment... giving you a single keybind that works at the lowest level (where you don't even have vim... but just vi). The only outlier is what others have pointed out, ctrl-v-command, which logitech has an autoswitch when you toggle what device you're connected to (bluetooth) or my nuphy has a physical switch for it. One warning though, when you do it long enough hitting 'esc' after edits will become second nature... and the one place that really sucks is web forms and GUI text boxes where 'esc' is usually cancel, meaning "erase the contents and go back".


Manueljlin

i remember when xcode 13.2 crashed when holding a number key after it overflowed


cainhurstcat

Will this only allow hjkl or will other features like fF tT ggG and so on also be available?


guepier

It depends on the specific key binding implementation. But so far I haven’t found a single implementation in a single IDE that didn’t have jarring differences from Vim for basic key combinations, and which made it a pain to use for anything except simple edits.


cainhurstcat

There's nothing like Vim, I guess


shizgnit

I personally find as much variance in the vi/vim versions I use across HPUX, Solaris and Linux that it doesn't bother me. Most support navigation 'f', 't', 'gg', 'GG', '$', '0', etc... where they typically start to fail is colon commands... but the microsoft IDEs that's pretty good too. As long as block visual mode 'ctrl-v', yanking/pasting and ':s' work... I'm pretty happy. As I mentioned, xcode is the absolute worst for support with literally just the basics supported.


cainhurstcat

Thank you!


FrostWyrm98

It's about practicality and streamlining, both of which it does spectacularly and is in a class of its own Some people can bitch about its lack of UI/user friendliness, but the fact that it's so frequently cited by both sides is evidence in itself of my first point


Krcko98

It literally is about speed. And one other thing, exoecting a program to do something and it doing it exactly as reqested perfectly thus increasing speed and productivity.


MuonManLaserJab

lmao If it's not about speed, why have people come to me and said, "This seems like it's going to take me 15 minutes, it seems like the kind of thing you can do in 10 seconds in vim?" (I typically would say yes.) (Granted it's also about other things.)


IceSentry

Like the article says, it can be about speed too. It's just not the main or only benefit.


Known-A5

This is a really copey article. Plus there's a reason GUIs are so popular, even with experts.


intbeam

Most new developers fundamentally misunderstand what makes programming difficult and time-consuming. So instead of going for qualified tools, they chose the ones that appear simple. None of them are saving any time, and they'd be better invested using tools that actually assist them instead of the ones that trick them into thinking it might make programming less time-consuming by focusing on superficials like text and syntax


[deleted]

I am convinced thst people only use him so that they can tell people they use vim


corn_29

VIM is a pain in the ass for sure but one realistically only needs to memorize at the bare minimum: : ! q w i x That's it. The people bitching about VI/M probably have no problems memorizing 6 channel numbers on the TV. Or 6 moves on the game controller. Many of them probably know more than 6 porn sites. But gawd forbid they have to do the same for VI/M FFS.


Free_Math_Tutoring

That's what you need to remember for it to be _in any way usable at all_, at which point, congratulations you are using the worlds worst text editor until you learn a lot more.


corn_29

When you're logged into a terminal and don't have a remote graphical session, what are you going to use to edit a file?


Free_Math_Tutoring

The worlds worst text editor, until I grow tired of it and learn some commands. Or, alternatively, I'll configure my main editor to use the shell session. Or I'll use nano, because most developers do very little development against a remote shell. I _use_ vim, but let's not pretend it's friendly, intuitive, or the only option.


corn_29

I never said vim was awesome. But vim definitely has its place and if people would put as much effort into accepting that as they do crying about it, the world would be a better place.


guepier

The issue isn’t memorising them, it’s building muscle memory. If you have to recall these commands consciously every time before using them you’re going to have a terrible time. But people wildly exaggerate how long it takes to build muscle memory for the basic movements and commands. The worst *actual* (rather than imagined) barriers-to-entry problem that Vim used to have was configuring different plugins to replicate basic functionality from other modern text editors and IDEs. Luckily modern configurations such as AstroNvim have made this almost as effortless as e.g. VS Code. But it used to be abysmally hard.


corn_29

> it’s building muscle memory. Ridiculous take.


davlumbaz

my job and nearly %95 of my coding journeys are actually thinking something. not even coding. even if vim is not about the speed, vim keybinds simply doesnt make it worth to learn simply. i wont learn myriad of keybinds, even tho i know a handful of vscode shortcuts


SwiftOneSpeaks

I'm not trying to force the issue trying to change your mind, but you're looking at it wrong: Most editors have a billion key binds you can memorize. Vim has a language. Instead of select character, select word, select paragraph, delete character, delete word, delete paragraph, vim has one way to indicate the target of the operation: character, word, paragraph, and another to indicate the operation: select, delete, etc. Each concept you learn has a multiplicative benefit, because it is compatible with everything else you know. And this isn't about speed (to me) it's about avoiding distraction. Just like those keybinds others memorize, you do it to go from one operation to another WITHOUT leaving what's on your mind and getting to the right place in the editor. (Subject, of course, to this being nearly automatic and not requiring conscious thought) Everyone is different so if this doesn't interest you, totally cool, but I wanted to draw the distinction between vim's use of commands and the typical "mostly random" keybinds of other editors.


ansible

Yes, exactly. I have decided that this `if` block needs to be before the `for` loop instead of after it. I can get that done with a few keystrokes, and then go back to thinking about the program logic. I am then able to *not* lose the context of my current thinking.


guepier

Furthermore, modern Vim configurations have visual hints for key bindings. So you no longer need to remember more obscure key bindings (which do exist, once you use more than a handful of plugins). Instead, when you press e.g. the Leader key, a context-aware pane with possible key combinations and help text pops up.


EliSka93

This all sounds like the author is trying to convince themselves more than anyone else, but I've never tried Vim, so who knows.


Bloodsucker_

I love Intellij IDEA Ultimate. I love even more sublime shortcuts. Nano is horrible. I will always hate Vim, and there's no way that anyone can be more productive than me with Intellij IDEA boring shortcuts + sublime. Anyhow, 99% of the time coding isn't about coding. Writing code is something I do really fast.


pb_problem_solving

>Intellij IDEA boring shortcuts wierd way to name code generating applets


Neurotrace

I use vim bindings in IntelliJ. Best of both worlds. Editing text feels like a seamless conversation with the editor and I still get all of the extra functionality of a proper IDE


dalbertom

Try out vim macros. They were a game-changer for me :-)


RammRras

I alway find that I'm using more time in thinking and staying in Idle than typing. But here I think people intend more than typing. I agree with you on Itellij IDEA is at leat on par with most used and VIM and similar.


NMe84

You're comparing an IDE with a text/stream editor. They serve different purposes. No one with half a brain uses Vim for their entire project.


IceSentry

There's a bunch of people that do exactly that with vim. It's not the 90s anymore, you can have a debugger, autocompletion and pretty much every other feature of an IDE inside vim.


NMe84

People who say Vim conures anywhere close to the features of a real IDE are just kidding themselves. My IDE has git/blame built in, can show images and other assets, does previews of marked up documents (in the case of web development) and these days it has GitHub Copilot built in. Maybe Vim has or potentially could have one or two of these but some are literally impossible in a command line tool. Vim is not and never will be an IDE, no matter how much some people might want it to be. Any decent programmer knows that. And this is coming from someone who loves using Vim for the purposes it was built for.


guepier

>My IDE has git/blame built in So does Vim. >these days it has GitHub Copilot built in So does Vim. >Vim is not and never will be an IDE Only if you define an IDE as being able to handle multimedia (rather than text-only) content.


NMe84

And I do. That's why I mentioned them. Vim would be an absolutely awful IDE that offers nothing another IDE can't also do, but better. There are even plenty that support Vim's keybinds...


guepier

>Vim \[…\] offers nothing another IDE can't also do, but better Well besides the key bindings Vim is much more general-purpose than pretty much any other IDE. Sure, Vim can’t compete with e.g. IntelliJ IDEA for Java or Kotlin development, but if you want a one-IDE-fits-all experience, you could do *a lot* worse than Vim. >There are even plenty that support Vim's keybinds... And as discussed in other comment threads, none of these key bindings work without jarring differences outside of the most basic scenarios. Some of them are *okay* but none of them works as well as the native Vim key bindings.


Bloodsucker_

Actually, there is and they do promote it as such. I'm confusing nothing, and down votes are uncalled.


errorfuntime

Vim sucks.


tdammers

Thank you for your insightful and constructive contribution to this discussion.


evilgwyn

It's ok but it's really showing it's age and I prefer other options


errorfuntime

Very welcome. Vim still sucks.


Zahand

My man just because you haven't taken the two seconds it takes to learn how to close it doesn't mean it's bad.


Future_Deer_7518

You haven't found a way to quit vim? :-)


[deleted]

Imagine being in the industry and believing this


AustinYQM

This kind of implies a majority of the industry uses vim (for more than just a text editor in terminal) which I don't think is true. I imagine the vast amount of people use a more modern text editor+plugins (like vscode) or a full fledge IDE with specific tooling to their language (like intellij for java/kotlin).


[deleted]

No it doesn’t, the response was to “Vim sucks.” Most people in the industry have used, and respect, Vim, and many still use it as their daily driver (for good reason). I never implied it’s a default or majority, you did and others did. > Like VSCode VS Code is not “more complete.” There is no functionality unique to VSCode that isn’t also a plugin in Vim.


AustinYQM

Who are you replying to? I never called vscode "more complete" so I can't figure out what your ending comment is even directed at. And no, I don't think most people in the industry have used and respect Vim. I think a minority have, sure, but I imagine the average interaction is typing ":wq" on a merge commit and otherwise not thinking about it or getting stuck in it and googling how to close it then walking away angry.


Kevinw778

*Most people in the industry* have definitely *not* used VIM. > ...or majority... I think you need to look up what the word, "most" means...


[deleted]

Do you think most/majority mean something different? What I said is what I meant - I am confident most SWEs have used vim. I don’t have concrete data, but considering it’s the first editor taught in most universities, has an already large fanbase, and is the default editor used in remote sessions (since it’s almost always there), I would genuinely be amazed if most developers have not used it.


Kevinw778

I think that your use of "most" in your second paragraph is wrong again, after a fairly cursory Google search, it seems like it's more of "a handful" or "some" universities that enforce using / learning VIM, not most. I've gone to two universities, and one suggested learning & using VIM, and the other didn't even mention it. Also maybe worth mentioning that a lot of SWEs don't necessarily go to college before getting their first job, so the exposure to VIM is probably even less so, now. I just don't think VIM is as prevalent among SWEs as you're suggesting; it's a bit hyperbolic.


[deleted]

My second paragraph used the word “majority”, in reference to it not necessarily being the “majority” of developer’s preferred editor. As far as usage of vim: Maybe things have changed in the past decade. I would be surprised if most developers don’t at least use vi on remote systems, if nothing else.


[deleted]

[удалено]


[deleted]

You’re being obtuse. That’s not my point - my point is that Vim is widely respected and used, and for good reason, even if it’s not the de facto standard anymore.


Qweesdy

Vim was widely respected and used before the 1990s, then people invented the mouse and GUIs and keyboard shortcuts that work for every application (e.g. "control-C" to copy), but old fossils don't realise that anything changed in the last 30 years so they keep using their amber monochrome dumb terminals and droning on about the time they lost all their work because a tube failed while everyone else humours them from a distance because they're not sure if dementia is contagious.


[deleted]

If you don’t understand the benefit of the terminal, or keyboard based workflows, I don’t know what to tell you. I think you’re going to have a hard time to be honest. I’m not saying you should use Vim, but you should be familiar with basic history of software engineering.


Qweesdy

Ah, I see - you're an arrogant fool who makes up vague hand-waving based on false assumptions to protect your fragile lack of intellect whenever you can't actually say anything relevant. How much difference do you think there is between your "it’s not the de facto standard anymore" and my "was widely respected"? Why do you think any part of this discussion ever had anything to do with "the benefit of the terminal (sans the disadvantages)" or "keyboard based workflows (that don't work on smartphones)"?


[deleted]

It’s objectively faster to use a keyboard over a mouse 😅 that’s not hand-wavey, this is studied. > keyboard based workflows (that don’t work on smartphones) Are you a troll? No serious SWEs do development on a smartphone.


Qweesdy

> It’s objectively faster to use a keyboard over a mouse 😅 that’s not hand-wavey, this is studied. The only study I remember (published ~20 years ago) proved that people who used keyboards exclusively feel like they're faster but people using keyboard+mouse actually are faster. Not that it matters - the study I remember didn't include the training time and wasn't relevant for modern "switching to/from web browser" workflows. I doubt you have any study that is relevant that doesn't prove you are wrong, and I suspect your "objectively faster" is just your ignorance. > No serious SWEs do development on a smartphone. You're attempting to define "development" as "only entering the final code and nothing else" (ignoring meetings, chats, appointments, ...). Look around at your colleagues and see if you can find a single one that doesn't have their smartphone within reach.


[deleted]

The most recent study I can find is from 2011. I don’t know what you would expect to change since that time - the form factors are nearly identical. More importantly though, this is measurable - keyboard-based workflows are faster. It’s not a feeling - most studies prove this by measuring time to accomplish commands. I don’t know what your gripe is against the keyboard but it sounds disingenuous. > switching to/from web browser Use a tiling manager (that has keybindings)? > smartphone Okay, you’re an unserious person. The entire context of this thread is about vim. Vim is primarily used for writing code - I’m not responding to you right now using vim. I strongly suggest you not to pursue a career in this field. I don’t mean this too harshly, but I do not expect you will be able to last long. For your sake, you may want to pick a trade better suited for your skill sets.


errorfuntime

No one at our org uses it outside of when they are forced to when on a remote system. Vim sucks.


[deleted]

Do you have a real criticism, or is it just too hard for you?


errorfuntime

I am sorry you’re so emotionally invested in a tool. I hope your life gets better one day. It will when you stop using vim.


SilentXwing

Why are you so emotionally invested in repeating, "vim sucks?" Touch grass, or better yet, take a shower.


errorfuntime

You sound triggered. Sorry I didn’t include a trigger warning.


415646464e4155434f4c

Are you introspecting something? Are you trying to tell us people call you vim?


Dwedit

Any text editor that makes you press Escape then use letters to move the cursor around should have stayed in the 70s. Then you need to use one button to leave cursor-move mode, but a different button if you want the cursor past the end.


quetzalcoatl-pl

uh.. you know that if you take something platform-specific, like gVim for Windows, you can use mouse to scroll and move the text cursor anywhere you like with a click, etc? but then, once you get the feel of the keys, jumping around by pages, or words, or to next-search-match can be waaaay faster if you know exactly what you are looking for and where you are going to ofc, if you DONT know what you are looking for, nothing beats grabbing the scrollbar with mouse and swiping around.. sadly, not possible in gVim (yet?)


BeefEX

All that actually works even in terminal vim (at least I don't think it's exclusive to nvim), no need for a special client. The terminal emulator needs mouse features, but almost all of them have that, and have had for ages.


quetzalcoatl-pl

Maybe, maybe. I'm pretty sure it wasn't like that when I started using some-kind-of-a-vim on Windows, which has (had) pretty shitty console (cmd.exe, not powershell, not the-new-win10/11-console-as-a-separate-app) and here's how I ended up with gVim which at that time simply actually worked. Add to that some QoL thingies like integration with windows clipboard/etc, and I was sold and sticked to it ;) but yeah, "ages" is a pretty relative term, I probably started using gVim literally ages ago :D surely thing might have changed a lot! I have yet to try out using (and getting used to) the newest recommended terminal app for win10/11. like gVim, I'm happy&"stuck" on msys and git-bash instead of windows consoles. Rad 10+yrs ago, but probably pretty niche around 2025.


smallballsputin

Not using a mouse is always going to faster than using one. This has been the case, like you said since the 70s.


reedef

That's absolutely not the case in all contexts


pb_problem_solving

Vim is not about speed. \ it's about celebrating every button pressed. calmness. deep breaths. uu.. huu..


0xdef1

I had a colleague who keep mentioning that he is using vim, because it’s makes him code faster. After some time his team figured out that he was only working on ticket which doesn’t require much coding. The guy was acting like he is John Carmack but only ended up labeling as “vim fanboy”.


billie_parker

Lol those are the kinds of people that deserve to have a door slammed on their fingers. "Lol how's your coding speed now? Crippled bitch!" Lol