Hacker News new | past | comments | ask | show | jobs | submit login
VIM from novice to professional by: Derek Wyatt (ontwik.com)
74 points by ahmicro on Dec 31, 2010 | hide | past | favorite | 31 comments



Some really good tips for novices (and probably some pros that missed a few tips), but I hate the evangelizing.

"Do it the way it's meant to be done!" ... NO. Do it the way that works best. If you can get around easier with hjkl, go for it. If you find the arrow keys to be WAY faster, use them. All that matters is that you get the job done. If we always did it 'the way it was meant to be done' we'd never have progress.


>If you find the arrow keys to be WAY faster, use them

I would disagree with that. You have to think about what will be more productive once you have learned both ways. Sure walking is faster than a bike when you don't know how to ride a bike, but that doesn't mean you shouldn't learn how to ride a bike.


Taken out of context, the advice to "do it the way it's meant to be done" is not very good advice, as you point out.

But in the context of talking about how to navigate within vim, it's really worthwile to use hjlk instead of the arrow keys; it's provably way more efficient.


'jkl;' for the win! 'hjkl' always seemed awkward and never made sense to me. 'hjkl' is supposed to be convenient so that you never need to move your right hand to navigate the file, but you don't type with your fingers on 'hjkl', you type with them on 'jkl;'. I remapped my vim to 'jkl;' and am loving it. (Though it is a bit of a pain for less, and other vim-keyed applications).

For those interested, you can remap to use 'jkl;' with:

  " Navigate with jkl; instead of hjkl
  noremap ; l
  noremap l k
  noremap k j
  noremap j h
Edit: Being a bit nicer to vim's authors...


This is why vi used hjkl for movement: http://en.wikipedia.org/wiki/File:KB_Terminal_ADM3A.svg


> 'hjkl' always seemed awkward and dumb to me.

Except that you press J, K and even L way more times than H and thus is makes a lot of sense having them right there under your strongest fingers.


If your middle and ring fingers are not strong enough to push the buttons, you need a better keyboard.

In all seriousness, though, I personally don't like having to reach with my index finger to move left. I tend to think of 'jkl;' as being a more efficient set of arrow-keys. (Where, with the arrow keys, your index finger goes left, ring-finger goes right, and middle finger goes up-down).

If you can hack it with 'hjkl' more power to you, but I found it extremely annoying to have to 'reset' my hand position every time I wanted to type text in insert mode.


> I found it extremely annoying to have to 'reset' my hand position every time I wanted to type text in insert mode.

Did you not consider keeping your hand in the standard place? I very rarely use h, and when I do it is a simple moment of the index finger. Backspace has nearly the same functionality as h, and movement keys like b, ^, and I (enter insert mode at the beginning of the line) are typically much more useful.


> but I found it extremely annoying to have to 'reset' my hand position every time I wanted to type text in insert mode.

What do you mean, please? Do you mean you were resting your right finger over H?


Yeah, I kept finding myself trying to use 'hjkl' like arrow keys, then when I went into insert mode I would have to move my hand back (and lose my train of thought). Basically, 'jkl;' feels more intuitive to me. Hardcore vim users will probably be aghast at remapping something as basic as cursor movement and say that I should "learn to do it right". But it makes more sense to me, and I haven't found it to be any less efficient.


I understand now. I've read about people remapping them as JKIL too. I guess the cause is the same.


> Do it the way that works best. If you can get around easier with hjkl, go for it. If you find the arrow keys to be WAY faster, use them.

Except that arrow keys do not blend well with other commands, for instance I wonder how V<down>d can be "WAY faster" than Vjd to delete two lines. Also, I wonder how reaching for the arrow keys can be "WAY faster" than pressing the keys which are right there under your fingertips.

Power tools are designed that way for a reason. If you fail to understand the reasons, and you feel smart about using a power tool like a dumber one, well...

OTOH, having alternative "dumber" ways to get things done while you are learning is helpful.


tip: use dj to delete two lines


The way I see it is, he's encouraging you to try new ways of doing things. And I think he's right. They exist for a reason.


He's obnoxious, I couldn't watch more than a few minutes. How is this better than a tutorial/cheat-sheet?


Sorry to sound like an asshole, but I have to agree with you - this guy is annoyingly obnoxious. In the first minute of the first screen cast all he was able to highlight was that Canadians don't live in igloos, and that he thought his "neighbours to the south" were ignorant.

I am keen to learn how to use VIM effectively, but I can't sit through these videos. Please, anyone out there, take this guys idea but do it right. Put together a series that emphases the content - not the guy presenting it.


Have you seen VimCasts? http://vimcasts.org/



I haven't seen this videos yet, but peepcode has two good screencast about using vim. I am a emacs/viper user and I learned a some nice tricks with the peepcode videos.

I am recording a serie of screencasts about how to use emacs/viper/org-mode/elisp/configuration-emacs, but I am doing it in Spanish. My accent and grammar is not good enough to do it in English.


10 flash videos on one page and just a tiny "credits" link to the author? Only thanks to Flashblock my computer is not dying.

I also don't see the point of embedding all the videos. For example in this one: http://ontwik.com/ruby/david-hansson-why-ruby/ why doesn't the credits link to the source of the video? You know, the people who recorded, edited and released it at http://confreaks.net/videos/431-rubyconf2010-keynote-why-rub...


Yes you are right, May be the little "credit" is nothing but I'm working to add more info about the authors and how it works ,Thanks for critique i loved it.


My favorite way to learn vim was vimtutor, but unfortunately vimtutor ends too soon. There is so much that vimtutor does not cover. Does anyone know of an advanced vimtutor?


No, but there's a surprising amount of great material to learn in :help. I'd also recommend the newest edition of the vi/vim O'Reilly book.


First impressions of vim: text editor for douche-bags


Look beyond your first impression. Don't worry about the so called douche-bags.

I am a light VIM user, but I do a lot of scripting on Windows for work. I spend a great deal of time working in consoles for wsf and ps1 files. Having an editor I can use "inline" with my workflow is priceless. I'm not a power user, my vimrc is all of 8 lines, but I can get in make an edit and get back out without losing step. Plus having one editor on all platforms means the things I _do_ manage to learn at work can also be used at home (on Fedora).

TL;DR Don't worry about a programs perceived user base. Measure it by what it can do for you.


He's referring to the unbelievably obnoxious narrator of these screencasts.


Right, but it's amazing he's never heard of vim before.


I think we're forgetting that Hacker News is attracting an increasingly broad audience. How many random strangers would you have to ask before finding one who knows what vim is? How many computer science majors? It's easy to forget that "Unix-based hackers" is a very small minority, even among a somewhat technical audience.


Actually, I have heard of vim many times before. This is the first time I've looked into it seriously though.


Dear Author,

More Vim, less you.


much prefer VIM from novice to pro by: Derek SMART.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: