mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
doc: Removed t_XX options/keycodes. (#6616)
Closes #4482 TODO: revisit find_key_option_len()
This commit is contained in:
parent
5a304b7864
commit
0df1b6655b
@ -13,27 +13,15 @@ Vim's Graphical User Interface *gui* *GUI*
|
||||
5. Menus |menus|
|
||||
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*
|
||||
|
||||
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*
|
||||
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
|
||||
$MYGVIMRC environment variable has its name.
|
||||
|
||||
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
|
||||
normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
|
||||
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*
|
||||
Put the GUI vim window at the given {X} and {Y} coordinates.
|
||||
The coordinates should specify the position in pixels of the
|
||||
top left corner of the window. Does not work in all versions.
|
||||
Does work in an (new) xterm |xterm-color|.
|
||||
top left corner of the window.
|
||||
When the GUI window has not been opened yet, the values are
|
||||
remembered until the window is opened. The position is
|
||||
adjusted to make the window fit on the screen (if possible).
|
||||
|
@ -148,7 +148,6 @@ Special issues ~
|
||||
|
||||
GUI ~
|
||||
|gui.txt| Graphical User Interface (GUI)
|
||||
|gui_w32.txt| Win32 GUI
|
||||
|
||||
Interfaces ~
|
||||
|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-*
|
||||
<A-...> same as <M-...> *<A-*
|
||||
<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
|
||||
@ -480,7 +479,6 @@ the ":map" command. The rules are:
|
||||
<S-F11> Shifted function key 11
|
||||
<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
|
||||
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*
|
||||
|
||||
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
|
||||
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
|
||||
the key code for the key is in the termcap (the t_ options), it will
|
||||
automatically be translated into the internal code and become the second
|
||||
way of mapping (unless the 'k' flag is included in 'cpoptions').
|
||||
the key code for the key is in the termcap, it will automatically be
|
||||
translated into the internal code and become the second way of mapping
|
||||
(unless the 'k' flag is included in 'cpoptions').
|
||||
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
|
||||
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
|
||||
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"
|
||||
refers to function key 10, defined with option 't_f10', which may be
|
||||
function key zero on some keyboards. The <> form cannot be used when
|
||||
'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).
|
||||
refers to function key 10. The <> form cannot be used when 'cpoptions'
|
||||
includes the '<' flag.
|
||||
|
||||
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
|
||||
terminal code is found it is replaced with the internal code. Then the check
|
||||
for a mapping is done again (so you can map an internal code to something
|
||||
else). What is written into the script file depends on what is recognized.
|
||||
If the terminal key code was recognized as a mapping the key code itself is
|
||||
written to the script file. If it was recognized as a terminal code the
|
||||
internal code is written to the script file.
|
||||
isn't the terminal key codes are tried. If a terminal code is found it is
|
||||
replaced with the internal code. Then the check for a mapping is done again
|
||||
(so you can map an internal code to something else). What is written into the
|
||||
script file depends on what is recognized. If the terminal key code was
|
||||
recognized as a mapping the key code itself is written to the script file. If
|
||||
it was recognized as a terminal code the internal code is written to the
|
||||
script file.
|
||||
|
||||
|
||||
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.
|
||||
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
|
||||
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
|
||||
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
|
||||
X-Windows and |mbyte-fonts-MSwin| for MS-Windows.
|
||||
a few other things.
|
||||
|
||||
For X11 you can set the 'guifontset' option to a list of fonts that together
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
2. Locale *mbyte-locale*
|
||||
Locale *mbyte-locale*
|
||||
|
||||
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
|
||||
@ -209,7 +190,7 @@ Or specify $LANG when starting Vim:
|
||||
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.
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
4. Using a terminal *mbyte-terminal*
|
||||
|
||||
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*
|
||||
Fonts on X11 *mbyte-fonts-X11*
|
||||
|
||||
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...
|
||||
@ -596,20 +535,7 @@ Also make sure that you set 'guifontset' before setting fonts for highlight
|
||||
groups.
|
||||
|
||||
==============================================================================
|
||||
6. Fonts on MS-Windows *mbyte-fonts-MSwin*
|
||||
|
||||
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*
|
||||
Input on X11 *mbyte-XIM*
|
||||
|
||||
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*
|
||||
|
||||
@ -842,7 +768,7 @@ Cursor color when IME or XIM is on *CursorIM*
|
||||
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
|
||||
text, you can use the 'keymap' option. This will translate one or more
|
||||
@ -1090,7 +1016,7 @@ Combining forms:
|
||||
ﭏ 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*
|
||||
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
|
||||
@ -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
|
||||
options.txt for detailed information.
|
||||
|
@ -130,39 +130,6 @@ A few special texts:
|
||||
Last set from error handler ~
|
||||
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*
|
||||
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
|
||||
@ -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).
|
||||
|
||||
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.
|
||||
|
||||
*'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
|
||||
blinks when Vim is waiting for input, not while
|
||||
executing a command.
|
||||
To make the cursor blink in an xterm, see
|
||||
|xterm-blink|.
|
||||
{group-name}
|
||||
a highlight group name, that sets the color and font
|
||||
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
|
||||
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
|
||||
with CTRL-V followed by the three digit decimal code. This does NOT work for
|
||||
the <t_xx> termcap codes, these can only be used in mappings.
|
||||
with CTRL-V followed by the three digit decimal code.
|
||||
|
||||
*:source_crnl* *W15*
|
||||
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,
|
||||
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
|
||||
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
|
||||
|
@ -4636,8 +4636,7 @@ mentioned for the default values. See |:verbose-cmd| for more information.
|
||||
*highlight-args* *E416* *E417* *E423*
|
||||
There are three types of terminals for highlighting:
|
||||
term a normal terminal (vt100, xterm)
|
||||
cterm a color terminal (Windows console, color-xterm, these have the "Co"
|
||||
termcap entry)
|
||||
cterm a color terminal (Windows console, color-xterm)
|
||||
gui the GUI
|
||||
|
||||
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.
|
||||
Otherwise the screen will look messed up.
|
||||
|
||||
The {term-list} can have two forms:
|
||||
|
||||
1. A string with escape sequences.
|
||||
This is any string of characters, except that it can't start with
|
||||
"t_" and blanks are not allowed. The <> notation is recognized
|
||||
here, so you can use things like "<Esc>" and "<Space>". Example:
|
||||
{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
|
||||
allowed. The <> notation is recognized here, so you can use things
|
||||
like "<Esc>" and "<Space>". Example:
|
||||
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
|
||||
|
||||
@ -4716,7 +4706,7 @@ ctermbg={color-nr} *highlight-ctermbg*
|
||||
unpredictable. See your xterm documentation for the defaults. The
|
||||
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
|
||||
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
|
||||
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*
|
||||
|
||||
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*
|
||||
To test your color setup, a file has been included in the Vim distribution.
|
||||
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
|
||||
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*
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
characters. Special keys produce a string of characters. These strings are
|
||||
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|
|
||||
characters.
|
||||
|
||||
==============================================================================
|
||||
1. Startup *startup-terminal*
|
||||
Startup *startup-terminal*
|
||||
|
||||
When Vim is started a default terminal type is assumed. for MS-DOS this is
|
||||
the pc terminal, for Unix an ansi terminal.
|
||||
|
||||
*termcap* *terminfo* *E557* *E558* *E559*
|
||||
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,
|
||||
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|.
|
||||
"termcap" in all the documentation.
|
||||
|
||||
Settings depending on terminal *term-dependent-settings*
|
||||
|
||||
@ -45,25 +33,12 @@ can do this best in your vimrc. Example: >
|
||||
... vt100, vt102 maps and settings ...
|
||||
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*
|
||||
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
|
||||
with "stty cs8 parenb", which is restored as "stty cs7 parenb". Use
|
||||
"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
|
||||
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
|
||||
@ -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
|
||||
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 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
|
||||
@ -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
|
||||
"xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
|
||||
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
|
||||
convert all key sequences to their 8-bit variants.
|
||||
|
||||
==============================================================================
|
||||
2. Terminal options *terminal-options* *termcap-options* *E436*
|
||||
|
||||
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*
|
||||
Window size *window-size*
|
||||
|
||||
[This is about the size of the whole window Vim is using, not a window that is
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
4. Slow and fast terminals *slow-fast-terminal*
|
||||
Slow and fast terminals *slow-fast-terminal*
|
||||
*slow-terminal*
|
||||
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
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
|
||||
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|
|
||||
Finding where identifiers are used |ident-search|
|
||||
Switching screens in an xterm |xterm-screens|
|
||||
Scrolling in Insert mode |scroll-insert|
|
||||
Smooth scrolling |scroll-smooth|
|
||||
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]
|
||||
|
||||
==============================================================================
|
||||
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*
|
||||
|
||||
|
@ -55,8 +55,7 @@ There can be a number of reasons why you don't see colors:
|
||||
- Your terminal does not support colors.
|
||||
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
|
||||
colors. For Unix, I recommend the xterm from the XFree86 project:
|
||||
|xfree-xterm|.
|
||||
colors.
|
||||
|
||||
- Your terminal does support colors, but Vim doesn't know this.
|
||||
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
|
||||
|
||||
< The terminal name must match the terminal you are using. If it
|
||||
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 terminal name must match the terminal you are using.
|
||||
|
||||
- The file type is not recognized.
|
||||
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 *+cscope* |cscope| support
|
||||
m *+cursorbind* |'cursorbind'| support
|
||||
m *+cursorshape* |termcap-cursor-shape| support
|
||||
m *+debug* Compiled for debugging.
|
||||
N *+dialog_gui* Support for |:confirm| with GUI 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|
|
||||
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
|
||||
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 *+textobjects* |text-objects| selection
|
||||
*+tgetent* non-Unix only: able to use external termcap
|
||||
N *+timers* the |timer_start()| function
|
||||
N *+title* Setting the window 'title' and 'icon'
|
||||
N *+toolbar* |gui-toolbar|
|
||||
|
@ -276,6 +276,11 @@ Ed-compatible mode:
|
||||
":set noedcompatible" is ignored
|
||||
":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':
|
||||
":set ttyfast" is ignored
|
||||
":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)|%$
' +w +q "$file"
|
||||
|
||||
# Remove channel.txt, netbeans.txt, os_*.txt, todo.txt, version*.txt, tags
|
||||
local na_doc='channel\.txt\|netbeans\.txt\|os_\w\+\.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)|%$
' +w +q "$file"
|
||||
|
||||
# Remove "Last change ..." changes in doc files.
|
||||
|
Loading…
Reference in New Issue
Block a user