Mercurial > vim
annotate runtime/doc/various.txt @ 34420:c5a945f7f3da v9.1.0133
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Commit: https://github.com/vim/vim/commit/8b1e749ca6ca6d09a174c57de6999f69393ee567
Author: Erik S. V. Jansson <caffeineviking@gmail.com>
Date: Sat Feb 24 14:26:52 2024 +0100
patch 9.1.0133: MS-Windows: ligatures not rendering correctly
Problem: font ligatures don't render correctly in the Win32 GUI-version
of gvim even when set rop=type:directx is used. Setting
guiligatures also doesn't make any difference. This leads to
broken font ligatures when the cursor passes through them. It
does not recover from this, and they remain broken until you
re-render the whole buffer (e.g. by using Ctrl+L).
Solution: the problem is that we only re-draw the current and previous
character in gui_undraw_cursor() and only have the special case
for GTK when it comes to rendering ligatures. So let's enable
gui_adjust_undraw_cursor_for_ligatures() to also happen for
Win32 GUI if guiligatures is setup correctly (all this does is
expand the range of gui_undraw_cursor() with ligature characters).
related: #9181
related: #12901
closes: #14084
Signed-off-by: Erik S. V. Jansson <caffeineviking@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 24 Feb 2024 14:45:03 +0100 |
parents | 4635e43f2c6f |
children | 0d12f2f627f9 |
rev | line source |
---|---|
34057
4635e43f2c6f
patch 9.1.0000: Vim 9.1 release
Christian Brabandt <cb@256bit.org>
parents:
33649
diff
changeset
|
1 *various.txt* For Vim version 9.1. Last change: 2023 Sep 27 |
7 | 2 |
3 | |
4 VIM REFERENCE MANUAL by Bram Moolenaar | |
5 | |
6 | |
7 Various commands *various* | |
8 | |
9 1. Various commands |various-cmds| | |
2246
1e48f569b03d
Move text from various.txt to a new helphelp.txt help file.
Bram Moolenaar <bram@vim.org>
parents:
2214
diff
changeset
|
10 2. Using Vim like less or more |less| |
7 | 11 |
12 ============================================================================== | |
13 1. Various commands *various-cmds* | |
14 | |
15 *CTRL-L* | |
348 | 16 CTRL-L Clear and redraw the screen. The redraw may happen |
17 later, after processing typeahead. | |
7 | 18 |
19 *:redr* *:redraw* | |
20 :redr[aw][!] Redraw the screen right now. When ! is included it is | |
21 cleared first. | |
22 Useful to update the screen halfway executing a script | |
23 or function. Also when halfway a mapping and | |
24 'lazyredraw' is set. | |
25 | |
26 *:redraws* *:redrawstatus* | |
27 :redraws[tatus][!] Redraw the status line of the current window. When ! | |
28 is included all status lines are redrawn. | |
29 Useful to update the status line(s) when 'statusline' | |
30 includes an item that doesn't cause automatic | |
31 updating. | |
30547 | 32 If the command line is being edited the redraw is |
33 postponed until later. | |
7 | 34 |
15396
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
35 *:redrawt* *:redrawtabline* |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
36 :redrawt[abline] Redraw the tabline. Useful to update the tabline when |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
37 'tabline' includes an item that doesn't trigger |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
38 automatic updating. |
325e4a8ba1b6
patch 8.1.0706: tabline is not always redrawn
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
39 |
7 | 40 *N<Del>* |
41 <Del> When entering a number: Remove the last digit. | |
42 Note: if you like to use <BS> for this, add this | |
43 mapping to your .vimrc: > | |
44 :map CTRL-V <BS> CTRL-V <Del> | |
45 < See |:fixdel| if your <Del> key does not do what you | |
46 want. | |
47 | |
48 :as[cii] or *ga* *:as* *:ascii* | |
49 ga Print the ascii value of the character under the | |
13359
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
50 cursor in decimal, hexadecimal and octal. |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
51 Mnemonic: Get Ascii value. |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
52 |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
53 For example, when the cursor is on a 'R': |
7 | 54 <R> 82, Hex 52, Octal 122 ~ |
55 When the character is a non-standard ASCII character, | |
56 but printable according to the 'isprint' option, the | |
13359
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
57 non-printable version is also given. |
18831 | 58 |
13359
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
59 When the character is larger than 127, the <M-x> form |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
60 is also printed. For example: |
7 | 61 <~A> <M-^A> 129, Hex 81, Octal 201 ~ |
62 <p> <|~> <M-~> 254, Hex fe, Octal 376 ~ | |
63 (where <p> is a special character) | |
13359
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
64 |
7 | 65 The <Nul> character in a file is stored internally as |
66 <NL>, but it will be shown as: | |
67 <^@> 0, Hex 00, Octal 000 ~ | |
13359
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
68 |
714 | 69 If the character has composing characters these are |
70 also shown. The value of 'maxcombine' doesn't matter. | |
13359
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
71 |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
72 If the character can be inserted as a digraph, also |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
73 output the two characters that can be used to create |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
74 the character: |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
75 <ö> 246, Hex 00f6, Oct 366, Digr o: ~ |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
76 This shows you can type CTRL-K o : to insert ö. |
81c348d40312
patch 8.0.1553: cannot see what digraph is used to insert a character
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
77 |
7 | 78 *g8* |
79 g8 Print the hex values of the bytes used in the | |
80 character under the cursor, assuming it is in |UTF-8| | |
714 | 81 encoding. This also shows composing characters. The |
82 value of 'maxcombine' doesn't matter. | |
83 Example of a character with two composing characters: | |
7 | 84 e0 b8 81 + e0 b8 b9 + e0 b9 89 ~ |
777 | 85 |
86 *8g8* | |
87 8g8 Find an illegal UTF-8 byte sequence at or after the | |
88 cursor. This works in two situations: | |
89 1. when 'encoding' is any 8-bit encoding | |
90 2. when 'encoding' is "utf-8" and 'fileencoding' is | |
91 any 8-bit encoding | |
92 Thus it can be used when editing a file that was | |
93 supposed to be UTF-8 but was read as if it is an 8-bit | |
94 encoding because it contains illegal bytes. | |
95 Does not wrap around the end of the file. | |
96 Note that when the cursor is on an illegal byte or the | |
21991 | 97 cursor is halfway a multibyte character the command |
777 | 98 won't move the cursor. |
7 | 99 |
843 | 100 *:p* *:pr* *:print* *E749* |
169 | 101 :[range]p[rint] [flags] |
102 Print [range] lines (default current line). | |
7 | 103 Note: If you are looking for a way to print your text |
169 | 104 on paper see |:hardcopy|. In the GUI you can use the |
105 File.Print menu entry. | |
106 See |ex-flags| for [flags]. | |
10004
8061455d9179
commit https://github.com/vim/vim/commit/818078ddfbb8cc2546f697c5675a251d095722ec
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
107 The |:filter| command can be used to only show lines |
8061455d9179
commit https://github.com/vim/vim/commit/818078ddfbb8cc2546f697c5675a251d095722ec
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
108 matching a pattern. |
7 | 109 |
169 | 110 :[range]p[rint] {count} [flags] |
7 | 111 Print {count} lines, starting with [range] (default |
112 current line |cmdline-ranges|). | |
169 | 113 See |ex-flags| for [flags]. |
7 | 114 |
115 *:P* *:Print* | |
169 | 116 :[range]P[rint] [count] [flags] |
7 | 117 Just as ":print". Was apparently added to Vi for |
118 people that keep the shift key pressed too long... | |
28010 | 119 This command is not supported in |Vim9| script. |
2642 | 120 Note: A user command can overrule this command. |
169 | 121 See |ex-flags| for [flags]. |
7 | 122 |
123 *:l* *:list* | |
169 | 124 :[range]l[ist] [count] [flags] |
7 | 125 Same as :print, but display unprintable characters |
2458 | 126 with '^' and put $ after the line. This can be |
2698
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2642
diff
changeset
|
127 further changed with the 'listchars' option. |
169 | 128 See |ex-flags| for [flags]. |
7 | 129 |
130 *:nu* *:number* | |
169 | 131 :[range]nu[mber] [count] [flags] |
7 | 132 Same as :print, but precede each line with its line |
677 | 133 number. (See also 'highlight' and 'numberwidth' |
134 option). | |
169 | 135 See |ex-flags| for [flags]. |
7 | 136 |
137 *:#* | |
169 | 138 :[range]# [count] [flags] |
139 synonym for :number. | |
7 | 140 |
1125 | 141 *:#!* |
142 :#!{anything} Ignored, so that you can start a Vim script with: > | |
1624 | 143 #!vim -S |
1125 | 144 echo "this is a Vim script" |
145 quit | |
146 < | |
7 | 147 *:z* *E144* |
22958 | 148 :[range]z[+-^.=][count] Display several lines of text surrounding the line |
149 specified with [range], or around the current line | |
150 if there is no [range]. | |
7 | 151 |
22958 | 152 If there is a [count], that's how many lines you'll |
153 see; if there is no [count] and only one window then | |
154 twice the value of the 'scroll' option is used, | |
155 otherwise the current window height minus 3 is used. | |
156 This is the value of "scr" in the table below. | |
157 | |
158 If there is a [count] the 'window' option is set to | |
3237 | 159 its value. |
160 | |
7 | 161 :z can be used either alone or followed by any of |
21991 | 162 several marks. These have the following effect: |
7 | 163 |
2725 | 164 mark first line last line new cursor line ~ |
7 | 165 ---- ---------- --------- ------------ |
166 + current line 1 scr forward 1 scr forward | |
167 - 1 scr back current line current line | |
168 ^ 2 scr back 1 scr back 1 scr back | |
159 | 169 . 1/2 scr back 1/2 scr fwd 1/2 scr fwd |
170 = 1/2 scr back 1/2 scr fwd current line | |
7 | 171 |
172 Specifying no mark at all is the same as "+". | |
173 If the mark is "=", a line of dashes is printed | |
174 around the current line. | |
175 | |
25773 | 176 *:z!* |
25729
0f93e9423890
patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents:
24970
diff
changeset
|
177 :[range]z![+-^.=][count] |
25973 | 178 Like ":z", but when [count] is not specified, it |
25729
0f93e9423890
patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents:
24970
diff
changeset
|
179 defaults to the Vim window height minus one. |
0f93e9423890
patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents:
24970
diff
changeset
|
180 |
0f93e9423890
patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents:
24970
diff
changeset
|
181 :[range]z[!]#[+-^.=][count] *:z#* |
0f93e9423890
patch 8.2.3400: ":z!" is not supported
Bram Moolenaar <Bram@vim.org>
parents:
24970
diff
changeset
|
182 Like ":z" or ":z!", but number the lines. |
7 | 183 |
184 *:=* | |
169 | 185 := [flags] Print the last line number. |
186 See |ex-flags| for [flags]. | |
7 | 187 |
169 | 188 :{range}= [flags] Prints the last line number in {range}. For example, |
7 | 189 this prints the current line number: > |
190 :.= | |
169 | 191 < See |ex-flags| for [flags]. |
7 | 192 |
193 :norm[al][!] {commands} *:norm* *:normal* | |
194 Execute Normal mode commands {commands}. This makes | |
195 it possible to execute Normal mode commands typed on | |
2596 | 196 the command-line. {commands} are executed like they |
197 are typed. For undo all commands are undone together. | |
1125 | 198 Execution stops when an error is encountered. |
4073 | 199 |
7 | 200 If the [!] is given, mappings will not be used. |
4073 | 201 Without it, when this command is called from a |
202 non-remappable mapping (|:noremap|), the argument can | |
203 be mapped anyway. | |
204 | |
7 | 205 {commands} should be a complete command. If |
206 {commands} does not finish a command, the last one | |
207 will be aborted as if <Esc> or <C-C> was typed. | |
208 This implies that an insert command must be completed | |
209 (to start Insert mode, see |:startinsert|). A ":" | |
161 | 210 command must be completed as well. And you can't use |
211 "Q" or "gQ" to start Ex mode. | |
4073 | 212 |
213 The display is not updated while ":normal" is busy. | |
214 | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1989
diff
changeset
|
215 {commands} cannot start with a space. Put a count of |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1989
diff
changeset
|
216 1 (one) before it, "1 " is one space. |
4073 | 217 |
7 | 218 The 'insertmode' option is ignored for {commands}. |
4073 | 219 |
7 | 220 This command cannot be followed by another command, |
221 since any '|' is considered part of the command. | |
4073 | 222 |
7 | 223 This command can be used recursively, but the depth is |
224 limited by 'maxmapdepth'. | |
4073 | 225 |
7 | 226 An alternative is to use |:execute|, which uses an |
227 expression as argument. This allows the use of | |
2264 | 228 printable characters to represent special characters. |
4073 | 229 |
2264 | 230 Example: > |
7 | 231 :exe "normal \<c-w>\<c-w>" |
232 | |
233 :{range}norm[al][!] {commands} *:normal-range* | |
234 Execute Normal mode commands {commands} for each line | |
235 in the {range}. Before executing the {commands}, the | |
236 cursor is positioned in the first column of the range, | |
237 for each line. Otherwise it's the same as the | |
238 ":normal" command without a range. | |
239 | |
240 *:sh* *:shell* *E371* | |
241 :sh[ell] This command starts a shell. When the shell exits | |
242 (after the "exit" command) you return to Vim. The | |
243 name for the shell command comes from 'shell' option. | |
244 *E360* | |
245 Note: This doesn't work when Vim on the Amiga was | |
246 started in QuickFix mode from a compiler, because the | |
247 compiler will have set stdin to a non-interactive | |
248 mode. | |
249 | |
27036 | 250 *:!cmd* *:!* |
7 | 251 :!{cmd} Execute {cmd} with the shell. See also the 'shell' |
30967 | 252 and 'shelltype' option. |
27036 | 253 *E34* |
7 | 254 Any '!' in {cmd} is replaced with the previous |
255 external command (see also 'cpoptions'). But not when | |
256 there is a backslash before the '!', then that | |
257 backslash is removed. Example: ":!ls" followed by | |
258 ":!echo ! \! \\!" executes "echo ls ! \!". | |
5814 | 259 |
1624 | 260 A '|' in {cmd} is passed to the shell, you cannot use |
261 it to append a Vim command. See |:bar|. | |
5814 | 262 |
263 If {cmd} contains "%" it is expanded to the current | |
20753 | 264 file name, "#" is expanded to the alternate file name. |
265 Special characters in the file name are not escaped, | |
266 use quotes to avoid their special meaning: > | |
5814 | 267 :!ls "%" |
20753 | 268 < If the file name contains a "$" then single quotes |
269 might work better, but this only works if the file | |
270 name does not contain a single quote: > | |
5814 | 271 :!ls '%' |
272 < This should always work, but it's more typing: > | |
27903 | 273 :exe "!ls " .. shellescape(expand("%")) |
20753 | 274 < To get a literal "%" or "#" prepend it with a |
275 backslash. For example, to list all files starting | |
276 with "%": > | |
277 :!ls \%* | |
5814 | 278 < |
7 | 279 A newline character ends {cmd}, what follows is |
280 interpreted as a following ":" command. However, if | |
281 there is a backslash before the newline it is removed | |
282 and {cmd} continues. It doesn't matter how many | |
283 backslashes are before the newline, only one is | |
284 removed. | |
5814 | 285 |
7 | 286 On Unix the command normally runs in a non-interactive |
287 shell. If you want an interactive shell to be used | |
288 (to use aliases) set 'shellcmdflag' to "-ic". | |
289 For Win32 also see |:!start|. | |
5814 | 290 |
5908 | 291 After the command has been executed, the timestamp and |
292 size of the current file is checked |timestamp|. | |
5814 | 293 |
7 | 294 Vim redraws the screen after the command is finished, |
295 because it may have printed any text. This requires a | |
296 hit-enter prompt, so that you can read any messages. | |
297 To avoid this use: > | |
298 :silent !{cmd} | |
299 < The screen is not redrawn then, thus you have to use | |
300 CTRL-L or ":redraw!" if the command did display | |
31028 | 301 something. However, this depends on what the |t_ti| |
302 and |t_te| termcap entries are set to. | |
7 | 303 Also see |shell-window|. |
304 | |
305 *:!!* | |
306 :!! Repeat last ":!{cmd}". | |
307 | |
16944 | 308 *:ve* *:ver* *:version* |
7 | 309 :ve[rsion] Print the version number of the editor. If the |
310 compiler used understands "__DATE__" the compilation | |
311 date is mentioned. Otherwise a fixed release-date is | |
312 shown. | |
313 The following lines contain information about which | |
314 features were enabled when Vim was compiled. When | |
315 there is a preceding '+', the feature is included, | |
316 when there is a '-' it is excluded. To change this, | |
317 you have to edit feature.h and recompile Vim. | |
318 To check for this in an expression, see |has()|. | |
319 Here is an overview of the features. | |
320 The first column shows the smallest version in which | |
321 they are included: | |
13437 | 322 T tiny (always) |
7 | 323 N normal |
324 H huge | |
325 m manually enabled or depends on other features | |
18790 | 326 - never, feature was removed |
7 | 327 (none) system dependent |
328 Thus if a feature is marked with "N", it is included | |
33486
93c715c63a4a
patch 9.0.1994: inconsistent feature description
Christian Brabandt <cb@256bit.org>
parents:
33408
diff
changeset
|
329 in the normal and huge versions of Vim. |
7 | 330 |
331 *+feature-list* | |
5340 | 332 *+acl* |ACL| support included |
7 | 333 *+ARP* Amiga only: ARP support included |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
334 H *+arabic* |Arabic| language support |
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
335 N *+autochdir* support 'autochdir' option |
29840 | 336 T *+autocmd* |:autocmd|, automatic commands. Always enabled since |
337 8.0.1564 | |
12837
963cdeb42c41
patch 8.0.1295: cannot automatically get a server name in a terminal
Christian Brabandt <cb@256bit.org>
parents:
12785
diff
changeset
|
338 H *+autoservername* Automatically enable |clientserver| |
12909 | 339 m *+balloon_eval* |balloon-eval| support in the GUI. Included when |
340 compiling with supported GUI (Motif, GTK, GUI) and | |
341 either Netbeans/Sun Workshop integration or |+eval| | |
342 feature. | |
343 H *+balloon_eval_term* |balloon-eval| support in the terminal, | |
344 'balloonevalterm' | |
7 | 345 N *+browse* |:browse| command |
29883
1342ee83ab97
patch 9.0.0280: the builtin termcap list depends on the version
Bram Moolenaar <Bram@vim.org>
parents:
29881
diff
changeset
|
346 T *++builtin_terms* maximal terminals builtin |builtin-terms| Always |
1342ee83ab97
patch 9.0.0280: the builtin termcap list depends on the version
Bram Moolenaar <Bram@vim.org>
parents:
29881
diff
changeset
|
347 enabled since 9.0.0280 |
7 | 348 N *+byte_offset* support for 'o' flag in 'statusline' option, "go" |
349 and ":goto" commands. | |
7790
ca19726d5e83
commit https://github.com/vim/vim/commit/298b440930ecece38d6ea0505a3e582dc817e79b
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
350 m *+channel* inter process communication |channel| |
30645
101f08b49ed3
patch 9.0.0657: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
351 T *+cindent* |'cindent'|, C indenting; Always enabled |
7 | 352 N *+clientserver* Unix and Win32: Remote invocation |clientserver| |
17758 | 353 *+clipboard* |clipboard| support compiled-in |
354 *+clipboard_working* |clipboard| support compiled-in and working | |
17909 | 355 T *+cmdline_compl* command line completion |cmdline-completion| |
23798
59efd230b373
patch 8.2.2440: documentation based on patches is outdated
Bram Moolenaar <Bram@vim.org>
parents:
23666
diff
changeset
|
356 T *+cmdline_hist* command line history |cmdline-history| |
30825
c7983f593fa7
patch 9.0.0747: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
30731
diff
changeset
|
357 T *+cmdline_info* |'showcmd'| and |'ruler'|; Always enabled since |
c7983f593fa7
patch 9.0.0747: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
30731
diff
changeset
|
358 9.0.0747 |
30645
101f08b49ed3
patch 9.0.0657: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
30547
diff
changeset
|
359 T *+cmdwin* |cmdline-window| support; Always enabled since 9.0.0657 |
18203
e0ec4cd7a865
patch 8.1.2096: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
18016
diff
changeset
|
360 T *+comments* |'comments'| support |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
361 N *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc. |
7 | 362 N *+cryptv* encryption support |encryption| |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
363 H *+cscope* |cscope| support |
13437 | 364 T *+cursorbind* |'cursorbind'| support |
500 | 365 m *+cursorshape* |termcap-cursor-shape| support |
366 m *+debug* Compiled for debugging. | |
7 | 367 N *+dialog_gui* Support for |:confirm| with GUI dialog. |
368 N *+dialog_con* Support for |:confirm| with console dialog. | |
369 N *+dialog_con_gui* Support for |:confirm| with GUI and console dialog. | |
370 N *+diff* |vimdiff| and 'diff' | |
371 N *+digraphs* |digraphs| *E196* | |
13468
539436dcb134
patch 8.0.1608: Win32: directx not enabled by default
Christian Brabandt <cb@256bit.org>
parents:
13437
diff
changeset
|
372 *+directx* Win32 GUI only: DirectX and |'renderoptions'| |
7 | 373 *+dnd* Support for DnD into the "~ register |quote_~|. |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
374 H *+emacs_tags* |emacs-tags| files |
7 | 375 N *+eval* expression evaluation |eval.txt| |
26438 | 376 T *+ex_extra* always on now, used to be for Vim's extra Ex commands |
7 | 377 N *+extra_search* |'hlsearch'| and |'incsearch'| options. |
18790 | 378 - *+farsi* Removed: |farsi| language |
29885 | 379 T *+file_in_path* |gf|, |CTRL-W_f| and |<cfile>| Always enabled since |
380 9.0.265 | |
7 | 381 N *+find_in_path* include file searches: |[I|, |:isearch|, |
382 |CTRL-W_CTRL-I|, |:checkpath|, etc. | |
383 N *+folding* |folding| | |
384 *+footer* |gui-footer| | |
385 *+fork* Unix only: |fork| shell commands | |
30310
029c59bf78f1
patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents:
29885
diff
changeset
|
386 T *+float* Floating point support Always enabled since 9.0.0491 |
7 | 387 N *+gettext* message translations |multi-lang| |
28379 | 388 - *+GUI_Athena* Unix only: Athena |GUI| |
7 | 389 *+GUI_neXtaw* Unix only: neXtaw |GUI| |
390 *+GUI_GTK* Unix only: GTK+ |GUI| | |
391 *+GUI_Motif* Unix only: Motif |GUI| | |
392 *+GUI_Photon* QNX only: Photon |GUI| | |
393 m *+hangul_input* Hangul input support |hangul| | |
557 | 394 *+iconv* Compiled with the |iconv()| function |
395 *+iconv/dyn* Likewise |iconv-dynamic| |/dyn| | |
17909 | 396 T *+insert_expand* |insert_expand| Insert mode completion |
20003
e373843e2980
patch 8.2.0557: no IPv6 support for channels
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
397 m *+ipv6* Support for IPv6 networking |channel| |
8061
abd64cf67bcf
commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents:
7876
diff
changeset
|
398 m *+job* starting and stopping jobs |job| |
26532
255bc9a08e58
patch 8.2.3795: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
26438
diff
changeset
|
399 T *+jumplist* |jumplist|; Always enabled since 8.2.3795 |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
400 H *+keymap* |'keymap'| |
9737
35ce559b8553
commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
401 N *+lambda* |lambda| and |closure| |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
402 H *+langmap* |'langmap'| |
7 | 403 N *+libcall* |libcall()| |
404 N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'| | |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
405 T *+lispindent* |'lisp'| |
13553
04019fc3de93
patch 8.0.1650: too many #ifdefs
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
406 T *+listcmds* Vim commands for the list of buffers |buffer-hidden| |
7 | 407 and argument list |:argdelete| |
17667 | 408 T *+localmap* Support for mappings local to a buffer |:map-local| |
2320
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2264
diff
changeset
|
409 m *+lua* |Lua| interface |
966a5609669e
Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents:
2264
diff
changeset
|
410 m *+lua/dyn* |Lua| interface |/dyn| |
7 | 411 N *+menu* |:menu| |
412 N *+mksession* |:mksession| | |
18016 | 413 T *+modify_fname* |filename-modifiers| |
18456 | 414 T *+mouse* Mouse handling |mouse-using| |
7 | 415 N *+mouseshape* |'mouseshape'| |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
416 N *+mouse_dec* Unix only: Dec terminal mouse handling |dec-mouse| |
7 | 417 N *+mouse_gpm* Unix only: Linux console mouse handling |gpm-mouse| |
29290 | 418 m *+mouse_gpm/dyn* Same as |+mouse_gpm| with optional library dependency |
419 |/dyn| | |
5929 | 420 N *+mouse_jsbterm* JSB mouse handling |jsbterm-mouse| |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
421 N *+mouse_netterm* Unix only: netterm mouse handling |netterm-mouse| |
3996 | 422 N *+mouse_pterm* QNX only: pterm mouse handling |qnx-terminal| |
1624 | 423 N *+mouse_sysmouse* Unix only: *BSD console mouse handling |sysmouse| |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
424 N *+mouse_sgr* Unix only: sgr mouse handling |sgr-mouse| |
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
425 N *+mouse_urxvt* Unix only: urxvt mouse handling |urxvt-mouse| |
3996 | 426 N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse| |
23666 | 427 T *+multi_byte* Unicode support, 16 and 32 bit characters |multibyte| |
7 | 428 *+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime| |
3996 | 429 N *+multi_lang* non-English language support |multi-lang| |
14 | 430 m *+mzscheme* Mzscheme interface |mzscheme| |
625 | 431 m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn| |
7 | 432 m *+netbeans_intg* |netbeans| |
26438 | 433 T *+num64* 64-bit Number support |Number| |
27537 | 434 Always enabled since 8.2.0271, use v:numbersize to |
19477
2bb0e80fcd32
patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
435 check the actual size of a Number. |
3996 | 436 m *+ole* Win32 GUI only: |ole-interface| |
9076
9305a1251e51
commit https://github.com/vim/vim/commit/91c4937be15b0b743b6bc495df602c1abbff6b87
Christian Brabandt <cb@256bit.org>
parents:
9027
diff
changeset
|
437 N *+packages* Loading |packages| |
29863
62350f19d4ed
patch 9.0.0270: some values of 'path' and 'tags' invalid in the tiny version
Bram Moolenaar <Bram@vim.org>
parents:
29840
diff
changeset
|
438 T *+path_extra* Up/downwards search in 'path' and 'tags' Always |
62350f19d4ed
patch 9.0.0270: some values of 'path' and 'tags' invalid in the tiny version
Bram Moolenaar <Bram@vim.org>
parents:
29840
diff
changeset
|
439 enabled since 9.0.0270 |
557 | 440 m *+perl* Perl interface |perl| |
441 m *+perl/dyn* Perl interface |perl-dynamic| |/dyn| | |
2535
31e51111bd14
Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents:
2527
diff
changeset
|
442 N *+persistent_undo* Persistent undo |undo-persistence| |
18790 | 443 N *+popupwin* Popup windows |popup-window| |
3996 | 444 *+postscript* |:hardcopy| writes a PostScript file |
7 | 445 N *+printer* |:hardcopy| command |
179 | 446 H *+profile* |:profile| command |
2368 | 447 m *+python* Python 2 interface |python| |
3996 | 448 m *+python/dyn* Python 2 interface |python-dynamic| |/dyn| |
2368 | 449 m *+python3* Python 3 interface |python| |
3996 | 450 m *+python3/dyn* Python 3 interface |python-dynamic| |/dyn| |
32936
c517845bd10e
patch 9.0.1776: No support for stable Python 3 ABI
Christian Brabandt <cb@256bit.org>
parents:
31579
diff
changeset
|
451 m *+python3/dyn-stable* |
33649
88cad94caef9
runtime(doc): Fix typos in several documents (#13420)
Christian Brabandt <cb@256bit.org>
parents:
33486
diff
changeset
|
452 Python 3 interface |python-dynamic| |python-stable| |
88cad94caef9
runtime(doc): Fix typos in several documents (#13420)
Christian Brabandt <cb@256bit.org>
parents:
33486
diff
changeset
|
453 |/dyn| |
7 | 454 N *+quickfix* |:make| and |quickfix| commands |
1624 | 455 N *+reltime* |reltime()| function, 'hlsearch'/'incsearch' timeout, |
456 'redrawtime' option | |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
457 H *+rightleft* Right to left typing |'rightleft'| |
557 | 458 m *+ruby* Ruby interface |ruby| |
459 m *+ruby/dyn* Ruby interface |ruby-dynamic| |/dyn| | |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13468
diff
changeset
|
460 T *+scrollbind* |'scrollbind'| |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
461 N *+signs* |:sign| |
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
462 T *+smartindent* |'smartindent'| |
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
463 H *+sodium* compiled with libsodium for better encryption support |
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
464 H *+sound* |sound_playevent()|, |sound_playfile()| functions, etc. |
17036 | 465 N *+spell* spell checking support, see |spell| |
3996 | 466 N *+startuptime* |--startuptime| argument |
467 N *+statusline* Options 'statusline', 'rulerformat' and special | |
7 | 468 formats of 'titlestring' and 'iconstring' |
18790 | 469 - *+sun_workshop* Removed: |workshop| |
7 | 470 N *+syntax* Syntax highlighting |syntax| |
471 *+system()* Unix only: opposite of |+fork| | |
10140
b11ceef7116e
commit https://github.com/vim/vim/commit/64d8e25bf6efe5f18b032563521c3ce278c316ab
Christian Brabandt <cb@256bit.org>
parents:
10004
diff
changeset
|
472 T *+tag_binary* binary searching in tags file |tag-binary-search| |
18790 | 473 - *+tag_old_static* Removed; method for static tags |tag-old-static| |
474 - *+tag_any_white* Removed; was to allow any white space in tags files | |
3996 | 475 m *+tcl* Tcl interface |tcl| |
557 | 476 m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn| |
12045 | 477 m *+terminal* Support for terminal window |terminal| |
7 | 478 *+terminfo* uses |terminfo| instead of termcap |
479 N *+termresponse* support for |t_RV| and |v:termresponse| | |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
480 N *+termguicolors* 24-bit color in xterm-compatible terminals support |
29765
bc6cf208b1b4
patch 9.0.0222: no good reason why text objects are only in larger builds
Bram Moolenaar <Bram@vim.org>
parents:
29314
diff
changeset
|
481 T *+textobjects* |text-objects| selection. Always enabled since 9.0.0222. |
15194 | 482 N *+textprop* |text-properties| |
7 | 483 *+tgetent* non-Unix only: able to use external termcap |
8673
ed7251c3e2d3
commit https://github.com/vim/vim/commit/e18c0b39815c5a746887a509c2cd9f11fadaba07
Christian Brabandt <cb@256bit.org>
parents:
8303
diff
changeset
|
484 N *+timers* the |timer_start()| function |
26438 | 485 T *+title* Setting the window 'title' and 'icon'; Always enabled |
7 | 486 N *+toolbar* |gui-toolbar| |
16411
5b5c5daf57de
patch 8.1.1210: support for user commands is spread out
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
487 T *+user_commands* User-defined commands. |user-commands| |
5b5c5daf57de
patch 8.1.1210: support for user commands is spread out
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
488 Always enabled since 8.1.1210. |
30731
2295ee9c025d
patch 9.0.0700: there is no real need for a "big" build
Bram Moolenaar <Bram@vim.org>
parents:
30645
diff
changeset
|
489 H *+vartabs* Variable-width tabstops. |'vartabstop'| |
26438 | 490 T *+vertsplit* Vertically split windows |:vsplit|; Always enabled |
12499 | 491 since 8.0.1118. |
26901
9805a7617981
patch 8.2.3979: Vim9: the feature is not mentioned in the right places
Bram Moolenaar <Bram@vim.org>
parents:
26708
diff
changeset
|
492 T *+vim9script* |Vim9| script |
9805a7617981
patch 8.2.3979: Vim9: the feature is not mentioned in the right places
Bram Moolenaar <Bram@vim.org>
parents:
26708
diff
changeset
|
493 N *+viminfo* |'viminfo'| |
26438 | 494 T *+virtualedit* |'virtualedit'| Always enabled since 8.1.826. |
15422
b55b89692fd2
patch 8.1.0719: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
495 T *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200. |
b55b89692fd2
patch 8.1.0719: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
496 T *+visualextra* extra Visual mode commands |blockwise-operators| |
14424
0a69e6e708f9
patch 8.1.0226: too many #ifdefs
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
497 T *+vreplace* |gR| and |gr| |
13341
acd7eaa13d2b
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
12909
diff
changeset
|
498 *+vtp* on MS-Windows console: support for 'termguicolors' |
29879
77141226eb2e
patch 9.0.0278: the +wildignore feature is nearly always available
Bram Moolenaar <Bram@vim.org>
parents:
29863
diff
changeset
|
499 T *+wildignore* |'wildignore'| Always enabled since 9.0.0278 |
31579 | 500 T *+wildmenu* |'wildmenu'| Always enabled since 9.0.0279 |
15422
b55b89692fd2
patch 8.1.0719: too many #ifdefs
Bram Moolenaar <Bram@vim.org>
parents:
15396
diff
changeset
|
501 T *+windows* more than one window; Always enabled since 8.0.1118. |
3996 | 502 m *+writebackup* |'writebackup'| is default on |
503 m *+xim* X input method |xim| | |
7 | 504 *+xfontset* X fontset support |xfontset| |
33408
dcfbfe57141c
patch 9.0.1962: No support for writing extended attributes
Christian Brabandt <cb@256bit.org>
parents:
32936
diff
changeset
|
505 N *+xattr* compiled with extended attribute support (Linux only) |
5340 | 506 *+xpm* pixmap support |
3750 | 507 m *+xpm_w32* Win32 GUI only: pixmap support |w32-xpm-support| |
7 | 508 *+xsmp* XSMP (X session management) support |
509 *+xsmp_interact* interactive XSMP (X session management) support | |
510 N *+xterm_clipboard* Unix only: xterm clipboard handling | |
3996 | 511 m *+xterm_save* save and restore xterm screen |xterm-screens| |
512 N *+X11* Unix only: can restore window title |X11| | |
7 | 513 |
514 */dyn* *E370* *E448* | |
515 To some of the features "/dyn" is added when the | |
516 feature is only available when the related library can | |
517 be dynamically loaded. | |
518 | |
519 :ve[rsion] {nr} Is now ignored. This was previously used to check the | |
520 version number of a .vimrc file. It was removed, | |
521 because you can now use the ":if" command for | |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
522 version-dependent behavior. |
7 | 523 |
524 *:redi* *:redir* | |
525 :redi[r][!] > {file} Redirect messages to file {file}. The messages which | |
526 are the output of commands are written to that file, | |
527 until redirection ends. The messages are also still | |
528 shown on the screen. When [!] is included, an | |
529 existing file is overwritten. When [!] is omitted, | |
530 and {file} exists, this command fails. | |
9464
be72f4201a1d
commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
531 |
7 | 532 Only one ":redir" can be active at a time. Calls to |
533 ":redir" will close any active redirection before | |
9464
be72f4201a1d
commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
534 starting redirection to the new target. For recursive |
be72f4201a1d
commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
535 use check out |execute()|. |
be72f4201a1d
commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
536 |
7 | 537 To stop the messages and commands from being echoed to |
538 the screen, put the commands in a function and call it | |
539 with ":silent call Function()". | |
294 | 540 An alternative is to use the 'verbosefile' option, |
541 this can be used in combination with ":redir". | |
7 | 542 |
543 :redi[r] >> {file} Redirect messages to file {file}. Append if {file} | |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
544 already exists. |
7 | 545 |
1624 | 546 :redi[r] @{a-zA-Z} |
298 | 547 :redi[r] @{a-zA-Z}> Redirect messages to register {a-z}. Append to the |
7 | 548 contents of the register if its name is given |
1624 | 549 uppercase {A-Z}. The ">" after the register name is |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
550 optional. |
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
551 :redi[r] @{a-z}>> Append messages to register {a-z}. |
7 | 552 |
18831 | 553 :redi[r] @*> |
1125 | 554 :redi[r] @+> Redirect messages to the selection or clipboard. For |
555 backward compatibility, the ">" after the register | |
556 name can be omitted. See |quotestar| and |quoteplus|. | |
18831 | 557 :redi[r] @*>> |
1125 | 558 :redi[r] @+>> Append messages to the selection or clipboard. |
7 | 559 |
298 | 560 :redi[r] @"> Redirect messages to the unnamed register. For |
561 backward compatibility, the ">" after the register | |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
562 name can be omitted. |
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
563 :redi[r] @">> Append messages to the unnamed register. |
27537 | 564 *E1092* |
26708 | 565 :redi[r] => {var} Redirect messages to a variable. |
566 In legacy script: If the variable doesn't exist, then | |
567 it is created. If the variable exists, then it is | |
568 initialized to an empty string. After the redirection | |
569 starts, if the variable is removed or locked or the | |
570 variable type is changed, then further command output | |
29285 | 571 messages will cause errors. When using a local |
572 variable (l:var in a function or s:var in a script) | |
573 and another `:redir` causes the current one to end, | |
574 the scope might be different and the assignment fails. | |
26708 | 575 In Vim9 script: the variable must have been declared |
576 as a string. | |
1125 | 577 The variable will remain empty until redirection ends. |
26708 | 578 Only string variables can be used. |
9464
be72f4201a1d
commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
579 To get the output of one command the |execute()| |
20115 | 580 function can be used instead of redirection. |
169 | 581 |
582 :redi[r] =>> {var} Append messages to an existing variable. Only string | |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
583 variables can be used. |
27537 | 584 *E1185* |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
585 :redi[r] END End redirecting messages. |
7 | 586 |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
587 *:filt* *:filter* |
27162 | 588 :filt[er][!] {pattern} {command} |
589 :filt[er][!] /{pattern}/ {command} | |
11062 | 590 Restrict the output of {command} to lines matching |
27162 | 591 with {pattern}. For example, to list only xml files: > |
10004
8061455d9179
commit https://github.com/vim/vim/commit/818078ddfbb8cc2546f697c5675a251d095722ec
Christian Brabandt <cb@256bit.org>
parents:
9941
diff
changeset
|
592 :filter /\.xml$/ oldfiles |
11062 | 593 < If the [!] is given, restrict the output of {command} |
27162 | 594 to lines that do NOT match {pattern}. |
11062 | 595 |
27162 | 596 {pattern} is a Vim search pattern. Instead of enclosing |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
597 it in / any non-ID character (see |'isident'|) can be |
27162 | 598 used, so long as it does not appear in {pattern}. |
599 Without the enclosing character the pattern cannot | |
600 include the bar character. 'ignorecase' is not used. | |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
601 |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
602 The pattern is matched against the relevant part of |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
603 the output, not necessarily the whole line. Only some |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
604 commands support filtering, try it out to check if it |
14968
c5ec5ddbe814
patch 8.1.0495: :filter only supports some commands
Bram Moolenaar <Bram@vim.org>
parents:
14432
diff
changeset
|
605 works. Some of the commands that support filtering: |
16433
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
606 |:#| - filter whole line |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
607 |:clist| - filter by file name or module name |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
608 |:command| - filter by command name |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
609 |:files| - filter by file name |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
610 |:highlight| - filter by highlight group |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
611 |:jumps| - filter by file name |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
612 |:let| - filter by variable name |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
613 |:list| - filter whole line |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
614 |:llist| - filter by file name or module name |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
615 |:marks| - filter by text in the current file, |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
616 or file name for other files |
9c206a78ec04
patch 8.1.1221: filtering does not work when listing marks
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
617 |:oldfiles| - filter by file name |
18454
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
18203
diff
changeset
|
618 |:registers| - filter by register contents |
b912277e3877
patch 8.1.2221: cannot filter :disp output
Bram Moolenaar <Bram@vim.org>
parents:
18203
diff
changeset
|
619 (does not work multi-line) |
26591 | 620 |:set| - filter by option name |
9941
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
621 |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
622 Only normal messages are filtered, error messages are |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
623 not. |
e975914c17e9
commit https://github.com/vim/vim/commit/7b668e83d0635d082b7ec90d7d2aa30a9d7d8928
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
624 |
8148
f5da459c5698
commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents:
8061
diff
changeset
|
625 *:sil* *:silent* *:silent!* |
7 | 626 :sil[ent][!] {command} Execute {command} silently. Normal messages will not |
627 be given or added to the message history. | |
628 When [!] is added, error messages will also be | |
629 skipped, and commands and mappings will not be aborted | |
630 when an error is detected. |v:errmsg| is still set. | |
631 When [!] is not used, an error message will cause | |
632 further messages to be displayed normally. | |
633 Redirection, started with |:redir|, will continue as | |
634 usual, although there might be small differences. | |
635 This will allow redirecting the output of a command | |
636 without seeing it on the screen. Example: > | |
637 :redir >/tmp/foobar | |
638 :silent g/Aap/p | |
639 :redir END | |
640 < To execute a Normal mode command silently, use the | |
641 |:normal| command. For example, to search for a | |
642 string without messages: > | |
643 :silent exe "normal /path\<CR>" | |
644 < ":silent!" is useful to execute a command that may | |
645 fail, but the failure is to be ignored. Example: > | |
646 :let v:errmsg = "" | |
647 :silent! /^begin | |
648 :if v:errmsg != "" | |
649 : ... pattern was not found | |
650 < ":silent" will also avoid the hit-enter prompt. When | |
651 using this for an external command, this may cause the | |
652 screen to be messed up. Use |CTRL-L| to clean it up | |
653 then. | |
654 ":silent menu ..." defines a menu that will not echo a | |
655 Command-line command. The command will still produce | |
656 messages though. Use ":silent" in the command itself | |
657 to avoid that: ":silent menu .... :silent command". | |
658 | |
1926 | 659 *:uns* *:unsilent* |
660 :uns[ilent] {command} Execute {command} not silently. Only makes a | |
661 difference when |:silent| was used to get to this | |
662 command. | |
663 Use this for giving a message even when |:silent| was | |
664 used. In this example |:silent| is used to avoid the | |
665 message about reading the file and |:unsilent| to be | |
666 able to list the first line of each file. > | |
27903 | 667 :silent argdo unsilent echo expand('%') .. ": " .. getline(1) |
1926 | 668 < |
669 | |
7 | 670 *:verb* *:verbose* |
671 :[count]verb[ose] {command} | |
672 Execute {command} with 'verbose' set to [count]. If | |
8 | 673 [count] is omitted one is used. ":0verbose" can be |
674 used to set 'verbose' to zero. | |
7 | 675 The additional use of ":silent" makes messages |
676 generated but not displayed. | |
677 The combination of ":silent" and ":verbose" can be | |
678 used to generate messages and check them with | |
679 |v:statusmsg| and friends. For example: > | |
680 :let v:statusmsg = "" | |
681 :silent verbose runtime foobar.vim | |
682 :if v:statusmsg != "" | |
683 : " foobar.vim could not be found | |
684 :endif | |
685 < When concatenating another command, the ":verbose" | |
686 only applies to the first one: > | |
687 :4verbose set verbose | set verbose | |
688 < verbose=4 ~ | |
689 verbose=0 ~ | |
294 | 690 For logging verbose messages in a file use the |
691 'verbosefile' option. | |
7 | 692 |
484 | 693 *:verbose-cmd* |
694 When 'verbose' is non-zero, listing the value of a Vim option or a key map or | |
502 | 695 an abbreviation or a user-defined function or a command or a highlight group |
696 or an autocommand will also display where it was last defined. If it was | |
697 defined manually then there will be no "Last set" message. When it was | |
698 defined while executing a function, user command or autocommand, the script in | |
699 which it was defined is reported. | |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2561
diff
changeset
|
700 {not available when compiled without the |+eval| feature} |
484 | 701 |
7 | 702 *K* |
703 K Run a program to lookup the keyword under the | |
704 cursor. The name of the program is given with the | |
705 'keywordprg' (kp) option (default is "man"). The | |
706 keyword is formed of letters, numbers and the | |
707 characters in 'iskeyword'. The keyword under or | |
708 right of the cursor is used. The same can be done | |
709 with the command > | |
710 :!{program} {keyword} | |
711 < There is an example of a program to use in the tools | |
11062 | 712 directory of Vim. It is called "ref" and does a |
7 | 713 simple spelling check. |
714 Special cases: | |
9116
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
715 - If 'keywordprg' begins with ":" it is invoked as |
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
716 a Vim Ex command with [count]. |
7 | 717 - If 'keywordprg' is empty, the ":help" command is |
718 used. It's a good idea to include more characters | |
719 in 'iskeyword' then, to be able to find more help. | |
9116
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
720 - When 'keywordprg' is equal to "man" or starts with |
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
721 ":", a [count] before "K" is inserted after |
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
722 keywordprg and before the keyword. For example, |
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
723 using "2K" while the cursor is on "mkdir", results |
bc38030aec7d
commit https://github.com/vim/vim/commit/26852128a2b713ef49341a0c18daba928444e7eb
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
724 in: > |
7 | 725 !man 2 mkdir |
726 < - When 'keywordprg' is equal to "man -s", a count | |
727 before "K" is inserted after the "-s". If there is | |
728 no count, the "-s" is removed. | |
729 | |
730 *v_K* | |
731 {Visual}K Like "K", but use the visually highlighted text for | |
732 the keyword. Only works when the highlighted text is | |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
733 not more than one line. |
7 | 734 |
735 [N]gs *gs* *:sl* *:sleep* | |
23648
b7d3c79075c5
patch 8.2.2366: when using ":sleep" the cursor is always displayed
Bram Moolenaar <Bram@vim.org>
parents:
22958
diff
changeset
|
736 :[N]sl[eep] [N][m] Do nothing for [N] seconds. When [m] is included, |
237 | 737 sleep for [N] milliseconds. The count for "gs" always |
7 | 738 uses seconds. The default is one second. > |
739 :sleep "sleep for one second | |
740 :5sleep "sleep for five seconds | |
23648
b7d3c79075c5
patch 8.2.2366: when using ":sleep" the cursor is always displayed
Bram Moolenaar <Bram@vim.org>
parents:
22958
diff
changeset
|
741 :sleep 100m "sleep for 100 milliseconds |
7 | 742 10gs "sleep for ten seconds |
18972 | 743 < Can be interrupted with CTRL-C (CTRL-Break on |
744 MS-Windows). "gs" stands for "goto sleep". | |
140 | 745 While sleeping the cursor is positioned in the text, |
16553
0e473e9e70c2
patch 8.1.1280: remarks about functionality not in Vi clutters the help
Bram Moolenaar <Bram@vim.org>
parents:
16433
diff
changeset
|
746 if at a visible position. |
3153 | 747 Also process the received netbeans messages. {only |
748 available when compiled with the |+netbeans_intg| | |
749 feature} | |
750 | |
23666 | 751 *:sl!* *:sleep!* |
24911 | 752 :[N]sl[eep]! [N][m] Same as above, but hide the cursor. |
23666 | 753 |
16608
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
754 *:xrestore* *:xr* |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
755 :xr[estore] [display] Reinitializes the connection to the X11 server. Useful |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
756 after the X server restarts, e.g. when running Vim for |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
757 long time inside screen/tmux and connecting from |
16808 | 758 different machines. |
18831 | 759 [display] should be in the format of the $DISPLAY |
16608
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
760 environment variable (e.g. "localhost:10.0") |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
761 If [display] is omitted, then it reinitializes the |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
762 connection to the X11 server using the same value as |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
763 was used for the previous execution of this command. |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
764 If the value was never specified, then it uses the |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
765 value of $DISPLAY environment variable as it was when |
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
766 Vim was started. |
18831 | 767 {only available when compiled with the |+clipboard| |
16608
0422b14bce58
patch 8.1.1307: cannot reconnect to the X server after it restarted
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
768 feature} |
7 | 769 |
770 *g_CTRL-A* | |
771 g CTRL-A Only when Vim was compiled with MEM_PROFILING defined | |
772 (which is very rare): print memory usage statistics. | |
773 Only useful for debugging Vim. | |
7597
3012eaddb6b2
commit https://github.com/vim/vim/commit/345efa013dc6d1754ba06e5596a26c48c9935937
Christian Brabandt <cb@256bit.org>
parents:
7245
diff
changeset
|
774 For incrementing in Visual mode see |v_g_CTRL-A|. |
7 | 775 |
776 ============================================================================== | |
2581 | 777 2. Using Vim like less or more *less* |
7 | 778 |
779 If you use the less or more program to view a file, you don't get syntax | |
780 highlighting. Thus you would like to use Vim instead. You can do this by | |
781 using the shell script "$VIMRUNTIME/macros/less.sh". | |
782 | |
783 This shell script uses the Vim script "$VIMRUNTIME/macros/less.vim". It sets | |
784 up mappings to simulate the commands that less supports. Otherwise, you can | |
785 still use the Vim commands. | |
786 | |
787 This isn't perfect. For example, when viewing a short file Vim will still use | |
21250 | 788 the whole screen. But it works well enough for most uses, and you get syntax |
7 | 789 highlighting. |
790 | |
791 The "h" key will give you a short overview of the available commands. | |
792 | |
7245
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
793 If you want to set options differently when using less, define the |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
794 LessInitFunc in your vimrc, for example: > |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
795 |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
796 func LessInitFunc() |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
797 set nocursorcolumn nocursorline |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
798 endfunc |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
799 < |
8896150aba23
commit https://github.com/vim/vim/commit/e392eb41f8dfc01bd13634e534ac6b4d505326f4
Christian Brabandt <cb@256bit.org>
parents:
6153
diff
changeset
|
800 |
14432 | 801 vim:tw=78:ts=8:noet:ft=help:norl: |