11 ms·
"I wish I could say I agonized over all the options at the time and decided vim was the best pedagogical solution, but the reality of the situation was that vi
by fergie 6y ago
"I wish I could say I agonized over all the options at the time and decided vim was the best pedagogical solution, but the reality of the situation was that vi was what I used in college because my father taught me vi"
We dont talk about this much, but many of us hardcore Vi/Emacs users have had this knowledge imparted to us from a mentor. Thats probably why the use of Vi/Emacs is much higher in established tech environments (universities, big dotcoms), where there tends to be a tradition of mentorship than it is elsewhere. If anyone is looking for a slightly off-the-wall masters thesis, I'm fairly certain that you could extrapolate this out into a class divide- perhaps richer/more-established/well-educated users are proportionally more likely to use Vi/Emacs, and in some ways use them as "gatekeeping" tools?
- scruple 6y agoMy mentor was a humble man from the Turkish countryside. He held dual masters in EE and CompEng. He knew vi because what else would he possibly know? It's what he learned in university. And, so, he taught me what he knew. I've mentored about 2 dozen people and I've taught them all vi(m). As far as I know, though, it's only stuck with 2 or 3 of them. C'est la vie.
- pvg 6y agoThey're not really the same thing, compared to vi[m], emacs is statistically dead. And there are already lots of people who're well into their careers in academia and industry who aren't users of either. My own contrarian and probably equally wrong take is that it's mostly about accepting the (evidence-free) premise that modal editing is actually a good thing. It's hard, you suffer but lots of smart people tell you it's worth it and perhaps your suffering will help you be as smart as them. It ends up being closer to hazing and penance (your editor as hairshirt) than actual gatekeeping.
- rgoulter 6y ago> it's mostly about accepting the (evidence-free) premise that modal editing is actually a good thing. Kakoune's development has started fairly recently. The oldest tags on its GitHub repo are for 2018. I think this defies "people want to continue the legacy of actually-not-that-great thing because I had do suffer, so other people should too". I think you'd only put into making/promoting Kakoune if you genuinely thought modal editing is a good thing. Whereas, if the bigger value in "I learned modal editing" is the signal of "modal editing is hard, so anyone who knows it must be good" (rather than value from a better developer experience), I think aiming to make modal editing more intuitive/accessible is counter-productive.
- pvg 6y agoOh once you've suffered, there's a huge, inexorable incentive to believe you haven't suffered in vain! Completely agree with you that the belief is genuine and sincere. I just don't happen to think it has much basis beyond its authenticity and sincerity.
- pritovido 6y agoYou simply don't understand. Do you suffer for thinking on English? Do you suffer for driving your car and changing gears? Do you suffer for using a pen for writing? You can try to write with the hand you don't usually write with. You would suffer if you try to write the same things you write with the other hand but if you improve a little every day over time you will be capable of writing with it well.
- gen220 6y agoI think there’s been a conflation in this thread between suffering and struggle. It’s possible to have one without the other. Struggle is a requirement for learning very useful things. It’s entirely possible to learn modal editing without suffering but it’s not likely to learn it without struggling, given how most people are raised on the mouse.
- pritovido 6y agoThe difference between a modal editor and a GUI one is that in the GUI one, the commands are organized in the menu and you access this mode(the menu display mode) by clicking instead of pressing a key. In fact, if you use shorcuts, they are the same thing. Modal editing is not hard. I learned vim and emacs without problems. Step by step, focusing on what was the next thing useful for me and learning it after that. Not harder than learning German or English or Chinese Mandarin. Any human languages is way more sophisticated and people learn it anyway. There is 3.000 words (or commands) that you need to use to speak a basic language. 20.000 if you are an educated person. Do you believe that if people in Germany speak german fluently they are trying to signal anything to others? People learn a language because they use it. As simple as that. The more you use it, the easier it gets.
- apocolyps6 6y agoThe "suffering" has honestly been overblown by jokes about not being able to quit on one side and the mythologizing of the leet ninja 10x programmer who is only bound by his typing speed and can't waste time reaching for the mouse, on the other side. It continues to surprise me why people have such strong opinions about someone else's editor choice. My current theory is vim users are like vegans/gluten free/paleo/etc, in that its a personal choice that some are public about, and people love to hate on it and "disprove" it for the same reason.
- pampa 6y agoI suffer every time a linux distro has nano as the default editor. Cant save a file, cant exit, have to read the two bottom rows and figure out those alien shortcuts. yuck
- lazyant 6y agoThose alien "shortcuts" are Emacs bindings, the same as in a Bash shell, or a Cisco router etc.
- pampa 6y agoI did use emacs before i switched to vim 15 years ago. My memory is hazy, but i am pretty sure Ctrl-O to save a file and Ctrl-X to exit are not emacs bindings. I was as confused with nano when i used emacs as i am now.
- lazyant 6y agoyes, some bindings may be different for meta-control like you are pointing out (the editing ones are Emacs)
- dan00 6y ago> It continues to surprise me why people have such strong opinions about someone else's editor choice. I think because people identify themselves too much with their editor, programming language or whatever else choice. Everyone wants to think of themselves as the smart ones, only making objective rational choices, so everyone else making other choices has to be stupid. If now someone criticises their choice or argues about other choices, then they feel personally attacked, and there the flamewars goes.
- jdrek1 6y agoI don't think your take is wrong. I have yet to see any actual argument from the vim/emacs crowd. I'm genuinely curious about what makes them defend their editor choice that heavily but whenever I ask them for their reasons all I get is a "modal editing is great because modal editing is great". I can somewhat understand "don't have to touch the mouse" as that's a personal preference for them (even though IDEs have key binds too, I think they blow up that argument way too much) but on anything else they are suspiciously silent. Maybe I have just not met the right people to ask but that's my personal experience. Anyone I know using vim only does it because they either have been using it for 40 years or have been told to use it by someone from the first group and don't know anything else.
- chousuke 6y agoFor me, modal editing is great because it's comfortable. I almost never need chords save for those using control, which resides in its rightful place below the tab key. Lots of typing, zero RSI. Modality also enables the vi "mini-language" that makes editing actions and movement composable, which is nice.
- mercer 6y agoI'll name one use case where Vim's approach helps me out a lot: macros. Quite often I need to edit a whole bunch of lines of code/data in a similar way. simply being able to repeat a particular set of 'motions' x times, or on whatever line I'm one, has often proven quite useful. I'm sure that many people don't really need to do this much, but for me it's probably something that crops up daily (when I'm working), at least once. Often multiple times. The fact that I can perform complex operations and record them with no extra mental load, is definitely one reason I'm sticking with Vim (or rather, evil on Emacs).
- jdrek1 6y agoThat's a reason I can get behind. I agree though, most people probably don't need that, but in such cases it's great to have a tool like that available. Thanks!
- alwillis 6y agoMy own contrarian and probably equally wrong take is that it's mostly about accepting the (evidence-free) premise that modal editing is actually a good thing. Yes, equally wrong. ;-) We deal with modes all of the time—when you're backing up your car, the car is in reverse mode. Microwave ovens have modes depending on what you want to cook. I use the popcorn mode on mine a lot. Anyone who've ever used a VCR knows what modes are. So having an editor with modes shouldn't be a foreign concept. But it's not just about having modes; it's how well thought out Vim is. Even though I've been using Vim for about 10 years (after trying many other editors and getting frustrated for one reason or another), I keep learning more useful things. I recently needed to edit lots of messy Markdown files for a friend. I knew macros existed but I never bothered to use them. Before I knew it, I was using a couple of macros that really cut down on the tedious work I had to do. Same thing with regular expressions—I knew about them but I had never gotten around to learning them. Combined with Vim’s composability, regular expressions gives you super powers. The other thing about Vim I've always appreciated—it's been around so long, articles and videos from 10 years ago are still relevant today. For example, back in the day, I used to watch Derek Wyatt’s Vim tutorials. Rewatching some of them today encouraged me to learn macros and regular expressions. When I recently watched this one (https://vimeo.com/15443936 https://vimeo.com/15443936), where he extracts plain text out of a messy looking XML file using regular expressions, I was like I want some of that. Any software made for people who take their tasks seriously—GUI or command line—is going to have a learning curve—I think it's exaggerated for Vim. But the payoff is well worth it. I just installed Big Sur on my Mac. Everything went smoothly for me, but not everyone was so lucky. Even if I had other compatibility issues, Vim just works. As long as I have a terminal, Vim and web browser, I can be productive.
- hankstenberg 6y agoThis probably common, but there's also people like me, who stumble upon a problem like having to edit text files via ssh and end up falling in love with it. I came to vim that way some 15 years ago and to emacs (evil mode) two years ago. Both are simply awesome, powerful programs that are not hyped often, but by learning them you hopefully learn something to use for decades to come.
- deleted 6y ago[deleted]
- __henil 6y agoSame, I have never seen anyone else IRL using vi[m]. It mostly started for me due to my potato machine and I like to live in the terminal. But I have not switched to emacs(evil mode ofc.) due to mostly philosophical differences and i completely just hate the defaults..
- btschaegg 6y agoThen I have one counter point of anecdata for you: I knew no one that was openly proficient in Vim when I picked it up. In my studies, I was already one of the two to three odd-one-outs who used Linux (>90% of students and professors didn't know anything besides Windows). I bought an ARM-based chromebook, installed crouton and... quickly discovered, that nothing besides Vim/Emacs came pre-built for it. There even wasn't a simple, official way to build Electron (so all those editors weren't an option, either)! So you could say, I only picked them up (I tried both) reluctantly. And I stuck to Vim-bindings because all other alternatives I know suck in comparison. The best I knew beforehand w.r.t flexibility was Sublime Text with its multiple cursors and regex searches, but that also pales when compared to Vim macros. Make of that what you will. I'm certain your point about mentors isn't wrong, but it doesn't explain it all, too. Also, if anyone could point me to similarly promising editing schemes, I'd be glad to have a look at them :)
- DerSaidin 6y agohttps://kakoune.org/ https://kakoune.org/ is a vim variation which I think would be much better pedagogically. More predictable, and much more help and feedback as you edit.
- emidln 6y agoI work at a trading company on builds and developer productivity. vi is known by all 600+ people that touch code or admin systems as a baseline. I think we mention the basics in our dev school. If you need to edit somewhere outside your personal host, your choices are basically ed/vi. IntelliJ dominates Java development at well over 90%. CLion is what we teach for C++, but it's roughly 50% CLion, 30% vim, 10% Emacs, and 10% other (vscode mostly, but I've seen basically everything). I'm not sure of our Python breakdown, but I suspect IPython Notebooks/Jupyter dominates everything. For random edits, I see about 50% vi, 40% vscode/sublime, 10% emacs.
- blackrock 6y agoOn Windows, use Bitvise. SSH into your Linux box. Use the file browser GUI to navigate to your file. Edit it in Sublime, or your favorite editor. Vi is ok for viewing files on a terminal, and for small edits, but it’s rather mediocre for any significant amount of development work.
- hiperlink 6y ago> Vi is ok for viewing files on a terminal, and for small edits, but it’s rather mediocre for any significant amount of development work. May I ask what prove this?
- 0x445442 6y agoOne of the statements I see a lot is that mouseless, keyboard only HCI is faster. But as far as I know, to the extent that any real studies have been done at all, this assertion is false. I don't have the references at hand but I think people like Alan Kay and designers at Apple would think it crazy to even suggest that a keyboard only HCI is more efficient.
- hiperlink 6y agoCould You please add a single example for faster solutions to modify several (text/source) files' contents at once with mouse and/or touchpad mainly (or any other already existing HCI interface)?
- gigatexal 6y agoYup. I use vim because a senior team lead used it and it was the unspoken defacto editor to use and as a (very, very junior) dev at the time it was engrained in my psyche. Stockholm syndrome aside I use it still because of all the inertia of learning I put in. I’m getting ever more productive with it so I’m sticking with it.
- Siira 6y ago- I learned vim/emacs on my own in my second year of undergrad. Because I am the kind of person who wastes time searching for the best tool for the job. - I have since tried to make more people use them, and pushed them as a TA of the advanced programming class. Nobody likes these stuff. They are useless for most people. The only real usecase is for sysadmins who need to quickly edit files remotely. - Even if they were somehow some gatekeeped holy grail that only rich people with mentors got; So what? If rich people with a lot of resources (including mentoring resources) can’t do better than us normal folks, then doesn’t that mean sth is fundamentally broken? More resources should translate to more knowledge/skills. The fact that in our current world the conversion rate is so inefficient (especially since these rich folk probably enjoy mildly better genes as well) is evidence that our current education methods do not scale. A corollary of which is that the US should spend a lot less on education which in the end doesn’t produce any results. (Compare the US expenditures with other countries.)
- mettamage 6y ago> but many of us hardcore Vi/Emacs users have had this knowledge imparted to us from a mentor. Thats probably why the use of Vi/Emacs is much higher in established tech environments (universities, big dotcoms), where there tends to be a tradition of mentorship than it is elsewhere My mentor was vimtutor. Seriously, learning basic vim takes 30 to 60 minutes with vimtutor.
- rStar 6y agoi think the gatekeeping involved is more personality type. learning vim/emacs is kind of like learning to play minecraft. you either have to really want to, or on the receiving end of peer pressure. as an emacs user who’s never gotten into vim, I definitely am going to try this ‘vim tutor’ someday when I have some time to kill.
- hyperpallium2 6y agovim as initiation ceremony - a near-death experience where the initiate is reborn as a member of an arcane sorcery guild.
- swiley 6y agoIME almost everyone who's "self taught" started with some kind of mentor.
- hrktb 6y agoInteresting take. I came from a CS background but our school was mostly in emacs land on the surface (e.g. newcomer CLI tutorials included it as an upgrade from nano, and nothing on vi) What brought vi to our attention was the holy war itself, and the sheer appeal to decide which camp we fit in. 50 years ago I think it’s a completely different story, but from the point BBS and shitposting were a thing, we got most information we needed on the net, including editor wars, linux distribution elitism, PHP and javascript and so many things. It can be a kind of indirect mentorship, but I think even today a lot of people go try vim for the memes (and stay or not for the efficiency)
- GreenWatermelon 6y agoCan confirm. "Can't exit vim" memes were what introduced me to vim. Though as a primarily windows user, I don't use it much.
- pnutjam 6y agoTry Mobaxterm on windows, it give you vim, grep, awk, xwindows and Linux Land tools in a nice single installation. Current versions of windows can do scp, ssh, rsync out of the box in the windows console, but I believe that is less then a year old and many people don't realize it.
- adembudak 6y agoActually the gatekeeper is what they call themselves as "mentor", not the tool users.
- pnutjam 6y agoI got into Linux from a networking background. Windows just didn't have the same network tools available, and they were all expensive. At the time I was mostly doing non-profit sysadmin work. It took me about 5 years to transition from nano/pico to vi/vim. I'm still learning, but I recently loaded Debian on a VPS I use and was surprised when visudo defaulted to nano. It seems so much less powerful and actually more difficult to use.