1702
|
1 *term.txt* For Vim version 7.2. Last change: 2008 Jun 21
|
7
|
2
|
|
3
|
|
4 VIM REFERENCE MANUAL by Bram Moolenaar
|
|
5
|
|
6
|
|
7 Terminal information *terminal-info*
|
|
8
|
|
9 Vim uses information about the terminal you are using to fill the screen and
|
|
10 recognize what keys you hit. If this information is not correct, the screen
|
|
11 may be messed up or keys may not be recognized. The actions which have to be
|
|
12 performed on the screen are accomplished by outputting a string of
|
|
13 characters. Special keys produce a string of characters. These strings are
|
|
14 stored in the terminal options, see |terminal-options|.
|
|
15
|
|
16 NOTE: Most of this is not used when running the |GUI|.
|
|
17
|
|
18 1. Startup |startup-terminal|
|
|
19 2. Terminal options |terminal-options|
|
|
20 3. Window size |window-size|
|
|
21 4. Slow and fast terminals |slow-fast-terminal|
|
|
22 5. Using the mouse |mouse-using|
|
|
23
|
|
24 ==============================================================================
|
|
25 1. Startup *startup-terminal*
|
|
26
|
|
27 When Vim is started a default terminal type is assumed. For the Amiga this is
|
|
28 a standard CLI window, for MS-DOS the pc terminal, for Unix an ansi terminal.
|
|
29 A few other terminal types are always available, see below |builtin-terms|.
|
|
30
|
|
31 You can give the terminal name with the '-T' Vim argument. If it is not given
|
|
32 Vim will try to get the name from the TERM environment variable.
|
|
33
|
|
34 *termcap* *terminfo* *E557* *E558* *E559*
|
|
35 On Unix the terminfo database or termcap file is used. This is referred to as
|
|
36 "termcap" in all the documentation. At compile time, when running configure,
|
|
37 the choice whether to use terminfo or termcap is done automatically. When
|
|
38 running Vim the output of ":version" will show |+terminfo| if terminfo is
|
|
39 used. Also see |xterm-screens|.
|
|
40
|
|
41 On non-Unix systems a termcap is only available if Vim was compiled with
|
|
42 TERMCAP defined.
|
|
43
|
|
44 *builtin-terms* *builtin_terms*
|
|
45 Which builtin terminals are available depends on a few defines in feature.h,
|
|
46 which need to be set at compile time:
|
|
47 define output of ":version" terminals builtin ~
|
|
48 NO_BUILTIN_TCAPS -builtin_terms none
|
|
49 SOME_BUILTIN_TCAPS +builtin_terms most common ones (default)
|
|
50 ALL_BUILTIN_TCAPS ++builtin_terms all available
|
|
51
|
|
52 You can see a list of available builtin terminals with ":set term=xxx" (when
|
|
53 not running the GUI). Also see |+builtin_terms|.
|
|
54
|
|
55 If the termcap code is included Vim will try to get the strings for the
|
|
56 terminal you are using from the termcap file and the builtin termcaps. Both
|
|
57 are always used, if an entry for the terminal you are using is present. Which
|
|
58 one is used first depends on the 'ttybuiltin' option:
|
|
59
|
|
60 'ttybuiltin' on 1: builtin termcap 2: external termcap
|
|
61 'ttybuiltin' off 1: external termcap 2: builtin termcap
|
|
62
|
|
63 If an option is missing in one of them, it will be obtained from the other
|
|
64 one. If an option is present in both, the one first encountered is used.
|
|
65
|
|
66 Which external termcap file is used varies from system to system and may
|
|
67 depend on the environment variables "TERMCAP" and "TERMPATH". See "man
|
|
68 tgetent".
|
|
69
|
|
70 Settings depending on terminal *term-dependent-settings*
|
|
71
|
|
72 If you want to set options or mappings, depending on the terminal name, you
|
|
73 can do this best in your .vimrc. Example: >
|
|
74
|
|
75 if &term == "xterm"
|
|
76 ... xterm maps and settings ...
|
|
77 elseif &term =~ "vt10."
|
|
78 ... vt100, vt102 maps and settings ...
|
|
79 endif
|
|
80 <
|
|
81 *raw-terminal-mode*
|
|
82 For normal editing the terminal will be put into "raw" mode. The strings
|
|
83 defined with 't_ti' and 't_ks' will be sent to the terminal. Normally this
|
|
84 puts the terminal in a state where the termcap codes are valid and activates
|
|
85 the cursor and function keys. When Vim exits the terminal will be put back
|
|
86 into the mode it was before Vim started. The strings defined with 't_te' and
|
|
87 't_ke' will be sent to the terminal. On the Amiga, with commands that execute
|
|
88 an external command (e.g., "!!"), the terminal will be put into Normal mode
|
|
89 for a moment. This means that you can stop the output to the screen by
|
|
90 hitting a printing key. Output resumes when you hit <BS>.
|
|
91
|
|
92 *cs7-problem*
|
|
93 Note: If the terminal settings are changed after running Vim, you might have
|
|
94 an illegal combination of settings. This has been reported on Solaris 2.5
|
|
95 with "stty cs8 parenb", which is restored as "stty cs7 parenb". Use
|
|
96 "stty cs8 -parenb -istrip" instead, this is restored correctly.
|
|
97
|
|
98 Some termcap entries are wrong in the sense that after sending 't_ks' the
|
|
99 cursor keys send codes different from the codes defined in the termcap. To
|
|
100 avoid this you can set 't_ks' (and 't_ke') to empty strings. This must be
|
|
101 done during initialization (see |initialization|), otherwise it's too late.
|
|
102
|
|
103 Some termcap entries assume that the highest bit is always reset. For
|
|
104 example: The cursor-up entry for the Amiga could be ":ku=\E[A:". But the
|
|
105 Amiga really sends "\233A". This works fine if the highest bit is reset,
|
|
106 e.g., when using an Amiga over a serial line. If the cursor keys don't work,
|
|
107 try the entry ":ku=\233A:".
|
|
108
|
|
109 Some termcap entries have the entry ":ku=\E[A:". But the Amiga really sends
|
|
110 "\233A". On output "\E[" and "\233" are often equivalent, on input they
|
|
111 aren't. You will have to change the termcap entry, or change the key code with
|
|
112 the :set command to fix this.
|
|
113
|
|
114 Many cursor key codes start with an <Esc>. Vim must find out if this is a
|
|
115 single hit of the <Esc> key or the start of a cursor key sequence. It waits
|
|
116 for a next character to arrive. If it does not arrive within one second a
|
|
117 single <Esc> is assumed. On very slow systems this may fail, causing cursor
|
|
118 keys not to work sometimes. If you discover this problem reset the 'timeout'
|
|
119 option. Vim will wait for the next character to arrive after an <Esc>. If
|
|
120 you want to enter a single <Esc> you must type it twice. Resetting the
|
|
121 'esckeys' option avoids this problem in Insert mode, but you lose the
|
|
122 possibility to use cursor and function keys in Insert mode.
|
|
123
|
|
124 On the Amiga the recognition of window resizing is activated only when the
|
|
125 terminal name is "amiga" or "builtin_amiga".
|
|
126
|
|
127 Some terminals have confusing codes for the cursor keys. The televideo 925 is
|
|
128 such a terminal. It sends a CTRL-H for cursor-left. This would make it
|
|
129 impossible to distinguish a backspace and cursor-left. To avoid this problem
|
|
130 CTRL-H is never recognized as cursor-left.
|
|
131
|
|
132 *vt100-cursor-keys* *xterm-cursor-keys*
|
|
133 Other terminals (e.g., vt100 and xterm) have cursor keys that send <Esc>OA,
|
|
134 <Esc>OB, etc. Unfortunately these are valid commands in insert mode: Stop
|
|
135 insert, Open a new line above the new one, start inserting 'A', 'B', etc.
|
|
136 Instead of performing these commands Vim will erroneously recognize this typed
|
|
137 key sequence as a cursor key movement. To avoid this and make Vim do what you
|
|
138 want in either case you could use these settings: >
|
|
139 :set notimeout " don't timeout on mappings
|
|
140 :set ttimeout " do timeout on terminal key codes
|
|
141 :set timeoutlen=100 " timeout after 100 msec
|
1621
|
142 This requires the key-codes to be sent within 100 msec in order to recognize
|
7
|
143 them as a cursor key. When you type you normally are not that fast, so they
|
|
144 are recognized as individual typed commands, even though Vim receives the same
|
|
145 sequence of bytes.
|
|
146
|
|
147 *vt100-function-keys* *xterm-function-keys*
|
|
148 An xterm can send function keys F1 to F4 in two modes: vt100 compatible or
|
179
|
149 not. Because Vim may not know what the xterm is sending, both types of keys
|
7
|
150 are recognized. The same happens for the <Home> and <End> keys.
|
|
151 normal vt100 ~
|
|
152 <F1> t_k1 <Esc>[11~ <xF1> <Esc>OP *<xF1>-xterm*
|
|
153 <F2> t_k2 <Esc>[12~ <xF2> <Esc>OQ *<xF2>-xterm*
|
|
154 <F3> t_k3 <Esc>[13~ <xF3> <Esc>OR *<xF3>-xterm*
|
|
155 <F4> t_k4 <Esc>[14~ <xF4> <Esc>OS *<xF4>-xterm*
|
|
156 <Home> t_kh <Esc>[7~ <xHome> <Esc>OH *<xHome>-xterm*
|
|
157 <End> t_@7 <Esc>[4~ <xEnd> <Esc>OF *<xEnd>-xterm*
|
|
158
|
|
159 When Vim starts, <xF1> is mapped to <F1>, <xF2> to <F2> etc. This means that
|
|
160 by default both codes do the same thing. If you make a mapping for <xF2>,
|
|
161 because your terminal does have two keys, the default mapping is overwritten,
|
|
162 thus you can use the <F2> and <xF2> keys for something different.
|
|
163
|
|
164 *xterm-shifted-keys*
|
|
165 Newer versions of xterm support shifted function keys and special keys. Vim
|
|
166 recognizes most of them. Use ":set termcap" to check which are supported and
|
|
167 what the codes are. Mostly these are not in a termcap, they are only
|
|
168 supported by the builtin_xterm termcap.
|
|
169
|
179
|
170 *xterm-modifier-keys*
|
|
171 Newer versions of xterm support Alt and Ctrl for most function keys. To avoid
|
|
172 having to add all combinations of Alt, Ctrl and Shift for every key a special
|
|
173 sequence is recognized at the end of a termcap entry: ";*X". The "X" can be
|
|
174 any character, often '~' is used. The ";*" stands for an optional modifier
|
|
175 argument. ";2" is Shift, ";3" is Alt, ";5" is Ctrl and ";9" is Meta (when
|
|
176 it's different from Alt). They can be combined. Examples: >
|
|
177 :set <F8>=^[[19;*~
|
|
178 :set <Home>=^[[1;*H
|
|
179 Another speciality about these codes is that they are not overwritten by
|
|
180 another code. That is to avoid that the codes obtained from xterm directly
|
|
181 |t_RV| overwrite them.
|
7
|
182 *xterm-scroll-region*
|
|
183 The default termcap entry for xterm on Sun and other platforms does not
|
|
184 contain the entry for scroll regions. Add ":cs=\E[%i%d;%dr:" to the xterm
|
|
185 entry in /etc/termcap and everything should work.
|
|
186
|
|
187 *xterm-end-home-keys*
|
|
188 On some systems (at least on FreeBSD with XFree86 3.1.2) the codes that the
|
|
189 <End> and <Home> keys send contain a <Nul> character. To make these keys send
|
|
190 the proper key code, add these lines to your ~/.Xdefaults file:
|
|
191
|
|
192 *VT100.Translations: #override \n\
|
|
193 <Key>Home: string("0x1b") string("[7~") \n\
|
|
194 <Key>End: string("0x1b") string("[8~")
|
|
195
|
|
196 *xterm-8bit* *xterm-8-bit*
|
|
197 Xterm can be run in a mode where it uses 8-bit escape sequences. The CSI code
|
|
198 is used instead of <Esc>[. The advantage is that an <Esc> can quickly be
|
|
199 recognized in Insert mode, because it can't be confused with the start of a
|
|
200 special key.
|
|
201 For the builtin termcap entries, Vim checks if the 'term' option contains
|
|
202 "8bit" anywhere. It then uses 8-bit characters for the termcap entries, the
|
|
203 mouse and a few other things. You would normally set $TERM in your shell to
|
|
204 "xterm-8bit" and Vim picks this up and adjusts to the 8-bit setting
|
|
205 automatically.
|
|
206 When Vim receives a response to the |t_RV| (request version) sequence and it
|
|
207 starts with CSI, it assumes that the terminal is in 8-bit mode and will
|
|
208 convert all key sequences to their 8-bit variants.
|
|
209
|
|
210 ==============================================================================
|
667
|
211 2. Terminal options *terminal-options* *termcap-options* *E436*
|
7
|
212
|
|
213 The terminal options can be set just like normal options. But they are not
|
|
214 shown with the ":set all" command. Instead use ":set termcap".
|
|
215
|
|
216 It is always possible to change individual strings by setting the
|
|
217 appropriate option. For example: >
|
|
218 :set t_ce=^V^[[K (CTRL-V, <Esc>, [, K)
|
|
219
|
|
220 {Vi: no terminal options. You have to exit Vi, edit the termcap entry and
|
|
221 try again}
|
|
222
|
|
223 The options are listed below. The associated termcap code is always equal to
|
|
224 the last two characters of the option name. Only one termcap code is
|
|
225 required: Cursor motion, 't_cm'.
|
|
226
|
|
227 The options 't_da', 't_db', 't_ms', 't_xs' represent flags in the termcap.
|
|
228 When the termcap flag is present, the option will be set to "y". But any
|
|
229 non-empty string means that the flag is set. An empty string means that the
|
|
230 flag is not set. 't_CS' works like this too, but it isn't a termcap flag.
|
|
231
|
|
232 OUTPUT CODES
|
|
233 option meaning ~
|
|
234
|
|
235 t_AB set background color (ANSI) *t_AB* *'t_AB'*
|
|
236 t_AF set foreground color (ANSI) *t_AF* *'t_AF'*
|
|
237 t_AL add number of blank lines *t_AL* *'t_AL'*
|
|
238 t_al add new blank line *t_al* *'t_al'*
|
|
239 t_bc backspace character *t_bc* *'t_bc'*
|
|
240 t_cd clear to end of screen *t_cd* *'t_cd'*
|
|
241 t_ce clear to end of line *t_ce* *'t_ce'*
|
|
242 t_cl clear screen *t_cl* *'t_cl'*
|
|
243 t_cm cursor motion (required!) *E437* *t_cm* *'t_cm'*
|
|
244 t_Co number of colors *t_Co* *'t_Co'*
|
|
245 t_CS if non-empty, cursor relative to scroll region *t_CS* *'t_CS'*
|
|
246 t_cs define scrolling region *t_cs* *'t_cs'*
|
|
247 t_CV define vertical scrolling region *t_CV* *'t_CV'*
|
|
248 t_da if non-empty, lines from above scroll down *t_da* *'t_da'*
|
|
249 t_db if non-empty, lines from below scroll up *t_db* *'t_db'*
|
|
250 t_DL delete number of lines *t_DL* *'t_DL'*
|
|
251 t_dl delete line *t_dl* *'t_dl'*
|
|
252 t_fs set window title end (from status line) *t_fs* *'t_fs'*
|
|
253 t_ke exit "keypad transmit" mode *t_ke* *'t_ke'*
|
|
254 t_ks start "keypad transmit" mode *t_ks* *'t_ks'*
|
|
255 t_le move cursor one char left *t_le* *'t_le'*
|
|
256 t_mb blinking mode *t_mb* *'t_mb'*
|
|
257 t_md bold mode *t_md* *'t_md'*
|
|
258 t_me Normal mode (undoes t_mr, t_mb, t_md and color) *t_me* *'t_me'*
|
|
259 t_mr reverse (invert) mode *t_mr* *'t_mr'*
|
|
260 *t_ms* *'t_ms'*
|
|
261 t_ms if non-empty, cursor can be moved in standout/inverse mode
|
|
262 t_nd non destructive space character *t_nd* *'t_nd'*
|
|
263 t_op reset to original color pair *t_op* *'t_op'*
|
|
264 t_RI cursor number of chars right *t_RI* *'t_RI'*
|
|
265 t_Sb set background color *t_Sb* *'t_Sb'*
|
|
266 t_Sf set foreground color *t_Sf* *'t_Sf'*
|
|
267 t_se standout end *t_se* *'t_se'*
|
|
268 t_so standout mode *t_so* *'t_so'*
|
|
269 t_sr scroll reverse (backward) *t_sr* *'t_sr'*
|
|
270 t_te out of "termcap" mode *t_te* *'t_te'*
|
|
271 t_ti put terminal in "termcap" mode *t_ti* *'t_ti'*
|
|
272 t_ts set window title start (to status line) *t_ts* *'t_ts'*
|
|
273 t_ue underline end *t_ue* *'t_ue'*
|
|
274 t_us underline mode *t_us* *'t_us'*
|
204
|
275 t_Ce undercurl end *t_Ce* *'t_Ce'*
|
|
276 t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
7
|
277 t_ut clearing uses the current background color *t_ut* *'t_ut'*
|
|
278 t_vb visual bell *t_vb* *'t_vb'*
|
|
279 t_ve cursor visible *t_ve* *'t_ve'*
|
|
280 t_vi cursor invisible *t_vi* *'t_vi'*
|
|
281 t_vs cursor very visible *t_vs* *'t_vs'*
|
|
282 *t_xs* *'t_xs'*
|
|
283 t_xs if non-empty, standout not erased by overwriting (hpterm)
|
|
284 t_ZH italics mode *t_ZH* *'t_ZH'*
|
|
285 t_ZR italics end *t_ZR* *'t_ZR'*
|
|
286
|
|
287 Added by Vim (there are no standard codes for these):
|
|
288 t_IS set icon text start *t_IS* *'t_IS'*
|
|
289 t_IE set icon text end *t_IE* *'t_IE'*
|
|
290 t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
|
|
291 t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
|
856
|
292 t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
|
|
293 t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'*
|
500
|
294 |termcap-cursor-shape|
|
7
|
295 t_RV request terminal version string (for xterm) *t_RV* *'t_RV'*
|
|
296 |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes|
|
|
297
|
|
298 KEY CODES
|
|
299 Note: Use the <> form if possible
|
|
300
|
|
301 option name meaning ~
|
|
302
|
|
303 t_ku <Up> arrow up *t_ku* *'t_ku'*
|
|
304 t_kd <Down> arrow down *t_kd* *'t_kd'*
|
|
305 t_kr <Right> arrow right *t_kr* *'t_kr'*
|
|
306 t_kl <Left> arrow left *t_kl* *'t_kl'*
|
180
|
307 <xUp> alternate arrow up *<xUp>*
|
|
308 <xDown> alternate arrow down *<xDown>*
|
|
309 <xRight> alternate arrow right *<xRight>*
|
|
310 <xLeft> alternate arrow left *<xLeft>*
|
7
|
311 <S-Up> shift arrow up
|
|
312 <S-Down> shift arrow down
|
|
313 t_%i <S-Right> shift arrow right *t_%i* *'t_%i'*
|
|
314 t_#4 <S-Left> shift arrow left *t_#4* *'t_#4'*
|
|
315 t_k1 <F1> function key 1 *t_k1* *'t_k1'*
|
|
316 <xF1> alternate F1 *<xF1>*
|
|
317 t_k2 <F2> function key 2 *<F2>* *t_k2* *'t_k2'*
|
|
318 <xF2> alternate F2 *<xF2>*
|
|
319 t_k3 <F3> function key 3 *<F3>* *t_k3* *'t_k3'*
|
|
320 <xF3> alternate F3 *<xF3>*
|
|
321 t_k4 <F4> function key 4 *<F4>* *t_k4* *'t_k4'*
|
|
322 <xF4> alternate F4 *<xF4>*
|
|
323 t_k5 <F5> function key 5 *<F5>* *t_k5* *'t_k5'*
|
|
324 t_k6 <F6> function key 6 *<F6>* *t_k6* *'t_k6'*
|
|
325 t_k7 <F7> function key 7 *<F7>* *t_k7* *'t_k7'*
|
|
326 t_k8 <F8> function key 8 *<F8>* *t_k8* *'t_k8'*
|
|
327 t_k9 <F9> function key 9 *<F9>* *t_k9* *'t_k9'*
|
|
328 t_k; <F10> function key 10 *<F10>* *t_k;* *'t_k;'*
|
|
329 t_F1 <F11> function key 11 *<F11>* *t_F1* *'t_F1'*
|
|
330 t_F2 <F12> function key 12 *<F12>* *t_F2* *'t_F2'*
|
|
331 t_F3 <F13> function key 13 *<F13>* *t_F3* *'t_F3'*
|
|
332 t_F4 <F14> function key 14 *<F14>* *t_F4* *'t_F4'*
|
|
333 t_F5 <F15> function key 15 *<F15>* *t_F5* *'t_F5'*
|
|
334 t_F6 <F16> function key 16 *<F16>* *t_F6* *'t_F6'*
|
|
335 t_F7 <F17> function key 17 *<F17>* *t_F7* *'t_F7'*
|
|
336 t_F8 <F18> function key 18 *<F18>* *t_F8* *'t_F8'*
|
|
337 t_F9 <F19> function key 19 *<F19>* *t_F9* *'t_F9'*
|
|
338 <S-F1> shifted function key 1
|
|
339 <S-xF1> alternate <S-F1> *<S-xF1>*
|
|
340 <S-F2> shifted function key 2 *<S-F2>*
|
|
341 <S-xF2> alternate <S-F2> *<S-xF2>*
|
|
342 <S-F3> shifted function key 3 *<S-F3>*
|
|
343 <S-xF3> alternate <S-F3> *<S-xF3>*
|
|
344 <S-F4> shifted function key 4 *<S-F4>*
|
|
345 <S-xF4> alternate <S-F4> *<S-xF4>*
|
|
346 <S-F5> shifted function key 5 *<S-F5>*
|
|
347 <S-F6> shifted function key 6 *<S-F6>*
|
|
348 <S-F7> shifted function key 7 *<S-F7>*
|
|
349 <S-F8> shifted function key 8 *<S-F8>*
|
|
350 <S-F9> shifted function key 9 *<S-F9>*
|
|
351 <S-F10> shifted function key 10 *<S-F10>*
|
|
352 <S-F11> shifted function key 11 *<S-F11>*
|
|
353 <S-F12> shifted function key 12 *<S-F12>*
|
|
354 t_%1 <Help> help key *t_%1* *'t_%1'*
|
|
355 t_&8 <Undo> undo key *t_&8* *'t_&8'*
|
|
356 t_kI <Insert> insert key *t_kI* *'t_kI'*
|
|
357 t_kD <Del> delete key *t_kD* *'t_kD'*
|
|
358 t_kb <BS> backspace key *t_kb* *'t_kb'*
|
|
359 t_kB <S-Tab> back-tab (shift-tab) *<S-Tab>* *t_kB* *'t_kB'*
|
|
360 t_kh <Home> home key *t_kh* *'t_kh'*
|
|
361 t_#2 <S-Home> shifted home key *<S-Home>* *t_#2* *'t_#2'*
|
|
362 <xHome> alternate home key *<xHome>*
|
|
363 t_@7 <End> end key *t_@7* *'t_@7'*
|
|
364 t_*7 <S-End> shifted end key *<S-End>* *t_star7* *'t_star7'*
|
|
365 <xEnd> alternate end key *<xEnd>*
|
|
366 t_kP <PageUp> page-up key *t_kP* *'t_kP'*
|
|
367 t_kN <PageDown> page-down key *t_kN* *'t_kN'*
|
|
368 t_K1 <kHome> keypad home key *t_K1* *'t_K1'*
|
|
369 t_K4 <kEnd> keypad end key *t_K4* *'t_K4'*
|
|
370 t_K3 <kPageUp> keypad page-up key *t_K3* *'t_K3'*
|
|
371 t_K5 <kPageDown> keypad page-down key *t_K5* *'t_K5'*
|
|
372 t_K6 <kPlus> keypad plus key *<kPlus>* *t_K6* *'t_K6'*
|
|
373 t_K7 <kMinus> keypad minus key *<kMinus>* *t_K7* *'t_K7'*
|
|
374 t_K8 <kDivide> keypad divide *<kDivide>* *t_K8* *'t_K8'*
|
|
375 t_K9 <kMultiply> keypad multiply *<kMultiply>* *t_K9* *'t_K9'*
|
|
376 t_KA <kEnter> keypad enter key *<kEnter>* *t_KA* *'t_KA'*
|
|
377 t_KB <kPoint> keypad decimal point *<kPoint>* *t_KB* *'t_KB'*
|
|
378 t_KC <k0> keypad 0 *<k0>* *t_KC* *'t_KC'*
|
|
379 t_KD <k1> keypad 1 *<k1>* *t_KD* *'t_KD'*
|
|
380 t_KE <k2> keypad 2 *<k2>* *t_KE* *'t_KE'*
|
|
381 t_KF <k3> keypad 3 *<k3>* *t_KF* *'t_KF'*
|
|
382 t_KG <k4> keypad 4 *<k4>* *t_KG* *'t_KG'*
|
|
383 t_KH <k5> keypad 5 *<k5>* *t_KH* *'t_KH'*
|
|
384 t_KI <k6> keypad 6 *<k6>* *t_KI* *'t_KI'*
|
|
385 t_KJ <k7> keypad 7 *<k7>* *t_KJ* *'t_KJ'*
|
|
386 t_KK <k8> keypad 8 *<k8>* *t_KK* *'t_KK'*
|
|
387 t_KL <k9> keypad 9 *<k9>* *t_KL* *'t_KL'*
|
|
388 <Mouse> leader of mouse code *<Mouse>*
|
|
389
|
|
390 Note about t_so and t_mr: When the termcap entry "so" is not present the
|
|
391 entry for "mr" is used. And vice versa. The same is done for "se" and "me".
|
|
392 If your terminal supports both inversion and standout mode, you can see two
|
|
393 different modes. If your terminal supports only one of the modes, both will
|
|
394 look the same.
|
|
395
|
33
|
396 *keypad-comma*
|
7
|
397 The keypad keys, when they are not mapped, behave like the equivalent normal
|
33
|
398 key. There is one exception: if you have a comma on the keypad instead of a
|
|
399 decimal point, Vim will use a dot anyway. Use these mappings to fix that: >
|
|
400 :noremap <kPoint> ,
|
|
401 :noremap! <kPoint> ,
|
|
402 < *xterm-codes*
|
7
|
403 There is a special trick to obtain the key codes which currently only works
|
|
404 for xterm. When |t_RV| is defined and a response is received which indicates
|
|
405 an xterm with patchlevel 141 or higher, Vim uses special escape sequences to
|
|
406 request the key codes directly from the xterm. The responses are used to
|
|
407 adjust the various t_ codes. This avoids the problem that the xterm can
|
|
408 produce different codes, depending on the mode it is in (8-bit, VT102,
|
|
409 VT220, etc.). The result is that codes like <xF1> are no longer needed.
|
|
410 Note: This is only done on startup. If the xterm options are changed after
|
|
411 Vim has started, the escape sequences may not be recognized any more.
|
|
412
|
|
413 *termcap-colors*
|
|
414 Note about colors: The 't_Co' option tells Vim the number of colors available.
|
|
415 When it is non-zero, the 't_AB' and 't_AF' options are used to set the color.
|
|
416 If one of these is not available, 't_Sb' and 't_Sf' are used. 't_me' is used
|
|
417 to reset to the default colors.
|
|
418
|
36
|
419 *termcap-cursor-shape* *termcap-cursor-color*
|
|
420 When Vim enters Insert mode the 't_SI' escape sequence is sent. When leaving
|
|
421 Insert mode 't_EI' is used. But only if both are defined. This can be used
|
|
422 to change the shape or color of the cursor in Insert mode. These are not
|
|
423 standard termcap/terminfo entries, you need to set them yourself.
|
|
424 Example for an xterm, this changes the color of the cursor: >
|
|
425 if &term =~ "xterm"
|
|
426 let &t_SI = "\<Esc>]12;purple\x7"
|
|
427 let &t_EI = "\<Esc>]12;blue\x7"
|
|
428 endif
|
|
429 NOTE: When Vim exits the shape for Normal mode will remain. The shape from
|
|
430 before Vim started will not be restored.
|
500
|
431 {not available when compiled without the +cursorshape feature}
|
36
|
432
|
7
|
433 *termcap-title*
|
|
434 The 't_ts' and 't_fs' options are used to set the window title if the terminal
|
|
435 allows title setting via sending strings. They are sent before and after the
|
|
436 title string, respectively. Similar 't_IS' and 't_IE' are used to set the
|
|
437 icon text. These are Vim-internal extensions of the Unix termcap, so they
|
|
438 cannot be obtained from an external termcap. However, the builtin termcap
|
|
439 contains suitable entries for xterm and iris-ansi, so you don't need to set
|
|
440 them here.
|
|
441 *hpterm*
|
|
442 If inversion or other highlighting does not work correctly, try setting the
|
|
443 't_xs' option to a non-empty string. This makes the 't_ce' code be used to
|
|
444 remove highlighting from a line. This is required for "hpterm". Setting the
|
|
445 'weirdinvert' option has the same effect as making 't_xs' non-empty, and vice
|
|
446 versa.
|
|
447
|
|
448 *scroll-region*
|
|
449 Some termcaps do not include an entry for 'cs' (scroll region), although the
|
|
450 terminal does support it. For example: xterm on a Sun. You can use the
|
|
451 builtin_xterm or define t_cs yourself. For example: >
|
|
452 :set t_cs=^V^[[%i%d;%dr
|
|
453 Where ^V is CTRL-V and ^[ is <Esc>.
|
|
454
|
|
455 The vertical scroll region t_CV is not a standard termcap code. Vim uses it
|
|
456 internally in the GUI. But it can also be defined for a terminal, if you can
|
|
457 find one that supports it. The two arguments are the left and right column of
|
|
458 the region which to restrict the scrolling to. Just like t_cs defines the top
|
|
459 and bottom lines. Defining t_CV will make scrolling in vertically split
|
|
460 windows a lot faster. Don't set t_CV when t_da or t_db is set (text isn't
|
|
461 cleared when scrolling).
|
|
462
|
|
463 Unfortunately it is not possible to deduce from the termcap how cursor
|
|
464 positioning should be done when using a scrolling region: Relative to the
|
|
465 beginning of the screen or relative to the beginning of the scrolling region.
|
|
466 Most terminals use the first method. A known exception is the MS-DOS console
|
|
467 (pcterm). The 't_CS' option should be set to any string when cursor
|
|
468 positioning is relative to the start of the scrolling region. It should be
|
|
469 set to an empty string otherwise. It defaults to "yes" when 'term' is
|
|
470 "pcterm".
|
|
471
|
|
472 Note for xterm users: The shifted cursor keys normally don't work. You can
|
|
473 make them work with the xmodmap command and some mappings in Vim.
|
|
474
|
|
475 Give these commands in the xterm:
|
|
476 xmodmap -e "keysym Up = Up F13"
|
|
477 xmodmap -e "keysym Down = Down F16"
|
|
478 xmodmap -e "keysym Left = Left F18"
|
|
479 xmodmap -e "keysym Right = Right F19"
|
|
480
|
|
481 And use these mappings in Vim:
|
|
482 :map <t_F3> <S-Up>
|
|
483 :map! <t_F3> <S-Up>
|
|
484 :map <t_F6> <S-Down>
|
|
485 :map! <t_F6> <S-Down>
|
|
486 :map <t_F8> <S-Left>
|
|
487 :map! <t_F8> <S-Left>
|
|
488 :map <t_F9> <S-Right>
|
|
489 :map! <t_F9> <S-Right>
|
|
490
|
|
491 Instead of, say, <S-Up> you can use any other command that you want to use the
|
|
492 shift-cursor-up key for. (Note: To help people that have a Sun keyboard with
|
|
493 left side keys F14 is not used because it is confused with the undo key; F15
|
|
494 is not used, because it does a window-to-front; F17 is not used, because it
|
|
495 closes the window. On other systems you can probably use them.)
|
|
496
|
|
497 ==============================================================================
|
|
498 3. Window size *window-size*
|
|
499
|
|
500 [This is about the size of the whole window Vim is using, not a window that is
|
|
501 created with the ":split" command.]
|
|
502
|
|
503 If you are running Vim on an Amiga and the terminal name is "amiga" or
|
|
504 "builtin_amiga", the amiga-specific window resizing will be enabled. On Unix
|
|
505 systems three methods are tried to get the window size:
|
|
506
|
|
507 - an ioctl call (TIOCGSIZE or TIOCGWINSZ, depends on your system)
|
|
508 - the environment variables "LINES" and "COLUMNS"
|
|
509 - from the termcap entries "li" and "co"
|
|
510
|
|
511 If everything fails a default size of 24 lines and 80 columns is assumed. If
|
|
512 a window-resize signal is received the size will be set again. If the window
|
|
513 size is wrong you can use the 'lines' and 'columns' options to set the
|
|
514 correct values.
|
|
515
|
|
516 One command can be used to set the screen size:
|
|
517
|
|
518 *:mod* *:mode* *E359* *E362*
|
|
519 :mod[e] [mode]
|
|
520
|
|
521 Without argument this only detects the screen size and redraws the screen.
|
|
522 With MS-DOS it is possible to switch screen mode. [mode] can be one of these
|
|
523 values:
|
|
524 "bw40" 40 columns black&white
|
|
525 "c40" 40 columns color
|
|
526 "bw80" 80 columns black&white
|
|
527 "c80" 80 columns color (most people use this)
|
|
528 "mono" 80 columns monochrome
|
|
529 "c4350" 43 or 50 lines EGA/VGA mode
|
|
530 number mode number to use, depends on your video card
|
|
531
|
|
532 ==============================================================================
|
|
533 4. Slow and fast terminals *slow-fast-terminal*
|
|
534 *slow-terminal*
|
|
535
|
|
536 If you have a fast terminal you may like to set the 'ruler' option. The
|
|
537 cursor position is shown in the status line. If you are using horizontal
|
|
538 scrolling ('wrap' option off) consider setting 'sidescroll' to a small
|
|
539 number.
|
|
540
|
|
541 If you have a slow terminal you may want to reset the 'showcmd' option.
|
|
542 The command characters will not be shown in the status line. If the terminal
|
|
543 scrolls very slowly, set the 'scrolljump' to 5 or so. If the cursor is moved
|
|
544 off the screen (e.g., with "j") Vim will scroll 5 lines at a time. Another
|
|
545 possibility is to reduce the number of lines that Vim uses with the command
|
|
546 "z{height}<CR>".
|
|
547
|
|
548 If the characters from the terminal are arriving with more than 1 second
|
|
549 between them you might want to set the 'timeout' and/or 'ttimeout' option.
|
|
550 See the "Options" chapter |options|.
|
|
551
|
|
552 If your terminal does not support a scrolling region, but it does support
|
|
553 insert/delete line commands, scrolling with multiple windows may make the
|
|
554 lines jump up and down. If you don't want this set the 'ttyfast' option.
|
|
555 This will redraw the window instead of scroll it.
|
|
556
|
|
557 If your terminal scrolls very slowly, but redrawing is not slow, set the
|
|
558 'ttyscroll' option to a small number, e.g., 3. This will make Vim redraw the
|
|
559 screen instead of scrolling, when there are more than 3 lines to be scrolled.
|
|
560
|
|
561 If you are using a color terminal that is slow, use this command: >
|
|
562 hi NonText cterm=NONE ctermfg=NONE
|
|
563 This avoids that spaces are sent when they have different attributes. On most
|
|
564 terminals you can't see this anyway.
|
|
565
|
|
566 If you are using Vim over a slow serial line, you might want to try running
|
|
567 Vim inside the "screen" program. Screen will optimize the terminal I/O quite
|
|
568 a bit.
|
|
569
|
|
570 If you are testing termcap options, but you cannot see what is happening,
|
|
571 you might want to set the 'writedelay' option. When non-zero, one character
|
|
572 is sent to the terminal at a time (does not work for MS-DOS). This makes the
|
|
573 screen updating a lot slower, making it possible to see what is happening.
|
|
574
|
|
575 ==============================================================================
|
|
576 5. Using the mouse *mouse-using*
|
|
577
|
|
578 This section is about using the mouse on a terminal or a terminal window. How
|
|
579 to use the mouse in a GUI window is explained in |gui-mouse|. For scrolling
|
|
580 with a mouse wheel see |scroll-mouse-wheel|.
|
|
581
|
|
582 Don't forget to enable the mouse with this commands: >
|
|
583 :set mouse=a
|
|
584 Otherwise Vim won't recognize the mouse in all modes (See 'mouse').
|
|
585
|
1621
|
586 Currently the mouse is supported for Unix in an xterm window, in a *BSD
|
|
587 console with |sysmouse|, in a Linux console (with GPM |gpm-mouse|), for
|
|
588 MS-DOS and in a Windows console.
|
7
|
589 Mouse clicks can be used to position the cursor, select an area and paste.
|
|
590
|
|
591 These characters in the 'mouse' option tell in which situations the mouse will
|
|
592 be used by Vim:
|
|
593 n Normal mode
|
|
594 v Visual mode
|
|
595 i Insert mode
|
|
596 c Command-line mode
|
|
597 h all previous modes when in a help file
|
|
598 a all previous modes
|
|
599 r for |hit-enter| prompt
|
|
600
|
|
601 The default for 'mouse' is empty, the mouse is not used. Normally you would
|
|
602 do: >
|
|
603 :set mouse=a
|
|
604 to start using the mouse (this is equivalent to setting 'mouse' to "nvich").
|
|
605 If you only want to use the mouse in a few modes or also want to use it for
|
|
606 the two questions you will have to concatenate the letters for those modes.
|
|
607 For example: >
|
|
608 :set mouse=nv
|
|
609 Will make the mouse work in Normal mode and Visual mode. >
|
|
610 :set mouse=h
|
|
611 Will make the mouse work in help files only (so you can use "g<LeftMouse>" to
|
|
612 jump to tags).
|
|
613
|
|
614 Whether the selection that is started with the mouse is in Visual mode or
|
|
615 Select mode depends on whether "mouse" is included in the 'selectmode'
|
|
616 option.
|
|
617
|
|
618 In an xterm, with the currently active mode included in the 'mouse' option,
|
|
619 normal mouse clicks are used by Vim, mouse clicks with the shift or ctrl key
|
|
620 pressed go to the xterm. With the currently active mode not included in
|
|
621 'mouse' all mouse clicks go to the xterm.
|
|
622
|
|
623 *xterm-clipboard*
|
|
624 In the Athena and Motif GUI versions, when running in a terminal and there is
|
|
625 access to the X-server (DISPLAY is set), the copy and paste will behave like
|
|
626 in the GUI. If not, the middle mouse button will insert the unnamed register.
|
|
627 In that case, here is how you copy and paste a piece of text:
|
|
628
|
|
629 Copy/paste with the mouse and Visual mode ('mouse' option must be set, see
|
|
630 above):
|
|
631 1. Press left mouse button on first letter of text, move mouse pointer to last
|
|
632 letter of the text and release the button. This will start Visual mode and
|
|
633 highlight the selected area.
|
|
634 2. Press "y" to yank the Visual text in the unnamed register.
|
|
635 3. Click the left mouse button at the insert position.
|
|
636 4. Click the middle mouse button.
|
|
637
|
|
638 Shortcut: If the insert position is on the screen at the same time as the
|
|
639 Visual text, you can do 2, 3 and 4 all in one: Click the middle mouse button
|
|
640 at the insert position.
|
|
641
|
|
642 Note: When the |-X| command line argument is used, Vim will not connect to the
|
|
643 X server and copy/paste to the X clipboard (selection) will not work. Use the
|
|
644 shift key with the mouse buttons to let the xterm do the selection.
|
|
645
|
|
646 *xterm-command-server*
|
|
647 When the X-server clipboard is available, the command server described in
|
|
648 |x11-clientserver| can be enabled with the --servername command line argument.
|
|
649
|
|
650 *xterm-copy-paste*
|
|
651 NOTE: In some (older) xterms, it's not possible to move the cursor past column
|
|
652 95. This is an xterm problem, not Vim's. Get a newer xterm |color-xterm|.
|
|
653
|
|
654 Copy/paste in xterm with (current mode NOT included in 'mouse'):
|
|
655 1. Press left mouse button on first letter of text, move mouse pointer to last
|
|
656 letter of the text and release the button.
|
|
657 2. Use normal Vim commands to put the cursor at the insert position.
|
|
658 3. Press "a" to start Insert mode.
|
|
659 4. Click the middle mouse button.
|
|
660 5. Press ESC to end Insert mode.
|
|
661 (The same can be done with anything in 'mouse' if you keep the shift key
|
|
662 pressed while using the mouse.)
|
|
663
|
|
664 Note: if you lose the 8th bit when pasting (special characters are translated
|
|
665 into other characters), you may have to do "stty cs8 -istrip -parenb" in your
|
|
666 shell before starting Vim.
|
|
667
|
|
668 Thus in an xterm the shift and ctrl keys cannot be used with the mouse. Mouse
|
|
669 commands requiring the CTRL modifier can be simulated by typing the "g" key
|
|
670 before using the mouse:
|
|
671 "g<LeftMouse>" is "<C-LeftMouse> (jump to tag under mouse click)
|
|
672 "g<RightMouse>" is "<C-RightMouse> ("CTRL-T")
|
|
673
|
|
674 *mouse-mode-table* *mouse-overview*
|
|
675 A short overview of what the mouse buttons do, when 'mousemodel' is "extend":
|
|
676
|
|
677 Normal Mode:
|
|
678 event position selection change action ~
|
|
679 cursor window ~
|
|
680 <LeftMouse> yes end yes
|
|
681 <C-LeftMouse> yes end yes "CTRL-]" (2)
|
|
682 <S-LeftMouse> yes no change yes "*" (2) *<S-LeftMouse>*
|
|
683 <LeftDrag> yes start or extend (1) no *<LeftDrag>*
|
|
684 <LeftRelease> yes start or extend (1) no
|
|
685 <MiddleMouse> yes if not active no put
|
|
686 <MiddleMouse> yes if active no yank and put
|
|
687 <RightMouse> yes start or extend yes
|
600
|
688 <A-RightMouse> yes start or extend blockw. yes *<A-RightMouse>*
|
7
|
689 <S-RightMouse> yes no change yes "#" (2) *<S-RightMouse>*
|
|
690 <C-RightMouse> no no change no "CTRL-T"
|
|
691 <RightDrag> yes extend no *<RightDrag>*
|
|
692 <RightRelease> yes extend no *<RightRelease>*
|
|
693
|
|
694 Insert or Replace Mode:
|
|
695 event position selection change action ~
|
|
696 cursor window ~
|
|
697 <LeftMouse> yes (cannot be active) yes
|
|
698 <C-LeftMouse> yes (cannot be active) yes "CTRL-O^]" (2)
|
|
699 <S-LeftMouse> yes (cannot be active) yes "CTRL-O*" (2)
|
|
700 <LeftDrag> yes start or extend (1) no like CTRL-O (1)
|
|
701 <LeftRelease> yes start or extend (1) no like CTRL-O (1)
|
|
702 <MiddleMouse> no (cannot be active) no put register
|
|
703 <RightMouse> yes start or extend yes like CTRL-O
|
600
|
704 <A-RightMouse> yes start or extend blockw. yes
|
7
|
705 <S-RightMouse> yes (cannot be active) yes "CTRL-O#" (2)
|
|
706 <C-RightMouse> no (cannot be active) no "CTRL-O CTRL-T"
|
|
707
|
|
708 In a help window:
|
|
709 event position selection change action ~
|
|
710 cursor window ~
|
|
711 <2-LeftMouse> yes (cannot be active) no "^]" (jump to help tag)
|
|
712
|
|
713 When 'mousemodel' is "popup", these are different:
|
|
714
|
|
715 Normal Mode:
|
|
716 event position selection change action ~
|
|
717 cursor window ~
|
|
718 <S-LeftMouse> yes start or extend (1) no
|
600
|
719 <A-LeftMouse> yes start or extend blockw. no *<A-LeftMouse>*
|
7
|
720 <RightMouse> no popup menu no
|
|
721
|
|
722 Insert or Replace Mode:
|
|
723 event position selection change action ~
|
|
724 cursor window ~
|
|
725 <S-LeftMouse> yes start or extend (1) no like CTRL-O (1)
|
600
|
726 <A-LeftMouse> yes start or extend blockw. no
|
7
|
727 <RightMouse> no popup menu no
|
|
728
|
|
729 (1) only if mouse pointer moved since press
|
|
730 (2) only if click is in same buffer
|
|
731
|
|
732 Clicking the left mouse button causes the cursor to be positioned. If the
|
|
733 click is in another window that window is made the active window. When
|
|
734 editing the command-line the cursor can only be positioned on the
|
|
735 command-line. When in Insert mode Vim remains in Insert mode. If 'scrolloff'
|
|
736 is set, and the cursor is positioned within 'scrolloff' lines from the window
|
|
737 border, the text is scrolled.
|
|
738
|
|
739 A selection can be started by pressing the left mouse button on the first
|
|
740 character, moving the mouse to the last character, then releasing the mouse
|
|
741 button. You will not always see the selection until you release the button,
|
|
742 only in some versions (GUI, MS-DOS, WIN32) will the dragging be shown
|
|
743 immediately. Note that you can make the text scroll by moving the mouse at
|
|
744 least one character in the first/last line in the window when 'scrolloff' is
|
|
745 non-zero.
|
|
746
|
|
747 In Normal, Visual and Select mode clicking the right mouse button causes the
|
|
748 Visual area to be extended. When 'mousemodel' is "popup", the left button has
|
|
749 to be used while keeping the shift key pressed. When clicking in a window
|
|
750 which is editing another buffer, the Visual or Select mode is stopped.
|
|
751
|
600
|
752 In Normal, Visual and Select mode clicking the right mouse button with the alt
|
1121
|
753 key pressed causes the Visual area to become blockwise. When 'mousemodel' is
|
600
|
754 "popup" the left button has to be used with the alt key. Note that this won't
|
853
|
755 work on systems where the window manager consumes the mouse events when the
|
|
756 alt key is pressed (it may move the window).
|
600
|
757
|
7
|
758 *double-click*
|
|
759 Double, triple and quadruple clicks are supported when the GUI is active,
|
|
760 for MS-DOS and Win32, and for an xterm (if the gettimeofday() function is
|
|
761 available). For selecting text, extra clicks extend the selection:
|
|
762 click select ~
|
|
763 double word or % match *<2-LeftMouse>*
|
|
764 triple line *<3-LeftMouse>*
|
|
765 quadruple rectangular block *<4-LeftMouse>*
|
|
766 Exception: In a Help window a double click jumps to help for the word that is
|
|
767 clicked on.
|
|
768 A double click on a word selects that word. 'iskeyword' is used to specify
|
|
769 which characters are included in a word. A double click on a character
|
|
770 that has a match selects until that match (like using "v%"). If the match is
|
|
771 an #if/#else/#endif block, the selection becomes linewise.
|
|
772 For MS-DOS and xterm the time for double clicking can be set with the
|
|
773 'mousetime' option. For the other systems this time is defined outside of
|
|
774 Vim.
|
|
775 An example, for using a double click to jump to the tag under the cursor: >
|
|
776 :map <2-LeftMouse> :exe "tag ". expand("<cword>")<CR>
|
|
777
|
|
778 Dragging the mouse with a double click (button-down, button-up, button-down
|
|
779 and then drag) will result in whole words to be selected. This continues
|
|
780 until the button is released, at which point the selection is per character
|
|
781 again.
|
|
782
|
|
783 *gpm-mouse*
|
|
784 The GPM mouse is only supported when the |+mouse_gpm| feature was enabled at
|
|
785 compile time. The GPM mouse driver (Linux console) does not support quadruple
|
|
786 clicks.
|
|
787
|
|
788 In Insert mode, when a selection is started, Vim goes into Normal mode
|
|
789 temporarily. When Visual or Select mode ends, it returns to Insert mode.
|
|
790 This is like using CTRL-O in Insert mode. Select mode is used when the
|
|
791 'selectmode' option contains "mouse".
|
1621
|
792 *sysmouse*
|
|
793 The sysmouse is only supported when the |+mouse_sysmouse| feature was enabled
|
|
794 at compile time. The sysmouse driver (*BSD console) does not support keyboard
|
|
795 modifiers.
|
7
|
796
|
|
797 *drag-status-line*
|
|
798 When working with several windows, the size of the windows can be changed by
|
|
799 dragging the status line with the mouse. Point the mouse at a status line,
|
|
800 press the left button, move the mouse to the new position of the status line,
|
|
801 release the button. Just clicking the mouse in a status line makes that window
|
|
802 the current window, without moving the cursor. If by selecting a window it
|
|
803 will change position or size, the dragging of the status line will look
|
|
804 confusing, but it will work (just try it).
|
|
805
|
|
806 *<MiddleRelease>* *<MiddleDrag>*
|
|
807 Mouse clicks can be mapped. The codes for mouse clicks are:
|
|
808 code mouse button normal action ~
|
|
809 <LeftMouse> left pressed set cursor position
|
|
810 <LeftDrag> left moved while pressed extend selection
|
|
811 <LeftRelease> left released set selection end
|
|
812 <MiddleMouse> middle pressed paste text at cursor position
|
|
813 <MiddleDrag> middle moved while pressed -
|
|
814 <MiddleRelease> middle released -
|
|
815 <RightMouse> right pressed extend selection
|
|
816 <RightDrag> right moved while pressed extend selection
|
|
817 <RightRelease> right released set selection end
|
|
818 <X1Mouse> X1 button pressed - *X1Mouse*
|
|
819 <X1Drag> X1 moved while pressed - *X1Drag*
|
|
820 <X1Release> X1 button release - *X1Release*
|
|
821 <X2Mouse> X2 button pressed - *X2Mouse*
|
|
822 <X2Drag> X2 moved while pressed - *X2Drag*
|
|
823 <X2Release> X2 button release - *X2Release*
|
|
824
|
|
825 The X1 and X2 buttons refer to the extra buttons found on some mice. The
|
|
826 'Microsoft Explorer' mouse has these buttons available to the right thumb.
|
|
827 Currently X1 and X2 only work on Win32 environments.
|
|
828
|
|
829 Examples: >
|
|
830 :noremap <MiddleMouse> <LeftMouse><MiddleMouse>
|
|
831 Paste at the position of the middle mouse button click (otherwise the paste
|
|
832 would be done at the cursor position). >
|
|
833
|
|
834 :noremap <LeftRelease> <LeftRelease>y
|
|
835 Immediately yank the selection, when using Visual mode.
|
|
836
|
|
837 Note the use of ":noremap" instead of "map" to avoid a recursive mapping.
|
|
838 >
|
|
839 :map <X1Mouse> <C-O>
|
|
840 :map <X2Mouse> <C-I>
|
|
841 Map the X1 and X2 buttons to go forwards and backwards in the jump list, see
|
|
842 |CTRL-O| and |CTRL-I|.
|
|
843
|
|
844 *mouse-swap-buttons*
|
|
845 To swap the meaning of the left and right mouse buttons: >
|
|
846 :noremap <LeftMouse> <RightMouse>
|
|
847 :noremap <LeftDrag> <RightDrag>
|
|
848 :noremap <LeftRelease> <RightRelease>
|
|
849 :noremap <RightMouse> <LeftMouse>
|
|
850 :noremap <RightDrag> <LeftDrag>
|
|
851 :noremap <RightRelease> <LeftRelease>
|
|
852 :noremap g<LeftMouse> <C-RightMouse>
|
|
853 :noremap g<RightMouse> <C-LeftMouse>
|
|
854 :noremap! <LeftMouse> <RightMouse>
|
|
855 :noremap! <LeftDrag> <RightDrag>
|
|
856 :noremap! <LeftRelease> <RightRelease>
|
|
857 :noremap! <RightMouse> <LeftMouse>
|
|
858 :noremap! <RightDrag> <LeftDrag>
|
|
859 :noremap! <RightRelease> <LeftRelease>
|
|
860 <
|
|
861 vim:tw=78:ts=8:ft=help:norl:
|