mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	doc: Removed t_XX options/keycodes. (#6616)
Closes #4482 TODO: revisit find_key_option_len()
This commit is contained in:
		@@ -13,27 +13,15 @@ Vim's Graphical User Interface				*gui* *GUI*
 | 
				
			|||||||
5. Menus			|menus|
 | 
					5. Menus			|menus|
 | 
				
			||||||
6. Extras			|gui-extras|
 | 
					6. Extras			|gui-extras|
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Other GUI documentation:
 | 
					 | 
				
			||||||
|gui_w32.txt|	For specific items of the Win32 GUI.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
1. Starting the GUI				*gui-start* *E229* *E233*
 | 
					1. Starting the GUI				*gui-start* *E229* *E233*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
First you must make sure you actually have a version of Vim with the GUI code
 | 
					 | 
				
			||||||
included.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
How to start the GUI depends on the system used.  Mostly you can run the
 | 
					 | 
				
			||||||
GUI version of Vim with:
 | 
					 | 
				
			||||||
    gvim [options] [files...]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				*ginit.vim* *gui-init* *gvimrc* *$MYGVIMRC*
 | 
									*ginit.vim* *gui-init* *gvimrc* *$MYGVIMRC*
 | 
				
			||||||
The gvimrc file is where GUI-specific startup commands should be placed.  It
 | 
					The gvimrc file is where GUI-specific startup commands should be placed.  It
 | 
				
			||||||
is always sourced after the |init.vim| file.  If you have one then the 
 | 
					is always sourced after the |init.vim| file.  If you have one then the 
 | 
				
			||||||
$MYGVIMRC environment variable has its name.
 | 
					$MYGVIMRC environment variable has its name.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When the GUI starts up initializations are carried out, in this order:
 | 
					When the GUI starts up initializations are carried out, in this order:
 | 
				
			||||||
- The 'term' option is set to "builtin_gui" and terminal options are reset to
 | 
					 | 
				
			||||||
  their default value for the GUI |terminal-options|.
 | 
					 | 
				
			||||||
- If the system menu file exists, it is sourced.  The name of this file is
 | 
					- If the system menu file exists, it is sourced.  The name of this file is
 | 
				
			||||||
  normally "$VIMRUNTIME/menu.vim".  You can check this with ":version".  Also
 | 
					  normally "$VIMRUNTIME/menu.vim".  You can check this with ":version".  Also
 | 
				
			||||||
  see |$VIMRUNTIME|.  To skip loading the system menu include 'M' in
 | 
					  see |$VIMRUNTIME|.  To skip loading the system menu include 'M' in
 | 
				
			||||||
@@ -92,8 +80,7 @@ and only the first one that is found is read.
 | 
				
			|||||||
:winp[os] {X} {Y}							*E466*
 | 
					:winp[os] {X} {Y}							*E466*
 | 
				
			||||||
		Put the GUI vim window at the given {X} and {Y} coordinates.
 | 
							Put the GUI vim window at the given {X} and {Y} coordinates.
 | 
				
			||||||
		The coordinates should specify the position in pixels of the
 | 
							The coordinates should specify the position in pixels of the
 | 
				
			||||||
		top left corner of the window.  Does not work in all versions.
 | 
							top left corner of the window.
 | 
				
			||||||
		Does work in an (new) xterm |xterm-color|.
 | 
					 | 
				
			||||||
		When the GUI window has not been opened yet, the values are
 | 
							When the GUI window has not been opened yet, the values are
 | 
				
			||||||
		remembered until the window is opened.  The position is
 | 
							remembered until the window is opened.  The position is
 | 
				
			||||||
		adjusted to make the window fit on the screen (if possible).
 | 
							adjusted to make the window fit on the screen (if possible).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -148,7 +148,6 @@ Special issues ~
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
GUI ~
 | 
					GUI ~
 | 
				
			||||||
|gui.txt|	Graphical User Interface (GUI)
 | 
					|gui.txt|	Graphical User Interface (GUI)
 | 
				
			||||||
|gui_w32.txt|	Win32 GUI
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Interfaces ~
 | 
					Interfaces ~
 | 
				
			||||||
|if_cscop.txt|	using Cscope with Vim
 | 
					|if_cscop.txt|	using Cscope with Vim
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -445,7 +445,6 @@ notation	meaning		    equivalent	decimal value(s)	~
 | 
				
			|||||||
<M-...>		alt-key or meta-key		*META* *meta* *alt* *<M-*
 | 
					<M-...>		alt-key or meta-key		*META* *meta* *alt* *<M-*
 | 
				
			||||||
<A-...>		same as <M-...>			*<A-*
 | 
					<A-...>		same as <M-...>			*<A-*
 | 
				
			||||||
<D-...>		command-key or "super" key	*<D-*
 | 
					<D-...>		command-key or "super" key	*<D-*
 | 
				
			||||||
<t_xx>		key with "xx" entry in termcap
 | 
					 | 
				
			||||||
-----------------------------------------------------------------------
 | 
					-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note: The shifted cursor keys, the help key, and the undo key are only
 | 
					Note: The shifted cursor keys, the help key, and the undo key are only
 | 
				
			||||||
@@ -480,7 +479,6 @@ the ":map" command.  The rules are:
 | 
				
			|||||||
	   <S-F11>		Shifted function key 11
 | 
						   <S-F11>		Shifted function key 11
 | 
				
			||||||
	   <M-a>		Meta- a  ('a' with bit 8 set)
 | 
						   <M-a>		Meta- a  ('a' with bit 8 set)
 | 
				
			||||||
	   <M-A>		Meta- A  ('A' with bit 8 set)
 | 
						   <M-A>		Meta- A  ('A' with bit 8 set)
 | 
				
			||||||
	   <t_kd>		"kd" termcap entry (cursor down key)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
The <> notation uses <lt> to escape the special meaning of key names.  Using a
 | 
					The <> notation uses <lt> to escape the special meaning of key names.  Using a
 | 
				
			||||||
backslash also works, but only when 'cpoptions' does not include the 'B' flag.
 | 
					backslash also works, but only when 'cpoptions' does not include the 'B' flag.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -453,42 +453,30 @@ See |:verbose-cmd| for more information.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
1.5 MAPPING SPECIAL KEYS				*:map-special-keys*
 | 
					1.5 MAPPING SPECIAL KEYS				*:map-special-keys*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are three ways to map a special key:
 | 
					There are two ways to map a special key:
 | 
				
			||||||
1. The Vi-compatible method: Map the key code.  Often this is a sequence that
 | 
					1. The Vi-compatible method: Map the key code.  Often this is a sequence that
 | 
				
			||||||
   starts with <Esc>.  To enter a mapping like this you type ":map " and then
 | 
					   starts with <Esc>.  To enter a mapping like this you type ":map " and then
 | 
				
			||||||
   you have to type CTRL-V before hitting the function key.  Note that when
 | 
					   you have to type CTRL-V before hitting the function key.  Note that when
 | 
				
			||||||
   the key code for the key is in the termcap (the t_ options), it will
 | 
					   the key code for the key is in the termcap, it will automatically be
 | 
				
			||||||
   automatically be translated into the internal code and become the second
 | 
					   translated into the internal code and become the second way of mapping
 | 
				
			||||||
   way of mapping (unless the 'k' flag is included in 'cpoptions').
 | 
					   (unless the 'k' flag is included in 'cpoptions').
 | 
				
			||||||
2. The second method is to use the internal code for the function key.  To
 | 
					2. The second method is to use the internal code for the function key.  To
 | 
				
			||||||
   enter such a mapping type CTRL-K and then hit the function key, or use
 | 
					   enter such a mapping type CTRL-K and then hit the function key, or use
 | 
				
			||||||
   the form "#1", "#2", .. "#9", "#0", "<Up>", "<S-Down>", "<S-F7>", etc.
 | 
					   the form "#1", "#2", .. "#9", "#0", "<Up>", "<S-Down>", "<S-F7>", etc.
 | 
				
			||||||
   (see table of keys |key-notation|, all keys from <Up> can be used).  The
 | 
					   (see table of keys |key-notation|, all keys from <Up> can be used).  The
 | 
				
			||||||
   first ten function keys can be defined in two ways: Just the number, like
 | 
					   first ten function keys can be defined in two ways: Just the number, like
 | 
				
			||||||
   "#2", and with "<F>", like "<F2>".  Both stand for function key 2.  "#0"
 | 
					   "#2", and with "<F>", like "<F2>".  Both stand for function key 2.  "#0"
 | 
				
			||||||
   refers to function key 10, defined with option 't_f10', which may be
 | 
					   refers to function key 10.  The <> form cannot be used when 'cpoptions'
 | 
				
			||||||
   function key zero on some keyboards.  The <> form cannot be used when
 | 
					   includes the '<' flag.
 | 
				
			||||||
   'cpoptions' includes the '<' flag.
 | 
					 | 
				
			||||||
3. Use the termcap entry, with the form <t_xx>, where "xx" is the name of the
 | 
					 | 
				
			||||||
   termcap entry.  Any string entry can be used.  For example: >
 | 
					 | 
				
			||||||
     :map <t_F3> G
 | 
					 | 
				
			||||||
<  Maps function key 13 to "G".  This does not work if 'cpoptions' includes
 | 
					 | 
				
			||||||
   the '<' flag.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The advantage of the second and third method is that the mapping will work on
 | 
					 | 
				
			||||||
different terminals without modification (the function key will be
 | 
					 | 
				
			||||||
translated into the same internal code or the actual key code, no matter what
 | 
					 | 
				
			||||||
terminal you are using.  The termcap must be correct for this to work, and you
 | 
					 | 
				
			||||||
must use the same mappings).
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
DETAIL: Vim first checks if a sequence from the keyboard is mapped.  If it
 | 
					DETAIL: Vim first checks if a sequence from the keyboard is mapped.  If it
 | 
				
			||||||
isn't the terminal key codes are tried (see |terminal-options|).  If a
 | 
					isn't the terminal key codes are tried.  If a terminal code is found it is
 | 
				
			||||||
terminal code is found it is replaced with the internal code.  Then the check
 | 
					replaced with the internal code.  Then the check for a mapping is done again
 | 
				
			||||||
for a mapping is done again (so you can map an internal code to something
 | 
					(so you can map an internal code to something else).  What is written into the
 | 
				
			||||||
else).  What is written into the script file depends on what is recognized.
 | 
					script file depends on what is recognized. If the terminal key code was
 | 
				
			||||||
If the terminal key code was recognized as a mapping the key code itself is
 | 
					recognized as a mapping the key code itself is written to the script file.  If
 | 
				
			||||||
written to the script file.  If it was recognized as a terminal code the
 | 
					it was recognized as a terminal code the internal code is written to the
 | 
				
			||||||
internal code is written to the script file.
 | 
					script file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1.6 SPECIAL CHARACTERS					*:map-special-chars*
 | 
					1.6 SPECIAL CHARACTERS					*:map-special-chars*
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,26 +14,8 @@ For an introduction to the most common features, see |usr_45.txt| in the user
 | 
				
			|||||||
manual.
 | 
					manual.
 | 
				
			||||||
For changing the language of messages and menus see |mlang.txt|.
 | 
					For changing the language of messages and menus see |mlang.txt|.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{not available when compiled without the |+multi_byte| feature}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1.  Getting started			|mbyte-first|
 | 
					 | 
				
			||||||
2.  Locale				|mbyte-locale|
 | 
					 | 
				
			||||||
3.  Encoding				|mbyte-encoding|
 | 
					 | 
				
			||||||
4.  Using a terminal			|mbyte-terminal|
 | 
					 | 
				
			||||||
5.  Fonts on X11			|mbyte-fonts-X11|
 | 
					 | 
				
			||||||
6.  Fonts on MS-Windows			|mbyte-fonts-MSwin|
 | 
					 | 
				
			||||||
7.  Input on X11			|mbyte-XIM|
 | 
					 | 
				
			||||||
8.  Input on MS-Windows			|mbyte-IME|
 | 
					 | 
				
			||||||
9.  Input with a keymap			|mbyte-keymap|
 | 
					 | 
				
			||||||
10. Using UTF-8				|mbyte-utf8|
 | 
					 | 
				
			||||||
11. Overview of options			|mbyte-options|
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTE: This file contains UTF-8 characters.  These may show up as strange
 | 
					 | 
				
			||||||
characters or boxes when using another encoding.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
1. Getting started					*mbyte-first*
 | 
					Getting started						*mbyte-first*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This is a summary of the multibyte features in Vim.  If you are lucky it works
 | 
					This is a summary of the multibyte features in Vim.  If you are lucky it works
 | 
				
			||||||
as described and you can start using Vim without much trouble.  If something
 | 
					as described and you can start using Vim without much trouble.  If something
 | 
				
			||||||
@@ -89,8 +71,7 @@ be displayed and edited correctly.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
For the GUI you must select fonts that work with UTF-8.  This
 | 
					For the GUI you must select fonts that work with UTF-8.  This
 | 
				
			||||||
is the difficult part.  It depends on the system you are using, the locale and
 | 
					is the difficult part.  It depends on the system you are using, the locale and
 | 
				
			||||||
a few other things.  See the chapters on fonts: |mbyte-fonts-X11| for
 | 
					a few other things.
 | 
				
			||||||
X-Windows and |mbyte-fonts-MSwin| for MS-Windows.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
For X11 you can set the 'guifontset' option to a list of fonts that together
 | 
					For X11 you can set the 'guifontset' option to a list of fonts that together
 | 
				
			||||||
cover the characters that are used.  Example for Korean: >
 | 
					cover the characters that are used.  Example for Korean: >
 | 
				
			||||||
@@ -120,7 +101,7 @@ The options 'iminsert', 'imsearch' and 'imcmdline' can be used to chose
 | 
				
			|||||||
the different input methods or disable them temporarily.
 | 
					the different input methods or disable them temporarily.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
2.  Locale						*mbyte-locale*
 | 
					Locale							*mbyte-locale*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The easiest setup is when your whole system uses the locale you want to work
 | 
					The easiest setup is when your whole system uses the locale you want to work
 | 
				
			||||||
in.  But it's also possible to set the locale for one shell you are working
 | 
					in.  But it's also possible to set the locale for one shell you are working
 | 
				
			||||||
@@ -209,7 +190,7 @@ Or specify $LANG when starting Vim:
 | 
				
			|||||||
You could make a small shell script for this.
 | 
					You could make a small shell script for this.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
3.  Encoding				*mbyte-encoding*
 | 
					Encoding				*mbyte-encoding*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In Nvim UTF-8 is always used internally to encode characters.
 | 
					In Nvim UTF-8 is always used internally to encode characters.
 | 
				
			||||||
 This applies to all the places where text is used, including buffers (files
 | 
					 This applies to all the places where text is used, including buffers (files
 | 
				
			||||||
@@ -418,49 +399,7 @@ neither of them can be found Vim will still work but some conversions won't be
 | 
				
			|||||||
possible.
 | 
					possible.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
4. Using a terminal					*mbyte-terminal*
 | 
					Fonts on X11						*mbyte-fonts-X11*
 | 
				
			||||||
 | 
					 | 
				
			||||||
The GUI fully supports multi-byte characters.  It is also possible in a
 | 
					 | 
				
			||||||
terminal, if the terminal supports the same encoding that Vim uses.  Thus this
 | 
					 | 
				
			||||||
is less flexible.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For example, you can run Vim in a xterm with added multi-byte support and/or
 | 
					 | 
				
			||||||
|XIM|.  Examples are kterm (Kanji term) and hanterm (for Korean), Eterm
 | 
					 | 
				
			||||||
(Enlightened terminal) and rxvt.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
UTF-8 IN XFREE86 XTERM					*UTF8-xterm*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This is a short explanation of how to use UTF-8 character encoding in the
 | 
					 | 
				
			||||||
xterm that comes with XFree86 by Thomas Dickey (text by Markus Kuhn).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Get the latest xterm version which has now UTF-8 support:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	http://invisible-island.net/xterm/xterm.html
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Compile it with "./configure --enable-wide-chars ; make"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Also get the ISO 10646-1 version of various fonts, which is available on
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
and install the font as described in the README file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Now start xterm with >
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  xterm -u8 -fn -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
 | 
					 | 
				
			||||||
or, for bigger character: >
 | 
					 | 
				
			||||||
  xterm -u8 -fn -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
and you will have a working UTF-8 terminal emulator.  Try both >
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   cat utf-8-demo.txt
 | 
					 | 
				
			||||||
   vim utf-8-demo.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
with the demo text that comes with ucs-fonts.tar.gz in order to see
 | 
					 | 
				
			||||||
whether there are any problems with UTF-8 in your xterm.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					 | 
				
			||||||
5.  Fonts on X11					*mbyte-fonts-X11*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Unfortunately, using fonts in X11 is complicated.  The name of a single-byte
 | 
					Unfortunately, using fonts in X11 is complicated.  The name of a single-byte
 | 
				
			||||||
font is a long string.  For multi-byte fonts we need several of these...
 | 
					font is a long string.  For multi-byte fonts we need several of these...
 | 
				
			||||||
@@ -596,20 +535,7 @@ Also make sure that you set 'guifontset' before setting fonts for highlight
 | 
				
			|||||||
groups.
 | 
					groups.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
6.  Fonts on MS-Windows				*mbyte-fonts-MSwin*
 | 
					Input on X11					*mbyte-XIM*
 | 
				
			||||||
 | 
					 | 
				
			||||||
The simplest is to use the font dialog to select fonts and try them out.  You
 | 
					 | 
				
			||||||
can find this at the "Edit/Select Font..." menu.  Once you find a font name
 | 
					 | 
				
			||||||
that works well you can use this command to see its name: >
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	:set guifont
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Then add a command to your |ginit.vim| file to set 'guifont': >
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	:set guifont=courier_new:h12
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					 | 
				
			||||||
7.  Input on X11				*mbyte-XIM*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
X INPUT METHOD (XIM) BACKGROUND			*XIM* *xim* *x-input-method*
 | 
					X INPUT METHOD (XIM) BACKGROUND			*XIM* *xim* *x-input-method*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -768,7 +694,7 @@ For example, when you are using kinput2 as |IM-server| and sh, >
 | 
				
			|||||||
<
 | 
					<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
8.  Input on MS-Windows					*mbyte-IME*
 | 
					Input on MS-Windows					*mbyte-IME*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(Windows IME support)				*multibyte-ime* *IME*
 | 
					(Windows IME support)				*multibyte-ime* *IME*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -842,7 +768,7 @@ Cursor color when IME or XIM is on				*CursorIM*
 | 
				
			|||||||
    status is on.
 | 
					    status is on.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
9. Input with a keymap					*mbyte-keymap*
 | 
					Input with a keymap					*mbyte-keymap*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When the keyboard doesn't produce the characters you want to enter in your
 | 
					When the keyboard doesn't produce the characters you want to enter in your
 | 
				
			||||||
text, you can use the 'keymap' option.  This will translate one or more
 | 
					text, you can use the 'keymap' option.  This will translate one or more
 | 
				
			||||||
@@ -1090,7 +1016,7 @@ Combining forms:
 | 
				
			|||||||
ﭏ    0xfb4f  Xal  alef-lamed
 | 
					ﭏ    0xfb4f  Xal  alef-lamed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
10. Using UTF-8				*mbyte-utf8* *UTF-8* *utf-8* *utf8*
 | 
					Using UTF-8				*mbyte-utf8* *UTF-8* *utf-8* *utf8*
 | 
				
			||||||
							*Unicode* *unicode*
 | 
												*Unicode* *unicode*
 | 
				
			||||||
The Unicode character set was designed to include all characters from other
 | 
					The Unicode character set was designed to include all characters from other
 | 
				
			||||||
character sets.  Therefore it is possible to write text in any language using
 | 
					character sets.  Therefore it is possible to write text in any language using
 | 
				
			||||||
@@ -1222,7 +1148,7 @@ not everybody is able to type a composing character.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
11. Overview of options					*mbyte-options*
 | 
					Overview of options					*mbyte-options*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
These options are relevant for editing multi-byte files.  Check the help in
 | 
					These options are relevant for editing multi-byte files.  Check the help in
 | 
				
			||||||
options.txt for detailed information.
 | 
					options.txt for detailed information.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -130,39 +130,6 @@ A few special texts:
 | 
				
			|||||||
	Last set from error handler ~
 | 
						Last set from error handler ~
 | 
				
			||||||
		Option was cleared when evaluating it resulted in an error.
 | 
							Option was cleared when evaluating it resulted in an error.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{not available when compiled without the |+eval| feature}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*:set-termcap* *E522*
 | 
					 | 
				
			||||||
For {option} the form "t_xx" may be used to set a terminal option.  This will
 | 
					 | 
				
			||||||
override the value from the termcap.  You can then use it in a mapping.  If
 | 
					 | 
				
			||||||
the "xx" part contains special characters, use the <t_xx> form: >
 | 
					 | 
				
			||||||
	:set <t_#4>=^[Ot
 | 
					 | 
				
			||||||
This can also be used to translate a special code for a normal key.  For
 | 
					 | 
				
			||||||
example, if Alt-b produces <Esc>b, use this: >
 | 
					 | 
				
			||||||
	:set <M-b>=^[b
 | 
					 | 
				
			||||||
(the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
 | 
					 | 
				
			||||||
The advantage over a mapping is that it works in all situations.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You can define any key codes, e.g.: >
 | 
					 | 
				
			||||||
	:set t_xy=^[foo;
 | 
					 | 
				
			||||||
There is no warning for using a name that isn't recognized.  You can map these
 | 
					 | 
				
			||||||
codes as you like: >
 | 
					 | 
				
			||||||
	:map <t_xy> something
 | 
					 | 
				
			||||||
<								*E846*
 | 
					 | 
				
			||||||
When a key code is not set, it's like it does not exist.  Trying to get its
 | 
					 | 
				
			||||||
value will result in an error: >
 | 
					 | 
				
			||||||
	:set t_kb=
 | 
					 | 
				
			||||||
	:set t_kb
 | 
					 | 
				
			||||||
	E846: Key code not set: t_kb
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
 | 
					 | 
				
			||||||
security reasons.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The listing from ":set" looks different from Vi.  Long string options are put
 | 
					 | 
				
			||||||
at the end of the list.  The number of options is quite large.  The output of
 | 
					 | 
				
			||||||
"set all" probably does not fit on the screen, causing Vim to give the
 | 
					 | 
				
			||||||
|more-prompt|.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*option-backslash*
 | 
												*option-backslash*
 | 
				
			||||||
To include white space in a string option value it has to be preceded with a
 | 
					To include white space in a string option value it has to be preceded with a
 | 
				
			||||||
backslash.  To include a backslash you have to use two.  Effectively this
 | 
					backslash.  To include a backslash you have to use two.  Effectively this
 | 
				
			||||||
@@ -628,7 +595,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 | 
				
			|||||||
	See Unicode Standard Annex #11 (http://www.unicode.org/reports/tr11).
 | 
						See Unicode Standard Annex #11 (http://www.unicode.org/reports/tr11).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Vim may set this option automatically at startup time when Vim is
 | 
						Vim may set this option automatically at startup time when Vim is
 | 
				
			||||||
	compiled with the |+termresponse| feature and if |t_u7| is set to the
 | 
						compiled with the |+termresponse| feature and if t_u7 is set to the
 | 
				
			||||||
	escape sequence to request cursor position report.
 | 
						escape sequence to request cursor position report.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			*'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
 | 
								*'autochdir'* *'acd'* *'noautochdir'* *'noacd'*
 | 
				
			||||||
@@ -2840,8 +2807,6 @@ A jump table for the options with a short description can be found at |Q_op|.
 | 
				
			|||||||
			blinking off you can use "blinkon0".  The cursor only
 | 
								blinking off you can use "blinkon0".  The cursor only
 | 
				
			||||||
			blinks when Vim is waiting for input, not while
 | 
								blinks when Vim is waiting for input, not while
 | 
				
			||||||
			executing a command.
 | 
								executing a command.
 | 
				
			||||||
			To make the cursor blink in an xterm, see
 | 
					 | 
				
			||||||
			|xterm-blink|.
 | 
					 | 
				
			||||||
		{group-name}
 | 
							{group-name}
 | 
				
			||||||
			a highlight group name, that sets the color and font
 | 
								a highlight group name, that sets the color and font
 | 
				
			||||||
			for the cursor
 | 
								for the cursor
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -357,8 +357,7 @@ terminal-independent two character codes.  This means that they can be used
 | 
				
			|||||||
in the same way on different kinds of terminals.  The first character of a
 | 
					in the same way on different kinds of terminals.  The first character of a
 | 
				
			||||||
key code is 0x80 or 128, shown on the screen as "~@".  The second one can be
 | 
					key code is 0x80 or 128, shown on the screen as "~@".  The second one can be
 | 
				
			||||||
found in the list |key-notation|.  Any of these codes can also be entered
 | 
					found in the list |key-notation|.  Any of these codes can also be entered
 | 
				
			||||||
with CTRL-V followed by the three digit decimal code.  This does NOT work for
 | 
					with CTRL-V followed by the three digit decimal code.
 | 
				
			||||||
the <t_xx> termcap codes, these can only be used in mappings.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
							*:source_crnl* *W15*
 | 
												*:source_crnl* *W15*
 | 
				
			||||||
Windows: Files that are read with ":source" normally have <CR><NL> <EOL>s.
 | 
					Windows: Files that are read with ":source" normally have <CR><NL> <EOL>s.
 | 
				
			||||||
@@ -369,12 +368,6 @@ something like ":map <F1> :help^M", where "^M" is a <CR>.  If the first line
 | 
				
			|||||||
ends in a <CR>, but following ones don't, you will get an error message,
 | 
					ends in a <CR>, but following ones don't, you will get an error message,
 | 
				
			||||||
because the <CR> from the first lines will be lost.
 | 
					because the <CR> from the first lines will be lost.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mac Classic: Files that are read with ":source" normally have <CR> <EOL>s.
 | 
					 | 
				
			||||||
These always work.  If you are using a file with <NL> <EOL>s (for example, a
 | 
					 | 
				
			||||||
file made on Unix), this will be recognized if 'fileformats' is not empty and
 | 
					 | 
				
			||||||
the first line does not end in a <CR>.  Be careful not to use a file with <NL>
 | 
					 | 
				
			||||||
linebreaks which has a <CR> in first line.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
On other systems, Vim expects ":source"ed files to end in a <NL>.  These
 | 
					On other systems, Vim expects ":source"ed files to end in a <NL>.  These
 | 
				
			||||||
always work.  If you are using a file with <CR><NL> <EOL>s (for example, a
 | 
					always work.  If you are using a file with <CR><NL> <EOL>s (for example, a
 | 
				
			||||||
file made on Windows), all lines will have a trailing <CR>.  This may cause
 | 
					file made on Windows), all lines will have a trailing <CR>.  This may cause
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4636,8 +4636,7 @@ mentioned for the default values. See |:verbose-cmd| for more information.
 | 
				
			|||||||
					*highlight-args* *E416* *E417* *E423*
 | 
										*highlight-args* *E416* *E417* *E423*
 | 
				
			||||||
There are three types of terminals for highlighting:
 | 
					There are three types of terminals for highlighting:
 | 
				
			||||||
term	a normal terminal (vt100, xterm)
 | 
					term	a normal terminal (vt100, xterm)
 | 
				
			||||||
cterm	a color terminal (Windows console, color-xterm, these have the "Co"
 | 
					cterm	a color terminal (Windows console, color-xterm)
 | 
				
			||||||
	termcap entry)
 | 
					 | 
				
			||||||
gui	the GUI
 | 
					gui	the GUI
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For each type the highlighting can be given.  This makes it possible to use
 | 
					For each type the highlighting can be given.  This makes it possible to use
 | 
				
			||||||
@@ -4677,21 +4676,12 @@ stop={term-list}				*term-list* *highlight-stop*
 | 
				
			|||||||
	highlighted area.  This should undo the "start" argument.
 | 
						highlighted area.  This should undo the "start" argument.
 | 
				
			||||||
	Otherwise the screen will look messed up.
 | 
						Otherwise the screen will look messed up.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	The {term-list} can have two forms:
 | 
					        {term-list} is a a string with escape sequences. This is any string of
 | 
				
			||||||
 | 
					        characters, except that it can't start with "t_" and blanks are not
 | 
				
			||||||
	1. A string with escape sequences.
 | 
					        allowed.  The <> notation is recognized here, so you can use things
 | 
				
			||||||
	   This is any string of characters, except that it can't start with
 | 
					        like "<Esc>" and "<Space>".  Example:
 | 
				
			||||||
	   "t_" and blanks are not allowed.  The <> notation is recognized
 | 
					 | 
				
			||||||
	   here, so you can use things like "<Esc>" and "<Space>".  Example:
 | 
					 | 
				
			||||||
		start=<Esc>[27h;<Esc>[<Space>r;
 | 
							start=<Esc>[27h;<Esc>[<Space>r;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	2. A list of terminal codes.
 | 
					 | 
				
			||||||
	   Each terminal code has the form "t_xx", where "xx" is the name of
 | 
					 | 
				
			||||||
	   the termcap entry.  The codes have to be separated with commas.
 | 
					 | 
				
			||||||
	   White space is not allowed.	Example:
 | 
					 | 
				
			||||||
		start=t_C1,t_BL
 | 
					 | 
				
			||||||
	   The terminal codes must exist for this to work.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
2. highlight arguments for color terminals
 | 
					2. highlight arguments for color terminals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -4716,7 +4706,7 @@ ctermbg={color-nr}				*highlight-ctermbg*
 | 
				
			|||||||
	unpredictable.	See your xterm documentation for the defaults.	The
 | 
						unpredictable.	See your xterm documentation for the defaults.	The
 | 
				
			||||||
	colors for a color-xterm can be changed from the .Xdefaults file.
 | 
						colors for a color-xterm can be changed from the .Xdefaults file.
 | 
				
			||||||
	Unfortunately this means that it's not possible to get the same colors
 | 
						Unfortunately this means that it's not possible to get the same colors
 | 
				
			||||||
	for each user.	See |xterm-color| for info about color xterms.
 | 
						for each user.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	The MSDOS standard colors are fixed (in a console window), so these
 | 
						The MSDOS standard colors are fixed (in a console window), so these
 | 
				
			||||||
	have been used for the names.  But the meaning of color names in X11
 | 
						have been used for the names.  But the meaning of color names in X11
 | 
				
			||||||
@@ -5209,32 +5199,6 @@ When splitting the window, the new window will use the original syntax.
 | 
				
			|||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
17. Color xterms				*xterm-color* *color-xterm*
 | 
					17. Color xterms				*xterm-color* *color-xterm*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Most color xterms have only eight colors.  If you don't get colors with the
 | 
					 | 
				
			||||||
default setup, it should work with these lines in your vimrc: >
 | 
					 | 
				
			||||||
   :if &term =~ "xterm"
 | 
					 | 
				
			||||||
   :  if has("terminfo")
 | 
					 | 
				
			||||||
   :	set t_Co=8
 | 
					 | 
				
			||||||
   :	set t_Sf=<Esc>[3%p1%dm
 | 
					 | 
				
			||||||
   :	set t_Sb=<Esc>[4%p1%dm
 | 
					 | 
				
			||||||
   :  else
 | 
					 | 
				
			||||||
   :	set t_Co=8
 | 
					 | 
				
			||||||
   :	set t_Sf=<Esc>[3%dm
 | 
					 | 
				
			||||||
   :	set t_Sb=<Esc>[4%dm
 | 
					 | 
				
			||||||
   :  endif
 | 
					 | 
				
			||||||
   :endif
 | 
					 | 
				
			||||||
<	[<Esc> is a real escape, type CTRL-V <Esc>]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You might want to change the first "if" to match the name of your terminal,
 | 
					 | 
				
			||||||
e.g. "dtterm" instead of "xterm".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note: Do these settings BEFORE doing ":syntax on".  Otherwise the colors may
 | 
					 | 
				
			||||||
be wrong.
 | 
					 | 
				
			||||||
							*xiterm* *rxvt*
 | 
					 | 
				
			||||||
The above settings have been mentioned to work for xiterm and rxvt too.
 | 
					 | 
				
			||||||
But for using 16 colors in an rxvt these should work with terminfo: >
 | 
					 | 
				
			||||||
	:set t_AB=<Esc>[%?%p1%{8}%<%t25;%p1%{40}%+%e5;%p1%{32}%+%;%dm
 | 
					 | 
				
			||||||
	:set t_AF=<Esc>[%?%p1%{8}%<%t22;%p1%{30}%+%e1;%p1%{22}%+%;%dm
 | 
					 | 
				
			||||||
<
 | 
					 | 
				
			||||||
							*colortest.vim*
 | 
												*colortest.vim*
 | 
				
			||||||
To test your color setup, a file has been included in the Vim distribution.
 | 
					To test your color setup, a file has been included in the Vim distribution.
 | 
				
			||||||
To use it, execute this command: >
 | 
					To use it, execute this command: >
 | 
				
			||||||
@@ -5245,111 +5209,6 @@ output lighter foreground colors, even though the number of colors is defined
 | 
				
			|||||||
at 8.  Therefore Vim sets the "cterm=bold" attribute for light foreground
 | 
					at 8.  Therefore Vim sets the "cterm=bold" attribute for light foreground
 | 
				
			||||||
colors, when 't_Co' is 8.
 | 
					colors, when 't_Co' is 8.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							*xfree-xterm*
 | 
					 | 
				
			||||||
To get 16 colors or more, get the newest xterm version (which should be
 | 
					 | 
				
			||||||
included with XFree86 3.3 and later).  You can also find the latest version
 | 
					 | 
				
			||||||
at: >
 | 
					 | 
				
			||||||
	http://invisible-island.net/xterm/xterm.html
 | 
					 | 
				
			||||||
Here is a good way to configure it.  This uses 88 colors and enables the
 | 
					 | 
				
			||||||
termcap-query feature, which allows Vim to ask the xterm how many colors it
 | 
					 | 
				
			||||||
supports. >
 | 
					 | 
				
			||||||
	./configure --disable-bold-color --enable-88-color --enable-tcap-query
 | 
					 | 
				
			||||||
If you only get 8 colors, check the xterm compilation settings.
 | 
					 | 
				
			||||||
(Also see |UTF8-xterm| for using this xterm with UTF-8 character encoding).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This xterm should work with these lines in your vimrc (for 16 colors): >
 | 
					 | 
				
			||||||
   :if has("terminfo")
 | 
					 | 
				
			||||||
   :  set t_Co=16
 | 
					 | 
				
			||||||
   :  set t_AB=<Esc>[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
 | 
					 | 
				
			||||||
   :  set t_AF=<Esc>[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
 | 
					 | 
				
			||||||
   :else
 | 
					 | 
				
			||||||
   :  set t_Co=16
 | 
					 | 
				
			||||||
   :  set t_Sf=<Esc>[3%dm
 | 
					 | 
				
			||||||
   :  set t_Sb=<Esc>[4%dm
 | 
					 | 
				
			||||||
   :endif
 | 
					 | 
				
			||||||
<	[<Esc> is a real escape, type CTRL-V <Esc>]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Without |+terminfo|, Vim will recognize these settings, and automatically
 | 
					 | 
				
			||||||
translate cterm colors of 8 and above to "<Esc>[9%dm" and "<Esc>[10%dm".
 | 
					 | 
				
			||||||
Colors above 16 are also translated automatically.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
For 256 colors this has been reported to work: >
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   :set t_AB=<Esc>[48;5;%dm
 | 
					 | 
				
			||||||
   :set t_AF=<Esc>[38;5;%dm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Or just set the TERM environment variable to "xterm-color" or "xterm-16color"
 | 
					 | 
				
			||||||
and try if that works.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
You probably want to use these X resources (in your ~/.Xdefaults file):
 | 
					 | 
				
			||||||
	XTerm*color0:			#000000
 | 
					 | 
				
			||||||
	XTerm*color1:			#c00000
 | 
					 | 
				
			||||||
	XTerm*color2:			#008000
 | 
					 | 
				
			||||||
	XTerm*color3:			#808000
 | 
					 | 
				
			||||||
	XTerm*color4:			#0000c0
 | 
					 | 
				
			||||||
	XTerm*color5:			#c000c0
 | 
					 | 
				
			||||||
	XTerm*color6:			#008080
 | 
					 | 
				
			||||||
	XTerm*color7:			#c0c0c0
 | 
					 | 
				
			||||||
	XTerm*color8:			#808080
 | 
					 | 
				
			||||||
	XTerm*color9:			#ff6060
 | 
					 | 
				
			||||||
	XTerm*color10:			#00ff00
 | 
					 | 
				
			||||||
	XTerm*color11:			#ffff00
 | 
					 | 
				
			||||||
	XTerm*color12:			#8080ff
 | 
					 | 
				
			||||||
	XTerm*color13:			#ff40ff
 | 
					 | 
				
			||||||
	XTerm*color14:			#00ffff
 | 
					 | 
				
			||||||
	XTerm*color15:			#ffffff
 | 
					 | 
				
			||||||
	Xterm*cursorColor:		Black
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Note: The cursorColor is required to work around a bug, which changes the
 | 
					 | 
				
			||||||
cursor color to the color of the last drawn text.  This has been fixed by a
 | 
					 | 
				
			||||||
newer version of xterm, but not everybody is using it yet.]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To get these right away, reload the .Xdefaults file to the X Option database
 | 
					 | 
				
			||||||
Manager (you only need to do this when you just changed the .Xdefaults file): >
 | 
					 | 
				
			||||||
  xrdb -merge ~/.Xdefaults
 | 
					 | 
				
			||||||
<
 | 
					 | 
				
			||||||
					*xterm-blink* *xterm-blinking-cursor*
 | 
					 | 
				
			||||||
To make the cursor blink in an xterm, see tools/blink.c.  Or use Thomas
 | 
					 | 
				
			||||||
Dickey's xterm above patchlevel 107 (see above for where to get it), with
 | 
					 | 
				
			||||||
these resources:
 | 
					 | 
				
			||||||
	XTerm*cursorBlink:	on
 | 
					 | 
				
			||||||
	XTerm*cursorOnTime:	400
 | 
					 | 
				
			||||||
	XTerm*cursorOffTime:	250
 | 
					 | 
				
			||||||
	XTerm*cursorColor:	White
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*hpterm-color*
 | 
					 | 
				
			||||||
These settings work (more or less) for an hpterm, which only supports 8
 | 
					 | 
				
			||||||
foreground colors: >
 | 
					 | 
				
			||||||
   :if has("terminfo")
 | 
					 | 
				
			||||||
   :  set t_Co=8
 | 
					 | 
				
			||||||
   :  set t_Sf=<Esc>[&v%p1%dS
 | 
					 | 
				
			||||||
   :  set t_Sb=<Esc>[&v7S
 | 
					 | 
				
			||||||
   :else
 | 
					 | 
				
			||||||
   :  set t_Co=8
 | 
					 | 
				
			||||||
   :  set t_Sf=<Esc>[&v%dS
 | 
					 | 
				
			||||||
   :  set t_Sb=<Esc>[&v7S
 | 
					 | 
				
			||||||
   :endif
 | 
					 | 
				
			||||||
<	[<Esc> is a real escape, type CTRL-V <Esc>]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
						*Eterm* *enlightened-terminal*
 | 
					 | 
				
			||||||
These settings have been reported to work for the Enlightened terminal
 | 
					 | 
				
			||||||
emulator, or Eterm.  They might work for all xterm-like terminals that use the
 | 
					 | 
				
			||||||
bold attribute to get bright colors.  Add an ":if" like above when needed. >
 | 
					 | 
				
			||||||
       :set t_Co=16
 | 
					 | 
				
			||||||
       :set t_AF=^[[%?%p1%{8}%<%t3%p1%d%e%p1%{22}%+%d;1%;m
 | 
					 | 
				
			||||||
       :set t_AB=^[[%?%p1%{8}%<%t4%p1%d%e%p1%{32}%+%d;1%;m
 | 
					 | 
				
			||||||
<
 | 
					 | 
				
			||||||
						*TTpro-telnet*
 | 
					 | 
				
			||||||
These settings should work for TTpro telnet.  Tera Term Pro is a freeware /
 | 
					 | 
				
			||||||
open-source program for MS-Windows. >
 | 
					 | 
				
			||||||
	set t_Co=16
 | 
					 | 
				
			||||||
	set t_AB=^[[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{32}%+5;%;%dm
 | 
					 | 
				
			||||||
	set t_AF=^[[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{22}%+1;%;%dm
 | 
					 | 
				
			||||||
Also make sure TTpro's Setup / Window / Full Color is enabled, and make sure
 | 
					 | 
				
			||||||
that Setup / Font / Enable Bold is NOT enabled.
 | 
					 | 
				
			||||||
(info provided by John Love-Jensen <eljay@Adobe.COM>)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
18. When syntax is slow						*:syntime*
 | 
					18. When syntax is slow						*:syntime*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,29 +10,17 @@ Vim uses information about the terminal you are using to fill the screen and
 | 
				
			|||||||
recognize what keys you hit.  If this information is not correct, the screen
 | 
					recognize what keys you hit.  If this information is not correct, the screen
 | 
				
			||||||
may be messed up or keys may not be recognized.  The actions which have to be
 | 
					may be messed up or keys may not be recognized.  The actions which have to be
 | 
				
			||||||
performed on the screen are accomplished by outputting a string of
 | 
					performed on the screen are accomplished by outputting a string of
 | 
				
			||||||
characters.  Special keys produce a string of characters.  These strings are
 | 
					characters.
 | 
				
			||||||
stored in the terminal options, see |terminal-options|.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NOTE: Most of this is not used when running the |GUI|.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. Startup			|startup-terminal|
 | 
					 | 
				
			||||||
2. Terminal options		|terminal-options|
 | 
					 | 
				
			||||||
3. Window size			|window-size|
 | 
					 | 
				
			||||||
4. Slow and fast terminals	|slow-fast-terminal|
 | 
					 | 
				
			||||||
5. Using the mouse		|mouse-using|
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
1. Startup						*startup-terminal*
 | 
					Startup						*startup-terminal*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When Vim is started a default terminal type is assumed.  for MS-DOS this is
 | 
					When Vim is started a default terminal type is assumed.  for MS-DOS this is
 | 
				
			||||||
the pc terminal, for Unix an ansi terminal.
 | 
					the pc terminal, for Unix an ansi terminal.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				*termcap* *terminfo* *E557* *E558* *E559*
 | 
									*termcap* *terminfo* *E557* *E558* *E559*
 | 
				
			||||||
On Unix the terminfo database or termcap file is used.  This is referred to as
 | 
					On Unix the terminfo database or termcap file is used.  This is referred to as
 | 
				
			||||||
"termcap" in all the documentation.  At compile time, when running configure,
 | 
					"termcap" in all the documentation.
 | 
				
			||||||
the choice whether to use terminfo or termcap is done automatically.  When
 | 
					 | 
				
			||||||
running Vim the output of ":version" will show |+terminfo| if terminfo is
 | 
					 | 
				
			||||||
used.  Also see |xterm-screens|.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Settings depending on terminal			*term-dependent-settings*
 | 
					Settings depending on terminal			*term-dependent-settings*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -45,25 +33,12 @@ can do this best in your vimrc.  Example: >
 | 
				
			|||||||
     ... vt100, vt102 maps and settings ...
 | 
					     ... vt100, vt102 maps and settings ...
 | 
				
			||||||
   endif
 | 
					   endif
 | 
				
			||||||
<
 | 
					<
 | 
				
			||||||
						*raw-terminal-mode*
 | 
					 | 
				
			||||||
For normal editing the terminal will be put into "raw" mode.  The strings
 | 
					 | 
				
			||||||
defined with 't_ti' and 't_ks' will be sent to the terminal.  Normally this
 | 
					 | 
				
			||||||
puts the terminal in a state where the termcap codes are valid and activates
 | 
					 | 
				
			||||||
the cursor and function keys.  When Vim exits the terminal will be put back
 | 
					 | 
				
			||||||
into the mode it was before Vim started.  The strings defined with 't_te' and
 | 
					 | 
				
			||||||
't_ke' will be sent to the terminal.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*cs7-problem*
 | 
												*cs7-problem*
 | 
				
			||||||
Note: If the terminal settings are changed after running Vim, you might have
 | 
					Note: If the terminal settings are changed after running Vim, you might have
 | 
				
			||||||
an illegal combination of settings.  This has been reported on Solaris 2.5
 | 
					an illegal combination of settings.  This has been reported on Solaris 2.5
 | 
				
			||||||
with "stty cs8 parenb", which is restored as "stty cs7 parenb".  Use
 | 
					with "stty cs8 parenb", which is restored as "stty cs7 parenb".  Use
 | 
				
			||||||
"stty cs8 -parenb -istrip" instead, this is restored correctly.
 | 
					"stty cs8 -parenb -istrip" instead, this is restored correctly.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Some termcap entries are wrong in the sense that after sending 't_ks' the
 | 
					 | 
				
			||||||
cursor keys send codes different from the codes defined in the termcap.  To
 | 
					 | 
				
			||||||
avoid this you can set 't_ks' (and 't_ke') to empty strings.  This must be
 | 
					 | 
				
			||||||
done during initialization (see |initialization|), otherwise it's too late.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Many cursor key codes start with an <Esc>.  Vim must find out if this is a
 | 
					Many cursor key codes start with an <Esc>.  Vim must find out if this is a
 | 
				
			||||||
single hit of the <Esc> key or the start of a cursor key sequence.  It waits
 | 
					single hit of the <Esc> key or the start of a cursor key sequence.  It waits
 | 
				
			||||||
for a next character to arrive.  If it does not arrive within one second a
 | 
					for a next character to arrive.  If it does not arrive within one second a
 | 
				
			||||||
@@ -92,55 +67,6 @@ them as a cursor key.  When you type you normally are not that fast, so they
 | 
				
			|||||||
are recognized as individual typed commands, even though Vim receives the same
 | 
					are recognized as individual typed commands, even though Vim receives the same
 | 
				
			||||||
sequence of bytes.
 | 
					sequence of bytes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				*vt100-function-keys* *xterm-function-keys*
 | 
					 | 
				
			||||||
An xterm can send function keys F1 to F4 in two modes: vt100 compatible or
 | 
					 | 
				
			||||||
not.  Because Vim may not know what the xterm is sending, both types of keys
 | 
					 | 
				
			||||||
are recognized.  The same happens for the <Home> and <End> keys.
 | 
					 | 
				
			||||||
			normal			vt100 ~
 | 
					 | 
				
			||||||
	<F1>	t_k1	<Esc>[11~	<xF1>	<Esc>OP	    *<xF1>-xterm*
 | 
					 | 
				
			||||||
	<F2>	t_k2	<Esc>[12~	<xF2>	<Esc>OQ	    *<xF2>-xterm*
 | 
					 | 
				
			||||||
	<F3>	t_k3	<Esc>[13~	<xF3>	<Esc>OR	    *<xF3>-xterm*
 | 
					 | 
				
			||||||
	<F4>	t_k4	<Esc>[14~	<xF4>	<Esc>OS	    *<xF4>-xterm*
 | 
					 | 
				
			||||||
	<Home>	t_kh	<Esc>[7~	<xHome>	<Esc>OH	    *<xHome>-xterm*
 | 
					 | 
				
			||||||
	<End>	t_@7	<Esc>[4~	<xEnd>	<Esc>OF	    *<xEnd>-xterm*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When Vim starts, <xF1> is mapped to <F1>, <xF2> to <F2> etc.  This means that
 | 
					 | 
				
			||||||
by default both codes do the same thing.  If you make a mapping for <xF2>,
 | 
					 | 
				
			||||||
because your terminal does have two keys, the default mapping is overwritten,
 | 
					 | 
				
			||||||
thus you can use the <F2> and <xF2> keys for something different.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*xterm-shifted-keys*
 | 
					 | 
				
			||||||
Newer versions of xterm support shifted function keys and special keys.  Vim
 | 
					 | 
				
			||||||
recognizes most of them.  Use ":set termcap" to check which are supported and
 | 
					 | 
				
			||||||
what the codes are.  Mostly these are not in a termcap, they are only
 | 
					 | 
				
			||||||
supported by the builtin_xterm termcap.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*xterm-modifier-keys*
 | 
					 | 
				
			||||||
Newer versions of xterm support Alt and Ctrl for most function keys.  To avoid
 | 
					 | 
				
			||||||
having to add all combinations of Alt, Ctrl and Shift for every key a special
 | 
					 | 
				
			||||||
sequence is recognized at the end of a termcap entry: ";*X".  The "X" can be
 | 
					 | 
				
			||||||
any character, often '~' is used.  The ";*" stands for an optional modifier
 | 
					 | 
				
			||||||
argument.  ";2" is Shift, ";3" is Alt, ";5" is Ctrl and ";9" is Meta (when
 | 
					 | 
				
			||||||
it's different from Alt).  They can be combined.  Examples: >
 | 
					 | 
				
			||||||
	:set <F8>=^[[19;*~
 | 
					 | 
				
			||||||
	:set <Home>=^[[1;*H
 | 
					 | 
				
			||||||
Another speciality about these codes is that they are not overwritten by
 | 
					 | 
				
			||||||
another code.  That is to avoid that the codes obtained from xterm directly
 | 
					 | 
				
			||||||
|t_RV| overwrite them.
 | 
					 | 
				
			||||||
							*xterm-scroll-region*
 | 
					 | 
				
			||||||
The default termcap entry for xterm on Sun and other platforms does not
 | 
					 | 
				
			||||||
contain the entry for scroll regions.  Add ":cs=\E[%i%d;%dr:" to the xterm
 | 
					 | 
				
			||||||
entry in /etc/termcap and everything should work.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*xterm-end-home-keys*
 | 
					 | 
				
			||||||
On some systems (at least on FreeBSD with XFree86 3.1.2) the codes that the
 | 
					 | 
				
			||||||
<End> and <Home> keys send contain a <Nul> character.  To make these keys send
 | 
					 | 
				
			||||||
the proper key code, add these lines to your ~/.Xdefaults file:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*VT100.Translations:		#override \n\
 | 
					 | 
				
			||||||
		<Key>Home: string("0x1b") string("[7~") \n\
 | 
					 | 
				
			||||||
		<Key>End: string("0x1b") string("[8~")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
						*xterm-8bit* *xterm-8-bit*
 | 
											*xterm-8bit* *xterm-8-bit*
 | 
				
			||||||
Xterm can be run in a mode where it uses 8-bit escape sequences.  The CSI code
 | 
					Xterm can be run in a mode where it uses 8-bit escape sequences.  The CSI code
 | 
				
			||||||
is used instead of <Esc>[.  The advantage is that an <Esc> can quickly be
 | 
					is used instead of <Esc>[.  The advantage is that an <Esc> can quickly be
 | 
				
			||||||
@@ -151,309 +77,12 @@ For the builtin termcap entries, Vim checks if the 'term' option contains
 | 
				
			|||||||
mouse and a few other things.  You would normally set $TERM in your shell to
 | 
					mouse and a few other things.  You would normally set $TERM in your shell to
 | 
				
			||||||
"xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
 | 
					"xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
 | 
				
			||||||
automatically.
 | 
					automatically.
 | 
				
			||||||
When Vim receives a response to the |t_RV| (request version) sequence and it
 | 
					When Vim receives a response to the "request version" sequence and it
 | 
				
			||||||
starts with CSI, it assumes that the terminal is in 8-bit mode and will
 | 
					starts with CSI, it assumes that the terminal is in 8-bit mode and will
 | 
				
			||||||
convert all key sequences to their 8-bit variants.
 | 
					convert all key sequences to their 8-bit variants.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
2. Terminal options		*terminal-options* *termcap-options* *E436*
 | 
					Window size						*window-size*
 | 
				
			||||||
 | 
					 | 
				
			||||||
The terminal options can be set just like normal options.  But they are not
 | 
					 | 
				
			||||||
shown with the ":set all" command.  Instead use ":set termcap".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is always possible to change individual strings by setting the
 | 
					 | 
				
			||||||
appropriate option.  For example: >
 | 
					 | 
				
			||||||
	:set t_ce=^V^[[K	(CTRL-V, <Esc>, [, K)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The options are listed below.  The associated termcap code is always equal to
 | 
					 | 
				
			||||||
the last two characters of the option name.  Only one termcap code is
 | 
					 | 
				
			||||||
required: Cursor motion, 't_cm'.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The options 't_da', 't_db', 't_ms', 't_xs' represent flags in the termcap.
 | 
					 | 
				
			||||||
When the termcap flag is present, the option will be set to "y".  But any
 | 
					 | 
				
			||||||
non-empty string means that the flag is set.  An empty string means that the
 | 
					 | 
				
			||||||
flag is not set.  't_CS' works like this too, but it isn't a termcap flag.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OUTPUT CODES
 | 
					 | 
				
			||||||
	option	meaning	~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	t_AB	set background color (ANSI)			*t_AB* *'t_AB'*
 | 
					 | 
				
			||||||
	t_AF	set foreground color (ANSI)			*t_AF* *'t_AF'*
 | 
					 | 
				
			||||||
	t_AL	add number of blank lines			*t_AL* *'t_AL'*
 | 
					 | 
				
			||||||
	t_al	add new blank line				*t_al* *'t_al'*
 | 
					 | 
				
			||||||
	t_bc	backspace character				*t_bc* *'t_bc'*
 | 
					 | 
				
			||||||
	t_cd	clear to end of screen				*t_cd* *'t_cd'*
 | 
					 | 
				
			||||||
	t_ce	clear to end of line				*t_ce* *'t_ce'*
 | 
					 | 
				
			||||||
	t_cl	clear screen					*t_cl* *'t_cl'*
 | 
					 | 
				
			||||||
	t_cm	cursor motion (required!)		  *E437* *t_cm* *'t_cm'*
 | 
					 | 
				
			||||||
	t_Co	number of colors				*t_Co* *'t_Co'*
 | 
					 | 
				
			||||||
	t_CS	if non-empty, cursor relative to scroll region	*t_CS* *'t_CS'*
 | 
					 | 
				
			||||||
	t_cs	define scrolling region				*t_cs* *'t_cs'*
 | 
					 | 
				
			||||||
	t_CV	define vertical scrolling region		*t_CV* *'t_CV'*
 | 
					 | 
				
			||||||
	t_da	if non-empty, lines from above scroll down	*t_da* *'t_da'*
 | 
					 | 
				
			||||||
	t_db	if non-empty, lines from below scroll up	*t_db* *'t_db'*
 | 
					 | 
				
			||||||
	t_DL	delete number of lines				*t_DL* *'t_DL'*
 | 
					 | 
				
			||||||
	t_dl	delete line					*t_dl* *'t_dl'*
 | 
					 | 
				
			||||||
	t_fs	set window title end (from status line)		*t_fs* *'t_fs'*
 | 
					 | 
				
			||||||
	t_ke	exit "keypad transmit" mode			*t_ke* *'t_ke'*
 | 
					 | 
				
			||||||
	t_ks	start "keypad transmit" mode			*t_ks* *'t_ks'*
 | 
					 | 
				
			||||||
	t_le	move cursor one char left			*t_le* *'t_le'*
 | 
					 | 
				
			||||||
	t_mb	blinking mode					*t_mb* *'t_mb'*
 | 
					 | 
				
			||||||
	t_md	bold mode					*t_md* *'t_md'*
 | 
					 | 
				
			||||||
	t_me	Normal mode (undoes t_mr, t_mb, t_md and color)	*t_me* *'t_me'*
 | 
					 | 
				
			||||||
	t_mr	reverse (invert) mode				*t_mr* *'t_mr'*
 | 
					 | 
				
			||||||
								*t_ms* *'t_ms'*
 | 
					 | 
				
			||||||
	t_ms	if non-empty, cursor can be moved in standout/inverse mode
 | 
					 | 
				
			||||||
	t_nd	non destructive space character			*t_nd* *'t_nd'*
 | 
					 | 
				
			||||||
	t_op	reset to original color pair			*t_op* *'t_op'*
 | 
					 | 
				
			||||||
	t_RI	cursor number of chars right			*t_RI* *'t_RI'*
 | 
					 | 
				
			||||||
	t_Sb	set background color				*t_Sb* *'t_Sb'*
 | 
					 | 
				
			||||||
	t_Sf	set foreground color				*t_Sf* *'t_Sf'*
 | 
					 | 
				
			||||||
	t_se	standout end					*t_se* *'t_se'*
 | 
					 | 
				
			||||||
	t_so	standout mode					*t_so* *'t_so'*
 | 
					 | 
				
			||||||
	t_sr	scroll reverse (backward)			*t_sr* *'t_sr'*
 | 
					 | 
				
			||||||
	t_te	out of "termcap" mode				*t_te* *'t_te'*
 | 
					 | 
				
			||||||
	t_ti	put terminal in "termcap" mode			*t_ti* *'t_ti'*
 | 
					 | 
				
			||||||
	t_ts	set window title start (to status line)		*t_ts* *'t_ts'*
 | 
					 | 
				
			||||||
	t_ue	underline end					*t_ue* *'t_ue'*
 | 
					 | 
				
			||||||
	t_us	underline mode					*t_us* *'t_us'*
 | 
					 | 
				
			||||||
	t_Ce	undercurl end					*t_Ce* *'t_Ce'*
 | 
					 | 
				
			||||||
	t_Cs	undercurl mode					*t_Cs* *'t_Cs'*
 | 
					 | 
				
			||||||
	t_ut	clearing uses the current background color	*t_ut* *'t_ut'*
 | 
					 | 
				
			||||||
	t_vb	visual bell					*t_vb* *'t_vb'*
 | 
					 | 
				
			||||||
	t_ve	cursor visible					*t_ve* *'t_ve'*
 | 
					 | 
				
			||||||
	t_vi	cursor invisible				*t_vi* *'t_vi'*
 | 
					 | 
				
			||||||
	t_vs	cursor very visible				*t_vs* *'t_vs'*
 | 
					 | 
				
			||||||
								*t_xs* *'t_xs'*
 | 
					 | 
				
			||||||
	t_xs	if non-empty, standout not erased by overwriting (hpterm)
 | 
					 | 
				
			||||||
	t_ZH	italics mode					*t_ZH* *'t_ZH'*
 | 
					 | 
				
			||||||
	t_ZR	italics end					*t_ZR* *'t_ZR'*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Added by Vim (there are no standard codes for these):
 | 
					 | 
				
			||||||
	t_IS	set icon text start				*t_IS* *'t_IS'*
 | 
					 | 
				
			||||||
	t_IE	set icon text end				*t_IE* *'t_IE'*
 | 
					 | 
				
			||||||
	t_WP	set window position (Y, X) in pixels		*t_WP* *'t_WP'*
 | 
					 | 
				
			||||||
	t_WS	set window size (height, width) in characters	*t_WS* *'t_WS'*
 | 
					 | 
				
			||||||
	t_SI	start insert mode (bar cursor shape)		*t_SI* *'t_SI'*
 | 
					 | 
				
			||||||
	t_EI	end insert mode (block cursor shape)		*t_EI* *'t_EI'*
 | 
					 | 
				
			||||||
		|termcap-cursor-shape|
 | 
					 | 
				
			||||||
	t_RV	request terminal version string (for xterm)	*t_RV* *'t_RV'*
 | 
					 | 
				
			||||||
		|xterm-8bit| |v:termresponse| |xterm-codes|
 | 
					 | 
				
			||||||
	t_u7	request cursor position (for xterm)		*t_u7* *'t_u7'*
 | 
					 | 
				
			||||||
		see |'ambiwidth'|
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
KEY CODES
 | 
					 | 
				
			||||||
Note: Use the <> form if possible
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	option	name		meaning	~
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	t_ku	<Up>		arrow up			*t_ku* *'t_ku'*
 | 
					 | 
				
			||||||
	t_kd	<Down>		arrow down			*t_kd* *'t_kd'*
 | 
					 | 
				
			||||||
	t_kr	<Right>		arrow right			*t_kr* *'t_kr'*
 | 
					 | 
				
			||||||
	t_kl	<Left>		arrow left			*t_kl* *'t_kl'*
 | 
					 | 
				
			||||||
		<xUp>		alternate arrow up		*<xUp>*
 | 
					 | 
				
			||||||
		<xDown>		alternate arrow down		*<xDown>*
 | 
					 | 
				
			||||||
		<xRight>	alternate arrow right		*<xRight>*
 | 
					 | 
				
			||||||
		<xLeft>		alternate arrow left		*<xLeft>*
 | 
					 | 
				
			||||||
		<S-Up>		shift arrow up
 | 
					 | 
				
			||||||
		<S-Down>	shift arrow down
 | 
					 | 
				
			||||||
	t_%i	<S-Right>	shift arrow right		*t_%i* *'t_%i'*
 | 
					 | 
				
			||||||
	t_#4	<S-Left>	shift arrow left		*t_#4* *'t_#4'*
 | 
					 | 
				
			||||||
	t_k1	<F1>		function key 1			*t_k1* *'t_k1'*
 | 
					 | 
				
			||||||
		<xF1>		alternate F1			*<xF1>*
 | 
					 | 
				
			||||||
	t_k2	<F2>		function key 2		*<F2>*	*t_k2* *'t_k2'*
 | 
					 | 
				
			||||||
		<xF2>		alternate F2			*<xF2>*
 | 
					 | 
				
			||||||
	t_k3	<F3>		function key 3		*<F3>*	*t_k3* *'t_k3'*
 | 
					 | 
				
			||||||
		<xF3>		alternate F3			*<xF3>*
 | 
					 | 
				
			||||||
	t_k4	<F4>		function key 4		*<F4>*	*t_k4* *'t_k4'*
 | 
					 | 
				
			||||||
		<xF4>		alternate F4			*<xF4>*
 | 
					 | 
				
			||||||
	t_k5	<F5>		function key 5		*<F5>*	*t_k5* *'t_k5'*
 | 
					 | 
				
			||||||
	t_k6	<F6>		function key 6		*<F6>*	*t_k6* *'t_k6'*
 | 
					 | 
				
			||||||
	t_k7	<F7>		function key 7		*<F7>*	*t_k7* *'t_k7'*
 | 
					 | 
				
			||||||
	t_k8	<F8>		function key 8		*<F8>*	*t_k8* *'t_k8'*
 | 
					 | 
				
			||||||
	t_k9	<F9>		function key 9		*<F9>*	*t_k9* *'t_k9'*
 | 
					 | 
				
			||||||
	t_k;	<F10>		function key 10		*<F10>*	*t_k;* *'t_k;'*
 | 
					 | 
				
			||||||
	t_F1	<F11>		function key 11		*<F11>*	*t_F1* *'t_F1'*
 | 
					 | 
				
			||||||
	t_F2	<F12>		function key 12		*<F12>*	*t_F2* *'t_F2'*
 | 
					 | 
				
			||||||
	t_F3	<F13>		function key 13		*<F13>*	*t_F3* *'t_F3'*
 | 
					 | 
				
			||||||
	t_F4	<F14>		function key 14		*<F14>*	*t_F4* *'t_F4'*
 | 
					 | 
				
			||||||
	t_F5	<F15>		function key 15		*<F15>*	*t_F5* *'t_F5'*
 | 
					 | 
				
			||||||
	t_F6	<F16>		function key 16		*<F16>*	*t_F6* *'t_F6'*
 | 
					 | 
				
			||||||
	t_F7	<F17>		function key 17		*<F17>*	*t_F7* *'t_F7'*
 | 
					 | 
				
			||||||
	t_F8	<F18>		function key 18		*<F18>*	*t_F8* *'t_F8'*
 | 
					 | 
				
			||||||
	t_F9	<F19>		function key 19		*<F19>*	*t_F9* *'t_F9'*
 | 
					 | 
				
			||||||
		<S-F1>		shifted function key 1
 | 
					 | 
				
			||||||
		<S-xF1>		alternate <S-F1>		*<S-xF1>*
 | 
					 | 
				
			||||||
		<S-F2>		shifted function key 2		*<S-F2>*
 | 
					 | 
				
			||||||
		<S-xF2>		alternate <S-F2>		*<S-xF2>*
 | 
					 | 
				
			||||||
		<S-F3>		shifted function key 3		*<S-F3>*
 | 
					 | 
				
			||||||
		<S-xF3>		alternate <S-F3>		*<S-xF3>*
 | 
					 | 
				
			||||||
		<S-F4>		shifted function key 4		*<S-F4>*
 | 
					 | 
				
			||||||
		<S-xF4>		alternate <S-F4>		*<S-xF4>*
 | 
					 | 
				
			||||||
		<S-F5>		shifted function key 5		*<S-F5>*
 | 
					 | 
				
			||||||
		<S-F6>		shifted function key 6		*<S-F6>*
 | 
					 | 
				
			||||||
		<S-F7>		shifted function key 7		*<S-F7>*
 | 
					 | 
				
			||||||
		<S-F8>		shifted function key 8		*<S-F8>*
 | 
					 | 
				
			||||||
		<S-F9>		shifted function key 9		*<S-F9>*
 | 
					 | 
				
			||||||
		<S-F10>		shifted function key 10		*<S-F10>*
 | 
					 | 
				
			||||||
		<S-F11>		shifted function key 11		*<S-F11>*
 | 
					 | 
				
			||||||
		<S-F12>		shifted function key 12		*<S-F12>*
 | 
					 | 
				
			||||||
	t_%1	<Help>		help key			*t_%1* *'t_%1'*
 | 
					 | 
				
			||||||
	t_&8	<Undo>		undo key			*t_&8* *'t_&8'*
 | 
					 | 
				
			||||||
	t_kI	<Insert>	insert key			*t_kI* *'t_kI'*
 | 
					 | 
				
			||||||
	t_kD	<Del>		delete key			*t_kD* *'t_kD'*
 | 
					 | 
				
			||||||
	t_kb	<BS>		backspace key			*t_kb* *'t_kb'*
 | 
					 | 
				
			||||||
	t_kB	<S-Tab>		back-tab (shift-tab)  *<S-Tab>*	*t_kB* *'t_kB'*
 | 
					 | 
				
			||||||
	t_kh	<Home>		home key			*t_kh* *'t_kh'*
 | 
					 | 
				
			||||||
	t_#2	<S-Home>	shifted home key     *<S-Home>*	*t_#2* *'t_#2'*
 | 
					 | 
				
			||||||
		<xHome>		alternate home key		*<xHome>*
 | 
					 | 
				
			||||||
	t_@7	<End>		end key				*t_@7* *'t_@7'*
 | 
					 | 
				
			||||||
	t_*7	<S-End>		shifted end key	*<S-End>* *t_star7* *'t_star7'*
 | 
					 | 
				
			||||||
		<xEnd>		alternate end key		*<xEnd>*
 | 
					 | 
				
			||||||
	t_kP	<PageUp>	page-up key			*t_kP* *'t_kP'*
 | 
					 | 
				
			||||||
	t_kN	<PageDown>	page-down key			*t_kN* *'t_kN'*
 | 
					 | 
				
			||||||
	t_K1	<kHome>		keypad home key			*t_K1* *'t_K1'*
 | 
					 | 
				
			||||||
	t_K4	<kEnd>		keypad end key			*t_K4* *'t_K4'*
 | 
					 | 
				
			||||||
	t_K3	<kPageUp>	keypad page-up key		*t_K3* *'t_K3'*
 | 
					 | 
				
			||||||
	t_K5	<kPageDown>	keypad page-down key		*t_K5* *'t_K5'*
 | 
					 | 
				
			||||||
	t_K6	<kPlus>		keypad plus key	      *<kPlus>*	*t_K6* *'t_K6'*
 | 
					 | 
				
			||||||
	t_K7	<kMinus>	keypad minus key     *<kMinus>*	*t_K7* *'t_K7'*
 | 
					 | 
				
			||||||
	t_K8	<kDivide>	keypad divide	    *<kDivide>*	*t_K8* *'t_K8'*
 | 
					 | 
				
			||||||
	t_K9	<kMultiply>	keypad multiply   *<kMultiply>*	*t_K9* *'t_K9'*
 | 
					 | 
				
			||||||
	t_KA	<kEnter>	keypad enter key     *<kEnter>*	*t_KA* *'t_KA'*
 | 
					 | 
				
			||||||
	t_KB	<kPoint>	keypad decimal point *<kPoint>*	*t_KB* *'t_KB'*
 | 
					 | 
				
			||||||
	t_KC	<k0>		keypad 0		 *<k0>*	*t_KC* *'t_KC'*
 | 
					 | 
				
			||||||
	t_KD	<k1>		keypad 1		 *<k1>*	*t_KD* *'t_KD'*
 | 
					 | 
				
			||||||
	t_KE	<k2>		keypad 2		 *<k2>*	*t_KE* *'t_KE'*
 | 
					 | 
				
			||||||
	t_KF	<k3>		keypad 3		 *<k3>*	*t_KF* *'t_KF'*
 | 
					 | 
				
			||||||
	t_KG	<k4>		keypad 4		 *<k4>*	*t_KG* *'t_KG'*
 | 
					 | 
				
			||||||
	t_KH	<k5>		keypad 5		 *<k5>*	*t_KH* *'t_KH'*
 | 
					 | 
				
			||||||
	t_KI	<k6>		keypad 6		 *<k6>*	*t_KI* *'t_KI'*
 | 
					 | 
				
			||||||
	t_KJ	<k7>		keypad 7		 *<k7>*	*t_KJ* *'t_KJ'*
 | 
					 | 
				
			||||||
	t_KK	<k8>		keypad 8		 *<k8>*	*t_KK* *'t_KK'*
 | 
					 | 
				
			||||||
	t_KL	<k9>		keypad 9		 *<k9>*	*t_KL* *'t_KL'*
 | 
					 | 
				
			||||||
		<Mouse>		leader of mouse code		*<Mouse>*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note about t_so and t_mr: When the termcap entry "so" is not present the
 | 
					 | 
				
			||||||
entry for "mr" is used.  And vice versa.  The same is done for "se" and "me".
 | 
					 | 
				
			||||||
If your terminal supports both inversion and standout mode, you can see two
 | 
					 | 
				
			||||||
different modes.  If your terminal supports only one of the modes, both will
 | 
					 | 
				
			||||||
look the same.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*keypad-comma*
 | 
					 | 
				
			||||||
The keypad keys, when they are not mapped, behave like the equivalent normal
 | 
					 | 
				
			||||||
key.  There is one exception: if you have a comma on the keypad instead of a
 | 
					 | 
				
			||||||
decimal point, Vim will use a dot anyway.  Use these mappings to fix that: >
 | 
					 | 
				
			||||||
	:noremap <kPoint> ,
 | 
					 | 
				
			||||||
	:noremap! <kPoint> ,
 | 
					 | 
				
			||||||
<							*xterm-codes*
 | 
					 | 
				
			||||||
There is a special trick to obtain the key codes which currently only works
 | 
					 | 
				
			||||||
for xterm.  When |t_RV| is defined and a response is received which indicates
 | 
					 | 
				
			||||||
an xterm with patchlevel 141 or higher, Vim uses special escape sequences to
 | 
					 | 
				
			||||||
request the key codes directly from the xterm.  The responses are used to
 | 
					 | 
				
			||||||
adjust the various t_ codes.  This avoids the problem that the xterm can
 | 
					 | 
				
			||||||
produce different codes, depending on the mode it is in (8-bit, VT102,
 | 
					 | 
				
			||||||
VT220, etc.).  The result is that codes like <xF1> are no longer needed.
 | 
					 | 
				
			||||||
Note: This is only done on startup.  If the xterm options are changed after
 | 
					 | 
				
			||||||
Vim has started, the escape sequences may not be recognized anymore.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*xterm-resize*
 | 
					 | 
				
			||||||
Window resizing with xterm only works if the allowWindowOps resource is
 | 
					 | 
				
			||||||
enabled.  On some systems and versions of xterm it's disabled by default
 | 
					 | 
				
			||||||
because someone thought it would be a security issue.  It's not clear if this
 | 
					 | 
				
			||||||
is actually the case.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To overrule the default, put this line in your ~/.Xdefaults or
 | 
					 | 
				
			||||||
~/.Xresources:
 | 
					 | 
				
			||||||
>
 | 
					 | 
				
			||||||
	XTerm*allowWindowOps: 		true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
And run "xrdb -merge .Xresources" to make it effective.  You can check the
 | 
					 | 
				
			||||||
value with the context menu (right mouse button while CTRL key is pressed),
 | 
					 | 
				
			||||||
there should be a tick at allow-window-ops.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*termcap-colors*
 | 
					 | 
				
			||||||
Note about colors: The 't_Co' option tells Vim the number of colors available.
 | 
					 | 
				
			||||||
When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
 | 
					 | 
				
			||||||
If one of these is not available, 't_Sb' and 't_Sf' are used.  't_me' is used
 | 
					 | 
				
			||||||
to reset to the default colors.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				*termcap-cursor-shape* *termcap-cursor-color*
 | 
					 | 
				
			||||||
When Vim enters Insert mode the 't_SI' escape sequence is sent.  When leaving
 | 
					 | 
				
			||||||
Insert mode 't_EI' is used.  But only if both are defined.  This can be used
 | 
					 | 
				
			||||||
to change the shape or color of the cursor in Insert mode.  These are not
 | 
					 | 
				
			||||||
standard termcap/terminfo entries, you need to set them yourself.
 | 
					 | 
				
			||||||
Example for an xterm, this changes the color of the cursor: >
 | 
					 | 
				
			||||||
    if &term =~ "xterm"
 | 
					 | 
				
			||||||
	let &t_SI = "\<Esc>]12;purple\x7"
 | 
					 | 
				
			||||||
	let &t_EI = "\<Esc>]12;blue\x7"
 | 
					 | 
				
			||||||
    endif
 | 
					 | 
				
			||||||
NOTE: When Vim exits the shape for Normal mode will remain.  The shape from
 | 
					 | 
				
			||||||
before Vim started will not be restored.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*termcap-title*
 | 
					 | 
				
			||||||
The 't_ts' and 't_fs' options are used to set the window title if the terminal
 | 
					 | 
				
			||||||
allows title setting via sending strings.  They are sent before and after the
 | 
					 | 
				
			||||||
title string, respectively.  Similar 't_IS' and 't_IE'  are used to set the
 | 
					 | 
				
			||||||
icon text.  These are Vim-internal extensions of the Unix termcap, so they
 | 
					 | 
				
			||||||
cannot be obtained from an external termcap.  However, the builtin termcap
 | 
					 | 
				
			||||||
contains suitable entries for xterm, so you don't need to set them here.
 | 
					 | 
				
			||||||
							*hpterm*
 | 
					 | 
				
			||||||
If inversion or other highlighting does not work correctly, try setting the
 | 
					 | 
				
			||||||
't_xs' option to a non-empty string.  This makes the 't_ce' code be used to
 | 
					 | 
				
			||||||
remove highlighting from a line.  This is required for "hpterm".  Setting the
 | 
					 | 
				
			||||||
'weirdinvert' option has the same effect as making 't_xs' non-empty, and vice
 | 
					 | 
				
			||||||
versa.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							*scroll-region*
 | 
					 | 
				
			||||||
Some termcaps do not include an entry for 'cs' (scroll region), although the
 | 
					 | 
				
			||||||
terminal does support it.  For example: xterm on a Sun.  You can use the
 | 
					 | 
				
			||||||
builtin_xterm or define t_cs yourself.  For example: >
 | 
					 | 
				
			||||||
	:set t_cs=^V^[[%i%d;%dr
 | 
					 | 
				
			||||||
Where ^V is CTRL-V and ^[ is <Esc>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The vertical scroll region t_CV is not a standard termcap code.  Vim uses it
 | 
					 | 
				
			||||||
internally in the GUI.  But it can also be defined for a terminal, if you can
 | 
					 | 
				
			||||||
find one that supports it.  The two arguments are the left and right column of
 | 
					 | 
				
			||||||
the region which to restrict the scrolling to.  Just like t_cs defines the top
 | 
					 | 
				
			||||||
and bottom lines.  Defining t_CV will make scrolling in vertically split
 | 
					 | 
				
			||||||
windows a lot faster.  Don't set t_CV when t_da or t_db is set (text isn't
 | 
					 | 
				
			||||||
cleared when scrolling).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Unfortunately it is not possible to deduce from the termcap how cursor
 | 
					 | 
				
			||||||
positioning should be done when using a scrolling region: Relative to the
 | 
					 | 
				
			||||||
beginning of the screen or relative to the beginning of the scrolling region.
 | 
					 | 
				
			||||||
Most terminals use the first method.  The 't_CS' option should be set to any
 | 
					 | 
				
			||||||
string when cursor positioning is relative to the start of the scrolling
 | 
					 | 
				
			||||||
region.  It should be set to an empty string otherwise.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Note for xterm users: The shifted cursor keys normally don't work.  You can
 | 
					 | 
				
			||||||
	make them work with the xmodmap command and some mappings in Vim.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Give these commands in the xterm:
 | 
					 | 
				
			||||||
		xmodmap -e "keysym Up = Up F13"
 | 
					 | 
				
			||||||
		xmodmap -e "keysym Down = Down F16"
 | 
					 | 
				
			||||||
		xmodmap -e "keysym Left = Left F18"
 | 
					 | 
				
			||||||
		xmodmap -e "keysym Right = Right F19"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	And use these mappings in Vim:
 | 
					 | 
				
			||||||
		:map <t_F3> <S-Up>
 | 
					 | 
				
			||||||
		:map! <t_F3> <S-Up>
 | 
					 | 
				
			||||||
		:map <t_F6> <S-Down>
 | 
					 | 
				
			||||||
		:map! <t_F6> <S-Down>
 | 
					 | 
				
			||||||
		:map <t_F8> <S-Left>
 | 
					 | 
				
			||||||
		:map! <t_F8> <S-Left>
 | 
					 | 
				
			||||||
		:map <t_F9> <S-Right>
 | 
					 | 
				
			||||||
		:map! <t_F9> <S-Right>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Instead of, say, <S-Up> you can use any other command that you want to use the
 | 
					 | 
				
			||||||
shift-cursor-up key for.  (Note: To help people that have a Sun keyboard with
 | 
					 | 
				
			||||||
left side keys F14 is not used because it is confused with the undo key; F15
 | 
					 | 
				
			||||||
is not used, because it does a window-to-front; F17 is not used, because it
 | 
					 | 
				
			||||||
closes the window.  On other systems you can probably use them.)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					 | 
				
			||||||
3. Window size						*window-size*
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
[This is about the size of the whole window Vim is using, not a window that is
 | 
					[This is about the size of the whole window Vim is using, not a window that is
 | 
				
			||||||
created with the ":split" command.]
 | 
					created with the ":split" command.]
 | 
				
			||||||
@@ -477,7 +106,7 @@ One command can be used to set the screen size:
 | 
				
			|||||||
Detects the screen size and redraws the screen.
 | 
					Detects the screen size and redraws the screen.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
4. Slow and fast terminals			*slow-fast-terminal*
 | 
					Slow and fast terminals				*slow-fast-terminal*
 | 
				
			||||||
						*slow-terminal*
 | 
											*slow-terminal*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If you have a fast terminal you may like to set the 'ruler' option.  The
 | 
					If you have a fast terminal you may like to set the 'ruler' option.  The
 | 
				
			||||||
@@ -511,7 +140,7 @@ is sent to the terminal at a time (does not work for MS-DOS).  This makes the
 | 
				
			|||||||
screen updating a lot slower, making it possible to see what is happening.
 | 
					screen updating a lot slower, making it possible to see what is happening.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
5. Using the mouse					*mouse-using*
 | 
					Using the mouse						*mouse-using*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This section is about using the mouse on a terminal or a terminal window.  How
 | 
					This section is about using the mouse on a terminal or a terminal window.  How
 | 
				
			||||||
to use the mouse in a GUI window is explained in |gui-mouse|.  For scrolling
 | 
					to use the mouse in a GUI window is explained in |gui-mouse|.  For scrolling
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,6 @@ Don't forget to browse the user manual, it also contains lots of useful tips
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Editing C programs				|C-editing|
 | 
					Editing C programs				|C-editing|
 | 
				
			||||||
Finding where identifiers are used		|ident-search|
 | 
					Finding where identifiers are used		|ident-search|
 | 
				
			||||||
Switching screens in an xterm			|xterm-screens|
 | 
					 | 
				
			||||||
Scrolling in Insert mode			|scroll-insert|
 | 
					Scrolling in Insert mode			|scroll-insert|
 | 
				
			||||||
Smooth scrolling				|scroll-smooth|
 | 
					Smooth scrolling				|scroll-smooth|
 | 
				
			||||||
Correcting common typing mistakes		|type-mistakes|
 | 
					Correcting common typing mistakes		|type-mistakes|
 | 
				
			||||||
@@ -118,48 +117,6 @@ archive file on your closest gnu-ftp-mirror).
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[the idea for this comes from Andreas Kutschera]
 | 
					[the idea for this comes from Andreas Kutschera]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
==============================================================================
 | 
					 | 
				
			||||||
Switching screens in an xterm		*xterm-screens* *xterm-save-screen*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(From comp.editors, by Juergen Weigert, in reply to a question)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
:> Another question is that after exiting vim, the screen is left as it
 | 
					 | 
				
			||||||
:> was, i.e. the contents of the file I was viewing (editing) was left on
 | 
					 | 
				
			||||||
:> the screen. The output from my previous like "ls" were lost,
 | 
					 | 
				
			||||||
:> ie. no longer in the scrolling buffer. I know that there is a way to
 | 
					 | 
				
			||||||
:> restore the screen after exiting vim or other vi like editors,
 | 
					 | 
				
			||||||
:> I just don't know how. Helps are appreciated. Thanks.
 | 
					 | 
				
			||||||
:
 | 
					 | 
				
			||||||
:I imagine someone else can answer this.  I assume though that vim and vi do
 | 
					 | 
				
			||||||
:the same thing as each other for a given xterm setup.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
They not necessarily do the same thing, as this may be a termcap vs.
 | 
					 | 
				
			||||||
terminfo problem.  You should be aware that there are two databases for
 | 
					 | 
				
			||||||
describing attributes of a particular type of terminal: termcap and
 | 
					 | 
				
			||||||
terminfo.  This can cause differences when the entries differ AND when of
 | 
					 | 
				
			||||||
the programs in question one uses terminfo and the other uses termcap
 | 
					 | 
				
			||||||
(also see |+terminfo|).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
In your particular problem, you are looking for the control sequences
 | 
					 | 
				
			||||||
^[[?47h and ^[[?47l.  These switch between xterms alternate and main screen
 | 
					 | 
				
			||||||
buffer.  As a quick workaround a command sequence like >
 | 
					 | 
				
			||||||
	echo -n "^[[?47h"; vim ... ; echo -n "^[[?47l"
 | 
					 | 
				
			||||||
may do what you want.  (My notation ^[ means the ESC character, further down
 | 
					 | 
				
			||||||
you'll see that the databases use \E instead).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
On startup, vim echoes the value of the termcap variable ti (terminfo:
 | 
					 | 
				
			||||||
smcup) to the terminal.  When exiting, it echoes te (terminfo: rmcup).  Thus
 | 
					 | 
				
			||||||
these two variables are the correct place where the above mentioned control
 | 
					 | 
				
			||||||
sequences should go.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Compare your xterm termcap entry (found in /etc/termcap) with your xterm
 | 
					 | 
				
			||||||
terminfo entry (retrieved with "infocmp -C xterm").  Both should contain
 | 
					 | 
				
			||||||
entries similar to: >
 | 
					 | 
				
			||||||
	:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PS: If you find any difference, someone (your sysadmin?) should better check
 | 
					 | 
				
			||||||
    the complete termcap and terminfo database for consistency.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
==============================================================================
 | 
					==============================================================================
 | 
				
			||||||
Scrolling in Insert mode				*scroll-insert*
 | 
					Scrolling in Insert mode				*scroll-insert*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,8 +55,7 @@ There can be a number of reasons why you don't see colors:
 | 
				
			|||||||
- Your terminal does not support colors.
 | 
					- Your terminal does not support colors.
 | 
				
			||||||
	Vim will use bold, italic and underlined text, but this doesn't look
 | 
						Vim will use bold, italic and underlined text, but this doesn't look
 | 
				
			||||||
	very nice.  You probably will want to try to get a terminal with
 | 
						very nice.  You probably will want to try to get a terminal with
 | 
				
			||||||
	colors.  For Unix, I recommend the xterm from the XFree86 project:
 | 
						colors.
 | 
				
			||||||
	|xfree-xterm|.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Your terminal does support colors, but Vim doesn't know this.
 | 
					- Your terminal does support colors, but Vim doesn't know this.
 | 
				
			||||||
	Make sure your $TERM setting is correct.  For example, when using an
 | 
						Make sure your $TERM setting is correct.  For example, when using an
 | 
				
			||||||
@@ -68,9 +67,7 @@ There can be a number of reasons why you don't see colors:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		TERM=xterm-color; export TERM
 | 
							TERM=xterm-color; export TERM
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<	The terminal name must match the terminal you are using.  If it
 | 
					<	The terminal name must match the terminal you are using.
 | 
				
			||||||
	still doesn't work, have a look at |xterm-color|, which shows a few
 | 
					 | 
				
			||||||
	ways to make Vim display colors (not only for an xterm).
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- The file type is not recognized.
 | 
					- The file type is not recognized.
 | 
				
			||||||
	Vim doesn't know all file types, and sometimes it's near to impossible
 | 
						Vim doesn't know all file types, and sometimes it's near to impossible
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -313,7 +313,6 @@ N  *+comments*		|'comments'| support
 | 
				
			|||||||
B  *+conceal*		"conceal" support, see |conceal| |:syn-conceal| etc.
 | 
					B  *+conceal*		"conceal" support, see |conceal| |:syn-conceal| etc.
 | 
				
			||||||
B  *+cscope*		|cscope| support
 | 
					B  *+cscope*		|cscope| support
 | 
				
			||||||
m  *+cursorbind*	|'cursorbind'| support
 | 
					m  *+cursorbind*	|'cursorbind'| support
 | 
				
			||||||
m  *+cursorshape*	|termcap-cursor-shape| support
 | 
					 | 
				
			||||||
m  *+debug*		Compiled for debugging.
 | 
					m  *+debug*		Compiled for debugging.
 | 
				
			||||||
N  *+dialog_gui*	Support for |:confirm| with GUI dialog.
 | 
					N  *+dialog_gui*	Support for |:confirm| with GUI dialog.
 | 
				
			||||||
N  *+dialog_con*	Support for |:confirm| with console dialog.
 | 
					N  *+dialog_con*	Support for |:confirm| with console dialog.
 | 
				
			||||||
@@ -373,10 +372,8 @@ T  *+tag_binary*	binary searching in tags file |tag-binary-search|
 | 
				
			|||||||
N  *+tag_old_static*	old method for static tags |tag-old-static|
 | 
					N  *+tag_old_static*	old method for static tags |tag-old-static|
 | 
				
			||||||
m  *+tag_any_white*	any white space allowed in tags file |tag-any-white|
 | 
					m  *+tag_any_white*	any white space allowed in tags file |tag-any-white|
 | 
				
			||||||
B  *+termguicolors*	24-bit color in xterm-compatible terminals support
 | 
					B  *+termguicolors*	24-bit color in xterm-compatible terminals support
 | 
				
			||||||
   *+terminfo*		uses |terminfo| instead of termcap
 | 
					 | 
				
			||||||
N  *+termresponse*	support for |t_RV| and |v:termresponse|
 | 
					N  *+termresponse*	support for |t_RV| and |v:termresponse|
 | 
				
			||||||
N  *+textobjects*	|text-objects| selection
 | 
					N  *+textobjects*	|text-objects| selection
 | 
				
			||||||
   *+tgetent*		non-Unix only: able to use external termcap
 | 
					 | 
				
			||||||
N  *+timers*		the |timer_start()| function
 | 
					N  *+timers*		the |timer_start()| function
 | 
				
			||||||
N  *+title*		Setting the window 'title' and 'icon'
 | 
					N  *+title*		Setting the window 'title' and 'icon'
 | 
				
			||||||
N  *+toolbar*		|gui-toolbar|
 | 
					N  *+toolbar*		|gui-toolbar|
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -276,6 +276,11 @@ Ed-compatible mode:
 | 
				
			|||||||
  ":set noedcompatible" is ignored
 | 
					  ":set noedcompatible" is ignored
 | 
				
			||||||
  ":set edcompatible" is an error
 | 
					  ":set edcompatible" is an error
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						*t_xx* *:set-termcap* *termcap-options* *t_AB* *t_Sb* *t_vb* *t_SI*
 | 
				
			||||||
 | 
					Nvim does not have special `t_XX` options nor <t_XX> keycodes to configure
 | 
				
			||||||
 | 
					terminal capabilities. Instead Nvim treats the terminal as any other UI. For
 | 
				
			||||||
 | 
					example, 'guicursor' sets the terminal cursor style if possible.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
'ttyfast':
 | 
					'ttyfast':
 | 
				
			||||||
  ":set ttyfast" is ignored
 | 
					  ":set ttyfast" is ignored
 | 
				
			||||||
  ":set nottyfast" is an error
 | 
					  ":set nottyfast" is an error
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -136,7 +136,7 @@ preprocess_patch() {
 | 
				
			|||||||
  2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/\S*\<\%('${na_src}'\)@norm! d/\v(^diff)|%$
 | 
					  2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/src/\S*\<\%('${na_src}'\)@norm! d/\v(^diff)|%$
 | 
				
			||||||
' +w +q "$file"
 | 
					' +w +q "$file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Remove channel.txt, netbeans.txt, os_*.txt, todo.txt, version*.txt, tags
 | 
					  # Remove channel.txt, netbeans.txt, os_*.txt, todo.txt, version*.txt, tags
 | 
				
			||||||
  local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|term\.txt\|todo\.txt\|version\d\.txt\|tags'
 | 
					  local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.txt\|term\.txt\|todo\.txt\|version\d\.txt\|tags'
 | 
				
			||||||
  2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/runtime/doc/\<\%('${na_doc}'\)\>@norm! d/\v(^diff)|%$
 | 
					  2>/dev/null $nvim --cmd 'set dir=/tmp' +'g@^diff --git a/runtime/doc/\<\%('${na_doc}'\)\>@norm! d/\v(^diff)|%$
 | 
				
			||||||
' +w +q "$file"
 | 
					' +w +q "$file"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user