

Learning vi -- the "cheatsheet" technique - vp
http://www.gentoo.org/doc/en/vi-guide.xml

======
bostondjango
I was a fake vi user for a few years before I finally decided to sit down and
learn it. What helped me get into the "feel" of vi was finally disabling my
arrow-keys and forcing myself to use the hjkl keys for movement. It will suck
for the first few weeks but eventually you'll notice a significant increase in
productivity. Throw this into your .vimrc:

map <Left> <nop>

map! <left> <nop>

map <right> <nop>

map! <right> <nop>

map <up> <nop>

map! <up> <nop>

map <down> <nop>

map! <down> <nop>

~~~
GHFigs
NetHack (or Angband, et al.) is another great way to learn hjkl. I can't say
you'll notice a significant increase in productivity, but you'll at least get
accustomed to the keys.

~~~
mapleoin
or wmii/dwm/xmonad/awesome to a somewhat lesser extent

------
babo
"There are many versions of vi, and I'm going to be showing you how to use a
version of vi called vim." Is there any other clone still under active
development? Long years ago Vim won, hands down.

~~~
mechanical_fish
But nobody talks about _GNU Emacs_ and _vim_. They say _emacs_ and _vi_.

When I log into a server and I want an editor I type _vi_ , not _vim_. Because
_vi_ has worked for twenty years, and I assume it always will work!

(That's actually why I bothered to learn a little bit about vi -- it is always
there, on every Unix box, and it always works the same way -- no wacky
transposition of Meta keys, etc. On my own machines I use nothing but emacs.
;)

~~~
sjs382
That's exactly why I learned to use vi, too.

------
mct
Perhaps I'm biased because it's how I first learned vi ~15 years ago, but I
still think the best way to learn vi(m) is by running _vimtutor_. It copies
the tutorial text file to /tmp and launches vim against it. The text first
teaches the user how to move the cursor around (in order to scroll down to the
next lesson), then how to exit the editor, and finally different ways of
modifying text. Many lessons are followed by interactive examples, which is a
really neat way to learn (e.g., "Make the second line below look like the
first line").

Text of the tutorial: <http://ftp.vim.org/vim/runtime/tutor/tutor>

~~~
doki_pen
Since I've begun using a tiling window manager(wmii, in my case), I find it
incredibly annoying when programs try to manage their own windows. I find this
is often to make up for the deficiencies of most window managers. I want one
way to manage windows for all my applications. I still use tabs in firefox
though :P

------
RiderOfGiraffes
I'm disappointed. I guess I'm not the intended audience, but I was hoping to
learn about the windowing operations. The simple stuff in this "cheatsheet" is
stuff anyone other than a complete beginner will use absolutely all the time.
Windowing makes vi fantastic - I need to learn it.

Note to self: Learn the windowing operations in vi.

Ctrl-p and Ctrl-n are the truly awesome commands for programmers.

~~~
brianto2010
Try reading the help section on windowing:

    
    
      :help window
    

Here are some basics:

Split to a new file (create a new window)

    
    
      :split  [file]
      :vsplit [file]
    

Switch windows

    
    
      C-w [movement-key]
      C-w C-w
    

Resizing windows (w/o mouse)

    
    
      C-w [row-size] _
      C-w [col-size] |
    

Here is a tutorial that has stuff on windows and tabs (if you want) (pdf):

[http://research.iiit.ac.in/~smr/data/advanced_vim_tutorial.p...](http://research.iiit.ac.in/~smr/data/advanced_vim_tutorial.pdf)

This is for Vim, though. I'm not sure if it will work for Vi.

> _The simple stuff in this "cheatsheet" is stuff anyone other than a complete
> beginner will use absolutely all the time._

Not exactly...

 _Over time, as you memorize commands, you'll gradually become less and less
dependent on the cheat sheet._

Even so, I doubt that this will work. I started using Vim by learning one or
two commands at a time, not a whole bunch at once, and it worked for me. I
believe that a beginner would use this cheat sheet as a crutch because the
beginner would use it "absolutely all the time."

Dumb question, but how do we know exactly if it works or not? It didn't cite
any test cases. Did anybody try this?

~~~
RiderOfGiraffes
Thank you for the reference. I find the built-in "help" stuff in vi deeply
frustrating, because I can't navigate until I learn its navigation commands,
and it gives me no way to learn the navigation commands other than by
navigating around inside the help system. I'll try again with your suggested
reference(s).

With regards this last point though, I don't seem to have expressed myself
clearly. My point is that the material covered in this "cheatsheet" page is
very, very basic stuff, and if you use vi more than an hour a day then you'll
no longer need the cheatsheet within 72 hours. There's little point in having
a cheatsheet on the utter basics. Much better to have a cheatsheet on the next
level, covering things you only use occasionally, and hence might not
remember.

In short, I think we agree.

~~~
10ren
I find the vim help profoundly unhelpful (unless you already know about the
command you need...) Googling (or searching on vim.org) fills this gap a bit.

The main navigating commands are: Ctrl-] (on a "hyperlinked" word) - and
Ctrl-t to retrace your path.

