8 ms·
20 Years of Vim
- mpereira 3y agoI used data from the Vim git repository to create an annotated chart of some of the main moments in the last 20 years of Vim development. Vim was the first text editor I've ever used (back in 2008), and it shaped the way I interact with computers forever. I'm grateful to all maintainers, and to Bram for creating it and shepherding it through all these decades. The annotations are interactive, so if you hover them you'll see more context about the events. I built the tool to make this visualization: https://www.contextualize.ai https://www.contextualize.ai
- lcnPylGDnU4H9OF 3y ago> The annotations are interactive, so if you hover them you'll see more context about the events. It would be helpful to put this somewhere on the page. On mobile especially one isn’t likely to accidentally discover this with random mouse movements.
- mekster 3y ago> Vim was the first text editor I've ever used (back in 2008) How could anyone skip any other more "normal" editors and jump right into Vim?
- bee_rider 3y agoWhen do most people use text editors? I think wouldn’t be that surprised if somebody fist used a text editor when they first got into Linux or programming.
- sodality2 3y agoI’d imagine most people’s first impression would be Notepad on windows- I wouldn’t count Word or even WordPad.
- kingkongjaffa 3y agoIt was definitely notepad to edit some obscure .ini files on some pc game, or reading a Readme on a cracked/pirated game. On windows that would be the obvious case. Downloading something over limewire or torrent and seeing a readme file for the first time is a pretty strong memory. My first IDE was visual studio writing Visual Basic, I quickly binned that for netbeans and Java and then I think ended up using Eclipse. Today I’m a casual evil mode emacs user mostly for magit and org-mode. also working in VScode for web languages.
- bee_rider 3y agoI bet you are right. But, I also think there’s enough leeway in the idea of “using a tool” to not be surprised that somebody doesn’t count a one-off use of notepad. And I think there must exist at least some people who really never used notepad. Nowadays I only assume someone between, like, 30 and 50 will inherently have to have used Windows at some point. Outside that range, you might get graybeards who were around before Windows, or younger folks who only ever used smartphones. Anyway, all that rambling is to say, I’d put it in the “most but not shocking to hear otherwise” category.
- Eddygandr 3y agoDo you really think people younger than 30 won’t be using Windows in school or at home?
- xwdv 3y agoThey will use it, but they don’t know it’s Windows or what an OS is. They’ll just say it’s a Microsoft computer or PC. Or “not Apple”. Maybe even Android.
- bee_rider 3y agoI mean, there exist and have always existed people who’ve never used it at home. And there exist and (ever since it came out) have existed people who have. What I’ve tried to express is that there’s a small band where not having used it is unusual and surprising, and that isn’t the case anymore. I still think the majority of people have used Windows at least a handful of times but hearing that somebody hasn’t no longer produces a “how could anyone” sort of response.
- mattl 3y agoLike what? ed?
- cristoperb 3y agoI think they probably mean a non-modal visual/screen editor (like NotePad on Windows or TextEdit on Mac). I used pico on Unix before learning vi, for example, which is probably a common progression.
- rangerelf 3y agoWhat was a "normal" editor in '08? After trying out finger-twister with Emacs, vim was a breath of fresh air, and had better features than plain "vi", like it was improved or something. Now, how do I save and exit?
- loeg 3y agoNotepad++ (Windows, 2003) / gedit (GNOME, 1998) / kwrite/kate (KDE, 2001) all existed in 2008 and are totally fine basic text editors for source code. I remember editing PHP in a more obscure editor (SciTE, 1999) on Windows in the early 2000s.
- rangerelf 3y agoMost of all those are gui based, when running a small Slackware setup without X none of those are available.
- loeg 3y agoThey're all GUIs. Most people using computers in the late 2000s were using GUIs, not X-less Slackware. You asked what "normal" was -- this is normal.
- rob74 3y agoYou might be surprised to learn that the original version of Vim (on the Amiga: https://www.reddit.com/r/amiga/comments/l5j53m/the_text_editor_vim_as_we_know_it_was_born_on_the/ https://www.reddit.com/r/amiga/comments/l5j53m/the_text_edit...) was a GUI based application! Ok, it didn't have much in the way of an actual GUI, but it ran in a window which wasn't the shell/CLI window. I guess the actual reason why Vim is a console application on Linux is the lack of a "standard" GUI framework.
- deleted 3y ago[deleted]
- berkes 3y agoI was thrown into vi, back in 1996, learning Linux. It was the default (or at least available) and the SuSE manual that came with the CD-ROM box had a chapter on vi/vim. For me it was my first editor on Linux. Didn't stick until I rediscovered it some 20 years ago when I got fed up with the netbeans nonsense and gedit and Kate kept breaking on me.
- mpereira 3y agoI'm weird, I started using computers with Arch Linux and Vim :P
- cbm-vic-20 3y agoBe old. I went from VMS' EDT in the late 80s to JOE (Joe's Own Editor) on Ultrix, to Emacs, and finally Vim. I finally switched to Neovim after Bram's passing.
- uxcolumbo 3y agoWhat made you switch from emacs to vim?
- cbm-vic-20 3y agoIts complexity. Elisp is both a blessing and a curse. It's great to be able to make deep, fundamental changes to Emacs via Elisp, but sometimes, you end up wading though very difficult-to-read code trying to figure out how it works. IME, vim is less flexible, but simpler when I just want to edit code and not think about Emacsisms.
- xnx 3y agoCool tool! I had to double check because I thought Vim was much older. Indeed, Vim goes back to 1991 (https://en.wikipedia.org/wiki/Vim_(text_editor) https://en.wikipedia.org/wiki/Vim_(text_editor)). This is a great view of the last 20 years of Vim.
- mpereira 3y agoThanks! I just added a hopefully-clarifying comment before the chart based on your comment. > This chart shows the last 20 years of development as seen in the Vim git repository.
- daveguy 3y agoAnd to be thorough... The original vi mode of text editing goes back to 1976. https://en.m.wikipedia.org/wiki/Vi https://en.m.wikipedia.org/wiki/Vi
- rangerelf 3y agoVim in '95 was a breath of fresh air: improved feature set over plain vi and still zippy.
- pmoriarty 3y agoThere were a bunch of other vi alternatives back in that day. vim was just the one that wound up becoming the most popular. nvi and vile were two names that spring to mind, but I know there were others. Looks like vile itself started in 1992: https://invisible-island.net/vile/ https://invisible-island.net/vile/
- orhmeh09 3y agonvi came standard on FreeBSD at least through 5.x, iirc.
- loeg 3y agoRight, this is just the history after moving to git. Hence starting with Vim 6.x and 0 git commits.
- bongobingo1 3y agoWould like to see this with the #lines/changes per commit. Its obvious that there are more commits post neovim, but i wonder if they're more substantial or just a change in work flow (eg: previously 1 commit with 3 lines, later 3 commits with 1 line each).
- pawelduda 3y agoAfter neovim was released, I could feel the pace pick up, subjectively
- Icathian 3y agoI wonder why that is. Just a bigger tent, with some of the benefits being committed back to vim? More pressure to bring in features from neovim pushing the pace faster? I'd be curious to hear an explanation if anyone has one.
- loeg 3y agoNeovim allowed innovation that vim initially stifled, and its success motivated Vim to catch up. I think the fork has been good for Vim.
- wodenokoto 3y ago> The hard work from maintainers turned Vim into a completely new editor In what ways has vim become a completely new editor?
- webnrrd2k 3y agoIn an editor-of-theseus way? At least that's how I took it.
- bashgordon 3y agoSo... How do we help children in Uganda?
- mpereira 3y agoCheck out `:help uganda`.
- simonjgreen 3y agoBram founded ICCF Holland https://en.m.wikipedia.org/wiki/ICCF_Holland#:~:text=Vim%20is%20free%20software%2C%20released,is%20started%20without%20a%20file https://en.m.wikipedia.org/wiki/ICCF_Holland#:~:text=Vim%20i....
- I_am_tiberius 3y agoI love vim and neovim but I wished there was an easier way to define the config.
- crickey 3y ago:e $MYVIMRC Your welcome
- deleted 3y ago[deleted]
- im_lince 3y agogreat tool ever
- amelius 3y agoIs anyone keeping track of what the most popular Vim commands are? Personally, I've been using Vim for years, but I must confess that I use almost the same commands as I did in the beginning. Is there any good website that teaches useful tricks, maybe on a daily basis?
- JNRowe 3y agoI really can't recommend Drew Neil's resources enough. The vimcasts¹ series are great if you're the sort of person who likes videos to learn with, and both his books are excellent²³. [The books may appear to be getting a little long in the tooth, but their contents are still very applicable to today's usage.] My own "trick" for improving my vim usage was to start mapping things to <Nop> that have better replacements, it is a great way to shock yourself out of bad habits like hjkl movements or reliance on /. Then again, I think text-objects and the items below it in motion.txt are the main to use vim so YMMV. ¹ http://vimcasts.org/ http://vimcasts.org/ ² https://pragprog.com/titles/dnvim2/practical-vim-second-edition/ https://pragprog.com/titles/dnvim2/practical-vim-second-edit... ³ https://pragprog.com/titles/modvim/modern-vim/ https://pragprog.com/titles/modvim/modern-vim/
- amelius 3y agoThanks! Now I'm curious what is bad about hjkl movements :)
- echelon 3y agoYou tend to overuse arrow key-like navigation instead of developing chords of movements. I got stuck in that suboptimal mode and had to break myself of it.
- JNRowe 3y agoI perhaps shouldn't have said "bad," as my opinions sadly aren't universal truths ;) However, my reasoning is the same as noted in echelon's reply. There are often far better ways to move around as described in ":h text-objects" and ":h motion.txt" more generally.
- zabzonk 3y agofor me, it is more like "40+ years of vi". vim is simply the best version of all of the vi-based editors that i have used, across many platforms. vim is brilliant (and i am very sad to hear of the author's death), but i think we really owe it all to bill joy.
- bluenose69 3y agoSame for me: vi (later vim, later neovim) since the late 1970s. I used ed in the early days, too, and that may be why I love the fact that vi* lets me type ":" to do powerful things.
- zabzonk 3y agoi had to teach a C programming course that used ed as the editor because i could not at the time get vi/ex to work because of terminfo/termcaps and other problems (which i later fixed). also bourne shell. students, who were on a basically business oriented IT course in about 1985 (?) never complained. try inflicting something like that on people now, though it might be good for them.
- pydave 3y agoVim's addition of .vimrc and .vim allowing you to store editor programs to further accelerate your editing makes stand vim far beyond vi. Credit Bill Joy for the modal editing paradigm, but vim is so much more than that. Most editors have a vi mode, but they don't compare to vim because they are awkward to script and don't have powerful regular expressions so readily available (both introduced in vim). We could thank Ken Thompson and Dennis Ritchie for enabling vi, but I thank Bram for keeping vi viable, portable, and well-supported across languages.
- zabzonk 3y agonot sure thompson or ritchie ever used vi, or really enabled it. it is quite similar to the text editors on vax.
- rc00 3y agoCan we do the same thing for X11? (Turn it into something new while maintaining its spirit.)
- VectorLock 3y agoI had a subtle bit of wistfulness every time I fired up vim for the first time every morning this week.
- kazinator 3y agoVim goes back to 1988, publicly released in 1991. I've been using it for 29 years now. The last 20 years don't mean anything; the Vim codebase is too much of a dumpster fire for anything significant to happen in that time span. They had to fork an entire parallel command set to implement "location lists" (new in Vim 7, I think) which are exactly like the "quickfix list". Most of the difference are that location list commands start with l, wheras quickfix list commands start with c. Your keybinding to go to the next quickfix item doesn't work in a location list because it uses :cn^M, but the location list wants :ln^M or whatever. The only explanation for this ridiculous state of affairs must be that it was too difficult to extend quickfix lists to do the things that location lists do. Once you get into the Vim codebase, that will not be surprising. Vim's visual editing semantics assumes that you have a block cursor, and that that the character covered by the cursor is included in a visual selection. This is not so nice when you switch your terminal to an I-beam (or vertical line) cursor, which references between characters. If the cursor is to the left of the selection start, it includes the character to the left of the cursor too. I-beam semantics allows for a zero-length selection, whereas in block semantics, there is always at least one character in the selection, which is the one under the cursor. I-beam semantics is virtually what pretty much all GUI editors do, including the text widget in Firefox I'm using now to type this. A bunch of years ago I looked into what it would take to have a flag in Vim to flip to I-beam semantics for selection. Gack! I estimated a month of full time work. Numerous places in the code would have to change in ways where you're not sure what side effect they will have elsewhere.
- pydave 3y ago> Your keybinding to go to the next quickfix item doesn't work in a location list because it uses :cn^M, but the location list wants :ln^M or whatever. Navigating quickfix and location lists is global, so a single common command wouldn't make sense (you can use `:cn` from any window -- even if the quickfix is not visible). However, you could use a `<buffer>` map to use the same key to navigate within loclist/quickfire windows. > The only explanation for this ridiculous state of affairs must be that it was too difficult to extend quickfix lists to do the things that location lists do. Their entire concept is to be what quickfix isn't: instead of a global list, it's a list that's tied to a window. I can't think of features that a loclists have but quickfix doesn't unrelated to their nonglobal nature. I can't claim vim's code is easy to understand, but this is not a fair complaint.
- pxc 3y agoIt's impressive to me how much Vim's development has continuously accelerated throughout the lifetime of the program so far. We might think of it as an 'old-fashioned' tool, but it has really flourished and grown a lot on the last several years.
- jes5199 3y agothat’s fascinating and to me, because as a vim user since 1998, I haven’t really consciously noticed it changing much. If I tried running a version from 20+ years ago, today, would it still work on a modern O/S ? Are there modern vim features that I would miss?
- justinzollars 3y agoI'm on year 6 of vim. Haven't looked back!