*os_390.txt*    For Vim version 6.3.  Last change: 2003 Jun 03


		  VIM REFERENCE MANUAL	  by Ralf Schandl

					*zOS* *z/OS* *OS390* *os390* *MVS*
This file contains the particulars for the z/OS UNIX version of Vim.

1. Open source on z/OS UNIX		|zOS-open-source|
2. Your feedback is needed		|zOS-feedback|
3. Building VIM for z/OS UNIX		|zOS-building|
4. ASCII/EBCDIC dependent scripts	|zOS-has-ebcdic|
5. XTerm Problems			|zOS-xterm|
6. Motif Problems			|zOS-Motif|
7  Bugs					|zOS-Bugs|
8. Known weaknesses			|zOS-weaknesses|
9. Changes				|zOS-changes|

DISCLAIMER: ~
We are IBM employees, but IBM is not responsible for this port. This is our
private fun, and is provided in the hopes that it may be useful to others.

Please note that this software has NOT been submitted to any formal IBM
testing and is published AS IS. Please do not contact IBM for support for this
software, as it is not an official component of any IBM product. IT IS NOT
SUPPORTED, GUARANTEED, OR RELATED WHATSOEVER TO IBM.

Contributors: ~
The port to z/OS UNIX was done by Ralf Schandl for the Redbook mentioned
below.

Changes, bug-reports, or both by:

	David Moore
	Anthony Giorgio <agiorgio@fastmail.fm>
	and others

This document was written by Ralf Schandl and revised by Anthony Giorgio.

==============================================================================
1. Open source on z/OS UNIX		*OS390-open-source* *zOS-open-source*

If you are interested in other Open Source Software on z/OS UNIX, have a
look at the following Redbook:

    Mike MacIsaac et al
    "Open Source Software for z/OS and OS/390 UNIX"
    IBM Form Number: SG24-5944-01
    ISBN: 0738424633

You can find out more information, order a hard copy, or download a PDF
version of these Redbooks at:

	    http://www.redbooks.ibm.com

==============================================================================
2. Your feedback is needed		*OS390-feedback* *zOS-feedback*

Vim should compile, link, and run right out of the box on a standard IBM z/OS
UNIX mainframe.  I've personally run it on z/OS V1R2 and V1R3 machines without
problems.

Many changes had to be done to the code to port Vim to z/OS UNIX. As like
most UNIX programs, Vim contained heavy ASCII dependencies. I might have
missed an ASCII dependency, or it is possible that aLeft> Visual
		 l    "l"	 Normal and Visual
		 <    <Left>	 Normal and Visual
		 >    <Right>	 Normal and Visual
		 ~    "~"	 Normal
		 [    <Left>	 Insert and Replace
		 ]    <Right>	 Insert and Replace
	For example: >
		:set ww=<,>,[,]
<	allows wrap only when cursor keys are used.
	When the movement keys are used in combination with a delete or change
	operator, the <EOL> also counts for a character.  This makes "3h"
	different from "3dh" when the cursor crosses the end of a line.  This
	is also true for "x" and "X", because they do the same as "dl" and
	"dh".  If you use this, you may also want to use the mapping
	":map <BS> X" to make backspace delete the character in front of the
	cursor.
	When 'l' is included, you get a side effect: "yl" on an empty line
	will include the <EOL>, so that "p" will insert a new line.
	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'wildchar'* *'wc'*
'wildchar' 'wc'		number	(Vim default: <Tab>, Vi default: CTRL-E)
			global
			{not in Vi}
	Character you have to type to start wildcard expansion in the
	command-line, as specified with 'wildmode'.
	The character is not recognized when used inside a macro.  See
	'wildcharm' for that.
	Although 'wc' is a number option, you can set it to a special key: >
		:set wc=<Esc>
<	NOTE: This option is set to the Vi default value when 'compatible' is
	set and to the Vim default value when 'compatible' is reset.

						*'wildcharm'* *'wcm'*
'wildcharm' 'wcm'	number	(default: none (0))
			global
			{not in Vi}
	'wildcharm' works exactly like 'wildchar', except that it is
	recognized when used inside a macro. You can find "spare" command-line
	keys suitable for this option by looking at |ex-edit-index|. Normally
	you'll never actually type 'wildcharm', just use it in mappings that
	automatically invoke completion mode, e.g.: >
		:set wcm=<C-Z>
		:cmap ss so $vim/sessions/*.vim<C-Z>
<	Then after typing :ss you can use CTRL-P & CTRL-N.

						*'wildignore'* *'wig'*
'wildignore' 'wig'	string	(default "")
			global
			{not in Vi}
			{not available when compiled without the |+wildignore|
			feature}
	A list of file patterns.  A file that matches with one of these
	patterns is ignored when completing file or directory names.
	The pattern is used like with |:autocmd|, see |autocmd-patterns|.
	Also see 'suffixes'.
	Example: >
		:set wildignore=*.o,*.obj
<	The use of |:set+=| and |:set-=| is preferred when adding or removing
	a pattern from the list.  This avoids problems when a future version
	uses another default.

				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
'wildmenu' 'wmnu'	boolean	(default off)
			global
			{not in Vi}
			{not available if compiled without the |+wildmenu|
			feature}
	When 'wildmenu' is on, command-line completion operates in an enhanced
	mode.  On pressing 'wildchar' (usually <Tab>) to invoke completion,
	the possible matches are shown just above the command line, with the
	first match highlighted (overwriting the status line, if there is
	one).  Keys that show the previous/next match, such as <Tab> or
	CTRL-P/CTRL-N, cause the highlight to move to the appropriate match.
	When 'wildmode' is used, "wildmenu" mode is used where "full" is
	specified.  "longest" and "list" do not start "wildmenu" mode.
	If there are more matches than can fit in the line, a ">" is shown on
	the right and/or a "<" is shown on the left.  The status line scrolls
	as needed.
	The "wildmenu" mode is abandoned when a key is hit that is not used
	for selecting a completion.
	While the "wildmenu" is active the following keys have special
	meanings:

	<Left> <Right>	- select previous/next match (like CTRL-P/CTRL-N)
	<Down>		- in filename/menu name completion: move into a
			  subdirectory or submenu.
	<CR>		- in menu completion, when the cursor is just after a
			  dot: move into a submenu.
	<Up>		- in filename/menu name completion: move up into
			  parent directory or parent menu.

	This makes the menus accessible from the console |console-menus|.

	If you prefer the <Left> and <Right> keys to move the cursor instead
	of selecting a different match, use this: >
		:cnoremap <Left> <Space><BS><Left>
		:cnoremap <Right> <Space><BS><Right>
<
	The "WildMenu" highlighting is used for displaying the current match
	|hl-WildMenu|.

						*'wildmode'* *'wim'*
'wildmode' 'wim'	string	(Vim default: "full")
			global
			{not in Vi}
	Completion mode that is used for the character specified with
	'wildchar'.  It is a comma separated list of up to four parts.	Each
	part specifies what to do for each consecutive use of 'wildchar.  The
	first part specifies the behavior for the first use of 'wildchar',
	The second part for the second use, etc.
	These are the possible values for each part:
	""		Complete only the first match.
	"full"		Complete the next full match.  After the last match,
			the original string is used and then the first match
			again.
	"longest"	Complete till longest common string.  If this doesn't
			result in a longer string, use the next part.
	"longest:full"	Like "longest", but also start 'wildmenu' if it is
			enabled.
	"list"		When more than one match, list all matches.
	"list:full"	When more than one match, list all matches and
			complete first match.
	"list:longest"	When more than one match, list all matches and
			complete till longest common string.
	When there is only a single match, it is fully completed in all cases.

	Examples: >
		:set wildmode=full
<	Complete first full match, next match, etc. (the default) >
		:set wildmode=longest,full
<	Complete longest common string, then each full match >
		:set wildmode=list:full
<	List all matches and complete each full match >
		:set wildmode=list,full
<	List all matches without completing, then each full match >
		:set wildmode=longest,list
<	Complete longest common string, then list alternatives.

						*'winaltkeys'* *'wak'*
'winaltkeys' 'wak'	string	(default "menu")
			global
			{not in Vi}
			{only used in Win32, Motif, GTK and Photon GUI}
	Some GUI versions allow the access to menu entries by using the ALT
	key in combination with a character that appears underlined in the
	menu.  This conflicts with the use of the ALT key for mappings and
	entering special characters.  This option tells what to do:
	  no	Don't use ALT keys for menus.  ALT key combinations can be
		mapped, but there is no automatic handling.  This can then be
		done with the |:simalt| command.
	  yes	ALT key handling is done by the windowing system.  ALT key
		combinations cannot be mapped.
	  menu	Using ALT in combination with a character that is a menu
		shortcut key, will be handled by the windowing system.	Other
		keys can be mapped.
	If the menu is disabled by excluding 'm' from 'guioptions', the ALT
	key is never used for the menu.
	In the Win32 version, the <F10> key is handled like this too, since
	Windows uses it to select a menu.

						*'winheight'* *'wh'* *E591*
'winheight' 'wh'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the +windows
			feature}
	Minimal number of lines for the current window.  This is not a hard
	minimum, Vim will use fewer lines if there is not enough room.	If the
	current window is smaller, its size is increased, at the cost of the
	height of other windows.  Set it to 999 to make the current window
	always fill the screen (although this has the drawback that ":all"
	will create only two windows).  Set it to a small number for normal
	editing.
	Minimum value is 1.
	The height is not adjusted after one of the commands to change the
	height of the current window.
	'winheight' applies to the current window.  Use 'winminheight' to set
	the minimal height for other windows.

			*'winfixheight'* *'wfh'* *'nowinfixheight'* *'nowfh'*
'winfixheight' 'wfh'	boolean	(default off)
			local to window
			{not in Vi}
			{not available when compiled without the +windows
			feature}
	Keep the window height when windows are opened or closed and
	'equalalways' is set.  Set by default for the |preview-window| and
	|quickfix-window|.
	The height may be changed anyway when running out of room.

						*'winminheight'* *'wmh'*
'winminheight' 'wmh'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the +windows
			feature}
	The minimal height of a window, when it's not the current window.
	This is a hard minimum, windows will never become smaller.
	When set to zero, windows may be "squashed" to zero lines (i.e. just a
	status bar) if necessary.  They will return to at least one line when
	they become active (since the cursor has to have somewhere to go.)
	Use 'winheight' to set the minimal height of the current window.
	This option is only checked when making a window smaller.  Don't use a
	large number, it will cause errors when opening more than a few
	windows.  A value of 0 to 3 is reasonable.

						*'winminwidth'* *'wmw'*
'winminwidth' 'wmw'	number	(default 1)
			global
			{not in Vi}
			{not available when compiled without the +vertsplit
			feature}
	The minimal width of a window, when it's not the current window.
	This is a hard minimum, windows will never become smaller.
	When set to zero, windows may be "squashed" to zero columns (i.e. just
	a vertical separator) if necessary.  They will return to at least one
	line when they become active (since the cursor has to have somewhere
	to go.)
	Use 'winwidth' to set the minimal width of the current window.
	This option is only checked when making a window smaller.  Don't use a
	large number, it will cause errors when opening more than a few
	windows.  A value of 0 to 12 is reasonable.

						*'winwidth'* *'wiw'* *E592*
'winwidth' 'wiw'	number	(default 20)
			global
			{not in Vi}
			{not available when compiled without the +vertsplit
			feature}
	Minimal number of columns for the current window.  This is not a hard
	minimum, Vim will use fewer columns if there is not enough room.  If
	the current window is smaller, its size is increased, at the cost of
	the width of other windows.  Set it to 999 to make the current window
	always fill the screen.  Set it to a small number for normal editing.
	The width is not adjusted after one of the commands to change the
	width of the current window.
	'winwidth' applies to the current window.  Use 'winm