12 ms·
A Website for Learning Vim
- ntindle 5y agoIs this not just a clone of vim.so??
- Aperocky 5y agoAlways felt the best way to learn vim is to just use it.
- penjelly 5y agotrue, but mixing things up can sometimes be fun too
- maccard 5y agoI'm a beginner to intermediate level vim user (well, vim bindings user), and while this is true, you don't know what you don't know.
- Aperocky 5y agoThe question is: do you need to know? I handily accept that I don't know a big part of vim. At the same time I use it daily and went as far as developing vim script to automate stuff that are repetitive to me. Vim bindings are quite easy to pick up and fairly straightforward though, but that should just take a cheat sheet and some usage.
- maccard 5y agoLet's say I want to go to the end of a word. I can press L some number of times until the cursor goes to the end of the word, or I can press E once. If I just "use" vim, how will I discover that? (Contrived example of course) Another super simple example is replacing a word. Let's say I know how to delete, how to word, and how to enter insert mode. Putting that together I get dwi - except using cw achieves the same thing.
- Aperocky 5y agoThat's where the cheat sheet come in, all of these basic concepts are condensed and is literally everywhere. Now, almost every single key has it's use and I likely only have muscle memory on about 20 keys, when it gets to the vim command line, I know even less. But I'm not quite worried about it.
- Symmetry 5y agoSpending a week on an island in the middle of the Pacific with very little internet really got me to appreciate :help.
- hutrdvnj 5y agoBut I think it's important to gradually use vim. If you're new to vim leave your IDE installed.
- kwertyoowiyop 5y agowww.colonwqbang.com is still available.
- pc86 5y agoDoesn't look like it is, I just tried to go there without success.
- eyeundersand 5y agoOP may have been referring to the domain name.
- colbyhub 5y agoThis looks verrryy similar to https://www.vim.so https://www.vim.so
- natdempk 5y agoThe pricing is even the same :)
- zoomablemind 5y agoWhat? They want one to pay for learning vi/vim? I think, it should be the other way around, that is rewarding ppl for choosing to learn it and keep the knowledge active in their memory. Especially true now, with so many reasons not to use it AND the sufficience of :help and vimtutor for the rest of the reasons. I find that the best teacher in this case is a necessity. Find yourself on a basic command line with no nano or the likes, just good old vi, not even vim. Then go on with that important mission you're on! Traumatizing? Yes, but a chance at adaptation too.
- imanemacsuser 5y agoWhat's wrong with the built-in `vimtutor`?
- mushufasa 5y agonothing is wrong. Some people prefer guided tutorials that give you direct feedback (e.g. correct / incorrect). Vimtutor is perfect for self-guided and self-motivated
- Dirty_Rolando 5y agohttps://vim-adventures.com/ https://vim-adventures.com/ is the place to learn vim ... and the vimtutor
- pdenton 5y agoThanks, but I'd rather spend the $25 to help poor children in Uganda.
- lcuff 5y agoI knew vim well before I read this advice, so didn't need it myself, but think it's worthy: Go through vimtutor, then use the native vim for you platform that also has a GUI, so when you get frustrated you can 'fall back' to using menus. Over time replace your menu-fallback stuff with "hand on the keyboard" techniques. It was soooo frustrating in the early going with vim. Very distracting from what I was trying to do. (Presumably true for most of us.)
- AlexanderDhoore 5y agoI learned Vim by watching some videos of a guy talking VERY enthusiastically about Vim. I can't find them anymore though. Was just some programmer explaining Vim in a series of videos. Probably almost 10 years ago. Anyone know what I'm talking about? EDIT Found it! This guy is brilliant. http://derekwyatt.org/vim/tutorials/index.html http://derekwyatt.org/vim/tutorials/index.html
- istjohn 5y agoThanks--these look great! Edit: There are a lot of great Vim videos on thoughtbot's YouTube channel, too.
- jasode 5y agoBoth this website and vimtutor teach basic commands (finger mechanics) but some learn more effectively if they have some of the philosophy and logic of why vi/vim works the way it does. For example, this popular Stackoverflow answer explains vim's concepts of "verb + noun" commands: https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118 https://stackoverflow.com/questions/1218390/what-is-your-mos... Also, a lot of beginners are perplexed why vi uses "hjkl" keys for cursor movement. It's because the 1976 ADM-3A terminal didn't have any dedicated arrow keys like the 1986 IBM PC 101-key layout: https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys https://catonmat.net/why-vim-uses-hjkl-as-arrow-keys Without background info like that, learning vi can seem like memorizing random incoherent trivia.
- tinalumfoil 5y ago> Also, a lot of beginners are perplexed why vi uses "hjkl" keys for cursor movement. I really don't understand why people get hung up on this. Vim supports arrow keys. hjkl are convenient alternatives but if you're at the point of not being comfortable switching between normal and insert mode just use the arrow keys. Insisting othereise is insisting you learn everything at once, which is demotivating and unnecessary. Arrow keys are more versatile too. They do the behavior you expect in pretty much any mode.
- agentwiggles 5y agoI knew a vim-evangelist developer once who added bindings to his .vimrc file so that, if you pressed an arrow key in insert mode, it would insert the appropriate arrow symbol. I think this was meant to train the user _not_ to use the arrow keys to navigate around, but rather to switch to normal mode and use hjkl or other movement commands. While I don't approve of this on a practical level, I have to admit that I find the logic of the joke hilarious. You were in insert mode, and you pressed the arrow key, so it ... inserted an arrow.
- jasode 5y ago>I really don't understand why people get hung up on this. Vim supports arrow keys. hjkl are convenient alternatives [...] Maybe because tutorials like vimtutor and this thread's website immediately blast hjkl finger exercises at the brand new user with no context whatsoever. The student is now wondering why they are pressing a seemingly arbitrary and random alphabet key just to move a cursor around. E.g. vimtutor 1st screen: Now, make sure that your Caps-Lock key is NOT depressed and press the j key enough times to move the cursor so that lesson 1.1 completely fills the screen. E.g. this website's 1st instructions: You can use the h and l keys to move the cursor. For learners that need a little bit of scaffolding in the brain to make sense of what keys to press, a little bit of history about the origins of "hjkl" helps. Also, in my case, I learned classic vi (not vim) on DEC UNIX and the arrow keys did not work. Instead, the arrow keys inserted funny control characters depending the terminal emulation. So people used to be forced into using hjkl.
- pictur 5y agovim seems like very compusive tool at first but as you keep using this is seems like very productive. thats how it was for me
- Someone1234 5y agoReminder: VSCode, Visual Studio, IntelliJ, and Notepad++ all individually have a higher usage share among professional programmers[0]. Vim is similar to Android Studio. But you'd never know that such un-sexy tools are actually super popular reading technical sites. And before the "but it is already on your server!" You know what else is installed on almost every *NIX server? Nano. A text editor that needs no deep introduction to be productive or that you have to reconfigure basic keybinds like the arrow keys "because it could break a system not used since the 1970s!" I know Vim well, I've used Vim a lot, still don't understand the strange obsession people have with getting others into it. You want some professional advice? Don't learn Vim, learn Nano, and use the time you saved to learn VSCode better. [0] https://insights.stackoverflow.com/survey/2021#most-popular-technologies-new-collab-tools-prof https://insights.stackoverflow.com/survey/2021#most-popular-...
- lucideer 5y agoI use VSCode. And vim. Every day. Am I a VSCode user or a vim user? Probably the former (my usage is slightly higher, but not significantly). I suspect some variation is the same for many; it's a likely driver of demand for vim bindings (which are ubiquitous). Even if people's daily usage of vim is much lower than their GUI-IDE of choice, the aggregate is likely far higher than reported.
- Someone1234 5y agoThe survey cited allowed you to select multiple. So your assumptions about what the data shows isn't based. Here is the question text: > Which development environments did you use regularly over the past year, and which do you want to work with over the next year? Please check all that apply. Pretty fair question if I've ever seen one.
- MikeKusold 5y agoVSCode, Visual Studio, and IntelliJ all support vim bindings. For me, the most useful part of vim is that once you learn how to use it, you can switch text editors without needing to relearn most of their shortcuts.
- mettamage 5y agoHere are is a comment for learning vim. Open up terminal vimtutor Enjoy the tutorial
- nnoitra 5y agoVim is unnatural. It basically boils down to writing programming language commands to edit text. For example 4dd to delete 4 lines. Now, why exactly would I want to go into edit mode to type 4dd to delete 4 lines instead of select and delete. It's just our minds don't work that way when thinking about editing text. The way I view text is visual. I don't think in terms of delete 4 lines, go line 435 and dw to delete a word. Copying and pasting text is a nightmare. Navigating from insert mode to visual mode to select and paste text. It's impossible to design a less intuitive text-editor.
- 2pEXgD0fZ5cF 5y ago> For example 4dd to delete 4 lines. Now, why exactly would I want to go into edit mode to type 4dd to delete 4 lines instead of select and delete. The thing is that you can do both in Vim. 4dd is faster but harder to learn and commit to, it's not in any way required though and you can stick to vim basics and go the regular select and delete route too (via mouse, v, etc.)
- nnoitra 5y agoBut those are features of vim. The default settings of vim are nonexistent. I needed to spend hours just to get it to sort of work. It was not even showing line numbers let alone syntax highlighting.
- bmj 5y agoI needed to spend hours just to get it to sort of work. Some people consider this a bug, others consider it a feature. I use both VS Code and (Neo)Vim on a regular basis. A huge advantage of VS Code is that for many languages, it works pretty darn well out of the box. I do a lot of ECMAScript development, and I have exactly two extensions installed for VS Code: ESlint and GitLens (plus some themes, but I don't consider those functional). My init.vim file is nearly 400 lines long, and that includes everything to provide a reasonable IDE-like experience (fuzzy finder, Ctrl-P, NerdTree, Airline, Git, various mappings, etc). Granted, I did not type all 400 lines (that is, they are copied from other user's configuration files), but I still stitched a lot together. And that's fine, for me. I get that some people don't want to spend their time tweaking their tools to that degree. VS Code is still a convivial tool[0], in my opinion. It simply starts from a different place. [0] https://en.wikipedia.org/wiki/Tools_for_Conviviality https://en.wikipedia.org/wiki/Tools_for_Conviviality
- deleted 5y ago[deleted]
- blondie9x 5y agovim.so, openvim.com, vim-adventures.com, and now vim.is which looks weirdly similar?
- rackjack 5y agoLots of people think learning vim is learning random letter-command mappings. This is true to some extent, but the idea that you're ONLY memorizing these mappings is not the right conceptualization, IMO. Instead, you are ingraining physical motion. The same way you don't think about how you're inserting your car key, or brushing your teeth, or walking, I don't think about pressing `o` to create a newline or pressing `CTRL-[` to cancel an operation. Maybe at the start I did that, but now I (barely) think "create a newline" and my fingers just DO it. Only when I'm substituting or recording a macro do I actually have to be careful. Otherwise? Pure physical motion.
- rhizome31 5y agoThis is true to the point that when someone asks me to explain how to do something that I do all the time I feel confused and it requires me significant effort to reverse engineer my muscle memory so I can verbalize the correct keystrokes.
- Aperocky 5y agoRecording a macro is probably easier than to decode that physical memory haha.
- deleted 5y ago[deleted]
- awinter-py 5y agowebsite you cannot leave without asking another website which you can't do because you can't leave the first one
- fullstackchris 5y agoI'm finally gonna rant about Vim here. Gets way more credit than it is worth! ("but it's soooo coool! I'm superfast doing find / replace! You just gotta learn the crazy syntax, haha!") My response: "are you sure? I wouldn't rely on those fancy commands... best to use a statically typed language and rely on an abstract syntax tree for renaming tasks than an editor to do that." Like everything in the software world, because some Google engineers used it, it became world wide famous. There's a saying in german that I love, basically amounting to, "they also cook with water". In short, there is no real tool that has "secret sauce" or is "super magical". It's an editor, that's all. Say what you will but nano is is fine for me via SSH, VS Code for everything else. Looks like many of the comments take a similar stance, which I'm actually surprised at.
- Jenk 5y agoVi(m) predates Google by about.. 30? Years. The rest of your post is fine though. You do you :)
- Aperocky 5y ago> Like everything in the software world, because some Google engineers used it, it became world wide famous. I'm skeptical to this claim because vi/vim's widespread usage predate google itself, by decades. It used to be the only way to really edit something in the 1980s on unix systems, unless you preferred ed. Vim's modal system extends way beyond some special cases. The most time save I have using it are probably not fancy stuff but quick movement across lines and within lines.
- dbrueck 5y agoI'll see your "are you sure?" and raise you one. :) Are you sure that vi/vim have many people who use them and that those tools are "world wide famous" because of such superficial reasons? Isn't it possible (and far more likely) that there is some substance to their reasons? Use whatever tool works best for you. I use vim because it is far and away the most efficient way to edit text - especially code. Anytime I have to use something else it's amazing how sluggish and tedious it feels to do the most basic operations - it feels a lot like trying to run in knee-deep water. I've extensively used many (most?) of the major editors on the planet (including many obscure ones) over several decades. I had to be forced to use vim at first because it seemed so terrible. Believe me, it's not my editor of choice because of some randos at Google, haha.
- CoffeePython 5y agoAuthor of another [1]vim learning tool here. I launched it 10 months ago on [2]HN and that launch ended up leading me down the path to start a company and get accepted into YC. It's cool to see other people's take on a problem but this feels eerily similar to my tool, down to some of the copy, layout, and pricing. [1] https://www.vim.so https://www.vim.so [2] https://news.ycombinator.com/item?id=25846347 https://news.ycombinator.com/item?id=25846347
- alvl2005 5y agoThis is just a clone of vim.so. Whoever did this is simply ripping off the original site. They didn't even fix the copy.
- bibash 5y agoOnly the landing page is similar, everything else is different.
- vram22 5y agoI first created this vi quickstart tutorial at the request of two Windows sysadmin friends who were given charge of a few Unix servers. They later told me that it helped them come up to speed with text editing on Unix. https://mobile.twitter.com/vasudevram/status/1248583566897762304 https://mobile.twitter.com/vasudevram/status/124858356689776...
- Helmut10001 5y agoCan anyone of the "old" group explain what the benefit of vim is, if we have nano now? Having missed the days when only vim was there, I find it perplexing that vim is sometimes suggested. Personally, I have to look up each single keystroke in vim when nano just seems to follow common UX conventions.
- themadsens 5y agoSee jasode's answer above[1] and make sure to follow the stackoverflow link too[2] [1] https://news.ycombinator.com/item?id=29432611 https://news.ycombinator.com/item?id=29432611 [2] https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118 https://stackoverflow.com/questions/1218390/what-is-your-mos...
- dbrueck 5y agoIt boils down to speed of editing text, especially editing code - I've yet to find anything that comes even remotely close (and for a long time I tried to find something else, haha). Maybe one challenge in grasping it is that if you look at any one feature in isolation, it sorta looks like a negligible amount of time savings (if at all), and at the cost of weird key combinations. So maybe instead imagine if you took the top 200 common actions you do when editing code and recognize that over your career you might perform those actions many, many millions of times. Now shave 100ms to 5000ms (or more in some cases) off of each one. I dunno if that helps, but anytime I have to use something other than vim, it's incredible how slow and tedious it is to do even the most basic things, and it feels exponentially worse with any sort of bigger editing tasks.
- Helmut10001 5y agoAlright, I get this. Thanks for the explanation. I am using VS Code these days, which is why I have no need to use nano/vim for editing code (beyond setting of basic config settings, where speed does not really matter).
- ananonymoususer 5y agoNot stated in the other replies to your question: Vi is available on pretty much any UNIX derivative OS, and many other platforms. You can learn it once on your platform of choice, and then when you find yourself using some new (or old) platform that you are unfamiliar with, you will at least know how to edit a file.
- ams92 5y agoI paid for vim.so. It was helpful to learn the most basic commands but I wish it had more exercises. I don't think there is any point in using vim over an IDE but it is often quicker to edit config files in vim or navigate text so I use it for that.
- jmkni 5y ago> Not an editor command ":q" Boo! Seriously though, love the project!
- pugworthy 5y agoLong time VI(M) user here, probably starting in the 80's. I don't think it's the best, nor do I think it's for everyone. It's just what I'm comfortable with at a deep memory muscle level. And a confession - I probably only use 25% of what its capabilities are. And some of what I do is totally "wrong" like when not inserting I use K for up, Enter to go down and space to go right. If I want to go to the beginning of a line, I hit enter (down) which takes me to the beginning of the next line. Then K (up) to get to the line. Totally "wrong" but it's what I've done for years and do it without even thinking about it. It kind of brings to mind this bit from the first Perl State of the Onion... "...I believe that learnability is a laudable goal, but frequently misplaced. The purpose of a language is not to help you learn the language, but to help you learn other things by using the language. We don’t water down English to make it easy to learn. We prefer English to remain a rich language, quirky, sloppy, and full of redundancy. Same for Perl. A corollary to that is, while we don’t water down the language itself, we do allow people to speak subsets of the language. We don’t expect a five-year-old to speak with the same diction as a fifty-year-old. We don’t expect a native German speaker to use the same subset of English as a native Mandarin speaker. Similarly, we don’t look down on people for using subsets of Perl. There are certainly enough of them. You can write Perl programs that resemble sed, or awk, or C, or Lisp, or Python. This is Officially Okay in Perl culture. By way of contrast, try writing in the C subset of C++ and they’ll make a laughingstock of you."
- qq4 5y agoThe best way to learn vim is to use vim.
- johncoltrane 5y agoAnother shark preying on lazy wannabe vimmers.
- damechen 5y agoObviously a clone of vim.so
- thehappyyeti 5y agoBlatant rip-off of https://www.vim.so https://www.vim.so beware
- deleted 5y ago[deleted]
- rackjack 5y agoI would like to point out: vim is a text editor. It exists to edit text. This is all it does. That's it. It is not an IDE. Maybe you can mangle neovim into an IDE shape, but not vim, not really. Lots of complaints here boil down to "I can't [insert IDE feature here, e.g. use a debugger]". Of course you can't. You'd have a bad time using a hammer to put in a screw, too. But you can sure use a hammer to put in a nail. If you want text editing, use vim. If you want an IDE, use Emacs, or VSCode, or whatever. Just don't complain about the hammer when you actually need a screwdriver.
- leeba 5y agoNot a neovim user, but given that it has built-in LSP support it doesn’t seem too far off from the features of VSCode.
- 200_OK 5y agoUs the original instead: https://www.vim.so/ https://www.vim.so/. This is just a clone of an indie hackers product.