annotate runtime/doc/term.txt @ 35229:925475d6ebae default tip

runtime(matchit): update matchit plugin to v1.20 Commit: https://github.com/vim/vim/commit/8cf29e4c4a2af75bf31ef16ef108aea61c165af8 Author: Christian Brabandt <cb@256bit.org> Date: Mon May 20 20:02:16 2024 +0200 runtime(matchit): update matchit plugin to v1.20 fixes: https://github.com/vim/vim/issues/14814 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Mon, 20 May 2024 20:15:02 +0200
parents 28f2e09012ac
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35121
28f2e09012ac runtime(doc): Fix typos in help documents
Christian Brabandt <cb@256bit.org>
parents: 34925
diff changeset
1 *term.txt* For Vim version 9.1. Last change: 2024 May 05
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 VIM REFERENCE MANUAL by Bram Moolenaar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 Terminal information *terminal-info*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 Vim uses information about the terminal you are using to fill the screen and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 recognize what keys you hit. If this information is not correct, the screen
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 may be messed up or keys may not be recognized. The actions which have to be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 performed on the screen are accomplished by outputting a string of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 characters. Special keys produce a string of characters. These strings are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 stored in the terminal options, see |terminal-options|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 NOTE: Most of this is not used when running the |GUI|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 1. Startup |startup-terminal|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 2. Terminal options |terminal-options|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 3. Window size |window-size|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 4. Slow and fast terminals |slow-fast-terminal|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 5. Using the mouse |mouse-using|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 1. Startup *startup-terminal*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 When Vim is started a default terminal type is assumed. For the Amiga this is
18972
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
28 a standard CLI window, for MS-Windows the pc terminal, for Unix an ansi
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
29 terminal. A few other terminal types are always available, see below
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
30 |builtin-terms|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 You can give the terminal name with the '-T' Vim argument. If it is not given
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 Vim will try to get the name from the TERM environment variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 *termcap* *terminfo* *E557* *E558* *E559*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 On Unix the terminfo database or termcap file is used. This is referred to as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 "termcap" in all the documentation. At compile time, when running configure,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 the choice whether to use terminfo or termcap is done automatically. When
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 running Vim the output of ":version" will show |+terminfo| if terminfo is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 used. Also see |xterm-screens|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 On non-Unix systems a termcap is only available if Vim was compiled with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 TERMCAP defined.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 *builtin-terms* *builtin_terms*
29883
1342ee83ab97 patch 9.0.0280: the builtin termcap list depends on the version
Bram Moolenaar <Bram@vim.org>
parents: 29403
diff changeset
46 A number of builtin terminals are available. Since patch 9.0.0280 there is no
1342ee83ab97 patch 9.0.0280: the builtin termcap list depends on the version
Bram Moolenaar <Bram@vim.org>
parents: 29403
diff changeset
47 difference between Vim versions. You can see a list of available builtin
1342ee83ab97 patch 9.0.0280: the builtin termcap list depends on the version
Bram Moolenaar <Bram@vim.org>
parents: 29403
diff changeset
48 terminals in the error message you get for `:set term=xxx` (when not running
29885
f00c56ee8118 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29883
diff changeset
49 the GUI). Also see |++builtin_terms|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 If the termcap code is included Vim will try to get the strings for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 terminal you are using from the termcap file and the builtin termcaps. Both
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 are always used, if an entry for the terminal you are using is present. Which
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 one is used first depends on the 'ttybuiltin' option:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 'ttybuiltin' on 1: builtin termcap 2: external termcap
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 'ttybuiltin' off 1: external termcap 2: builtin termcap
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 If an option is missing in one of them, it will be obtained from the other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 one. If an option is present in both, the one first encountered is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 Which external termcap file is used varies from system to system and may
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 depend on the environment variables "TERMCAP" and "TERMPATH". See "man
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 tgetent".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 Settings depending on terminal *term-dependent-settings*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 If you want to set options or mappings, depending on the terminal name, you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 can do this best in your .vimrc. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 if &term == "xterm"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 ... xterm maps and settings ...
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 elseif &term =~ "vt10."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 ... vt100, vt102 maps and settings ...
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 *raw-terminal-mode*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 For normal editing the terminal will be put into "raw" mode. The strings
18299
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
79 defined with 't_ti', 't_TI' and 't_ks' will be sent to the terminal. Normally
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
80 this puts the terminal in a state where the termcap codes are valid and
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
81 activates the cursor and function keys.
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
82 When Vim exits the terminal will be put back into the mode it was before Vim
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
83 started. The strings defined with 't_te', 't_TE' and 't_ke' will be sent to
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
84 the terminal. On the Amiga, with commands that execute an external command
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
85 (e.g., "!!"), the terminal will be put into Normal mode for a moment. This
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
86 means that you can stop the output to the screen by hitting a printing key.
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
87 Output resumes when you hit <BS>.
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
88
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
89 Note: When 't_ti' is not empty, Vim assumes that it causes switching to the
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
90 alternate screen. This may slightly change what happens when executing a
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
91 shell command or exiting Vim. To avoid this use 't_TI' and 't_TE' (but make
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
92 sure to add to them, not overwrite).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93
31293
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
94 Vim will try to detect what keyboard protocol the terminal is using with the
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
95 't_RK' termcap entry. This is sent after 't_TI', but only when there is no
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
96 work to do (no typeahead and no pending commands). That is to avoid the
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
97 response to end up in a shell command or arrive after Vim exits.
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
98
10640
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
99 *xterm-bracketed-paste*
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
100 When the 't_BE' option is set then 't_BE' will be sent to the
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
101 terminal when entering "raw" mode and 't_BD' when leaving "raw" mode. The
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
102 terminal is then expected to put 't_PS' before pasted text and 't_PE' after
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
103 pasted text. This way Vim can separate text that is pasted from characters
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
104 that are typed. The pasted text is handled like when the middle mouse button
10813
09eb5fd275e0 patch 8.0.0296: bracketed paste can only append, not insert
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
105 is used, it is inserted literally and not interpreted as commands.
09eb5fd275e0 patch 8.0.0296: bracketed paste can only append, not insert
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
106
33659
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
107 Please note: while bracketed paste is trying to prevent nasty side-effects
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
108 from pasting (like the CTRL-C or <ESC> key), it's not a guaranteed security
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
109 measure because different terminals may implement this mode slightly
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
110 differently. You should still be careful with what you paste into Vim.
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
111
10813
09eb5fd275e0 patch 8.0.0296: bracketed paste can only append, not insert
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
112 When the cursor is in the first column, the pasted text will be inserted
09eb5fd275e0 patch 8.0.0296: bracketed paste can only append, not insert
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
113 before it. Otherwise the pasted text is appended after the cursor position.
09eb5fd275e0 patch 8.0.0296: bracketed paste can only append, not insert
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
114 This means one cannot paste after the first column. Unfortunately Vim does
09eb5fd275e0 patch 8.0.0296: bracketed paste can only append, not insert
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
115 not have a way to tell where the mouse pointer was.
10640
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
116
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
117 Note that in some situations Vim will not recognize the bracketed paste and
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
118 you will get the raw text. In other situations Vim will only get the first
10734
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10640
diff changeset
119 pasted character and drop the rest, e.g. when using the "r" command. If you
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10640
diff changeset
120 have a problem with this, disable bracketed paste by putting this in your
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10640
diff changeset
121 .vimrc: >
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10640
diff changeset
122 set t_BE=
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10640
diff changeset
123 If this is done while Vim is running the 't_BD' will be sent to the terminal
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10640
diff changeset
124 to disable bracketed paste.
10640
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
125
31588
e94571ac4134 patch 9.0.1126: bracketed paste can be enabled when it is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
126 If |t_PS| or |t_PE| is not set, then |t_BE| will not be used. This is to make
e94571ac4134 patch 9.0.1126: bracketed paste can be enabled when it is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
127 sure that bracketed paste is not enabled when the escape codes surrounding
e94571ac4134 patch 9.0.1126: bracketed paste can be enabled when it is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
128 pasted text cannot be recognized.
e94571ac4134 patch 9.0.1126: bracketed paste can be enabled when it is not recognized
Bram Moolenaar <Bram@vim.org>
parents: 31579
diff changeset
129
33659
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
130 Note: bracketed paste mode will be disabled, when the 'esckeys' option is not
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
131 set (also when the 'compatible' option is set).
867fa40377c1 runtime(doc): clarify bracketed paste mode
Christian Brabandt <cb@256bit.org>
parents: 31885
diff changeset
132
14123
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
133 If your terminal supports bracketed paste, but the options are not set
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
134 automatically, you can try using something like this: >
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
135
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
136 if &term =~ "screen"
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
137 let &t_BE = "\e[?2004h"
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
138 let &t_BD = "\e[?2004l"
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
139 exec "set t_PS=\e[200~"
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
140 exec "set t_PE=\e[201~"
583bf95b6c84 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 13963
diff changeset
141 endif
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
142
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
143 The terminfo entries "BE", "BD", "PS" and "PE" were added in ncurses version
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
144 6.4, early 2023, for some terminals. If you have this version then you may
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
145 not have to manually configure your terminal.
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
146
25700
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
147 *tmux-integration*
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
148 If you experience issues when running Vim inside tmux, here are a few hints.
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
149 You can comment-out parts if something doesn't work (it may depend on the
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
150 terminal that tmux is running in): >
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
151
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
152 if !has('gui_running') && &term =~ '^\%(screen\|tmux\)'
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
153 " Better mouse support, see :help 'ttymouse'
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
154 set ttymouse=sgr
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
155
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
156 " Enable true colors, see :help xterm-true-color
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
157 let &termguicolors = v:true
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
158 let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
159 let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
160
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
161 " Enable bracketed paste mode, see :help xterm-bracketed-paste
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
162 let &t_BE = "\<Esc>[?2004h"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
163 let &t_BD = "\<Esc>[?2004l"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
164 let &t_PS = "\<Esc>[200~"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
165 let &t_PE = "\<Esc>[201~"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
166
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
167 " Enable focus event tracking, see :help xterm-focus-event
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
168 let &t_fe = "\<Esc>[?1004h"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
169 let &t_fd = "\<Esc>[?1004l"
26591
3a63b1e4a6f4 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
170 execute "set <FocusGained>=\<Esc>[I"
3a63b1e4a6f4 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
171 execute "set <FocusLost>=\<Esc>[O"
25700
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
172
26438
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
173 " Enable modified arrow keys, see :help arrow_modifiers
25700
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
174 execute "silent! set <xUp>=\<Esc>[@;*A"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
175 execute "silent! set <xDown>=\<Esc>[@;*B"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
176 execute "silent! set <xRight>=\<Esc>[@;*C"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
177 execute "silent! set <xLeft>=\<Esc>[@;*D"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
178 endif
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
179 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 *cs7-problem*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 Note: If the terminal settings are changed after running Vim, you might have
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 an illegal combination of settings. This has been reported on Solaris 2.5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 with "stty cs8 parenb", which is restored as "stty cs7 parenb". Use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 "stty cs8 -parenb -istrip" instead, this is restored correctly.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 Some termcap entries are wrong in the sense that after sending 't_ks' the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 cursor keys send codes different from the codes defined in the termcap. To
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 avoid this you can set 't_ks' (and 't_ke') to empty strings. This must be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 done during initialization (see |initialization|), otherwise it's too late.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 Some termcap entries assume that the highest bit is always reset. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 example: The cursor-up entry for the Amiga could be ":ku=\E[A:". But the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 Amiga really sends "\233A". This works fine if the highest bit is reset,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 e.g., when using an Amiga over a serial line. If the cursor keys don't work,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 try the entry ":ku=\233A:".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 Some termcap entries have the entry ":ku=\E[A:". But the Amiga really sends
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 "\233A". On output "\E[" and "\233" are often equivalent, on input they
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 aren't. You will have to change the termcap entry, or change the key code with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 the :set command to fix this.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 Many cursor key codes start with an <Esc>. Vim must find out if this is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 single hit of the <Esc> key or the start of a cursor key sequence. It waits
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 for a next character to arrive. If it does not arrive within one second a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 single <Esc> is assumed. On very slow systems this may fail, causing cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 keys not to work sometimes. If you discover this problem reset the 'timeout'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 option. Vim will wait for the next character to arrive after an <Esc>. If
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 you want to enter a single <Esc> you must type it twice. Resetting the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 'esckeys' option avoids this problem in Insert mode, but you lose the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 possibility to use cursor and function keys in Insert mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 On the Amiga the recognition of window resizing is activated only when the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 terminal name is "amiga" or "builtin_amiga".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 Some terminals have confusing codes for the cursor keys. The televideo 925 is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 such a terminal. It sends a CTRL-H for cursor-left. This would make it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 impossible to distinguish a backspace and cursor-left. To avoid this problem
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 CTRL-H is never recognized as cursor-left.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 *vt100-cursor-keys* *xterm-cursor-keys*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 Other terminals (e.g., vt100 and xterm) have cursor keys that send <Esc>OA,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 <Esc>OB, etc. Unfortunately these are valid commands in insert mode: Stop
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 insert, Open a new line above the new one, start inserting 'A', 'B', etc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 Instead of performing these commands Vim will erroneously recognize this typed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 key sequence as a cursor key movement. To avoid this and make Vim do what you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 want in either case you could use these settings: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 :set notimeout " don't timeout on mappings
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 :set ttimeout " do timeout on terminal key codes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 :set timeoutlen=100 " timeout after 100 msec
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1256
diff changeset
230 This requires the key-codes to be sent within 100 msec in order to recognize
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 them as a cursor key. When you type you normally are not that fast, so they
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 are recognized as individual typed commands, even though Vim receives the same
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 sequence of bytes.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 *vt100-function-keys* *xterm-function-keys*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 An xterm can send function keys F1 to F4 in two modes: vt100 compatible or
179
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
237 not. Because Vim may not know what the xterm is sending, both types of keys
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 are recognized. The same happens for the <Home> and <End> keys.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 normal vt100 ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 <F1> t_k1 <Esc>[11~ <xF1> <Esc>OP *<xF1>-xterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 <F2> t_k2 <Esc>[12~ <xF2> <Esc>OQ *<xF2>-xterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 <F3> t_k3 <Esc>[13~ <xF3> <Esc>OR *<xF3>-xterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243 <F4> t_k4 <Esc>[14~ <xF4> <Esc>OS *<xF4>-xterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 <Home> t_kh <Esc>[7~ <xHome> <Esc>OH *<xHome>-xterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 <End> t_@7 <Esc>[4~ <xEnd> <Esc>OF *<xEnd>-xterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 When Vim starts, <xF1> is mapped to <F1>, <xF2> to <F2> etc. This means that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 by default both codes do the same thing. If you make a mapping for <xF2>,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 because your terminal does have two keys, the default mapping is overwritten,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 thus you can use the <F2> and <xF2> keys for something different.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 *xterm-shifted-keys*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 Newer versions of xterm support shifted function keys and special keys. Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 recognizes most of them. Use ":set termcap" to check which are supported and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 what the codes are. Mostly these are not in a termcap, they are only
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 supported by the builtin_xterm termcap.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257
179
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
258 *xterm-modifier-keys*
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
259 Newer versions of xterm support Alt and Ctrl for most function keys. To avoid
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
260 having to add all combinations of Alt, Ctrl and Shift for every key a special
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
261 sequence is recognized at the end of a termcap entry: ";*X". The "X" can be
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
262 any character, often '~' is used. The ";*" stands for an optional modifier
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
263 argument. ";2" is Shift, ";3" is Alt, ";5" is Ctrl and ";9" is Meta (when
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
264 it's different from Alt). They can be combined. Examples: >
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
265 :set <F8>=^[[19;*~
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
266 :set <Home>=^[[1;*H
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
267 Another speciality about these codes is that they are not overwritten by
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
268 another code. That is to avoid that the codes obtained from xterm directly
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 36
diff changeset
269 |t_RV| overwrite them.
23406
24ce202a7d68 patch 8.2.2246: cursor keys not recognized at the hit-Enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
270
24ce202a7d68 patch 8.2.2246: cursor keys not recognized at the hit-Enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
271 Another special value is a termcap entry ending in "@;*X". This is for cursor
24ce202a7d68 patch 8.2.2246: cursor keys not recognized at the hit-Enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
272 keys, which either use "CSI X" or "CSI 1 ; modifier X". Thus the "@"
24ce202a7d68 patch 8.2.2246: cursor keys not recognized at the hit-Enter prompt
Bram Moolenaar <Bram@vim.org>
parents: 20619
diff changeset
273 stands for either "1" if a modifier follows, or nothing.
26438
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
274 *arrow_modifiers*
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
275 Several terminal emulators (alacritty, gnome, konsole, etc.) send special
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
276 codes for keys with modifiers, but these do not have an entry in the
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
277 termcap/terminfo database. You can make them work by adding a few lines in
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
278 your vimrc. For example, to make the Control modifier work with arrow keys
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
279 for the gnome terminal: >
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
280 if &term =~ 'gnome'
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
281 execute "set <xUp>=\<Esc>[@;*A"
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
282 execute "set <xDown>=\<Esc>[@;*B"
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
283 execute "set <xRight>=\<Esc>[@;*C"
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
284 execute "set <xLeft>=\<Esc>[@;*D"
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
285 endif
c725b8e17f1f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 25700
diff changeset
286 < *xterm-scroll-region*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 The default termcap entry for xterm on Sun and other platforms does not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 contain the entry for scroll regions. Add ":cs=\E[%i%d;%dr:" to the xterm
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 entry in /etc/termcap and everything should work.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 *xterm-end-home-keys*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 On some systems (at least on FreeBSD with XFree86 3.1.2) the codes that the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 <End> and <Home> keys send contain a <Nul> character. To make these keys send
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 the proper key code, add these lines to your ~/.Xdefaults file:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 *VT100.Translations: #override \n\
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 <Key>Home: string("0x1b") string("[7~") \n\
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 <Key>End: string("0x1b") string("[8~")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 *xterm-8bit* *xterm-8-bit*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 Xterm can be run in a mode where it uses 8-bit escape sequences. The CSI code
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 is used instead of <Esc>[. The advantage is that an <Esc> can quickly be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 recognized in Insert mode, because it can't be confused with the start of a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304 special key.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 For the builtin termcap entries, Vim checks if the 'term' option contains
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 "8bit" anywhere. It then uses 8-bit characters for the termcap entries, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 mouse and a few other things. You would normally set $TERM in your shell to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308 "xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 automatically.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 When Vim receives a response to the |t_RV| (request version) sequence and it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 starts with CSI, it assumes that the terminal is in 8-bit mode and will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312 convert all key sequences to their 8-bit variants.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
314 *xterm-terminfo-entries*
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
315 For some time the terminfo entries were insufficient to describe all the
33902
8c4c6369239b runtime(doc): link cmdline completion to to |wildcards| and fix typos (#13636)
Christian Brabandt <cb@256bit.org>
parents: 33798
diff changeset
316 features that Vim can use. The builtin xterm termcap entries did have these,
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
317 with the result that several terminals that were similar enough to xterm took
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
318 advantage of these by prefixing "xterm-" to the terminal name in $TERM.
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
319
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
320 This leads to problems, because quite often these terminals are not 100%
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
321 compatible with xterm. At the start of 2023 several entries have been added
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
322 to the terminfo database to make it possible to use these features without
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
323 using the "xterm" workaround. These are the relevant entries (so far):
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
324
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
325 name xterm value description ~
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
326 RV "\033[>c" Request version |t_RV|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
327
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
328 BE "\033[?2004h" enable bracketed paste mode |t_BE|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
329 BD "\033[?2004l" disable bracketed paste mode |t_BD|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
330 PS "\033[200~" pasted text start |t_PS|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
331 PE "\033[201~" pasted text end |t_PE|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
332
31885
cc751d944b7e Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 31671
diff changeset
333 XM "\033[?1006;1004;1000%?%p1%{1}%=%th%el%;"
31671
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
334 mouse enable / disable |t_XM|
33715
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
335 FE "\033[?1004h" enable focus event tracking |t_fe|
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
336 FD "\033[?1004l" disable focus event tracking |t_fd|
31671
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
337
31885
cc751d944b7e Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 31671
diff changeset
338 The "XM" entry includes "1006" to enable SGR style mouse reporting. This
cc751d944b7e Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 31671
diff changeset
339 supports columns above 223. It also includes "1004" which enables focus
33715
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
340 reporting.
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
341 Note: As of 2023, the "1004" is currently not used by Vim itself, instead
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
342 it is recommended to set focus reporting independently of mouse tracking by
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
343 the |t_fe| and |t_fd| entries, as ncurses also starts to use with the latest
98d9da5a001f runtime(doc): clarify terminal capabilities for focus reporting
Christian Brabandt <cb@256bit.org>
parents: 33659
diff changeset
344 versions (and will then also end up in terminfo/termcap).
31885
cc751d944b7e Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 31671
diff changeset
345
31481
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
346 *xterm-kitty* *kitty-terminal*
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
347 The Kitty terminal is a special case. Mainly because it works differently
34447
0699223405c2 runtime(doc): Fix typo under *kitty-terminal* in term.txt
Christian Brabandt <cb@256bit.org>
parents: 34136
diff changeset
348 from most other terminals, but also because, instead of trying to fit in and
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
349 make it behave like other terminals by default, it dictates how applications
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
350 need to work when using Kitty. This makes it very difficult for Vim to work
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
351 in a Kitty terminal. Some exceptions have been hard coded, but it is not at
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
352 all nice to have to make exceptions for one specific terminal.
31481
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
353
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
354 One of the problems is that the value for $TERM is set to "xterm-kitty". For
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
355 Vim this is an indication that the terminal is xterm-compatible and the
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
356 builtin xterm termcap entries should be used. Many other terminals depend on
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
357 this. However, Kitty is not fully xterm compatible. The author suggested to
31495
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
358 ignore the "xterm-" prefix and use the terminfo entry anyway, so that is what
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
359 happens now, the builtin xterm termcap entries are not used. However, the
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
360 t_RV is set, otherwise other things would not work, such as automatically
31671
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
361 setting 'ttymouse' to "sgr" (at least until |t_XM| is being used for this).
31495
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
362
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
363 It is not clear why kitty sets $TERM to "xterm-kitty", the terminal isn't
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
364 really xterm compatible. "kitty" would be more appropriate, but a terminfo
a2997ac0ca2c patch 9.0.1080: the "kitty" terminfo entry is not widespread
Bram Moolenaar <Bram@vim.org>
parents: 31481
diff changeset
365 entry with that name is not widespread.
31481
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
366
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
367 Note that using the kitty keyboard protocol is a separate feature, see
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
368 |kitty-keyboard-protocol|.
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
369
7f79eb4ad11a patch 9.0.1073: using "xterm-kitty" for 'term' causes problems
Bram Moolenaar <Bram@vim.org>
parents: 31383
diff changeset
370
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 ==============================================================================
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 600
diff changeset
372 2. Terminal options *terminal-options* *termcap-options* *E436*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 The terminal options can be set just like normal options. But they are not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 shown with the ":set all" command. Instead use ":set termcap".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 It is always possible to change individual strings by setting the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 appropriate option. For example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379 :set t_ce=^V^[[K (CTRL-V, <Esc>, [, K)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381 The options are listed below. The associated termcap code is always equal to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 the last two characters of the option name. Only one termcap code is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 required: Cursor motion, 't_cm'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384
35121
28f2e09012ac runtime(doc): Fix typos in help documents
Christian Brabandt <cb@256bit.org>
parents: 34925
diff changeset
385 The options 't_da', 't_db', 't_ms', 't_xs', 't_xn', 't_xo' represent flags in
28f2e09012ac runtime(doc): Fix typos in help documents
Christian Brabandt <cb@256bit.org>
parents: 34925
diff changeset
386 the termcap. When the termcap flag is present, the option will be set to "y".
6602
c77ef1bf9623 updated for version 7.4.627
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
387 But any non-empty string means that the flag is set. An empty string means
c77ef1bf9623 updated for version 7.4.627
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
388 that the flag is not set. 't_CS' works like this too, but it isn't a termcap
c77ef1bf9623 updated for version 7.4.627
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
389 flag.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 10813
diff changeset
391 OUTPUT CODES *terminal-output-codes*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 option meaning ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 t_AB set background color (ANSI) *t_AB* *'t_AB'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 t_AF set foreground color (ANSI) *t_AF* *'t_AF'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396 t_AL add number of blank lines *t_AL* *'t_AL'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 t_al add new blank line *t_al* *'t_al'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 t_bc backspace character *t_bc* *'t_bc'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399 t_cd clear to end of screen *t_cd* *'t_cd'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400 t_ce clear to end of line *t_ce* *'t_ce'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 t_cl clear screen *t_cl* *'t_cl'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 t_cm cursor motion (required!) *E437* *t_cm* *'t_cm'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 t_Co number of colors *t_Co* *'t_Co'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 t_CS if non-empty, cursor relative to scroll region *t_CS* *'t_CS'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 t_cs define scrolling region *t_cs* *'t_cs'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 t_CV define vertical scrolling region *t_CV* *'t_CV'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 t_da if non-empty, lines from above scroll down *t_da* *'t_da'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 t_db if non-empty, lines from below scroll up *t_db* *'t_db'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409 t_DL delete number of lines *t_DL* *'t_DL'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410 t_dl delete line *t_dl* *'t_dl'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 t_fs set window title end (from status line) *t_fs* *'t_fs'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 t_ke exit "keypad transmit" mode *t_ke* *'t_ke'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 t_ks start "keypad transmit" mode *t_ks* *'t_ks'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 t_le move cursor one char left *t_le* *'t_le'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 t_mb blinking mode *t_mb* *'t_mb'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 t_md bold mode *t_md* *'t_md'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 t_me Normal mode (undoes t_mr, t_mb, t_md and color) *t_me* *'t_me'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 t_mr reverse (invert) mode *t_mr* *'t_mr'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 *t_ms* *'t_ms'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 t_ms if non-empty, cursor can be moved in standout/inverse mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 t_nd non destructive space character *t_nd* *'t_nd'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 t_op reset to original color pair *t_op* *'t_op'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 t_RI cursor number of chars right *t_RI* *'t_RI'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 t_Sb set background color *t_Sb* *'t_Sb'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 t_Sf set foreground color *t_Sf* *'t_Sf'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 t_se standout end *t_se* *'t_se'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 t_so standout mode *t_so* *'t_so'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428 t_sr scroll reverse (backward) *t_sr* *'t_sr'*
18299
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
429 t_te end of "termcap" mode *t_te* *'t_te'*
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
430 t_ti put terminal into "termcap" mode *t_ti* *'t_ti'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 t_ts set window title start (to status line) *t_ts* *'t_ts'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 t_ue underline end *t_ue* *'t_ue'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 t_us underline mode *t_us* *'t_us'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 t_ut clearing uses the current background color *t_ut* *'t_ut'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 t_vb visual bell *t_vb* *'t_vb'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 t_ve cursor visible *t_ve* *'t_ve'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 t_vi cursor invisible *t_vi* *'t_vi'*
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
438 t_vs cursor very visible (blink) *t_vs* *'t_vs'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 *t_xs* *'t_xs'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 t_xs if non-empty, standout not erased by overwriting (hpterm)
6602
c77ef1bf9623 updated for version 7.4.627
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
441 *t_xn* *'t_xn'*
6647
3af822eb4da5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6602
diff changeset
442 t_xn if non-empty, writing a character at the last screen cell
3af822eb4da5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6602
diff changeset
443 does not cause scrolling
34925
286bee19bc96 patch 9.1.0321: Garbled output on serial terminals with XON/XOFF flow control
Christian Brabandt <cb@256bit.org>
parents: 34447
diff changeset
444 *t_xo* *'t_xo'*
286bee19bc96 patch 9.1.0321: Garbled output on serial terminals with XON/XOFF flow control
Christian Brabandt <cb@256bit.org>
parents: 34447
diff changeset
445 t_xo if non-empty, terminal uses xon/xoff handshaking, mapping
286bee19bc96 patch 9.1.0321: Garbled output on serial terminals with XON/XOFF flow control
Christian Brabandt <cb@256bit.org>
parents: 34447
diff changeset
446 CTRL-S will not be possible then, since it is used for flow
286bee19bc96 patch 9.1.0321: Garbled output on serial terminals with XON/XOFF flow control
Christian Brabandt <cb@256bit.org>
parents: 34447
diff changeset
447 control (used by vt420 terminal). Setting this flag has only
286bee19bc96 patch 9.1.0321: Garbled output on serial terminals with XON/XOFF flow control
Christian Brabandt <cb@256bit.org>
parents: 34447
diff changeset
448 an effect when starting Vim.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 t_ZH italics mode *t_ZH* *'t_ZH'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 t_ZR italics end *t_ZR* *'t_ZR'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 Added by Vim (there are no standard codes for these):
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20115
diff changeset
453 t_AU set underline color (ANSI) *t_AU* *'t_AU'*
29328
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
454 t_Ce undercurl and underline end *t_Ce* *'t_Ce'*
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
455 t_Cs undercurl (curly underline) mode *t_Cs* *'t_Cs'*
34136
36843e079f64 patch 9.1.0030: Cannot use terminal alternate font
Christian Brabandt <cb@256bit.org>
parents: 34057
diff changeset
456 t_CF set alternate font (using index 0 - 10) *t_CF* *'t_CF'*
29328
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
457 t_Us double underline mode *t_Us* *'t_Us'*
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
458 t_ds dotted underline mode *t_ds* *'t_ds'*
60977de70684 patch 9.0.0007: no support for double, dotted and dashed underlines
Bram Moolenaar <Bram@vim.org>
parents: 29314
diff changeset
459 t_Ds dashed underline mode *t_Ds* *'t_Ds'*
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
460 t_Te strikethrough end *t_Te* *'t_Te'*
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
461 t_Ts strikethrough mode *t_Ts* *'t_Ts'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 t_IS set icon text start *t_IS* *'t_IS'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 t_IE set icon text end *t_IE* *'t_IE'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
11400
0f8713fe20dc Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11062
diff changeset
465 t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
11763
21f3930dfe6e Documentation updates.
Christian Brabandt <cb@256bit.org>
parents: 11400
diff changeset
466 t_WS set window size (height, width in cells) *t_WS* *'t_WS'*
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
467 t_VS cursor normally visible (no blink) *t_VS* *'t_VS'*
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
468 t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
6727
7c5a0c69e1ac updated for version 7.4.687
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
469 t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
7c5a0c69e1ac updated for version 7.4.687
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
470 t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
500
4772a5e3f9fa updated for version 7.0138
vimboss
parents: 308
diff changeset
471 |termcap-cursor-shape|
28620
4d76b3e07c07 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
472 t_RV request terminal version string (works for *t_RV* *'t_RV'*
4d76b3e07c07 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
473 xterm and other terminal emulators) The
4d76b3e07c07 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
474 response is stored in |v:termresponse| |xterm-8bit|
4d76b3e07c07 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 28379
diff changeset
475 |'ttymouse'| |xterm-codes|
31671
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
476 t_XM enable/disable mouse reporting, *t_XM* *'t_XM'*
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
477 see |mouse-reporting| below
31293
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
478 t_RK request terminal keyboard protocol state; *t_RK* *'t_RK'*
ff4473b3fc58 patch 9.0.0980: the keyboard state response may end up in a shell command
Bram Moolenaar <Bram@vim.org>
parents: 31229
diff changeset
479 sent after |t_TI|
4229
fa4089df54bc Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2709
diff changeset
480 t_u7 request cursor position (for xterm) *t_u7* *'t_u7'*
fa4089df54bc Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2709
diff changeset
481 see |'ambiwidth'|
15640
7cfe57329284 Updated runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14479
diff changeset
482 The response is stored in |v:termu7resp|
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
483 t_RF request terminal foreground color *t_RF* *'t_RF'*
15640
7cfe57329284 Updated runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14479
diff changeset
484 The response is stored in |v:termrfgresp|
6884
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6727
diff changeset
485 t_RB request terminal background color *t_RB* *'t_RB'*
15640
7cfe57329284 Updated runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14479
diff changeset
486 The response is stored in |v:termrbgresp|
8969
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
487 t_8f set foreground color (R, G, B) *t_8f* *'t_8f'*
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
488 |xterm-true-color|
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
489 t_8b set background color (R, G, B) *t_8b* *'t_8b'*
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
490 |xterm-true-color|
20619
68c206d3a251 patch 8.2.0863: cannot set a separate color for underline/undercurl
Bram Moolenaar <Bram@vim.org>
parents: 20115
diff changeset
491 t_8u set underline color (R, G, B) *t_8u* *'t_8u'*
10640
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
492 t_BE enable bracketed paste mode *t_BE* *'t_BE'*
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
493 |xterm-bracketed-paste|
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
494 t_BD disable bracketed paste mode *t_BD* *'t_BD'*
27be410d6d29 patch 8.0.0210: no support for bracketed paste
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
495 |xterm-bracketed-paste|
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
496 t_SC set cursor color start *t_SC* *'t_SC'*
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
497 t_EC set cursor color end *t_EC* *'t_EC'*
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
498 t_SH set cursor shape *t_SH* *'t_SH'*
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
499 t_RC request terminal cursor blinking *t_RC* *'t_RC'*
15640
7cfe57329284 Updated runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14479
diff changeset
500 The response is stored in |v:termblinkresp|
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
501 t_RS request terminal cursor style *t_RS* *'t_RS'*
15640
7cfe57329284 Updated runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14479
diff changeset
502 The response is stored in |v:termstyleresp|
14479
3375a8cbb442 patch 8.1.0253: saving and restoring window title does not always work
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
503 t_ST save window title to stack *t_ST* *'t_ST'*
3375a8cbb442 patch 8.1.0253: saving and restoring window title does not always work
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
504 t_RT restore window title from stack *t_RT* *'t_RT'*
3375a8cbb442 patch 8.1.0253: saving and restoring window title does not always work
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
505 t_Si save icon text to stack *t_Si* *'t_Si'*
3375a8cbb442 patch 8.1.0253: saving and restoring window title does not always work
Christian Brabandt <cb@256bit.org>
parents: 14421
diff changeset
506 t_Ri restore icon text from stack *t_Ri* *'t_Ri'*
18299
a9cf41bcb5d6 patch 8.1.2144: side effects when using t_ti to enable modifyOtherKeys
Bram Moolenaar <Bram@vim.org>
parents: 16610
diff changeset
507 t_TE end of "raw" mode *t_TE* *'t_TE'*
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
508 t_TI put terminal into "raw" mode *t_TI* *'t_TI'*
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
509 t_fe enable focus-event tracking *t_fe* *'t_fe'*
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
510 |xterm-focus-event|
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
511 t_fd disable focus-event tracking *t_fd* *'t_fd'*
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
512 |xterm-focus-event|
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
513
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
514 Some codes have a start, middle and end part. The start and end are defined
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
515 by the termcap option, the middle part is text.
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
516 set title text: t_ts {title text} t_fs
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
517 set icon text: t_IS {icon text} t_IE
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
518 set cursor color: t_SC {color name} t_EC
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
519
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
520 t_SH must take one argument:
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
521 0, 1 or none blinking block cursor
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
522 2 block cursor
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
523 3 blinking underline cursor
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
524 4 underline cursor
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
525 5 blinking vertical bar cursor
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
526 6 vertical bar cursor
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
527
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
528 t_RS is sent only if the response to t_RV has been received. It is not used
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
529 on Mac OS when Terminal.app could be recognized from the termresponse.
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
530
31671
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
531 *mouse-reporting*
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
532 Many terminals can report mouse clicks and some can report mouse movement and
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
533 dragging. Vim needs to know what codes are being used for this.
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
534
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
535 The "XM" terminfo/termcap entry is used for this. Vim also has the 'ttymouse'
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
536 option to specify the mouse protocol being used. See the option for the
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
537 possible values.
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
538
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
539 If Vim can read the "XM" terminfo/termcap entry then it will be used for
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
540 enabling and disabling the mouse reporting. If it is missing, then the value
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
541 from 'ttymouse' is used to decide how to do this.
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
542
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
543 If the "XM" entry exists and the first number is "1006" then 'ttymouse' will
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
544 be set to "sgr", unless it was already set earlier.
5ed19049b1e8 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31588
diff changeset
545
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
546
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 10813
diff changeset
547 KEY CODES *terminal-key-codes*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
548 Note: Use the <> form if possible
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
549
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
550 option name meaning ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
551
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
552 t_ku <Up> arrow up *t_ku* *'t_ku'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
553 t_kd <Down> arrow down *t_kd* *'t_kd'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
554 t_kr <Right> arrow right *t_kr* *'t_kr'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
555 t_kl <Left> arrow left *t_kl* *'t_kl'*
180
7e70fc748752 updated for version 7.0056
vimboss
parents: 179
diff changeset
556 <xUp> alternate arrow up *<xUp>*
7e70fc748752 updated for version 7.0056
vimboss
parents: 179
diff changeset
557 <xDown> alternate arrow down *<xDown>*
7e70fc748752 updated for version 7.0056
vimboss
parents: 179
diff changeset
558 <xRight> alternate arrow right *<xRight>*
7e70fc748752 updated for version 7.0056
vimboss
parents: 179
diff changeset
559 <xLeft> alternate arrow left *<xLeft>*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
560 <S-Up> shift arrow up
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
561 <S-Down> shift arrow down
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
562 t_%i <S-Right> shift arrow right *t_%i* *'t_%i'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
563 t_#4 <S-Left> shift arrow left *t_#4* *'t_#4'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
564 t_k1 <F1> function key 1 *t_k1* *'t_k1'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
565 <xF1> alternate F1 *<xF1>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
566 t_k2 <F2> function key 2 *<F2>* *t_k2* *'t_k2'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
567 <xF2> alternate F2 *<xF2>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
568 t_k3 <F3> function key 3 *<F3>* *t_k3* *'t_k3'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
569 <xF3> alternate F3 *<xF3>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
570 t_k4 <F4> function key 4 *<F4>* *t_k4* *'t_k4'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
571 <xF4> alternate F4 *<xF4>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
572 t_k5 <F5> function key 5 *<F5>* *t_k5* *'t_k5'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
573 t_k6 <F6> function key 6 *<F6>* *t_k6* *'t_k6'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
574 t_k7 <F7> function key 7 *<F7>* *t_k7* *'t_k7'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
575 t_k8 <F8> function key 8 *<F8>* *t_k8* *'t_k8'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
576 t_k9 <F9> function key 9 *<F9>* *t_k9* *'t_k9'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
577 t_k; <F10> function key 10 *<F10>* *t_k;* *'t_k;'*
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4229
diff changeset
578 t_F1 <F11> function key 11 *<F11>* *t_F1* *'t_F1'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
579 t_F2 <F12> function key 12 *<F12>* *t_F2* *'t_F2'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
580 t_F3 <F13> function key 13 *<F13>* *t_F3* *'t_F3'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
581 t_F4 <F14> function key 14 *<F14>* *t_F4* *'t_F4'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
582 t_F5 <F15> function key 15 *<F15>* *t_F5* *'t_F5'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
583 t_F6 <F16> function key 16 *<F16>* *t_F6* *'t_F6'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
584 t_F7 <F17> function key 17 *<F17>* *t_F7* *'t_F7'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
585 t_F8 <F18> function key 18 *<F18>* *t_F8* *'t_F8'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
586 t_F9 <F19> function key 19 *<F19>* *t_F9* *'t_F9'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
587 <S-F1> shifted function key 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
588 <S-xF1> alternate <S-F1> *<S-xF1>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
589 <S-F2> shifted function key 2 *<S-F2>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
590 <S-xF2> alternate <S-F2> *<S-xF2>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
591 <S-F3> shifted function key 3 *<S-F3>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
592 <S-xF3> alternate <S-F3> *<S-xF3>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
593 <S-F4> shifted function key 4 *<S-F4>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
594 <S-xF4> alternate <S-F4> *<S-xF4>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
595 <S-F5> shifted function key 5 *<S-F5>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
596 <S-F6> shifted function key 6 *<S-F6>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
597 <S-F7> shifted function key 7 *<S-F7>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
598 <S-F8> shifted function key 8 *<S-F8>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
599 <S-F9> shifted function key 9 *<S-F9>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
600 <S-F10> shifted function key 10 *<S-F10>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
601 <S-F11> shifted function key 11 *<S-F11>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
602 <S-F12> shifted function key 12 *<S-F12>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
603 t_%1 <Help> help key *t_%1* *'t_%1'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
604 t_&8 <Undo> undo key *t_&8* *'t_&8'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
605 t_kI <Insert> insert key *t_kI* *'t_kI'*
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
606 <kInsert> keypad insert key
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
607 t_kD <Del> delete key *t_kD* *'t_kD'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
608 t_kb <BS> backspace key *t_kb* *'t_kb'*
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4229
diff changeset
609 t_kB <S-Tab> back-tab (shift-tab) *<S-Tab>* *t_kB* *'t_kB'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
610 t_kh <Home> home key *t_kh* *'t_kh'*
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4229
diff changeset
611 t_#2 <S-Home> shifted home key *<S-Home>* *t_#2* *'t_#2'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
612 <xHome> alternate home key *<xHome>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
613 t_@7 <End> end key *t_@7* *'t_@7'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
614 t_*7 <S-End> shifted end key *<S-End>* *t_star7* *'t_star7'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
615 <xEnd> alternate end key *<xEnd>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
616 t_kP <PageUp> page-up key *t_kP* *'t_kP'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
617 t_kN <PageDown> page-down key *t_kN* *'t_kN'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
618 t_K1 <kHome> keypad home key *t_K1* *'t_K1'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
619 t_K4 <kEnd> keypad end key *t_K4* *'t_K4'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
620 t_K3 <kPageUp> keypad page-up key *t_K3* *'t_K3'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
621 t_K5 <kPageDown> keypad page-down key *t_K5* *'t_K5'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
622 t_K6 <kPlus> keypad plus key *<kPlus>* *t_K6* *'t_K6'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
623 t_K7 <kMinus> keypad minus key *<kMinus>* *t_K7* *'t_K7'*
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4229
diff changeset
624 t_K8 <kDivide> keypad divide *<kDivide>* *t_K8* *'t_K8'*
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4229
diff changeset
625 t_K9 <kMultiply> keypad multiply *<kMultiply>* *t_K9* *'t_K9'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
626 t_KA <kEnter> keypad enter key *<kEnter>* *t_KA* *'t_KA'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
627 t_KB <kPoint> keypad decimal point *<kPoint>* *t_KB* *'t_KB'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
628 t_KC <k0> keypad 0 *<k0>* *t_KC* *'t_KC'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
629 t_KD <k1> keypad 1 *<k1>* *t_KD* *'t_KD'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
630 t_KE <k2> keypad 2 *<k2>* *t_KE* *'t_KE'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
631 t_KF <k3> keypad 3 *<k3>* *t_KF* *'t_KF'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
632 t_KG <k4> keypad 4 *<k4>* *t_KG* *'t_KG'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
633 t_KH <k5> keypad 5 *<k5>* *t_KH* *'t_KH'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
634 t_KI <k6> keypad 6 *<k6>* *t_KI* *'t_KI'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
635 t_KJ <k7> keypad 7 *<k7>* *t_KJ* *'t_KJ'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
636 t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
637 t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
638 <Mouse> leader of mouse code *<Mouse>*
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
639
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
640 t_PS <PasteStart> start of bracketed paste *t_PS* *'t_PS'*
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
641 |xterm-bracketed-paste|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
642 t_PE <PasteEnd> end of bracketed paste *t_PE* *'t_PE'*
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
643 |xterm-bracketed-paste|
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
644 <FocusGained> Vim window got focus (internal only)
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
645 <FocusLost> Vim window lost focus (internal only)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
646
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
647 Note about t_so and t_mr: When the termcap entry "so" is not present the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
648 entry for "mr" is used. And vice versa. The same is done for "se" and "me".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
649 If your terminal supports both inversion and standout mode, you can see two
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
650 different modes. If your terminal supports only one of the modes, both will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
651 look the same.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
652
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 7
diff changeset
653 *keypad-comma*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
654 The keypad keys, when they are not mapped, behave like the equivalent normal
33
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 7
diff changeset
655 key. There is one exception: if you have a comma on the keypad instead of a
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 7
diff changeset
656 decimal point, Vim will use a dot anyway. Use these mappings to fix that: >
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 7
diff changeset
657 :noremap <kPoint> ,
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 7
diff changeset
658 :noremap! <kPoint> ,
f6033dcbaf31 updated for version 7.0020
vimboss
parents: 7
diff changeset
659 < *xterm-codes*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
660 There is a special trick to obtain the key codes which currently only works
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
661 for xterm. When |t_RV| is defined and a response is received which indicates
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
662 an xterm with patchlevel 141 or higher, Vim uses special escape sequences to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
663 request the key codes directly from the xterm. The responses are used to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
664 adjust the various t_ codes. This avoids the problem that the xterm can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
665 produce different codes, depending on the mode it is in (8-bit, VT102,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
666 VT220, etc.). The result is that codes like <xF1> are no longer needed.
26670
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
667
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
668 One of the codes that can change is 't_Co', the number of colors. This will
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
669 trigger a redraw. If this is a problem, reset the 'xtermcodes' option as
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
670 early as possible: >
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
671 set noxtermcodes
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
672
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
673 Note: Requesting the key codes is only done on startup. If the xterm options
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
674 are changed after Vim has started, the escape sequences may not be recognized
a77b661439f9 patch 8.2.3864: cannot disable requesting key codes from xterm
Bram Moolenaar <Bram@vim.org>
parents: 26591
diff changeset
675 anymore.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
676
8969
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
677 *xterm-true-color*
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
678 Vim supports using true colors in the terminal (taken from |highlight-guifg|
18831
6848b809a26e Runtime file updates.
Bram Moolenaar <Bram@vim.org>
parents: 18489
diff changeset
679 and |highlight-guibg|), given that the terminal supports this. To make this
9027
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
680 work the 'termguicolors' option needs to be set.
30967
eb2638f278bf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30019
diff changeset
681 See https://github.com/termstandard/colors for a list of terminals that
10140
b11ceef7116e commit https://github.com/vim/vim/commit/64d8e25bf6efe5f18b032563521c3ce278c316ab
Christian Brabandt <cb@256bit.org>
parents: 9027
diff changeset
682 support true colors.
8969
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
683
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
684 For telling the terminal what RGB color to use the |t_8f| and |t_8b| termcap
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
685 entries are used. These are set by default to values that work for most
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
686 terminals. If that does not work for your terminal you can set them manually.
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
687 The default values are set like this: >
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
688 let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
689 let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
690
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
691 Some terminals accept the same sequences, but with all semicolons replaced by
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
692 colons (this is actually more compatible, but less widely supported): >
10140
b11ceef7116e commit https://github.com/vim/vim/commit/64d8e25bf6efe5f18b032563521c3ce278c316ab
Christian Brabandt <cb@256bit.org>
parents: 9027
diff changeset
693 let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
b11ceef7116e commit https://github.com/vim/vim/commit/64d8e25bf6efe5f18b032563521c3ce278c316ab
Christian Brabandt <cb@256bit.org>
parents: 9027
diff changeset
694 let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
9027
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
695
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
696 These options contain printf strings, with |printf()| (actually, its C
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
697 equivalent hence `l` modifier) invoked with the t_ option value and three
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
698 unsigned long integers that may have any value between 0 and 255 (inclusive)
773d627cac0b commit https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
Christian Brabandt <cb@256bit.org>
parents: 8969
diff changeset
699 representing red, green and blue colors respectively.
8969
c83e2c1e7f2b commit https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
700
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
701 *xterm-resize*
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
702 Window resizing with xterm only works if the allowWindowOps resource is
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
703 enabled. On some systems and versions of xterm it's disabled by default
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
704 because someone thought it would be a security issue. It's not clear if this
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
705 is actually the case.
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
706
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
707 To overrule the default, put this line in your ~/.Xdefaults or
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
708 ~/.Xresources:
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
709 >
31579
7d68a90cbf5c Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 31495
diff changeset
710 XTerm*allowWindowOps: true
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
711
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
712 And run "xrdb -merge .Xresources" to make it effective. You can check the
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
713 value with the context menu (right mouse button while CTRL key is pressed),
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
714 there should be a tick at allow-window-ops.
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
715
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
716 *xterm-focus-event*
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
717 Some terminals including xterm support the focus event tracking feature.
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
718 If this feature is enabled by the 't_fe' sequence, special key sequences are
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
719 sent from the terminal to Vim every time the terminal gains or loses focus.
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
720 Vim fires focus events (|FocusGained|/|FocusLost|) by handling them accordingly.
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
721 Focus event tracking is disabled by a 't_fd' sequence when exiting "raw" mode.
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
722 If you would like to disable this feature, add the following to your .vimrc:
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
723 `set t_fd=`
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
724 `set t_fe=`
25700
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
725 If your terminal does support this but Vim does not recognize the terminal,
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
726 you may have to set the options yourself: >
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
727 let &t_fe = "\<Esc>[?1004h"
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
728 let &t_fd = "\<Esc>[?1004l"
26591
3a63b1e4a6f4 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
729 execute "set <FocusGained>=\<Esc>[I"
3a63b1e4a6f4 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 26438
diff changeset
730 execute "set <FocusLost>=\<Esc>[O"
25700
d4faa2c5211b Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24911
diff changeset
731 If this causes garbage to show when Vim starts up then it doesn't work.
23606
f98939164e91 patch 8.2.2345: no focus events in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 23466
diff changeset
732
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
733 *termcap-colors*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
734 Note about colors: The 't_Co' option tells Vim the number of colors available.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
735 When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
736 If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
16380
5ad204d8a2f2 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 15640
diff changeset
737 to reset to the default colors. Also see 'termguicolors'.
20115
bd021eb62e73 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
738 When the GUI is running 't_Co' is set to 16777216.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
739
36
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
740 *termcap-cursor-shape* *termcap-cursor-color*
6727
7c5a0c69e1ac updated for version 7.4.687
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
741 When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim
7c5a0c69e1ac updated for version 7.4.687
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
742 enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise
29403
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
743 't_SI' is sent. When leaving Insert mode or Replace mode 't_EI' is used.
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
744 Note: When 't_EI' is not set then 't_SI' and 't_SR' will not be sent. And
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
745 when 't_SI' or 't_SR' is not set then 't_EI' is sent only once.
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
746
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
747 This can be used to change the shape or color of the cursor in Insert or
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
748 Replace mode. These are not standard termcap/terminfo entries, you need to set
03e3b0034e31 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 29328
diff changeset
749 them yourself.
36
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
750 Example for an xterm, this changes the color of the cursor: >
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
751 if &term =~ "xterm"
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
752 let &t_SI = "\<Esc>]12;purple\x7"
6727
7c5a0c69e1ac updated for version 7.4.687
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
753 let &t_SR = "\<Esc>]12;red\x7"
36
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
754 let &t_EI = "\<Esc>]12;blue\x7"
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
755 endif
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
756 NOTE: When Vim exits the shape for Normal mode will remain. The shape from
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
757 before Vim started will not be restored.
30019
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
758
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
759 For Windows Terminal you can use something like this: >
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
760 " Note: This should be set after `set termguicolors` or `set t_Co=256`.
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
761 if &term =~ 'xterm' || &term == 'win32'
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
762 " Use DECSCUSR escape sequences
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
763 let &t_SI = "\e[5 q" " blink bar
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
764 let &t_SR = "\e[3 q" " blink underline
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
765 let &t_EI = "\e[1 q" " blink block
33798
af1b18018eeb runtime(doc): Fix whitespace and formatting of some help files (#13549)
Christian Brabandt <cb@256bit.org>
parents: 33715
diff changeset
766 let &t_ti ..= "\e[1 q" " blink block
af1b18018eeb runtime(doc): Fix whitespace and formatting of some help files (#13549)
Christian Brabandt <cb@256bit.org>
parents: 33715
diff changeset
767 let &t_te ..= "\e[0 q" " default (depends on terminal, normally blink
af1b18018eeb runtime(doc): Fix whitespace and formatting of some help files (#13549)
Christian Brabandt <cb@256bit.org>
parents: 33715
diff changeset
768 " block)
30019
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
769 endif
347cf03fee2b patch 9.0.0347: MS-Windows: cannot set cursor shape in Windows Terminal
Bram Moolenaar <Bram@vim.org>
parents: 29885
diff changeset
770
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2561
diff changeset
771 {not available when compiled without the |+cursorshape| feature}
36
125e80798a85 updated for version 7.0021
vimboss
parents: 33
diff changeset
772
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
773 *termcap-title*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
774 The 't_ts' and 't_fs' options are used to set the window title if the terminal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
775 allows title setting via sending strings. They are sent before and after the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
776 title string, respectively. Similar 't_IS' and 't_IE' are used to set the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
777 icon text. These are Vim-internal extensions of the Unix termcap, so they
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
778 cannot be obtained from an external termcap. However, the builtin termcap
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
779 contains suitable entries for xterm and iris-ansi, so you don't need to set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
780 them here.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
781 *hpterm*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
782 If inversion or other highlighting does not work correctly, try setting the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
783 't_xs' option to a non-empty string. This makes the 't_ce' code be used to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
784 remove highlighting from a line. This is required for "hpterm". Setting the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
785 'weirdinvert' option has the same effect as making 't_xs' non-empty, and vice
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
786 versa.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
787
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
788 *scroll-region*
19116
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18972
diff changeset
789 Some termcaps do not include an entry for "cs" (scroll region), although the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
790 terminal does support it. For example: xterm on a Sun. You can use the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
791 builtin_xterm or define t_cs yourself. For example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
792 :set t_cs=^V^[[%i%d;%dr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
793 Where ^V is CTRL-V and ^[ is <Esc>.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
794
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
795 The vertical scroll region t_CV is not a standard termcap code. Vim uses it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
796 internally in the GUI. But it can also be defined for a terminal, if you can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
797 find one that supports it. The two arguments are the left and right column of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
798 the region which to restrict the scrolling to. Just like t_cs defines the top
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
799 and bottom lines. Defining t_CV will make scrolling in vertically split
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
800 windows a lot faster. Don't set t_CV when t_da or t_db is set (text isn't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
801 cleared when scrolling).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
802
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
803 Unfortunately it is not possible to deduce from the termcap how cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
804 positioning should be done when using a scrolling region: Relative to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
805 beginning of the screen or relative to the beginning of the scrolling region.
19116
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18972
diff changeset
806 Most terminals use the first method. The 't_CS' option should be set to any
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18972
diff changeset
807 string when cursor positioning is relative to the start of the scrolling
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18972
diff changeset
808 region. It should be set to an empty string otherwise.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
809
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
810 Note for xterm users: The shifted cursor keys normally don't work. You can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
811 make them work with the xmodmap command and some mappings in Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
812
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
813 Give these commands in the xterm:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
814 xmodmap -e "keysym Up = Up F13"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
815 xmodmap -e "keysym Down = Down F16"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
816 xmodmap -e "keysym Left = Left F18"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
817 xmodmap -e "keysym Right = Right F19"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
818
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
819 And use these mappings in Vim:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
820 :map <t_F3> <S-Up>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
821 :map! <t_F3> <S-Up>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
822 :map <t_F6> <S-Down>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
823 :map! <t_F6> <S-Down>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
824 :map <t_F8> <S-Left>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
825 :map! <t_F8> <S-Left>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
826 :map <t_F9> <S-Right>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
827 :map! <t_F9> <S-Right>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
828
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
829 Instead of, say, <S-Up> you can use any other command that you want to use the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
830 shift-cursor-up key for. (Note: To help people that have a Sun keyboard with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
831 left side keys F14 is not used because it is confused with the undo key; F15
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
832 is not used, because it does a window-to-front; F17 is not used, because it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
833 closes the window. On other systems you can probably use them.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
834
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
835 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
836 3. Window size *window-size*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
837
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
838 [This is about the size of the whole window Vim is using, not a window that is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
839 created with the ":split" command.]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
840
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
841 If you are running Vim on an Amiga and the terminal name is "amiga" or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
842 "builtin_amiga", the amiga-specific window resizing will be enabled. On Unix
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
843 systems three methods are tried to get the window size:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
844
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
845 - an ioctl call (TIOCGSIZE or TIOCGWINSZ, depends on your system)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
846 - the environment variables "LINES" and "COLUMNS"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
847 - from the termcap entries "li" and "co"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
848
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
849 If everything fails a default size of 24 lines and 80 columns is assumed. If
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
850 a window-resize signal is received the size will be set again. If the window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
851 size is wrong you can use the 'lines' and 'columns' options to set the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
852 correct values.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
853
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
854 One command can be used to set the screen size:
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 7272
diff changeset
855 *:mod* *:mode* *E359*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
856 :mod[e] [mode]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
857
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
858 Without argument this only detects the screen size and redraws the screen.
28010
c968191a8557 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 27903
diff changeset
859 [mode] was used on MS-DOS, but it doesn't work anymore. In |Vim9| this
c968191a8557 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 27903
diff changeset
860 command is not supported.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
861
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
862 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
863 4. Slow and fast terminals *slow-fast-terminal*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
864 *slow-terminal*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
865
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
866 If you have a fast terminal you may like to set the 'ruler' option. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
867 cursor position is shown in the status line. If you are using horizontal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
868 scrolling ('wrap' option off) consider setting 'sidescroll' to a small
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
869 number.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
870
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
871 If you have a slow terminal you may want to reset the 'showcmd' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
872 The command characters will not be shown in the status line. If the terminal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
873 scrolls very slowly, set the 'scrolljump' to 5 or so. If the cursor is moved
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
874 off the screen (e.g., with "j") Vim will scroll 5 lines at a time. Another
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
875 possibility is to reduce the number of lines that Vim uses with the command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
876 "z{height}<CR>".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
877
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
878 If the characters from the terminal are arriving with more than 1 second
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
879 between them you might want to set the 'timeout' and/or 'ttimeout' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
880 See the "Options" chapter |options|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
881
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
882 If your terminal does not support a scrolling region, but it does support
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
883 insert/delete line commands, scrolling with multiple windows may make the
31229
5b71c3884a2a patch 9.0.0948: 'ttyfast' is set for arbitrary terminals
Bram Moolenaar <Bram@vim.org>
parents: 30967
diff changeset
884 lines jump up and down. This would happen if the 'ttyfast' option has been
5b71c3884a2a patch 9.0.0948: 'ttyfast' is set for arbitrary terminals
Bram Moolenaar <Bram@vim.org>
parents: 30967
diff changeset
885 reset. Check that with: >
5b71c3884a2a patch 9.0.0948: 'ttyfast' is set for arbitrary terminals
Bram Moolenaar <Bram@vim.org>
parents: 30967
diff changeset
886 verbose set ttyfast?
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
887
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
888 If your terminal scrolls very slowly, but redrawing is not slow, set the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
889 'ttyscroll' option to a small number, e.g., 3. This will make Vim redraw the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
890 screen instead of scrolling, when there are more than 3 lines to be scrolled.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
891
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
892 If you are using a color terminal that is slow, use this command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
893 hi NonText cterm=NONE ctermfg=NONE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
894 This avoids that spaces are sent when they have different attributes. On most
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
895 terminals you can't see this anyway.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
896
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
897 If you are using Vim over a slow serial line, you might want to try running
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
898 Vim inside the "screen" program. Screen will optimize the terminal I/O quite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
899 a bit.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
900
18972
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
901 If you are testing termcap options, but you cannot see what is happening, you
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
902 might want to set the 'writedelay' option. When non-zero, one character is
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
903 sent to the terminal at a time. This makes the screen updating a lot slower,
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
904 making it possible to see what is happening.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
905
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
906 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
907 5. Using the mouse *mouse-using*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
908
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
909 This section is about using the mouse on a terminal or a terminal window. How
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
910 to use the mouse in a GUI window is explained in |gui-mouse|. For scrolling
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
911 with a mouse wheel see |scroll-mouse-wheel|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
912
2207
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
913 Don't forget to enable the mouse with this command: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
914 :set mouse=a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
915 Otherwise Vim won't recognize the mouse in all modes (See 'mouse').
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
916
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1256
diff changeset
917 Currently the mouse is supported for Unix in an xterm window, in a *BSD
18972
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
918 console with |sysmouse|, in a Linux console (with GPM |gpm-mouse|), and
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
919 in a Windows console.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
920 Mouse clicks can be used to position the cursor, select an area and paste.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
921
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
922 These characters in the 'mouse' option tell in which situations the mouse will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
923 be used by Vim:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
924 n Normal mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
925 v Visual mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
926 i Insert mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
927 c Command-line mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
928 h all previous modes when in a help file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
929 a all previous modes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
930 r for |hit-enter| prompt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
931
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
932 The default for 'mouse' is empty, the mouse is not used. Normally you would
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
933 do: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
934 :set mouse=a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
935 to start using the mouse (this is equivalent to setting 'mouse' to "nvich").
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
936 If you only want to use the mouse in a few modes or also want to use it for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
937 the two questions you will have to concatenate the letters for those modes.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
938 For example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
939 :set mouse=nv
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
940 Will make the mouse work in Normal mode and Visual mode. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
941 :set mouse=h
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
942 Will make the mouse work in help files only (so you can use "g<LeftMouse>" to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
943 jump to tags).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
944
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
945 Whether the selection that is started with the mouse is in Visual mode or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
946 Select mode depends on whether "mouse" is included in the 'selectmode'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
947 option.
18465
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
948 *terminal-mouse*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
949 In an xterm, with the currently active mode included in the 'mouse' option,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
950 normal mouse clicks are used by Vim, mouse clicks with the shift or ctrl key
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
951 pressed go to the xterm. With the currently active mode not included in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
952 'mouse' all mouse clicks go to the xterm.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
953
18465
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
954 For terminals where it is not possible to have the mouse events be used by the
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
955 terminal itself by using a modifier, a workaround is to not use mouse events
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
956 for Vim in command-line mode: >
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
957 :set mouse=nvi
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
958 Then to select text with the terminal, use ":" to go to command-line mode,
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
959 select and copy the text to the system, then press Esc.
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
960
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
961 Another way is to temporarily use ":sh" to run a shell, copy the text, then
d7619a9874cd patch 8.1.2226: cannot use system copy/paste in non-xterm terminals
Bram Moolenaar <Bram@vim.org>
parents: 18299
diff changeset
962 exit the shell. 'mouse' can remain set to "a" then.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
963 *xterm-clipboard*
28379
6dd88e45d47d Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 28010
diff changeset
964 In the Motif GUI version, when running in a terminal and there is
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
965 access to the X-server (DISPLAY is set), the copy and paste will behave like
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
966 in the GUI. If not, the middle mouse button will insert the unnamed register.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
967 In that case, here is how you copy and paste a piece of text:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
968
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
969 Copy/paste with the mouse and Visual mode ('mouse' option must be set, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
970 above):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
971 1. Press left mouse button on first letter of text, move mouse pointer to last
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
972 letter of the text and release the button. This will start Visual mode and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
973 highlight the selected area.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
974 2. Press "y" to yank the Visual text in the unnamed register.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
975 3. Click the left mouse button at the insert position.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
976 4. Click the middle mouse button.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
977
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
978 Shortcut: If the insert position is on the screen at the same time as the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
979 Visual text, you can do 2, 3 and 4 all in one: Click the middle mouse button
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
980 at the insert position.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
981
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
982 Note: When the |-X| command line argument is used, Vim will not connect to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
983 X server and copy/paste to the X clipboard (selection) will not work. Use the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
984 shift key with the mouse buttons to let the xterm do the selection.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
985
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
986 *xterm-command-server*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
987 When the X-server clipboard is available, the command server described in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
988 |x11-clientserver| can be enabled with the --servername command line argument.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
989
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
990 *xterm-copy-paste*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
991 NOTE: In some (older) xterms, it's not possible to move the cursor past column
5908
32de51778c27 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
992 95 or 223. This is an xterm problem, not Vim's. Get a newer xterm
32de51778c27 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
993 |color-xterm|. Also see |'ttymouse'|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
994
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
995 Copy/paste in xterm with (current mode NOT included in 'mouse'):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
996 1. Press left mouse button on first letter of text, move mouse pointer to last
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
997 letter of the text and release the button.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
998 2. Use normal Vim commands to put the cursor at the insert position.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
999 3. Press "a" to start Insert mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1000 4. Click the middle mouse button.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1001 5. Press ESC to end Insert mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1002 (The same can be done with anything in 'mouse' if you keep the shift key
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1003 pressed while using the mouse.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1004
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1005 Note: if you lose the 8th bit when pasting (special characters are translated
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1006 into other characters), you may have to do "stty cs8 -istrip -parenb" in your
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1007 shell before starting Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1008
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1009 Thus in an xterm the shift and ctrl keys cannot be used with the mouse. Mouse
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1010 commands requiring the CTRL modifier can be simulated by typing the "g" key
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1011 before using the mouse:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1012 "g<LeftMouse>" is "<C-LeftMouse> (jump to tag under mouse click)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1013 "g<RightMouse>" is "<C-RightMouse> ("CTRL-T")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1014
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1015 *mouse-mode-table* *mouse-overview*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1016 A short overview of what the mouse buttons do, when 'mousemodel' is "extend":
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1017
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1018 Normal Mode:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1019 event position selection change action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1020 cursor window ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1021 <LeftMouse> yes end yes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1022 <C-LeftMouse> yes end yes "CTRL-]" (2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1023 <S-LeftMouse> yes no change yes "*" (2) *<S-LeftMouse>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1024 <LeftDrag> yes start or extend (1) no *<LeftDrag>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1025 <LeftRelease> yes start or extend (1) no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1026 <MiddleMouse> yes if not active no put
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1027 <MiddleMouse> yes if active no yank and put
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1028 <RightMouse> yes start or extend yes
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1029 <A-RightMouse> yes start or extend blockw. yes *<A-RightMouse>*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1030 <S-RightMouse> yes no change yes "#" (2) *<S-RightMouse>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1031 <C-RightMouse> no no change no "CTRL-T"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1032 <RightDrag> yes extend no *<RightDrag>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1033 <RightRelease> yes extend no *<RightRelease>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1034
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1035 Insert or Replace Mode:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1036 event position selection change action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1037 cursor window ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1038 <LeftMouse> yes (cannot be active) yes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1039 <C-LeftMouse> yes (cannot be active) yes "CTRL-O^]" (2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1040 <S-LeftMouse> yes (cannot be active) yes "CTRL-O*" (2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1041 <LeftDrag> yes start or extend (1) no like CTRL-O (1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1042 <LeftRelease> yes start or extend (1) no like CTRL-O (1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1043 <MiddleMouse> no (cannot be active) no put register
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1044 <RightMouse> yes start or extend yes like CTRL-O
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1045 <A-RightMouse> yes start or extend blockw. yes
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1046 <S-RightMouse> yes (cannot be active) yes "CTRL-O#" (2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1047 <C-RightMouse> no (cannot be active) no "CTRL-O CTRL-T"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1048
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1049 In a help window:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1050 event position selection change action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1051 cursor window ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1052 <2-LeftMouse> yes (cannot be active) no "^]" (jump to help tag)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1053
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1054 When 'mousemodel' is "popup", these are different:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1055
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1056 Normal Mode:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1057 event position selection change action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1058 cursor window ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1059 <S-LeftMouse> yes start or extend (1) no
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1060 <A-LeftMouse> yes start or extend blockw. no *<A-LeftMouse>*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1061 <RightMouse> no popup menu no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1062
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1063 Insert or Replace Mode:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1064 event position selection change action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1065 cursor window ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1066 <S-LeftMouse> yes start or extend (1) no like CTRL-O (1)
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1067 <A-LeftMouse> yes start or extend blockw. no
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1068 <RightMouse> no popup menu no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1069
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1070 (1) only if mouse pointer moved since press
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1071 (2) only if click is in same buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1072
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1073 Clicking the left mouse button causes the cursor to be positioned. If the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1074 click is in another window that window is made the active window. When
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1075 editing the command-line the cursor can only be positioned on the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1076 command-line. When in Insert mode Vim remains in Insert mode. If 'scrolloff'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1077 is set, and the cursor is positioned within 'scrolloff' lines from the window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1078 border, the text is scrolled.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1079
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1080 A selection can be started by pressing the left mouse button on the first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1081 character, moving the mouse to the last character, then releasing the mouse
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1082 button. You will not always see the selection until you release the button,
18972
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
1083 only in some versions (GUI, Win32) will the dragging be shown immediately.
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
1084 Note that you can make the text scroll by moving the mouse at least one
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
1085 character in the first/last line in the window when 'scrolloff' is non-zero.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1086
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1087 In Normal, Visual and Select mode clicking the right mouse button causes the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1088 Visual area to be extended. When 'mousemodel' is "popup", the left button has
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1089 to be used while keeping the shift key pressed. When clicking in a window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1090 which is editing another buffer, the Visual or Select mode is stopped.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1091
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1092 In Normal, Visual and Select mode clicking the right mouse button with the alt
1121
e63691e7c504 updated for version 7.1a
vimboss
parents: 874
diff changeset
1093 key pressed causes the Visual area to become blockwise. When 'mousemodel' is
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1094 "popup" the left button has to be used with the alt key. Note that this won't
853
d10fbefd3bc1 updated for version 7.0f05
vimboss
parents: 842
diff changeset
1095 work on systems where the window manager consumes the mouse events when the
d10fbefd3bc1 updated for version 7.0f05
vimboss
parents: 842
diff changeset
1096 alt key is pressed (it may move the window).
600
3871315b26ca updated for version 7.0170
vimboss
parents: 500
diff changeset
1097
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1098 *double-click*
18972
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
1099 Double, triple and quadruple clicks are supported when the GUI is active, for
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
1100 Win32, and for an xterm (if the gettimeofday() function is available). For
130acb903dbe Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18879
diff changeset
1101 selecting text, extra clicks extend the selection:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1102 click select ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1103 double word or % match *<2-LeftMouse>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1104 triple line *<3-LeftMouse>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1105 quadruple rectangular block *<4-LeftMouse>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1106 Exception: In a Help window a double click jumps to help for the word that is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1107 clicked on.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1108 A double click on a word selects that word. 'iskeyword' is used to specify
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1109 which characters are included in a word. A double click on a character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1110 that has a match selects until that match (like using "v%"). If the match is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1111 an #if/#else/#endif block, the selection becomes linewise.
19116
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18972
diff changeset
1112 For MS-Windows and xterm the time for double clicking can be set with the
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 18972
diff changeset
1113 'mousetime' option. For the other systems this time is defined outside of Vim.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1114 An example, for using a double click to jump to the tag under the cursor: >
27903
d19b7aee1925 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 26708
diff changeset
1115 :map <2-LeftMouse> :exe "tag " .. expand("<cword>")<CR>
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1116
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1117 Dragging the mouse with a double click (button-down, button-up, button-down
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1118 and then drag) will result in whole words to be selected. This continues
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1119 until the button is released, at which point the selection is per character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1120 again.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1121
30967
eb2638f278bf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30019
diff changeset
1122 For scrolling with the mouse see |scroll-mouse-wheel|.
eb2638f278bf Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 30019
diff changeset
1123
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1124 *gpm-mouse*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1125 The GPM mouse is only supported when the |+mouse_gpm| feature was enabled at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1126 compile time. The GPM mouse driver (Linux console) does not support quadruple
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1127 clicks.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1128
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1129 In Insert mode, when a selection is started, Vim goes into Normal mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1130 temporarily. When Visual or Select mode ends, it returns to Insert mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1131 This is like using CTRL-O in Insert mode. Select mode is used when the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1132 'selectmode' option contains "mouse".
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1256
diff changeset
1133 *sysmouse*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1256
diff changeset
1134 The sysmouse is only supported when the |+mouse_sysmouse| feature was enabled
82b5078be2dd updated for version 7.2a
vimboss
parents: 1256
diff changeset
1135 at compile time. The sysmouse driver (*BSD console) does not support keyboard
82b5078be2dd updated for version 7.2a
vimboss
parents: 1256
diff changeset
1136 modifiers.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1137
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1138 *drag-status-line*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1139 When working with several windows, the size of the windows can be changed by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1140 dragging the status line with the mouse. Point the mouse at a status line,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1141 press the left button, move the mouse to the new position of the status line,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1142 release the button. Just clicking the mouse in a status line makes that window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1143 the current window, without moving the cursor. If by selecting a window it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1144 will change position or size, the dragging of the status line will look
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1145 confusing, but it will work (just try it).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1147 *<MiddleRelease>* *<MiddleDrag>*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1148 Mouse clicks can be mapped. The codes for mouse clicks are:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1149 code mouse button normal action ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1150 <LeftMouse> left pressed set cursor position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1151 <LeftDrag> left moved while pressed extend selection
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1152 <LeftRelease> left released set selection end
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1153 <MiddleMouse> middle pressed paste text at cursor position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1154 <MiddleDrag> middle moved while pressed -
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1155 <MiddleRelease> middle released -
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1156 <RightMouse> right pressed extend selection
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1157 <RightDrag> right moved while pressed extend selection
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1158 <RightRelease> right released set selection end
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1159 <X1Mouse> X1 button pressed - *X1Mouse*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1160 <X1Drag> X1 moved while pressed - *X1Drag*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1161 <X1Release> X1 button release - *X1Release*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1162 <X2Mouse> X2 button pressed - *X2Mouse*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1163 <X2Drag> X2 moved while pressed - *X2Drag*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1164 <X2Release> X2 button release - *X2Release*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1165
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1166 The X1 and X2 buttons refer to the extra buttons found on some mice. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1167 'Microsoft Explorer' mouse has these buttons available to the right thumb.
7272
17333ebd2bbd commit https://github.com/vim/vim/commit/d042dc825c9b97dacd84d4728f88300da4d5b6b9
Christian Brabandt <cb@256bit.org>
parents: 6884
diff changeset
1168 Currently X1 and X2 only work on Win32 and X11 environments.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1169
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1170 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1171 :noremap <MiddleMouse> <LeftMouse><MiddleMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1172 Paste at the position of the middle mouse button click (otherwise the paste
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1173 would be done at the cursor position). >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1174
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1175 :noremap <LeftRelease> <LeftRelease>y
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1176 Immediately yank the selection, when using Visual mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1177
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1178 Note the use of ":noremap" instead of "map" to avoid a recursive mapping.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1179 >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1180 :map <X1Mouse> <C-O>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1181 :map <X2Mouse> <C-I>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1182 Map the X1 and X2 buttons to go forwards and backwards in the jump list, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1183 |CTRL-O| and |CTRL-I|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1184
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1185 *mouse-swap-buttons*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1186 To swap the meaning of the left and right mouse buttons: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1187 :noremap <LeftMouse> <RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1188 :noremap <LeftDrag> <RightDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1189 :noremap <LeftRelease> <RightRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1190 :noremap <RightMouse> <LeftMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1191 :noremap <RightDrag> <LeftDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1192 :noremap <RightRelease> <LeftRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1193 :noremap g<LeftMouse> <C-RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1194 :noremap g<RightMouse> <C-LeftMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1195 :noremap! <LeftMouse> <RightMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1196 :noremap! <LeftDrag> <RightDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1197 :noremap! <LeftRelease> <RightRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1198 :noremap! <RightMouse> <LeftMouse>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1199 :noremap! <RightDrag> <LeftDrag>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1200 :noremap! <RightRelease> <LeftRelease>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1201 <
14421
2f7e67dd088c Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14123
diff changeset
1202 vim:tw=78:ts=8:noet:ft=help:norl: