24 ms·
How Did Vim Become So Popular?
- amelius 6y ago> What I am trying to say that vim is an effort of over half a century of good idea accumulation, putting lots of effort into being backward compatible. I wonder what Vi(m) would be like if it were redesigned from scratch.
- StephenAmar 6y agoIsn't that what neovim is trying to do?
- BlackFingolfin 6y agoAFAIK it still tries to stay mostly compatible with regards to how it is controlled, doesn't it? So while the internals are perhaps new, the frontend is not. But I think Kakoune https://kakoune.org https://kakoune.org would fit the bill
- chongli 6y agoKakoune is definitely an attempt at redoing the vim concept from scratch. I spent a few weeks trying it out and attempting to get used to it. Ultimately, I came away from it feeling disappointed. I think the basic premise of multiple cursors editing as a preferred model (which is what Kakoune does) is flawed. Why? Because large-scale scale changes are the exception, not the rule. By emphasizing multiple cursors, Kakoune actively makes it harder to do the normal thing people do in a text editor: jump around a file and make specific edits to individual lines. Instead, a bunch of normal movement commands (such as forward and backward search) leave extra cursors in your wake, forcing you to press an extra key to dismiss them otherwise you'll get erroneous edits that might not even be visible from where you are in the buffer. This is not a good thing. The other basic premise that Kakoune addresses (that vim commands lack visual feedback) is not even an issue for experienced vim users who type commands quickly from muscle memory. The edits happen when the command finishes and you don't get distracted by intermediate results. For global substitution, you can always append the `c` flag to add a confirmation prompt to each substitution. That alone obviates much of the motivation for Kakoune's model.
- avbanks 6y agoIf you stuck with it long enough do you think the multiple cursors would have given you an increase in productivity over vim? Like maybe it has a high learning curve (like vim).
- chongli 6y agoI don't think so. I don't think vim was in any way lacking in productivity. I'm one of those weird people that actually really likes using plain vi though. I actually own the book [1] and I've read through it several times, trying to learn as much as I can about vi and ex commands. There's so much power there that a lot of vim plugins turn out to be unnecessary. Others have tried kakoune and really loved it. I don't understand it. I really tried to figure it out, I just don't grok it. [1] https://www.oreilly.com/library/view/learning-the-vi/9780596529833/ https://www.oreilly.com/library/view/learning-the-vi/9780596...
- jasone 6y agoI switched to kakoune from vim in early 2020, and I really like it (previously: emacs 1994-2004, vim 2004-2020). It's worth prefacing what follows by saying that I heavily relied on the visual selection features in vim. kakoune provides a limited orthogonal toolset that composes extremely well. After a week using kakoune I felt at least as confident with its command language as I did with vim's after years of use. Aside from a few vim plugins that were super helpful, I didn't miss anything after transitioning, except for the 'R' command (and to a lesser extent proper integration between the 'r' and '.' commands). I worried that kakoune's multiple selection paradigm wouldn't scale well, that it wouldn't be routinely useful, etc. On the contrary, I use multiple selections heavily, often as a more ergonomic alternative to recorded macros, constantly for rectangle-based operations (whether multi-line editing, indenting, ASCII art creation, whatever). Oh, for you tmux lovers out there, kakoune integrates amazingly well. All of its multi-window functionality directly uses tmux panes, with a server application (think emacs-server) tying everything together. In terms of ecosystem, vim is much richer. But kakoune is a practical, beautifully designed tool.
- 6y ago
- smabie 6y agoProbably something like spacemacs.
- smitty1e 6y agoEmacs + vim really are the peanut butter and chocolate of getting stuff done.
- smabie 6y agoI really want to give spacemacs a try, but unfortunately I've just been using traditional emacs for far too long. vi does seem to have a much better editing model than emacs. The tools Emacs has for buffer navigation and editing have always struct me as incredibly primitive.
- taude 6y agoI've recently blown away my several years old custom Emacs config and started over with vanilla Doom Emacs (it's supposedly a faster version of Spacemacs, but I don't really know, I just took a stab and grabbed one of them). I spent a weekend doing some VIM tutorials and writing down common key strokes of things I do all the time, and then on a Monday, it was all VIM navigation. A lot of your regular Emacs meta-stuff will still work, and for that, you can slowly start replacing with the spacebar-b key stroke for your buffer management, spacebar-p for projectile, etc.... Here's a couple of the videos I watched: 1) https://www.youtube.com/watch?v=dr_iBj91eeI https://www.youtube.com/watch?v=dr_iBj91eeI 2) I've only watched a couple of these for the topics I'm interested: https://www.youtube.com/watch?v=rCMh7srOqvw&list=PLhXZp00uXBk4np17N39WvB80zgxlZfVwj https://www.youtube.com/watch?v=rCMh7srOqvw&list=PLhXZp00uXB... 3) for common VIM, I went with this: https://thoughtbot.com/upcase/onramp-to-vim https://thoughtbot.com/upcase/onramp-to-vim 4) Recently, I found this guys short six-part series that gets you navigating around VIM fast, but he's an acquired taste: https://www.youtube.com/watch?v=H3o4l4GVLW0&list=PLm323Lc7iSW_wuxqmKx_xxNtJC_hJbQ7R https://www.youtube.com/watch?v=H3o4l4GVLW0&list=PLm323Lc7iS... There's still some things I like better about Emacs navigation and there's a lot I like about VIM navigation. I prefer Emacs crtl-a and ctrl-e for navigating to front and end of the line (instead of $ and ^, which is an awkward shift+number key on my keyboard). However, in Doom Emacs (likely Spacemacs too since I believe they both support Evil-mod) if you're in Insert Mode, most of your old Emacs navigation will still work, so this makes it a decent crutch for transitioning.
- boogies 6y agoI've been loving vis¹, a hybrid between traditional vi and sam², a text editor Rob Pike designed from close to scratch. (Edit) I learned vim a little bit over a year ago, switched to neovim soon after, tried kakuone for a few days and didn't like losing so much muscle memory because of the verb-noun order reversal, switched to vis a few months ago and don't plan to switch back. 1: https://github.com/martanne/vis https://github.com/martanne/vis 2: https://en.wikipedia.org/wiki/Sam_(text_editor) https://en.wikipedia.org/wiki/Sam_(text_editor), http://sam.cat-v.org/ http://sam.cat-v.org/
- yjftsjthsd-h 6y agovis comes to mind (https://github.com/martanne/vis https://github.com/martanne/vis), although perhaps something even more aggressively plugin-first would be even better
- haberman 6y agoI hear good things about https://kakoune.org/ https://kakoune.org/. But I have 20 years of muscle memory for vi keybindings, and they're well-established enough that you can even use them in other editors like VSCode. So I'm wary of training my fingers to do something else that only works in one editor.
- Symmetry 6y agoVi came about before CUA. If I was to design it nowadays I'd use 'c' for copy in normal mode, 'ctrl-c' for copy in insert mode, and keep that pattern as far as practical to ease the learning curve for people new to the editor.
- okasaki 6y agoProbably because it was the default editor in a bunch of Linux distributions.
- luxurytent 6y agoIsn't Pico the usual default?
- tingletech 6y agoon more consumer grade distros I've had to `export EDITOR=vi` before to get vi to come up for things like `crontab -e` and for `git` messages. But it is the default on most systems I've come across personally.
- wadkar 6y agoI have seen nano to be the default for most debian and fedora derived distributions from early 2000s. Not sure if things changed in late teens. Or maybe I am misremembering things.
- luxurytent 6y agoI always confuse pico and nano, tbh.
- asveikau 6y agoAnd that because vi was present and popular on commercial Unix.
- saagarjha 6y agoI haven't seen it be the default, but vi is part of POSIX so it's omnipresent.
- pphysch 6y agoIt was there, and it was (and still is) good enough.
- aarong11 6y agoBecause nobody knows how to quit
- TenJack 6y agoAh early web development nostalgia.
- jdofaz 6y agocontrol-z killall -9 vim
- hnzix 6y agoYou joke but this is literally how I used to quit vim as a kid because I'd accidentally press Windows undo and didn't know the 'fg' command existed.
- willcipriano 6y agoIsn't that what the big button on the front of the machine is for?
- quyleanh 6y agoYou mean this one? https://github.com/caseykneale/VIMKiller https://github.com/caseykneale/VIMKiller
- quyleanh 6y agoTrue =)) And then this repo is up: https://github.com/hakluke/how-to-exit-vim https://github.com/hakluke/how-to-exit-vim
- ricksharp 6y agoMy first few times in linux after trying to read a file: Ctrl+C esc esc Ctrl+c Ctrl+q What is this! What is going on!?! 15 minutes of searching on my phone later, q...
- 6y ago
- tingletech 6y agoin TRS-80 BASIC, you could go `EDIT 100` and bring up a line 100 in a line editor, vi sort of reminded me of that when I was learning it something like 25 years ago. It is still my main code editor.
- steveeq1 6y ago25 years ago was 1995
- tingletech 6y agoyea, I started learning vi around 1993, but didn't really get good at it till 1995.
- mtippett 6y agoWe also need to understand that a subset of vi features is part of the POSIX standard, so any POSIX system will need to have "vi". vim is the logical choice there. So as a result vim has become the reference implementation for the POSIX vi featureset.
- catalogia 6y agoAll of vi is specified by POSIX, but vi is only a subset of vim.
- moonchild 6y agoRight, but vim is a popular, easy-to-package implementation of vi.
- smhenderson 6y agoAgreed and if you somehow really need strict POSIX compatibility than Vim’s compat settings make it behave almost 100% like traditional vi.
- ur-whale 6y agoTo me at least, the answer is and always has been: speed.
- Bang2Bay 6y agocapability as well. In which other editor (other than vi/vim series) can you find and replace a string in a particular range of lines, and go to the 3rd occurrence of a letter in a line and so on!
- halotrope 6y agoFor me it is being able to efficiently navigate a file without leaving the home row (Gotta learn touch typing first). Once you understand the commands follow a composable grammar it is really like a superpower for dancing around text. „Go down 5 lines, move right two word, replace the contents of the brackets“. I don‘t use the actual editor all that often but have vim mode enabled in all my „real“ editors like VSCode or JetBrains Suite. I am often wondering how people do edit source efficiently without vim mode but I am too shy to ask.
- gt2 6y agoLong time vim lover here as well, but I guess I hear often that for a lot of folks, input isn't the bottleneck.
- johannes1234321 6y agoI don't see it as a bottleneck, but focus. Not searching for the mouse or something or stretching fingers to Edit with Meta Alt Control and Shift etc. but fingers where they feel comfortable efficiently browsing the files.
- halotrope 6y agoYes I hear that as well. IMHO most of the time is thinking but when I want to move stuff from my brain to my screen I prefer maximum bandwidth and not having to consciously think about it. To each their own I guess.
- jtr1 6y agoTotally. I also find that using it, I'm more willing to externalize my thought process, put code on the screen to reason about it and quickly scrap or modify it if it doesn't work.
- dbtc 6y agoI've been using vim for about 7 years and for me it's not so much about the efficiency as it is the pleasure of commanding (programming!) a powerful, wellmade tool.
- Spooky23 6y agoBack in ye olden tymes, you could count on some variant of it being everywhere. It’s lightweight, ubiquitous, and powerful. It’s way more powerful than default Windows tools. There’s a steep curve, but if you can handle it and learn a couple of things (%s//g) being one of them, you’ll get people hooked. Then the olds shame the young staff to use it. The muscle memory aspect is significant too. I’m a suit now, but can still work magic with Vi years later. The faculty at my college pushed emacs hard, but customizations are missing on foreign machines, and the key combos were too awkward on normal keyboards (for me) and the skills wore off.
- erklik 6y ago> Back in ye olden tymes Not just olden times. It is easily found on literally any Linux or Mac system.
- slim 6y agoreal answer : because redhat and debian had replaced elvis with vim as the default vi early on. I don't remember the exact drama, but maybe something to do with the license.
- enriquto 6y agoelvis was great! The simple monocrhome color schemes were beautiful, and it had a snappiness (even on a 486 back then) that I'm still missing nowadays.
- codezero 6y agoI know how I first encountered vi... it was probably 1994 or 1995... (Wiki looks like maybe 1994 was first intel release, so that tracks) - and I had only used Linux up to that point and had never really used an editor other than pico (now nano, which was the editor for the pine email client!). I thought playing with Solaris would be "cool" so I installed it and couldn't get it on my network because I needed to edit the /etc/resolv.conf to add host resolution, but there was no pico editor! I ended up digging into manual pages to figure out how to use vim, and over the course of getting the system set up I got pretty comfortable with a lot of the patterns vim let me make faster, they are mostly things I might run in a shell like grep or awk, but I can do it without shelling out, so that was a bonus. edited: now that I think of it, I bet I was not using vim, just vi - so the relevance to this article might not be quite on.
- kevarh 6y agoVi (and ed) are the only text editors required to be included in the POSIX spec. A base Unix (and most Linux) installs will have some version of vi or vim installed by default. If I'm working on someone else's box this pretty much guarantees I can edit files with my basic vi knowledge without having to install a different editor.
- jcfields 6y agoThat's why I learned vi initially years ago, because I was told it was the only editor that would always be available anywhere you went. I only ever use it in ssh sessions these days, but I still feel like learning how to use it has paid off many times. I was playing with Haiku recently and was surprised that vi or vim wasn't included in its base install. Granted, Haiku (like BeOS before it) doesn't ever claim to be a Unix-like or POSIX-compliant system, but I found the CLI environment to be very Unix-like overall. I guess it's a testament to the ubiquity of vi that it never occurred to me that it wouldn't be there. (If anyone's curious, emacs is also absent but nano is there.)
- waddlesplash 6y agoHaiku does actually claim to be POSIX compliant generally, and is certainly UNIX-like. We don't include "vi" in the base install, though.
- tennineeight 6y agoThat also happened with NixOS. But then again, not really surprising for something that breaks FHS.
- boomlinde 6y agoVi is not strictly required; only if POSIX2_UPE and POSIX2_CHAR_TERM are defined.
- bsdz 6y agoSomething I've come to rediscover is how good vi/vim is on a slow network connection. Our sharp networking team route me from London to Sydney so I can remote back to my London PC. Seeing what you type several seconds after you typed it is reminiscent of the 90s and dial up connections. Having familiar vi keybindings in so many applications these days has been a productivity saver.
- microtherion 6y agoOne editor which used to be great at this is sam, which was explicitly designed to work across slow links, by being split into a frontend running locally, and a backend being run on the target host: http://sam.cat-v.org http://sam.cat-v.org
- earthscienceman 6y agoAn alternative to that is to run mosh and it will make assumptions about where the characters should be going.
- shmoogy 6y agoMosh is so good if you commute and work via LTE
- RMPR 6y ago>Having familiar vi keybindings in so many applications these days has been a productivity saver. There's even a list[0] for that, Vi is the beast. 0: https://vim.reversed.top/ https://vim.reversed.top/
- MaxBarraclough 6y ago> Our sharp networking team route me from London to Sydney so I can remote back to my London PC. Is there are story here? This must annoy the whole office!
- tenebrisalietum 6y agoDisappointed the article went straight from punch cards to video terminals without mentioning teletypes. > Having that thing show up on computers in those days was pretty tricky, and some considered it a resource hog. Well in the 60's and 70's, you didn't necessarily even have a display, you might be using a physical teletype. `ed` is built for that. Even when you had a display, it could be slow. The VT05 from 1970, only went up to 2400 baud. And if you were using a modem back then I think you were definitely most likely connected at 300 baud or below.
- reaperducer 6y agoOr the display might be a single line of 16-segment LEDs for interacting with the machine, and "output" was on paper. Another reason to keep the visuals to a minimum.
- NateEag 6y agoPerhaps my favorite video on YouTube is this glorious footage of someone hooking a 1930s teletype up to a computer running Linux: https://m.youtube.com/watch?v=2XLZ4Z8LpEE https://m.youtube.com/watch?v=2XLZ4Z8LpEE Watching it for the first time is what finally made ed click for me. And yes, I was disappointed that the author clearly didn't understand why ed has the UI it does. It's about the teletype, not the computational cost of having a WYSIWIG UI.
- koolba 6y agoThat video is amazing!
- klysm 6y agoI desperately want to set up a teletype on my modern desktop - there’s just something so awesome about electromechanical interfaces with a lot more mechanical than electro.
- NateEag 6y agoAgreed. I have some mechanically-minded young sons who I'm hoping to introduce to computing by way of a teletype of some sort.
- duckfruit 6y agoSpeaking personally, I've been a professional developer for almost decade and even in my relatively short career I've seen a lot of technologies come and go. I was reluctantly roped into it by my first boss, an enthusiastic Vim advocate. And since, almost nothing else (save for maybe git) beat learning vim from a return on investment perspective. From the default mac OS installation to some old Fedora box that has not been patched since the early 2000s, Vim (or its simpler brother Vi) has always been there! And once I got used to it, I couldn't really imagine using computers any other way. I'd go so far as to say that the 'home row' concept of vim is the ergonomic ideal of keyboard based computing, and I now try to mimic that behavior everywhere -- the vimium extension in chrome, various vim plugins for vs code and sublime etc. If you're on the fence, I'd urge you to give in!
- stragies 6y agoSame here, and then i discovered EVIL, the vi layer for emacs. The best of all worlds: Vim text manipulation grammar over the emacs engine.
- ed25519FUUU 6y agoAlas, the emacs install base is fraction of vi/vim.
- cyberbanjo 6y agoI've always assumed the opposite with how people say emacs is a nice OS and poor editor... What does Vim over emacs?
- jrumbut 6y agoIt's not a comment on quality or usefulness, and only indirectly its resource consumption (vi/vim consumes less than emacs in its default configuration), it's really about standards. vi and the ex editor language are part of the POSIX standard and were around early in the history of BSD. See the history here: https://en.m.wikipedia.org/wiki/Vi https://en.m.wikipedia.org/wiki/Vi For a well worn joke on the subject, "Ed is the standard!": https://www.gnu.org/fun/jokes/ed-msg.en.html https://www.gnu.org/fun/jokes/ed-msg.en.html
- vowelless 6y agoVim (bindings/modality - ESC mapped to CAPS) are good for my hands. I don’t get tired. Before vim my hands would get tired after some time. Now it feels like I can keep going forever. Now I use vim for everything and it’s bindings in my browser, email client, todo list app, etc.
- Koshkin 6y agoEverything I need to know about vi is contained in the following two quotes from Bill Joy, its creator: ... vi was written for a world that doesn't exist anymore. ... programmability and the modelessness. Those are two ideas which never occurred to me.
- teruakohatu 6y agoGiven that vim has never been more popular, I think those quotes are of historical interest only.
- julianeon 6y agoBecause people work with virtual servers a lot these days and vim is the easiest editor to throw on there and use without changing the defaults, is my answer.
- NomDePlum 6y agoI'd classify vi (and vim) as originally being ubiquitous not necessarily popular. They have been a necessary part of my career since the start. I'd assume that is true of a lot of people here.
- linuxdaemon 6y agoEvery time I tried a new IDE I always looked for the setting or plugin that makes it work like VI. I eventually decided instead of making my IDE like VI I'd use vim plugins and make it my IDE. I think this was the page that started me down that path: https://realpython.com/vim-and-python-a-match-made-in-heaven/ https://realpython.com/vim-and-python-a-match-made-in-heaven...
- dalfonso 6y agoI haven't found a way to test/debug in Vim that's as good as PyCharm. With PyCharm, after I write a test I hit ctrl+shift+r and it runs. I've been meaning to try pudb, seems like it's the most similar in terms of a visual debugger.
- durandal1 6y agoI've been a vim user for almost two decades, but recently my usage has increased dramatically due to the proliferation of high quality LSP servers that plug in through CoC.nvim. It really has removed all the maintenance hassle of keeping your language environments up to date.
- bashinator 6y agoNo other text editor has so much in common with playing a musical instrument. Everything you do eventually becomes muscle memory; an expression of grammar rather than the execution of a procedure.
- ecopoesis 6y agoI was an emacs user until I had a summer internship where I had to constantly rebuild SunOS and Solaris boxes. No emacs in the default install and no working networking. But vi was there and it became my default everywhere.
- wyclif 6y agoAlmost the same here, except I skipped the emacs part and went straight to vi because I was working with Sun hardware.
- emerged 6y agoI was hoping some of you would give good reasons not to use it. But now I have to go dedicate time to become fluent since it is clearly worth it.
- phendrenad2 6y agoSystem administrators started using it because it's one of the best non-GUI editors (along with emacs), so it had this mystique around it. Those who knew VIM/emacs were surely hackers! And so programmers picked up on that and using VIM/emacs is a sign that you're cool.
- norenh 6y agoI started using emacs in the early 90s and got really into it during uni, studying CS a couple of years later. In mid 2000s I ended up in sysadmin work in a mixed Unix-environment (Tru64, AIX, Solaris, Linux) in a group where all other used (some Vi(m)-variant). I tried to get work done with emacs but failed due to various special characters always getting mangled in different ways over different terminals on different platforms and after a couple of months I gave in and started using Vim instead. I finally understood that Vim had two essential properties that other editors lacked in this case. 1) It works well in environments where special characters will get mangled in various ways over different platforms. As long as ESC works, vim will do the work just fine. 2) The modes makes it very reliable to use when you have to make specific operations in exact places in text-files. This alone should make it the goto editor for sysadmins where you often have to make just a few character changes to a configuration file and be sure you do not change anything else. A third reason when starting the work was also that Vim came by default on all out platforms so we knew it existed there and it was a nightmare trying to get approval for extra packages to be installed, but the first two reasons are what keeps me coming back to Vim whenever I need to do some text-file surgery.
- CalChris 6y agoIt's nice that ESC works but I also want : ex-mode to work as well. It's why I continue to use MacVim rather than Visual Studio Code. VSC's vim emulation is pretty good ... except for ex-mode and I use that a lot. So I go back to MacVim and stay there.
- greggyb 6y agoI've heard good things about a (maybe experimental?) feature to use neovim for VSC's ex-mode. Have you tried that?
- aspaceman 6y agoThink you still have to go to some trouble to activate but I'm pretty srue this is supported officially now. I think you just point the Vim extension to a Neovim binary, and you can have Ex commands and such using an actual Vim runtime. Not sure though
- aronpye 6y agoBecause one does not simply exit VIM.
- stephc_int13 6y agoIn my opinion, the best feature of Vi(m) is its ubiquity. Also, it is fast and reliable. That said, I never bothered learning many commands, only the very basic ones, I spend much more time thinking than typing anyway and I always felt the productivity gains to be marginal.
- lordleft 6y agoIf you're on a linux server, it almost always has vi(m). It's worth learning for that reason alone :)
- stevens32 6y agoI knew vim was old, but had no idea the lineage traced back 50 years. Vim has always felt like an exoskeleton suit compared to the spaceship dashboard of full-fledged IDEs. You can also add plugins to gain most of the functionality of an IDE. It does have a blood price, some days I spend just as much time hacking on my vimrc/plugins as the actual code I opened vim for.
- JJMcJ 6y agoComes with every *nix distribution. Fast to start. I use Emacs for programming but if I have one single file, like a config file, that needs a quick edit, use vi(m) because otherwise I have to either: 1. Go to my open Emacs and navigate to the location of the file needing the quick edit 2. Open a second Emacs instance, and hope I don't lose the desktop settings for the "real" instance. Especially if the file needs to be edited sudo. If there is a way to open a file in the existing Emacs instance without navigating, I would be glad to use it except for sudo. The way that "firefox some-local-file.html" will open up that file in the existing Firefox instance.
- b5n 6y agoI'm confused by your workflow. Why are you opening a second Emacs instance? In Emacs you just C-x C-f /path/to/config, for sudo C-x C-f /sudo::/path/to/config. Starting location will be home, or the parent of the active file (if the active buffer is an editor).
- dnquark 6y agotl;dr: terminal -> vim == less context switching Even though I live in Emacs, I frequently use GP's workflow as well. For me, it's often the fact that I am already working in the terminal when I need to edit the config, so going to Emacs is a context switch. Moreover, I often fist do a cd /path/to/config; once there it's trivial to do vim foo or sudo vim foo. I have an alias that can send that file to emacsclient -- but again, it takes me away from the terminal, and will not work with sudo. Also, I've tried possibly every emacs package that helps with path completion, but they all seem to get in the way when I already know exactly what I want. Vanilla bash completion (and don't forget about fzf!!) are a better experience for me; YMMV.
- rgrau 6y agoWhy is vim so addictive, and somehow it's difficult to explain to non vim fanatics? I think it's a reification of the process of walking through a text file and doing stuff to it. A concrete way to talk about processes onto text files. Some feel it is strictly superior to GUIs because you can get ahold of it. you can write it down, put it in a postcard, and you have a handle to it. You type it again and it works. there's no syntax or fuzziness or stuff that can go wrong (TM). Next question: Can you ahold an algorithm in your head? in the same concrete way you hold 'yypVr-'? I'm lately quite interested in Array Languages and I'm reading some snippets of Apl/J/K. And the feeling is the same. Everything else looks so wasteful and error prone like the point-and-click looks to vimmers. Example: Shuffling a vector – breaking ⍵ down into ⍺ pieces from which another vector is built by merging. E.g. if is 'abcdefghij' and is 3, the pieces are 'abcd', 'efg', and 'hij', and the result is 'aehbficgjd': ⍵[⍋⍋(⍴⍵)⍴⍳⍺] The ergonomics are pretty different from what we're used to, but there's definitely an emergent property there. It's not just "it's shorter to type". PS: I'm an emacs user (evil)
- longtimegoogler 6y agoI don't get vim. I use emacs primarily and I know to get around in vim but I've tried several times to see what the fuss is all about. Modal editing just doesn't work for me. It seems like a must to remap the escape key at the very least.
- namuol 6y agoCould it be Stockholm Syndrome? It was for me.
- pugworthy 6y agoOne little truth of VIM if you're a keyboard fan: you can do a TON of things with a 60% keyboard. No arrow keys? No problem.
- ricksharp 6y agoDoes anyone have a good video comparing vim speed coding vs vscode using built in editor features? I’ve been using vscode for years and the YouTube videos that demo vim features are shallow (like how to enter a blank line - really?). I can do the same thing I have seen in vim videos without memorizing a bunch of strange key bindings all while being able to edit code instantly without changing modes. I would love to see a fair comparison between someone using vim at 100% and someone using vscode at 100%. Of course some vscode shortcuts might not be fair (like F12 to jump to definition, F2 to rename every usage, etc.) But even in raw editing: With vscode, I can do multi-line editing, I can navigate quickly, jump to specific words, etc all very fast. If there is no video like this, would anyone be interested in a race?
- cat199 6y agocopy 10 lines from the current position into buffer q, go to the start of function jnk, copy 5 lines into buffer w, jump to line 10, paste contents of q, contents of w, and contents of q sequentially one after the other: "q10yy /jnk "w5yy 10G "qp "wp "qp now, go to the start of the document and indent the next 20 lines by 10 spaces: 0G .,+20s:^: : ok great, now find JUNK and replace 'a1' with 'A1' in the 15 lines that follow: /JUNK .,+15s/a1/A1/g probably not as efficient for multi-file refactoring, but for raw 'drag race' style text munging, everything is there, loaded in muscle memory, and under the home row of your keyboard so you don't have to lift your hands at all.
- lostmsu 6y ago> now find JUNK and replace 'a1' with 'A1' in the 15 lines that follow The real scenario is usually to replace, for example, in a function block. How do you do that? Counting function lines seems like a non-starter.
- jcranmer 6y agoHighlighting the initial { of a function and then typing 'va}' ('v' for entering visual mode, and 'a}' moves to the matching close brace. Similar commands work the [], (), and <> pairs) selects the entire function body. From there, a regular s command will operate on the entire selected text.
- Tiltowait-- 6y agoFuck vim. vi 4 lyfe!
- orzi 6y agoBecause noobs can't install anything and set $EDITOR ;)
- jdlyga 6y agoThere used to be a lot more parity between Vim and Emacs. But nowadays, it's swung a lot further towards Vim. Any ideas why?
- pvg 6y agoI think a significant factor is that Vim is a better managed and maintained project. Emacs's difficulties in this regard are decades-long and songs are sung about them.
- oska 6y agoRegarding the picture of the woman standing next to the pile of punch-cards which is, annoyingly, uncredited, I have found it credited in this article [1] as: > Programmer standing next to the SAGE computer's control program > Image courtesy the Computer History Museum and the MITRE Corporation [1] https://kiranbot.com/post/2016-07-27-punch-cards/ https://kiranbot.com/post/2016-07-27-punch-cards/
- notacoward 6y agoI really need to show that picture to my in-laws. They met while working at MITRE during that era, and there's an excellent chance they knew that woman.
- oska 6y agoCool. Maybe come back and tell us her name, if they know it.
- enahs-sf 6y agoVim serves a very specific niche. Want to edit files on a remote server? This is the default option. Need to open a massive text file? Vim has got you where sublime, vscode fail. I switched from emacs after college and haven’t looked back. Plus everyone constantly ridiculed me for using it.
- murat131 6y agoOver the years I've used a lot of editors on unix shell; ed, jed, joe, pico, nano, emacs, vi(m) and I think vim is the best editor on shell for its performance, speed, and mobility. It's a rational choice for SRE/DevOps type engineers. I still sometimes use nano for very quick edits especially when having no physical Esc button frustrates me. However if mobility is not a concern, in other words if I'm editing files on my own environment (say my mac), I'm running Emacs.
- RMPR 6y ago>especially when having no physical Esc button frustrates me It's not uncommon in the Vim world to remap Esc to CapsLock
- ulisesrmzroche 6y agoI’ve been using Vim professionally for like ten years now and I can’t tell you what benefits do I get out it exactly. I still use a mouse and I don’t see what’s so bad about it.the whole home row argument has never been convincing.
- buzzerbetrayed 6y agoIf you’ve been using Vim for 10 years, and still use the mouse, then you haven’t really been taking advantage of the power of Vim. Perhaps that’s why you don’t see much personal benefit?
- ulisesrmzroche 6y agoNo, I’ve been posting here for that long too. I haven’t been living under a rock. I got my own vimrc and everything, it’s just not that useful in practice.
- pengaru 6y agoThis is like someone saying they've used a DSLR professionally for a decade and couldn't say what benefits they get out of it over a point and shoot because they've never done anything other than leave it in automatic mode. You owe it to yourself to explore and embrace the power of your tools as a professional. Vi(m) in particular requires a deliberate effort from the user to learn its features, because of how it stays out of the way by design. It's not trying to be discoverable at the expense of experienced users. Decades ago I tutored someone taking a C++ course who claimed to know vi and insisted on using it for the sessions. They knew how to use vi enough to be a notepad replacement, it was brutal to watch how much time they wasted neglecting to use any of vi's features at their fingertips. If you're navigating with a mouse or arrow keys, and treating vi as no more capable than notepad, you're not really using vi.
- ulisesrmzroche 6y agoI’m pretty good at using vim, There’s really nothing I don’t know, and I’ve watched tons of courses and read tons of tutorials. I got my own vimrc like plenty of people. But People still use macvim, and hit Apple S, and Use the mouse, I’m hardly the only one. See Yehudas “everyone who tried to teach me to use vim was wrong” When I was younger I cared more about it, but it’s all just yak shaving. What there isn’t are obvious benefits to keeping your fingers in the home row, just vastly overhyped anecdotes. By the way expert photographers will tell you that it’s not about the tools and that today’s phones are good enough. That’s one of the things that are annoying, I’m the dumb one for putting a dissenting opinion, but no one is willing to explain why using the mouse is worse, and definitely not in a way that satisfies me
- lmiller1990 6y agoInput is not the bottleneck. I don't have a good reason why, but I love editing text with Vim. I enjoy learning complex tools. Maybe that's why. I am also a JS developer, I guess it all makes sense now.
- schwede 6y agoVim isn’t just about optimizing input. I would say it’s for optimizing navigation and editing patterns.
- Random_ernest 6y agoTo me it's not about input being the bottleneck, but about Vim having a modular grammar, such that my brain can stay in "problem space" instead of "how do I edit the file space". It allows me to have a deeper level of focus.
- ggm 6y agoDistressingly little comment on mode/modeless difference. There are reasons people want to be in a modeless editor, and there are reasons people want a distinction between insert mode and other modes. The primary drive for vi and emacs was the emergence of full screen editing? Sure. That was true, I lived across this window. But.. it was possible to choose to get a 'page' worth of view of your teco or ed or SOS edit session, and return to a sense of being mid-page, if you wanted. It took some finicky commands but once you decided you needed a screen of context there was a way to do it, and not lose your point in a line. (certainly, not lose the line you are "on") For a DECwriter, this made very little sense to use frequently. It was best not to have to force it to print a lot of paper. For a slow ADM3/5 or VT100 it made some sense, because the repaint speed was a major pain. Once you had sufficient responsiveness (2400? I would say that was about it. 4800-> was a no-brainer) then the repaint delay was low enough it was worth the investment. There was another universe: Half-duplex. We just pretended it didn't exist, and that local mode entry didn't exist and designed systems not to even think about it. Odd, when you think that X10 was primarily about converting from server side to client side burden, which is local mode. (server/client being reversed concepts in X10/X11 its confusing to talk about this, local being the key point) I think vi took off, because a substantial proportion of the world did not want to think programmatically in LISP and wanted the reassurance of a moded editor, to do things. Emacs took off for people who wanted to hack the editor, more than the limited vi macro facility, and who wanted to be "in" the editor all the time. VI users wanted to distinguish being "in" the body of text/code and being in 'move around, and think about it' states of mind. Had I turned left in 1979, I would have walked into a teco training room, and naturally been Emacs ever since. I walked right into a TOPS-10 SOS world, and emerged through PIP into ed and then ex/vi and then vim in the late 201x era. I personally preferred Keith Bostic nvi for a long time, and I still miss some of its innate simplicity. I was a late arrival in colourised editors. (this is not an analogy btw: it was literally random choice which room of two you went into in the first Year CS degree training for computing. We all used punched cards before this, and it was a DECwriter lab with very preciously guarded pre-ANSI terminals, too few to go around. Some of the DECwriters were converted to greek for APL, and we had a tectronix vector display which could be used as a text display device too, if you could stand the burn-in) What often gets missed, is MIT, X and the emergence of EMACS key bindings as the go-to for line edit in the web. This and bash, had huge influence So we now have a world of VIM users using classic VI bindings in editor, but using EMACS to do all line edit on the shell an d in the omnibox, all because of MIT and the X windows system and how that influenced graphical display norms when the first browsers emerged.
- ausjke 6y agoover two decades I used emacs, eclipse, geany, nano, even jetbrains whole bundle purchase plus a few other IDEs, I always return back to vim, recent years I have settle down on vim for good with a full IDE in terminal, I have code auto completion, syntax highlighting, snippets, linter, auto fixers, debugger for all the languages I care, it's just so beautiful and productive as well as powerful and lightweight, can't live without it.
- Timpy 6y agoAt the interview for the position I'm in currently, the senior programmer I was interviewing with didn't pay much attention to my resume. He mentioned that he saw my .vimrc on Github though, and we chatted about that and other linux things. I think it was just a small connection in a big scheme of things, but it helped.
- VectorLock 6y agoEver year or so I look at the nice sugar that things like VScode or other IDEs have and think "it has vim mode, those nice things would be good to have" - autocomplete, things like that. So I try the IDE and I get so tired of _in the way_ it gets that I just go back to vanilla Vim. Then I think "maybe I'll try these IDE like plugins for Vim" and get so frustrated by the Vim plugin system that its back to vanilla Vim pretty quickly.
- axiom92 6y agoI was wondering what language do you code in? I am a proficient Vim user but the more I use VScode for writing Python code, the harder it gets for me to justify using Vim for serious development.
- colordrops 6y agoIf you use the right plugins + lsp, there's nothing you can do in vscode that you can't do in vim. Just requires a lot more upfront work, but you can check the config into a git repo.
- reidrac 6y agoThe problem is finding the right plugins, but it doesn't require that much time (at least in Linux/Mac; Windows may be a different experience). I use "IDE features" when writing Scala: vim-plug first, then vim-lsc + metals. The configuration of lsc is trivial (as in you can copy an example of less than 10 lines). After using this for a while, I replicated the same experience in Python with python-language-server (I install it with pip --user), and it was matter of 5 minutes to setup. Before this I was using syntastic + ctags, and that required much more work. May be is more work than getting the same functionality in VSCode, but it doesn't look a lot of work to me.
- VectorLock 6y agoPython mostly. VScode just seems to get in the way with a lot of things.
- 6y ago
- ryanmccullagh 6y agoShift+V is something modern editors still don’t get right. This is my favorite and most useful Vim command.
- deleted 6y ago[deleted]
- thrownaway954 6y agoHas anyone put together a interactive VIM tutorial?
- door99 6y ago:vimtutor
- dleslie 6y agoI used Vi, and then Vim, for a good 15y before I switched to Emacs. I made the switch because I had heard that Emacs let you manipulate your buffers with lisp as one would any other data in a programming language. I find I only really do that when using Org Mode or REST mode, but I'm still glad that I made the switch. The editor is ... mine. Mine in a way that a professional's tool should be an extension of themself. I've been thinking of trying evil, but I don't really miss the modal editing as much as I thought I would, and it's been another five to ten years.
- reactchain 6y ago> The editor is ... mine One of the things I like most about vim is that you can use it on just about any remote machine, and even if you don't have your own vimrc the default editor is still really powerful.
- dleslie 6y agoTramp mode lets me do that with Emacs, and I get to keep my custom environment.
- 6502nerdface 6y agoI think vim became so popular because its only real competitor is Generally Not Used Except by Middle Aged Computer Scientists. ;)
- Nginx487 6y agoRemembering days when I was a sysadmin, vim or even old-school vi was the default editor on literally every POSIX/UNIX system, and I had to deal with quite a variety of them - BSD family, Solaris (still Sun), AIX - some of them still not connected to the internet! Having advanced vi skills appeared handy in my situation
- thevagrant 6y agoI started using Vim about 10 years ago. I wanted an editor to force me to use the keyboard in a different way as I suspected it would ease my RSI. After using Vim as my main editor, my RSI went away. These days I've gone back to an IDE but I still use Vim for single file editing.
- jjice 6y agoI've been using Vim more and more in the past few months, but I still use VS Code primarily for a lot of my work. At work, I do a lot of Node/TS stuff, so VS Code just offers a whole wealth of tools that I'm already familiar with. I'm sure I could pimp out Vim to do it just as well, if not better, but I still enjoy VS Code. Where Vim shines for me is for creating and editing small files. I use vim for my journal, quick edits, and data wrangling when I need to get something into a nicer form (most often scraping links to pipe somewhere else). It's a great interface for editing temporary data. Also, knowing Vim if you ever need to SSH into a remote machine is a must in my eyes. Nano feels sluggish once you get a feel for Vim, and, as the article mentions, you can fine Vim almost everywhere you go.
- hannofcart 6y agoVSCode is very customisable. So you can make it behave exactly like your vim (+plugins) setup behaves.
- RMPR 6y agoNot quite, or maybe I'm the one not doing things the right way, when I tried to make VsCode behave like Spacemacs there was always these annoying things where you'll have the feeling that you're better off using the mouse: for example when you're editing, you can't close the sidebar without focusing it and firing Ctrl+E, I eventually discovered an emulation made by a bunch of people[0], it was great, but for things like Git, I still needed the mouse whereas in Spacemacs you can use the excellent Magit which is entirely keyboard focused. 1: https://github.com/VSpaceCode/VSpaceCode https://github.com/VSpaceCode/VSpaceCode
- patrec 6y agoNot true. VSCode lacks some very fundamental functionality, like proper (non-linear) undo and the vim plugin basically does not support any ex commands (other than s, which works different as well). Having said that, I think the VSCode vim plugin gives a quite good experience overall.
- krebs_liebhaber 6y ago
- diegs 6y agoi tried to switch to emacs+evil, but i can't bring myself to do it. partly because I'd have to invest a lot of time in getting an equivalently productive environment, but partly because of the following 1. vi is everywhere, and... 2. vi with no plugins is still super powerful, which is helpful on random hosts / coworker's machines / basically anywhere, and... 3. since vi is still so powerful out of the box, i only need a few lightweight plugins to close the loop and make the most powerful editor i can imagine needing. 99% of my plugin usage is fzf and ale w/lsp, which are arguably two very powerful plugins, but the cognitive overhead is very low, and at least among peers my editor doesn't seem to be slowing me down at all i would also pose the controversial opinion/hot take that using a less "powerful" (non-IDE) editor helps you write better code. humans can only fit so much into their working memory at a time. vim doesn't really let me do crazy refactors or jump through endless chains of class hierarchies (well, with lsp it can, but...). compared to my eclipse/intellij days (and codebases worked on by other people using those tools) i am forced to tame complexity by defining good module boundaries and abstraction barriers.
- fergie 6y ago"using a less "powerful" (non-IDE) editor helps you write better code" When you see what influential programmers use, its clear that a disproportionate number of them are on vim/emacs.
- RMPR 6y ago>99% of my plugin usage is fzf Even that can be handled by Vim ootb, just add path+=** to your vimrc and you're set, you can recursively :find pretty much anything in the folder where you opened Vim and you can even go fuzzy, for how it works in practice: https://youtu.be/XA2WjJbmmoM?t=493 https://youtu.be/XA2WjJbmmoM?t=493
- deleted 6y ago[deleted]
- pmontra 6y agoI started using vi in 1986, switched to vim and (mainly) emacs in the 90s. My setup now is emacs for local editing, vim for sudo vi system.config.files and when I ssh to a server. Actually vim had a larger share of users back then because there were not many other editors for UNIX and Linux. There are probably more vim users now but even on Linux I see many more people using VS Code. The problem they have is editing files when they ssh into a server. I usually suggest nano. Not many of them notice and understand the two lines menu at the bottom of the screen.
- spicyramen 6y agoHave been using vim for over 15 years and just a handful of commands have been enough for my needs. Insert Set paste Save Quit Search Undo I know there are plenty more but for me is more than enough
- scotty79 6y agoI grew up with norton commander so when on linux I'm taking mcedit over vim any day. :-)
- wangvnn 6y agosame reason that makes notepad, internet explorer popular
- liquid153 6y agoBecause it’s not emacs
- raxxorrax 6y agoPerhaps a mix of choice supportive bias after going through the pain of learning it and stockholm syndrome? Jokes aside, I don't really work with VIM but understand the concepts and have mastered basic usage of changing text files without too much effort. Never really coded in VIM aside from small scripts. But it is a dependable text editor that survived the ages. Most modern IDE will never reach this because they are far less dependable and far less wide spread. Installing VIM on your system never hurts.
- skohan 6y agoYeah I think ubiquity is a huge part of it. I think I'm at a similar level as you: I mostly use it for quick edits or when using ssh for example, but the fact that I know I will basically always have access to it makes it a good default choice.
- jiggawatts 6y agoI know I'm going against the popular opinion here, but I have never observed anyone using either Vim or Emacs to outperform a competent IDE user, especially Visual Studio or IntelliJ. I mean sure, if you think IDEs are just slow, expensive text editors with fewer keyboard shortcuts, then you'll be disappointed, but features like "navigate to any symbol by prefix", "find all usages", and "Ctrl-click to navigate to definition" have no comparable analogue in traditional text-focused, non-IDE editors. Not to mention visual debuggers, not to mention remote debugging! The VS IntelliTrace feature alone is worth the cost of the entire IDE. Visual Studio Live Share lets two people concurrently use the entire IDE at the same time, remotely: https://visualstudio.microsoft.com/services/live-share/ https://visualstudio.microsoft.com/services/live-share/ There's just nothing like any of this in Vim or Emacs. I mean sure, if you futz around with plugins, you might be able to reproduce some small subset of these features, but then you'd have wasted more of your time tinkering with the editor than actually getting work done. What I've noticed with a lot of tools that trace their origins to the UNIX world is the perception of speed. Typing many keys rapidly to trigger shortcuts feels like you're doing things faster than moving a mouse cursor and then clicking something, because there are more actions per second. However, objective tests show that even highly skilled users aren't as fast at completing high-level tasks as mouse-users. One study that shocked me compared wall-clock development times for a moderately complex puzzle problem. It was designed so that most people would have to debug the program at least once or twice. Participants could use any development environment and language. Among the fastest solutions were users programming in F# and C# using Visual Studio, at roughly 30 minutes for F# and 60 minutes for C#. People programming in languages like C, C++, and Java in typical Vim/Emacs environments took days or weeks to solve the same problem! Days! I've observed this effect with "command line jockeys" too, where they're absolutely convinced that bash is some power tool that nothing can hold a candle to, and then they take hours to solve some problem that's three clicks away in the GUI.
- hellofunk 6y agoVisual Studio (not the Code version, though some will include that as well) is arguably once of the best IDEs ever created, so you are not wrong. But often there are other issues. IntelliJ and its siblings can be very resource intensive -- many complain about the Clion launching your laptop fans, and its RAM usage, for example. And the UI of many IDEs has so much chrome everywhere, the UI often gets in the way for many. You can hide it and deal with it in some IDEs, but not all. There are just a lot of things to consider when selecting an IDE. For example, Emacs avy-jump is a really neat plugin (similar things for vim as well), but you'd have to work hard to configure an IDE for these kinds of features as well, so it goes both ways. And btw -- Vim macros are perhaps one of the best text editing features ever created, and you can't find that so easy to use and powerful in any IDE. And just the joy of actually editing text - which we do all day - arguably greater with the vim way of doing things. It just puts you in a certain zone.
- tobyhinloopen 6y agoI still believe people use VIm because it looks cool.
- rob74 6y agoI think it's a bit sad that the article completely fails to mention that Bram Moolenaar originally implemented vim on the Amiga. Actually this might have contributed to its popularity: back in 1991, Amigas were much more widespread than Unix boxes, and around the time Commodore went bust and the Amiga was no more, i imagine lots of developers migrated to then-new Linux rather than to the despised DOS/Windows, and took their preference for vim with them.
- kristopolous 6y agoI was reminded that Amiga was bought by Gateway which sounds crazy but it was 1999, that was wackyland times
- tarkin2 6y agoBecause modal editing is really, really fast? And if you edit a lot of code that’s really important? I’ve used vim for ten years. I’ve always found the extensions to vim cludgy after a while. And I’ve happily hopped on to the sublime and vs code bandwagons because of easily extensible editors and nicer UIs. But the first thing I do with this easily extensible editors is look for the vim plugin. Modal editing is the reason people love vim and if you don’t “get it” vim seems like a contraption only a sadist would love.
- saberience 6y agoControversial comment here, but I would say Vim isn't popular at all. I would say instead, Vim advocates are incredibly vocal (a bit like Vegans and Crossfitters) and won't hesitate to talk about it at all times. I've been engineering now since 2002 so approaching 20 years and sure, every office has one guy who's the "hardcore" Vim guy. Everyone else in the office uses Visual Studio or VSCode, Atom, Sublime, IntelliJ etc. But the "Vim guy" is the by far the loudest guy in the room when it comes to discussing his editor, tries to tell everyone else why their editor sucks, how superior Vim is, etc etc. Meanwhile all the users of VS and other editors quietly get along with their work and feel no reason to advocate for their editor like it was a religion. At my current company it's the same. We have maybe 300 engineers. 99% of them use VS or VSCode, there's probably one or two guys using Vim and still telling everyone else they're dumb for using VS... In 50 years when things have changed completely, there will probably still be some guys using Vim telling everyone else they're wrong for using VR Coding with voice recognition (or whatever is happening in the world of coding then).
- eddieoz 6y agoI think they are just being posers. When we compare the efficiency of debugging (p. ex.) it is clear who can find the problem fast. Today if I'm conducting an interview and the someone tries to convince me he/she is a good programmer and just use vi/vim, I need to rethink my decision because it can compromise the whole project. I'm not saying they are not good, but having the capability of fast debugging and solving problems fast is crucial sometimes and is part of the whole package. I was that kind of person someday and I understand the feeling. But for devops, vim or emacs are the all-in-hands tool and everyday editor, just because they are available in everywhere and work very well on terminal mode.
- RoutinePlayer 6y agoDoing vi(m) is an honor badge showing you know a bit of Unix.
- ulisesrmzroche 6y agoIf vim came out today, it wouldn’t be popular. eMacs maybe, with a pretty theme, but vim is vastly overhyped.
- gpmcadam 6y agoTools like VimR and Onivim suggest that this hypothesis might not be true. https://www.onivim.io/ https://www.onivim.io/
- ulisesrmzroche 6y agoThat’s got 4K stars. I wouldn’t say it’s popular.
- gpmcadam 6y agoAs a meta-comment, I'm always so surprised at how many people see an article title ending with a question mark and come straight to the comments to chime in with _their_ answer, without seemingly reading the article, which itself is a view on the answer to the question. Do people perhaps mistake these types of titles as "Ask HN..." type threads?
- g00s3_caLL_x2 6y agoBecause it's 1337... Like Gentoo. :D
- vmchale 6y ago> But what kept Vim in the loop is the compatibility with almost everything you can think about. Wherever you SSH today, you can start the Vim session, or at least Vi session. Also the fact that it works over ssh. Emacs does too I think, but e.g. JQt and DrRacket do not!
- nice_byte 6y agovim has stolen years of productivity from me. i've listened to loudmouthed vim advocates, tweaked my editor settings, played with plugins. but the problems that i needed to solve - code navigation, autocomplete, debugging - were all easily solved by switching to visual studio. nowadays i use vs with the vsvim extension (years of vim trauma have burned the key bindings into my muscle memory) and am much more productive with that setup than with the janky vim config from my uni days.
- rcgorton 6y agoIn the early days, there was no such thing as an editor. Punch cards were used for every separate line of code. And along came editors. I had no familiarity with mainframe editors, but DEC systems had EDT/TPU (and another macro scripting thing I forget the name of). Enter 1980s with UNIX. This gave us ed/ex/vi/emacs. I entered the workforce in 1985, and had to edit files on a 1MB memory 68010 system. Emacs was such a memory hog that it would not run on said UNIX system. Fast-forward 15ish years: I have watched seasoned developers spend 2x-3x the time to perform simple editing actions in emacs than it takes to do in vi. Personally, I now have muscle memory for vi/vim, but if I need to edit a binary file, emacs or a hexeditor is the only way to go. IDEs add another level of context & capabilities to editors, as they typically understand the syntax of the language in question and often offer hints.
- cutler 6y agoWow, haven't had as much fun since the Emacs vs Vim wars on Slashdot in the 00s.
- rxsel 6y agoWhat's the ROI on learning Vim? Anyone?