Normal mode
***********

The default mode. Move around. Cut copy paste

Mode switch
===========

In Insert / Visual / Command mode, press Escape to switch back to
Normal mode

Moves
=====

Direction		Next word		{Char}acter
---------		---------		-----------

        up          	word   backward		find	till	
 left  l        	   w e b	   ---> f{char}	t{char}
     h  k   	     	     end	   <--- F{char}	T{char}
      j  right       
  down			W.rd   Ba<kward		place	go to
		   	   W E B       	        mark	mark
			     E\d		m{a-z}	`{a-z}

go to screen			go to line
------------			----------

start	middle	end	bar	number	middle	last
g0	gm	g$	{num}|	{num}G	gM	G

Cut, yank, put
==============

x	y	p	d{move}	r{char}
cut	yank	put	delete	replace with
	       P

Match
=====

Cursor word	#
--> Pattern	/<pattern>	Next match	n	
<-- Pattern	?<pattern>	Prev match	N

Perform n times
===============

{num}actions	example 5dw	


Insert mode
***********

The mode that allows typing in file

Mode switch
===========

In Normal / Visual mode press c / i / a / o to switch to Insert mode

	change	before	after	on next line
	c{move}	i	a	o
	C	I	A	O	
	line	before	after	on previous line
	end	line	line

Perform n times
===============

{num}actions	example 5cw	


Visual mode
***********

Select text

Mode switch
===========

To switch to Visual mode from Normal mode

v{moves}		V{moves}		Ctrl + v{move}
      ,------		,-----------.		   ,---.
Selections in		Selections in		Selections in
----. '------		'-----------'		block mode
character mode		line mode		   '---'
----'

Operations
==========

x	y	p
cut	yank	put
	       P

Command mode
************

Write commands and execute

Mode switch
===========

In normal (or) visual mode press : and type commands.
Then press Enter to execute and go back to normal mode

Open, save, edit
================

Edit		Write		Quit
--------------- --------------- --------------- 
e		w		q
e!				q!
e filename	w filename	

To discard changes add ! to command

Commonly used
-------------

Open by filename	e filename
Save to file		w
Save to file and quit	wq
Save to file and quit	ZZ	(no going back)
Quit without saving	q!

Tabs
====

Open tab	tabnew		Previous tab	tabp
Move tab	tabmove		Next tab	tabn

Match and replace
=================

%s/<pattern>/<replacement>/<flags>

Example: %s/Match/Scratch/gi

Flags
-----

global / all matches	g
case insensitive	i


Macros
******

start recording on 'a'		qa	
stop recording        		q	
perform recording 'a' again	@a


vimrc
*****

Vim can be configured with a .vimrc text file

One of the default locations commonly used is ~/.vimrc

Relative number
===============

   ----------------------------- 
  |  3 Another line             |
  |  2 Another line             |
  |  1 Another line             |
  |4   The line with the cursor |
  |  1 Another line             |
  |  2 Another line             |
   ----------------------------- 

To make vim show number on current line and relative number on other
lines as above add to vimrc the line:

set number relativenumber