/*
	The follwing maps define a command line editor modeled after
	the editor 'vi.' There are 3 maps: command, insert, and edit.
	The command map is always the one invoked at the start of a
	command line editing session.  For an explanation of the format
	of a keymap and the functions of this editor, please consult
	the file 4MAP.DOC.
*/
	
/* command mode */
command = {
	ctrl_b,		=>		f8;
	ctrl_d,		=>		f9; 
	ctrl_w,		=>		ctrl_l;	
	ctrl_u,		=>		esc; 
	ctrl_k, 	=>		up; 	/* history */
	ctrl_j, 	=>		down;  	/* history */
	esc, 		=>		changemap edit, `c:\map\on.exe`;
	ins, 		=>		changemap insert, ins, `c:\map\ion.exe`;
}
	

/* insert mode */
insert = {
	ctrl_b,		=>		f8; 
	ctrl_d,		=>		f9; 
	ctrl_f,		=>		f9; 
	ctrl_w,		=>		ctrl_l;	
	ctrl_u,		=>		esc;
	cr, 		=>		changemap command, ins, cr;
	ctrl_c, 	=>		changemap command, ins, ctrl_c; 
	esc, 		=>		changemap edit, ins,
					`c:\map\on.exe`;
	ins, 		=>		changemap command, ins,
					`c:\map\ioff.exe`,;
}
	

/* edit mode */
edit = {
	d, d,	 	=>		esc; 
	d, w,	 	=>		ctrl_r; 
	f		=>		`c:\map\f.exe`;
	h, 		=>		left; 
	l, 		=>		right; 
	sp, 		=>		right; 
	k, 		=>		up;  	/* history */
	j, 		=>		down;  	/* history */
	w, 		=>		ctrl_right; 
	b, 		=>		ctrl_left; 
	x, 		=>		del; 
	r		=>		`c:\map\r.exe`;
	D, 		=>		ctrl_end, left; 
	\0, 		=>		home; 
	$, 		=>		end, left; 
	ctrl_b,		=>		f8; 
	ctrl_d,		=>		f9; 
	ctrl_f,		=>		f9; 
	ctrl_h, 	=>		left; 
	ctrl_k, 	=>		up; 
	ctrl_j, 	=>		down;  	/* history */
	ctrl_w,		=>		ctrl_l;	
	ctrl_u,		=>		esc; 
	up, 		=>		up; 
	down, 		=>		down; 
	right,	 	=>		right; 
	left, 		=>		left; 
	del, 		=>		del; 
	home,	 	=>		home; 
	end, 		=>		end; 
	cr, 		=>		changemap command, cr,`c:\map\off.exe`;
	ctrl_c, 	=>		changemap command, ctrl_c; 
	esc, 		=>		changemap command, `c:\map\off.exe`;
	i, 		=>		changemap insert, ins, `c:\map\ion.exe`;
	a, 		=>		changemap insert, right, ins,
					`c:\map\ion.exe`;
	ins, 		=>		changemap insert, ins, `c:\map\ion.exe`;
	* 		=>		;
}
