annotate runtime/doc/eval.txt @ 13016:e47e70300f30 v8.0.1384

patch 8.0.1384: not enough quickfix help; confusing winid commit https://github.com/vim/vim/commit/74240d3febd1e3bc7cf086c647c9348b20716c33 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Dec 10 15:26:15 2017 +0100 patch 8.0.1384: not enough quickfix help; confusing winid Problem: Not enough quickfix help; confusing winid. Solution: Add more examples in the help. When the quickfix window is not present, return zero for getqflist() with 'winid'. Add more tests for jumping to quickfix list entries. (Yegappan Lakshmanan, closes #2427)
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Dec 2017 15:30:06 +0100
parents 2d817fd289ba
children 58cce40c965b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
1 *eval.txt* For Vim version 8.0. Last change: 2017 Dec 09
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
4 VIM REFERENCE MANUAL by Bram Moolenaar
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 Expression evaluation *expression* *expr* *E15* *eval*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 Using expressions is introduced in chapter 41 of the user manual |usr_41.txt|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 Note: Expression evaluation can be disabled at compile time. If this has been
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
12 done, the features in this document are not available. See |+eval| and
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
13 |no-eval-feature|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
15 1. Variables |variables|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
16 1.1 Variable types
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
17 1.2 Function references |Funcref|
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
18 1.3 Lists |Lists|
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
19 1.4 Dictionaries |Dictionaries|
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
20 1.5 More about variables |more-variables|
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
21 2. Expression syntax |expression-syntax|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
22 3. Internal variable |internal-variables|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
23 4. Builtin Functions |functions|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
24 5. Defining functions |user-functions|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
25 6. Curly braces names |curly-braces-names|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
26 7. Commands |expression-commands|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
27 8. Exception handling |exception-handling|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
28 9. Examples |eval-examples|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
29 10. No +eval feature |no-eval-feature|
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
30 11. The sandbox |eval-sandbox|
634
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
31 12. Textlock |textlock|
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
32 13. Testing |testing|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 {Vi does not have any of these commands}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 1. Variables *variables*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
39 1.1 Variable types ~
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
40 *E712*
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
41 There are nine types of variables:
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
42
3082
3502a7f991fc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2965
diff changeset
43 Number A 32 or 64 bit signed number. |expr-number| *Number*
9686
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
44 64-bit Numbers are available only when compiled with the
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
45 |+num64| feature.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
46 Examples: -123 0x10 0177 0b1011
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
47
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
48 Float A floating point number. |floating-point-format| *Float*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
49 {only when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
50 Examples: 123.456 1.15e-6 -1.1e3
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
51
9041
34c45ee4210d commit https://github.com/vim/vim/commit/06481427005a9dae39721087df94855f7d4d1feb
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
52 *E928*
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
53 String A NUL terminated string of 8-bit unsigned characters (bytes).
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
54 |expr-string| Examples: "ab\txx\"--" 'x-z''a,c'
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
55
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
56 List An ordered sequence of items |List|.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
57 Example: [1, 2, ['a', 'b']]
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
58
370
3a21825ad207 updated for version 7.0095
vimboss
parents: 359
diff changeset
59 Dictionary An associative, unordered array: Each entry has a key and a
3a21825ad207 updated for version 7.0095
vimboss
parents: 359
diff changeset
60 value. |Dictionary|
3a21825ad207 updated for version 7.0095
vimboss
parents: 359
diff changeset
61 Example: {'blue': "#0000ff", 'red': "#ff0000"}
3a21825ad207 updated for version 7.0095
vimboss
parents: 359
diff changeset
62
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
63 Funcref A reference to a function |Funcref|.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
64 Example: function("strlen")
9104
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
65 It can be bound to a dictionary and arguments, it then works
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
66 like a Partial.
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
67 Example: function("Callback", [arg], myDict)
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
68
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
69 Special |v:false|, |v:true|, |v:none| and |v:null|. *Special*
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
70
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
71 Job Used for a job, see |job_start()|. *Job* *Jobs*
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
72
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
73 Channel Used for a channel, see |ch_open()|. *Channel* *Channels*
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
74
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
75 The Number and String types are converted automatically, depending on how they
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
76 are used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 Conversion from a Number to a String is by making the ASCII representation of
2581
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
79 the Number. Examples:
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
80 Number 123 --> String "123" ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
81 Number 0 --> String "0" ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
82 Number -1 --> String "-1" ~
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
83 *octal*
7477
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
84 Conversion from a String to a Number is done by converting the first digits to
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
85 a number. Hexadecimal "0xf9", Octal "017", and Binary "0b10" numbers are
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
86 recognized. If the String doesn't start with digits, the result is zero.
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
87 Examples:
2581
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
88 String "456" --> Number 456 ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
89 String "6bar" --> Number 6 ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
90 String "foo" --> Number 0 ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
91 String "0xf1" --> Number 241 ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
92 String "0100" --> Number 64 ~
7477
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
93 String "0b101" --> Number 5 ~
2581
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
94 String "-8" --> Number -8 ~
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
95 String "+8" --> Number 0 ~
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 To force conversion from String to Number, add zero to it: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 :echo "0100" + 0
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
99 < 64 ~
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
100
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
101 To avoid a leading zero to cause octal conversion, or for using a different
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
102 base, use |str2nr()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
104 *TRUE* *FALSE*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
106 You can also use |v:false| and |v:true|. When TRUE is returned from a
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
107 function it is the Number one, FALSE is the number zero.
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
108
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
109 Note that in the command: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 :if "foo"
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
111 :" NOT executed
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
112 "foo" is converted to 0, which means FALSE. If the string starts with a
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
113 non-zero number it means TRUE: >
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
114 :if "8foo"
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
115 :" executed
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
116 To test for a non-empty string, use empty(): >
3893
c3036f1dca68 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3875
diff changeset
117 :if !empty("foo")
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
118 <
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
119 *non-zero-arg*
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
120 Function arguments often behave slightly different from |TRUE|: If the
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
121 argument is present and it evaluates to a non-zero Number, |v:true| or a
10140
b11ceef7116e commit https://github.com/vim/vim/commit/64d8e25bf6efe5f18b032563521c3ce278c316ab
Christian Brabandt <cb@256bit.org>
parents: 10054
diff changeset
122 non-empty String, then the value is considered to be TRUE.
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
123 Note that " " and "0" are also non-empty strings, thus considered to be TRUE.
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
124 A List, Dictionary or Float is not a Number or String, thus evaluate to FALSE.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
125
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
126 *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913*
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
127 List, Dictionary, Funcref, Job and Channel types are not automatically
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
128 converted.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
129
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
130 *E805* *E806* *E808*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
131 When mixing Number and Float the Number is converted to Float. Otherwise
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
132 there is no automatic conversion of Float. You can use str2float() for String
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
133 to Float, printf() for Float to String and float2nr() for Float to Number.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
134
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
135 *E891* *E892* *E893* *E894* *E907* *E911* *E914*
7707
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
136 When expecting a Float a Number can also be used, but nothing else.
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
137
8512
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
138 *no-type-checking*
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
139 You will not get an error if you try to change the type of a variable.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
140
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
141
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
142 1.2 Function references ~
153
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
143 *Funcref* *E695* *E718*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
144 A Funcref variable is obtained with the |function()| function, the |funcref()|
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
145 function or created with the lambda expression |expr-lambda|. It can be used
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
146 in an expression in the place of a function name, before the parenthesis
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
147 around the arguments, to invoke the function it refers to. Example: >
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
148
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
149 :let Fn = function("MyFunc")
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
150 :echo Fn()
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
151 < *E704* *E705* *E707*
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
152 A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:". You
5340
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
153 can use "g:" but the following name must still start with a capital. You
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
154 cannot have both a Funcref variable and a function with the same name.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
155
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
156 A special case is defining a function and directly assigning its Funcref to a
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
157 Dictionary entry. Example: >
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
158 :function dict.init() dict
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
159 : let self.val = 0
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
160 :endfunction
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
161
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
162 The key of the Dictionary can start with a lower case letter. The actual
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
163 function name is not used here. Also see |numbered-function|.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
164
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
165 A Funcref can also be used with the |:call| command: >
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
166 :call Fn()
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
167 :call dict.init()
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
168
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
169 The name of the referenced function can be obtained with |string()|. >
119
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
170 :let func = string(Fn)
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
171
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
172 You can use |call()| to invoke a Funcref and use a list variable for the
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
173 arguments: >
119
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
174 :let r = call(Fn, mylist)
9104
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
175 <
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
176 *Partial*
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
177 A Funcref optionally binds a Dictionary and/or arguments. This is also called
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
178 a Partial. This is created by passing the Dictionary and/or arguments to
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
179 function() or funcref(). When calling the function the Dictionary and/or
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
180 arguments will be passed to the function. Example: >
9104
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
181
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
182 let Cb = function('Callback', ['foo'], myDict)
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
183 call Cb()
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
184
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
185 This will invoke the function as if using: >
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
186 call myDict.Callback('foo')
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
187
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
188 This is very useful when passing a function around, e.g. in the arguments of
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
189 |ch_open()|.
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
190
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
191 Note that binding a function to a Dictionary also happens when the function is
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
192 a member of the Dictionary: >
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
193
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
194 let myDict.myFunction = MyFunction
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
195 call myDict.myFunction()
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
196
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
197 Here MyFunction() will get myDict passed as "self". This happens when the
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
198 "myFunction" member is accessed. When making assigning "myFunction" to
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
199 otherDict and calling it, it will be bound to otherDict: >
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
200
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
201 let otherDict.myFunction = myDict.myFunction
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
202 call otherDict.myFunction()
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
203
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
204 Now "self" will be "otherDict". But when the dictionary was bound explicitly
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
205 this won't happen: >
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
206
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
207 let myDict.myFunction = function(MyFunction, myDict)
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
208 let otherDict.myFunction = myDict.myFunction
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
209 call otherDict.myFunction()
2242a5766417 commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents: 9097
diff changeset
210
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
211 Here "self" will be "myDict", because it was bound explicitly.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
212
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
213
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
214 1.3 Lists ~
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
215 *list* *List* *Lists* *E686*
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
216 A List is an ordered sequence of items. An item can be of any type. Items
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
217 can be accessed by their index number. Items can be added and removed at any
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
218 position in the sequence.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
219
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
220
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
221 List creation ~
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
222 *E696* *E697*
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
223 A List is created with a comma separated list of items in square brackets.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
224 Examples: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
225 :let mylist = [1, two, 3, "four"]
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
226 :let emptylist = []
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
227
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
228 An item can be any expression. Using a List for an item creates a
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
229 List of Lists: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
230 :let nestlist = [[11, 12], [21, 22], [31, 32]]
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
231
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
232 An extra comma after the last item is ignored.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
233
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
234
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
235 List index ~
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
236 *list-index* *E684*
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
237 An item in the List can be accessed by putting the index in square brackets
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
238 after the List. Indexes are zero-based, thus the first item has index zero. >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
239 :let item = mylist[0] " get the first item: 1
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
240 :let item = mylist[2] " get the third item: 3
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
241
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
242 When the resulting item is a list this can be repeated: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
243 :let item = nestlist[0][1] " get the first list, second item: 12
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
244 <
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
245 A negative index is counted from the end. Index -1 refers to the last item in
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
246 the List, -2 to the last but one item, etc. >
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
247 :let last = mylist[-1] " get the last item: "four"
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
248
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
249 To avoid an error for an invalid index use the |get()| function. When an item
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
250 is not available it returns zero or the default value you specify: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
251 :echo get(mylist, idx)
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
252 :echo get(mylist, idx, "NONE")
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
253
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
254
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
255 List concatenation ~
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
256
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
257 Two lists can be concatenated with the "+" operator: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
258 :let longlist = mylist + [5, 6]
119
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
259 :let mylist += [7, 8]
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
260
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
261 To prepend or append an item turn the item into a list by putting [] around
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
262 it. To change a list in-place see |list-modification| below.
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
263
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
264
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
265 Sublist ~
9737
35ce559b8553 commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents: 9723
diff changeset
266 *sublist*
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
267 A part of the List can be obtained by specifying the first and last index,
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
268 separated by a colon in square brackets: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
269 :let shortlist = mylist[2:-1] " get List [3, "four"]
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
270
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
271 Omitting the first index is similar to zero. Omitting the last index is
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
272 similar to -1. >
90
9d4f762cc1d9 updated for version 7.0036
vimboss
parents: 87
diff changeset
273 :let endlist = mylist[2:] " from item 2 to the end: [3, "four"]
9d4f762cc1d9 updated for version 7.0036
vimboss
parents: 87
diff changeset
274 :let shortlist = mylist[2:2] " List with one item: [3]
9d4f762cc1d9 updated for version 7.0036
vimboss
parents: 87
diff changeset
275 :let otherlist = mylist[:] " make a copy of the List
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
276
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
277 If the first index is beyond the last item of the List or the second item is
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
278 before the first item, the result is an empty list. There is no error
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
279 message.
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
280
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
281 If the second index is equal to or greater than the length of the list the
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
282 length minus one is used: >
829
dc8197342755 updated for version 7.0d04
vimboss
parents: 825
diff changeset
283 :let mylist = [0, 1, 2, 3]
dc8197342755 updated for version 7.0d04
vimboss
parents: 825
diff changeset
284 :echo mylist[2:8] " result: [2, 3]
dc8197342755 updated for version 7.0d04
vimboss
parents: 825
diff changeset
285
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
286 NOTE: mylist[s:e] means using the variable "s:e" as index. Watch out for
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
287 using a single letter variable before the ":". Insert a space when needed:
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
288 mylist[s : e].
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
289
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
290
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
291 List identity ~
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
292 *list-identity*
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
293 When variable "aa" is a list and you assign it to another variable "bb", both
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
294 variables refer to the same list. Thus changing the list "aa" will also
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
295 change "bb": >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
296 :let aa = [1, 2, 3]
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
297 :let bb = aa
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
298 :call add(aa, 4)
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
299 :echo bb
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
300 < [1, 2, 3, 4]
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
301
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
302 Making a copy of a list is done with the |copy()| function. Using [:] also
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
303 works, as explained above. This creates a shallow copy of the list: Changing
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
304 a list item in the list will also change the item in the copied list: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
305 :let aa = [[1, 'a'], 2, 3]
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
306 :let bb = copy(aa)
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
307 :call add(aa, 4)
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
308 :let aa[0][1] = 'aaa'
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
309 :echo aa
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
310 < [[1, aaa], 2, 3, 4] >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
311 :echo bb
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
312 < [[1, aaa], 2, 3]
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
313
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
314 To make a completely independent list use |deepcopy()|. This also makes a
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
315 copy of the values in the list, recursively. Up to a hundred levels deep.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
316
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
317 The operator "is" can be used to check if two variables refer to the same
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
318 List. "isnot" does the opposite. In contrast "==" compares if two lists have
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
319 the same value. >
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
320 :let alist = [1, 2, 3]
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
321 :let blist = [1, 2, 3]
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
322 :echo alist is blist
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
323 < 0 >
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
324 :echo alist == blist
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
325 < 1
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
326
323
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
327 Note about comparing lists: Two lists are considered equal if they have the
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
328 same length and all items compare equal, as with using "==". There is one
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
329 exception: When comparing a number with a string they are considered
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
330 different. There is no automatic type conversion, as with using "==" on
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
331 variables. Example: >
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
332 echo 4 == "4"
323
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
333 < 1 >
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
334 echo [4] == ["4"]
323
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
335 < 0
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
336
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
337 Thus comparing Lists is more strict than comparing numbers and strings. You
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
338 can compare simple values this way too by putting them in a list: >
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
339
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
340 :let a = 5
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
341 :let b = "5"
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
342 :echo a == b
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
343 < 1 >
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
344 :echo [a] == [b]
388
f92bb1845823 updated for version 7.0101
vimboss
parents: 375
diff changeset
345 < 0
323
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
346
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
347
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
348 List unpack ~
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
349
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
350 To unpack the items in a list to individual variables, put the variables in
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
351 square brackets, like list items: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
352 :let [var1, var2] = mylist
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
353
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
354 When the number of variables does not match the number of items in the list
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
355 this produces an error. To handle any extra items from the list append ";"
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
356 and a variable name: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
357 :let [var1, var2; rest] = mylist
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
358
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
359 This works like: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
360 :let var1 = mylist[0]
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
361 :let var2 = mylist[1]
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
362 :let rest = mylist[2:]
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
363
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
364 Except that there is no error if there are only two items. "rest" will be an
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
365 empty list then.
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
366
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
367
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
368 List modification ~
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
369 *list-modification*
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
370 To change a specific item of a list use |:let| this way: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
371 :let list[4] = "four"
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
372 :let listlist[0][3] = item
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
373
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
374 To change part of a list you can specify the first and last item to be
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
375 modified. The value must at least have the number of items in the range: >
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
376 :let list[3:5] = [3, 4, 5]
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
377
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
378 Adding and removing items from a list is done with functions. Here are a few
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
379 examples: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
380 :call insert(list, 'a') " prepend item 'a'
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
381 :call insert(list, 'a', 3) " insert item 'a' before list[3]
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
382 :call add(list, "new") " append String item
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
383 :call add(list, [1, 2]) " append a List as one new item
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
384 :call extend(list, [1, 2]) " extend the list with two more items
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
385 :let i = remove(list, 3) " remove item 3
108
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
386 :unlet list[3] " idem
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
387 :let l = remove(list, 3, -1) " remove items 3 to last item
108
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
388 :unlet list[3 : ] " idem
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
389 :call filter(list, 'v:val !~ "x"') " remove items with an 'x'
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
390
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
391 Changing the order of items in a list: >
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
392 :call sort(list) " sort a list alphabetically
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
393 :call reverse(list) " reverse the order of items
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
394 :call uniq(sort(list)) " sort and remove duplicates
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
395
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
396
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
397 For loop ~
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
398
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
399 The |:for| loop executes commands for each item in a list. A variable is set
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
400 to each item in the list in sequence. Example: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
401 :for item in mylist
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
402 : call Doit(item)
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
403 :endfor
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
404
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
405 This works like: >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
406 :let index = 0
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
407 :while index < len(mylist)
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
408 : let item = mylist[index]
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
409 : :call Doit(item)
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
410 : let index = index + 1
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
411 :endwhile
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
412
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
413 If all you want to do is modify each item in the list then the |map()|
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
414 function will be a simpler method than a for loop.
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
415
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
416 Just like the |:let| command, |:for| also accepts a list of variables. This
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
417 requires the argument to be a list of lists. >
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
418 :for [lnum, col] in [[1, 3], [2, 8], [3, 0]]
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
419 : call Doit(lnum, col)
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
420 :endfor
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
421
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
422 This works like a |:let| command is done for each list item. Again, the types
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
423 must remain the same to avoid an error.
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
424
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
425 It is also possible to put remaining items in a List variable: >
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
426 :for [i, j; rest] in listlist
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
427 : call Doit(i, j)
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
428 : if !empty(rest)
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
429 : echo "remainder: " . string(rest)
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
430 : endif
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
431 :endfor
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
432
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
433
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
434 List functions ~
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
435 *E714*
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
436 Functions that are useful with a List: >
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
437 :let r = call(funcname, list) " call a function with an argument list
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
438 :if empty(list) " check if list is empty
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
439 :let l = len(list) " number of items in list
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
440 :let big = max(list) " maximum value in list
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
441 :let small = min(list) " minimum value in list
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
442 :let xs = count(list, 'x') " count nr of times 'x' appears in list
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
443 :let i = index(list, 'x') " index of first 'x' in list
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
444 :let lines = getline(1, 10) " get ten text lines from buffer
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
445 :call append('$', lines) " append text lines in buffer
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
446 :let list = split("a b c") " create list from items in a string
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
447 :let string = join(list, ', ') " create string from list items
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
448 :let s = string(list) " String representation of list
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
449 :call map(list, '">> " . v:val') " prepend ">> " to each item
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
450
258
f93df7322443 updated for version 7.0070
vimboss
parents: 236
diff changeset
451 Don't forget that a combination of features can make things simple. For
f93df7322443 updated for version 7.0070
vimboss
parents: 236
diff changeset
452 example, to add up all the numbers in a list: >
f93df7322443 updated for version 7.0070
vimboss
parents: 236
diff changeset
453 :exe 'let sum = ' . join(nrlist, '+')
f93df7322443 updated for version 7.0070
vimboss
parents: 236
diff changeset
454
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
455
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
456 1.4 Dictionaries ~
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
457 *dict* *Dictionaries* *Dictionary*
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
458 A Dictionary is an associative array: Each entry has a key and a value. The
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
459 entry can be located with the key. The entries are stored without a specific
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
460 ordering.
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
461
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
462
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
463 Dictionary creation ~
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
464 *E720* *E721* *E722* *E723*
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
465 A Dictionary is created with a comma separated list of entries in curly
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
466 braces. Each entry has a key and a value, separated by a colon. Each key can
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
467 only appear once. Examples: >
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
468 :let mydict = {1: 'one', 2: 'two', 3: 'three'}
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
469 :let emptydict = {}
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
470 < *E713* *E716* *E717*
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
471 A key is always a String. You can use a Number, it will be converted to a
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
472 String automatically. Thus the String '4' and the number 4 will find the same
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
473 entry. Note that the String '04' and the Number 04 are different, since the
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
474 Number will be converted to the String '4'. The empty string can be used as a
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
475 key.
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
476
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
477 A value can be any expression. Using a Dictionary for a value creates a
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
478 nested Dictionary: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
479 :let nestdict = {1: {11: 'a', 12: 'b'}, 2: {21: 'c'}}
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
480
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
481 An extra comma after the last entry is ignored.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
482
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
483
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
484 Accessing entries ~
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
485
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
486 The normal way to access an entry is by putting the key in square brackets: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
487 :let val = mydict["one"]
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
488 :let mydict["four"] = 4
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
489
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
490 You can add new entries to an existing Dictionary this way, unlike Lists.
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
491
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
492 For keys that consist entirely of letters, digits and underscore the following
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
493 form can be used |expr-entry|: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
494 :let val = mydict.one
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
495 :let mydict.four = 4
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
496
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
497 Since an entry can be any type, also a List and a Dictionary, the indexing and
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
498 key lookup can be repeated: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
499 :echo dict.key[idx].key
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
500
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
501
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
502 Dictionary to List conversion ~
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
503
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
504 You may want to loop over the entries in a dictionary. For this you need to
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
505 turn the Dictionary into a List and pass it to |:for|.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
506
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
507 Most often you want to loop over the keys, using the |keys()| function: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
508 :for key in keys(mydict)
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
509 : echo key . ': ' . mydict[key]
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
510 :endfor
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
511
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
512 The List of keys is unsorted. You may want to sort them first: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
513 :for key in sort(keys(mydict))
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
514
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
515 To loop over the values use the |values()| function: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
516 :for v in values(mydict)
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
517 : echo "value: " . v
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
518 :endfor
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
519
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
520 If you want both the key and the value use the |items()| function. It returns
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
521 a List in which each item is a List with two items, the key and the value: >
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
522 :for [key, value] in items(mydict)
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
523 : echo key . ': ' . value
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
524 :endfor
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
525
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
526
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
527 Dictionary identity ~
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
528 *dict-identity*
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
529 Just like Lists you need to use |copy()| and |deepcopy()| to make a copy of a
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
530 Dictionary. Otherwise, assignment results in referring to the same
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
531 Dictionary: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
532 :let onedict = {'a': 1, 'b': 2}
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
533 :let adict = onedict
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
534 :let adict['a'] = 11
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
535 :echo onedict['a']
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
536 11
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
537
327
8f38b35904c0 updated for version 7.0085
vimboss
parents: 323
diff changeset
538 Two Dictionaries compare equal if all the key-value pairs compare equal. For
8f38b35904c0 updated for version 7.0085
vimboss
parents: 323
diff changeset
539 more info see |list-identity|.
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
540
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
541
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
542 Dictionary modification ~
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
543 *dict-modification*
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
544 To change an already existing entry of a Dictionary, or to add a new entry,
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
545 use |:let| this way: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
546 :let dict[4] = "four"
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
547 :let dict['one'] = item
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
548
108
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
549 Removing an entry from a Dictionary is done with |remove()| or |:unlet|.
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
550 Three ways to remove the entry with key "aaa" from dict: >
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
551 :let i = remove(dict, 'aaa')
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
552 :unlet dict.aaa
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
553 :unlet dict['aaa']
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
554
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
555 Merging a Dictionary with another is done with |extend()|: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
556 :call extend(adict, bdict)
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
557 This extends adict with all entries from bdict. Duplicate keys cause entries
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
558 in adict to be overwritten. An optional third argument can change this.
119
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
559 Note that the order of entries in a Dictionary is irrelevant, thus don't
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
560 expect ":echo adict" to show the items from bdict after the older entries in
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
561 adict.
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
562
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
563 Weeding out entries from a Dictionary can be done with |filter()|: >
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
564 :call filter(dict, 'v:val =~ "x"')
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
565 This removes all entries from "dict" with a value not matching 'x'.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
566
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
567
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
568 Dictionary function ~
4159
8b86b69546a9 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4157
diff changeset
569 *Dictionary-function* *self* *E725* *E862*
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
570 When a function is defined with the "dict" attribute it can be used in a
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
571 special way with a dictionary. Example: >
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
572 :function Mylen() dict
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
573 : return len(self.data)
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
574 :endfunction
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
575 :let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
576 :echo mydict.len()
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
577
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
578 This is like a method in object oriented programming. The entry in the
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
579 Dictionary is a |Funcref|. The local variable "self" refers to the dictionary
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
580 the function was invoked from.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
581
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
582 It is also possible to add a function without the "dict" attribute as a
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
583 Funcref to a Dictionary, but the "self" variable is not available then.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
584
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
585 *numbered-function* *anonymous-function*
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
586 To avoid the extra name for the function it can be defined and directly
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
587 assigned to a Dictionary in this way: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
588 :let mydict = {'data': [0, 1, 2, 3]}
6741
fbc1131f0ba5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6697
diff changeset
589 :function mydict.len()
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
590 : return len(self.data)
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
591 :endfunction
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
592 :echo mydict.len()
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
593
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
594 The function will then get a number and the value of dict.len is a |Funcref|
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
595 that references this function. The function can only be used through a
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
596 |Funcref|. It will automatically be deleted when there is no |Funcref|
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
597 remaining that refers to it.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
598
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
599 It is not necessary to use the "dict" attribute for a numbered function.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
600
2488
def0e3934129 Preparations for 7.3d release.
Bram Moolenaar <bram@vim.org>
parents: 2465
diff changeset
601 If you get an error for a numbered function, you can find out what it is with
def0e3934129 Preparations for 7.3d release.
Bram Moolenaar <bram@vim.org>
parents: 2465
diff changeset
602 a trick. Assuming the function is 42, the command is: >
def0e3934129 Preparations for 7.3d release.
Bram Moolenaar <bram@vim.org>
parents: 2465
diff changeset
603 :function {42}
def0e3934129 Preparations for 7.3d release.
Bram Moolenaar <bram@vim.org>
parents: 2465
diff changeset
604
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
605
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
606 Functions for Dictionaries ~
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
607 *E715*
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
608 Functions that can be used with a Dictionary: >
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
609 :if has_key(dict, 'foo') " TRUE if dict has entry with key "foo"
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
610 :if empty(dict) " TRUE if dict is empty
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
611 :let l = len(dict) " number of items in dict
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
612 :let big = max(dict) " maximum value in dict
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
613 :let small = min(dict) " minimum value in dict
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
614 :let xs = count(dict, 'x') " count nr of times 'x' appears in dict
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
615 :let s = string(dict) " String representation of dict
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
616 :call map(dict, '">> " . v:val') " prepend ">> " to each item
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
617
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
618
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
619 1.5 More about variables ~
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
620 *more-variables*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
621 If you need to know the type of a variable or expression, use the |type()|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
622 function.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
623
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
624 When the '!' flag is included in the 'viminfo' option, global variables that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
625 start with an uppercase letter, and don't contain a lowercase letter, are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
626 stored in the viminfo file |viminfo-file|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
627
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
628 When the 'sessionoptions' option contains "global", global variables that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
629 start with an uppercase letter and contain at least one lowercase letter are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
630 stored in the session file |session-file|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
631
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
632 variable name can be stored where ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
633 my_var_6 not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
634 My_Var_6 session file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
635 MY_VAR_6 viminfo file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
636
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
637
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
638 It's possible to form a variable name with curly braces, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
639 |curly-braces-names|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
640
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
641 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
642 2. Expression syntax *expression-syntax*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
643
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
644 Expression syntax summary, from least to most significant:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
645
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
646 |expr1| expr2
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
647 expr2 ? expr1 : expr1 if-then-else
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
648
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
649 |expr2| expr3
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
650 expr3 || expr3 .. logical OR
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
651
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
652 |expr3| expr4
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
653 expr4 && expr4 .. logical AND
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
654
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
655 |expr4| expr5
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
656 expr5 == expr5 equal
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
657 expr5 != expr5 not equal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
658 expr5 > expr5 greater than
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
659 expr5 >= expr5 greater than or equal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
660 expr5 < expr5 smaller than
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
661 expr5 <= expr5 smaller than or equal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
662 expr5 =~ expr5 regexp matches
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
663 expr5 !~ expr5 regexp doesn't match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
664
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
665 expr5 ==? expr5 equal, ignoring case
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
666 expr5 ==# expr5 equal, match case
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
667 etc. As above, append ? for ignoring case, # for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
668 matching case
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
669
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
670 expr5 is expr5 same |List| instance
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
671 expr5 isnot expr5 different |List| instance
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
672
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
673 |expr5| expr6
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
674 expr6 + expr6 .. number addition or list concatenation
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
675 expr6 - expr6 .. number subtraction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
676 expr6 . expr6 .. string concatenation
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
677
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
678 |expr6| expr7
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
679 expr7 * expr7 .. number multiplication
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
680 expr7 / expr7 .. number division
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
681 expr7 % expr7 .. number modulo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
682
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
683 |expr7| expr8
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
684 ! expr7 logical NOT
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
685 - expr7 unary minus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
686 + expr7 unary plus
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
687
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
688 |expr8| expr9
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 10038
diff changeset
689 expr8[expr1] byte of a String or item of a |List|
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
690 expr8[expr1 : expr1] substring of a String or sublist of a |List|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
691 expr8.name entry in a |Dictionary|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
692 expr8(expr1, ...) function call with |Funcref| variable
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
693
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
694 |expr9| number number constant
26
404aac550f35 updated for version 7.0017
vimboss
parents: 24
diff changeset
695 "string" string constant, backslash is special
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
696 'string' string constant, ' is doubled
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
697 [expr1, ...] |List|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
698 {expr1: expr1, ...} |Dictionary|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
699 &option option value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
700 (expr1) nested expression
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
701 variable internal variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
702 va{ria}ble internal variable with curly braces
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
703 $VAR environment variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
704 @r contents of register 'r'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
705 function(expr1, ...) function call
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
706 func{ti}on(expr1, ...) function call with curly braces
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
707 {args -> expr1} lambda expression
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
708
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
709
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
710 ".." indicates that the operations in this level can be concatenated.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
711 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
712 &nu || &list && &shell == "csh"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
713
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
714 All expressions within one level are parsed from left to right.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
715
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
716
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
717 expr1 *expr1* *E109*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
718 -----
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
719
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
720 expr2 ? expr1 : expr1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
721
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
722 The expression before the '?' is evaluated to a number. If it evaluates to
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
723 |TRUE|, the result is the value of the expression between the '?' and ':',
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
724 otherwise the result is the value of the expression after the ':'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
725 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
726 :echo lnum == 1 ? "top" : lnum
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
727
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
728 Since the first expression is an "expr2", it cannot contain another ?:. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
729 other two expressions can, thus allow for recursive use of ?:.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
730 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
731 :echo lnum == 1 ? "top" : lnum == 1000 ? "last" : lnum
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
732
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
733 To keep this readable, using |line-continuation| is suggested: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
734 :echo lnum == 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
735 :\ ? "top"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
736 :\ : lnum == 1000
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
737 :\ ? "last"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
738 :\ : lnum
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
739
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
740 You should always put a space before the ':', otherwise it can be mistaken for
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
741 use in a variable such as "a:1".
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
742
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
743
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
744 expr2 and expr3 *expr2* *expr3*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
745 ---------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
746
10038
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
747 expr3 || expr3 .. logical OR *expr-barbar*
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
748 expr4 && expr4 .. logical AND *expr-&&*
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
749
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
750 The "||" and "&&" operators take one argument on each side. The arguments
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
751 are (converted to) Numbers. The result is:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
752
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
753 input output ~
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
754 n1 n2 n1 || n2 n1 && n2 ~
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
755 |FALSE| |FALSE| |FALSE| |FALSE|
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
756 |FALSE| |TRUE| |TRUE| |FALSE|
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
757 |TRUE| |FALSE| |TRUE| |FALSE|
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
758 |TRUE| |TRUE| |TRUE| |TRUE|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
759
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
760 The operators can be concatenated, for example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
761
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
762 &nu || &list && &shell == "csh"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
763
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
764 Note that "&&" takes precedence over "||", so this has the meaning of: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
765
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
766 &nu || (&list && &shell == "csh")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
767
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
768 Once the result is known, the expression "short-circuits", that is, further
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
769 arguments are not evaluated. This is like what happens in C. For example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
770
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
771 let a = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
772 echo a || b
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
773
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
774 This is valid even if there is no variable called "b" because "a" is |TRUE|,
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
775 so the result must be |TRUE|. Similarly below: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
776
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
777 echo exists("b") && b == "yes"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
778
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
779 This is valid whether "b" has been defined or not. The second clause will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
780 only be evaluated if "b" has been defined.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
781
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
782
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
783 expr4 *expr4*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
784 -----
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
785
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
786 expr5 {cmp} expr5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
787
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
788 Compare two expr5 expressions, resulting in a 0 if it evaluates to false, or 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
789 if it evaluates to true.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
790
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
791 *expr-==* *expr-!=* *expr->* *expr->=*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
792 *expr-<* *expr-<=* *expr-=~* *expr-!~*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
793 *expr-==#* *expr-!=#* *expr->#* *expr->=#*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
794 *expr-<#* *expr-<=#* *expr-=~#* *expr-!~#*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
795 *expr-==?* *expr-!=?* *expr->?* *expr->=?*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
796 *expr-<?* *expr-<=?* *expr-=~?* *expr-!~?*
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
797 *expr-is* *expr-isnot* *expr-is#* *expr-isnot#*
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
798 *expr-is?* *expr-isnot?*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
799 use 'ignorecase' match case ignore case ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
800 equal == ==# ==?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
801 not equal != !=# !=?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
802 greater than > ># >?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
803 greater than or equal >= >=# >=?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
804 smaller than < <# <?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
805 smaller than or equal <= <=# <=?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
806 regexp matches =~ =~# =~?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
807 regexp doesn't match !~ !~# !~?
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
808 same instance is is# is?
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
809 different instance isnot isnot# isnot?
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
810
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
811 Examples:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
812 "abc" ==# "Abc" evaluates to 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
813 "abc" ==? "Abc" evaluates to 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
814 "abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
815
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
816 *E691* *E692*
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
817 A |List| can only be compared with a |List| and only "equal", "not equal",
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
818 "is" and "isnot" can be used. This compares the values of the list,
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
819 recursively. Ignoring case means case is ignored when comparing item values.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
820
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
821 *E735* *E736*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
822 A |Dictionary| can only be compared with a |Dictionary| and only "equal", "not
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
823 equal", "is" and "isnot" can be used. This compares the key/values of the
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
824 |Dictionary| recursively. Ignoring case means case is ignored when comparing
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
825 item values.
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
826
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
827 *E694*
9407
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
828 A |Funcref| can only be compared with a |Funcref| and only "equal", "not
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
829 equal", "is" and "isnot" can be used. Case is never ignored. Whether
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
830 arguments or a Dictionary are bound (with a partial) matters. The
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
831 Dictionaries must also be equal (or the same, in case of "is") and the
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
832 arguments must be equal (or the same).
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
833
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
834 To compare Funcrefs to see if they refer to the same function, ignoring bound
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
835 Dictionary and arguments, use |get()| to get the function name: >
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
836 if get(Part1, 'name') == get(Part2, 'name')
619a98a67f67 commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents: 9389
diff changeset
837 " Part1 and Part2 refer to the same function
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
838
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
839 When using "is" or "isnot" with a |List| or a |Dictionary| this checks if the
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
840 expressions are referring to the same |List| or |Dictionary| instance. A copy
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
841 of a |List| is different from the original |List|. When using "is" without
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
842 a |List| or a |Dictionary| it is equivalent to using "equal", using "isnot"
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
843 equivalent to using "not equal". Except that a different type means the
8534
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
844 values are different: >
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
845 echo 4 == '4'
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
846 1
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
847 echo 4 is '4'
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
848 0
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
849 echo 0 is []
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
850 0
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
851 "is#"/"isnot#" and "is?"/"isnot?" can be used to match and ignore case.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
852
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
853 When comparing a String with a Number, the String is converted to a Number,
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
854 and the comparison is done on Numbers. This means that: >
8534
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
855 echo 0 == 'x'
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
856 1
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
857 because 'x' converted to a Number is zero. However: >
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
858 echo [0] == ['x']
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
859 0
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
860 Inside a List or Dictionary this conversion is not used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
861
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
862 When comparing two Strings, this is done with strcmp() or stricmp(). This
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
863 results in the mathematical difference (comparing byte values), not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
864 necessarily the alphabetical difference in the local language.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
865
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
866 When using the operators with a trailing '#', or the short version and
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
867 'ignorecase' is off, the comparing is done with strcmp(): case matters.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
868
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
869 When using the operators with a trailing '?', or the short version and
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
870 'ignorecase' is set, the comparing is done with stricmp(): case is ignored.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
871
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
872 'smartcase' is not used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
873
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
874 The "=~" and "!~" operators match the lefthand argument with the righthand
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
875 argument, which is used as a pattern. See |pattern| for what a pattern is.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
876 This matching is always done like 'magic' was set and 'cpoptions' is empty, no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
877 matter what the actual value of 'magic' or 'cpoptions' is. This makes scripts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
878 portable. To avoid backslashes in the regexp pattern to be doubled, use a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
879 single-quote string, see |literal-string|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
880 Since a string is considered to be a single line, a multi-line pattern
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
881 (containing \n, backslash-n) will not match. However, a literal NL character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
882 can be matched like an ordinary character. Examples:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
883 "foo\nbar" =~ "\n" evaluates to 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
884 "foo\nbar" =~ "\\n" evaluates to 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
885
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
886
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
887 expr5 and expr6 *expr5* *expr6*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
888 ---------------
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
889 expr6 + expr6 .. Number addition or |List| concatenation *expr-+*
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
890 expr6 - expr6 .. Number subtraction *expr--*
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
891 expr6 . expr6 .. String concatenation *expr-.*
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
892
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
893 For |Lists| only "+" is possible and then both expr6 must be a list. The
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
894 result is a new list with the two lists Concatenated.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
895
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
896 expr7 * expr7 .. Number multiplication *expr-star*
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
897 expr7 / expr7 .. Number division *expr-/*
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
898 expr7 % expr7 .. Number modulo *expr-%*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
899
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
900 For all, except ".", Strings are converted to Numbers.
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
901 For bitwise operators see |and()|, |or()| and |xor()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
902
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
903 Note the difference between "+" and ".":
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
904 "123" + "456" = 579
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
905 "123" . "456" = "123456"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
906
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
907 Since '.' has the same precedence as '+' and '-', you need to read: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
908 1 . 90 + 90.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
909 As: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
910 (1 . 90) + 90.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
911 That works, since the String "190" is automatically converted to the Number
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
912 190, which can be added to the Float 90.0. However: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
913 1 . 90 * 90.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
914 Should be read as: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
915 1 . (90 * 90.0)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
916 Since '.' has lower precedence than '*'. This does NOT work, since this
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
917 attempts to concatenate a Float and a String.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
918
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
919 When dividing a Number by zero the result depends on the value:
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
920 0 / 0 = -0x80000000 (like NaN for Float)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
921 >0 / 0 = 0x7fffffff (like positive infinity)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
922 <0 / 0 = -0x7fffffff (like negative infinity)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
923 (before Vim 7.2 it was always 0x7fffffff)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
924
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
925 When 64-bit Number support is enabled:
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
926 0 / 0 = -0x8000000000000000 (like NaN for Float)
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
927 >0 / 0 = 0x7fffffffffffffff (like positive infinity)
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
928 <0 / 0 = -0x7fffffffffffffff (like negative infinity)
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
929
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
930 When the righthand side of '%' is zero, the result is 0.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
931
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
932 None of these work for |Funcref|s.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
933
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
934 . and % do not work for Float. *E804*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
935
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
936
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
937 expr7 *expr7*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
938 -----
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
939 ! expr7 logical NOT *expr-!*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
940 - expr7 unary minus *expr-unary--*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
941 + expr7 unary plus *expr-unary-+*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
942
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
943 For '!' |TRUE| becomes |FALSE|, |FALSE| becomes |TRUE| (one).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
944 For '-' the sign of the number is changed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
945 For '+' the number is unchanged.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
946
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
947 A String will be converted to a Number first.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
948
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
949 These three can be repeated and mixed. Examples:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
950 !-1 == 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
951 !!8 == 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
952 --9 == 9
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
953
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
954
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
955 expr8 *expr8*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
956 -----
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
957 expr8[expr1] item of String or |List| *expr-[]* *E111*
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
958 *E909* *subscript*
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
959 If expr8 is a Number or String this results in a String that contains the
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
960 expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
961 Number. This doesn't recognize multi-byte encodings, see `byteidx()` for
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
962 an alternative, or use `split()` to turn the string into a list of characters.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
963
7384
aea5ebf352c4 commit https://github.com/vim/vim/commit/256972a9849b5d575b62a6a71be5b6934b5b0e8b
Christian Brabandt <cb@256bit.org>
parents: 7358
diff changeset
964 Index zero gives the first byte. This is like it works in C. Careful:
aea5ebf352c4 commit https://github.com/vim/vim/commit/256972a9849b5d575b62a6a71be5b6934b5b0e8b
Christian Brabandt <cb@256bit.org>
parents: 7358
diff changeset
965 text column numbers start with one! Example, to get the byte under the
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
966 cursor: >
823
9ab23f1e137f updated for version 7.0c12
vimboss
parents: 819
diff changeset
967 :let c = getline(".")[col(".") - 1]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
968
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
969 If the length of the String is less than the index, the result is an empty
7659
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
970 String. A negative index always results in an empty string (reason: backward
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
971 compatibility). Use [-1:] to get the last byte.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
972
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
973 If expr8 is a |List| then it results the item at index expr1. See |list-index|
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
974 for possible index values. If the index is out of range this results in an
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
975 error. Example: >
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
976 :let item = mylist[-1] " get last item
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
977
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
978 Generally, if a |List| index is equal to or higher than the length of the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
979 |List|, or more negative than the length of the |List|, this results in an
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
980 error.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
981
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
982
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
983 expr8[expr1a : expr1b] substring or sublist *expr-[:]*
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
984
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
985 If expr8 is a Number or String this results in the substring with the bytes
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
986 from expr1a to and including expr1b. expr8 is used as a String, expr1a and
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
987 expr1b are used as a Number. This doesn't recognize multi-byte encodings, see
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
988 |byteidx()| for computing the indexes.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
989
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
990 If expr1a is omitted zero is used. If expr1b is omitted the length of the
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
991 string minus one is used.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
992
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
993 A negative number can be used to measure from the end of the string. -1 is
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
994 the last character, -2 the last but one, etc.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
995
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
996 If an index goes out of range for the string characters are omitted. If
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
997 expr1b is smaller than expr1a the result is an empty string.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
998
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
999 Examples: >
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1000 :let c = name[-1:] " last byte of a string
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1001 :let c = name[-2:-2] " last but one byte of a string
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1002 :let s = line(".")[4:] " from the fifth byte to the end
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1003 :let s = s[:-3] " remove last two bytes
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
1004 <
9737
35ce559b8553 commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents: 9723
diff changeset
1005 *slice*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1006 If expr8 is a |List| this results in a new |List| with the items indicated by
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1007 the indexes expr1a and expr1b. This works like with a String, as explained
9737
35ce559b8553 commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents: 9723
diff changeset
1008 just above. Also see |sublist| below. Examples: >
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1009 :let l = mylist[:3] " first four items
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1010 :let l = mylist[4:4] " List with one item
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1011 :let l = mylist[:] " shallow copy of a List
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
1012
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1013 Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1014 error.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1015
7615
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
1016 Watch out for confusion between a namespace and a variable followed by a colon
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
1017 for a sublist: >
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
1018 mylist[n:] " uses variable n
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
1019 mylist[s:] " uses namespace s:, error!
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
1020
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1021
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1022 expr8.name entry in a |Dictionary| *expr-entry*
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1023
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1024 If expr8 is a |Dictionary| and it is followed by a dot, then the following
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1025 name will be used as a key in the |Dictionary|. This is just like:
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1026 expr8[name].
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1027
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1028 The name must consist of alphanumeric characters, just like a variable name,
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1029 but it may start with a number. Curly braces cannot be used.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1030
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1031 There must not be white space before or after the dot.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1032
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1033 Examples: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1034 :let dict = {"one": 1, 2: "two"}
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1035 :echo dict.one
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1036 :echo dict .2
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1037
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1038 Note that the dot is also used for String concatenation. To avoid confusion
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1039 always put spaces around the dot for String concatenation.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1040
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1041
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1042 expr8(expr1, ...) |Funcref| function call
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1043
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1044 When expr8 is a |Funcref| type variable, invoke the function it refers to.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1045
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1046
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1047
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1048 *expr9*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1049 number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1050 ------
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
1051 number number constant *expr-number*
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1052 *hex-number* *octal-number* *binary-number*
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1053
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1054 Decimal, Hexadecimal (starting with 0x or 0X), Binary (starting with 0b or 0B)
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1055 and Octal (starting with 0).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1056
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1057 *floating-point-format*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1058 Floating point numbers can be written in two forms:
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1059
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1060 [-+]{N}.{M}
6530
435956324539 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6447
diff changeset
1061 [-+]{N}.{M}[eE][-+]{exp}
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1062
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1063 {N} and {M} are numbers. Both {N} and {M} must be present and can only
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1064 contain digits.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1065 [-+] means there is an optional plus or minus sign.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1066 {exp} is the exponent, power of 10.
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1067 Only a decimal point is accepted, not a comma. No matter what the current
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1068 locale is.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1069 {only when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1070
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1071 Examples:
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1072 123.456
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1073 +0.0001
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1074 55.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1075 -0.123
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1076 1.234e03
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1077 1.0E-6
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1078 -3.1416e+88
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1079
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1080 These are INVALID:
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1081 3. empty {M}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1082 1e40 missing .{M}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1083
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
1084 *float-pi* *float-e*
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
1085 A few useful values to copy&paste: >
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
1086 :let pi = 3.14159265359
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
1087 :let e = 2.71828182846
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
1088
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1089 Rationale:
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1090 Before floating point was introduced, the text "123.456" was interpreted as
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1091 the two numbers "123" and "456", both converted to a string and concatenated,
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1092 resulting in the string "123456". Since this was considered pointless, and we
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
1093 could not find it intentionally being used in Vim scripts, this backwards
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1094 incompatibility was accepted in favor of being able to use the normal notation
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1095 for floating point numbers.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1096
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1097 *floating-point-precision*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1098 The precision and range of floating points numbers depends on what "double"
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1099 means in the library Vim was compiled with. There is no way to change this at
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1100 runtime.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1101
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1102 The default for displaying a |Float| is to use 6 decimal places, like using
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1103 printf("%g", f). You can select something else when using the |printf()|
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1104 function. Example: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1105 :echo printf('%.15e', atan(1))
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1106 < 7.853981633974483e-01
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1107
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1108
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1109
6884
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
1110 string *string* *String* *expr-string* *E114*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1111 ------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1112 "string" string constant *expr-quote*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1113
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1114 Note that double quotes are used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1115
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1116 A string constant accepts these special characters:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1117 \... three-digit octal number (e.g., "\316")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1118 \.. two-digit octal number (must be followed by non-digit)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1119 \. one-digit octal number (must be followed by non-digit)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1120 \x.. byte specified with two hex numbers (e.g., "\x1f")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1121 \x. byte specified with one hex number (must be followed by non-hex char)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1122 \X.. same as \x..
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1123 \X. same as \x.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1124 \u.... character specified with up to 4 hex numbers, stored according to the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1125 current value of 'encoding' (e.g., "\u02a4")
6840
37828f7503c7 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6823
diff changeset
1126 \U.... same as \u but allows up to 8 hex numbers.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1127 \b backspace <BS>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1128 \e escape <Esc>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1129 \f formfeed <FF>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1130 \n newline <NL>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1131 \r return <CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1132 \t tab <Tab>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1133 \\ backslash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1134 \" double quote
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
1135 \<xxx> Special key named "xxx". e.g. "\<C-W>" for CTRL-W. This is for use
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1136 in mappings, the 0x80 byte is escaped.
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1137 To use the double quote character it must be escaped: "<M-\">".
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1138 Don't use <Char-xxxx> to get a utf-8 character, use \uxxxx as
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1139 mentioned above.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1140
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1141 Note that "\xff" is stored as the byte 255, which may be invalid in some
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1142 encodings. Use "\u00ff" to store character 255 according to the current value
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1143 of 'encoding'.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1144
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1145 Note that "\000" and "\x00" force the end of the string.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1147
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1148 literal-string *literal-string* *E115*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1149 ---------------
26
404aac550f35 updated for version 7.0017
vimboss
parents: 24
diff changeset
1150 'string' string constant *expr-'*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1151
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1152 Note that single quotes are used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1153
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1154 This string is taken as it is. No backslashes are removed or have a special
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
1155 meaning. The only exception is that two quotes stand for one quote.
26
404aac550f35 updated for version 7.0017
vimboss
parents: 24
diff changeset
1156
404aac550f35 updated for version 7.0017
vimboss
parents: 24
diff changeset
1157 Single quoted strings are useful for patterns, so that backslashes do not need
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1158 to be doubled. These two commands are equivalent: >
26
404aac550f35 updated for version 7.0017
vimboss
parents: 24
diff changeset
1159 if a =~ "\\s*"
404aac550f35 updated for version 7.0017
vimboss
parents: 24
diff changeset
1160 if a =~ '\s*'
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1161
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1162
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1163 option *expr-option* *E112* *E113*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1164 ------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1165 &option option value, local value if possible
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1166 &g:option global option value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1167 &l:option local option value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1168
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1169 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1170 echo "tabstop is " . &tabstop
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1171 if &insertmode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1172
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1173 Any option name can be used here. See |options|. When using the local value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1174 and there is no buffer-local or window-local value, the global value is used
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1175 anyway.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1176
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1177
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1178 register *expr-register* *@r*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1179 --------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1180 @r contents of register 'r'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1181
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1182 The result is the contents of the named register, as a single string.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1183 Newlines are inserted where required. To get the contents of the unnamed
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1184 register use @" or @@. See |registers| for an explanation of the available
336
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
1185 registers.
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
1186
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
1187 When using the '=' register you get the expression itself, not what it
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
1188 evaluates to. Use |eval()| to evaluate it.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1189
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1190
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1191 nesting *expr-nesting* *E110*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1192 -------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1193 (expr1) nested expression
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1194
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1195
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1196 environment variable *expr-env*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1197 --------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1198 $VAR environment variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1199
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1200 The String value of any environment variable. When it is not defined, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1201 result is an empty string.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1202 *expr-env-expand*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1203 Note that there is a difference between using $VAR directly and using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1204 expand("$VAR"). Using it directly will only expand environment variables that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1205 are known inside the current Vim session. Using expand() will first try using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1206 the environment variables known inside the current Vim session. If that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1207 fails, a shell will be used to expand the variable. This can be slow, but it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1208 does expand all variables that the shell knows about. Example: >
6180
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
1209 :echo $shell
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
1210 :echo expand("$shell")
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
1211 The first one probably doesn't echo anything, the second echoes the $shell
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1212 variable (if your shell supports it).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1213
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1214
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1215 internal variable *expr-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1216 -----------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1217 variable internal variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1218 See below |internal-variables|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1219
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1220
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
1221 function call *expr-function* *E116* *E118* *E119* *E120*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1222 -------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1223 function(expr1, ...) function call
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1224 See below |functions|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1225
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1226
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1227 lambda expression *expr-lambda* *lambda*
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1228 -----------------
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1229 {args -> expr1} lambda expression
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1230
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1231 A lambda expression creates a new unnamed function which returns the result of
9555
9560a5b782ee commit https://github.com/vim/vim/commit/42ebd066422d73cdb7bda6a1dc828a3dd022dec8
Christian Brabandt <cb@256bit.org>
parents: 9536
diff changeset
1232 evaluating |expr1|. Lambda expressions differ from |user-functions| in
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1233 the following ways:
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1234
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1235 1. The body of the lambda expression is an |expr1| and not a sequence of |Ex|
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1236 commands.
9686
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1237 2. The prefix "a:" should not be used for arguments. E.g.: >
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1238 :let F = {arg1, arg2 -> arg1 - arg2}
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1239 :echo F(5, 2)
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1240 < 3
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1241
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1242 The arguments are optional. Example: >
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1243 :let F = {-> 'error function'}
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1244 :echo F()
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1245 < error function
9686
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1246 *closure*
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1247 Lambda expressions can access outer scope variables and arguments. This is
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
1248 often called a closure. Example where "i" and "a:arg" are used in a lambda
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
1249 while they exist in the function scope. They remain valid even after the
9686
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1250 function returns: >
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1251 :function Foo(arg)
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1252 : let i = 3
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1253 : return {x -> x + i - a:arg}
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1254 :endfunction
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1255 :let Bar = Foo(4)
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1256 :echo Bar(6)
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1257 < 5
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
1258
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
1259 See also |:func-closure|. Lambda and closure support can be checked with: >
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
1260 if has('lambda')
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1261
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1262 Examples for using a lambda expression with |sort()|, |map()| and |filter()|: >
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1263 :echo map([1, 2, 3], {idx, val -> val + 1})
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1264 < [2, 3, 4] >
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1265 :echo sort([3,7,2,1,4], {a, b -> a - b})
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1266 < [1, 2, 3, 4, 7]
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1267
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1268 The lambda expression is also useful for Channel, Job and timer: >
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1269 :let timer = timer_start(500,
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1270 \ {-> execute("echo 'Handler called'", "")},
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1271 \ {'repeat': 3})
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1272 < Handler called
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1273 Handler called
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1274 Handler called
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1275
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1276 Note how execute() is used to execute an Ex command. That's ugly though.
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
1277
9686
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1278
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1279 Lambda expressions have internal names like '<lambda>42'. If you get an error
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1280 for a lambda expression, you can find what it is with the following command: >
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1281 :function {'<lambda>42'}
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1282 See also: |numbered-function|
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
1283
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1284 ==============================================================================
2596
fae782ef63dd Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2581
diff changeset
1285 3. Internal variable *internal-variables* *E461*
fae782ef63dd Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2581
diff changeset
1286
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1287 An internal variable name can be made up of letters, digits and '_'. But it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1288 cannot start with a digit. It's also possible to use curly braces, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1289 |curly-braces-names|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1290
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1291 An internal variable is created with the ":let" command |:let|.
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
1292 An internal variable is explicitly destroyed with the ":unlet" command
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
1293 |:unlet|.
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
1294 Using a name that is not an internal variable or refers to a variable that has
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
1295 been destroyed results in an error.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1296
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1297 There are several name spaces for variables. Which one is to be used is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1298 specified by what is prepended:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1299
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1300 (nothing) In a function: local to a function; otherwise: global
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1301 |buffer-variable| b: Local to the current buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1302 |window-variable| w: Local to the current window.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
1303 |tabpage-variable| t: Local to the current tab page.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1304 |global-variable| g: Global.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1305 |local-variable| l: Local to a function.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1306 |script-variable| s: Local to a |:source|'ed Vim script.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1307 |function-argument| a: Function argument (only inside a function).
5815
d735e62f5925 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5814
diff changeset
1308 |vim-variable| v: Global, predefined by Vim.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1309
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1310 The scope name by itself can be used as a |Dictionary|. For example, to
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1311 delete all script-local variables: >
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
1312 :for k in keys(s:)
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
1313 : unlet s:[k]
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
1314 :endfor
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
1315 <
4358
cf1d93a3914a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4354
diff changeset
1316 *buffer-variable* *b:var* *b:*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1317 A variable name that is preceded with "b:" is local to the current buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1318 Thus you can have several "b:foo" variables, one for each buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1319 This kind of variable is deleted when the buffer is wiped out or deleted with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1320 |:bdelete|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1321
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1322 One local buffer variable is predefined:
4264
2d1383658bb4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4229
diff changeset
1323 *b:changedtick* *changetick*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1324 b:changedtick The total number of changes to the current buffer. It is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1325 incremented for each change. An undo command is also a change
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1326 in this case. This can be used to perform an action only when
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1327 the buffer has changed. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1328 :if my_changedtick != b:changedtick
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1329 : let my_changedtick = b:changedtick
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1330 : call My_Update()
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1331 :endif
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
1332 < You cannot change or delete the b:changedtick variable.
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
1333
4358
cf1d93a3914a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4354
diff changeset
1334 *window-variable* *w:var* *w:*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1335 A variable name that is preceded with "w:" is local to the current window. It
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1336 is deleted when the window is closed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1337
4437
eb6ab7e78925 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4358
diff changeset
1338 *tabpage-variable* *t:var* *t:*
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
1339 A variable name that is preceded with "t:" is local to the current tab page,
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
1340 It is deleted when the tab page is closed. {not available when compiled
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
1341 without the |+windows| feature}
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
1342
4358
cf1d93a3914a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4354
diff changeset
1343 *global-variable* *g:var* *g:*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1344 Inside functions global variables are accessed with "g:". Omitting this will
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1345 access a variable local to a function. But "g:" can also be used in any other
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1346 place if you like.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1347
4358
cf1d93a3914a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4354
diff changeset
1348 *local-variable* *l:var* *l:*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1349 Inside functions local variables are accessed without prepending anything.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1350 But you can also prepend "l:" if you like. However, without prepending "l:"
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1351 you may run into reserved variable names. For example "count". By itself it
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1352 refers to "v:count". Using "l:count" you can have a local variable with the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1353 same name.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1354
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1355 *script-variable* *s:var*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1356 In a Vim script variables starting with "s:" can be used. They cannot be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1357 accessed from outside of the scripts, thus are local to the script.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1358
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1359 They can be used in:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1360 - commands executed while the script is sourced
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1361 - functions defined in the script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1362 - autocommands defined in the script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1363 - functions and autocommands defined in functions and autocommands which were
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1364 defined in the script (recursively)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1365 - user defined commands defined in the script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1366 Thus not in:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1367 - other scripts sourced from this one
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1368 - mappings
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
1369 - menus
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1370 - etc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1371
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1372 Script variables can be used to avoid conflicts with global variable names.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
1373 Take this example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1374
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1375 let s:counter = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1376 function MyCounter()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1377 let s:counter = s:counter + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1378 echo s:counter
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1379 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1380 command Tick call MyCounter()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1381
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1382 You can now invoke "Tick" from any script, and the "s:counter" variable in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1383 that script will not be changed, only the "s:counter" in the script where
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1384 "Tick" was defined is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1385
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1386 Another example that does the same: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1387
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1388 let s:counter = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1389 command Tick let s:counter = s:counter + 1 | echo s:counter
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1390
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1391 When calling a function and invoking a user-defined command, the context for
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
1392 script variables is set to the script where the function or command was
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1393 defined.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1394
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1395 The script variables are also available when a function is defined inside a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1396 function that is defined in a script. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1397
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1398 let s:counter = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1399 function StartCounting(incr)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1400 if a:incr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1401 function MyCounter()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1402 let s:counter = s:counter + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1403 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1404 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1405 function MyCounter()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1406 let s:counter = s:counter - 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1407 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1408 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1409 endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1410
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1411 This defines the MyCounter() function either for counting up or counting down
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1412 when calling StartCounting(). It doesn't matter from where StartCounting() is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1413 called, the s:counter variable will be accessible in MyCounter().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1414
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1415 When the same script is sourced again it will use the same script variables.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1416 They will remain valid as long as Vim is running. This can be used to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1417 maintain a counter: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1418
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1419 if !exists("s:counter")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1420 let s:counter = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1421 echo "script executed for the first time"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1422 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1423 let s:counter = s:counter + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1424 echo "script executed " . s:counter . " times now"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1425 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1426
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1427 Note that this means that filetype plugins don't get a different set of script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1428 variables for each buffer. Use local buffer variables instead |b:var|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1429
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1430
4358
cf1d93a3914a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4354
diff changeset
1431 Predefined Vim variables: *vim-variable* *v:var* *v:*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1432
189
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1433 *v:beval_col* *beval_col-variable*
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1434 v:beval_col The number of the column, over which the mouse pointer is.
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1435 This is the byte index in the |v:beval_lnum| line.
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1436 Only valid while evaluating the 'balloonexpr' option.
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1437
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1438 *v:beval_bufnr* *beval_bufnr-variable*
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1439 v:beval_bufnr The number of the buffer, over which the mouse pointer is. Only
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1440 valid while evaluating the 'balloonexpr' option.
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1441
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1442 *v:beval_lnum* *beval_lnum-variable*
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1443 v:beval_lnum The number of the line, over which the mouse pointer is. Only
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1444 valid while evaluating the 'balloonexpr' option.
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1445
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1446 *v:beval_text* *beval_text-variable*
374
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
1447 v:beval_text The text under or after the mouse pointer. Usually a word as
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
1448 it is useful for debugging a C program. 'iskeyword' applies,
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
1449 but a dot and "->" before the position is included. When on a
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
1450 ']' the text before it is used, including the matching '[' and
189
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1451 word before it. When on a Visual area within one line the
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
1452 highlighted text is used. Also see |<cexpr>|.
189
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1453 Only valid while evaluating the 'balloonexpr' option.
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1454
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1455 *v:beval_winnr* *beval_winnr-variable*
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1456 v:beval_winnr The number of the window, over which the mouse pointer is. Only
2709
b01a37ab556b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2698
diff changeset
1457 valid while evaluating the 'balloonexpr' option. The first
b01a37ab556b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2698
diff changeset
1458 window has number zero (unlike most other places where a
b01a37ab556b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2698
diff changeset
1459 window gets a number).
189
504c627f7474 updated for version 7.0057
vimboss
parents: 179
diff changeset
1460
9221
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
1461 *v:beval_winid* *beval_winid-variable*
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1462 v:beval_winid The |window-ID| of the window, over which the mouse pointer
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1463 is. Otherwise like v:beval_winnr.
9221
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
1464
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
1465 *v:char* *char-variable*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
1466 v:char Argument for evaluating 'formatexpr' and used for the typed
2249
6d3d35ff2c2b Use full path in undofile(). Updated docs.
Bram Moolenaar <bram@vim.org>
parents: 2236
diff changeset
1467 character when using <expr> in an abbreviation |:map-<expr>|.
4502
605c9ce57ec3 Updated runtime files, language files and translations.
Bram Moolenaar <bram@vim.org>
parents: 4437
diff changeset
1468 It is also used by the |InsertCharPre| and |InsertEnter| events.
844
d3bbb5dd3913 updated for version 7.0f02
vimboss
parents: 843
diff changeset
1469
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1470 *v:charconvert_from* *charconvert_from-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1471 v:charconvert_from
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1472 The name of the character encoding of a file to be converted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1473 Only valid while evaluating the 'charconvert' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1474
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1475 *v:charconvert_to* *charconvert_to-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1476 v:charconvert_to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1477 The name of the character encoding of a file after conversion.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1478 Only valid while evaluating the 'charconvert' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1479
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1480 *v:cmdarg* *cmdarg-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1481 v:cmdarg This variable is used for two purposes:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1482 1. The extra arguments given to a file read/write command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1483 Currently these are "++enc=" and "++ff=". This variable is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1484 set before an autocommand event for a file read/write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1485 command is triggered. There is a leading space to make it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1486 possible to append this variable directly after the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1487 read/write command. Note: The "+cmd" argument isn't
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1488 included here, because it will be executed anyway.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1489 2. When printing a PostScript file with ":hardcopy" this is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1490 the argument for the ":hardcopy" command. This can be used
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1491 in 'printexpr'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1492
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1493 *v:cmdbang* *cmdbang-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1494 v:cmdbang Set like v:cmdarg for a file read/write command. When a "!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1495 was used the value is 1, otherwise it is 0. Note that this
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1496 can only be used in autocommands. For user commands |<bang>|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1497 can be used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1498
6909
676906c33768 patch 7.4.774
Bram Moolenaar <bram@vim.org>
parents: 6884
diff changeset
1499 *v:completed_item* *completed_item-variable*
676906c33768 patch 7.4.774
Bram Moolenaar <bram@vim.org>
parents: 6884
diff changeset
1500 v:completed_item
676906c33768 patch 7.4.774
Bram Moolenaar <bram@vim.org>
parents: 6884
diff changeset
1501 |Dictionary| containing the |complete-items| for the most
676906c33768 patch 7.4.774
Bram Moolenaar <bram@vim.org>
parents: 6884
diff changeset
1502 recently completed word after |CompleteDone|. The
676906c33768 patch 7.4.774
Bram Moolenaar <bram@vim.org>
parents: 6884
diff changeset
1503 |Dictionary| is empty if the completion failed.
676906c33768 patch 7.4.774
Bram Moolenaar <bram@vim.org>
parents: 6884
diff changeset
1504
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1505 *v:count* *count-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1506 v:count The count given for the last Normal mode command. Can be used
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1507 to get the count before a mapping. Read-only. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1508 :map _x :<C-U>echo "the count is " . v:count<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1509 < Note: The <C-U> is required to remove the line range that you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1510 get when typing ':' after a count.
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
1511 When there are two counts, as in "3d2w", they are multiplied,
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
1512 just like what happens in the command, "d6w" for the example.
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
1513 Also used for evaluating the 'formatexpr' option.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1514 "count" also works, for backwards compatibility.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1515
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1516 *v:count1* *count1-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1517 v:count1 Just like "v:count", but defaults to one when no count is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1518 used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1519
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1520 *v:ctype* *ctype-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1521 v:ctype The current locale setting for characters of the runtime
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1522 environment. This allows Vim scripts to be aware of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1523 current locale encoding. Technical: it's the value of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1524 LC_CTYPE. When not using a locale the value is "C".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1525 This variable can not be set directly, use the |:language|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1526 command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1527 See |multi-lang|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1528
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1529 *v:dying* *dying-variable*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1530 v:dying Normally zero. When a deadly signal is caught it's set to
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1531 one. When multiple signals are caught the number increases.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1532 Can be used in an autocommand to check if Vim didn't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1533 terminate normally. {only works on Unix}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1534 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1535 :au VimLeave * if v:dying | echo "\nAAAAaaaarrrggghhhh!!!\n" | endif
2226
36a9ac99e1ca Don't execute some autocommands when v:dying is 2 or more.
Bram Moolenaar <bram@vim.org>
parents: 2214
diff changeset
1536 < Note: if another deadly signal is caught when v:dying is one,
36a9ac99e1ca Don't execute some autocommands when v:dying is 2 or more.
Bram Moolenaar <bram@vim.org>
parents: 2214
diff changeset
1537 VimLeave autocommands will not be executed.
36a9ac99e1ca Don't execute some autocommands when v:dying is 2 or more.
Bram Moolenaar <bram@vim.org>
parents: 2214
diff changeset
1538
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1539 *v:errmsg* *errmsg-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1540 v:errmsg Last given error message. It's allowed to set this variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1541 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1542 :let v:errmsg = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1543 :silent! next
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1544 :if v:errmsg != ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1545 : ... handle error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1546 < "errmsg" also works, for backwards compatibility.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1547
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1548 *v:errors* *errors-variable*
7279
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
1549 v:errors Errors found by assert functions, such as |assert_true()|.
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1550 This is a list of strings.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1551 The assert functions append an item when an assert fails.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1552 To remove old results make it empty: >
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1553 :let v:errors = []
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1554 < If v:errors is set to anything but a list it is made an empty
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1555 list by the assert function.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
1556
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1557 *v:exception* *exception-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1558 v:exception The value of the exception most recently caught and not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1559 finished. See also |v:throwpoint| and |throw-variables|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1560 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1561 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1562 : throw "oops"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1563 :catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1564 : echo "caught" v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1565 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1566 < Output: "caught oops".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1567
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1568 *v:false* *false-variable*
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1569 v:false A Number with value zero. Used to put "false" in JSON. See
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
1570 |json_encode()|.
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1571 When used as a string this evaluates to "v:false". >
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1572 echo v:false
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1573 < v:false ~
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1574 That is so that eval() can parse the string back to the same
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
1575 value. Read-only.
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1576
179
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1577 *v:fcs_reason* *fcs_reason-variable*
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1578 v:fcs_reason The reason why the |FileChangedShell| event was triggered.
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1579 Can be used in an autocommand to decide what to do and/or what
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1580 to set v:fcs_choice to. Possible values:
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1581 deleted file no longer exists
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1582 conflict file contents, mode or timestamp was
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1583 changed and buffer is modified
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1584 changed file contents has changed
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1585 mode mode of file changed
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1586 time only file timestamp changed
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1587
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1588 *v:fcs_choice* *fcs_choice-variable*
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1589 v:fcs_choice What should happen after a |FileChangedShell| event was
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1590 triggered. Can be used in an autocommand to tell Vim what to
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1591 do with the affected buffer:
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1592 reload Reload the buffer (does not work if
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1593 the file was deleted).
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1594 ask Ask the user what to do, as if there
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1595 was no autocommand. Except that when
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1596 only the timestamp changed nothing
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1597 will happen.
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1598 <empty> Nothing, the autocommand should do
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1599 everything that needs to be done.
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1600 The default is empty. If another (invalid) value is used then
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1601 Vim behaves like it is empty, there is no warning message.
7fd70926e2e1 updated for version 7.0055
vimboss
parents: 170
diff changeset
1602
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1603 *v:fname_in* *fname_in-variable*
579
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1604 v:fname_in The name of the input file. Valid while evaluating:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1605 option used for ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1606 'charconvert' file to be converted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1607 'diffexpr' original file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1608 'patchexpr' original file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1609 'printexpr' file to be printed
593
d220eb88e4e4 updated for version 7.0168
vimboss
parents: 590
diff changeset
1610 And set to the swap file name for |SwapExists|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1611
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1612 *v:fname_out* *fname_out-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1613 v:fname_out The name of the output file. Only valid while
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1614 evaluating:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1615 option used for ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1616 'charconvert' resulting converted file (*)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1617 'diffexpr' output of diff
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1618 'patchexpr' resulting patched file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1619 (*) When doing conversion for a write command (e.g., ":w
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1620 file") it will be equal to v:fname_in. When doing conversion
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1621 for a read command (e.g., ":e file") it will be a temporary
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1622 file and different from v:fname_in.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1623
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1624 *v:fname_new* *fname_new-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1625 v:fname_new The name of the new version of the file. Only valid while
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1626 evaluating 'diffexpr'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1627
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1628 *v:fname_diff* *fname_diff-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1629 v:fname_diff The name of the diff (patch) file. Only valid while
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1630 evaluating 'patchexpr'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1631
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1632 *v:folddashes* *folddashes-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1633 v:folddashes Used for 'foldtext': dashes representing foldlevel of a closed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1634 fold.
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
1635 Read-only in the |sandbox|. |fold-foldtext|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1636
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1637 *v:foldlevel* *foldlevel-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1638 v:foldlevel Used for 'foldtext': foldlevel of closed fold.
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
1639 Read-only in the |sandbox|. |fold-foldtext|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1640
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1641 *v:foldend* *foldend-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1642 v:foldend Used for 'foldtext': last line of closed fold.
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
1643 Read-only in the |sandbox|. |fold-foldtext|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1644
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1645 *v:foldstart* *foldstart-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1646 v:foldstart Used for 'foldtext': first line of closed fold.
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
1647 Read-only in the |sandbox|. |fold-foldtext|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1648
5460
c5166fa10464 updated for version 7.4.080
Bram Moolenaar <bram@vim.org>
parents: 5425
diff changeset
1649 *v:hlsearch* *hlsearch-variable*
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
1650 v:hlsearch Variable that indicates whether search highlighting is on.
6413
01c668384bcc updated for version 7.4.537
Bram Moolenaar <bram@vim.org>
parents: 6385
diff changeset
1651 Setting it makes sense only if 'hlsearch' is enabled which
01c668384bcc updated for version 7.4.537
Bram Moolenaar <bram@vim.org>
parents: 6385
diff changeset
1652 requires |+extra_search|. Setting this variable to zero acts
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1653 like the |:nohlsearch| command, setting it to one acts like >
5460
c5166fa10464 updated for version 7.4.080
Bram Moolenaar <bram@vim.org>
parents: 5425
diff changeset
1654 let &hlsearch = &hlsearch
6918
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
1655 < Note that the value is restored when returning from a
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
1656 function. |function-search-undo|.
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
1657
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1658 *v:insertmode* *insertmode-variable*
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1659 v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1660 events. Values:
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1661 i Insert mode
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1662 r Replace mode
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1663 v Virtual Replace mode
4424b47a0797 updated for version 7.0003
vimboss
parents: 10
diff changeset
1664
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1665 *v:key* *key-variable*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1666 v:key Key of the current item of a |Dictionary|. Only valid while
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1667 evaluating the expression used with |map()| and |filter()|.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1668 Read-only.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1669
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1670 *v:lang* *lang-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1671 v:lang The current locale setting for messages of the runtime
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1672 environment. This allows Vim scripts to be aware of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1673 current language. Technical: it's the value of LC_MESSAGES.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1674 The value is system dependent.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1675 This variable can not be set directly, use the |:language|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1676 command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1677 It can be different from |v:ctype| when messages are desired
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1678 in a different language than what is used for character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1679 encoding. See |multi-lang|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1680
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1681 *v:lc_time* *lc_time-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1682 v:lc_time The current locale setting for time messages of the runtime
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1683 environment. This allows Vim scripts to be aware of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1684 current language. Technical: it's the value of LC_TIME.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1685 This variable can not be set directly, use the |:language|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1686 command. See |multi-lang|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1687
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1688 *v:lnum* *lnum-variable*
2350
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
1689 v:lnum Line number for the 'foldexpr' |fold-expr|, 'formatexpr' and
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
1690 'indentexpr' expressions, tab page number for 'guitablabel'
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
1691 and 'guitabtooltip'. Only valid while one of these
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
1692 expressions is being evaluated. Read-only when in the
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
1693 |sandbox|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1694
1029
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1695 *v:mouse_win* *mouse_win-variable*
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1696 v:mouse_win Window number for a mouse click obtained with |getchar()|.
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1697 First window has number 1, like with |winnr()|. The value is
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1698 zero when there was no mouse button click.
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1699
9221
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
1700 *v:mouse_winid* *mouse_winid-variable*
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
1701 v:mouse_winid Window ID for a mouse click obtained with |getchar()|.
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
1702 The value is zero when there was no mouse button click.
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
1703
1029
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1704 *v:mouse_lnum* *mouse_lnum-variable*
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1705 v:mouse_lnum Line number for a mouse click obtained with |getchar()|.
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1706 This is the text line number, not the screen line number. The
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1707 value is zero when there was no mouse button click.
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1708
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1709 *v:mouse_col* *mouse_col-variable*
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1710 v:mouse_col Column number for a mouse click obtained with |getchar()|.
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1711 This is the screen column number, like with |virtcol()|. The
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1712 value is zero when there was no mouse button click.
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
1713
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1714 *v:none* *none-variable*
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1715 v:none An empty String. Used to put an empty item in JSON. See
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
1716 |json_encode()|.
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1717 When used as a number this evaluates to zero.
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1718 When used as a string this evaluates to "v:none". >
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1719 echo v:none
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1720 < v:none ~
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1721 That is so that eval() can parse the string back to the same
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
1722 value. Read-only.
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1723
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1724 *v:null* *null-variable*
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1725 v:null An empty String. Used to put "null" in JSON. See
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
1726 |json_encode()|.
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1727 When used as a number this evaluates to zero.
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1728 When used as a string this evaluates to "v:null". >
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1729 echo v:null
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1730 < v:null ~
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1731 That is so that eval() can parse the string back to the same
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
1732 value. Read-only.
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1733
1733
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1734 *v:oldfiles* *oldfiles-variable*
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1735 v:oldfiles List of file names that is loaded from the |viminfo| file on
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1736 startup. These are the files that Vim remembers marks for.
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1737 The length of the List is limited by the ' argument of the
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1738 'viminfo' option (default is 100).
5618
350272cbf1fd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5596
diff changeset
1739 When the |viminfo| file is not used the List is empty.
1733
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1740 Also see |:oldfiles| and |c_#<|.
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1741 The List can be modified, but this has no effect on what is
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1742 stored in the |viminfo| file later. If you use values other
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1743 than String this will cause trouble.
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
1744 {only when compiled with the |+viminfo| feature}
1733
5a7384b9ca66 updated for version 7.2-031
vimboss
parents: 1702
diff changeset
1745
6935
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1746 *v:option_new*
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1747 v:option_new New value of the option. Valid while executing an |OptionSet|
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1748 autocommand.
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1749 *v:option_old*
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1750 v:option_old Old value of the option. Valid while executing an |OptionSet|
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1751 autocommand.
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1752 *v:option_type*
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1753 v:option_type Scope of the set command. Valid while executing an
4db70c94226b patch 7.4.786
Bram Moolenaar <bram@vim.org>
parents: 6918
diff changeset
1754 |OptionSet| autocommand. Can be either "global" or "local"
1490
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1755 *v:operator* *operator-variable*
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1756 v:operator The last operator given in Normal mode. This is a single
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1757 character except for commands starting with <g> or <z>,
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1758 in which case it is two characters. Best used alongside
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1759 |v:prevcount| and |v:register|. Useful if you want to cancel
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1760 Operator-pending mode and then use the operator, e.g.: >
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1761 :omap O <Esc>:call MyMotion(v:operator)<CR>
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1762 < The value remains set until another operator is entered, thus
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1763 don't expect it to be empty.
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1764 v:operator is not set for |:delete|, |:yank| or other Ex
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1765 commands.
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1766 Read-only.
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1767
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1768 *v:prevcount* *prevcount-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1769 v:prevcount The count given for the last but one Normal mode command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1770 This is the v:count value of the previous command. Useful if
1490
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1771 you want to cancel Visual or Operator-pending mode and then
0f3f3090491f updated for version 7.1-205
vimboss
parents: 1405
diff changeset
1772 use the count, e.g.: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1773 :vmap % <Esc>:call MyFilter(v:prevcount)<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1774 < Read-only.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1775
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
1776 *v:profiling* *profiling-variable*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1777 v:profiling Normally zero. Set to one after using ":profile start".
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
1778 See |profiling|.
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
1779
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1780 *v:progname* *progname-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1781 v:progname Contains the name (with path removed) with which Vim was
3492
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1782 invoked. Allows you to do special initialisations for |view|,
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1783 |evim| etc., or any other name you might symlink to Vim.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1784 Read-only.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1785
5780
d2286df8719d updated for version 7.4.234
Bram Moolenaar <bram@vim.org>
parents: 5763
diff changeset
1786 *v:progpath* *progpath-variable*
d2286df8719d updated for version 7.4.234
Bram Moolenaar <bram@vim.org>
parents: 5763
diff changeset
1787 v:progpath Contains the command with which Vim was invoked, including the
d2286df8719d updated for version 7.4.234
Bram Moolenaar <bram@vim.org>
parents: 5763
diff changeset
1788 path. Useful if you want to message a Vim server using a
d2286df8719d updated for version 7.4.234
Bram Moolenaar <bram@vim.org>
parents: 5763
diff changeset
1789 |--remote-expr|.
5782
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
1790 To get the full path use: >
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
1791 echo exepath(v:progpath)
11032
516391d8865f patch 8.0.0405: v:progpath may become invalid after :cd
Christian Brabandt <cb@256bit.org>
parents: 11014
diff changeset
1792 < If the path is relative it will be expanded to the full path,
516391d8865f patch 8.0.0405: v:progpath may become invalid after :cd
Christian Brabandt <cb@256bit.org>
parents: 11014
diff changeset
1793 so that it still works after `:cd`. Thus starting "./vim"
516391d8865f patch 8.0.0405: v:progpath may become invalid after :cd
Christian Brabandt <cb@256bit.org>
parents: 11014
diff changeset
1794 results in "/home/user/path/to/vim/src/vim".
516391d8865f patch 8.0.0405: v:progpath may become invalid after :cd
Christian Brabandt <cb@256bit.org>
parents: 11014
diff changeset
1795 On MS-Windows the executable may be called "vim.exe", but the
516391d8865f patch 8.0.0405: v:progpath may become invalid after :cd
Christian Brabandt <cb@256bit.org>
parents: 11014
diff changeset
1796 ".exe" is not added to v:progpath.
5780
d2286df8719d updated for version 7.4.234
Bram Moolenaar <bram@vim.org>
parents: 5763
diff changeset
1797 Read-only.
d2286df8719d updated for version 7.4.234
Bram Moolenaar <bram@vim.org>
parents: 5763
diff changeset
1798
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1799 *v:register* *register-variable*
2698
b6471224d2af Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2681
diff changeset
1800 v:register The name of the register in effect for the current normal mode
3492
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1801 command (regardless of whether that command actually used a
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1802 register). Or for the currently executing normal mode mapping
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1803 (use this in custom commands that take a register).
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1804 If none is supplied it is the default register '"', unless
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1805 'clipboard' contains "unnamed" or "unnamedplus", then it is
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
1806 '*' or '+'.
2698
b6471224d2af Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2681
diff changeset
1807 Also see |getreg()| and |setreg()|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1808
540
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1809 *v:scrollstart* *scrollstart-variable*
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1810 v:scrollstart String describing the script or function that caused the
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1811 screen to scroll up. It's only set when it is empty, thus the
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1812 first reason is remembered. It is set to "Unknown" for a
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1813 typed command.
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1814 This can be used to find out why your script causes the
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1815 hit-enter prompt.
2df7f3a5eb96 updated for version 7.0153
vimboss
parents: 537
diff changeset
1816
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1817 *v:servername* *servername-variable*
11904
40322e8f07e7 patch 8.0.0832: terminal function arguments are not consistent
Christian Brabandt <cb@256bit.org>
parents: 11882
diff changeset
1818 v:servername The resulting registered |client-server-name| if any.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1819 Read-only.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1820
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
1821
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1822 v:searchforward *v:searchforward* *searchforward-variable*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1823 Search direction: 1 after a forward search, 0 after a
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1824 backward search. It is reset to forward when directly setting
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1825 the last search pattern, see |quote/|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1826 Note that the value is restored when returning from a
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1827 function. |function-search-undo|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1828 Read-write.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
1829
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1830 *v:shell_error* *shell_error-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1831 v:shell_error Result of the last shell command. When non-zero, the last
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1832 shell command had an error. When zero, there was no problem.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1833 This only works when the shell returns the error code to Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1834 The value -1 is often used when the command could not be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1835 executed. Read-only.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1836 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1837 :!mv foo bar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1838 :if v:shell_error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1839 : echo 'could not rename "foo" to "bar"!'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1840 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1841 < "shell_error" also works, for backwards compatibility.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1842
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1843 *v:statusmsg* *statusmsg-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1844 v:statusmsg Last given status message. It's allowed to set this variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1845
579
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1846 *v:swapname* *swapname-variable*
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1847 v:swapname Only valid when executing |SwapExists| autocommands: Name of
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1848 the swap file found. Read-only.
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1849
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1850 *v:swapchoice* *swapchoice-variable*
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1851 v:swapchoice |SwapExists| autocommands can set this to the selected choice
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1852 for handling an existing swap file:
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1853 'o' Open read-only
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1854 'e' Edit anyway
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1855 'r' Recover
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1856 'd' Delete swapfile
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1857 'q' Quit
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1858 'a' Abort
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1859 The value should be a single-character string. An empty value
579
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1860 results in the user being asked, as would happen when there is
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1861 no SwapExists autocommand. The default is empty.
1ef373b13126 updated for version 7.0164
vimboss
parents: 574
diff changeset
1862
590
de152391f6f9 updated for version 7.0167
vimboss
parents: 579
diff changeset
1863 *v:swapcommand* *swapcommand-variable*
625
81fe2ccc1207 updated for version 7.0179
vimboss
parents: 620
diff changeset
1864 v:swapcommand Normal mode command to be executed after a file has been
590
de152391f6f9 updated for version 7.0167
vimboss
parents: 579
diff changeset
1865 opened. Can be used for a |SwapExists| autocommand to have
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1866 another Vim open the file and jump to the right place. For
590
de152391f6f9 updated for version 7.0167
vimboss
parents: 579
diff changeset
1867 example, when jumping to a tag the value is ":tag tagname\r".
716
8ae24f338cab updated for version 7.0217
vimboss
parents: 714
diff changeset
1868 For ":edit +cmd file" the value is ":cmd\r".
590
de152391f6f9 updated for version 7.0167
vimboss
parents: 579
diff changeset
1869
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1870 *v:t_TYPE* *v:t_bool* *t_bool-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1871 v:t_bool Value of Boolean type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1872 *v:t_channel* *t_channel-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1873 v:t_channel Value of Channel type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1874 *v:t_dict* *t_dict-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1875 v:t_dict Value of Dictionary type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1876 *v:t_float* *t_float-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1877 v:t_float Value of Float type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1878 *v:t_func* *t_func-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1879 v:t_func Value of Funcref type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1880 *v:t_job* *t_job-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1881 v:t_job Value of Job type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1882 *v:t_list* *t_list-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1883 v:t_list Value of List type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1884 *v:t_none* *t_none-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1885 v:t_none Value of None type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1886 *v:t_number* *t_number-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1887 v:t_number Value of Number type. Read-only. See: |type()|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
1888 *v:t_string* *t_string-variable*
9587
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1889 v:t_string Value of String type. Read-only. See: |type()|
05a56bbe34a1 commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents: 9555
diff changeset
1890
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1891 *v:termresponse* *termresponse-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1892 v:termresponse The escape sequence returned by the terminal for the |t_RV|
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1893 termcap entry. It is set when Vim receives an escape sequence
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1894 that starts with ESC [ or CSI and ends in a 'c', with only
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1895 digits, ';' and '.' in between.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1896 When this option is set, the TermResponse autocommand event is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1897 fired, so that you can react to the response from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1898 terminal.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1899 The response from a new xterm is: "<Esc>[ Pp ; Pv ; Pc c". Pp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1900 is the terminal type: 0 for vt100 and 1 for vt220. Pv is the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1901 patch level (since this was introduced in patch 95, it's
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1902 always 95 or bigger). Pc is always zero.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1903 {only when compiled with |+termresponse| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1904
12273
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1905 *v:termblinkresp*
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1906 v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1907 termcap entry. This is used to find out whether the terminal
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1908 cursor is blinking. This is used by |term_getcursor()|.
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1909
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1910 *v:termstyleresp*
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1911 v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1912 termcap entry. This is used to find out what the shape of the
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1913 cursor is. This is used by |term_getcursor()|.
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1914
12632
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1915 *v:termrbgresp*
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1916 v:termrbgresp The escape sequence returned by the terminal for the |t_RB|
12273
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1917 termcap entry. This is used to find out what the terminal
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1918 background color is, see 'background'.
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1919
12632
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1920 *v:termrfgresp*
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1921 v:termrfgresp The escape sequence returned by the terminal for the |t_RF|
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1922 termcap entry. This is used to find out what the terminal
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1923 foreground color is.
b1a7e3968a31 patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents: 12499
diff changeset
1924
12273
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1925 *v:termu7resp*
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1926 v:termu7resp The escape sequence returned by the terminal for the |t_u7|
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1927 termcap entry. This is used to find out what the terminal
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1928 does with ambiguous width characters, see 'ambiwidth'.
c952a6af25e0 patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents: 12254
diff changeset
1929
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
1930 *v:testing* *testing-variable*
9121
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
1931 v:testing Must be set before using `test_garbagecollect_now()`.
11160
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
1932 Also, when set certain error messages won't be shown for 2
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
1933 seconds. (e.g. "'dictionary' option is empty")
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
1934
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1935 *v:this_session* *this_session-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1936 v:this_session Full filename of the last loaded or saved session file. See
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1937 |:mksession|. It is allowed to set this variable. When no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1938 session file has been saved, this variable is empty.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1939 "this_session" also works, for backwards compatibility.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1940
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1941 *v:throwpoint* *throwpoint-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1942 v:throwpoint The point where the exception most recently caught and not
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1943 finished was thrown. Not set when commands are typed. See
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1944 also |v:exception| and |throw-variables|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1945 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1946 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1947 : throw "oops"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1948 :catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1949 : echo "Exception from" v:throwpoint
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1950 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1951 < Output: "Exception from test.vim, line 2"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1952
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1953 *v:true* *true-variable*
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
1954 v:true A Number with value one. Used to put "true" in JSON. See
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
1955 |json_encode()|.
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1956 When used as a string this evaluates to "v:true". >
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
1957 echo v:true
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1958 < v:true ~
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
1959 That is so that eval() can parse the string back to the same
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
1960 value. Read-only.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1961 *v:val* *val-variable*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
1962 v:val Value of the current item of a |List| or |Dictionary|. Only
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
1963 valid while evaluating the expression used with |map()| and
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1964 |filter()|. Read-only.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
1965
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1966 *v:version* *version-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1967 v:version Version number of Vim: Major version number times 100 plus
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1968 minor version number. Version 5.0 is 500. Version 5.1 (5.01)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1969 is 501. Read-only. "version" also works, for backwards
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1970 compatibility.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1971 Use |has()| to check if a certain patch was included, e.g.: >
5786
71b165a378ad updated for version 7.4.237
Bram Moolenaar <bram@vim.org>
parents: 5782
diff changeset
1972 if has("patch-7.4.123")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1973 < Note that patch numbers are specific to the version, thus both
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1974 version 5.0 and 5.1 may have a patch 123, but these are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1975 completely different.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1976
8738
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents: 8669
diff changeset
1977 *v:vim_did_enter* *vim_did_enter-variable*
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents: 8669
diff changeset
1978 v:vim_did_enter Zero until most of startup is done. It is set to one just
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents: 8669
diff changeset
1979 before |VimEnter| autocommands are triggered.
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents: 8669
diff changeset
1980
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1981 *v:warningmsg* *warningmsg-variable*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1982 v:warningmsg Last given warning message. It's allowed to set this variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1983
2609
758822790b43 updated for version 7.3.031
Bram Moolenaar <bram@vim.org>
parents: 2608
diff changeset
1984 *v:windowid* *windowid-variable*
758822790b43 updated for version 7.3.031
Bram Moolenaar <bram@vim.org>
parents: 2608
diff changeset
1985 v:windowid When any X11 based GUI is running or when running in a
758822790b43 updated for version 7.3.031
Bram Moolenaar <bram@vim.org>
parents: 2608
diff changeset
1986 terminal and Vim connects to the X server (|-X|) this will be
2616
73d947c20291 updated for version 7.3.038
Bram Moolenaar <bram@vim.org>
parents: 2610
diff changeset
1987 set to the window ID.
73d947c20291 updated for version 7.3.038
Bram Moolenaar <bram@vim.org>
parents: 2610
diff changeset
1988 When an MS-Windows GUI is running this will be set to the
73d947c20291 updated for version 7.3.038
Bram Moolenaar <bram@vim.org>
parents: 2610
diff changeset
1989 window handle.
73d947c20291 updated for version 7.3.038
Bram Moolenaar <bram@vim.org>
parents: 2610
diff changeset
1990 Otherwise the value is zero.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1991 Note: for windows inside Vim use |winnr()| or |win_getid()|,
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
1992 see |window-ID|.
2609
758822790b43 updated for version 7.3.031
Bram Moolenaar <bram@vim.org>
parents: 2608
diff changeset
1993
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1994 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1995 4. Builtin Functions *functions*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1996
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1997 See |function-list| for a list grouped by what the function is used for.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1998
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
1999 (Use CTRL-] on the function name to jump to the full explanation.)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2000
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2001 USAGE RESULT DESCRIPTION ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2002
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2003 abs({expr}) Float or Number absolute value of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2004 acos({expr}) Float arc cosine of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2005 add({list}, {item}) List append {item} to |List| {list}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2006 and({expr}, {expr}) Number bitwise AND
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2007 append({lnum}, {string}) Number append {string} below line {lnum}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2008 append({lnum}, {list}) Number append lines {list} below line {lnum}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2009 argc() Number number of files in the argument list
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2010 argidx() Number current index in the argument list
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2011 arglistid([{winnr} [, {tabnr}]]) Number argument list id
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2012 argv({nr}) String {nr} entry of the argument list
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
2013 argv() List the argument list
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2014 assert_equal({exp}, {act} [, {msg}])
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2015 none assert {exp} is equal to {act}
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2016 assert_exception({error} [, {msg}])
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2017 none assert {error} is in v:exception
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2018 assert_fails({cmd} [, {error}]) none assert {cmd} fails
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2019 assert_false({actual} [, {msg}])
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2020 none assert {actual} is false
9636
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2021 assert_inrange({lower}, {upper}, {actual} [, {msg}])
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
2022 none assert {actual} is inside the range
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2023 assert_match({pat}, {text} [, {msg}])
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2024 none assert {pat} matches {text}
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2025 assert_notequal({exp}, {act} [, {msg}])
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2026 none assert {exp} is not equal {act}
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2027 assert_notmatch({pat}, {text} [, {msg}])
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2028 none assert {pat} not matches {text}
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2029 assert_report({msg}) none report a test failure
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2030 assert_true({actual} [, {msg}]) none assert {actual} is true
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2031 asin({expr}) Float arc sine of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2032 atan({expr}) Float arc tangent of {expr}
10038
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
2033 atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2}
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
2034 balloon_show({expr}) none show {expr} inside the balloon
12883
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2035 balloon_split({msg}) List split {msg} as used for a balloon
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2036 browse({save}, {title}, {initdir}, {default})
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2037 String put up a file requester
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2038 browsedir({title}, {initdir}) String put up a directory requester
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2039 bufexists({expr}) Number |TRUE| if buffer {expr} exists
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2040 buflisted({expr}) Number |TRUE| if buffer {expr} is listed
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2041 bufloaded({expr}) Number |TRUE| if buffer {expr} is loaded
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2042 bufname({expr}) String Name of the buffer {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2043 bufnr({expr} [, {create}]) Number Number of the buffer {expr}
9219
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2044 bufwinid({expr}) Number window ID of buffer {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2045 bufwinnr({expr}) Number window number of buffer {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2046 byte2line({byte}) Number line number at byte count {byte}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2047 byteidx({expr}, {nr}) Number byte index of {nr}'th char in {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2048 byteidxcomp({expr}, {nr}) Number byte index of {nr}'th char in {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2049 call({func}, {arglist} [, {dict}])
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
2050 any call {func} with arguments {arglist}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2051 ceil({expr}) Float round {expr} up
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2052 ch_canread({handle}) Number check if there is something to read
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2053 ch_close({handle}) none close {handle}
10054
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2054 ch_close_in({handle}) none close in part of {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2055 ch_evalexpr({handle}, {expr} [, {options}])
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2056 any evaluate {expr} on JSON {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2057 ch_evalraw({handle}, {string} [, {options}])
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2058 any evaluate {string} on raw {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2059 ch_getbufnr({handle}, {what}) Number get buffer number for {handle}/{what}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2060 ch_getjob({channel}) Job get the Job of {channel}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2061 ch_info({handle}) String info about channel {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2062 ch_log({msg} [, {handle}]) none write {msg} in the channel log file
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2063 ch_logfile({fname} [, {mode}]) none start logging channel activity
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2064 ch_open({address} [, {options}])
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2065 Channel open a channel to {address}
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2066 ch_read({handle} [, {options}]) String read from {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2067 ch_readraw({handle} [, {options}])
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2068 String read raw from {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2069 ch_sendexpr({handle}, {expr} [, {options}])
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2070 any send {expr} over JSON {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2071 ch_sendraw({handle}, {string} [, {options}])
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2072 any send {string} over raw {handle}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2073 ch_setoptions({handle}, {options})
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2074 none set options for {handle}
10233
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
2075 ch_status({handle} [, {options}])
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
2076 String status of channel {handle}
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2077 changenr() Number current change number
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2078 char2nr({expr} [, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2079 cindent({lnum}) Number C indent for line {lnum}
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
2080 clearmatches() none clear all matches
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2081 col({expr}) Number column nr of cursor or mark
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2082 complete({startcol}, {matches}) none set Insert mode completion
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2083 complete_add({expr}) Number add completion match
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2084 complete_check() Number check for key typed during completion
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2085 confirm({msg} [, {choices} [, {default} [, {type}]]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2086 Number number of choice picked by user
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2087 copy({expr}) any make a shallow copy of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2088 cos({expr}) Float cosine of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2089 cosh({expr}) Float hyperbolic cosine of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2090 count({list}, {expr} [, {ic} [, {start}]])
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2091 Number count how many {expr} are in {list}
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
2092 cscope_connection([{num}, {dbpath} [, {prepend}]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2093 Number checks existence of cscope connection
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2094 cursor({lnum}, {col} [, {off}])
6385
f654ad95fd4e Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6369
diff changeset
2095 Number move cursor to {lnum}, {col}, {off}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2096 cursor({list}) Number move cursor to position in {list}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2097 deepcopy({expr} [, {noref}]) any make a full copy of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2098 delete({fname} [, {flags}]) Number delete the file or directory {fname}
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2099 did_filetype() Number |TRUE| if FileType autocmd event used
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2100 diff_filler({lnum}) Number diff filler lines about {lnum}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2101 diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col}
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2102 empty({expr}) Number |TRUE| if {expr} is empty
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2103 escape({string}, {chars}) String escape {chars} in {string} with '\'
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2104 eval({string}) any evaluate {string} into its value
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2105 eventhandler() Number |TRUE| if inside an event handler
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2106 executable({expr}) Number 1 if executable {expr} exists
9454
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
2107 execute({command}) String execute {command} and get the output
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2108 exepath({expr}) String full path of the command {expr}
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2109 exists({expr}) Number |TRUE| if {expr} exists
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2110 extend({expr1}, {expr2} [, {expr3}])
824
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 823
diff changeset
2111 List/Dict insert items of {expr2} into {expr1}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2112 exp({expr}) Float exponential of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2113 expand({expr} [, {nosuf} [, {list}]])
3398
d1096a4e96bd updated for version 7.3.465
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
2114 any expand special keywords in {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2115 feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2116 filereadable({file}) Number |TRUE| if {file} is a readable file
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2117 filewritable({file}) Number |TRUE| if {file} is a writable file
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
2118 filter({expr1}, {expr2}) List/Dict remove items from {expr1} where
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
2119 {expr2} is 0
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2120 finddir({name} [, {path} [, {count}]])
824
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 823
diff changeset
2121 String find directory {name} in {path}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2122 findfile({name} [, {path} [, {count}]])
824
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 823
diff changeset
2123 String find file {name} in {path}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2124 float2nr({expr}) Number convert Float {expr} to a Number
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2125 floor({expr}) Float round {expr} down
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2126 fmod({expr1}, {expr2}) Float remainder of {expr1} / {expr2}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2127 fnameescape({fname}) String escape special characters in {fname}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2128 fnamemodify({fname}, {mods}) String modify file name
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2129 foldclosed({lnum}) Number first line of fold at {lnum} if closed
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2130 foldclosedend({lnum}) Number last line of fold at {lnum} if closed
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2131 foldlevel({lnum}) Number fold level at {lnum}
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
2132 foldtext() String line displayed for closed fold
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2133 foldtextresult({lnum}) String text for closed fold at {lnum}
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
2134 foreground() Number bring the Vim window to the foreground
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
2135 funcref({name} [, {arglist}] [, {dict}])
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
2136 Funcref reference to function {name}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2137 function({name} [, {arglist}] [, {dict}])
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
2138 Funcref named reference to function {name}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2139 garbagecollect([{atexit}]) none free memory, breaking cyclic references
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2140 get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2141 get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def}
9117
0cc48b3cd884 commit https://github.com/vim/vim/commit/03e19a04ac2ca55643663b97b6ab94043233dcbd
Christian Brabandt <cb@256bit.org>
parents: 9110
diff changeset
2142 get({func}, {what}) any get property of funcref/partial {func}
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
2143 getbufinfo([{expr}]) List information about buffers
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2144 getbufline({expr}, {lnum} [, {end}])
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
2145 List lines {lnum} to {end} of buffer {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2146 getbufvar({expr}, {varname} [, {def}])
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
2147 any variable {varname} in buffer {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2148 getchar([expr]) Number get one character from the user
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
2149 getcharmod() Number modifiers for the last typed character
7013
349e6c01f35d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6991
diff changeset
2150 getcharsearch() Dict last character search
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2151 getcmdline() String return the current command-line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2152 getcmdpos() Number return cursor position in command-line
6153
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
2153 getcmdtype() String return current command-line type
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
2154 getcmdwintype() String return current command-line window type
9861
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
2155 getcompletion({pat}, {type} [, {filtered}])
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
2156 List list of cmdline completion matches
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
2157 getcurpos() List position of the cursor
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2158 getcwd([{winnr} [, {tabnr}]]) String get the current working directory
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2159 getfontname([{name}]) String name of font being used
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2160 getfperm({fname}) String file permissions of file {fname}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2161 getfsize({fname}) Number size in bytes of file {fname}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2162 getftime({fname}) Number last modification time of file
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2163 getftype({fname}) String description of type of file {fname}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2164 getline({lnum}) String line {lnum} of current buffer
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2165 getline({lnum}, {end}) List lines {lnum} to {end} of current buffer
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2166 getloclist({nr} [, {what}]) List list of location list items
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
2167 getmatches() List list of current matches
1548
8d74df00f7da updated for version 7.1-262
vimboss
parents: 1533
diff changeset
2168 getpid() Number process ID of Vim
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2169 getpos({expr}) List position of cursor, mark, etc.
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
2170 getqflist([{what}]) List list of quickfix items
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2171 getreg([{regname} [, 1 [, {list}]]])
5796
f084024c0ddb updated for version 7.4.242
Bram Moolenaar <bram@vim.org>
parents: 5794
diff changeset
2172 String or List contents of register
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2173 getregtype([{regname}]) String type of register
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
2174 gettabinfo([{expr}]) List list of tab pages
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2175 gettabvar({nr}, {varname} [, {def}])
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
2176 any variable {varname} in tab {nr} or {def}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2177 gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
2178 any {name} in {winnr} in tab page {tabnr}
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
2179 getwininfo([{winid}]) List list of windows
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2180 getwinposx() Number X coord in pixels of GUI Vim window
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2181 getwinposy() Number Y coord in pixels of GUI Vim window
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2182 getwinvar({nr}, {varname} [, {def}])
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
2183 any variable {varname} in window {nr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2184 glob({expr} [, {nosuf} [, {list} [, {alllinks}]]])
3398
d1096a4e96bd updated for version 7.3.465
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
2185 any expand file wildcards in {expr}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2186 glob2regpat({expr}) String convert a glob pat into a search pat
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2187 globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
1754
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
2188 String do glob({expr}) for all dirs in {path}
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2189 has({feature}) Number |TRUE| if feature {feature} supported
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2190 has_key({dict}, {key}) Number |TRUE| if {dict} has entry {key}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2191 haslocaldir([{winnr} [, {tabnr}]])
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2192 Number |TRUE| if the window executed |:lcd|
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2193 hasmapto({what} [, {mode} [, {abbr}]])
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2194 Number |TRUE| if mapping to {what} exists
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2195 histadd({history}, {item}) String add an item to a history
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2196 histdel({history} [, {item}]) String remove an item from a history
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2197 histget({history} [, {index}]) String get the item {index} from a history
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2198 histnr({history}) Number highest index of a history
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2199 hlexists({name}) Number |TRUE| if highlight group {name} exists
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2200 hlID({name}) Number syntax ID of highlight group {name}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2201 hostname() String name of the machine Vim is running on
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2202 iconv({expr}, {from}, {to}) String convert encoding of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2203 indent({lnum}) Number indent of line {lnum}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2204 index({list}, {expr} [, {start} [, {ic}]])
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
2205 Number index in {list} where {expr} appears
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2206 input({prompt} [, {text} [, {completion}]])
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
2207 String get input from the user
11763
21f3930dfe6e Documentation updates.
Christian Brabandt <cb@256bit.org>
parents: 11659
diff changeset
2208 inputdialog({prompt} [, {text} [, {completion}]])
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2209 String like input() but in a GUI dialog
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2210 inputlist({textlist}) Number let the user pick from a choice list
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2211 inputrestore() Number restore typeahead
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2212 inputsave() Number save and clear typeahead
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2213 inputsecret({prompt} [, {text}]) String like input() but hiding the text
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2214 insert({list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}]
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2215 invert({expr}) Number bitwise invert
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2216 isdirectory({directory}) Number |TRUE| if {directory} is a directory
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2217 islocked({expr}) Number |TRUE| if {expr} is locked
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2218 isnan({expr}) Number |TRUE| if {expr} is NaN
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2219 items({dict}) List key-value pairs in {dict}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2220 job_getchannel({job}) Channel get the channel handle for {job}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2221 job_info({job}) Dict get information about {job}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2222 job_setoptions({job}, {options}) none set options for {job}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2223 job_start({command} [, {options}])
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2224 Job start a job
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2225 job_status({job}) String get the status of {job}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2226 job_stop({job} [, {how}]) Number stop {job}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2227 join({list} [, {sep}]) String join {list} items into one String
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2228 js_decode({string}) any decode JS style JSON
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2229 js_encode({expr}) String encode JS style JSON
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2230 json_decode({string}) any decode JSON
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2231 json_encode({expr}) String encode JSON
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2232 keys({dict}) List keys in {dict}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2233 len({expr}) Number the length of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2234 libcall({lib}, {func}, {arg}) String call {func} in library {lib} with {arg}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2235 libcallnr({lib}, {func}, {arg}) Number idem, but return a Number
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2236 line({expr}) Number line nr of cursor, last line or mark
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2237 line2byte({lnum}) Number byte count of line {lnum}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2238 lispindent({lnum}) Number Lisp indent for line {lnum}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2239 localtime() Number current time
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2240 log({expr}) Float natural logarithm (base e) of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2241 log10({expr}) Float logarithm of Float {expr} to base 10
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2242 luaeval({expr} [, {expr}]) any evaluate |Lua| expression
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
2243 map({expr1}, {expr2}) List/Dict change each item in {expr1} to {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2244 maparg({name} [, {mode} [, {abbr} [, {dict}]]])
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
2245 String or Dict
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
2246 rhs of mapping {name} in mode {mode}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2247 mapcheck({name} [, {mode} [, {abbr}]])
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
2248 String check for mappings matching {name}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2249 match({expr}, {pat} [, {start} [, {count}]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2250 Number position where {pat} matches in {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2251 matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
2252 Number highlight {pattern} with {group}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2253 matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
5979
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
2254 Number highlight positions with {group}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2255 matcharg({nr}) List arguments of |:match|
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2256 matchdelete({id}) Number delete match identified by {id}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2257 matchend({expr}, {pat} [, {start} [, {count}]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2258 Number position where {pat} ends in {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2259 matchlist({expr}, {pat} [, {start} [, {count}]])
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
2260 List match and submatches of {pat} in {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2261 matchstr({expr}, {pat} [, {start} [, {count}]])
19
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
2262 String {count}'th match of {pat} in {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2263 matchstrpos({expr}, {pat} [, {start} [, {count}]])
8793
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
2264 List {count}'th match of {pat} in {expr}
10734
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
2265 max({expr}) Number maximum value of items in {expr}
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
2266 min({expr}) Number minimum value of items in {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2267 mkdir({name} [, {path} [, {prot}]])
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
2268 Number create directory {name}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2269 mode([expr]) String current editing mode
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2270 mzeval({expr}) any evaluate |MzScheme| expression
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2271 nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2272 nr2char({expr} [, {utf8}]) String single char with ASCII/UTF8 value {expr}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2273 or({expr}, {expr}) Number bitwise OR
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2274 pathshorten({expr}) String shorten directory names in a path
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2275 perleval({expr}) any evaluate |Perl| expression
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2276 pow({x}, {y}) Float {x} to the power of {y}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2277 prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2278 printf({fmt}, {expr1}...) String format text
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2279 pumvisible() Number whether popup menu is visible
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2280 pyeval({expr}) any evaluate |Python| expression
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2281 py3eval({expr}) any evaluate |python3| expression
10722
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
2282 pyxeval({expr}) any evaluate |python_x| expression
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2283 range({expr} [, {max} [, {stride}]])
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
2284 List items from {expr} to {max}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2285 readfile({fname} [, {binary} [, {max}]])
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
2286 List get list of lines from file {fname}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2287 reltime([{start} [, {end}]]) List get time value
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2288 reltimefloat({time}) Float turn the time value into a Float
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2289 reltimestr({time}) String turn time value into a String
11229
146a1e213b60 Update runtime files. Add Rust support.
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
2290 remote_expr({server}, {string} [, {idvar} [, {timeout}]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2291 String send expression
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2292 remote_foreground({server}) Number bring Vim server to the foreground
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2293 remote_peek({serverid} [, {retvar}])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2294 Number check for reply string
11229
146a1e213b60 Update runtime files. Add Rust support.
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
2295 remote_read({serverid} [, {timeout}])
146a1e213b60 Update runtime files. Add Rust support.
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
2296 String read reply string
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2297 remote_send({server}, {string} [, {idvar}])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2298 String send key sequence
11177
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
2299 remote_startserver({name}) none become server {name}
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
2300 String send key sequence
9344
33c1b85d408c commit https://github.com/vim/vim/commit/802a0d902fca423acb15f835d7b09183883d79a0
Christian Brabandt <cb@256bit.org>
parents: 9286
diff changeset
2301 remove({list}, {idx} [, {end}]) any remove items {idx}-{end} from {list}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2302 remove({dict}, {key}) any remove entry {key} from {dict}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2303 rename({from}, {to}) Number rename (move) file from {from} to {to}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2304 repeat({expr}, {count}) String repeat {expr} {count} times
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2305 resolve({filename}) String get filename a shortcut points to
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2306 reverse({list}) List reverse {list} in-place
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2307 round({expr}) Float round off {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2308 screenattr({row}, {col}) Number attribute at screen position
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2309 screenchar({row}, {col}) Number character at screen position
3986
56bb88c68f98 updated for version 7.3.748
Bram Moolenaar <bram@vim.org>
parents: 3967
diff changeset
2310 screencol() Number current cursor column
56bb88c68f98 updated for version 7.3.748
Bram Moolenaar <bram@vim.org>
parents: 3967
diff changeset
2311 screenrow() Number current cursor row
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2312 search({pattern} [, {flags} [, {stopline} [, {timeout}]]])
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
2313 Number search for {pattern}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2314 searchdecl({name} [, {global} [, {thisblock}]])
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2315 Number search for variable declaration
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2316 searchpair({start}, {middle}, {end} [, {flags} [, {skip} [...]]])
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2317 Number search for other end of start/end pair
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2318 searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [...]]])
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
2319 List search for other end of start/end pair
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2320 searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
2321 List search for {pattern}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2322 server2client({clientid}, {string})
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2323 Number send reply string
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2324 serverlist() String get a list of available servers
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
2325 setbufline({expr}, {lnum}, {line})
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
2326 Number set line {lnum} to {line} in buffer
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
2327 {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2328 setbufvar({expr}, {varname}, {val})
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2329 none set {varname} in buffer {expr} to {val}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2330 setcharsearch({dict}) Dict set character search from {dict}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2331 setcmdpos({pos}) Number set cursor position in command-line
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2332 setfperm({fname}, {mode}) Number set {fname} file permissions to {mode}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2333 setline({lnum}, {line}) Number set line {lnum} to {line}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2334 setloclist({nr}, {list} [, {action} [, {what}]])
647
19106f131c87 updated for version 7.0188
vimboss
parents: 644
diff changeset
2335 Number modify location list using {list}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2336 setmatches({list}) Number restore a list of matches
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2337 setpos({expr}, {list}) Number set the {expr} position to {list}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2338 setqflist({list} [, {action} [, {what}]])
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
2339 Number modify quickfix list using {list}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2340 setreg({n}, {v} [, {opt}]) Number set register to value and type
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2341 settabvar({nr}, {varname}, {val}) none set {varname} in tab page {nr} to {val}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2342 settabwinvar({tabnr}, {winnr}, {varname}, {val})
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2343 none set {varname} in window {winnr} in tab
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2344 page {tabnr} to {val}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2345 setwinvar({nr}, {varname}, {val}) none set {varname} in window {nr} to {val}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2346 sha256({string}) String SHA256 checksum of {string}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2347 shellescape({string} [, {special}])
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
2348 String escape {string} for use as shell
985
656853d9c014 updated for version 7.0-111
vimboss
parents: 874
diff changeset
2349 command argument
3875
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
2350 shiftwidth() Number effective value of 'shiftwidth'
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2351 simplify({filename}) String simplify filename as much as possible
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2352 sin({expr}) Float sine of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2353 sinh({expr}) Float hyperbolic sine of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2354 sort({list} [, {func} [, {dict}]])
2902
69e0783ed0ef updated for version 7.3.224
Bram Moolenaar <bram@vim.org>
parents: 2845
diff changeset
2355 List sort {list}, using {func} to compare
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2356 soundfold({word}) String sound-fold {word}
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
2357 spellbadword() String badly spelled word at cursor
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2358 spellsuggest({word} [, {max} [, {capital}]])
537
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
2359 List spelling suggestions
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2360 split({expr} [, {pat} [, {keepempty}]])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2361 List make |List| from {pat} separated {expr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2362 sqrt({expr}) Float square root of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2363 str2float({expr}) Float convert String to Float
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2364 str2nr({expr} [, {base}]) Number convert String to Number
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2365 strchars({expr} [, {skipcc}]) Number character length of the String {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2366 strcharpart({str}, {start} [, {len}])
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
2367 String {len} characters of {str} at {start}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2368 strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2369 strftime({format} [, {time}]) String time in specified format
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
2370 strgetchar({str}, {index}) Number get char {index} from {str}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2371 stridx({haystack}, {needle} [, {start}])
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
2372 Number index of {needle} in {haystack}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2373 string({expr}) String String representation of {expr} value
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2374 strlen({expr}) Number length of the String {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2375 strpart({str}, {start} [, {len}])
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
2376 String {len} characters of {str} at {start}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2377 strridx({haystack}, {needle} [, {start}])
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
2378 Number last index of {needle} in {haystack}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2379 strtrans({expr}) String translate string to make it printable
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2380 strwidth({expr}) Number display cell length of the String {expr}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2381 submatch({nr} [, {list}]) String or List
5794
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
2382 specific match in ":s" or substitute()
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2383 substitute({expr}, {pat}, {sub}, {flags})
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2384 String all {pat} in {expr} replaced with {sub}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2385 synID({lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2386 synIDattr({synID}, {what} [, {mode}])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2387 String attribute {what} of syntax ID {synID}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2388 synIDtrans({synID}) Number translated syntax ID of {synID}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2389 synconcealed({lnum}, {col}) List info about concealing
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2390 synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2391 system({expr} [, {input}]) String output of shell command/filter {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2392 systemlist({expr} [, {input}]) List output of shell command/filter {expr}
9344
33c1b85d408c commit https://github.com/vim/vim/commit/802a0d902fca423acb15f835d7b09183883d79a0
Christian Brabandt <cb@256bit.org>
parents: 9286
diff changeset
2393 tabpagebuflist([{arg}]) List list of buffer numbers in tab page
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2394 tabpagenr([{arg}]) Number number of current or last tab page
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2395 tabpagewinnr({tabarg} [, {arg}]) Number number of current window in tab page
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2396 taglist({expr} [, {filename}]) List list of tags matching {expr}
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2397 tagfiles() List tags files used
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2398 tan({expr}) Float tangent of {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2399 tanh({expr}) Float hyperbolic tangent of {expr}
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
2400 tempname() String name for a temporary file
12035
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
2401 term_getaltscreen({buf}) Number get the alternate screen flag
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
2402 term_getattr({attr}, {what}) Number get the value of attribute {what}
11876
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
2403 term_getcursor({buf}) List get the cursor position of a terminal
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
2404 term_getjob({buf}) Job get the job associated with a terminal
11904
40322e8f07e7 patch 8.0.0832: terminal function arguments are not consistent
Christian Brabandt <cb@256bit.org>
parents: 11882
diff changeset
2405 term_getline({buf}, {row}) String get a line of text from a terminal
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
2406 term_getscrolled({buf}) Number get the scroll count of a terminal
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
2407 term_getsize({buf}) List get the size of a terminal
11882
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
2408 term_getstatus({buf}) String get the status of a terminal
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
2409 term_gettitle({buf}) String get the title of a terminal
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2410 term_gettty({buf}, [{input}]) String get the tty name of a terminal
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
2411 term_list() List get the list of terminal buffers
11904
40322e8f07e7 patch 8.0.0832: terminal function arguments are not consistent
Christian Brabandt <cb@256bit.org>
parents: 11882
diff changeset
2412 term_scrape({buf}, {row}) List get row of a terminal screen
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
2413 term_sendkeys({buf}, {keys}) none send keystrokes to a terminal
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
2414 term_start({cmd}, {options}) Job open a terminal window and run a job
12007
64b822c4f7ae patch 8.0.0884: can't specify the wait time for term_wait()
Christian Brabandt <cb@256bit.org>
parents: 12003
diff changeset
2415 term_wait({buf} [, {time}]) Number wait for screen to be updated
9121
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
2416 test_alloc_fail({id}, {countdown}, {repeat})
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
2417 none make memory allocation fail
9644
9f7bcc2c3b97 commit https://github.com/vim/vim/commit/6f1d9a096bf22d50c727dca73abbfb8e3ff55176
Christian Brabandt <cb@256bit.org>
parents: 9636
diff changeset
2418 test_autochdir() none enable 'autochdir' during startup
12337
040a892d0eed patch 8.0.1048: no test for what 8.0.1020 fixes
Christian Brabandt <cb@256bit.org>
parents: 12321
diff changeset
2419 test_feedinput() none add key sequence to input buffer
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2420 test_garbagecollect_now() none free memory right now for testing
11006
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
2421 test_ignore_error({expr}) none ignore a specific error
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2422 test_null_channel() Channel null value for testing
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2423 test_null_dict() Dict null value for testing
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2424 test_null_job() Job null value for testing
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2425 test_null_list() List null value for testing
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2426 test_null_partial() Funcref null value for testing
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
2427 test_null_string() String null value for testing
11105
7c7e496e625d patch 8.0.0440: not enough test coverage in Insert mode
Christian Brabandt <cb@256bit.org>
parents: 11062
diff changeset
2428 test_override({expr}, {val}) none test with Vim internal overrides
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
2429 test_settime({expr}) none set current time for testing
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
2430 timer_info([{id}]) List information about timers
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
2431 timer_pause({id}, {pause}) none pause or unpause a timer
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2432 timer_start({time}, {callback} [, {options}])
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
2433 Number create a timer
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2434 timer_stop({timer}) none stop a timer
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
2435 timer_stopall() none stop all timers
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2436 tolower({expr}) String the String {expr} switched to lowercase
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2437 toupper({expr}) String the String {expr} switched to uppercase
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2438 tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
2439 to chars in {tostr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2440 trunc({expr}) Float truncate Float {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2441 type({name}) Number type of variable {name}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2442 undofile({name}) String undo file name for {name}
2280
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
2443 undotree() List undo file tree
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2444 uniq({list} [, {func} [, {dict}]])
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
2445 List remove adjacent duplicates from a list
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2446 values({dict}) List values in {dict}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2447 virtcol({expr}) Number screen column of cursor or mark
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2448 visualmode([expr]) String last visual mode used
4151
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
2449 wildmenumode() Number whether 'wildmenu' mode is active
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2450 win_findbuf({bufnr}) List find windows containing {bufnr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2451 win_getid([{win} [, {tab}]]) Number get window ID for {win} in {tab}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2452 win_gotoid({expr}) Number go to window with ID {expr}
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2453 win_id2tabwin({expr}) List get tab and window nr from window ID
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2454 win_id2win({expr}) Number get window nr from window ID
12977
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
2455 win_screenpos({nr}) List get screen position of window {nr}
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2456 winbufnr({nr}) Number buffer number of window {nr}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2457 wincol() Number window column of the cursor
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2458 winheight({nr}) Number height of window {nr}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2459 winline() Number window line of the cursor
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2460 winnr([{expr}]) Number number of current window
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2461 winrestcmd() String returns command to restore window sizes
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2462 winrestview({dict}) none restore view of current window
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
2463 winsaveview() Dict save view of current window
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2464 winwidth({nr}) Number width of window {nr}
7480
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
2465 wordcount() Dict get byte/char/word statistics
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
2466 writefile({list}, {fname} [, {flags}])
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
2467 Number write list of lines to file {fname}
9536
b2aada04d84e commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents: 9527
diff changeset
2468 xor({expr}, {expr}) Number bitwise XOR
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2469
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
2470
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2471 abs({expr}) *abs()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2472 Return the absolute value of {expr}. When {expr} evaluates to
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2473 a |Float| abs() returns a |Float|. When {expr} can be
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2474 converted to a |Number| abs() returns a |Number|. Otherwise
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2475 abs() gives an error message and returns -1.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2476 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2477 echo abs(1.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2478 < 1.456 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2479 echo abs(-5.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2480 < 5.456 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2481 echo abs(-4)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2482 < 4
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2483 {only available when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2484
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2485
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2486 acos({expr}) *acos()*
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2487 Return the arc cosine of {expr} measured in radians, as a
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
2488 |Float| in the range of [0, pi].
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
2489 {expr} must evaluate to a |Float| or a |Number| in the range
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2490 [-1, 1].
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2491 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2492 :echo acos(0)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2493 < 1.570796 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2494 :echo acos(-0.5)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2495 < 2.094395
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
2496 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2497
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2498
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2499 add({list}, {expr}) *add()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2500 Append the item {expr} to |List| {list}. Returns the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2501 resulting |List|. Examples: >
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2502 :let alist = add([1, 2, 3], item)
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2503 :call add(mylist, "woodstock")
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2504 < Note that when {expr} is a |List| it is appended as a single
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
2505 item. Use |extend()| to concatenate |Lists|.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
2506 Use |insert()| to add an item at another position.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2507
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2508
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2509 and({expr}, {expr}) *and()*
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2510 Bitwise AND on the two arguments. The arguments are converted
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2511 to a number. A List, Dict or Float argument causes an error.
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2512 Example: >
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2513 :let flag = and(bits, 0x80)
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2514
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
2515
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2516 append({lnum}, {expr}) *append()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2517 When {expr} is a |List|: Append each item of the |List| as a
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2518 text line below line {lnum} in the current buffer.
153
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
2519 Otherwise append {expr} as one text line below line {lnum} in
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
2520 the current buffer.
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
2521 {lnum} can be zero to insert a line before the first one.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2522 Returns 1 for failure ({lnum} out of range or out of memory),
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
2523 0 for success. Example: >
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2524 :let failed = append(line('$'), "# THE END")
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
2525 :let failed = append(0, ["Chapter 1", "the beginning"])
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
2526 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2527 *argc()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2528 argc() The result is the number of files in the argument list of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2529 current window. See |arglist|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2530
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2531 *argidx()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2532 argidx() The result is the current index in the argument list. 0 is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2533 the first file. argc() - 1 is the last one. See |arglist|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2534
5942
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2535 *arglistid()*
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
2536 arglistid([{winnr} [, {tabnr}]])
5942
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2537 Return the argument list ID. This is a number which
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2538 identifies the argument list being used. Zero is used for the
6153
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
2539 global argument list. See |arglist|.
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
2540 Return -1 if the arguments are invalid.
5942
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2541
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2542 Without arguments use the current window.
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2543 With {winnr} only use this window in the current tab page.
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2544 With {winnr} and {tabnr} use the window in the specified tab
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2545 page.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
2546 {winnr} can be the window number or the |window-ID|.
5942
66eead134d68 updated for version 7.4.312
Bram Moolenaar <bram@vim.org>
parents: 5940
diff changeset
2547
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2548 *argv()*
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents: 810
diff changeset
2549 argv([{nr}]) The result is the {nr}th file in the argument list of the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2550 current window. See |arglist|. "argv(0)" is the first one.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2551 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2552 :let i = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2553 :while i < argc()
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2554 : let f = escape(fnameescape(argv(i)), '.')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2555 : exe 'amenu Arg.' . f . ' :e ' . f . '<CR>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2556 : let i = i + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2557 :endwhile
818
1f929f3ca806 updated for version 7.0c03
vimboss
parents: 810
diff changeset
2558 < Without the {nr} argument a |List| with the whole |arglist| is
1f929f3ca806 updated for version 7.0c03
vimboss
parents: 810
diff changeset
2559 returned.
1f929f3ca806 updated for version 7.0c03
vimboss
parents: 810
diff changeset
2560
7279
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2561 *assert_equal()*
7584
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2562 assert_equal({expected}, {actual} [, {msg}])
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2563 When {expected} and {actual} are not equal an error message is
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2564 added to |v:errors|.
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2565 There is no automatic conversion, the String "4" is different
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2566 from the Number 4. And the number 4 is different from the
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2567 Float 4.0. The value of 'ignorecase' is not used here, case
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2568 always matters.
7279
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2569 When {msg} is omitted an error in the form "Expected
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2570 {expected} but got {actual}" is produced.
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2571 Example: >
7279
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2572 assert_equal('foo', 'bar')
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2573 < Will result in a string to be added to |v:errors|:
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2574 test.vim line 12: Expected 'foo' but got 'bar' ~
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2575
7584
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2576 assert_exception({error} [, {msg}]) *assert_exception()*
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2577 When v:exception does not contain the string {error} an error
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2578 message is added to |v:errors|.
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2579 This can be used to assert that a command throws an exception.
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2580 Using the error number, followed by a colon, avoids problems
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2581 with translations: >
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2582 try
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2583 commandthatfails
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2584 call assert_false(1, 'command should have failed')
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2585 catch
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2586 call assert_exception('E492:')
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2587 endtry
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2588
7593
87e607fb6853 commit https://github.com/vim/vim/commit/a260b87d9da17f605666630f18c1ed909c2b8bae
Christian Brabandt <cb@256bit.org>
parents: 7584
diff changeset
2589 assert_fails({cmd} [, {error}]) *assert_fails()*
87e607fb6853 commit https://github.com/vim/vim/commit/a260b87d9da17f605666630f18c1ed909c2b8bae
Christian Brabandt <cb@256bit.org>
parents: 7584
diff changeset
2590 Run {cmd} and add an error message to |v:errors| if it does
87e607fb6853 commit https://github.com/vim/vim/commit/a260b87d9da17f605666630f18c1ed909c2b8bae
Christian Brabandt <cb@256bit.org>
parents: 7584
diff changeset
2591 NOT produce an error.
10348
c78513465e6e commit https://github.com/vim/vim/commit/25de4c232d580583feadae11ab34e3cc6333c350
Christian Brabandt <cb@256bit.org>
parents: 10301
diff changeset
2592 When {error} is given it must match in |v:errmsg|.
7593
87e607fb6853 commit https://github.com/vim/vim/commit/a260b87d9da17f605666630f18c1ed909c2b8bae
Christian Brabandt <cb@256bit.org>
parents: 7584
diff changeset
2593
7584
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2594 assert_false({actual} [, {msg}]) *assert_false()*
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2595 When {actual} is not false an error message is added to
7584
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2596 |v:errors|, like with |assert_equal()|.
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
2597 A value is false when it is zero. When {actual} is not a
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2598 number the assert fails.
9636
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2599 When {msg} is omitted an error in the form
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2600 "Expected False but got {actual}" is produced.
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2601
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2602 assert_inrange({lower}, {upper}, {actual} [, {msg}]) *assert_inrange()*
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2603 This asserts number values. When {actual} is lower than
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2604 {lower} or higher than {upper} an error message is added to
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2605 |v:errors|.
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2606 When {msg} is omitted an error in the form
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2607 "Expected range {lower} - {upper}, but got {actual}" is
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2608 produced.
7279
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2609
8749
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2610 *assert_match()*
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2611 assert_match({pattern}, {actual} [, {msg}])
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2612 When {pattern} does not match {actual} an error message is
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2613 added to |v:errors|.
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2614
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2615 {pattern} is used as with |=~|: The matching is always done
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2616 like 'magic' was set and 'cpoptions' is empty, no matter what
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2617 the actual value of 'magic' or 'cpoptions' is.
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2618
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2619 {actual} is used as a string, automatic conversion applies.
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2620 Use "^" and "$" to match with the start and end of the text.
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2621 Use both to match the whole text.
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2622
9636
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2623 When {msg} is omitted an error in the form
ccbb8e393d80 commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents: 9626
diff changeset
2624 "Pattern {pattern} does not match {actual}" is produced.
8749
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2625 Example: >
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2626 assert_match('^f.*o$', 'foobar')
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2627 < Will result in a string to be added to |v:errors|:
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2628 test.vim line 12: Pattern '^f.*o$' does not match 'foobar' ~
65a5a18d3acf commit https://github.com/vim/vim/commit/ea6553bec340920d8a09c7210cdc2d218e25ace2
Christian Brabandt <cb@256bit.org>
parents: 8748
diff changeset
2629
8831
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2630 *assert_notequal()*
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2631 assert_notequal({expected}, {actual} [, {msg}])
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2632 The opposite of `assert_equal()`: add an error message to
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2633 |v:errors| when {expected} and {actual} are equal.
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2634
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2635 *assert_notmatch()*
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2636 assert_notmatch({pattern}, {actual} [, {msg}])
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2637 The opposite of `assert_match()`: add an error message to
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2638 |v:errors| when {pattern} matches {actual}.
6f41d68aa68e commit https://github.com/vim/vim/commit/b50e5f56861deb867478997397f7c784a7043233
Christian Brabandt <cb@256bit.org>
parents: 8795
diff changeset
2639
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2640 assert_report({msg}) *assert_report()*
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2641 Report a test failure directly, using {msg}.
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2642
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
2643 assert_true({actual} [, {msg}]) *assert_true()*
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2644 When {actual} is not true an error message is added to
7584
9b7de205336d commit https://github.com/vim/vim/commit/a803c7f94070f94b831fdfd1984f288c8b825b5d
Christian Brabandt <cb@256bit.org>
parents: 7557
diff changeset
2645 |v:errors|, like with |assert_equal()|.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2646 A value is TRUE when it is a non-zero number. When {actual}
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2647 is not a number the assert fails.
7279
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2648 When {msg} is omitted an error in the form "Expected True but
b5e9810b389d commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents: 7277
diff changeset
2649 got {actual}" is produced.
7277
6600871bb38c commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents: 7147
diff changeset
2650
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2651 asin({expr}) *asin()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
2652 Return the arc sine of {expr} measured in radians, as a |Float|
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2653 in the range of [-pi/2, pi/2].
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
2654 {expr} must evaluate to a |Float| or a |Number| in the range
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2655 [-1, 1].
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2656 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2657 :echo asin(0.8)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2658 < 0.927295 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2659 :echo asin(-0.5)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2660 < -0.523599
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
2661 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2662
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2663
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2664 atan({expr}) *atan()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2665 Return the principal value of the arc tangent of {expr}, in
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2666 the range [-pi/2, +pi/2] radians, as a |Float|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2667 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2668 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2669 :echo atan(100)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2670 < 1.560797 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2671 :echo atan(-4.01)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2672 < -1.326405
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2673 {only available when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2674
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2675
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2676 atan2({expr1}, {expr2}) *atan2()*
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2677 Return the arc tangent of {expr1} / {expr2}, measured in
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
2678 radians, as a |Float| in the range [-pi, pi].
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
2679 {expr1} and {expr2} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2680 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2681 :echo atan2(-1, 1)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2682 < -0.785398 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2683 :echo atan2(1, -1)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2684 < 2.356194
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
2685 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2686
12883
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2687 balloon_show({expr}) *balloon_show()*
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2688 Show {expr} inside the balloon. For the GUI {expr} is used as
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2689 a string. For a terminal {expr} can be a list, which contains
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2690 the lines of the balloon. If {expr} is not a list it will be
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2691 split with |balloon_split()|.
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2692
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
2693 Example: >
11014
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2694 func GetBalloonContent()
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2695 " initiate getting the content
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2696 return ''
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2697 endfunc
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2698 set balloonexpr=GetBalloonContent()
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2699
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2700 func BalloonCallback(result)
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
2701 call balloon_show(a:result)
11014
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2702 endfunc
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2703 <
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2704 The intended use is that fetching the content of the balloon
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2705 is initiated from 'balloonexpr'. It will invoke an
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2706 asynchronous method, in which a callback invokes
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2707 balloon_show(). The 'balloonexpr' itself can return an
fb2bcfa6a8de patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents: 11006
diff changeset
2708 empty string or a placeholder.
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
2709
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
2710 When showing a balloon is not possible nothing happens, no
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
2711 error message.
12885
10cb5c3df3f5 patch 8.0.1319: can't build GUI on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12883
diff changeset
2712 {only available when compiled with the +balloon_eval or
10cb5c3df3f5 patch 8.0.1319: can't build GUI on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12883
diff changeset
2713 +balloon_eval_term feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
2714
12883
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2715 balloon_split({msg}) *balloon_split()*
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2716 Split {msg} into lines to be displayed in a balloon. The
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2717 splits are made for the current window size and optimize to
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2718 show debugger output.
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2719 Returns a |List| with the split lines.
12885
10cb5c3df3f5 patch 8.0.1319: can't build GUI on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12883
diff changeset
2720 {only available when compiled with the +balloon_eval_term
10cb5c3df3f5 patch 8.0.1319: can't build GUI on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12883
diff changeset
2721 feature}
12883
058e93aee621 patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents: 12857
diff changeset
2722
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2723 *browse()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2724 browse({save}, {title}, {initdir}, {default})
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2725 Put up a file requester. This only works when "has("browse")"
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2726 returns |TRUE| (only in some GUI versions).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2727 The input fields are:
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2728 {save} when |TRUE|, select file to write
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2729 {title} title for the requester
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2730 {initdir} directory to start browsing in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2731 {default} default file name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2732 When the "Cancel" button is hit, something went wrong, or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2733 browsing is not possible, an empty string is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2734
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2735 *browsedir()*
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2736 browsedir({title}, {initdir})
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2737 Put up a directory requester. This only works when
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2738 "has("browse")" returns |TRUE| (only in some GUI versions).
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2739 On systems where a directory browser is not supported a file
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2740 browser is used. In that case: select a file in the directory
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2741 to be used.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2742 The input fields are:
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2743 {title} title for the requester
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2744 {initdir} directory to start browsing in
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2745 When the "Cancel" button is hit, something went wrong, or
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2746 browsing is not possible, an empty string is returned.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
2747
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2748 bufexists({expr}) *bufexists()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2749 The result is a Number, which is |TRUE| if a buffer called
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2750 {expr} exists.
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2751 If the {expr} argument is a number, buffer numbers are used.
12909
1578c0ba0dd1 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12885
diff changeset
2752 Number zero is the alternate buffer for the current window.
1578c0ba0dd1 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12885
diff changeset
2753
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2754 If the {expr} argument is a string it must match a buffer name
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2755 exactly. The name can be:
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2756 - Relative to the current directory.
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2757 - A full path.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2758 - The name of a buffer with 'buftype' set to "nofile".
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2759 - A URL name.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2760 Unlisted buffers will be found.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2761 Note that help files are listed by their short name in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2762 output of |:buffers|, but bufexists() requires using their
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2763 long name to be able to find them.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2764 bufexists() may report a buffer exists, but to use the name
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2765 with a |:buffer| command you may need to use |expand()|. Esp
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2766 for MS-Windows 8.3 names in the form "c:\DOCUME~1"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2767 Use "bufexists(0)" to test for the existence of an alternate
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2768 file name.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2769 *buffer_exists()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2770 Obsolete name: buffer_exists().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2771
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2772 buflisted({expr}) *buflisted()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2773 The result is a Number, which is |TRUE| if a buffer called
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2774 {expr} exists and is listed (has the 'buflisted' option set).
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2775 The {expr} argument is used like with |bufexists()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2776
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2777 bufloaded({expr}) *bufloaded()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
2778 The result is a Number, which is |TRUE| if a buffer called
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2779 {expr} exists and is loaded (shown in a window or hidden).
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
2780 The {expr} argument is used like with |bufexists()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2781
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2782 bufname({expr}) *bufname()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2783 The result is the name of a buffer, as it is displayed by the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2784 ":ls" command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2785 If {expr} is a Number, that buffer number's name is given.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2786 Number zero is the alternate buffer for the current window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2787 If {expr} is a String, it is used as a |file-pattern| to match
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
2788 with the buffer names. This is always done like 'magic' is
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2789 set and 'cpoptions' is empty. When there is more than one
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2790 match an empty string is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2791 "" or "%" can be used for the current buffer, "#" for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2792 alternate buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2793 A full match is preferred, otherwise a match at the start, end
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
2794 or middle of the buffer name is accepted. If you only want a
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
2795 full match then put "^" at the start and "$" at the end of the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
2796 pattern.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2797 Listed buffers are found first. If there is a single match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2798 with a listed buffer, that one is returned. Next unlisted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2799 buffers are searched for.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2800 If the {expr} is a String, but you want to use it as a buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2801 number, force it to be a Number by adding zero to it: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2802 :echo bufname("3" + 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2803 < If the buffer doesn't exist, or doesn't have a name, an empty
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2804 string is returned. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2805 bufname("#") alternate buffer name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2806 bufname(3) name of buffer 3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2807 bufname("%") name of current buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2808 bufname("file2") name of buffer where "file2" matches.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2809 < *buffer_name()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2810 Obsolete name: buffer_name().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2811
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2812 *bufnr()*
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
2813 bufnr({expr} [, {create}])
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
2814 The result is the number of a buffer, as it is displayed by
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2815 the ":ls" command. For the use of {expr}, see |bufname()|
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
2816 above.
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
2817 If the buffer doesn't exist, -1 is returned. Or, if the
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
2818 {create} argument is present and not zero, a new, unlisted,
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
2819 buffer is created and its number is returned.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2820 bufnr("$") is the last buffer: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2821 :let last_buffer = bufnr("$")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2822 < The result is a Number, which is the highest buffer number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2823 of existing buffers. Note that not all buffers with a smaller
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2824 number necessarily exist, because ":bwipeout" may have removed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2825 them. Use bufexists() to test for the existence of a buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2826 *buffer_number()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2827 Obsolete name: buffer_number().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2828 *last_buffer_nr()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2829 Obsolete name for bufnr("$"): last_buffer_nr().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2830
9219
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2831 bufwinid({expr}) *bufwinid()*
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
2832 The result is a Number, which is the |window-ID| of the first
9219
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2833 window associated with buffer {expr}. For the use of {expr},
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
2834 see |bufname()| above. If buffer {expr} doesn't exist or
9219
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2835 there is no such window, -1 is returned. Example: >
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2836
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2837 echo "A window containing buffer 1 is " . (bufwinid(1))
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2838 <
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2839 Only deals with the current tab page.
7363f5cc4cb8 commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents: 9121
diff changeset
2840
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2841 bufwinnr({expr}) *bufwinnr()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2842 The result is a Number, which is the number of the first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2843 window associated with buffer {expr}. For the use of {expr},
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
2844 see |bufname()| above. If buffer {expr} doesn't exist or
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2845 there is no such window, -1 is returned. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2846
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2847 echo "A window containing buffer 1 is " . (bufwinnr(1))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2848
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2849 < The number can be used with |CTRL-W_w| and ":wincmd w"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2850 |:wincmd|.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
2851 Only deals with the current tab page.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2852
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2853 byte2line({byte}) *byte2line()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2854 Return the line number that contains the character at byte
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2855 count {byte} in the current buffer. This includes the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2856 end-of-line character, depending on the 'fileformat' option
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2857 for the current buffer. The first character has byte count
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2858 one.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2859 Also see |line2byte()|, |go| and |:goto|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2860 {not available when compiled without the |+byte_offset|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2861 feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2862
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2863 byteidx({expr}, {nr}) *byteidx()*
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2864 Return byte index of the {nr}'th character in the string
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2865 {expr}. Use zero for the first character, it returns zero.
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2866 This function is only useful when there are multibyte
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2867 characters, otherwise the returned value is equal to {nr}.
5413
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2868 Composing characters are not counted separately, their byte
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2869 length is added to the preceding base character. See
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2870 |byteidxcomp()| below for counting composing characters
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2871 separately.
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2872 Example : >
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2873 echo matchstr(str, ".", byteidx(str, 3))
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2874 < will display the fourth character. Another way to do the
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2875 same: >
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2876 let s = strpart(str, byteidx(str, 3))
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2877 echo strpart(s, 0, byteidx(s, 1))
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
2878 < Also see |strgetchar()| and |strcharpart()|.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
2879
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
2880 If there are less than {nr} characters -1 is returned.
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2881 If there are exactly {nr} characters the length of the string
5413
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2882 in bytes is returned.
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2883
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2884 byteidxcomp({expr}, {nr}) *byteidxcomp()*
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2885 Like byteidx(), except that a composing character is counted
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2886 as a separate character. Example: >
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2887 let s = 'e' . nr2char(0x301)
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2888 echo byteidx(s, 1)
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2889 echo byteidxcomp(s, 1)
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2890 echo byteidxcomp(s, 2)
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2891 < The first and third echo result in 3 ('e' plus composing
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2892 character is 3 bytes), the second echo results in 1 ('e' is
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2893 one byte).
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2894 Only works different from byteidx() when 'encoding' is set to
3109053ce4e3 updated for version 7.4.057
Bram Moolenaar <bram@vim.org>
parents: 5340
diff changeset
2895 a Unicode encoding.
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
2896
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
2897 call({func}, {arglist} [, {dict}]) *call()* *E699*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2898 Call function {func} with the items in |List| {arglist} as
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
2899 arguments.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
2900 {func} can either be a |Funcref| or the name of a function.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
2901 a:firstline and a:lastline are set to the cursor line.
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
2902 Returns the return value of the called function.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
2903 {dict} is for functions with the "dict" attribute. It will be
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
2904 used to set the local variable "self". |Dictionary-function|
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
2905
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2906 ceil({expr}) *ceil()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2907 Return the smallest integral value greater than or equal to
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2908 {expr} as a |Float| (round up).
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2909 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2910 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2911 echo ceil(1.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2912 < 2.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2913 echo ceil(-5.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2914 < -5.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2915 echo ceil(4.0)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2916 < 4.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2917 {only available when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
2918
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2919 ch_canread({handle}) *ch_canread()*
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2920 Return non-zero when there is something to read from {handle}.
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2921 {handle} can be a Channel or a Job that has a Channel.
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2922
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2923 This is useful to read from a channel at a convenient time,
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2924 e.g. from a timer.
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2925
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2926 Note that messages are dropped when the channel does not have
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2927 a callback. Add a close callback to avoid that.
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2928
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2929 {only available when compiled with the |+channel| feature}
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2930
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2931 ch_close({handle}) *ch_close()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2932 Close {handle}. See |channel-close|.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2933 {handle} can be a Channel or a Job that has a Channel.
10054
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2934 A close callback is not invoked.
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2935
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2936 {only available when compiled with the |+channel| feature}
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2937
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2938 ch_close_in({handle}) *ch_close_in()*
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2939 Close the "in" part of {handle}. See |channel-close-in|.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2940 {handle} can be a Channel or a Job that has a Channel.
10054
d4b7232fc63a commit https://github.com/vim/vim/commit/0874a83e9be1b39fdb217f02b427bf1d6133a4d8
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
2941 A close callback is not invoked.
8392
1bf1b88968a2 commit https://github.com/vim/vim/commit/328da0dcb7be34b594725eef6dc98d3ea6516d69
Christian Brabandt <cb@256bit.org>
parents: 8303
diff changeset
2942
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
2943 {only available when compiled with the |+channel| feature}
7895
bff95e0d8885 commit https://github.com/vim/vim/commit/f57969a20a4398f56e3028a6cc1102f9f9286ccf
Christian Brabandt <cb@256bit.org>
parents: 7876
diff changeset
2944
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2945 ch_evalexpr({handle}, {expr} [, {options}]) *ch_evalexpr()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2946 Send {expr} over {handle}. The {expr} is encoded
8285
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2947 according to the type of channel. The function cannot be used
8303
88207f4b861a commit https://github.com/vim/vim/commit/dae8d21dd291df6a6679a00be64e18bca0156576
Christian Brabandt <cb@256bit.org>
parents: 8291
diff changeset
2948 with a raw channel. See |channel-use|.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2949 {handle} can be a Channel or a Job that has a Channel.
8285
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2950 *E917*
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2951 {options} must be a Dictionary. It must not have a "callback"
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
2952 entry. It can have a "timeout" entry to specify the timeout
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
2953 for this specific request.
8285
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2954
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2955 ch_evalexpr() waits for a response and returns the decoded
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2956 expression. When there is an error or timeout it returns an
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2957 empty string.
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2958
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2959 {only available when compiled with the |+channel| feature}
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2960
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2961 ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2962 Send {string} over {handle}.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2963 {handle} can be a Channel or a Job that has a Channel.
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2964
8285
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2965 Works like |ch_evalexpr()|, but does not encode the request or
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2966 decode the response. The caller is responsible for the
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2967 correct contents. Also does not add a newline for a channel
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2968 in NL mode, the caller must do that. The NL in the response
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2969 is removed.
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
2970 Note that Vim does not know when the text received on a raw
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
2971 channel is complete, it may only return the first part and you
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
2972 need to use ch_readraw() to fetch the rest.
8285
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2973 See |channel-use|.
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2974
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2975 {only available when compiled with the |+channel| feature}
e05e28dcb590 commit https://github.com/vim/vim/commit/8b1862a31639becadcbbca5dc2eaa92db73e8e5f
Christian Brabandt <cb@256bit.org>
parents: 8275
diff changeset
2976
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2977 ch_getbufnr({handle}, {what}) *ch_getbufnr()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
2978 Get the buffer number that {handle} is using for {what}.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
2979 {handle} can be a Channel or a Job that has a Channel.
8291
ac0c43e7af20 commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents: 8285
diff changeset
2980 {what} can be "err" for stderr, "out" for stdout or empty for
ac0c43e7af20 commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents: 8285
diff changeset
2981 socket output.
ac0c43e7af20 commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents: 8285
diff changeset
2982 Returns -1 when there is no buffer.
ac0c43e7af20 commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents: 8285
diff changeset
2983 {only available when compiled with the |+channel| feature}
ac0c43e7af20 commit https://github.com/vim/vim/commit/c7f0ebc6d1e1cdaed816b88a0d6092c5ace615eb
Christian Brabandt <cb@256bit.org>
parents: 8285
diff changeset
2984
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2985 ch_getjob({channel}) *ch_getjob()*
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2986 Get the Job associated with {channel}.
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2987 If there is no job calling |job_status()| on the returned Job
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2988 will result in "fail".
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2989
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2990 {only available when compiled with the |+channel| and
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2991 |+job| features}
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
2992
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
2993 ch_info({handle}) *ch_info()*
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
2994 Returns a Dictionary with information about {handle}. The
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
2995 items are:
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
2996 "id" number of the channel
10233
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
2997 "status" "open", "buffered" or "closed", like
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
2998 ch_status()
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
2999 When opened with ch_open():
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3000 "hostname" the hostname of the address
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3001 "port" the port of the address
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3002 "sock_status" "open" or "closed"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3003 "sock_mode" "NL", "RAW", "JSON" or "JS"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3004 "sock_io" "socket"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3005 "sock_timeout" timeout in msec
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3006 When opened with job_start():
10233
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3007 "out_status" "open", "buffered" or "closed"
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3008 "out_mode" "NL", "RAW", "JSON" or "JS"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3009 "out_io" "null", "pipe", "file" or "buffer"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3010 "out_timeout" timeout in msec
10233
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3011 "err_status" "open", "buffered" or "closed"
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3012 "err_mode" "NL", "RAW", "JSON" or "JS"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3013 "err_io" "out", "null", "pipe", "file" or "buffer"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3014 "err_timeout" timeout in msec
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3015 "in_status" "open" or "closed"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3016 "in_mode" "NL", "RAW", "JSON" or "JS"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3017 "in_io" "null", "pipe", "file" or "buffer"
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3018 "in_timeout" timeout in msec
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
3019
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3020 ch_log({msg} [, {handle}]) *ch_log()*
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3021 Write {msg} in the channel log file, if it was opened with
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3022 |ch_logfile()|.
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3023 When {handle} is passed the channel number is used for the
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3024 message.
10449
222b1432814e commit https://github.com/vim/vim/commit/5162822914372fc916a93f85848c0c82209e7cec
Christian Brabandt <cb@256bit.org>
parents: 10422
diff changeset
3025 {handle} can be a Channel or a Job that has a Channel. The
10244
876fbdd84e52 commit https://github.com/vim/vim/commit/2ec618c9feac4573b154510236ad8121c77d0eca
Christian Brabandt <cb@256bit.org>
parents: 10237
diff changeset
3026 Channel must be open for the channel number to be used.
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3027
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3028 ch_logfile({fname} [, {mode}]) *ch_logfile()*
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3029 Start logging channel activity to {fname}.
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3030 When {fname} is an empty string: stop logging.
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3031
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3032 When {mode} is omitted or "a" append to the file.
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3033 When {mode} is "w" start with an empty file.
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3034
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3035 The file is flushed after every message, on Unix you can use
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3036 "tail -f" to see what is going on in real time.
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3037
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
3038 This function is not available in the |sandbox|.
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
3039 NOTE: the channel communication is stored in the file, be
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
3040 aware that this may contain confidential and privacy sensitive
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
3041 information, e.g. a password you type in a terminal window.
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
3042
8392
1bf1b88968a2 commit https://github.com/vim/vim/commit/328da0dcb7be34b594725eef6dc98d3ea6516d69
Christian Brabandt <cb@256bit.org>
parents: 8303
diff changeset
3043
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3044 ch_open({address} [, {options}]) *ch_open()*
7788
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
3045 Open a channel to {address}. See |channel|.
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3046 Returns a Channel. Use |ch_status()| to check for failure.
7788
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
3047
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
3048 {address} has the form "hostname:port", e.g.,
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
3049 "localhost:8765".
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
3050
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3051 If {options} is given it must be a |Dictionary|.
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3052 See |channel-open-options|.
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3053
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3054 {only available when compiled with the |+channel| feature}
7788
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
3055
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3056 ch_read({handle} [, {options}]) *ch_read()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3057 Read from {handle} and return the received message.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
3058 {handle} can be a Channel or a Job that has a Channel.
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
3059 For a NL channel this waits for a NL to arrive, except when
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
3060 there is nothing more to read (channel was closed).
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3061 See |channel-more|.
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3062 {only available when compiled with the |+channel| feature}
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3063
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3064 ch_readraw({handle} [, {options}]) *ch_readraw()*
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3065 Like ch_read() but for a JS and JSON channel does not decode
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
3066 the message. For a NL channel it does not block waiting for
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
3067 the NL to arrive, but otherwise works like ch_read().
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
3068 See |channel-more|.
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3069 {only available when compiled with the |+channel| feature}
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3070
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3071 ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3072 Send {expr} over {handle}. The {expr} is encoded
7992
78106b0f2c56 commit https://github.com/vim/vim/commit/cbebd4879cc78e670d79b2c57dc33d7b911c962a
Christian Brabandt <cb@256bit.org>
parents: 7967
diff changeset
3073 according to the type of channel. The function cannot be used
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3074 with a raw channel.
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
3075 See |channel-use|. *E912*
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
3076 {handle} can be a Channel or a Job that has a Channel.
7895
bff95e0d8885 commit https://github.com/vim/vim/commit/f57969a20a4398f56e3028a6cc1102f9f9286ccf
Christian Brabandt <cb@256bit.org>
parents: 7876
diff changeset
3077
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3078 {only available when compiled with the |+channel| feature}
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3079
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3080 ch_sendraw({handle}, {string} [, {options}]) *ch_sendraw()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3081 Send {string} over {handle}.
7992
78106b0f2c56 commit https://github.com/vim/vim/commit/cbebd4879cc78e670d79b2c57dc33d7b911c962a
Christian Brabandt <cb@256bit.org>
parents: 7967
diff changeset
3082 Works like |ch_sendexpr()|, but does not encode the request or
78106b0f2c56 commit https://github.com/vim/vim/commit/cbebd4879cc78e670d79b2c57dc33d7b911c962a
Christian Brabandt <cb@256bit.org>
parents: 7967
diff changeset
3083 decode the response. The caller is responsible for the
8094
18a3f0f05244 commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents: 8078
diff changeset
3084 correct contents. Also does not add a newline for a channel
18a3f0f05244 commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents: 8078
diff changeset
3085 in NL mode, the caller must do that. The NL in the response
18a3f0f05244 commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents: 8078
diff changeset
3086 is removed.
18a3f0f05244 commit https://github.com/vim/vim/commit/910b8aac5dc4693c4508b7acd2cef0bbfac04242
Christian Brabandt <cb@256bit.org>
parents: 8078
diff changeset
3087 See |channel-use|.
7895
bff95e0d8885 commit https://github.com/vim/vim/commit/f57969a20a4398f56e3028a6cc1102f9f9286ccf
Christian Brabandt <cb@256bit.org>
parents: 7876
diff changeset
3088
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3089 {only available when compiled with the |+channel| feature}
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3090
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3091 ch_setoptions({handle}, {options}) *ch_setoptions()*
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3092 Set options on {handle}:
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3093 "callback" the channel callback
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3094 "timeout" default read timeout in msec
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3095 "mode" mode for the whole channel
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3096 See |ch_open()| for more explanation.
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
3097 {handle} can be a Channel or a Job that has a Channel.
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3098
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3099 Note that changing the mode may cause queued messages to be
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3100 lost.
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
3101
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3102 These options cannot be changed:
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
3103 "waittime" only applies to |ch_open()|
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
3104
10233
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3105 ch_status({handle} [, {options}]) *ch_status()*
8440
4c6ad81d41fe commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents: 8392
diff changeset
3106 Return the status of {handle}:
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3107 "fail" failed to open the channel
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3108 "open" channel can be used
9041
34c45ee4210d commit https://github.com/vim/vim/commit/06481427005a9dae39721087df94855f7d4d1feb
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
3109 "buffered" channel can be read, not written to
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3110 "closed" channel can not be used
10422
e664ee056a84 commit https://github.com/vim/vim/commit/4b785f69c0616dba5d3f38e8ce4b5398cec89407
Christian Brabandt <cb@256bit.org>
parents: 10404
diff changeset
3111 {handle} can be a Channel or a Job that has a Channel.
9041
34c45ee4210d commit https://github.com/vim/vim/commit/06481427005a9dae39721087df94855f7d4d1feb
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
3112 "buffered" is used when the channel was closed but there is
34c45ee4210d commit https://github.com/vim/vim/commit/06481427005a9dae39721087df94855f7d4d1feb
Christian Brabandt <cb@256bit.org>
parents: 8951
diff changeset
3113 still data that can be obtained with |ch_read()|.
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3114
10233
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3115 If {options} is given it can contain a "part" entry to specify
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3116 the part of the channel to return the status for: "out" or
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3117 "err". For example, to get the error status: >
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3118 ch_status(job, {"part": "err"})
d709622a18c9 commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents: 10228
diff changeset
3119 <
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3120 changenr() *changenr()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3121 Return the number of the most recent change. This is the same
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3122 number as what is displayed with |:undolist| and can be used
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3123 with the |:undo| command.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3124 When a change was made it is the number of that change. After
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3125 redo it is the number of the redone change. After undo it is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3126 one less than the number of the undone change.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3127
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3128 char2nr({expr} [, {utf8}]) *char2nr()*
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3129 Return number value of the first char in {expr}. Examples: >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3130 char2nr(" ") returns 32
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3131 char2nr("ABC") returns 65
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3132 < When {utf8} is omitted or zero, the current 'encoding' is used.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3133 Example for "utf-8": >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3134 char2nr("á") returns 225
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3135 char2nr("á"[0]) returns 195
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3136 < With {utf8} set to 1, always treat as utf-8 characters.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3137 A combining character is a separate character.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3138 |nr2char()| does the opposite.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3139
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3140 cindent({lnum}) *cindent()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3141 Get the amount of indent for line {lnum} according the C
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3142 indenting rules, as with 'cindent'.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3143 The indent is counted in spaces, the value of 'tabstop' is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3144 relevant. {lnum} is used just like in |getline()|.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3145 When {lnum} is invalid or Vim was not compiled the |+cindent|
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3146 feature, -1 is returned.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3147 See |C-indenting|.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3148
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3149 clearmatches() *clearmatches()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3150 Clears all matches previously defined by |matchadd()| and the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3151 |:match| commands.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3152
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3153 *col()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3154 col({expr}) The result is a Number, which is the byte index of the column
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3155 position given with {expr}. The accepted positions are:
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3156 . the cursor position
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3157 $ the end of the cursor line (the result is the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3158 number of bytes in the cursor line plus one)
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3159 'x position of mark x (if the mark is not set, 0 is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3160 returned)
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3161 v In Visual mode: the start of the Visual area (the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3162 cursor is the end). When not in Visual mode
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3163 returns the cursor position. Differs from |'<| in
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3164 that it's updated right away.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3165 Additionally {expr} can be [lnum, col]: a |List| with the line
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3166 and column number. Most useful when the column is "$", to get
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3167 the last column of a specific line. When "lnum" or "col" is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3168 out of range then col() returns zero.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3169 To get the line number use |line()|. To get both use
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3170 |getpos()|.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3171 For the screen column position use |virtcol()|.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3172 Note that only marks in the current file can be used.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3173 Examples: >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3174 col(".") column of cursor
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3175 col("$") length of cursor line plus one
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3176 col("'t") column of mark t
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3177 col("'" . markname) column of mark markname
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3178 < The first column is 1. 0 is returned for an error.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3179 For an uppercase mark the column may actually be in another
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3180 buffer.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3181 For the cursor position, when 'virtualedit' is active, the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3182 column is one higher if the cursor is after the end of the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3183 line. This can be used to obtain the column in Insert mode: >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3184 :imap <F2> <C-O>:let save_ve = &ve<CR>
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3185 \<C-O>:set ve=all<CR>
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3186 \<C-O>:echo col(".") . "\n" <Bar>
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3187 \let &ve = save_ve<CR>
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3188 <
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3189
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3190 complete({startcol}, {matches}) *complete()* *E785*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3191 Set the matches for Insert mode completion.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3192 Can only be used in Insert mode. You need to use a mapping
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3193 with CTRL-R = (see |i_CTRL-R|). It does not work after CTRL-O
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3194 or with an expression mapping.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3195 {startcol} is the byte offset in the line where the completed
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3196 text start. The text up to the cursor is the original text
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3197 that will be replaced by the matches. Use col('.') for an
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3198 empty string. "col('.') - 1" will replace one character by a
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3199 match.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3200 {matches} must be a |List|. Each |List| item is one match.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3201 See |complete-items| for the kind of items that are possible.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3202 Note that the after calling this function you need to avoid
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3203 inserting anything that would cause completion to stop.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3204 The match can be selected with CTRL-N and CTRL-P as usual with
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3205 Insert mode completion. The popup menu will appear if
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3206 specified, see |ins-completion-menu|.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3207 Example: >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3208 inoremap <F5> <C-R>=ListMonths()<CR>
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3209
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3210 func! ListMonths()
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3211 call complete(col('.'), ['January', 'February', 'March',
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3212 \ 'April', 'May', 'June', 'July', 'August', 'September',
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3213 \ 'October', 'November', 'December'])
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3214 return ''
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3215 endfunc
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3216 < This isn't very useful, but it shows how it works. Note that
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3217 an empty string is returned to avoid a zero being inserted.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3218
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3219 complete_add({expr}) *complete_add()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3220 Add {expr} to the list of matches. Only to be used by the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3221 function specified with the 'completefunc' option.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3222 Returns 0 for failure (empty string or out of memory),
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3223 1 when the match was added, 2 when the match was already in
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3224 the list.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3225 See |complete-functions| for an explanation of {expr}. It is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3226 the same as one item in the list that 'omnifunc' would return.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3227
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3228 complete_check() *complete_check()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3229 Check for a key typed while looking for completion matches.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3230 This is to be used when looking for matches takes some time.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3231 Returns |TRUE| when searching for matches is to be aborted,
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3232 zero otherwise.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3233 Only to be used by the function specified with the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3234 'completefunc' option.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3235
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3236 *confirm()*
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3237 confirm({msg} [, {choices} [, {default} [, {type}]]])
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3238 Confirm() offers the user a dialog, from which a choice can be
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3239 made. It returns the number of the choice. For the first
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3240 choice this is 1.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3241 Note: confirm() is only supported when compiled with dialog
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3242 support, see |+dialog_con| and |+dialog_gui|.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3243
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3244 {msg} is displayed in a |dialog| with {choices} as the
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3245 alternatives. When {choices} is missing or empty, "&OK" is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3246 used (and translated).
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3247 {msg} is a String, use '\n' to include a newline. Only on
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3248 some systems the string is wrapped when it doesn't fit.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3249
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3250 {choices} is a String, with the individual choices separated
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3251 by '\n', e.g. >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3252 confirm("Save changes?", "&Yes\n&No\n&Cancel")
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3253 < The letter after the '&' is the shortcut key for that choice.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3254 Thus you can type 'c' to select "Cancel". The shortcut does
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3255 not need to be the first letter: >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3256 confirm("file has been modified", "&Save\nSave &All")
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3257 < For the console, the first letter of each choice is used as
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3258 the default shortcut key.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3259
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3260 The optional {default} argument is the number of the choice
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3261 that is made if the user hits <CR>. Use 1 to make the first
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3262 choice the default one. Use 0 to not set a default. If
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3263 {default} is omitted, 1 is used.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3264
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3265 The optional {type} argument gives the type of dialog. This
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3266 is only used for the icon of the GTK, Mac, Motif and Win32
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3267 GUI. It can be one of these values: "Error", "Question",
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3268 "Info", "Warning" or "Generic". Only the first character is
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3269 relevant. When {type} is omitted, "Generic" is used.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3270
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3271 If the user aborts the dialog by pressing <Esc>, CTRL-C,
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3272 or another valid interrupt key, confirm() returns 0.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3273
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3274 An example: >
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3275 :let choice = confirm("What do you want?", "&Apples\n&Oranges\n&Bananas", 2)
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3276 :if choice == 0
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3277 : echo "make up your mind!"
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3278 :elseif choice == 3
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3279 : echo "tasteful"
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3280 :else
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3281 : echo "I prefer bananas myself."
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3282 :endif
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3283 < In a GUI dialog, buttons are used. The layout of the buttons
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3284 depends on the 'v' flag in 'guioptions'. If it is included,
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3285 the buttons are always put vertically. Otherwise, confirm()
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3286 tries to put the buttons in one horizontal line. If they
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3287 don't fit, a vertical layout is used anyway. For some systems
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3288 the horizontal layout is always used.
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3289
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3290 *copy()*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3291 copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3292 different from using {expr} directly.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3293 When {expr} is a |List| a shallow copy is created. This means
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3294 that the original |List| can be changed without changing the
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3295 copy, and vice versa. But the items are identical, thus
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
3296 changing an item changes the contents of both |Lists|.
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
3297 A |Dictionary| is copied in a similar way as a |List|.
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
3298 Also see |deepcopy()|.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3299
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3300 cos({expr}) *cos()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3301 Return the cosine of {expr}, measured in radians, as a |Float|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3302 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3303 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3304 :echo cos(100)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3305 < 0.862319 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3306 :echo cos(-4.01)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3307 < -0.646043
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3308 {only available when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3309
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3310
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3311 cosh({expr}) *cosh()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
3312 Return the hyperbolic cosine of {expr} as a |Float| in the range
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3313 [1, inf].
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
3314 {expr} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3315 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3316 :echo cosh(0.5)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3317 < 1.127626 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3318 :echo cosh(-0.5)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3319 < -1.127626
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
3320 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3321
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3322
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3323 count({comp}, {expr} [, {ic} [, {start}]]) *count()*
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3324 Return the number of times an item with value {expr} appears
11828
5a07a3ff56c1 patch 8.0.0794: checking translations fails with multiple NL
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
3325 in |String|, |List| or |Dictionary| {comp}.
5a07a3ff56c1 patch 8.0.0794: checking translations fails with multiple NL
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
3326
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3327 If {start} is given then start with the item with this index.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3328 {start} can only be used with a |List|.
11828
5a07a3ff56c1 patch 8.0.0794: checking translations fails with multiple NL
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
3329
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3330 When {ic} is given and it's |TRUE| then case is ignored.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3331
11828
5a07a3ff56c1 patch 8.0.0794: checking translations fails with multiple NL
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
3332 When {comp} is a string then the number of not overlapping
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
3333 occurrences of {expr} is returned.
11828
5a07a3ff56c1 patch 8.0.0794: checking translations fails with multiple NL
Christian Brabandt <cb@256bit.org>
parents: 11763
diff changeset
3334
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3335
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3336 *cscope_connection()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3337 cscope_connection([{num} , {dbpath} [, {prepend}]])
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3338 Checks for the existence of a |cscope| connection. If no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3339 parameters are specified, then the function returns:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3340 0, if cscope was not available (not compiled in), or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3341 if there are no cscope connections;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3342 1, if there is at least one cscope connection.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3343
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3344 If parameters are specified, then the value of {num}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3345 determines how existence of a cscope connection is checked:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3346
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3347 {num} Description of existence check
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3348 ----- ------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3349 0 Same as no parameters (e.g., "cscope_connection()").
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3350 1 Ignore {prepend}, and use partial string matches for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3351 {dbpath}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3352 2 Ignore {prepend}, and use exact string matches for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3353 {dbpath}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3354 3 Use {prepend}, use partial string matches for both
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3355 {dbpath} and {prepend}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3356 4 Use {prepend}, use exact string matches for both
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3357 {dbpath} and {prepend}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3358
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3359 Note: All string comparisons are case sensitive!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3360
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3361 Examples. Suppose we had the following (from ":cs show"): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3362
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3363 # pid database name prepend path
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3364 0 27664 cscope.out /usr/local
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3365 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3366 Invocation Return Val ~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3367 ---------- ---------- >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3368 cscope_connection() 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3369 cscope_connection(1, "out") 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3370 cscope_connection(2, "out") 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3371 cscope_connection(3, "out") 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3372 cscope_connection(3, "out", "local") 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3373 cscope_connection(4, "out") 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3374 cscope_connection(4, "out", "local") 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3375 cscope_connection(4, "cscope.out", "/usr/local") 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3376 <
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
3377 cursor({lnum}, {col} [, {off}]) *cursor()*
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
3378 cursor({list})
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3379 Positions the cursor at the column (byte count) {col} in the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3380 line {lnum}. The first column is one.
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
3381
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
3382 When there is one argument {list} this is used as a |List|
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
3383 with two, three or four item:
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
3384 [{lnum}, {col}]
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
3385 [{lnum}, {col}, {off}]
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
3386 [{lnum}, {col}, {off}, {curswant}]
6009
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
3387 This is like the return value of |getpos()| or |getcurpos()|,
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
3388 but without the first item.
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
3389
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3390 Does not change the jumplist.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3391 If {lnum} is greater than the number of lines in the buffer,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3392 the cursor will be positioned at the last line in the buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3393 If {lnum} is zero, the cursor will stay in the current line.
493
06364aa0d597 updated for version 7.0135
vimboss
parents: 484
diff changeset
3394 If {col} is greater than the number of bytes in the line,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3395 the cursor will be positioned at the last character in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3396 line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3397 If {col} is zero, the cursor will stay in the current column.
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
3398 If {curswant} is given it is used to set the preferred column
6180
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
3399 for vertical movement. Otherwise {col} is used.
6385
f654ad95fd4e Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6369
diff changeset
3400
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
3401 When 'virtualedit' is used {off} specifies the offset in
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
3402 screen columns from the start of the character. E.g., a
1266
54588e2e8041 updated for version 7.1
vimboss
parents: 1215
diff changeset
3403 position within a <Tab> or after the last character.
1851
e7f6ca5594cf updated for version 7.2-149
vimboss
parents: 1768
diff changeset
3404 Returns 0 when the position could be set, -1 otherwise.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3405
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3406
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3407 deepcopy({expr} [, {noref}]) *deepcopy()* *E698*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3408 Make a copy of {expr}. For Numbers and Strings this isn't
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3409 different from using {expr} directly.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3410 When {expr} is a |List| a full copy is created. This means
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3411 that the original |List| can be changed without changing the
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3412 copy, and vice versa. When an item is a |List| or
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3413 |Dictionary|, a copy for it is made, recursively. Thus
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3414 changing an item in the copy does not change the contents of
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3415 the original |List|.
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
3416 A |Dictionary| is copied in a similar way as a |List|.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3417 When {noref} is omitted or zero a contained |List| or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3418 |Dictionary| is only copied once. All references point to
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3419 this single copy. With {noref} set to 1 every occurrence of a
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3420 |List| or |Dictionary| results in a new copy. This also means
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3421 that a cyclic reference causes deepcopy() to fail.
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
3422 *E724*
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
3423 Nesting is possible up to 100 levels. When there is an item
164
8b0ee9d57d7f updated for version 7.0050
vimboss
parents: 161
diff changeset
3424 that refers back to a higher level making a deep copy with
8b0ee9d57d7f updated for version 7.0050
vimboss
parents: 161
diff changeset
3425 {noref} set to 1 will fail.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3426 Also see |copy()|.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
3427
7615
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3428 delete({fname} [, {flags}]) *delete()*
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3429 Without {flags} or with {flags} empty: Deletes the file by the
7629
befbed72da87 commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165
Christian Brabandt <cb@256bit.org>
parents: 7615
diff changeset
3430 name {fname}. This also works when {fname} is a symbolic link.
7615
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3431
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3432 When {flags} is "d": Deletes the directory by the name
7629
befbed72da87 commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165
Christian Brabandt <cb@256bit.org>
parents: 7615
diff changeset
3433 {fname}. This fails when directory {fname} is not empty.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3434
7615
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3435 When {flags} is "rf": Deletes the directory by the name
7629
befbed72da87 commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165
Christian Brabandt <cb@256bit.org>
parents: 7615
diff changeset
3436 {fname} and everything in it, recursively. BE CAREFUL!
10027
018fead968c1 commit https://github.com/vim/vim/commit/36f44c21da2e912c008683a0c4447fca2a071e9a
Christian Brabandt <cb@256bit.org>
parents: 10004
diff changeset
3437 Note: on MS-Windows it is not possible to delete a directory
018fead968c1 commit https://github.com/vim/vim/commit/36f44c21da2e912c008683a0c4447fca2a071e9a
Christian Brabandt <cb@256bit.org>
parents: 10004
diff changeset
3438 that is being used.
10004
8061455d9179 commit https://github.com/vim/vim/commit/818078ddfbb8cc2546f697c5675a251d095722ec
Christian Brabandt <cb@256bit.org>
parents: 10000
diff changeset
3439
7629
befbed72da87 commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165
Christian Brabandt <cb@256bit.org>
parents: 7615
diff changeset
3440 A symbolic link itself is deleted, not what it points to.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3441
7615
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3442 The result is a Number, which is 0 if the delete operation was
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3443 successful and -1 when the deletion failed or partly failed.
228ff048db20 commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents: 7597
diff changeset
3444
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3445 Use |remove()| to delete an item from a |List|.
4229
fa4089df54bc Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4159
diff changeset
3446 To delete a line from the buffer use |:delete|. Use |:exe|
fa4089df54bc Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4159
diff changeset
3447 when the line number is in a variable.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3448
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3449 *did_filetype()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3450 did_filetype() Returns |TRUE| when autocommands are being executed and the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3451 FileType event has been triggered at least once. Can be used
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3452 to avoid triggering the FileType event again in the scripts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3453 that detect the file type. |FileType|
11473
bd6ff5246c71 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11442
diff changeset
3454 Returns |FALSE| when `:setf FALLBACK` was used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3455 When editing another file, the counter is reset, thus this
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3456 really checks if the FileType event has been triggered for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3457 current buffer. This allows an autocommand that starts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3458 editing another buffer to set 'filetype' and load a syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3459 file.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3460
32
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3461 diff_filler({lnum}) *diff_filler()*
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3462 Returns the number of filler lines above line {lnum}.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3463 These are the lines that were inserted at this point in
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3464 another diff'ed window. These filler lines are shown in the
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3465 display but don't exist in the buffer.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3466 {lnum} is used like with |getline()|. Thus "." is the current
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3467 line, "'m" mark m, etc.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3468 Returns 0 if the current window is not in diff mode.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3469
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3470 diff_hlID({lnum}, {col}) *diff_hlID()*
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3471 Returns the highlight ID for diff mode at line {lnum} column
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3472 {col} (byte index). When the current line does not have a
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3473 diff change zero is returned.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3474 {lnum} is used like with |getline()|. Thus "." is the current
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3475 line, "'m" mark m, etc.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3476 {col} is 1 for the leftmost column, {lnum} is 1 for the first
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3477 line.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3478 The highlight ID can be used with |synIDattr()| to obtain
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3479 syntax information about the highlighting.
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
3480
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
3481 empty({expr}) *empty()*
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
3482 Return the Number 1 if {expr} is empty, zero otherwise.
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3483 - A |List| or |Dictionary| is empty when it does not have any
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3484 items.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3485 - A String is empty when its length is zero.
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3486 - A Number and Float is empty when its value is zero.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3487 - |v:false|, |v:none| and |v:null| are empty, |v:true| is not.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3488 - A Job is empty when it failed to start.
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
3489 - A Channel is empty when it is closed.
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
3490
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
3491 For a long |List| this is much faster than comparing the
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3492 length with zero.
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
3493
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3494 escape({string}, {chars}) *escape()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3495 Escape the characters in {chars} that occur in {string} with a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3496 backslash. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3497 :echo escape('c:\program files\vim', ' \')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3498 < results in: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3499 c:\\program\ files\\vim
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
3500 < Also see |shellescape()| and |fnameescape()|.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3501
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3502 *eval()*
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
3503 eval({string}) Evaluate {string} and return the result. Especially useful to
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
3504 turn the result of |string()| back into the original value.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3505 This works for Numbers, Floats, Strings and composites of
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3506 them. Also works for |Funcref|s that refer to existing
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3507 functions.
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
3508
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3509 eventhandler() *eventhandler()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3510 Returns 1 when inside an event handler. That is that Vim got
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3511 interrupted while waiting for the user to type a character,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3512 e.g., when dropping a file on Vim. This means interactive
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3513 commands cannot be used. Otherwise zero is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3514
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3515 executable({expr}) *executable()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3516 This function checks if an executable with the name {expr}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3517 exists. {expr} must be the name of the program without any
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3518 arguments.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3519 executable() uses the value of $PATH and/or the normal
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3520 searchpath for programs. *PATHEXT*
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3521 On MS-DOS and MS-Windows the ".exe", ".bat", etc. can
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3522 optionally be included. Then the extensions in $PATHEXT are
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3523 tried. Thus if "foo.exe" does not exist, "foo.exe.bat" can be
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3524 found. If $PATHEXT is not set then ".exe;.com;.bat;.cmd" is
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3525 used. A dot by itself can be used in $PATHEXT to try using
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3526 the name without an extension. When 'shell' looks like a
10
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3527 Unix shell, then the name is also tried without adding an
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3528 extension.
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3529 On MS-DOS and MS-Windows it only checks if the file exists and
4e2284e71352 updated for version 7.0002
vimboss
parents: 9
diff changeset
3530 is not a directory, not if it's really executable.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
3531 On MS-Windows an executable in the same directory as Vim is
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
3532 always found. Since this directory is added to $PATH it
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
3533 should also work to execute it |win32-PATH|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3534 The result is a Number:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3535 1 exists
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3536 0 does not exist
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3537 -1 not implemented on this system
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3538
9454
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3539 execute({command} [, {silent}]) *execute()*
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3540 Execute an Ex command or commands and return the output as a
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3541 string.
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3542 {command} can be a string or a List. In case of a List the
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3543 lines are executed one by one.
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3544 This is equivalent to: >
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3545 redir => var
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3546 {command}
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3547 redir END
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3548 <
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3549 The optional {silent} argument can have these values:
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3550 "" no `:silent` used
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3551 "silent" `:silent` used
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3552 "silent!" `:silent!` used
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
3553 The default is "silent". Note that with "silent!", unlike
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
3554 `:redir`, error messages are dropped. When using an external
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
3555 command the screen may be messed up, use `system()` instead.
9454
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3556 *E930*
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3557 It is not possible to use `:redir` anywhere in {command}.
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3558
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3559 To get a list of lines use |split()| on the result: >
9464
be72f4201a1d commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa
Christian Brabandt <cb@256bit.org>
parents: 9460
diff changeset
3560 split(execute('args'), "\n")
9454
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3561
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3562 < When used recursively the output of the recursive call is not
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3563 included in the output of the higher level call.
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
3564
5782
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3565 exepath({expr}) *exepath()*
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3566 If {expr} is an executable and is either an absolute path, a
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3567 relative path or found in $PATH, return the full path.
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3568 Note that the current directory is used when {expr} starts
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3569 with "./", which may be a problem for Vim: >
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3570 echo exepath(v:progpath)
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
3571 < If {expr} cannot be found in $PATH or is not executable then
5782
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3572 an empty string is returned.
5ab2946f7ce5 updated for version 7.4.235
Bram Moolenaar <bram@vim.org>
parents: 5780
diff changeset
3573
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3574 *exists()*
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3575 exists({expr}) The result is a Number, which is |TRUE| if {expr} is defined,
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3576 zero otherwise.
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3577
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3578 For checking for a supported feature use |has()|.
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3579 For checking if a file exists use |filereadable()|.
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3580
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
3581 The {expr} argument is a string, which contains one of these:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3582 &option-name Vim option (only checks if it exists,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3583 not if it really works)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3584 +option-name Vim option that works.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3585 $ENVNAME environment variable (could also be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3586 done by comparing with an empty
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3587 string)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3588 *funcname built-in function (see |functions|)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3589 or user defined function (see
5862
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
3590 |user-functions|). Also works for a
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
3591 variable that is a Funcref.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3592 varname internal variable (see
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3593 |internal-variables|). Also works
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3594 for |curly-braces-names|, |Dictionary|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3595 entries, |List| items, etc. Beware
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3596 that evaluating an index may cause an
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3597 error message for an invalid
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3598 expression. E.g.: >
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3599 :let l = [1, 2, 3]
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3600 :echo exists("l[5]")
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3601 < 0 >
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3602 :echo exists("l[xx]")
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3603 < E121: Undefined variable: xx
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
3604 0
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3605 :cmdname Ex command: built-in command, user
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3606 command or command modifier |:command|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3607 Returns:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3608 1 for match with start of a command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3609 2 full match with a command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3610 3 matches several user commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3611 To check for a supported command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3612 always check the return value to be 2.
864
bc620d6bdf06 updated for version 7.0g03
vimboss
parents: 859
diff changeset
3613 :2match The |:2match| command.
bc620d6bdf06 updated for version 7.0g03
vimboss
parents: 859
diff changeset
3614 :3match The |:3match| command.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3615 #event autocommand defined for this event
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3616 #event#pattern autocommand defined for this event and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3617 pattern (the pattern is taken
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3618 literally and compared to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3619 autocommand patterns character by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3620 character)
613
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3621 #group autocommand group exists
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3622 #group#event autocommand defined for this group and
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3623 event.
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3624 #group#event#pattern
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
3625 autocommand defined for this group,
613
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3626 event and pattern.
615
7fe13e0f5dce updated for version 7.0175
vimboss
parents: 613
diff changeset
3627 ##event autocommand for this event is
7fe13e0f5dce updated for version 7.0175
vimboss
parents: 613
diff changeset
3628 supported.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3629
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3630 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3631 exists("&shortname")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3632 exists("$HOSTNAME")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3633 exists("*strftime")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3634 exists("*s:MyFunc")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3635 exists("bufcount")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3636 exists(":Make")
613
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3637 exists("#CursorHold")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3638 exists("#BufReadPre#*.gz")
613
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3639 exists("#filetypeindent")
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3640 exists("#filetypeindent#FileType")
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
3641 exists("#filetypeindent#FileType#*")
615
7fe13e0f5dce updated for version 7.0175
vimboss
parents: 613
diff changeset
3642 exists("##ColorScheme")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3643 < There must be no space between the symbol (&/$/*/#) and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3644 name.
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3645 There must be no extra characters after the name, although in
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3646 a few cases this is ignored. That may become more strict in
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3647 the future, thus don't count on it!
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3648 Working example: >
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3649 exists(":make")
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3650 < NOT working example: >
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
3651 exists(":make install")
859
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 857
diff changeset
3652
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 857
diff changeset
3653 < Note that the argument must be a string, not the name of the
99305c4c42d4 updated for version 7.0g02
vimboss
parents: 857
diff changeset
3654 variable itself. For example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3655 exists(bufcount)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3656 < This doesn't check for existence of the "bufcount" variable,
853
d10fbefd3bc1 updated for version 7.0f05
vimboss
parents: 844
diff changeset
3657 but gets the value of "bufcount", and checks if that exists.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3658
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3659 exp({expr}) *exp()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
3660 Return the exponential of {expr} as a |Float| in the range
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3661 [0, inf].
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
3662 {expr} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3663 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3664 :echo exp(2)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3665 < 7.389056 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3666 :echo exp(-1)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3667 < 0.367879
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
3668 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3669
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3670
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3671 expand({expr} [, {nosuf} [, {list}]]) *expand()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3672 Expand wildcards and the following special keywords in {expr}.
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3673 'wildignorecase' applies.
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3674
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3675 If {list} is given and it is |TRUE|, a List will be returned.
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3676 Otherwise the result is a String and when there are several
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3677 matches, they are separated by <NL> characters. [Note: in
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3678 version 5.0 a space was used, which caused problems when a
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
3679 file name contains a space]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3680
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3681 If the expansion fails, the result is an empty string. A name
4869
a5352e73dc00 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4835
diff changeset
3682 for a non-existing file is not included, unless {expr} does
a5352e73dc00 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4835
diff changeset
3683 not start with '%', '#' or '<', see below.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3684
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3685 When {expr} starts with '%', '#' or '<', the expansion is done
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3686 like for the |cmdline-special| variables with their associated
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3687 modifiers. Here is a short overview:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3688
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3689 % current file name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3690 # alternate file name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3691 #n alternate file name n
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3692 <cfile> file name under the cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3693 <afile> autocmd file name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3694 <abuf> autocmd buffer number (as a String!)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3695 <amatch> autocmd matched name
5734
657ade71d395 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5692
diff changeset
3696 <sfile> sourced script file or function name
2662
916c90b37ea9 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
3697 <slnum> sourced script file line number
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3698 <cword> word under the cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3699 <cWORD> WORD under the cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3700 <client> the {clientid} of the last received
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3701 message |server2client()|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3702 Modifiers:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3703 :p expand to full path
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3704 :h head (last path component removed)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3705 :t tail (last path component only)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3706 :r root (one extension removed)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3707 :e extension only
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3708
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3709 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3710 :let &tags = expand("%:p:h") . "/tags"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3711 < Note that when expanding a string that starts with '%', '#' or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3712 '<', any following text is ignored. This does NOT work: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3713 :let doesntwork = expand("%:h.bak")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3714 < Use this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3715 :let doeswork = expand("%:h") . ".bak"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3716 < Also note that expanding "<cfile>" and others only returns the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3717 referenced file name without further expansion. If "<cfile>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3718 is "~/.cshrc", you need to do another expand() to have the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3719 "~/" expanded into the path of the home directory: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3720 :echo expand(expand("<cfile>"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3721 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3722 There cannot be white space between the variables and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3723 following modifier. The |fnamemodify()| function can be used
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3724 to modify normal file names.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3725
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3726 When using '%' or '#', and the current or alternate file name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3727 is not defined, an empty string is used. Using "%:p" in a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3728 buffer with no name, results in the current directory, with a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3729 '/' added.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3730
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3731 When {expr} does not start with '%', '#' or '<', it is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3732 expanded like a file name is expanded on the command line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3733 'suffixes' and 'wildignore' are used, unless the optional
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3734 {nosuf} argument is given and it is |TRUE|.
3398
d1096a4e96bd updated for version 7.3.465
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
3735 Names for non-existing files are included. The "**" item can
d1096a4e96bd updated for version 7.3.465
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
3736 be used to search in a directory tree. For example, to find
d1096a4e96bd updated for version 7.3.465
Bram Moolenaar <bram@vim.org>
parents: 3312
diff changeset
3737 all "README" files in the current directory and below: >
444
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
3738 :echo expand("**/README")
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
3739 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3740 Expand() can also be used to expand variables and environment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3741 variables that are only known in a shell. But this can be
6180
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
3742 slow, because a shell may be used to do the expansion. See
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
3743 |expr-env-expand|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3744 The expanded variable is still handled like a list of file
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3745 names. When an environment variable cannot be expanded, it is
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3746 left unchanged. Thus ":echo expand('$FOOBAR')" results in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3747 "$FOOBAR".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3748
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3749 See |glob()| for finding existing files. See |system()| for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3750 getting the raw output of an external command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3751
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3752 extend({expr1}, {expr2} [, {expr3}]) *extend()*
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
3753 {expr1} and {expr2} must be both |Lists| or both
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
3754 |Dictionaries|.
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
3755
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
3756 If they are |Lists|: Append {expr2} to {expr1}.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3757 If {expr3} is given insert the items of {expr2} before item
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3758 {expr3} in {expr1}. When {expr3} is zero insert before the
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3759 first item. When {expr3} is equal to len({expr1}) then
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3760 {expr2} is appended.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3761 Examples: >
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3762 :echo sort(extend(mylist, [7, 5]))
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3763 :call extend(mylist, [2, 3], 1)
1699
9d74e2f433c0 updated for version 7.2c-001
vimboss
parents: 1698
diff changeset
3764 < When {expr1} is the same List as {expr2} then the number of
9d74e2f433c0 updated for version 7.2c-001
vimboss
parents: 1698
diff changeset
3765 items copied is equal to the original length of the List.
9d74e2f433c0 updated for version 7.2c-001
vimboss
parents: 1698
diff changeset
3766 E.g., when {expr3} is 1 you get N new copies of the first item
9d74e2f433c0 updated for version 7.2c-001
vimboss
parents: 1698
diff changeset
3767 (where N is the original length of the List).
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3768 Use |add()| to concatenate one item to a list. To concatenate
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
3769 two lists into a new list use the + operator: >
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3770 :let newlist = [1, 2, 3] + [4, 5]
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3771 <
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
3772 If they are |Dictionaries|:
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3773 Add all entries from {expr2} to {expr1}.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3774 If a key exists in both {expr1} and {expr2} then {expr3} is
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3775 used to decide what to do:
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3776 {expr3} = "keep": keep the value of {expr1}
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3777 {expr3} = "force": use the value of {expr2}
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
3778 {expr3} = "error": give an error message *E737*
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3779 When {expr3} is omitted then "force" is assumed.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3780
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3781 {expr1} is changed when {expr2} is not empty. If necessary
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3782 make a copy of {expr1} first.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3783 {expr2} remains unchanged.
6823
0303182665d5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6741
diff changeset
3784 When {expr1} is locked and {expr2} is not empty the operation
0303182665d5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6741
diff changeset
3785 fails.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3786 Returns {expr1}.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3787
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
3788
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3789 feedkeys({string} [, {mode}]) *feedkeys()*
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3790 Characters in {string} are queued for processing as if they
6549
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3791 come from a mapping or were typed by the user.
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3792 By default the string is added to the end of the typeahead
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3793 buffer, thus if a mapping is still being executed the
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3794 characters come after them. Use the 'i' flag to insert before
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3795 other characters, they will be executed next, before any
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3796 characters from a mapping.
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3797 The function does not wait for processing of keys contained in
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3798 {string}.
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3799 To include special keys into {string}, use double-quotes
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3800 and "\..." notation |expr-quote|. For example,
1215
1d08aac0aea9 updated for version 7.1b
vimboss
parents: 1156
diff changeset
3801 feedkeys("\<CR>") simulates pressing of the <Enter> key. But
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3802 feedkeys('\<CR>') pushes 5 characters.
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3803 If {mode} is absent, keys are remapped.
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3804 {mode} is a String, which can contain these character flags:
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
3805 'm' Remap keys. This is default.
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
3806 'n' Do not remap keys.
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
3807 't' Handle keys as if typed; otherwise they are handled as
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
3808 if coming from a mapping. This matters for undo,
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
3809 opening folds, etc.
6549
2561531decf1 updated for version 7.4.601
Bram Moolenaar <bram@vim.org>
parents: 6530
diff changeset
3810 'i' Insert the string instead of appending (see above).
7703
39251e981d1f commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents: 7659
diff changeset
3811 'x' Execute commands until typeahead is empty. This is
39251e981d1f commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents: 7659
diff changeset
3812 similar to using ":normal!". You can call feedkeys()
39251e981d1f commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents: 7659
diff changeset
3813 several times without 'x' and then one time with 'x'
39251e981d1f commit https://github.com/vim/vim/commit/25281634cda03ce302aaf9f906a9520b5f81f91e
Christian Brabandt <cb@256bit.org>
parents: 7659
diff changeset
3814 (possibly with an empty {string}) to execute all the
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
3815 typeahead. Note that when Vim ends in Insert mode it
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
3816 will behave as if <Esc> is typed, to avoid getting
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
3817 stuck, waiting for a character to be typed before the
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
3818 script continues.
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
3819 '!' When used with 'x' will not end Insert mode. Can be
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
3820 used in a test when a timer is set to exit Insert mode
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
3821 a little later. Useful for testing CursorHoldI.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
3822
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3823 Return value is always 0.
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
3824
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3825 filereadable({file}) *filereadable()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3826 The result is a Number, which is |TRUE| when a file with the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3827 name {file} exists, and can be read. If {file} doesn't exist,
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3828 or is a directory, the result is |FALSE|. {file} is any
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3829 expression, which is used as a String.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3830 If you don't care about the file being readable you can use
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3831 |glob()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3832 *file_readable()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3833 Obsolete name: file_readable().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3834
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
3835
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3836 filewritable({file}) *filewritable()*
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3837 The result is a Number, which is 1 when a file with the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3838 name {file} exists, and can be written. If {file} doesn't
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3839 exist, or is not writable, the result is 0. If {file} is a
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3840 directory, and we can write to it, the result is 2.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3841
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3842
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3843 filter({expr1}, {expr2}) *filter()*
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3844 {expr1} must be a |List| or a |Dictionary|.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3845 For each item in {expr1} evaluate {expr2} and when the result
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3846 is zero remove the item from the |List| or |Dictionary|.
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3847 {expr2} must be a |string| or |Funcref|.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3848
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3849 If {expr2} is a |string|, inside {expr2} |v:val| has the value
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3850 of the current item. For a |Dictionary| |v:key| has the key
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3851 of the current item and for a |List| |v:key| has the index of
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3852 the current item.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3853 Examples: >
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3854 call filter(mylist, 'v:val !~ "OLD"')
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3855 < Removes the items where "OLD" appears. >
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3856 call filter(mydict, 'v:key >= 8')
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3857 < Removes the items with a key below 8. >
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3858 call filter(var, 0)
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3859 < Removes all the items, thus clears the |List| or |Dictionary|.
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
3860
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3861 Note that {expr2} is the result of expression and is then
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3862 used as an expression again. Often it is good to use a
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3863 |literal-string| to avoid having to double backslashes.
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3864
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3865 If {expr2} is a |Funcref| it must take two arguments:
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3866 1. the key or the index of the current item.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3867 2. the value of the current item.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
3868 The function must return |TRUE| if the item should be kept.
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3869 Example that keeps the odd items of a list: >
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3870 func Odd(idx, val)
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3871 return a:idx % 2 == 1
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3872 endfunc
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3873 call filter(mylist, function('Odd'))
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3874 < It is shorter when using a |lambda|: >
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3875 call filter(myList, {idx, val -> idx * val <= 42})
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3876 < If you do not use "val" you can leave it out: >
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
3877 call filter(myList, {idx -> idx % 2 == 1})
10244
876fbdd84e52 commit https://github.com/vim/vim/commit/2ec618c9feac4573b154510236ad8121c77d0eca
Christian Brabandt <cb@256bit.org>
parents: 10237
diff changeset
3878 <
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3879 The operation is done in-place. If you want a |List| or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
3880 |Dictionary| to remain unmodified make a copy first: >
650
662e40bd2be1 updated for version 7.0191
vimboss
parents: 648
diff changeset
3881 :let l = filter(copy(mylist), 'v:val =~ "KEEP"')
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
3882
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3883 < Returns {expr1}, the |List| or |Dictionary| that was filtered.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3884 When an error is encountered while evaluating {expr2} no
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3885 further items in {expr1} are processed. When {expr2} is a
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3886 Funcref errors inside a function are ignored, unless it was
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
3887 defined with the "abort" flag.
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
3888
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
3889
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3890 finddir({name} [, {path} [, {count}]]) *finddir()*
1095
4c8b90b7a94a updated for version 7.0-221
vimboss
parents: 1065
diff changeset
3891 Find directory {name} in {path}. Supports both downwards and
4c8b90b7a94a updated for version 7.0-221
vimboss
parents: 1065
diff changeset
3892 upwards recursive directory searches. See |file-searching|
4c8b90b7a94a updated for version 7.0-221
vimboss
parents: 1065
diff changeset
3893 for the syntax of {path}.
4c8b90b7a94a updated for version 7.0-221
vimboss
parents: 1065
diff changeset
3894 Returns the path of the first found match. When the found
4c8b90b7a94a updated for version 7.0-221
vimboss
parents: 1065
diff changeset
3895 directory is below the current directory a relative path is
4c8b90b7a94a updated for version 7.0-221
vimboss
parents: 1065
diff changeset
3896 returned. Otherwise a full path is returned.
19
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
3897 If {path} is omitted or empty then 'path' is used.
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
3898 If the optional {count} is given, find {count}'s occurrence of
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
3899 {name} in {path} instead of the first one.
809
4f1b94b51e99 updated for version 7.0b02
vimboss
parents: 805
diff changeset
3900 When {count} is negative return all the matches in a |List|.
19
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
3901 This is quite similar to the ex-command |:find|.
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
3902 {only available when compiled with the |+file_in_path|
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
3903 feature}
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
3904
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3905 findfile({name} [, {path} [, {count}]]) *findfile()*
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
3906 Just like |finddir()|, but find a file instead of a directory.
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
3907 Uses 'suffixesadd'.
19
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
3908 Example: >
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
3909 :echo findfile("tags.vim", ".;")
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3910 < Searches from the directory of the current file upwards until
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
3911 it finds the file "tags.vim".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3912
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3913 float2nr({expr}) *float2nr()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3914 Convert {expr} to a Number by omitting the part after the
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3915 decimal point.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3916 {expr} must evaluate to a |Float| or a Number.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3917 When the value of {expr} is out of range for a |Number| the
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
3918 result is truncated to 0x7fffffff or -0x7fffffff (or when
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
3919 64-bit Number support is enabled, 0x7fffffffffffffff or
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
3920 -0x7fffffffffffffff). NaN results in -0x80000000 (or when
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
3921 64-bit Number support is enabled, -0x8000000000000000).
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3922 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3923 echo float2nr(3.95)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3924 < 3 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3925 echo float2nr(-23.45)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3926 < -23 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3927 echo float2nr(1.0e100)
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
3928 < 2147483647 (or 9223372036854775807) >
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3929 echo float2nr(-1.0e150)
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
3930 < -2147483647 (or -9223372036854775807) >
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3931 echo float2nr(1.0e-100)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3932 < 0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3933 {only available when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3934
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3935
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3936 floor({expr}) *floor()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3937 Return the largest integral value less than or equal to
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3938 {expr} as a |Float| (round down).
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3939 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3940 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3941 echo floor(1.856)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3942 < 1.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3943 echo floor(-5.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3944 < -6.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3945 echo floor(4.0)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3946 < 4.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3947 {only available when compiled with the |+float| feature}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
3948
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3949
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3950 fmod({expr1}, {expr2}) *fmod()*
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3951 Return the remainder of {expr1} / {expr2}, even if the
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3952 division is not representable. Returns {expr1} - i * {expr2}
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3953 for some integer i such that if {expr2} is non-zero, the
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3954 result has the same sign as {expr1} and magnitude less than
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3955 the magnitude of {expr2}. If {expr2} is zero, the value
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
3956 returned is zero. The value returned is a |Float|.
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
3957 {expr1} and {expr2} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3958 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3959 :echo fmod(12.33, 1.22)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3960 < 0.13 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3961 :echo fmod(-12.33, 1.22)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3962 < -0.13
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
3963 {only available when compiled with |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3964
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
3965
1586
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3966 fnameescape({string}) *fnameescape()*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
3967 Escape {string} for use as file name command argument. All
1586
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3968 characters that have a special meaning, such as '%' and '|'
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3969 are escaped with a backslash.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3970 For most systems the characters escaped are
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3971 " \t\n*?[{`$\\%#'\"|!<". For systems where a backslash
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3972 appears in a filename, it depends on the value of 'isfname'.
1700
9e1cefec84dd updated for version 7.2c-002
vimboss
parents: 1699
diff changeset
3973 A leading '+' and '>' is also escaped (special after |:edit|
9e1cefec84dd updated for version 7.2c-002
vimboss
parents: 1699
diff changeset
3974 and |:write|). And a "-" by itself (special after |:cd|).
1586
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3975 Example: >
1700
9e1cefec84dd updated for version 7.2c-002
vimboss
parents: 1699
diff changeset
3976 :let fname = '+some str%nge|name'
1586
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3977 :exe "edit " . fnameescape(fname)
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3978 < results in executing: >
1700
9e1cefec84dd updated for version 7.2c-002
vimboss
parents: 1699
diff changeset
3979 edit \+some\ str\%nge\|name
1586
fe7db192c7cc updated for version 7.1-299
vimboss
parents: 1548
diff changeset
3980
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3981 fnamemodify({fname}, {mods}) *fnamemodify()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3982 Modify file name {fname} according to {mods}. {mods} is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3983 string of characters like it is used for file names on the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3984 command line. See |filename-modifiers|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3985 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3986 :echo fnamemodify("main.c", ":p:h")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3987 < results in: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3988 /home/mool/vim/vim/src
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
3989 < Note: Environment variables don't work in {fname}, use
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3990 |expand()| first then.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3991
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3992 foldclosed({lnum}) *foldclosed()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3993 The result is a Number. If the line {lnum} is in a closed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3994 fold, the result is the number of the first line in that fold.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3995 If the line {lnum} is not in a closed fold, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3996
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3997 foldclosedend({lnum}) *foldclosedend()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3998 The result is a Number. If the line {lnum} is in a closed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3999 fold, the result is the number of the last line in that fold.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4000 If the line {lnum} is not in a closed fold, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4001
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4002 foldlevel({lnum}) *foldlevel()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4003 The result is a Number, which is the foldlevel of line {lnum}
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4004 in the current buffer. For nested folds the deepest level is
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4005 returned. If there is no fold at line {lnum}, zero is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4006 returned. It doesn't matter if the folds are open or closed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4007 When used while updating folds (from 'foldexpr') -1 is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4008 returned for lines where folds are still to be updated and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4009 foldlevel is unknown. As a special case the level of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4010 previous line is usually available.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4011
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4012 *foldtext()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4013 foldtext() Returns a String, to be displayed for a closed fold. This is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4014 the default function used for the 'foldtext' option and should
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4015 only be called from evaluating 'foldtext'. It uses the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4016 |v:foldstart|, |v:foldend| and |v:folddashes| variables.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4017 The returned string looks like this: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4018 +-- 45 lines: abcdef
11181
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4019 < The number of leading dashes depends on the foldlevel. The
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4020 "45" is the number of lines in the fold. "abcdef" is the text
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4021 in the first non-blank line of the fold. Leading white space,
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4022 "//" or "/*" and the text from the 'foldmarker' and
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4023 'commentstring' options is removed.
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4024 When used to draw the actual foldtext, the rest of the line
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4025 will be filled with the fold char from the 'fillchars'
13544aa85dc0 patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents: 11177
diff changeset
4026 setting.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4027 {not available when compiled without the |+folding| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4028
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4029 foldtextresult({lnum}) *foldtextresult()*
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4030 Returns the text that is displayed for the closed fold at line
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4031 {lnum}. Evaluates 'foldtext' in the appropriate context.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4032 When there is no closed fold at {lnum} an empty string is
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4033 returned.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4034 {lnum} is used like with |getline()|. Thus "." is the current
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4035 line, "'m" mark m, etc.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4036 Useful when exporting folded text, e.g., to HTML.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4037 {not available when compiled without the |+folding| feature}
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
4038
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4039 *foreground()*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4040 foreground() Move the Vim window to the foreground. Useful when sent from
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4041 a client to a Vim server. |remote_send()|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4042 On Win32 systems this might not work, the OS does not always
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4043 allow a window to bring itself to the foreground. Use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4044 |remote_foreground()| instead.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4045 {only in the Win32, Athena, Motif and GTK GUI versions and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4046 Win32 console version}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4047
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4048 *funcref()*
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4049 funcref({name} [, {arglist}] [, {dict}])
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4050 Just like |function()|, but the returned Funcref will lookup
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4051 the function by reference, not by name. This matters when the
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4052 function {name} is redefined later.
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4053
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4054 Unlike |function()|, {name} must be an existing user function.
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4055 Also for autoloaded functions. {name} cannot be a builtin
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4056 function.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4057
8538
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4058 *function()* *E700* *E922* *E923*
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4059 function({name} [, {arglist}] [, {dict}])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4060 Return a |Funcref| variable that refers to function {name}.
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4061 {name} can be the name of a user defined function or an
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4062 internal function.
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4063
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4064 {name} can also be a Funcref or a partial. When it is a
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4065 partial the dict stored in it will be used and the {dict}
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4066 argument is not allowed. E.g.: >
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4067 let FuncWithArg = function(dict.Func, [arg])
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4068 let Broken = function(dict.Func, [arg], dict)
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4069 <
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4070 When using the Funcref the function will be found by {name},
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4071 also when it was redefined later. Use |funcref()| to keep the
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4072 same function.
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
4073
8538
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4074 When {arglist} or {dict} is present this creates a partial.
9097
071f9da012fb commit https://github.com/vim/vim/commit/06d2d38ab7564e1f784b1058a4ef4580cd6d1810
Christian Brabandt <cb@256bit.org>
parents: 9076
diff changeset
4075 That means the argument list and/or the dictionary is stored in
8538
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4076 the Funcref and will be used when the Funcref is called.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
4077
8538
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4078 The arguments are passed to the function in front of other
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4079 arguments. Example: >
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4080 func Callback(arg1, arg2, name)
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4081 ...
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4082 let Func = function('Callback', ['one', 'two'])
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4083 ...
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4084 call Func('name')
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4085 < Invokes the function as with: >
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4086 call Callback('one', 'two', 'name')
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4087
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4088 < The function() call can be nested to add more arguments to the
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4089 Funcref. The extra arguments are appended to the list of
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4090 arguments. Example: >
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4091 func Callback(arg1, arg2, name)
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4092 ...
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4093 let Func = function('Callback', ['one'])
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4094 let Func2 = function(Func, ['two'])
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4095 ...
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4096 call Func2('name')
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4097 < Invokes the function as with: >
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4098 call Callback('one', 'two', 'name')
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
4099
8538
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4100 < The Dictionary is only useful when calling a "dict" function.
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4101 In that case the {dict} is passed in as "self". Example: >
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4102 function Callback() dict
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4103 echo "called for " . self.name
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4104 endfunction
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4105 ...
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4106 let context = {"name": "example"}
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4107 let Func = function('Callback', context)
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4108 ...
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4109 call Func() " will echo: called for example
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4110 < The use of function() is not needed when there are no extra
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4111 arguments, these two are equivalent: >
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4112 let Func = function('Callback', context)
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
4113 let Func = context.Callback
8538
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4114
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4115 < The argument list and the Dictionary can be combined: >
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4116 function Callback(arg1, count) dict
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4117 ...
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4118 let context = {"name": "example"}
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4119 let Func = function('Callback', ['one'], context)
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4120 ...
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4121 call Func(500)
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4122 < Invokes the function as with: >
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4123 call context.Callback('one', 500)
c337c813c64d commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents: 8536
diff changeset
4124
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4125
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4126 garbagecollect([{atexit}]) *garbagecollect()*
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4127 Cleanup unused |Lists|, |Dictionaries|, |Channels| and |Jobs|
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4128 that have circular references.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
4129
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4130 There is hardly ever a need to invoke this function, as it is
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4131 automatically done when Vim runs out of memory or is waiting
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4132 for the user to press a key after 'updatetime'. Items without
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4133 circular references are always freed when they become unused.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4134 This is useful if you have deleted a very big |List| and/or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4135 |Dictionary| with circular references in a script that runs
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4136 for a long time.
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4137
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4138 When the optional {atexit} argument is one, garbage
1405
b63792dadc23 updated for version 7.1-120
vimboss
parents: 1326
diff changeset
4139 collection will also be done when exiting Vim, if it wasn't
b63792dadc23 updated for version 7.1-120
vimboss
parents: 1326
diff changeset
4140 done before. This is useful when checking for memory leaks.
370
3a21825ad207 updated for version 7.0095
vimboss
parents: 359
diff changeset
4141
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
4142 The garbage collection is not done immediately but only when
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
4143 it's safe to perform. This is when waiting for the user to
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
4144 type a character. To force garbage collection immediately use
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
4145 |test_garbagecollect_now()|.
8881
ed0b39dd7fd6 commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents: 8876
diff changeset
4146
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
4147 get({list}, {idx} [, {default}]) *get()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4148 Get item {idx} from |List| {list}. When this item is not
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4149 available return {default}. Return zero when {default} is
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4150 omitted.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4151 get({dict}, {key} [, {default}])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4152 Get item with key {key} from |Dictionary| {dict}. When this
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4153 item is not available return {default}. Return zero when
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4154 {default} is omitted.
9117
0cc48b3cd884 commit https://github.com/vim/vim/commit/03e19a04ac2ca55643663b97b6ab94043233dcbd
Christian Brabandt <cb@256bit.org>
parents: 9110
diff changeset
4155 get({func}, {what})
0cc48b3cd884 commit https://github.com/vim/vim/commit/03e19a04ac2ca55643663b97b6ab94043233dcbd
Christian Brabandt <cb@256bit.org>
parents: 9110
diff changeset
4156 Get an item with from Funcref {func}. Possible values for
9110
6d3888e2232c commit https://github.com/vim/vim/commit/2bbf8eff6fab16d86e7bcfc0da1962d31bec7891
Christian Brabandt <cb@256bit.org>
parents: 9108
diff changeset
4157 {what} are:
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
4158 "name" The function name
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
4159 "func" The function
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
4160 "dict" The dictionary
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
4161 "args" The list with arguments
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4162
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4163 *getbufinfo()*
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4164 getbufinfo([{expr}])
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4165 getbufinfo([{dict}])
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4166 Get information about buffers as a List of Dictionaries.
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4167
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4168 Without an argument information about all the buffers is
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4169 returned.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4170
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4171 When the argument is a Dictionary only the buffers matching
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4172 the specified criteria are returned. The following keys can
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4173 be specified in {dict}:
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4174 buflisted include only listed buffers.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4175 bufloaded include only loaded buffers.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4176
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4177 Otherwise, {expr} specifies a particular buffer to return
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4178 information for. For the use of {expr}, see |bufname()|
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4179 above. If the buffer is found the returned List has one item.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4180 Otherwise the result is an empty list.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4181
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4182 Each returned List item is a dictionary with the following
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4183 entries:
9904
24900147aa44 commit https://github.com/vim/vim/commit/339288377072f66ec88e21903e75a82d23ffbf4f
Christian Brabandt <cb@256bit.org>
parents: 9894
diff changeset
4184 bufnr buffer number.
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4185 changed TRUE if the buffer is modified.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4186 changedtick number of changes made to the buffer.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4187 hidden TRUE if the buffer is hidden.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4188 listed TRUE if the buffer is listed.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4189 lnum current line number in buffer.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4190 loaded TRUE if the buffer is loaded.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4191 name full path to the file in the buffer.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4192 signs list of signs placed in the buffer.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4193 Each list item is a dictionary with
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4194 the following fields:
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4195 id sign identifier
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4196 lnum line number
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4197 name sign name
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4198 variables a reference to the dictionary with
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4199 buffer-local variables.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4200 windows list of |window-ID|s that display this
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4201 buffer
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4202
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4203 Examples: >
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4204 for buf in getbufinfo()
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4205 echo buf.name
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4206 endfor
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4207 for buf in getbufinfo({'buflisted':1})
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4208 if buf.changed
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4209 ....
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4210 endif
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4211 endfor
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4212 <
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4213 To get buffer-local options use: >
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4214 getbufvar({bufnr}, '&')
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4215
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4216 <
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4217 *getbufline()*
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4218 getbufline({expr}, {lnum} [, {end}])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4219 Return a |List| with the lines starting from {lnum} to {end}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4220 (inclusive) in the buffer {expr}. If {end} is omitted, a
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4221 |List| with only the line {lnum} is returned.
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4222
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4223 For the use of {expr}, see |bufname()| above.
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4224
448
dd9db57ee7ce updated for version 7.0118
vimboss
parents: 444
diff changeset
4225 For {lnum} and {end} "$" can be used for the last line of the
dd9db57ee7ce updated for version 7.0118
vimboss
parents: 444
diff changeset
4226 buffer. Otherwise a number must be used.
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4227
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4228 When {lnum} is smaller than 1 or bigger than the number of
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4229 lines in the buffer, an empty |List| is returned.
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4230
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4231 When {end} is greater than the number of lines in the buffer,
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4232 it is treated as {end} is set to the number of lines in the
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4233 buffer. When {end} is before {lnum} an empty |List| is
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4234 returned.
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4235
448
dd9db57ee7ce updated for version 7.0118
vimboss
parents: 444
diff changeset
4236 This function works only for loaded buffers. For unloaded and
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4237 non-existing buffers, an empty |List| is returned.
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4238
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4239 Example: >
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
4240 :let lines = getbufline(bufnr("myfile"), 1, "$")
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4241
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4242 getbufvar({expr}, {varname} [, {def}]) *getbufvar()*
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4243 The result is the value of option or local buffer variable
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4244 {varname} in buffer {expr}. Note that the name without "b:"
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4245 must be used.
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
4246 When {varname} is empty returns a dictionary with all the
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
4247 buffer-local variables.
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4248 When {varname} is equal to "&" returns a dictionary with all
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4249 the buffer-local options.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4250 Otherwise, when {varname} starts with "&" returns the value of
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4251 a buffer-local option.
216
da182deebec7 updated for version 7.0061
vimboss
parents: 205
diff changeset
4252 This also works for a global or buffer-local option, but it
da182deebec7 updated for version 7.0061
vimboss
parents: 205
diff changeset
4253 doesn't work for a global variable, window-local variable or
da182deebec7 updated for version 7.0061
vimboss
parents: 205
diff changeset
4254 window-local option.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4255 For the use of {expr}, see |bufname()| above.
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4256 When the buffer or variable doesn't exist {def} or an empty
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4257 string is returned, there is no error message.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4258 Examples: >
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4259 :let bufmodified = getbufvar(1, "&mod")
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4260 :echo "todo myvar = " . getbufvar("todo", "myvar")
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4261 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4262 getchar([expr]) *getchar()*
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4263 Get a single character from the user or input stream.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4264 If [expr] is omitted, wait until a character is available.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4265 If [expr] is 0, only get a character when one is available.
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4266 Return zero otherwise.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4267 If [expr] is 1, only check if a character is available, it is
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4268 not consumed. Return zero if no character available.
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4269
5555
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
4270 Without [expr] and when [expr] is 0 a whole character or
11639
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
4271 special key is returned. If it is a single character, the
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4272 result is a number. Use nr2char() to convert it to a String.
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4273 Otherwise a String is returned with the encoded character.
11639
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
4274 For a special key it's a String with a sequence of bytes
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
4275 starting with 0x80 (decimal: 128). This is the same value as
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
4276 the String "\<Key>", e.g., "\<Left>". The returned value is
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
4277 also a String when a modifier (shift, control, alt) was used
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
4278 that is not included in the character.
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4279
5968
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4280 When [expr] is 0 and Esc is typed, there will be a short delay
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4281 while Vim waits to see if this is the start of an escape
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4282 sequence.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4283
5555
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
4284 When [expr] is 1 only the first byte is returned. For a
872
e6c3e7c34232 updated for version 7.0g05
vimboss
parents: 867
diff changeset
4285 one-byte character it is the character itself as a number.
e6c3e7c34232 updated for version 7.0g05
vimboss
parents: 867
diff changeset
4286 Use nr2char() to convert it to a String.
867
a5677b7ce858 updated for version 7.0g04
vimboss
parents: 864
diff changeset
4287
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4288 Use getcharmod() to obtain any additional modifiers.
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4289
1029
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4290 When the user clicks a mouse button, the mouse event will be
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4291 returned. The position can then be found in |v:mouse_col|,
9221
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
4292 |v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|. This
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
4293 example positions the mouse as it would normally happen: >
1029
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4294 let c = getchar()
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
4295 if c == "\<LeftMouse>" && v:mouse_win > 0
1029
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4296 exe v:mouse_win . "wincmd w"
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4297 exe v:mouse_lnum
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4298 exe "normal " . v:mouse_col . "|"
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4299 endif
82b2594be408 updated for version 7.0-155
vimboss
parents: 985
diff changeset
4300 <
10734
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
4301 When using bracketed paste only the first character is
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
4302 returned, the rest of the pasted text is dropped.
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
4303 |xterm-bracketed-paste|.
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
4304
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4305 There is no prompt, you will somehow have to make clear to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4306 user that a character has to be typed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4307 There is no mapping for the character.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4308 Key codes are replaced, thus when the user presses the <Del>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4309 key you get the code for the <Del> key, not the raw character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4310 sequence. Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4311 getchar() == "\<Del>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4312 getchar() == "\<S-Left>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4313 < This example redefines "f" to ignore case: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4314 :nmap f :call FindChar()<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4315 :function FindChar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4316 : let c = nr2char(getchar())
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4317 : while col('.') < col('$') - 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4318 : normal l
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4319 : if getline('.')[col('.') - 1] ==? c
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4320 : break
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4321 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4322 : endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4323 :endfunction
6421
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4324 <
6647
3af822eb4da5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6583
diff changeset
4325 You may also receive synthetic characters, such as
6421
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4326 |<CursorHold>|. Often you will want to ignore this and get
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4327 another character: >
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4328 :function GetKey()
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4329 : let c = getchar()
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4330 : while c == "\<CursorHold>"
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4331 : let c = getchar()
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4332 : endwhile
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4333 : return c
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4334 :endfunction
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4335
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4336 getcharmod() *getcharmod()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4337 The result is a Number which is the state of the modifiers for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4338 the last obtained character with getchar() or in another way.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4339 These values are added together:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4340 2 shift
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4341 4 control
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4342 8 alt (meta)
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4343 16 meta (when it's different from ALT)
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4344 32 mouse double click
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4345 64 mouse triple click
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4346 96 mouse quadruple click (== 32 + 64)
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
4347 128 command (Macintosh only)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4348 Only the modifiers that have not been included in the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4349 character itself are obtained. Thus Shift-a results in "A"
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
4350 without a modifier.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4351
6991
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4352 getcharsearch() *getcharsearch()*
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4353 Return the current character search information as a {dict}
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4354 with the following entries:
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4355
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4356 char character previously used for a character
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4357 search (|t|, |f|, |T|, or |F|); empty string
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4358 if no character search has been performed
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4359 forward direction of character search; 1 for forward,
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4360 0 for backward
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4361 until type of character search; 1 for a |t| or |T|
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4362 character search, 0 for an |f| or |F|
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4363 character search
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4364
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4365 This can be useful to always have |;| and |,| search
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4366 forward/backward regardless of the direction of the previous
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4367 character search: >
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4368 :nnoremap <expr> ; getcharsearch().forward ? ';' : ','
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4369 :nnoremap <expr> , getcharsearch().forward ? ',' : ';'
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4370 < Also see |setcharsearch()|.
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
4371
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4372 getcmdline() *getcmdline()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4373 Return the current command-line. Only works when the command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4374 line is being edited, thus requires use of |c_CTRL-\_e| or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4375 |c_CTRL-R_=|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4376 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4377 :cmap <F7> <C-\>eescape(getcmdline(), ' \')<CR>
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4378 < Also see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4379
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
4380 getcmdpos() *getcmdpos()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4381 Return the position of the cursor in the command line as a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4382 byte count. The first column is 1.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4383 Only works when editing the command line, thus requires use of
3456
4dde9b516e72 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3445
diff changeset
4384 |c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
4dde9b516e72 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3445
diff changeset
4385 Returns 0 otherwise.
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4386 Also see |getcmdtype()|, |setcmdpos()| and |getcmdline()|.
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4387
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4388 getcmdtype() *getcmdtype()*
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4389 Return the current command-line type. Possible return values
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4390 are:
532
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
4391 : normal Ex command
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
4392 > debug mode command |debug-mode|
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
4393 / forward search command
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
4394 ? backward search command
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
4395 @ |input()| command
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
4396 - |:insert| or |:append| command
6213
37c24033b260 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6197
diff changeset
4397 = |i_CTRL-R_=|
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4398 Only works when editing the command line, thus requires use of
3456
4dde9b516e72 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3445
diff changeset
4399 |c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping.
4dde9b516e72 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3445
diff changeset
4400 Returns an empty string otherwise.
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
4401 Also see |getcmdpos()|, |setcmdpos()| and |getcmdline()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4402
6153
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
4403 getcmdwintype() *getcmdwintype()*
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
4404 Return the current |command-line-window| type. Possible return
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
4405 values are the same as |getcmdtype()|. Returns an empty string
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
4406 when not in the command-line window.
1e8ebf870720 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6110
diff changeset
4407
9861
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
4408 getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
9460
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4409 Return a list of command-line completion matches. {type}
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4410 specifies what for. The following completion types are
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4411 supported:
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4412
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4413 augroup autocmd groups
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4414 buffer buffer names
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4415 behave :behave suboptions
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4416 color color schemes
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4417 command Ex command (and arguments)
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4418 compiler compilers
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4419 cscope |:cscope| suboptions
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4420 dir directory names
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4421 environment environment variable names
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4422 event autocommand events
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4423 expression Vim expression
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4424 file file and directory names
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4425 file_in_path file and directory names in |'path'|
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4426 filetype filetype names |'filetype'|
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4427 function function name
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4428 help help subjects
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4429 highlight highlight groups
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4430 history :history suboptions
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4431 locale locale names (as output of locale -a)
11995
7df3dd3c0ac1 patch 8.0.0878: no completion for :mapclear
Christian Brabandt <cb@256bit.org>
parents: 11967
diff changeset
4432 mapclear buffer argument
9460
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4433 mapping mapping name
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4434 menu menus
10275
6d8b2da002e9 commit https://github.com/vim/vim/commit/9e507ca8a3e1535e62de4bd86374b0fcd18ef5b8
Christian Brabandt <cb@256bit.org>
parents: 10245
diff changeset
4435 messages |:messages| suboptions
9460
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4436 option options
10275
6d8b2da002e9 commit https://github.com/vim/vim/commit/9e507ca8a3e1535e62de4bd86374b0fcd18ef5b8
Christian Brabandt <cb@256bit.org>
parents: 10245
diff changeset
4437 packadd optional package |pack-add| names
9460
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4438 shellcmd Shell command
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4439 sign |:sign| suboptions
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4440 syntax syntax file names |'syntax'|
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4441 syntime |:syntime| suboptions
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4442 tag tags
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4443 tag_listfiles tags, file names
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4444 user user names
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4445 var user variables
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4446
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4447 If {pat} is an empty string, then all the matches are returned.
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4448 Otherwise only items matching {pat} are returned. See
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4449 |wildcards| for the use of special characters in {pat}.
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4450
9861
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
4451 If the optional {filtered} flag is set to 1, then 'wildignore'
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
4452 is applied to filter the results. Otherwise all the matches
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
4453 are returned. The 'wildignorecase' option always applies.
74f67cb4f7e1 commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents: 9858
diff changeset
4454
9460
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4455 If there are no matches, an empty list is returned. An
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4456 invalid value for {type} produces an error.
cdffa812f9d1 commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents: 9454
diff changeset
4457
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4458 *getcurpos()*
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4459 getcurpos() Get the position of the cursor. This is like getpos('.'), but
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4460 includes an extra item in the list:
7597
3012eaddb6b2 commit https://github.com/vim/vim/commit/345efa013dc6d1754ba06e5596a26c48c9935937
Christian Brabandt <cb@256bit.org>
parents: 7593
diff changeset
4461 [bufnum, lnum, col, off, curswant] ~
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4462 The "curswant" number is the preferred column when moving the
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4463 cursor vertically. Also see |getpos()|.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4464
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4465 This can be used to save and restore the cursor position: >
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4466 let save_cursor = getcurpos()
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4467 MoveTheCursorAround
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
4468 call setpos('.', save_cursor)
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4469 < Note that this only works within the window. See
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4470 |winrestview()| for restoring more state.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4471 *getcwd()*
7653
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4472 getcwd([{winnr} [, {tabnr}]])
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4473 The result is a String, which is the name of the current
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4474 working directory.
7653
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4475 Without arguments, for the current window.
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4476
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4477 With {winnr} return the local current directory of this window
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4478 in the current tab page.
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4479 With {winnr} and {tabnr} return the local current directory of
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4480 the window in the specified tab page.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4481 {winnr} can be the window number or the |window-ID|.
7653
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4482 Return an empty string if the arguments are invalid.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4483
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4484 getfsize({fname}) *getfsize()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4485 The result is a Number, which is the size in bytes of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4486 given file {fname}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4487 If {fname} is a directory, 0 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4488 If the file {fname} can't be found, -1 is returned.
1293
3ae106044109 updated for version 7.1-008
vimboss
parents: 1266
diff changeset
4489 If the size of {fname} is too big to fit in a Number then -2
3ae106044109 updated for version 7.1-008
vimboss
parents: 1266
diff changeset
4490 is returned.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4491
37
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4492 getfontname([{name}]) *getfontname()*
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4493 Without an argument returns the name of the normal font being
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4494 used. Like what is used for the Normal highlight group
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4495 |hl-Normal|.
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4496 With an argument a check is done whether {name} is a valid
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4497 font name. If not then an empty string is returned.
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4498 Otherwise the actual font name is returned, or {name} if the
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4499 GUI does not support obtaining the real name.
824
8dd456c1e283 updated for version 7.0c13
vimboss
parents: 823
diff changeset
4500 Only works when the GUI is running, thus not in your vimrc or
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
4501 gvimrc file. Use the |GUIEnter| autocommand to use this
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
4502 function just after the GUI has started.
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
4503 Note that the GTK GUI accepts any font name, thus checking for
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
4504 a valid name does not work.
37
fdf55076c53f updated for version 7.0022
vimboss
parents: 33
diff changeset
4505
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4506 getfperm({fname}) *getfperm()*
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4507 The result is a String, which is the read, write, and execute
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4508 permissions of the given file {fname}.
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4509 If {fname} does not exist or its directory cannot be read, an
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4510 empty string is returned.
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4511 The result is of the form "rwxrwxrwx", where each group of
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4512 "rwx" flags represent, in turn, the permissions of the owner
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4513 of the file, the group the file belongs to, and other users.
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4514 If a user does not have a given permission the flag for this
3750
536aa8b0c934 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3682
diff changeset
4515 is replaced with the string "-". Examples: >
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4516 :echo getfperm("/etc/passwd")
3750
536aa8b0c934 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3682
diff changeset
4517 :echo getfperm(expand("~/.vimrc"))
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4518 < This will hopefully (from a security point of view) display
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4519 the string "rw-r--r--" or even "rw-------".
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
4520
10244
876fbdd84e52 commit https://github.com/vim/vim/commit/2ec618c9feac4573b154510236ad8121c77d0eca
Christian Brabandt <cb@256bit.org>
parents: 10237
diff changeset
4521 For setting permissions use |setfperm()|.
8451
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
4522
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4523 getftime({fname}) *getftime()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4524 The result is a Number, which is the last modification time of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4525 the given file {fname}. The value is measured as seconds
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4526 since 1st Jan 1970, and may be passed to strftime(). See also
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4527 |localtime()| and |strftime()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4528 If the file {fname} can't be found -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4529
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4530 getftype({fname}) *getftype()*
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4531 The result is a String, which is a description of the kind of
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4532 file of the given file {fname}.
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4533 If {fname} does not exist an empty string is returned.
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4534 Here is a table over different kinds of files and their
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4535 results:
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4536 Normal file "file"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4537 Directory "dir"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4538 Symbolic link "link"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4539 Block device "bdev"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4540 Character device "cdev"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4541 Socket "socket"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4542 FIFO "fifo"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4543 All other "other"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4544 Example: >
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4545 getftype("/home")
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4546 < Note that a type such as "link" will only be returned on
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4547 systems that support it. On some systems only "dir" and
7707
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
4548 "file" are returned. On MS-Windows a symbolic link to a
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
4549 directory returns "dir" instead of "link".
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
4550
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4551 *getline()*
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4552 getline({lnum} [, {end}])
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4553 Without {end} the result is a String, which is line {lnum}
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4554 from the current buffer. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4555 getline(1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4556 < When {lnum} is a String that doesn't start with a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4557 digit, line() is called to translate the String into a Number.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4558 To get the line under the cursor: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4559 getline(".")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4560 < When {lnum} is smaller than 1 or bigger than the number of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4561 lines in the buffer, an empty string is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4562
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4563 When {end} is given the result is a |List| where each item is
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4564 a line from the current buffer in the range {lnum} to {end},
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4565 including line {end}.
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4566 {end} is used in the same way as {lnum}.
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4567 Non-existing lines are silently omitted.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4568 When {end} is before {lnum} an empty |List| is returned.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4569 Example: >
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4570 :let start = line('.')
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4571 :let end = search("^$") - 1
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4572 :let lines = getline(start, end)
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4573
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
4574 < To get lines from another buffer see |getbufline()|
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
4575
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
4576 getloclist({nr} [, {what}]) *getloclist()*
647
19106f131c87 updated for version 7.0188
vimboss
parents: 644
diff changeset
4577 Returns a list with all the entries in the location list for
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4578 window {nr}. {nr} can be the window number or the |window-ID|.
9223
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
4579 When {nr} is zero the current window is used.
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
4580
647
19106f131c87 updated for version 7.0188
vimboss
parents: 644
diff changeset
4581 For a location list window, the displayed location list is
648
9032e4668296 updated for version 7.0189
vimboss
parents: 647
diff changeset
4582 returned. For an invalid window number {nr}, an empty list is
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
4583 returned. Otherwise, same as |getqflist()|.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4584
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4585 If the optional {what} dictionary argument is supplied, then
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4586 returns the items listed in {what} as a dictionary. Refer to
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4587 |getqflist()| for the supported items in {what}.
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4588
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4589 getmatches() *getmatches()*
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4590 Returns a |List| with all matches previously defined by
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4591 |matchadd()| and the |:match| commands. |getmatches()| is
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4592 useful in combination with |setmatches()|, as |setmatches()|
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4593 can restore a list of matches saved by |getmatches()|.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4594 Example: >
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4595 :echo getmatches()
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4596 < [{'group': 'MyGroup1', 'pattern': 'TODO',
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4597 'priority': 10, 'id': 1}, {'group': 'MyGroup2',
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4598 'pattern': 'FIXME', 'priority': 10, 'id': 2}] >
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4599 :let m = getmatches()
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4600 :call clearmatches()
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4601 :echo getmatches()
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4602 < [] >
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4603 :call setmatches(m)
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4604 :echo getmatches()
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4605 < [{'group': 'MyGroup1', 'pattern': 'TODO',
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4606 'priority': 10, 'id': 1}, {'group': 'MyGroup2',
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4607 'pattern': 'FIXME', 'priority': 10, 'id': 2}] >
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4608 :unlet m
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4609 <
5968
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4610 *getpid()*
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4611 getpid() Return a Number which is the process ID of the Vim process.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4612 On Unix and MS-Windows this is a unique number, until Vim
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4613 exits. On MS-DOS it's always zero.
5968
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4614
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4615 *getpos()*
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4616 getpos({expr}) Get the position for {expr}. For possible values of {expr}
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4617 see |line()|. For getting the cursor position see
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4618 |getcurpos()|.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4619 The result is a |List| with four numbers:
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4620 [bufnum, lnum, col, off]
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4621 "bufnum" is zero, unless a mark like '0 or 'A is used, then it
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4622 is the buffer number of the mark.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4623 "lnum" and "col" are the position in the buffer. The first
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4624 column is 1.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4625 The "off" number is zero, unless 'virtualedit' is used. Then
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4626 it is the offset in screen columns from the start of the
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4627 character. E.g., a position within a <Tab> or after the last
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4628 character.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4629 Note that for '< and '> Visual mode matters: when it is "V"
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4630 (visual line mode) the column of '< is zero and the column of
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4631 '> is a large number.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4632 This can be used to save and restore the position of a mark: >
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4633 let save_a_mark = getpos("'a")
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4634 ...
6421
5d89d9b40499 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6413
diff changeset
4635 call setpos("'a", save_a_mark)
5968
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4636 < Also see |getcurpos()| and |setpos()|.
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
4637
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
4638
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4639 getqflist([{what}]) *getqflist()*
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4640 Returns a list with all the current quickfix errors. Each
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4641 list item is a dictionary with these entries:
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4642 bufnr number of buffer that has the file name, use
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4643 bufname() to get the name
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4644 lnum line number in the buffer (first line is 1)
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4645 col column number (first column is 1)
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4646 vcol |TRUE|: "col" is visual column
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4647 |FALSE|: "col" is byte index
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4648 nr error number
1065
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
4649 pattern search pattern used to locate the error
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4650 text description of the error
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4651 type type of the error, 'E', '1', etc.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4652 valid |TRUE|: recognized error message
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4653
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4654 When there is no error list or it's empty, an empty list is
1065
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
4655 returned. Quickfix list entries with non-existing buffer
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
4656 number are returned with "bufnr" set to zero.
515
04dcb5a1f2f9 updated for version 7.0144
vimboss
parents: 504
diff changeset
4657
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4658 Useful application: Find pattern matches in multiple files and
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4659 do something with them: >
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4660 :vimgrep /theword/jg *.c
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4661 :for d in getqflist()
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4662 : echo bufname(d.bufnr) ':' d.lnum '=' d.text
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4663 :endfor
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4664 <
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4665 If the optional {what} dictionary argument is supplied, then
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4666 returns only the items listed in {what} as a dictionary. The
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4667 following string items are supported in {what}:
11414
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
4668 context get the context stored with |setqflist()|
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
4669 efm errorformat to use when parsing "lines". If
12968
45987b1b77dc Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12909
diff changeset
4670 not present, then the 'errorformat' option
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
4671 value is used.
12287
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
4672 id get information for the quickfix list with
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
4673 |quickfix-ID|; zero means the id for the
12968
45987b1b77dc Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12909
diff changeset
4674 current list or the list specified by "nr"
12465
805f7fd40e0d patch 8.0.1112: can't get size or current index from quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12427
diff changeset
4675 idx index of the current entry in the list
11549
f5add45f9848 patch 8.0.0657: cannot get and set quickfix list items
Christian Brabandt <cb@256bit.org>
parents: 11543
diff changeset
4676 items quickfix list entries
12303
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
4677 lines use 'errorformat' to extract items from a list
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
4678 of lines and return the resulting entries.
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
4679 Only a |List| type is accepted. The current
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
4680 quickfix list is not modified.
10237
197795e3530d commit https://github.com/vim/vim/commit/890680ca6364386fabb271c85e0755bcaa6a33c1
Christian Brabandt <cb@256bit.org>
parents: 10233
diff changeset
4681 nr get information for this quickfix list; zero
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
4682 means the current quickfix list and "$" means
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
4683 the last quickfix list
12465
805f7fd40e0d patch 8.0.1112: can't get size or current index from quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12427
diff changeset
4684 size number of entries in the quickfix list
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4685 title get the list title
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
4686 winid get the quickfix |window-ID|
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4687 all all of the above quickfix properties
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
4688 Non-string items in {what} are ignored. To get the value of a
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
4689 particular item, set it to one.
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4690 If "nr" is not present then the current quickfix list is used.
12287
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
4691 If both "nr" and a non-zero "id" are specified, then the list
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
4692 specified by "id" is used.
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
4693 To get the number of lists in the quickfix stack, set "nr" to
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
4694 "$" in {what}. The "nr" value in the returned dictionary
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
4695 contains the quickfix stack size.
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
4696 When "lines" is specified, all the other items except "efm"
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
4697 are ignored. The returned dictionary contains the entry
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
4698 "items" with the list of entries.
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4699 In case of error processing {what}, an empty dictionary is
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4700 returned.
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4701
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4702 The returned dictionary contains the following entries:
11414
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
4703 context context information stored with |setqflist()|
12287
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
4704 id quickfix list ID |quickfix-ID|
12465
805f7fd40e0d patch 8.0.1112: can't get size or current index from quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12427
diff changeset
4705 idx index of the current entry in the list
11549
f5add45f9848 patch 8.0.0657: cannot get and set quickfix list items
Christian Brabandt <cb@256bit.org>
parents: 11543
diff changeset
4706 items quickfix list entries
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4707 nr quickfix list number
12465
805f7fd40e0d patch 8.0.1112: can't get size or current index from quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12427
diff changeset
4708 size number of entries in the quickfix list
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4709 title quickfix list title text
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
4710 winid quickfix |window-ID|. If not present, set to 0
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4711
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4712 Examples: >
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4713 :echo getqflist({'all': 1})
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4714 :echo getqflist({'nr': 2, 'title': 1})
12303
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
4715 :echo getqflist({'lines' : ["F1:10:L10"]})
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4716 <
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
4717
5796
f084024c0ddb updated for version 7.4.242
Bram Moolenaar <bram@vim.org>
parents: 5794
diff changeset
4718 getreg([{regname} [, 1 [, {list}]]]) *getreg()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4719 The result is a String, which is the contents of register
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
4720 {regname}. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4721 :let cliptext = getreg('*')
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
4722 < When {regname} was not set the result is an empty string.
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
4723
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
4724 getreg('=') returns the last evaluated value of the expression
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
4725 register. (For use in maps.)
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
4726 getreg('=', 1) returns the expression itself, so that it can
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
4727 be restored with |setreg()|. For other registers the extra
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
4728 argument is ignored, thus you can always give it.
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
4729
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4730 If {list} is present and |TRUE|, the result type is changed
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
4731 to |List|. Each list item is one text line. Use it if you care
5796
f084024c0ddb updated for version 7.4.242
Bram Moolenaar <bram@vim.org>
parents: 5794
diff changeset
4732 about zero bytes possibly present inside register: without
f084024c0ddb updated for version 7.4.242
Bram Moolenaar <bram@vim.org>
parents: 5794
diff changeset
4733 third argument both NLs and zero bytes are represented as NLs
f084024c0ddb updated for version 7.4.242
Bram Moolenaar <bram@vim.org>
parents: 5794
diff changeset
4734 (see |NL-used-for-Nul|).
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
4735 When the register was not set an empty list is returned.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
4736
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4737 If {regname} is not specified, |v:register| is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4738
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
4739
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4740 getregtype([{regname}]) *getregtype()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4741 The result is a String, which is type of register {regname}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4742 The value will be one of:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4743 "v" for |characterwise| text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4744 "V" for |linewise| text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4745 "<CTRL-V>{width}" for |blockwise-visual| text
5596
1098b7b6e147 updated for version 7.4.145
Bram Moolenaar <bram@vim.org>
parents: 5555
diff changeset
4746 "" for an empty or unknown register
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4747 <CTRL-V> is one character with value 0x16.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4748 If {regname} is not specified, |v:register| is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4749
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4750 gettabinfo([{arg}]) *gettabinfo()*
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4751 If {arg} is not specified, then information about all the tab
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4752 pages is returned as a List. Each List item is a Dictionary.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4753 Otherwise, {arg} specifies the tab page number and information
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4754 about that one is returned. If the tab page does not exist an
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4755 empty List is returned.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4756
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4757 Each List item is a Dictionary with the following entries:
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4758 tabnr tab page number.
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4759 variables a reference to the dictionary with
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4760 tabpage-local variables
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4761 windows List of |window-ID|s in the tag page.
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4762
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4763 gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()*
2207
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
4764 Get the value of a tab-local variable {varname} in tab page
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
4765 {tabnr}. |t:var|
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
4766 Tabs are numbered starting with one.
6197
4176c48c7dd5 updated for version 7.4.434
Bram Moolenaar <bram@vim.org>
parents: 6183
diff changeset
4767 When {varname} is empty a dictionary with all tab-local
4176c48c7dd5 updated for version 7.4.434
Bram Moolenaar <bram@vim.org>
parents: 6183
diff changeset
4768 variables is returned.
2207
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
4769 Note that the name without "t:" must be used.
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4770 When the tab or variable doesn't exist {def} or an empty
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4771 string is returned, there is no error message.
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4772
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4773 gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
4774 Get the value of window-local variable {varname} in window
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
4775 {winnr} in tab page {tabnr}.
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4776 When {varname} is empty a dictionary with all window-local
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4777 variables is returned.
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4778 When {varname} is equal to "&" get the values of all
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4779 window-local options in a Dictionary.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4780 Otherwise, when {varname} starts with "&" get the value of a
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4781 window-local option.
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4782 Note that {varname} must be the name without "w:".
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4783 Tabs are numbered starting with one. For the current tabpage
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4784 use |getwinvar()|.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4785 {winnr} can be the window number or the |window-ID|.
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4786 When {winnr} is zero the current window is used.
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4787 This also works for a global option, buffer-local option and
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4788 window-local option, but it doesn't work for a global variable
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4789 or buffer-local variable.
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4790 When the tab, window or variable doesn't exist {def} or an
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4791 empty string is returned, there is no error message.
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4792 Examples: >
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4793 :let list_is_on = gettabwinvar(1, 2, '&list')
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4794 :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
1266
54588e2e8041 updated for version 7.1
vimboss
parents: 1215
diff changeset
4795 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4796 *getwinposx()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4797 getwinposx() The result is a Number, which is the X coordinate in pixels of
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4798 the left hand side of the GUI Vim window. Also works for an
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4799 xterm.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4800 The result will be -1 if the information is not available.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4801 The value can be used with `:winpos`.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4802
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4803 *getwinposy()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4804 getwinposy() The result is a Number, which is the Y coordinate in pixels of
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4805 the top of the GUI Vim window. Also works for an xterm.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4806 The result will be -1 if the information is not available.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
4807 The value can be used with `:winpos`.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4808
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4809 getwininfo([{winid}]) *getwininfo()*
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4810 Returns information about windows as a List with Dictionaries.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4811
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4812 If {winid} is given Information about the window with that ID
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4813 is returned. If the window does not exist the result is an
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4814 empty list.
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4815
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4816 Without {winid} information about all the windows in all the
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4817 tab pages is returned.
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4818
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4819 Each List item is a Dictionary with the following entries:
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4820 bufnr number of buffer in the window
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
4821 height window height (excluding winbar)
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
4822 winbar 1 if the window has a toolbar, 0
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
4823 otherwise
9881
4b53f6be10c0 commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents: 9877
diff changeset
4824 loclist 1 if showing a location list
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
4825 {only with the +quickfix feature}
9881
4b53f6be10c0 commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents: 9877
diff changeset
4826 quickfix 1 if quickfix or location list window
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
4827 {only with the +quickfix feature}
12102
560a2b6789c3 patch 8.0.0931: getwininfo() does not indicate a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12084
diff changeset
4828 terminal 1 if a terminal window
560a2b6789c3 patch 8.0.0931: getwininfo() does not indicate a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12084
diff changeset
4829 {only with the +terminal feature}
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4830 tabnr tab page number
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4831 variables a reference to the dictionary with
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4832 window-local variables
9881
4b53f6be10c0 commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents: 9877
diff changeset
4833 width window width
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4834 winid |window-ID|
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4835 winnr window number
9858
3e96d9ed2ca1 commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents: 9850
diff changeset
4836
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4837 To obtain all window-local variables use: >
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4838 gettabwinvar({tabnr}, {winnr}, '&')
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
4839
4157
cb185366f5c8 updated for version 7.3.831
Bram Moolenaar <bram@vim.org>
parents: 4151
diff changeset
4840 getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
4841 Like |gettabwinvar()| for the current tabpage.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4842 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4843 :let list_is_on = getwinvar(2, '&list')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4844 :echo "myvar = " . getwinvar(1, 'myvar')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4845 <
6663
056809de0b29 updated for version 7.4.656
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
4846 glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) *glob()*
1754
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4847 Expand the file wildcards in {expr}. See |wildcards| for the
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
4848 use of special characters.
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4849
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4850 Unless the optional {nosuf} argument is given and is |TRUE|,
1754
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4851 the 'suffixes' and 'wildignore' options apply: Names matching
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4852 one of the patterns in 'wildignore' will be skipped and
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4853 'suffixes' affect the ordering of matches.
2662
916c90b37ea9 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
4854 'wildignorecase' always applies.
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4855
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4856 When {list} is present and it is |TRUE| the result is a List
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4857 with all matching files. The advantage of using a List is,
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4858 you also get filenames containing newlines correctly.
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4859 Otherwise the result is a String and when there are several
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4860 matches, they are separated by <NL> characters.
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4861
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
4862 If the expansion fails, the result is an empty String or List.
6663
056809de0b29 updated for version 7.4.656
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
4863
3445
2cfb68fa26cd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3410
diff changeset
4864 A name for a non-existing file is not included. A symbolic
2cfb68fa26cd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3410
diff changeset
4865 link is only included if it points to an existing file.
6663
056809de0b29 updated for version 7.4.656
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
4866 However, when the {alllinks} argument is present and it is
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4867 |TRUE| then all symbolic links are included.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4868
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4869 For most systems backticks can be used to get files names from
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4870 any external command. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4871 :let tagfiles = glob("`find . -name tags -print`")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4872 :let &tags = substitute(tagfiles, "\n", ",", "g")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4873 < The result of the program inside the backticks should be one
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4874 item per line. Spaces inside an item are allowed.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4875
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4876 See |expand()| for expanding special Vim variables. See
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4877 |system()| for getting the raw output of an external command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4878
6697
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4879 glob2regpat({expr}) *glob2regpat()*
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4880 Convert a file pattern, as used by glob(), into a search
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4881 pattern. The result can be used to match with a string that
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4882 is a file name. E.g. >
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4883 if filename =~ glob2regpat('Make*.mak')
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4884 < This is equivalent to: >
12155a47f6c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6663
diff changeset
4885 if filename =~ '^Make.*\.mak$'
7788
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
4886 < When {expr} is an empty string the result is "^$", match an
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
4887 empty string.
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
4888 Note that the result depends on the system. On MS-Windows
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4889 a backslash usually means a path separator.
7788
192ae655ac91 commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents: 7782
diff changeset
4890
6663
056809de0b29 updated for version 7.4.656
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
4891 *globpath()*
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
4892 globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4893 Perform glob() on all directories in {path} and concatenate
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4894 the results. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4895 :echo globpath(&rtp, "syntax/c.vim")
5873
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4896 <
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4897 {path} is a comma-separated list of directory names. Each
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4898 directory name is prepended to {expr} and expanded like with
1754
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4899 |glob()|. A path separator is inserted when needed.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4900 To add a comma inside a directory name escape it with a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4901 backslash. Note that on MS-Windows a directory may have a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4902 trailing backslash, remove it if you put a comma after it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4903 If the expansion fails for one of the directories, there is no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4904 error message.
5873
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4905
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4906 Unless the optional {nosuf} argument is given and is |TRUE|,
1754
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4907 the 'suffixes' and 'wildignore' options apply: Names matching
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4908 one of the patterns in 'wildignore' will be skipped and
28d0c20ad8a0 updated for version 7.2-051
vimboss
parents: 1733
diff changeset
4909 'suffixes' affect the ordering of matches.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4910
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4911 When {list} is present and it is |TRUE| the result is a List
5873
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4912 with all matching files. The advantage of using a List is, you
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4913 also get filenames containing newlines correctly. Otherwise
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4914 the result is a String and when there are several matches,
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4915 they are separated by <NL> characters. Example: >
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4916 :echo globpath(&rtp, "syntax/c.vim", 0, 1)
8e9db1f27a00 updated for version 7.4.279
Bram Moolenaar <bram@vim.org>
parents: 5862
diff changeset
4917 <
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
4918 {alllinks} is used as with |glob()|.
6663
056809de0b29 updated for version 7.4.656
Bram Moolenaar <bram@vim.org>
parents: 6647
diff changeset
4919
444
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
4920 The "**" item can be used to search in a directory tree.
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
4921 For example, to find all "README.txt" files in the directories
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
4922 in 'runtimepath' and below: >
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
4923 :echo globpath(&rtp, "**/README.txt")
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
4924 < Upwards search and limiting the depth of "**" is not
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
4925 supported, thus using 'path' will not always work properly.
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
4926
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4927 *has()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4928 has({feature}) The result is a Number, which is 1 if the feature {feature} is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4929 supported, zero otherwise. The {feature} argument is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4930 string. See |feature-list| below.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4931 Also see |exists()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4932
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4933
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4934 has_key({dict}, {key}) *has_key()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4935 The result is a Number, which is 1 if |Dictionary| {dict} has
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
4936 an entry with key {key}. Zero otherwise.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4937
7653
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4938 haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()*
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4939 The result is a Number, which is 1 when the window has set a
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4940 local path via |:lcd|, and 0 otherwise.
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4941
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4942 Without arguments use the current window.
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4943 With {winnr} use this window in the current tab page.
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4944 With {winnr} and {tabnr} use the window in the specified tab
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4945 page.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
4946 {winnr} can be the window number or the |window-ID|.
7653
d4370fef0175 commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents: 7651
diff changeset
4947 Return 0 if the arguments are invalid.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
4948
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
4949 hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4950 The result is a Number, which is 1 if there is a mapping that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4951 contains {what} in somewhere in the rhs (what it is mapped to)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4952 and this mapping exists in one of the modes indicated by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4953 {mode}.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
4954 When {abbr} is there and it is |TRUE| use abbreviations
786
8f6a426bc1e0 updated for version 7.0229
vimboss
parents: 782
diff changeset
4955 instead of mappings. Don't forget to specify Insert and/or
8f6a426bc1e0 updated for version 7.0229
vimboss
parents: 782
diff changeset
4956 Command-line mode.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4957 Both the global mappings and the mappings local to the current
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4958 buffer are checked for a match.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4959 If no matching mapping is found 0 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4960 The following characters are recognized in {mode}:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4961 n Normal mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4962 v Visual mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4963 o Operator-pending mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4964 i Insert mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4965 l Language-Argument ("r", "f", "t", etc.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4966 c Command-line mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4967 When {mode} is omitted, "nvo" is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4968
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4969 This function is useful to check if a mapping already exists
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
4970 to a function in a Vim script. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4971 :if !hasmapto('\ABCdoit')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4972 : map <Leader>d \ABCdoit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4973 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4974 < This installs the mapping to "\ABCdoit" only if there isn't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4975 already a mapping to "\ABCdoit".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4976
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4977 histadd({history}, {item}) *histadd()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4978 Add the String {item} to the history {history} which can be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4979 one of: *hist-names*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4980 "cmd" or ":" command line history
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4981 "search" or "/" search pattern history
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
4982 "expr" or "=" typed expression history
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4983 "input" or "@" input line history
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
4984 "debug" or ">" debug command history
10228
8a1481e59d64 commit https://github.com/vim/vim/commit/3e496b0ea31996b665824f45664dee1fdd73c4d0
Christian Brabandt <cb@256bit.org>
parents: 10218
diff changeset
4985 empty the current or last used history
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
4986 The {history} string does not need to be the whole name, one
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
4987 character is sufficient.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4988 If {item} does already exist in the history, it will be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4989 shifted to become the newest entry.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4990 The result is a Number: 1 if the operation was successful,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4991 otherwise 0 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4992
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4993 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4994 :call histadd("input", strftime("%Y %b %d"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4995 :let date=input("Enter date: ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4996 < This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4997
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4998 histdel({history} [, {item}]) *histdel()*
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
4999 Clear {history}, i.e. delete all its entries. See |hist-names|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5000 for the possible values of {history}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5001
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
5002 If the parameter {item} evaluates to a String, it is used as a
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
5003 regular expression. All entries matching that expression will
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
5004 be removed from the history (if there are any).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5005 Upper/lowercase must match, unless "\c" is used |/\c|.
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
5006 If {item} evaluates to a Number, it will be interpreted as
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
5007 an index, see |:history-indexing|. The respective entry will
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
5008 be removed if it exists.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5009
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5010 The result is a Number: 1 for a successful operation,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5011 otherwise 0 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5012
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5013 Examples:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5014 Clear expression register history: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5015 :call histdel("expr")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5016 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5017 Remove all entries starting with "*" from the search history: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5018 :call histdel("/", '^\*')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5019 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5020 The following three are equivalent: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5021 :call histdel("search", histnr("search"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5022 :call histdel("search", -1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5023 :call histdel("search", '^'.histget("search", -1).'$')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5024 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5025 To delete the last search pattern and use the last-but-one for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5026 the "n" command and 'hlsearch': >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5027 :call histdel("search", -1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5028 :let @/ = histget("search", -1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5029
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5030 histget({history} [, {index}]) *histget()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5031 The result is a String, the entry with Number {index} from
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5032 {history}. See |hist-names| for the possible values of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5033 {history}, and |:history-indexing| for {index}. If there is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5034 no such entry, an empty String is returned. When {index} is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5035 omitted, the most recent item from the history is used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5036
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5037 Examples:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5038 Redo the second last search from history. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5039 :execute '/' . histget("search", -2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5040
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5041 < Define an Ex command ":H {num}" that supports re-execution of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5042 the {num}th entry from the output of |:history|. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5043 :command -nargs=1 H execute histget("cmd", 0+<args>)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5044 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5045 histnr({history}) *histnr()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5046 The result is the Number of the current entry in {history}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5047 See |hist-names| for the possible values of {history}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5048 If an error occurred, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5049
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5050 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5051 :let inp_index = histnr("expr")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5052 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5053 hlexists({name}) *hlexists()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5054 The result is a Number, which is non-zero if a highlight group
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5055 called {name} exists. This is when the group has been
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5056 defined in some way. Not necessarily when highlighting has
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5057 been defined for it, it may also have been used for a syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5058 item.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5059 *highlight_exists()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5060 Obsolete name: highlight_exists().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5061
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5062 *hlID()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5063 hlID({name}) The result is a Number, which is the ID of the highlight group
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5064 with name {name}. When the highlight group doesn't exist,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5065 zero is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5066 This can be used to retrieve information about the highlight
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5067 group. For example, to get the background color of the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5068 "Comment" group: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5069 :echo synIDattr(synIDtrans(hlID("Comment")), "bg")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5070 < *highlightID()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5071 Obsolete name: highlightID().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5072
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5073 hostname() *hostname()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5074 The result is a String, which is the name of the machine on
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
5075 which Vim is currently running. Machine names greater than
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5076 256 characters long are truncated.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5077
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5078 iconv({expr}, {from}, {to}) *iconv()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5079 The result is a String, which is the text {expr} converted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5080 from encoding {from} to encoding {to}.
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5081 When the conversion completely fails an empty string is
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5082 returned. When some characters could not be converted they
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5083 are replaced with "?".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5084 The encoding names are whatever the iconv() library function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5085 can accept, see ":!man 3 iconv".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5086 Most conversions require Vim to be compiled with the |+iconv|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5087 feature. Otherwise only UTF-8 to latin1 conversion and back
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5088 can be done.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5089 This can be used to display messages with special characters,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5090 no matter what 'encoding' is set to. Write the message in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5091 UTF-8 and use: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5092 echo iconv(utf8_str, "utf-8", &enc)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5093 < Note that Vim uses UTF-8 for all Unicode encodings, conversion
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5094 from/to UCS-2 is automatically changed to use UTF-8. You
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5095 cannot use UCS-2 in a string anyway, because of the NUL bytes.
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
5096 {only available when compiled with the |+multi_byte| feature}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5097
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5098 *indent()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5099 indent({lnum}) The result is a Number, which is indent of line {lnum} in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5100 current buffer. The indent is counted in spaces, the value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5101 of 'tabstop' is relevant. {lnum} is used just like in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5102 |getline()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5103 When {lnum} is invalid -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5104
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5105
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5106 index({list}, {expr} [, {start} [, {ic}]]) *index()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5107 Return the lowest index in |List| {list} where the item has a
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5108 value equal to {expr}. There is no automatic conversion, so
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5109 the String "4" is different from the Number 4. And the number
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5110 4 is different from the Float 4.0. The value of 'ignorecase'
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5111 is not used here, case always matters.
153
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
5112 If {start} is given then start looking at the item with index
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
5113 {start} (may be negative for an item relative to the end).
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5114 When {ic} is given and it is |TRUE|, ignore case. Otherwise
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5115 case must match.
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5116 -1 is returned when {expr} is not found in {list}.
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5117 Example: >
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5118 :let idx = index(words, "the")
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
5119 :if index(numbers, 123) >= 0
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5120
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
5121
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5122 input({prompt} [, {text} [, {completion}]]) *input()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5123 The result is a String, which is whatever the user typed on
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5124 the command-line. The {prompt} argument is either a prompt
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5125 string, or a blank string (for no prompt). A '\n' can be used
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5126 in the prompt to start a new line.
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5127 The highlighting set with |:echohl| is used for the prompt.
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5128 The input is entered just like a command-line, with the same
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5129 editing commands and mappings. There is a separate history
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5130 for lines typed for input().
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5131 Example: >
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5132 :if input("Coffee or beer? ") == "beer"
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5133 : echo "Cheers!"
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5134 :endif
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5135 <
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5136 If the optional {text} argument is present and not empty, this
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5137 is used for the default reply, as if the user typed this.
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5138 Example: >
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5139 :let color = input("Color? ", "white")
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5140
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5141 < The optional {completion} argument specifies the type of
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5142 completion supported for the input. Without it completion is
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5143 not performed. The supported completion types are the same as
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5144 that can be supplied to a user-defined command using the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5145 "-complete=" argument. Refer to |:command-completion| for
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5146 more information. Example: >
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5147 let fname = input("File: ", "", "file")
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5148 <
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5149 NOTE: This function must not be used in a startup file, for
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5150 the versions that only run in GUI mode (e.g., the Win32 GUI).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5151 Note: When input() is called from within a mapping it will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5152 consume remaining characters from that mapping, because a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5153 mapping is handled like the characters were typed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5154 Use |inputsave()| before input() and |inputrestore()|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5155 after input() to avoid that. Another solution is to avoid
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5156 that further characters follow in the mapping, e.g., by using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5157 |:execute| or |:normal|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5158
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5159 Example with a mapping: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5160 :nmap \x :call GetFoo()<CR>:exe "/" . Foo<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5161 :function GetFoo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5162 : call inputsave()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5163 : let g:Foo = input("enter search pattern: ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5164 : call inputrestore()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5165 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5166
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5167 inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5168 Like |input()|, but when the GUI is running and text dialogs
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5169 are supported, a dialog window pops up to input the text.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5170 Example: >
3875
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
5171 :let n = inputdialog("value for shiftwidth", shiftwidth())
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
5172 :if n != ""
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
5173 : let &sw = n
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
5174 :endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5175 < When the dialog is cancelled {cancelreturn} is returned. When
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5176 omitted an empty string is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5177 Hitting <Enter> works like pressing the OK button. Hitting
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5178 <Esc> works like pressing the Cancel button.
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5179 NOTE: Command-line completion is not supported.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5180
519
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5181 inputlist({textlist}) *inputlist()*
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5182 {textlist} must be a |List| of strings. This |List| is
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5183 displayed, one string per line. The user will be prompted to
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5184 enter a number, which is returned.
519
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5185 The user can also select an item by clicking on it with the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5186 mouse. For the first string 0 is returned. When clicking
519
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5187 above the first item a negative number is returned. When
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5188 clicking on the prompt one more than the length of {textlist}
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5189 is returned.
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5190 Make sure {textlist} has less than 'lines' entries, otherwise
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5191 it won't work. It's a good idea to put the entry number at
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
5192 the start of the string. And put a prompt in the first item.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
5193 Example: >
519
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5194 let color = inputlist(['Select color:', '1. red',
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5195 \ '2. green', '3. blue'])
d50452846776 updated for version 7.0145
vimboss
parents: 515
diff changeset
5196
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5197 inputrestore() *inputrestore()*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5198 Restore typeahead that was saved with a previous |inputsave()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5199 Should be called the same number of times inputsave() is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5200 called. Calling it more often is harmless though.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5201 Returns 1 when there is nothing to restore, 0 otherwise.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5202
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5203 inputsave() *inputsave()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5204 Preserve typeahead (also from mappings) and clear it, so that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5205 a following prompt gets input from the user. Should be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5206 followed by a matching inputrestore() after the prompt. Can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5207 be used several times, in which case there must be just as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5208 many inputrestore() calls.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5209 Returns 1 when out of memory, 0 otherwise.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5210
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5211 inputsecret({prompt} [, {text}]) *inputsecret()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5212 This function acts much like the |input()| function with but
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5213 two exceptions:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5214 a) the user's response will be displayed as a sequence of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5215 asterisks ("*") thereby keeping the entry secret, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5216 b) the user's response will not be recorded on the input
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5217 |history| stack.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5218 The result is a String, which is whatever the user actually
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5219 typed on the command-line in response to the issued prompt.
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
5220 NOTE: Command-line completion is not supported.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5221
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5222 insert({list}, {item} [, {idx}]) *insert()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5223 Insert {item} at the start of |List| {list}.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5224 If {idx} is specified insert {item} before the item with index
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5225 {idx}. If {idx} is zero it goes before the first item, just
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5226 like omitting {idx}. A negative {idx} is also possible, see
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5227 |list-index|. -1 inserts just before the last item.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5228 Returns the resulting |List|. Examples: >
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5229 :let mylist = insert([2, 3, 5], 1)
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5230 :call insert(mylist, 4, -1)
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5231 :call insert(mylist, 6, len(mylist))
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
5232 < The last example can be done simpler with |add()|.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5233 Note that when {item} is a |List| it is inserted as a single
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
5234 item. Use |extend()| to concatenate |Lists|.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5235
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
5236 invert({expr}) *invert()*
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
5237 Bitwise invert. The argument is converted to a number. A
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
5238 List, Dict or Float argument causes an error. Example: >
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
5239 :let bits = invert(bits)
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
5240
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5241 isdirectory({directory}) *isdirectory()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5242 The result is a Number, which is |TRUE| when a directory
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5243 with the name {directory} exists. If {directory} doesn't
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5244 exist, or isn't a directory, the result is |FALSE|. {directory}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5245 is any expression, which is used as a String.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5246
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5247 islocked({expr}) *islocked()* *E786*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5248 The result is a Number, which is |TRUE| when {expr} is the
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5249 name of a locked variable.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5250 {expr} must be the name of a variable, |List| item or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5251 |Dictionary| entry, not the variable itself! Example: >
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5252 :let alist = [0, ['a', 'b'], 2, 3]
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5253 :lockvar 1 alist
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5254 :echo islocked('alist') " 1
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5255 :echo islocked('alist[1]') " 0
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5256
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5257 < When {expr} is a variable that does not exist you get an error
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
5258 message. Use |exists()| to check for existence.
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
5259
8246
f16bfe02cef1 commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
5260 isnan({expr}) *isnan()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5261 Return |TRUE| if {expr} is a float with value NaN. >
8246
f16bfe02cef1 commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
5262 echo isnan(0.0 / 0.0)
f16bfe02cef1 commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
5263 < 1 ~
f16bfe02cef1 commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
5264
f16bfe02cef1 commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
5265 {only available when compiled with the |+float| feature}
f16bfe02cef1 commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents: 8218
diff changeset
5266
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
5267 items({dict}) *items()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5268 Return a |List| with all the key-value pairs of {dict}. Each
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5269 |List| item is a list with two items: the key of a {dict}
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5270 entry and the value of this entry. The |List| is in arbitrary
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5271 order.
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
5272
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
5273 job_getchannel({job}) *job_getchannel()*
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
5274 Get the channel handle that {job} is using.
8497
da01d5da2cfa commit https://github.com/vim/vim/commit/77cdfd10382e01cc51f4ba1a9177032351843151
Christian Brabandt <cb@256bit.org>
parents: 8451
diff changeset
5275 To check if the job has no channel: >
da01d5da2cfa commit https://github.com/vim/vim/commit/77cdfd10382e01cc51f4ba1a9177032351843151
Christian Brabandt <cb@256bit.org>
parents: 8451
diff changeset
5276 if string(job_getchannel()) == 'channel fail'
da01d5da2cfa commit https://github.com/vim/vim/commit/77cdfd10382e01cc51f4ba1a9177032351843151
Christian Brabandt <cb@256bit.org>
parents: 8451
diff changeset
5277 <
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
5278 {only available when compiled with the |+job| feature}
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
5279
8512
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5280 job_info({job}) *job_info()*
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5281 Returns a Dictionary with information about {job}:
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5282 "status" what |job_status()| returns
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5283 "channel" what |job_getchannel()| returns
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
5284 "process" process ID
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
5285 "tty_in" terminal input name, empty when none
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
5286 "tty_out" terminal output name, empty when none
8512
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5287 "exitval" only valid when "status" is "dead"
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
5288 "exit_cb" function to be called on exit
8512
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5289 "stoponexit" |job-stoponexit|
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5290
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
5291 job_setoptions({job}, {options}) *job_setoptions()*
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
5292 Change options for {job}. Supported are:
8512
5104f96b6ecf commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents: 8502
diff changeset
5293 "stoponexit" |job-stoponexit|
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
5294 "exit_cb" |job-exit_cb|
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
5295
8061
abd64cf67bcf commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents: 8031
diff changeset
5296 job_start({command} [, {options}]) *job_start()*
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5297 Start a job and return a Job object. Unlike |system()| and
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5298 |:!cmd| this does not wait for the job to finish.
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
5299 To start a job in a terminal window see |term_start()|.
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5300
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5301 {command} can be a String. This works best on MS-Windows. On
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5302 Unix it is split up in white-separated parts to be passed to
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5303 execvp(). Arguments in double quotes can contain white space.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5304
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5305 {command} can be a List, where the first item is the executable
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5306 and further items are the arguments. All items are converted
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5307 to String. This works best on Unix.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5308
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5309 On MS-Windows, job_start() makes a GUI application hidden. If
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5310 want to show it, Use |:!start| instead.
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5311
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5312 The command is executed directly, not through a shell, the
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5313 'shell' option is not used. To use the shell: >
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5314 let job = job_start(["/bin/sh", "-c", "echo hello"])
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5315 < Or: >
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5316 let job = job_start('/bin/sh -c "echo hello"')
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5317 < Note that this will start two processes, the shell and the
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5318 command it executes. If you don't want this use the "exec"
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5319 shell command.
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5320
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5321 On Unix $PATH is used to search for the executable only when
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5322 the command does not contain a slash.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5323
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5324 The job will use the same terminal as Vim. If it reads from
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5325 stdin the job and Vim will be fighting over input, that
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5326 doesn't work. Redirect stdin and stdout to avoid problems: >
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5327 let job = job_start(['sh', '-c', "myserver </dev/null >/dev/null"])
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5328 <
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5329 The returned Job object can be used to get the status with
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5330 |job_status()| and stop the job with |job_stop()|.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5331
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5332 {options} must be a Dictionary. It can contain many optional
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5333 items, see |job-options|.
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5334
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5335 {only available when compiled with the |+job| feature}
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5336
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
5337 job_status({job}) *job_status()* *E916*
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5338 Returns a String with the status of {job}:
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5339 "run" job is running
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5340 "fail" job failed to start
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5341 "dead" job died or was stopped after running
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5342
9221
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
5343 On Unix a non-existing command results in "dead" instead of
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
5344 "fail", because a fork happens before the failure can be
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
5345 detected.
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
5346
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
5347 If an exit callback was set with the "exit_cb" option and the
8178
e77efd7a7dad commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents: 8148
diff changeset
5348 job is now detected to be "dead" the callback will be invoked.
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5349
8502
ee5cb2e9ed5a commit https://github.com/vim/vim/commit/8950a563b306ce76f259573d91c2ddccdf52e32e
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
5350 For more information see |job_info()|.
ee5cb2e9ed5a commit https://github.com/vim/vim/commit/8950a563b306ce76f259573d91c2ddccdf52e32e
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
5351
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5352 {only available when compiled with the |+job| feature}
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5353
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5354 job_stop({job} [, {how}]) *job_stop()*
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5355 Stop the {job}. This can also be used to signal the job.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5356
8251
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5357 When {how} is omitted or is "term" the job will be terminated.
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5358 For Unix SIGTERM is sent. On MS-Windows the job will be
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5359 terminated forcedly (there is no "gentle" way).
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5360 This goes to the process group, thus children may also be
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5361 affected.
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5362
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5363 Effect for Unix:
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5364 "term" SIGTERM (default)
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5365 "hup" SIGHUP
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5366 "quit" SIGQUIT
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5367 "int" SIGINT
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5368 "kill" SIGKILL (strongest way to stop)
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5369 number signal with that number
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5370
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5371 Effect for MS-Windows:
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5372 "term" terminate process forcedly (default)
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5373 "hup" CTRL_BREAK
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5374 "quit" CTRL_BREAK
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5375 "int" CTRL_C
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5376 "kill" terminate process forcedly
989ac3aed1ef commit https://github.com/vim/vim/commit/923d926d57d985ec8965da9d0cd3634e6b24bfe1
Christian Brabandt <cb@256bit.org>
parents: 8246
diff changeset
5377 Others CTRL_BREAK
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5378
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5379 On Unix the signal is sent to the process group. This means
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5380 that when the job is "sh -c command" it affects both the shell
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5381 and the command.
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5382
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5383 The result is a Number: 1 if the operation could be executed,
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5384 0 if "how" is not supported on the system.
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5385 Note that even when the operation was executed, whether the
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5386 job was actually stopped needs to be checked with
11414
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5387 |job_status()|.
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5388
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5389 If the status of the job is "dead", the signal will not be
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5390 sent. This is to avoid to stop the wrong job (esp. on Unix,
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5391 where process numbers are recycled).
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5392
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5393 When using "kill" Vim will assume the job will die and close
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
5394 the channel.
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5395
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5396 {only available when compiled with the |+job| feature}
7957
b74549818500 commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents: 7935
diff changeset
5397
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5398 join({list} [, {sep}]) *join()*
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5399 Join the items in {list} together into one String.
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5400 When {sep} is specified it is put in between the items. If
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5401 {sep} is omitted a single space is used.
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5402 Note that {sep} is not added at the end. You might want to
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5403 add it there too: >
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5404 let lines = join(mylist, "\n") . "\n"
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
5405 < String items are used as-is. |Lists| and |Dictionaries| are
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5406 converted into a string like with |string()|.
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5407 The opposite function is |split()|.
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5408
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5409 js_decode({string}) *js_decode()*
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5410 This is similar to |json_decode()| with these differences:
7967
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5411 - Object key names do not have to be in quotes.
10563
bac9cec298ed patch 8.0.0171: JS style JSON does not support single quotes
Christian Brabandt <cb@256bit.org>
parents: 10548
diff changeset
5412 - Strings can be in single quotes.
7967
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5413 - Empty items in an array (between two commas) are allowed and
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5414 result in v:none items.
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5415
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5416 js_encode({expr}) *js_encode()*
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5417 This is similar to |json_encode()| with these differences:
7967
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5418 - Object key names are not in quotes.
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5419 - v:none items in an array result in an empty item between
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5420 commas.
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5421 For example, the Vim object:
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5422 [1,v:none,{"one":1},v:none] ~
7967
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5423 Will be encoded as:
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5424 [1,,{one:1},,] ~
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5425 While json_encode() would produce:
7967
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5426 [1,null,{"one":1},null] ~
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5427 This encoding is valid for JavaScript. It is more efficient
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5428 than JSON, especially when using an array with optional items.
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5429
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5430
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5431 json_decode({string}) *json_decode()*
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
5432 This parses a JSON formatted string and returns the equivalent
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5433 in Vim values. See |json_encode()| for the relation between
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
5434 JSON and Vim values.
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
5435 The decoding is permissive:
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5436 - A trailing comma in an array and object is ignored, e.g.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5437 "[1, 2, ]" is the same as "[1, 2]".
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
5438 - More floating point numbers are recognized, e.g. "1." for
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5439 "1.0", or "001.2" for "1.2". Special floating point values
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5440 "Infinity" and "NaN" (capitalization ignored) are accepted.
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5441 - Leading zeroes in integer numbers are ignored, e.g. "012"
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5442 for "12" or "-012" for "-12".
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5443 - Capitalization is ignored in literal names null, true or
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5444 false, e.g. "NULL" for "null", "True" for "true".
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5445 - Control characters U+0000 through U+001F which are not
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5446 escaped in strings are accepted, e.g. " " (tab
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5447 character in string) for "\t".
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5448 - Backslash in an invalid 2-character sequence escape is
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5449 ignored, e.g. "\a" is decoded as "a".
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5450 - A correct surrogate pair in JSON strings should normally be
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5451 a 12 character sequence such as "\uD834\uDD1E", but
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5452 json_decode() silently accepts truncated surrogate pairs
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5453 such as "\uD834" or "\uD834\u"
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5454 *E938*
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5455 A duplicate key in an object, valid in rfc7159, is not
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5456 accepted by json_decode() as the result must be a valid Vim
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5457 type, e.g. this fails: {"a":"b", "a":"c"}
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
5458
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5459
8019
d685893d852e commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents: 7992
diff changeset
5460 json_encode({expr}) *json_encode()*
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
5461 Encode {expr} as JSON and return this as a string.
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5462 The encoding is specified in:
7782
3a99194bd187 commit https://github.com/vim/vim/commit/009d84a34f3678ec93921bee3bc05be2fd606264
Christian Brabandt <cb@256bit.org>
parents: 7742
diff changeset
5463 https://tools.ietf.org/html/rfc7159.html
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5464 Vim values are converted as follows:
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5465 Number decimal number
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5466 Float floating point number
8275
ff900e499f79 commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents: 8251
diff changeset
5467 Float nan "NaN"
ff900e499f79 commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents: 8251
diff changeset
5468 Float inf "Infinity"
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5469 String in double quotes (possibly null)
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
5470 Funcref not possible, error
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5471 List as an array (possibly null); when
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
5472 used recursively: []
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5473 Dict as an object (possibly null); when
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
5474 used recursively: {}
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5475 v:false "false"
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5476 v:true "true"
7967
45ea5ebf3a98 commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents: 7957
diff changeset
5477 v:none "null"
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5478 v:null "null"
8275
ff900e499f79 commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents: 8251
diff changeset
5479 Note that NaN and Infinity are passed on as values. This is
ff900e499f79 commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents: 8251
diff changeset
5480 missing in the JSON standard, but several implementations do
ff900e499f79 commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents: 8251
diff changeset
5481 allow it. If not then you will get an error.
7712
bce3b5ddb393 commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents: 7707
diff changeset
5482
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
5483 keys({dict}) *keys()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5484 Return a |List| with all the keys of {dict}. The |List| is in
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
5485 arbitrary order.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
5486
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
5487 *len()* *E701*
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5488 len({expr}) The result is a Number, which is the length of the argument.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5489 When {expr} is a String or a Number the length in bytes is
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5490 used, as with |strlen()|.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5491 When {expr} is a |List| the number of items in the |List| is
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5492 returned.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5493 When {expr} is a |Dictionary| the number of entries in the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5494 |Dictionary| is returned.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5495 Otherwise an error is given.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
5496
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5497 *libcall()* *E364* *E368*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5498 libcall({libname}, {funcname}, {argument})
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5499 Call function {funcname} in the run-time library {libname}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5500 with single argument {argument}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5501 This is useful to call functions in a library that you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5502 especially made to be used with Vim. Since only one argument
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5503 is possible, calling standard library functions is rather
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5504 limited.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5505 The result is the String returned by the function. If the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5506 function returns NULL, this will appear as an empty string ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5507 to Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5508 If the function returns a number, use libcallnr()!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5509 If {argument} is a number, it is passed to the function as an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5510 int; if {argument} is a string, it is passed as a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5511 null-terminated string.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5512 This function will fail in |restricted-mode|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5513
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5514 libcall() allows you to write your own 'plug-in' extensions to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5515 Vim without having to recompile the program. It is NOT a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5516 means to call system functions! If you try to do so Vim will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5517 very probably crash.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5518
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5519 For Win32, the functions you write must be placed in a DLL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5520 and use the normal C calling convention (NOT Pascal which is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5521 used in Windows System DLLs). The function must take exactly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5522 one parameter, either a character pointer or a long integer,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5523 and must return a character pointer or NULL. The character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5524 pointer returned must point to memory that will remain valid
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5525 after the function has returned (e.g. in static data in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5526 DLL). If it points to allocated memory, that memory will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5527 leak away. Using a static buffer in the function should work,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5528 it's then freed when the DLL is unloaded.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5529
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5530 WARNING: If the function returns a non-valid pointer, Vim may
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5531 crash! This also happens if the function returns a number,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5532 because Vim thinks it's a pointer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5533 For Win32 systems, {libname} should be the filename of the DLL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5534 without the ".DLL" suffix. A full path is only required if
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5535 the DLL is not in the usual places.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5536 For Unix: When compiling your own plugins, remember that the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5537 object code must be compiled as position-independent ('PIC').
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5538 {only in Win32 and some Unix versions, when the |+libcall|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5539 feature is present}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5540 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5541 :echo libcall("libc.so", "getenv", "HOME")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5542 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5543 *libcallnr()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5544 libcallnr({libname}, {funcname}, {argument})
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5545 Just like |libcall()|, but used for a function that returns an
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5546 int instead of a string.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5547 {only in Win32 on some Unix versions, when the |+libcall|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5548 feature is present}
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5549 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5550 :echo libcallnr("/usr/lib/libc.so", "getpid", "")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5551 :call libcallnr("libc.so", "printf", "Hello World!\n")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5552 :call libcallnr("libc.so", "sleep", 10)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5553 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5554 *line()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5555 line({expr}) The result is a Number, which is the line number of the file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5556 position given with {expr}. The accepted positions are:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5557 . the cursor position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5558 $ the last line in the current buffer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5559 'x position of mark x (if the mark is not set, 0 is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5560 returned)
11313
327a04a762f6 patch 8.0.0542: getpos() can return a negative line number
Christian Brabandt <cb@256bit.org>
parents: 11263
diff changeset
5561 w0 first line visible in current window (one if the
327a04a762f6 patch 8.0.0542: getpos() can return a negative line number
Christian Brabandt <cb@256bit.org>
parents: 11263
diff changeset
5562 display isn't updated, e.g. in silent Ex mode)
327a04a762f6 patch 8.0.0542: getpos() can return a negative line number
Christian Brabandt <cb@256bit.org>
parents: 11263
diff changeset
5563 w$ last line visible in current window (this is one
327a04a762f6 patch 8.0.0542: getpos() can return a negative line number
Christian Brabandt <cb@256bit.org>
parents: 11263
diff changeset
5564 less than "w0" if no lines are visible)
1609
1324b7b755f3 updated for version 7.1-322
vimboss
parents: 1586
diff changeset
5565 v In Visual mode: the start of the Visual area (the
1324b7b755f3 updated for version 7.1-322
vimboss
parents: 1586
diff changeset
5566 cursor is the end). When not in Visual mode
1324b7b755f3 updated for version 7.1-322
vimboss
parents: 1586
diff changeset
5567 returns the cursor position. Differs from |'<| in
1324b7b755f3 updated for version 7.1-322
vimboss
parents: 1586
diff changeset
5568 that it's updated right away.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
5569 Note that a mark in another file can be used. The line number
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
5570 then applies to another buffer.
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5571 To get the column number use |col()|. To get both use
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5572 |getpos()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5573 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5574 line(".") line number of the cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5575 line("'t") line number of mark t
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5576 line("'" . marker) line number of mark marker
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5577 < *last-position-jump*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5578 This autocommand jumps to the last known position in a file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5579 just after opening it, if the '" mark is set: >
11518
63b0b7b79b25 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11502
diff changeset
5580 :au BufReadPost *
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5581 \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
5582 \ | exe "normal! g`\""
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
5583 \ | endif
9
4102fb4ea781 updated for version 7.0002
vimboss
parents: 7
diff changeset
5584
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5585 line2byte({lnum}) *line2byte()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5586 Return the byte count from the start of the buffer for line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5587 {lnum}. This includes the end-of-line character, depending on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5588 the 'fileformat' option for the current buffer. The first
3237
91e53bcb7946 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3224
diff changeset
5589 line returns 1. 'encoding' matters, 'fileencoding' is ignored.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5590 This can also be used to get the byte count for the line just
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5591 below the last line: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5592 line2byte(line("$") + 1)
3237
91e53bcb7946 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3224
diff changeset
5593 < This is the buffer size plus one. If 'fileencoding' is empty
91e53bcb7946 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3224
diff changeset
5594 it is the file size plus one.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5595 When {lnum} is invalid, or the |+byte_offset| feature has been
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5596 disabled at compile time, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5597 Also see |byte2line()|, |go| and |:goto|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5598
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5599 lispindent({lnum}) *lispindent()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5600 Get the amount of indent for line {lnum} according the lisp
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5601 indenting rules, as with 'lisp'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5602 The indent is counted in spaces, the value of 'tabstop' is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5603 relevant. {lnum} is used just like in |getline()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5604 When {lnum} is invalid or Vim was not compiled the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5605 |+lispindent| feature, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5606
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5607 localtime() *localtime()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5608 Return the current time, measured as seconds since 1st Jan
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5609 1970. See also |strftime()| and |getftime()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5610
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5611
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5612 log({expr}) *log()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
5613 Return the natural logarithm (base e) of {expr} as a |Float|.
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
5614 {expr} must evaluate to a |Float| or a |Number| in the range
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5615 (0, inf].
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5616 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5617 :echo log(10)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5618 < 2.302585 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5619 :echo log(exp(5))
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5620 < 5.0
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
5621 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5622
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
5623
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5624 log10({expr}) *log10()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5625 Return the logarithm of Float {expr} to base 10 as a |Float|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5626 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5627 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5628 :echo log10(1000)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5629 < 3.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5630 :echo log10(0.01)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5631 < -2.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5632 {only available when compiled with the |+float| feature}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5633
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5634 luaeval({expr} [, {expr}]) *luaeval()*
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5635 Evaluate Lua expression {expr} and return its result converted
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5636 to Vim data structures. Second {expr} may hold additional
3492
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5637 argument accessible as _A inside first {expr}.
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5638 Strings are returned as they are.
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5639 Boolean objects are converted to numbers.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5640 Numbers are converted to |Float| values if vim was compiled
3492
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5641 with |+float| and to numbers otherwise.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5642 Dictionaries and lists obtained by vim.eval() are returned
3492
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5643 as-is.
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5644 Other objects are returned as zero without any errors.
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5645 See |lua-luaeval| for more details.
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5646 {only available when compiled with the |+lua| feature}
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
5647
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5648 map({expr1}, {expr2}) *map()*
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5649 {expr1} must be a |List| or a |Dictionary|.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5650 Replace each item in {expr1} with the result of evaluating
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5651 {expr2}. {expr2} must be a |string| or |Funcref|.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5652
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5653 If {expr2} is a |string|, inside {expr2} |v:val| has the value
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5654 of the current item. For a |Dictionary| |v:key| has the key
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5655 of the current item and for a |List| |v:key| has the index of
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5656 the current item.
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
5657 Example: >
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
5658 :call map(mylist, '"> " . v:val . " <"')
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5659 < This puts "> " before and " <" after each item in "mylist".
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
5660
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5661 Note that {expr2} is the result of an expression and is then
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
5662 used as an expression again. Often it is good to use a
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
5663 |literal-string| to avoid having to double backslashes. You
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
5664 still have to double ' quotes
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
5665
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5666 If {expr2} is a |Funcref| it is called with two arguments:
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5667 1. The key or the index of the current item.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5668 2. the value of the current item.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5669 The function must return the new value of the item. Example
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5670 that changes each value by "key-value": >
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5671 func KeyValue(key, val)
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5672 return a:key . '-' . a:val
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5673 endfunc
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5674 call map(myDict, function('KeyValue'))
10218
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
5675 < It is shorter when using a |lambda|: >
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
5676 call map(myDict, {key, val -> key . '-' . val})
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
5677 < If you do not use "val" you can leave it out: >
584c835a2de1 commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents: 10198
diff changeset
5678 call map(myDict, {key -> 'item: ' . key})
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5679 <
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5680 The operation is done in-place. If you want a |List| or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5681 |Dictionary| to remain unmodified make a copy first: >
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
5682 :let tlist = map(copy(mylist), ' v:val . "\t"')
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
5683
9416
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5684 < Returns {expr1}, the |List| or |Dictionary| that was filtered.
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5685 When an error is encountered while evaluating {expr2} no
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5686 further items in {expr1} are processed. When {expr2} is a
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5687 Funcref errors inside a function are ignored, unless it was
cbf052ccb120 commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents: 9407
diff changeset
5688 defined with the "abort" flag.
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5689
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5690
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5691 maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5692 When {dict} is omitted or zero: Return the rhs of mapping
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5693 {name} in mode {mode}. The returned String has special
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5694 characters translated like in the output of the ":map" command
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5695 listing.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5696
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5697 When there is no mapping for {name}, an empty String is
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5698 returned.
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5699
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5700 The {name} can have special key names, like in the ":map"
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5701 command.
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5702
644
e4fa26ce8769 updated for version 7.0187
vimboss
parents: 634
diff changeset
5703 {mode} can be one of these strings:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5704 "n" Normal
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5705 "v" Visual (including Select)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5706 "o" Operator-pending
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5707 "i" Insert
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5708 "c" Cmd-line
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5709 "s" Select
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5710 "x" Visual
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5711 "l" langmap |language-mapping|
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
5712 "t" Terminal-Job
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5713 "" Normal, Visual and Operator-pending
644
e4fa26ce8769 updated for version 7.0187
vimboss
parents: 634
diff changeset
5714 When {mode} is omitted, the modes for "" are used.
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5715
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5716 When {abbr} is there and it is |TRUE| use abbreviations
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
5717 instead of mappings.
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5718
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5719 When {dict} is there and it is |TRUE| return a dictionary
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5720 containing all the information of the mapping with the
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5721 following items:
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5722 "lhs" The {lhs} of the mapping.
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5723 "rhs" The {rhs} of the mapping as typed.
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5724 "silent" 1 for a |:map-silent| mapping, else 0.
2625
0aa21d63aba0 Updated runtile files.
Bram Moolenaar <bram@vim.org>
parents: 2616
diff changeset
5725 "noremap" 1 if the {rhs} of the mapping is not remappable.
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5726 "expr" 1 for an expression mapping (|:map-<expr>|).
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5727 "buffer" 1 for a buffer local mapping (|:map-local|).
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5728 "mode" Modes for which the mapping is defined. In
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5729 addition to the modes mentioned above, these
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5730 characters will be used:
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5731 " " Normal, Visual and Operator-pending
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5732 "!" Insert and Commandline mode
2642
840c3cadb842 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2625
diff changeset
5733 (|mapmode-ic|)
2625
0aa21d63aba0 Updated runtile files.
Bram Moolenaar <bram@vim.org>
parents: 2616
diff changeset
5734 "sid" The script local ID, used for <sid> mappings
0aa21d63aba0 Updated runtile files.
Bram Moolenaar <bram@vim.org>
parents: 2616
diff changeset
5735 (|<SID>|).
5555
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
5736 "nowait" Do not wait for other, longer mappings.
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
5737 (|:map-<nowait>|).
2610
6c05b5e5c1be updated for version 7.3.032
Bram Moolenaar <bram@vim.org>
parents: 2609
diff changeset
5738
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5739 The mappings local to the current buffer are checked first,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5740 then the global mappings.
626
732c7ae5743e updated for version 7.0180
vimboss
parents: 625
diff changeset
5741 This function can be used to map a key even when it's already
732c7ae5743e updated for version 7.0180
vimboss
parents: 625
diff changeset
5742 mapped, and have it do the original mapping too. Sketch: >
732c7ae5743e updated for version 7.0180
vimboss
parents: 625
diff changeset
5743 exe 'nnoremap <Tab> ==' . maparg('<Tab>', 'n')
732c7ae5743e updated for version 7.0180
vimboss
parents: 625
diff changeset
5744
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5745
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5746 mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5747 Check if there is a mapping that matches with {name} in mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5748 {mode}. See |maparg()| for {mode} and special names in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5749 {name}.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
5750 When {abbr} is there and it is |TRUE| use abbreviations
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
5751 instead of mappings.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5752 A match happens with a mapping that starts with {name} and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5753 with a mapping which is equal to the start of {name}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5754
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5755 matches mapping "a" "ab" "abc" ~
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5756 mapcheck("a") yes yes yes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5757 mapcheck("abc") yes yes yes
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5758 mapcheck("ax") yes no no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5759 mapcheck("b") no no no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5760
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5761 The difference with maparg() is that mapcheck() finds a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5762 mapping that matches with {name}, while maparg() only finds a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5763 mapping for {name} exactly.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5764 When there is no mapping that starts with {name}, an empty
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5765 String is returned. If there is one, the rhs of that mapping
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5766 is returned. If there are several mappings that start with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5767 {name}, the rhs of one of them is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5768 The mappings local to the current buffer are checked first,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5769 then the global mappings.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5770 This function can be used to check if a mapping can be added
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5771 without being ambiguous. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5772 :if mapcheck("_vv") == ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5773 : map _vv :set guifont=7x13<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5774 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5775 < This avoids adding the "_vv" mapping when there already is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5776 mapping for "_v" or for "_vvv".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5777
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5778 match({expr}, {pat} [, {start} [, {count}]]) *match()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5779 When {expr} is a |List| then this returns the index of the
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5780 first item where {pat} matches. Each item is used as a
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
5781 String, |Lists| and |Dictionaries| are used as echoed.
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5782 Otherwise, {expr} is used as a String. The result is a
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5783 Number, which gives the index (byte offset) in {expr} where
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5784 {pat} matches.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5785 A match at the first character or |List| item returns zero.
19
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
5786 If there is no match -1 is returned.
2833
c869ff170ddc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2826
diff changeset
5787 For getting submatches see |matchlist()|.
19
a81bc802c17c updated for version 7.0011
vimboss
parents: 18
diff changeset
5788 Example: >
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5789 :echo match("testing", "ing") " results in 4
714
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
5790 :echo match([1, 'x'], '\a') " results in 1
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5791 < See |string-match| for how {pat} is used.
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5792 *strpbrk()*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5793 Vim doesn't have a strpbrk() function. But you can do: >
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5794 :let sepidx = match(line, '[.,;: \t]')
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5795 < *strcasestr()*
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5796 Vim doesn't have a strcasestr() function. But you can add
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5797 "\c" to the pattern to ignore case: >
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5798 :let idx = match(haystack, '\cneedle')
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5799 <
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5800 If {start} is given, the search starts from byte index
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5801 {start} in a String or item {start} in a |List|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5802 The result, however, is still the index counted from the
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
5803 first character/item. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5804 :echo match("testing", "ing", 2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5805 < result is again "4". >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5806 :echo match("testing", "ing", 4)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5807 < result is again "4". >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5808 :echo match("testing", "t", 2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5809 < result is "3".
694
07d199fe02ed updated for version 7.0209
vimboss
parents: 692
diff changeset
5810 For a String, if {start} > 0 then it is like the string starts
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5811 {start} bytes later, thus "^" will match at {start}. Except
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5812 when {count} is given, then it's like matches before the
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5813 {start} byte are ignored (this is a bit complicated to keep it
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5814 backwards compatible).
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5815 For a String, if {start} < 0, it will be set to 0. For a list
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5816 the index is counted from the end.
697
f08390485cd3 updated for version 7.0210
vimboss
parents: 694
diff changeset
5817 If {start} is out of range ({start} > strlen({expr}) for a
f08390485cd3 updated for version 7.0210
vimboss
parents: 694
diff changeset
5818 String or {start} > len({expr}) for a |List|) -1 is returned.
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5819
694
07d199fe02ed updated for version 7.0209
vimboss
parents: 692
diff changeset
5820 When {count} is given use the {count}'th match. When a match
697
f08390485cd3 updated for version 7.0210
vimboss
parents: 694
diff changeset
5821 is found in a String the search for the next one starts one
694
07d199fe02ed updated for version 7.0209
vimboss
parents: 692
diff changeset
5822 character further. Thus this example results in 1: >
07d199fe02ed updated for version 7.0209
vimboss
parents: 692
diff changeset
5823 echo match("testing", "..", 0, 2)
07d199fe02ed updated for version 7.0209
vimboss
parents: 692
diff changeset
5824 < In a |List| the search continues in the next item.
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5825 Note that when {count} is added the way {start} works changes,
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
5826 see above.
694
07d199fe02ed updated for version 7.0209
vimboss
parents: 692
diff changeset
5827
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5828 See |pattern| for the patterns that are accepted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5829 The 'ignorecase' option is used to set the ignore-caseness of
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5830 the pattern. 'smartcase' is NOT used. The matching is always
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5831 done like 'magic' is set and 'cpoptions' is empty.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5832
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5833 *matchadd()* *E798* *E799* *E801*
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5834 matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5835 Defines a pattern to be highlighted in the current window (a
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5836 "match"). It will be highlighted with {group}. Returns an
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5837 identification number (ID), which can be used to delete the
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5838 match using |matchdelete()|.
5466
d060c429b21f Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5460
diff changeset
5839 Matching is case sensitive and magic, unless case sensitivity
d060c429b21f Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5460
diff changeset
5840 or magicness are explicitly overridden in {pattern}. The
d060c429b21f Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5460
diff changeset
5841 'magic', 'smartcase' and 'ignorecase' options are not used.
6951
b2673982c625 Updated and new runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6947
diff changeset
5842 The "Conceal" value is special, it causes the match to be
b2673982c625 Updated and new runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6947
diff changeset
5843 concealed.
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5844
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5845 The optional {priority} argument assigns a priority to the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5846 match. A match with a high priority will have its
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5847 highlighting overrule that of a match with a lower priority.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5848 A priority is specified as an integer (negative numbers are no
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5849 exception). If the {priority} argument is not specified, the
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5850 default priority is 10. The priority of 'hlsearch' is zero,
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5851 hence all matches with a priority greater than zero will
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5852 overrule it. Syntax highlighting (see 'syntax') is a separate
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5853 mechanism, and regardless of the chosen priority a match will
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5854 always overrule syntax highlighting.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5855
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5856 The optional {id} argument allows the request for a specific
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5857 match ID. If a specified ID is already taken, an error
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5858 message will appear and the match will not be added. An ID
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5859 is specified as a positive integer (zero excluded). IDs 1, 2
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5860 and 3 are reserved for |:match|, |:2match| and |:3match|,
6947
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5861 respectively. If the {id} argument is not specified or -1,
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5862 |matchadd()| automatically chooses a free ID.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5863
7659
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
5864 The optional {dict} argument allows for further custom
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
5865 values. Currently this is used to specify a match specific
6947
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5866 conceal character that will be shown for |hl-Conceal|
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5867 highlighted matches. The dict can have the following members:
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5868
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5869 conceal Special character to show instead of the
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
5870 match (only for |hl-Conceal| highlighted
6947
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5871 matches, see |:syn-cchar|)
1efa7c2b9368 patch 7.4.792
Bram Moolenaar <bram@vim.org>
parents: 6935
diff changeset
5872
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5873 The number of matches is not limited, as it is the case with
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5874 the |:match| commands.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5875
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5876 Example: >
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5877 :highlight MyGroup ctermbg=green guibg=green
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5878 :let m = matchadd("MyGroup", "TODO")
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5879 < Deletion of the pattern: >
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5880 :call matchdelete(m)
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5881
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5882 < A list of matches defined by |matchadd()| and |:match| are
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
5883 available from |getmatches()|. All matches can be deleted in
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5884 one operation by |clearmatches()|.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5885
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
5886 *matchaddpos()*
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5887 matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
5979
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5888 Same as |matchadd()|, but requires a list of positions {pos}
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5889 instead of a pattern. This command is faster than |matchadd()|
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5890 because it does not require to handle regular expressions and
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5891 sets buffer line boundaries to redraw screen. It is supposed
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5892 to be used when fast match additions and deletions are
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5893 required, for example to highlight matching parentheses.
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5894
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5895 The list {pos} can contain one of these items:
6007
ce284c205558 updated for version 7.4.344
Bram Moolenaar <bram@vim.org>
parents: 5995
diff changeset
5896 - A number. This whole line will be highlighted. The first
5979
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5897 line has number 1.
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5898 - A list with one number, e.g., [23]. The whole line with this
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5899 number will be highlighted.
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5900 - A list with two numbers, e.g., [23, 11]. The first number is
6007
ce284c205558 updated for version 7.4.344
Bram Moolenaar <bram@vim.org>
parents: 5995
diff changeset
5901 the line number, the second one is the column number (first
ce284c205558 updated for version 7.4.344
Bram Moolenaar <bram@vim.org>
parents: 5995
diff changeset
5902 column is 1, the value must correspond to the byte index as
ce284c205558 updated for version 7.4.344
Bram Moolenaar <bram@vim.org>
parents: 5995
diff changeset
5903 |col()| would return). The character at this position will
ce284c205558 updated for version 7.4.344
Bram Moolenaar <bram@vim.org>
parents: 5995
diff changeset
5904 be highlighted.
5979
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5905 - A list with three numbers, e.g., [23, 11, 3]. As above, but
6007
ce284c205558 updated for version 7.4.344
Bram Moolenaar <bram@vim.org>
parents: 5995
diff changeset
5906 the third number gives the length of the highlight in bytes.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5907
5979
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5908 The maximum number of positions is 8.
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5909
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5910 Example: >
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5911 :highlight MyGroup ctermbg=green guibg=green
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5912 :let m = matchaddpos("MyGroup", [[23, 24], 34])
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5913 < Deletion of the pattern: >
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5914 :call matchdelete(m)
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5915
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5916 < Matches added by |matchaddpos()| are returned by
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5917 |getmatches()| with an entry "pos1", "pos2", etc., with the
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5918 value a list like the {pos} item.
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5919 These matches cannot be set via |setmatches()|, however they
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5920 can still be deleted by |clearmatches()|.
f9fa2e506b9f updated for version 7.4.330
Bram Moolenaar <bram@vim.org>
parents: 5968
diff changeset
5921
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5922 matcharg({nr}) *matcharg()*
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
5923 Selects the {nr} match item, as set with a |:match|,
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5924 |:2match| or |:3match| command.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5925 Return a |List| with two elements:
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5926 The name of the highlight group used
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5927 The pattern used.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5928 When {nr} is not 1, 2 or 3 returns an empty |List|.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5929 When there is no match item set returns ['', ''].
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5930 This is useful to save and restore a |:match|.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5931 Highlighting matches using the |:match| commands are limited
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5932 to three matches. |matchadd()| does not have this limitation.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5933
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5934 matchdelete({id}) *matchdelete()* *E802* *E803*
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5935 Deletes a match with ID {id} previously defined by |matchadd()|
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5936 or one of the |:match| commands. Returns 0 if successful,
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5937 otherwise -1. See example for |matchadd()|. All matches can
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
5938 be deleted in one operation by |clearmatches()|.
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
5939
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5940 matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5941 Same as |match()|, but return the index of first character
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5942 after the match. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5943 :echo matchend("testing", "ing")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5944 < results in "7".
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5945 *strspn()* *strcspn()*
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5946 Vim doesn't have a strspn() or strcspn() function, but you can
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5947 do it with matchend(): >
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5948 :let span = matchend(line, '[a-zA-Z]')
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5949 :let span = matchend(line, '[^a-zA-Z]')
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5950 < Except that -1 is returned when there are no matches.
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
5951
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5952 The {start}, if given, has the same meaning as for |match()|. >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5953 :echo matchend("testing", "ing", 2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5954 < results in "7". >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5955 :echo matchend("testing", "ing", 5)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5956 < result is "-1".
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5957 When {expr} is a |List| the result is equal to |match()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5958
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5959 matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5960 Same as |match()|, but return a |List|. The first item in the
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
5961 list is the matched string, same as what matchstr() would
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
5962 return. Following items are submatches, like "\1", "\2", etc.
842
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
5963 in |:substitute|. When an optional submatch didn't match an
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
5964 empty string is used. Example: >
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
5965 echo matchlist('acd', '\(a\)\?\(b\)\?\(c\)\?\(.*\)')
a209672376fd updated for version 7.0f
vimboss
parents: 841
diff changeset
5966 < Results in: ['acd', 'a', '', 'c', 'd', '', '', '', '', '']
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
5967 When there is no match an empty list is returned.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
5968
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5969 matchstr({expr}, {pat} [, {start} [, {count}]]) *matchstr()*
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
5970 Same as |match()|, but return the matched string. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5971 :echo matchstr("testing", "ing")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5972 < results in "ing".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5973 When there is no match "" is returned.
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
5974 The {start}, if given, has the same meaning as for |match()|. >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5975 :echo matchstr("testing", "ing", 2)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5976 < results in "ing". >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5977 :echo matchstr("testing", "ing", 5)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5978 < result is "".
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
5979 When {expr} is a |List| then the matching item is returned.
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
5980 The type isn't changed, it's not necessarily a String.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5981
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
5982 matchstrpos({expr}, {pat} [, {start} [, {count}]]) *matchstrpos()*
8793
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5983 Same as |matchstr()|, but return the matched string, the start
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5984 position and the end position of the match. Example: >
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5985 :echo matchstrpos("testing", "ing")
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5986 < results in ["ing", 4, 7].
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5987 When there is no match ["", -1, -1] is returned.
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5988 The {start}, if given, has the same meaning as for |match()|. >
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5989 :echo matchstrpos("testing", "ing", 2)
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5990 < results in ["ing", 4, 7]. >
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5991 :echo matchstrpos("testing", "ing", 5)
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5992 < result is ["", -1, -1].
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5993 When {expr} is a |List| then the matching item, the index
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5994 of first item where {pat} matches, the start position and the
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5995 end position of the match are returned. >
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5996 :echo matchstrpos([1, '__x'], '\a')
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5997 < result is ["x", 1, 2, 3].
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5998 The type isn't changed, it's not necessarily a String.
dda254280bab commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents: 8749
diff changeset
5999
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
6000 *max()*
10734
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6001 max({expr}) Return the maximum value of all items in {expr}.
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6002 {expr} can be a list or a dictionary. For a dictionary,
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6003 it returns the maximum of all values in the dictionary.
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6004 If {expr} is neither a list nor a dictionary, or one of the
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6005 items in {expr} cannot be used as a Number this results in
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
6006 an error. An empty |List| or |Dictionary| results in zero.
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
6007
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
6008 *min()*
10734
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6009 min({expr}) Return the minimum value of all items in {expr}.
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6010 {expr} can be a list or a dictionary. For a dictionary,
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6011 it returns the minimum of all values in the dictionary.
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6012 If {expr} is neither a list nor a dictionary, or one of the
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
6013 items in {expr} cannot be used as a Number this results in
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
6014 an error. An empty |List| or |Dictionary| results in zero.
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
6015
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
6016 *mkdir()* *E739*
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6017 mkdir({name} [, {path} [, {prot}]])
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6018 Create directory {name}.
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6019 If {path} is "p" then intermediate directories are created as
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6020 necessary. Otherwise it must be "".
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6021 If {prot} is given it is used to set the protection bits of
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6022 the new directory. The default is 0755 (rwxr-xr-x: r/w for
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6023 the user readable for others). Use 0700 to make it unreadable
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1700
diff changeset
6024 for others. This is only used for the last part of {name}.
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1700
diff changeset
6025 Thus if you create /tmp/foo/bar then /tmp/foo will be created
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1700
diff changeset
6026 with 0755.
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1700
diff changeset
6027 Example: >
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1700
diff changeset
6028 :call mkdir($HOME . "/tmp/foo/bar", "p", 0700)
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1700
diff changeset
6029 < This function is not available in the |sandbox|.
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6030 Not available on all systems. To check use: >
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6031 :if exists("*mkdir")
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6032 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6033 *mode()*
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6034 mode([expr]) Return a string that indicates the current mode.
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
6035 If [expr] is supplied and it evaluates to a non-zero Number or
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
6036 a non-empty String (|non-zero-arg|), then the full mode is
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
6037 returned, otherwise only the first letter is returned.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6038
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
6039 n Normal, Terminal-Normal
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6040 no Operator-pending
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6041 v Visual by character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6042 V Visual by line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6043 CTRL-V Visual blockwise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6044 s Select by character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6045 S Select by line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6046 CTRL-S Select blockwise
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6047 i Insert
10787
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
6048 ic Insert mode completion |compl-generic|
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
6049 ix Insert mode |i_CTRL-X| completion
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6050 R Replace |R|
10787
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
6051 Rc Replace mode completion |compl-generic|
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6052 Rv Virtual Replace |gR|
10787
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
6053 Rx Replace mode |i_CTRL-X| completion
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10734
diff changeset
6054 c Command-line editing
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6055 cv Vim Ex mode |gQ|
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6056 ce Normal Ex mode |Q|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6057 r Hit-enter prompt
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6058 rm The -- more -- prompt
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6059 r? A |:confirm| query of some sort
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6060 ! Shell or external command is executing
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
6061 t Terminal-Job mode: keys go to the job
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6062 This is useful in the 'statusline' option or when used
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6063 with |remote_expr()| In most other places it always returns
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6064 "c" or "n".
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6065 Also see |visualmode()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6066
2050
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6067 mzeval({expr}) *mzeval()*
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6068 Evaluate MzScheme expression {expr} and return its result
3492
3482d151136b Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3465
diff changeset
6069 converted to Vim data structures.
2050
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6070 Numbers and strings are returned as they are.
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6071 Pairs (including lists and improper lists) and vectors are
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6072 returned as Vim |Lists|.
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6073 Hash tables are represented as Vim |Dictionary| type with keys
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6074 converted to strings.
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6075 All other types are converted to string with display function.
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6076 Examples: >
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6077 :mz (define l (list 1 2 3))
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6078 :mz (define h (make-hash)) (hash-set! h "list" l)
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6079 :echo mzeval("l")
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6080 :echo mzeval("h")
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6081 <
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6082 {only available when compiled with the |+mzscheme| feature}
afcf9db31561 updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents: 2033
diff changeset
6083
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6084 nextnonblank({lnum}) *nextnonblank()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6085 Return the line number of the first line at or below {lnum}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6086 that is not blank. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6087 if getline(nextnonblank(1)) =~ "Java"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6088 < When {lnum} is invalid or there is no non-blank line at or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6089 below it, zero is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6090 See also |prevnonblank()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6091
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6092 nr2char({expr} [, {utf8}]) *nr2char()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6093 Return a string with a single character, which has the number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6094 value {expr}. Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6095 nr2char(64) returns "@"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6096 nr2char(32) returns " "
4051
42edc5dac33c updated for version 7.3.780
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
6097 < When {utf8} is omitted or zero, the current 'encoding' is used.
42edc5dac33c updated for version 7.3.780
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
6098 Example for "utf-8": >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6099 nr2char(300) returns I with bow character
4051
42edc5dac33c updated for version 7.3.780
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
6100 < With {utf8} set to 1, always return utf-8 characters.
42edc5dac33c updated for version 7.3.780
Bram Moolenaar <bram@vim.org>
parents: 3996
diff changeset
6101 Note that a NUL character in the file is specified with
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6102 nr2char(10), because NULs are represented with newline
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6103 characters. nr2char(0) is a real NUL and terminates the
119
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
6104 string, thus results in an empty string.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6105
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6106 or({expr}, {expr}) *or()*
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6107 Bitwise OR on the two arguments. The arguments are converted
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6108 to a number. A List, Dict or Float argument causes an error.
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6109 Example: >
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6110 :let bits = or(bits, 0x80)
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6111
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
6112
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6113 pathshorten({expr}) *pathshorten()*
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6114 Shorten directory names in the path {expr} and return the
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6115 result. The tail, the file name, is kept as-is. The other
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6116 components in the path are reduced to single letters. Leading
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6117 '~' and '.' characters are kept. Example: >
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6118 :echo pathshorten('~/.vim/autoload/myfile.vim')
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6119 < ~/.v/a/myfile.vim ~
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6120 It doesn't matter if the path exists or not.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
6121
7651
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6122 perleval({expr}) *perleval()*
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6123 Evaluate Perl expression {expr} in scalar context and return
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6124 its result converted to Vim data structures. If value can't be
7659
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
6125 converted, it is returned as a string Perl representation.
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
6126 Note: If you want an array or hash, {expr} must return a
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
6127 reference to it.
7651
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6128 Example: >
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6129 :echo perleval('[1 .. 4]')
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6130 < [1, 2, 3, 4]
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6131 {only available when compiled with the |+perl| feature}
c7575b07de98 commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents: 7629
diff changeset
6132
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6133 pow({x}, {y}) *pow()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6134 Return the power of {x} to the exponent {y} as a |Float|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6135 {x} and {y} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6136 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6137 :echo pow(3, 3)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6138 < 27.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6139 :echo pow(2, 16)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6140 < 65536.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6141 :echo pow(32, 0.20)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6142 < 2.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6143 {only available when compiled with the |+float| feature}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6144
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6145 prevnonblank({lnum}) *prevnonblank()*
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6146 Return the line number of the first line at or above {lnum}
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6147 that is not blank. Example: >
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6148 let ind = indent(prevnonblank(v:lnum - 1))
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6149 < When {lnum} is invalid or there is no non-blank line at or
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6150 above it, zero is returned.
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6151 Also see |nextnonblank()|.
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6152
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6153
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6154 printf({fmt}, {expr1} ...) *printf()*
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6155 Return a String with {fmt}, where "%" items are replaced by
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6156 the formatted form of their respective arguments. Example: >
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6157 printf("%4d: E%d %.30s", lnum, errno, msg)
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6158 < May result in:
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6159 " 99: E42 asdfasdfasdfasdfasdfasdfasdfas" ~
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6160
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6161 Often used items are:
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
6162 %s string
3914
f15769bce0b8 updated for version 7.3.713
Bram Moolenaar <bram@vim.org>
parents: 3893
diff changeset
6163 %6S string right-aligned in 6 display cells
653
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
6164 %6s string right-aligned in 6 bytes
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6165 %.9s string truncated to 9 bytes
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6166 %c single byte
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6167 %d decimal number
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6168 %5d decimal number padded with spaces to 5 characters
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6169 %x hex number
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6170 %04x hex number padded with zeros to at least 4 characters
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6171 %X hex number using upper case letters
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6172 %o octal number
9894
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6173 %08b binary number padded with zeros to at least 8 chars
10038
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
6174 %f floating point number as 12.23, inf, -inf or nan
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
6175 %F floating point number as 12.23, INF, -INF or NAN
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
6176 %e floating point number as 1.23e3, inf, -inf or nan
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
6177 %E floating point number as 1.23E3, INF, -INF or NAN
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6178 %g floating point number, as %f or %e depending on value
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
6179 %G floating point number, as %F or %E depending on value
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6180 %% the % character itself
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6181
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6182 Conversion specifications start with '%' and end with the
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6183 conversion type. All other characters are copied unchanged to
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6184 the result.
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6185
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6186 The "%" starts a conversion specification. The following
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6187 arguments appear in sequence:
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6188
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6189 % [flags] [field-width] [.precision] type
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6190
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
6191 flags
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6192 Zero or more of the following flags:
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6193
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6194 # The value should be converted to an "alternate
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6195 form". For c, d, and s conversions, this option
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6196 has no effect. For o conversions, the precision
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6197 of the number is increased to force the first
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6198 character of the output string to a zero (except
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6199 if a zero value is printed with an explicit
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6200 precision of zero).
9894
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6201 For b and B conversions, a non-zero result has
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6202 the string "0b" (or "0B" for B conversions)
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6203 prepended to it.
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6204 For x and X conversions, a non-zero result has
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6205 the string "0x" (or "0X" for X conversions)
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6206 prepended to it.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6207
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6208 0 (zero) Zero padding. For all conversions the converted
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6209 value is padded on the left with zeros rather
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6210 than blanks. If a precision is given with a
9894
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6211 numeric conversion (d, b, B, o, x, and X), the 0
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6212 flag is ignored.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6213
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6214 - A negative field width flag; the converted value
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6215 is to be left adjusted on the field boundary.
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6216 The converted value is padded on the right with
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6217 blanks, rather than on the left with blanks or
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6218 zeros. A - overrides a 0 if both are given.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6219
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6220 ' ' (space) A blank should be left before a positive
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6221 number produced by a signed conversion (d).
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6222
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6223 + A sign must always be placed before a number
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6224 produced by a signed conversion. A + overrides
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6225 a space if both are used.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6226
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6227 field-width
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6228 An optional decimal digit string specifying a minimum
653
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
6229 field width. If the converted value has fewer bytes
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
6230 than the field width, it will be padded with spaces on
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
6231 the left (or right, if the left-adjustment flag has
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
6232 been given) to fill out the field width.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6233
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6234 .precision
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6235 An optional precision, in the form of a period '.'
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6236 followed by an optional digit string. If the digit
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6237 string is omitted, the precision is taken as zero.
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6238 This gives the minimum number of digits to appear for
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6239 d, o, x, and X conversions, or the maximum number of
653
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
6240 bytes to be printed from a string for s conversions.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6241 For floating point it is the number of digits after
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6242 the decimal point.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6243
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6244 type
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6245 A character that specifies the type of conversion to
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6246 be applied, see below.
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6247
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6248 A field width or precision, or both, may be indicated by an
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6249 asterisk '*' instead of a digit string. In this case, a
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6250 Number argument supplies the field width or precision. A
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6251 negative field width is treated as a left adjustment flag
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6252 followed by a positive field width; a negative precision is
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6253 treated as though it were missing. Example: >
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6254 :echo printf("%d: %.*s", nr, width, line)
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6255 < This limits the length of the text used from "line" to
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6256 "width" bytes.
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6257
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
6258 The conversion specifiers and their meanings are:
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6259
9894
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6260 *printf-d* *printf-b* *printf-B* *printf-o*
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6261 *printf-x* *printf-X*
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6262 dbBoxX The Number argument is converted to signed decimal
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6263 (d), unsigned binary (b and B), unsigned octal (o), or
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6264 unsigned hexadecimal (x and X) notation. The letters
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6265 "abcdef" are used for x conversions; the letters
b01afb4e8f66 commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents: 9887
diff changeset
6266 "ABCDEF" are used for X conversions.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6267 The precision, if any, gives the minimum number of
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6268 digits that must appear; if the converted value
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6269 requires fewer digits, it is padded on the left with
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6270 zeros.
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6271 In no case does a non-existent or small field width
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6272 cause truncation of a numeric field; if the result of
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6273 a conversion is wider than the field width, the field
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6274 is expanded to contain the conversion result.
10000
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6275 The 'h' modifier indicates the argument is 16 bits.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6276 The 'l' modifier indicates the argument is 32 bits.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6277 The 'L' modifier indicates the argument is 64 bits.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6278 Generally, these modifiers are not useful. They are
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6279 ignored when type is known from the argument.
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6280
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6281 i alias for d
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6282 D alias for ld
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6283 U alias for lu
233289599874 commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents: 9975
diff changeset
6284 O alias for lo
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6285
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6286 *printf-c*
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6287 c The Number argument is converted to a byte, and the
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6288 resulting character is written.
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6289
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6290 *printf-s*
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6291 s The text of the String argument is used. If a
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6292 precision is specified, no more bytes than the number
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6293 specified are used.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
6294 If the argument is not a String type, it is
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
6295 automatically converted to text with the same format
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
6296 as ":echo".
6583
b0a227941705 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6549
diff changeset
6297 *printf-S*
3914
f15769bce0b8 updated for version 7.3.713
Bram Moolenaar <bram@vim.org>
parents: 3893
diff changeset
6298 S The text of the String argument is used. If a
f15769bce0b8 updated for version 7.3.713
Bram Moolenaar <bram@vim.org>
parents: 3893
diff changeset
6299 precision is specified, no more display cells than the
f15769bce0b8 updated for version 7.3.713
Bram Moolenaar <bram@vim.org>
parents: 3893
diff changeset
6300 number specified are used. Without the |+multi_byte|
f15769bce0b8 updated for version 7.3.713
Bram Moolenaar <bram@vim.org>
parents: 3893
diff changeset
6301 feature works just like 's'.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6302
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6303 *printf-f* *E807*
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6304 f F The Float argument is converted into a string of the
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6305 form 123.456. The precision specifies the number of
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6306 digits after the decimal point. When the precision is
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6307 zero the decimal point is omitted. When the precision
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6308 is not specified 6 is used. A really big number
10038
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
6309 (out of range or dividing by zero) results in "inf"
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
6310 or "-inf" with %f (INF or -INF with %F).
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
6311 "0.0 / 0.0" results in "nan" with %f (NAN with %F).
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6312 Example: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6313 echo printf("%.2f", 12.115)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6314 < 12.12
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6315 Note that roundoff depends on the system libraries.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6316 Use |round()| when in doubt.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6317
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6318 *printf-e* *printf-E*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6319 e E The Float argument is converted into a string of the
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6320 form 1.234e+03 or 1.234E+03 when using 'E'. The
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6321 precision specifies the number of digits after the
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6322 decimal point, like with 'f'.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6323
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6324 *printf-g* *printf-G*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6325 g G The Float argument is converted like with 'f' if the
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6326 value is between 0.001 (inclusive) and 10000000.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6327 (exclusive). Otherwise 'e' is used for 'g' and 'E'
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6328 for 'G'. When no precision is specified superfluous
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6329 zeroes and '+' signs are removed, except for the zero
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6330 immediately after the decimal point. Thus 10000000.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6331 results in 1.0e7.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6332
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6333 *printf-%*
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6334 % A '%' is written. No argument is converted. The
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6335 complete conversion specification is "%%".
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6336
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
6337 When a Number argument is expected a String argument is also
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
6338 accepted and automatically converted.
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
6339 When a Float or String argument is expected a Number argument
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
6340 is also accepted and automatically converted.
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
6341 Any other argument type results in an error message.
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6342
459
d9d38102399f updated for version 7.0122
vimboss
parents: 452
diff changeset
6343 *E766* *E767*
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6344 The number of {exprN} arguments must exactly match the number
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6345 of "%" items. If there are not sufficient or too many
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
6346 arguments an error is given. Up to 18 arguments can be used.
449
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6347
3709cf52b9b5 updated for version 7.0119
vimboss
parents: 448
diff changeset
6348
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6349 pumvisible() *pumvisible()*
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6350 Returns non-zero when the popup menu is visible, zero
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6351 otherwise. See |ins-completion-menu|.
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6352 This can be used to avoid some things that would remove the
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6353 popup menu.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6354
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6355 py3eval({expr}) *py3eval()*
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6356 Evaluate Python expression {expr} and return its result
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6357 converted to Vim data structures.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6358 Numbers and strings are returned as they are (strings are
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6359 copied though, Unicode strings are additionally converted to
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6360 'encoding').
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6361 Lists are represented as Vim |List| type.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6362 Dictionaries are represented as Vim |Dictionary| type with
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6363 keys converted to strings.
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6364 {only available when compiled with the |+python3| feature}
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6365
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6366 *E858* *E859*
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6367 pyeval({expr}) *pyeval()*
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6368 Evaluate Python expression {expr} and return its result
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6369 converted to Vim data structures.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6370 Numbers and strings are returned as they are (strings are
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6371 copied though).
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6372 Lists are represented as Vim |List| type.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6373 Dictionaries are represented as Vim |Dictionary| type,
3830
04592728474a Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3750
diff changeset
6374 non-string keys result in error.
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6375 {only available when compiled with the |+python| feature}
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
6376
10722
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6377 pyxeval({expr}) *pyxeval()*
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6378 Evaluate Python expression {expr} and return its result
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6379 converted to Vim data structures.
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6380 Uses Python 2 or 3, see |python_x| and 'pyxversion'.
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6381 See also: |pyeval()|, |py3eval()|
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6382 {only available when compiled with the |+python| or the
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6383 |+python3| feature}
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
6384
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
6385 *E726* *E727*
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6386 range({expr} [, {max} [, {stride}]]) *range()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6387 Returns a |List| with Numbers:
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6388 - If only {expr} is specified: [0, 1, ..., {expr} - 1]
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6389 - If {max} is specified: [{expr}, {expr} + 1, ..., {max}]
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6390 - If {stride} is specified: [{expr}, {expr} + {stride}, ...,
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6391 {max}] (increasing {expr} with {stride} each time, not
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6392 producing a value past {max}).
336
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
6393 When the maximum is one before the start the result is an
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
6394 empty list. When the maximum is more than one before the
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
6395 start this is an error.
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6396 Examples: >
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
6397 range(4) " [0, 1, 2, 3]
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6398 range(2, 4) " [2, 3, 4]
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6399 range(2, 9, 3) " [2, 5, 8]
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
6400 range(2, -2, -1) " [2, 1, 0, -1, -2]
336
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
6401 range(0) " []
2d8c2622e1fa updated for version 7.0087
vimboss
parents: 327
diff changeset
6402 range(2, 0) " error!
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6403 <
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6404 *readfile()*
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6405 readfile({fname} [, {binary} [, {max}]])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6406 Read file {fname} and return a |List|, each line of the file
10245
d76ccdacb41e commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents: 10244
diff changeset
6407 as an item. Lines are broken at NL characters. Macintosh
d76ccdacb41e commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents: 10244
diff changeset
6408 files separated with CR will result in a single long line
d76ccdacb41e commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents: 10244
diff changeset
6409 (unless a NL appears somewhere).
2513
a88237afdb20 Change readfile() to ignore byte order marks, unless in binary mode.
Bram Moolenaar <bram@vim.org>
parents: 2490
diff changeset
6410 All NUL characters are replaced with a NL character.
6918
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
6411 When {binary} contains "b" binary mode is used:
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6412 - When the last line ends in a NL an extra empty list item is
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6413 added.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6414 - No CR characters are removed.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6415 Otherwise:
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6416 - CR characters that appear before a NL are removed.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6417 - Whether the last line ends in a NL or not does not matter.
2513
a88237afdb20 Change readfile() to ignore byte order marks, unless in binary mode.
Bram Moolenaar <bram@vim.org>
parents: 2490
diff changeset
6418 - When 'encoding' is Unicode any UTF-8 byte order mark is
a88237afdb20 Change readfile() to ignore byte order marks, unless in binary mode.
Bram Moolenaar <bram@vim.org>
parents: 2490
diff changeset
6419 removed from the text.
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6420 When {max} is given this specifies the maximum number of lines
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6421 to be read. Useful if you only want to check the first ten
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6422 lines of a file: >
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6423 :for line in readfile(fname, '', 10)
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6424 : if line =~ 'Date' | echo line | endif
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6425 :endfor
233
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
6426 < When {max} is negative -{max} lines from the end of the file
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
6427 are returned, or as many as there are.
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
6428 When {max} is zero the result is an empty list.
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6429 Note that without {max} the whole file is read into memory.
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6430 Also note that there is no recognition of encoding. Read a
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
6431 file into a buffer if you need to.
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6432 When the file can't be opened an error message is given and
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6433 the result is an empty list.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6434 Also see |writefile()|.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
6435
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6436 reltime([{start} [, {end}]]) *reltime()*
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6437 Return an item that represents a time value. The format of
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6438 the item depends on the system. It can be passed to
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6439 |reltimestr()| to convert it to a string or |reltimefloat()|
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6440 to convert to a Float.
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6441 Without an argument it returns the current time.
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6442 With one argument is returns the time passed since the time
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6443 specified in the argument.
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
6444 With two arguments it returns the time passed between {start}
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6445 and {end}.
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6446 The {start} and {end} arguments must be values returned by
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6447 reltime().
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
6448 {only available when compiled with the |+reltime| feature}
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6449
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6450 reltimefloat({time}) *reltimefloat()*
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6451 Return a Float that represents the time value of {time}.
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6452 Example: >
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6453 let start = reltime()
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6454 call MyFunction()
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6455 let seconds = reltimefloat(reltime(start))
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6456 < See the note of reltimestr() about overhead.
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6457 Also see |profiling|.
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6458 {only available when compiled with the |+reltime| feature}
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
6459
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6460 reltimestr({time}) *reltimestr()*
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6461 Return a String that represents the time value of {time}.
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6462 This is the number of seconds, a dot and the number of
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6463 microseconds. Example: >
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6464 let start = reltime()
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6465 call MyFunction()
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6466 echo reltimestr(reltime(start))
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6467 < Note that overhead for the commands will be added to the time.
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6468 The accuracy depends on the system.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
6469 Leading spaces are used to make the string align nicely. You
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
6470 can use split() to remove it. >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
6471 echo split(reltimestr(reltime(start)))[0]
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
6472 < Also see |profiling|.
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
6473 {only available when compiled with the |+reltime| feature}
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
6474
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6475 *remote_expr()* *E449*
11211
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6476 remote_expr({server}, {string} [, {idvar} [, {timeout}]])
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6477 Send the {string} to {server}. The string is sent as an
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6478 expression and the result is returned after evaluation.
714
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6479 The result must be a String or a |List|. A |List| is turned
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6480 into a String by joining the items with a line break in
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6481 between (not at the end), like with join(expr, "\n").
11211
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6482 If {idvar} is present and not empty, it is taken as the name
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6483 of a variable and a {serverid} for later use with
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6484 remote_read() is stored there.
11211
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6485 If {timeout} is given the read times out after this many
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6486 seconds. Otherwise a timeout of 600 seconds is used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6487 See also |clientserver| |RemoteReply|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6488 This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6489 {only available when compiled with the |+clientserver| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6490 Note: Any errors will cause a local error message to be issued
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6491 and the result will be the empty string.
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
6492
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
6493 Variables will be evaluated in the global namespace,
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6494 independent of a function currently being active. Except
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
6495 when in debug mode, then local function variables and
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
6496 arguments can be evaluated.
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
6497
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6498 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6499 :echo remote_expr("gvim", "2+2")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6500 :echo remote_expr("gvim1", "b:current_syntax")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6501 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6502
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6503 remote_foreground({server}) *remote_foreground()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6504 Move the Vim server with the name {server} to the foreground.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6505 This works like: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6506 remote_expr({server}, "foreground()")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6507 < Except that on Win32 systems the client does the work, to work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6508 around the problem that the OS doesn't always allow the server
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6509 to bring itself to the foreground.
574
25a70b1cd2da updated for version 7.0163
vimboss
parents: 557
diff changeset
6510 Note: This does not restore the window if it was minimized,
25a70b1cd2da updated for version 7.0163
vimboss
parents: 557
diff changeset
6511 like foreground() does.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6512 This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6513 {only in the Win32, Athena, Motif and GTK GUI versions and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6514 Win32 console version}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6515
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6516
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6517 remote_peek({serverid} [, {retvar}]) *remote_peek()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6518 Returns a positive number if there are available strings
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6519 from {serverid}. Copies any reply string into the variable
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6520 {retvar} if specified. {retvar} must be a string with the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6521 name of a variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6522 Returns zero if none are available.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6523 Returns -1 if something is wrong.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6524 See also |clientserver|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6525 This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6526 {only available when compiled with the |+clientserver| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6527 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6528 :let repl = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6529 :echo "PEEK: ".remote_peek(id, "repl").": ".repl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6530
11211
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6531 remote_read({serverid}, [{timeout}]) *remote_read()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6532 Return the oldest available reply from {serverid} and consume
11211
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6533 it. Unless a {timeout} in seconds is given, it blocks until a
71311d899b42 patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents: 11181
diff changeset
6534 reply is available.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6535 See also |clientserver|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6536 This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6537 {only available when compiled with the |+clientserver| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6538 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6539 :echo remote_read(id)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6540 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6541 *remote_send()* *E241*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6542 remote_send({server}, {string} [, {idvar}])
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6543 Send the {string} to {server}. The string is sent as input
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 20
diff changeset
6544 keys and the function returns immediately. At the Vim server
cc049b00ee70 updated for version 7.0014
vimboss
parents: 20
diff changeset
6545 the keys are not mapped |:map|.
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6546 If {idvar} is present, it is taken as the name of a variable
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6547 and a {serverid} for later use with remote_read() is stored
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6548 there.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6549 See also |clientserver| |RemoteReply|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6550 This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6551 {only available when compiled with the |+clientserver| feature}
11177
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6552
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6553 Note: Any errors will be reported in the server and may mess
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6554 up the display.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6555 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6556 :echo remote_send("gvim", ":DropAndReply ".file, "serverid").
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6557 \ remote_read(serverid)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6558
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6559 :autocmd NONE RemoteReply *
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6560 \ echo remote_read(expand("<amatch>"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6561 :echo remote_send("gvim", ":sleep 10 | echo ".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6562 \ 'server2client(expand("<client>"), "HELLO")<CR>')
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6563 <
11177
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6564 *remote_startserver()* *E941* *E942*
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6565 remote_startserver({name})
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6566 Become the server {name}. This fails if already running as a
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6567 server, when |v:servername| is not empty.
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6568 {only available when compiled with the |+clientserver| feature}
76fb679a310e patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents: 11160
diff changeset
6569
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6570 remove({list}, {idx} [, {end}]) *remove()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6571 Without {end}: Remove the item at {idx} from |List| {list} and
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
6572 return the item.
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6573 With {end}: Remove items from {idx} to {end} (inclusive) and
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
6574 return a List with these items. When {idx} points to the same
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6575 item as {end} a list with one item is returned. When {end}
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6576 points to an item before {idx} this is an error.
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6577 See |list-index| for possible values of {idx} and {end}.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
6578 Example: >
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
6579 :echo "last item: " . remove(mylist, -1)
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6580 :call remove(mylist, 0, 9)
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6581 remove({dict}, {key})
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6582 Remove the entry from {dict} with key {key}. Example: >
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6583 :echo "removed " . remove(dict, "one")
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6584 < If there is no {key} in {dict} this is an error.
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6585
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6586 Use |delete()| to remove a file.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
6587
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6588 rename({from}, {to}) *rename()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6589 Rename the file by the name {from} to the name {to}. This
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6590 should also work to move files across file systems. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6591 result is a Number, which is 0 if the file was renamed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6592 successfully, and non-zero when the renaming failed.
1851
e7f6ca5594cf updated for version 7.2-149
vimboss
parents: 1768
diff changeset
6593 NOTE: If {to} exists it is overwritten without warning.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6594 This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6595
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
6596 repeat({expr}, {count}) *repeat()*
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
6597 Repeat {expr} {count} times and return the concatenated
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
6598 result. Example: >
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
6599 :let separator = repeat('-', 80)
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
6600 < When {count} is zero or negative the result is empty.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6601 When {expr} is a |List| the result is {expr} concatenated
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6602 {count} times. Example: >
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6603 :let longlist = repeat(['a', 'b'], 3)
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
6604 < Results in ['a', 'b', 'a', 'b', 'a', 'b'].
18
293621502c4d updated for version 7.0010
vimboss
parents: 15
diff changeset
6605
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6606
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6607 resolve({filename}) *resolve()* *E655*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6608 On MS-Windows, when {filename} is a shortcut (a .lnk file),
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6609 returns the path the shortcut points to in a simplified form.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6610 On Unix, repeat resolving symbolic links in all path
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6611 components of {filename} and return the simplified result.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6612 To cope with link cycles, resolving of symbolic links is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6613 stopped after 100 iterations.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6614 On other systems, return the simplified {filename}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6615 The simplification step is done as by |simplify()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6616 resolve() keeps a leading path component specifying the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6617 current directory (provided the result is still a relative
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6618 path name) and also keeps a trailing path separator.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6619
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6620 *reverse()*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6621 reverse({list}) Reverse the order of items in {list} in-place. Returns
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6622 {list}.
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6623 If you want a list to remain unmodified make a copy first: >
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6624 :let revlist = reverse(copy(mylist))
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
6625
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6626 round({expr}) *round()*
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
6627 Round off {expr} to the nearest integral value and return it
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6628 as a |Float|. If {expr} lies halfway between two integral
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6629 values, then use the larger one (away from zero).
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6630 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6631 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6632 echo round(0.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6633 < 0.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6634 echo round(4.5)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6635 < 5.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6636 echo round(-4.5)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6637 < -5.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6638 {only available when compiled with the |+float| feature}
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6639
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6640 screenattr({row}, {col}) *screenattr()*
10027
018fead968c1 commit https://github.com/vim/vim/commit/36f44c21da2e912c008683a0c4447fca2a071e9a
Christian Brabandt <cb@256bit.org>
parents: 10004
diff changeset
6641 Like |screenchar()|, but return the attribute. This is a rather
4835
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6642 arbitrary number that can only be used to compare to the
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6643 attribute at other positions.
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6644
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6645 screenchar({row}, {col}) *screenchar()*
4835
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6646 The result is a Number, which is the character at position
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6647 [row, col] on the screen. This works for every possible
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6648 screen position, also status lines, window separators and the
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6649 command line. The top left position is row one, column one
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6650 The character excludes composing characters. For double-byte
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6651 encodings it may only be the first byte.
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6652 This is mainly to be used for testing.
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6653 Returns -1 when row or col is out of range.
4db0bf9f1b44 updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents: 4502
diff changeset
6654
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6655 screencol() *screencol()*
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6656 The result is a Number, which is the current screen column of
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6657 the cursor. The leftmost column has number 1.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6658 This function is mainly used for testing.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6659
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6660 Note: Always returns the current screen column, thus if used
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6661 in a command (e.g. ":echo screencol()") it will return the
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6662 column inside the command line, which is 1 when the command is
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6663 executed. To get the cursor position in the file use one of
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6664 the following mappings: >
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6665 nnoremap <expr> GG ":echom ".screencol()."\n"
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6666 nnoremap <silent> GG :echom screencol()<CR>
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6667 <
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6668 screenrow() *screenrow()*
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6669 The result is a Number, which is the current screen row of the
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6670 cursor. The top line has number one.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6671 This function is mainly used for testing.
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
6672 Alternatively you can use |winline()|.
3996
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6673
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6674 Note: Same restrictions as with |screencol()|.
b3f3237a3d72 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3986
diff changeset
6675
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6676 search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6677 Search for regexp pattern {pattern}. The search starts at the
119
e8f07016e34d updated for version 7.0042
vimboss
parents: 114
diff changeset
6678 cursor position (you can use |cursor()| to set it).
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
6679
3967
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
6680 When a match has been found its line number is returned.
3312
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3256
diff changeset
6681 If there is no match a 0 is returned and the cursor doesn't
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3256
diff changeset
6682 move. No error message is given.
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3256
diff changeset
6683
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6684 {flags} is a String, which can contain these character flags:
7358
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6685 'b' search Backward instead of forward
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6686 'c' accept a match at the Cursor position
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6687 'e' move to the End of the match
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
6688 'n' do Not move the cursor
7358
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6689 'p' return number of matching sub-Pattern (see below)
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6690 's' Set the ' mark at the previous location of the cursor
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6691 'w' Wrap around the end of the file
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6692 'W' don't Wrap around the end of the file
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6693 'z' start searching at the cursor column instead of zero
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6694 If neither 'w' or 'W' is given, the 'wrapscan' option applies.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6695
444
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
6696 If the 's' flag is supplied, the ' mark is set, only if the
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
6697 cursor is moved. The 's' flag cannot be combined with the 'n'
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
6698 flag.
d0d15b184c56 updated for version 7.0116
vimboss
parents: 438
diff changeset
6699
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
6700 'ignorecase', 'smartcase' and 'magic' are used.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
6701
7659
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
6702 When the 'z' flag is not given, searching always starts in
7358
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6703 column zero and then matches before the cursor are skipped.
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6704 When the 'c' flag is present in 'cpo' the next search starts
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6705 after the match. Without the 'c' flag the next search starts
6fbeef3b65e6 commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents: 7315
diff changeset
6706 one column further.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
6707
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6708 When the {stopline} argument is given then the search stops
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6709 after searching this line. This is useful to restrict the
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6710 search to a range of lines. Examples: >
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6711 let match = search('(', 'b', line("w0"))
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6712 let end = search('END', '', line("w$"))
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6713 < When {stopline} is used and it is not zero this also implies
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6714 that the search does not wrap around the end of the file.
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6715 A zero value is equal to not giving the argument.
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6716
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6717 When the {timeout} argument is given the search stops when
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6718 more than this many milliseconds have passed. Thus when
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6719 {timeout} is 500 the search stops after half a second.
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6720 The value must not be negative. A zero value is like not
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6721 giving the argument.
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
6722 {only available when compiled with the |+reltime| feature}
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6723
714
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6724 *search()-sub-match*
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6725 With the 'p' flag the returned value is one more than the
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6726 first sub-match in \(\). One if none of them matched but the
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6727 whole pattern did match.
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6728 To get the column number too use |searchpos()|.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6729
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
6730 The cursor will be positioned at the match, unless the 'n'
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
6731 flag is used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6732
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6733 Example (goes over all files in the argument list): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6734 :let n = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6735 :while n <= argc() " loop over all files in arglist
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6736 : exe "argument " . n
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6737 : " start at the last char in the file and wrap for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6738 : " first search to find match at start of file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6739 : normal G$
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6740 : let flags = "w"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6741 : while search("foo", flags) > 0
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6742 : s/foo/bar/g
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6743 : let flags = "W"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6744 : endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6745 : update " write the file if modified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6746 : let n = n + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6747 :endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6748 <
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6749 Example for using some flags: >
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6750 :echo search('\<if\|\(else\)\|\(endif\)', 'ncpe')
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6751 < This will search for the keywords "if", "else", and "endif"
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6752 under or after the cursor. Because of the 'p' flag, it
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6753 returns 1, 2, or 3 depending on which keyword is found, or 0
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6754 if the search fails. With the cursor on the first word of the
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6755 line:
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6756 if (foo == 0) | let foo = foo + 1 | endif ~
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6757 the function returns 1. Without the 'c' flag, the function
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6758 finds the "endif" and returns 3. The same thing happens
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6759 without the 'e' flag if the cursor is on the "f" of "if".
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6760 The 'n' flag tells the function not to move the cursor.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6761
504
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6762
523
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6763 searchdecl({name} [, {global} [, {thisblock}]]) *searchdecl()*
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6764 Search for the declaration of {name}.
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
6765
523
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6766 With a non-zero {global} argument it works like |gD|, find
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6767 first match in the file. Otherwise it works like |gd|, find
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6768 first match in the function.
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6769
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6770 With a non-zero {thisblock} argument matches in a {} block
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6771 that ends before the cursor position are ignored. Avoids
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6772 finding variable declarations only valid in another scope.
a7ae7e043e43 updated for version 7.0146
vimboss
parents: 519
diff changeset
6773
504
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6774 Moves the cursor to the found match.
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6775 Returns zero for success, non-zero for failure.
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6776 Example: >
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6777 if searchdecl('myvar') == 0
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6778 echo getline('.')
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6779 endif
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
6780 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6781 *searchpair()*
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6782 searchpair({start}, {middle}, {end} [, {flags} [, {skip}
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6783 [, {stopline} [, {timeout}]]]])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6784 Search for the match of a nested start-end pair. This can be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6785 used to find the "endif" that matches an "if", while other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6786 if/endif pairs in between are ignored.
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
6787 The search starts at the cursor. The default is to search
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
6788 forward, include 'b' in {flags} to search backward.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
6789 If a match is found, the cursor is positioned at it and the
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
6790 line number is returned. If no match is found 0 or -1 is
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
6791 returned and the cursor doesn't move. No error message is
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
6792 given.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6793
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6794 {start}, {middle} and {end} are patterns, see |pattern|. They
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6795 must not contain \( \) pairs. Use of \%( \) is allowed. When
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6796 {middle} is not empty, it is found when searching from either
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6797 direction, but only when not in a nested start-end pair. A
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6798 typical use is: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6799 searchpair('\<if\>', '\<else\>', '\<endif\>')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6800 < By leaving {middle} empty the "else" is skipped.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6801
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6802 {flags} 'b', 'c', 'n', 's', 'w' and 'W' are used like with
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6803 |search()|. Additionally:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6804 'r' Repeat until no more matches found; will find the
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6805 outer pair. Implies the 'W' flag.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6806 'm' Return number of matches instead of line number with
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
6807 the match; will be > 1 when 'r' is used.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6808 Note: it's nearly always a good idea to use the 'W' flag, to
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6809 avoid wrapping around the end of the file.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6810
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6811 When a match for {start}, {middle} or {end} is found, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6812 {skip} expression is evaluated with the cursor positioned on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6813 the start of the match. It should return non-zero if this
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6814 match is to be skipped. E.g., because it is inside a comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6815 or a string.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6816 When {skip} is omitted or empty, every match is accepted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6817 When evaluating {skip} causes an error the search is aborted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6818 and -1 returned.
12722
7749260f261c patch 8.0.1239: cannot use a lambda for the skip argument to searchpair()
Christian Brabandt <cb@256bit.org>
parents: 12716
diff changeset
6819 {skip} can be a string, a lambda, a funcref or a partial.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6820
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6821 For {stopline} and {timeout} see |search()|.
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6822
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6823 The value of 'ignorecase' is used. 'magic' is ignored, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6824 patterns are used like it's on.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6825
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6826 The search starts exactly at the cursor. A match with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6827 {start}, {middle} or {end} at the next character, in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6828 direction of searching, is the first one found. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6829 if 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6830 if 2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6831 endif 2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6832 endif 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6833 < When starting at the "if 2", with the cursor on the "i", and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6834 searching forwards, the "endif 2" is found. When starting on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6835 the character just before the "if 2", the "endif 1" will be
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6836 found. That's because the "if 2" will be found first, and
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6837 then this is considered to be a nested if/endif from "if 2" to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6838 "endif 2".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6839 When searching backwards and {end} is more than one character,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6840 it may be useful to put "\zs" at the end of the pattern, so
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6841 that when the cursor is inside a match with the end it finds
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6842 the matching start.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6843
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6844 Example, to find the "endif" command in a Vim script: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6845
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6846 :echo searchpair('\<if\>', '\<el\%[seif]\>', '\<en\%[dif]\>', 'W',
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6847 \ 'getline(".") =~ "^\\s*\""')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6848
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6849 < The cursor must be at or after the "if" for which a match is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6850 to be found. Note that single-quote strings are used to avoid
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6851 having to double the backslashes. The skip expression only
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6852 catches comments at the start of a line, not after a command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6853 Also, a word "en" or "if" halfway a line is considered a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6854 match.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6855 Another example, to search for the matching "{" of a "}": >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6856
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6857 :echo searchpair('{', '', '}', 'bW')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6858
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6859 < This works when the cursor is at or before the "}" for which a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6860 match is to be found. To reject matches that syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6861 highlighting recognized as strings: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6862
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6863 :echo searchpair('{', '', '}', 'bW',
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6864 \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6865 <
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6866 *searchpairpos()*
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6867 searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6868 [, {stopline} [, {timeout}]]]])
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
6869 Same as |searchpair()|, but returns a |List| with the line and
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6870 column position of the match. The first element of the |List|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6871 is the line number and the second element is the byte index of
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6872 the column position of the match. If no match is found,
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
6873 returns [0, 0]. >
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
6874
667
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6875 :let [lnum,col] = searchpairpos('{', '', '}', 'n')
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6876 <
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6877 See |match-parens| for a bigger and more useful example.
9090f866cd57 updated for version 7.0197
vimboss
parents: 665
diff changeset
6878
1496
29c09fa57168 updated for version 7.1-211
vimboss
parents: 1490
diff changeset
6879 searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *searchpos()*
692
a28f83d37113 updated for version 7.0208
vimboss
parents: 688
diff changeset
6880 Same as |search()|, but returns a |List| with the line and
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6881 column position of the match. The first element of the |List|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6882 is the line number and the second element is the byte index of
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6883 the column position of the match. If no match is found,
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
6884 returns [0, 0].
714
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6885 Example: >
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6886 :let [lnum, col] = searchpos('mypattern', 'n')
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6887
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6888 < When the 'p' flag is given then there is an extra item with
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6889 the sub-pattern match number |search()-sub-match|. Example: >
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6890 :let [lnum, col, submatch] = searchpos('\(\l\)\|\(\u\)', 'np')
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6891 < In this example "submatch" is 2 when a lowercase letter is
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6892 found |/\l|, 3 when an uppercase letter is found |/\u|.
0f9f4761ad9c updated for version 7.0216
vimboss
parents: 712
diff changeset
6893
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
6894 server2client({clientid}, {string}) *server2client()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6895 Send a reply string to {clientid}. The most recent {clientid}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6896 that sent a string can be retrieved with expand("<client>").
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6897 {only available when compiled with the |+clientserver| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6898 Note:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6899 This id has to be stored before the next command can be
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
6900 received. I.e. before returning from the received command and
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6901 before calling any commands that waits for input.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6902 See also |clientserver|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6903 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6904 :echo server2client(expand("<client>"), "HELLO")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6905 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6906 serverlist() *serverlist()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6907 Return a list of available server names, one per line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6908 When there are no servers or the information is not available
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6909 an empty string is returned. See also |clientserver|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6910 {only available when compiled with the |+clientserver| feature}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6911 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6912 :echo serverlist()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6913 <
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6914 setbufline({expr}, {lnum}, {text}) *setbufline()*
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6915 Set line {lnum} to {text} in buffer {expr}. To insert
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6916 lines use |append()|.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6917
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6918 For the use of {expr}, see |bufname()| above.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6919
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6920 {lnum} is used like with |setline()|.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6921 This works like |setline()| for the specified buffer.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6922 On success 0 is returned, on failure 1 is returned.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6923
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6924 If {expr} is not a valid buffer or {lnum} is not valid, an
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6925 error message is given.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6926
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6927 setbufvar({expr}, {varname}, {val}) *setbufvar()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6928 Set option or local variable {varname} in buffer {expr} to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6929 {val}.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6930 This also works for a global or local window option, but it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6931 doesn't work for a global or local window variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6932 For a local window option the global value is unchanged.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6933 For the use of {expr}, see |bufname()| above.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6934 Note that the variable name without "b:" must be used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6935 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6936 :call setbufvar(1, "&mod", 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6937 :call setbufvar("todo", "myvar", "foobar")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6938 < This function is not available in the |sandbox|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6939
7100
f717d96a39b3 commit https://github.com/vim/vim/commit/12969c04fe7bd27dc0cbf37709eb40a86d4a27f9
Christian Brabandt <cb@256bit.org>
parents: 7013
diff changeset
6940 setcharsearch({dict}) *setcharsearch()*
6991
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6941 Set the current character search information to {dict},
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6942 which contains one or more of the following entries:
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6943
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6944 char character which will be used for a subsequent
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6945 |,| or |;| command; an empty string clears the
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6946 character search
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6947 forward direction of character search; 1 for forward,
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6948 0 for backward
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6949 until type of character search; 1 for a |t| or |T|
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6950 character search, 0 for an |f| or |F|
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6951 character search
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6952
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6953 This can be useful to save/restore a user's character search
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6954 from a script: >
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6955 :let prevsearch = getcharsearch()
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6956 :" Perform a command which clobbers user's search
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6957 :call setcharsearch(prevsearch)
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6958 < Also see |getcharsearch()|.
814f1f569e4a patch 7.4.813
Bram Moolenaar <bram@vim.org>
parents: 6951
diff changeset
6959
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6960 setcmdpos({pos}) *setcmdpos()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6961 Set the cursor position in the command line to byte position
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
6962 {pos}. The first position is 1.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6963 Use |getcmdpos()| to obtain the current position.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6964 Only works while editing the command line, thus you must use
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6965 |c_CTRL-\_e|, |c_CTRL-R_=| or |c_CTRL-R_CTRL-R| with '='. For
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6966 |c_CTRL-\_e| and |c_CTRL-R_CTRL-R| with '=' the position is
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6967 set after the command line is set to the expression. For
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6968 |c_CTRL-R_=| it is set after evaluating the expression but
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
6969 before inserting the resulting text.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6970 When the number is too big the cursor is put at the end of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6971 line. A number smaller than one has undefined results.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6972 Returns 0 when successful, 1 when not editing the command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6973 line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6974
8451
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6975 setfperm({fname}, {mode}) *setfperm()* *chmod*
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6976 Set the file permissions for {fname} to {mode}.
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6977 {mode} must be a string with 9 characters. It is of the form
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6978 "rwxrwxrwx", where each group of "rwx" flags represent, in
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6979 turn, the permissions of the owner of the file, the group the
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6980 file belongs to, and other users. A '-' character means the
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6981 permission is off, any other character means on. Multi-byte
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6982 characters are not supported.
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6983
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6984 For example "rw-r-----" means read-write for the user,
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6985 readable by the group, not accessible by others. "xx-x-----"
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6986 would do the same thing.
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6987
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6988 Returns non-zero for success, zero for failure.
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6989
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6990 To read permissions see |getfperm()|.
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6991
c0b5c2b0a5ee commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents: 8440
diff changeset
6992
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6993 setline({lnum}, {text}) *setline()*
3312
b7811ab264bf updated for version 7.3.423
Bram Moolenaar <bram@vim.org>
parents: 3256
diff changeset
6994 Set line {lnum} of the current buffer to {text}. To insert
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6995 lines use |append()|. To set lines in another buffer use
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6996 |setbufline()|.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
6997
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
6998 {lnum} is used like with |getline()|.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
6999 When {lnum} is just below the last line the {text} will be
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7000 added as a new line.
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
7001
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
7002 If this succeeds, 0 is returned. If this fails (most likely
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
7003 because {lnum} is invalid) 1 is returned.
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
7004
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
7005 Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7006 :call setline(5, strftime("%c"))
12319
c7e95667d14b patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents: 12317
diff changeset
7007
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7008 < When {text} is a |List| then line {lnum} and following lines
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7009 will be set to the items in the list. Example: >
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7010 :call setline(5, ['aaa', 'bbb', 'ccc'])
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7011 < This is equivalent to: >
3465
161d01cbb165 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3456
diff changeset
7012 :for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7013 : call setline(n, l)
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7014 :endfor
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
7015
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7016 < Note: The '[ and '] marks are not set.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7017
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7018 setloclist({nr}, {list} [, {action} [, {what}]]) *setloclist()*
647
19106f131c87 updated for version 7.0188
vimboss
parents: 644
diff changeset
7019 Create or replace or add to the location list for window {nr}.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
7020 {nr} can be the window number or the |window-ID|.
9223
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
7021 When {nr} is zero the current window is used.
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
7022
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
7023 For a location list window, the displayed location list is
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
7024 modified. For an invalid window number {nr}, -1 is returned.
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
7025 Otherwise, same as |setqflist()|.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
7026 Also see |location-list|.
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
7027
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7028 If the optional {what} dictionary argument is supplied, then
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7029 only the items listed in {what} are set. Refer to |setqflist()|
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7030 for the list of supported keys in {what}.
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7031
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
7032 setmatches({list}) *setmatches()*
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
7033 Restores a list of matches saved by |getmatches()|. Returns 0
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7034 if successful, otherwise -1. All current matches are cleared
1326
22886f3d882d updated for version 7.1-040
vimboss
parents: 1317
diff changeset
7035 before the list is restored. See example for |getmatches()|.
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7036
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7037 *setpos()*
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7038 setpos({expr}, {list})
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7039 Set the position for {expr}. Possible values:
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7040 . the cursor
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7041 'x mark x
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7042
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7043 {list} must be a |List| with four or five numbers:
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7044 [bufnum, lnum, col, off]
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7045 [bufnum, lnum, col, off, curswant]
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7046
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7047 "bufnum" is the buffer number. Zero can be used for the
10730
44e9340dc604 patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents: 10722
diff changeset
7048 current buffer. When setting an uppercase mark "bufnum" is
44e9340dc604 patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents: 10722
diff changeset
7049 used for the mark position. For other marks it specifies the
44e9340dc604 patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents: 10722
diff changeset
7050 buffer to set the mark in. You can use the |bufnr()| function
44e9340dc604 patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents: 10722
diff changeset
7051 to turn a file name into a buffer number.
44e9340dc604 patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents: 10722
diff changeset
7052 For setting the cursor and the ' mark "bufnum" is ignored,
44e9340dc604 patch 8.0.0255: setpos() does not use the buffer argument for all marks
Christian Brabandt <cb@256bit.org>
parents: 10722
diff changeset
7053 since these are associated with a window, not a buffer.
798
95dac6af3b3a updated for version 7.0232
vimboss
parents: 794
diff changeset
7054 Does not change the jumplist.
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7055
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7056 "lnum" and "col" are the position in the buffer. The first
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7057 column is 1. Use a zero "lnum" to delete a mark. If "col" is
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7058 smaller than 1 then 1 is used.
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7059
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7060 The "off" number is only used when 'virtualedit' is set. Then
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7061 it is the offset in screen columns from the start of the
1266
54588e2e8041 updated for version 7.1
vimboss
parents: 1215
diff changeset
7062 character. E.g., a position within a <Tab> or after the last
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7063 character.
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7064
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7065 The "curswant" number is only used when setting the cursor
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7066 position. It sets the preferred column for when moving the
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7067 cursor vertically. When the "curswant" number is missing the
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7068 preferred column is not set. When it is present and setting a
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7069 mark position it is not used.
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7070
5555
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
7071 Note that for '< and '> changing the line number may result in
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
7072 the marks to be effectively be swapped, so that '< is always
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
7073 before '>.
7818ca6de3d0 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5466
diff changeset
7074
1533
8abc0abf8cbd updated for version 7.1-248
vimboss
parents: 1504
diff changeset
7075 Returns 0 when the position could be set, -1 otherwise.
8abc0abf8cbd updated for version 7.1-248
vimboss
parents: 1504
diff changeset
7076 An error message is given if {expr} is invalid.
8abc0abf8cbd updated for version 7.1-248
vimboss
parents: 1504
diff changeset
7077
5944
332a5c2b2956 updated for version 7.4.313
Bram Moolenaar <bram@vim.org>
parents: 5942
diff changeset
7078 Also see |getpos()| and |getcurpos()|.
707
111b7dcc8a17 updated for version 7.0213
vimboss
parents: 703
diff changeset
7079
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7080 This does not restore the preferred column for moving
5938
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7081 vertically; if you set the cursor position with this, |j| and
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7082 |k| motions will jump to previous columns! Use |cursor()| to
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7083 also set the preferred column. Also see the "curswant" key in
ccac0aa34eea updated for version 7.4.310
Bram Moolenaar <bram@vim.org>
parents: 5908
diff changeset
7084 |winrestview()|.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7085
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7086 setqflist({list} [, {action} [, {what}]]) *setqflist()*
12048
ebd313aa5a6c patch 8.0.0904: cannot set a location list from text
Christian Brabandt <cb@256bit.org>
parents: 12045
diff changeset
7087 Create or replace or add to the quickfix list.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7088
12048
ebd313aa5a6c patch 8.0.0904: cannot set a location list from text
Christian Brabandt <cb@256bit.org>
parents: 12045
diff changeset
7089 When {what} is not present, use the items in {list}. Each
ebd313aa5a6c patch 8.0.0904: cannot set a location list from text
Christian Brabandt <cb@256bit.org>
parents: 12045
diff changeset
7090 item must be a dictionary. Non-dictionary items in {list} are
ebd313aa5a6c patch 8.0.0904: cannot set a location list from text
Christian Brabandt <cb@256bit.org>
parents: 12045
diff changeset
7091 ignored. Each dictionary item can contain the following
ebd313aa5a6c patch 8.0.0904: cannot set a location list from text
Christian Brabandt <cb@256bit.org>
parents: 12045
diff changeset
7092 entries:
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7093
1065
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7094 bufnr buffer number; must be the number of a valid
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7095 buffer
1065
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7096 filename name of a file; only used when "bufnr" is not
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7097 present or it is invalid.
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7098 lnum line number in the file
233
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7099 pattern search pattern used to locate the error
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7100 col column number
233
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7101 vcol when non-zero: "col" is visual column
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
7102 when zero: "col" is byte index
233
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7103 nr error number
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7104 text description of the error
233
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7105 type single-character error type, 'E', 'W', etc.
11390
73cfcf11d983 patch 8.0.0580: cannot set the valid flag with setqflist()
Christian Brabandt <cb@256bit.org>
parents: 11347
diff changeset
7106 valid recognized error message
233
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7107
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7108 The "col", "vcol", "nr", "type" and "text" entries are
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7109 optional. Either "lnum" or "pattern" entry can be used to
fca8a9b65afa updated for version 7.0065
vimboss
parents: 230
diff changeset
7110 locate a matching error line.
1065
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7111 If the "filename" and "bufnr" entries are not present or
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7112 neither the "lnum" or "pattern" entries are present, then the
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7113 item will not be handled as an error line.
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7114 If both "pattern" and "lnum" are present then "pattern" will
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7115 be used.
11390
73cfcf11d983 patch 8.0.0580: cannot set the valid flag with setqflist()
Christian Brabandt <cb@256bit.org>
parents: 11347
diff changeset
7116 If the "valid" entry is not supplied, then the valid flag is
73cfcf11d983 patch 8.0.0580: cannot set the valid flag with setqflist()
Christian Brabandt <cb@256bit.org>
parents: 11347
diff changeset
7117 set when "bufnr" is a valid buffer or "filename" exists.
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
7118 If you supply an empty {list}, the quickfix list will be
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
7119 cleared.
1065
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7120 Note that the list is not exactly the same as what
caa550fe4457 updated for version 7.0-191
vimboss
parents: 1029
diff changeset
7121 |getqflist()| returns.
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7122
11263
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7123 {action} values: *E927*
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7124 'a' The items from {list} are added to the existing
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7125 quickfix list. If there is no existing list, then a
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7126 new list is created.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7127
11263
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7128 'r' The items from the current quickfix list are replaced
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7129 with the items from {list}. This can also be used to
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7130 clear the list: >
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7131 :call setqflist([], 'r')
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7132 <
11263
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7133 'f' All the quickfix lists in the quickfix stack are
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7134 freed.
ae5f9f26f81c patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents: 11262
diff changeset
7135
9221
17fa362f10be commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents: 9219
diff changeset
7136 If {action} is not present or is set to ' ', then a new list
12084
69ce6b3f0834 patch 8.0.0922: quickfix list always added after current one
Christian Brabandt <cb@256bit.org>
parents: 12076
diff changeset
7137 is created. The new quickfix list is added after the current
69ce6b3f0834 patch 8.0.0922: quickfix list always added after current one
Christian Brabandt <cb@256bit.org>
parents: 12076
diff changeset
7138 quickfix list in the stack and all the following lists are
69ce6b3f0834 patch 8.0.0922: quickfix list always added after current one
Christian Brabandt <cb@256bit.org>
parents: 12076
diff changeset
7139 freed. To add a new quickfix list at the end of the stack,
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
7140 set "nr" in {what} to "$".
277
fe16c18c24a7 updated for version 7.0074
vimboss
parents: 270
diff changeset
7141
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7142 If the optional {what} dictionary argument is supplied, then
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7143 only the items listed in {what} are set. The first {list}
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7144 argument is ignored. The following items can be specified in
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7145 {what}:
11414
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
7146 context any Vim type can be stored as a context
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
7147 efm errorformat to use when parsing text from
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
7148 "lines". If this is not present, then the
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
7149 'errorformat' option value is used.
12287
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
7150 id quickfix list identifier |quickfix-ID|
11549
f5add45f9848 patch 8.0.0657: cannot get and set quickfix list items
Christian Brabandt <cb@256bit.org>
parents: 11543
diff changeset
7151 items list of quickfix entries. Same as the {list}
f5add45f9848 patch 8.0.0657: cannot get and set quickfix list items
Christian Brabandt <cb@256bit.org>
parents: 11543
diff changeset
7152 argument.
12303
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
7153 lines use 'errorformat' to parse a list of lines and
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
7154 add the resulting entries to the quickfix list
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
7155 {nr} or {id}. Only a |List| value is supported.
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7156 nr list number in the quickfix stack; zero
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
7157 means the current quickfix list and "$" means
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7158 the last quickfix list
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7159 title quickfix list title text
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7160 Unsupported keys in {what} are ignored.
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7161 If the "nr" item is not present, then the current quickfix list
11609
6f11697fb92c patch 8.0.0687: minor issues related to quickfix
Christian Brabandt <cb@256bit.org>
parents: 11587
diff changeset
7162 is modified. When creating a new quickfix list, "nr" can be
6f11697fb92c patch 8.0.0687: minor issues related to quickfix
Christian Brabandt <cb@256bit.org>
parents: 11587
diff changeset
7163 set to a value one greater than the quickfix stack size.
12287
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
7164 When modifying a quickfix list, to guarantee that the correct
12321
2779d593a706 patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents: 12319
diff changeset
7165 list is modified, "id" should be used instead of "nr" to
12287
20641a7e1fc9 patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents: 12273
diff changeset
7166 specify the list.
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7167
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7168 Examples: >
12303
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
7169 :call setqflist([], 'r', {'title': 'My search'})
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
7170 :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
ec7a4fd21dd5 patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents: 12287
diff changeset
7171 :call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]})
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
7172 <
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7173 Returns zero for success, -1 for failure.
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7174
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7175 This function can be used to create a quickfix list
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7176 independent of the 'errorformat' setting. Use a command like
11400
0f8713fe20dc Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11390
diff changeset
7177 `:cc 1` to jump to the first position.
230
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7178
9281a51ca7a2 updated for version 7.0064
vimboss
parents: 216
diff changeset
7179
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7180 *setreg()*
8148
f5da459c5698 commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents: 8094
diff changeset
7181 setreg({regname}, {value} [, {options}])
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7182 Set the register {regname} to {value}.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7183 {value} may be any value returned by |getreg()|, including
5798
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7184 a |List|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7185 If {options} contains "a" or {regname} is upper case,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7186 then the value is appended.
2423
71899235e72d Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2413
diff changeset
7187 {options} can also contain a register type specification:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7188 "c" or "v" |characterwise| mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7189 "l" or "V" |linewise| mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7190 "b" or "<CTRL-V>" |blockwise-visual| mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7191 If a number immediately follows "b" or "<CTRL-V>" then this is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7192 used as the width of the selection - if it is not specified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7193 then the width of the block is set to the number of characters
1266
54588e2e8041 updated for version 7.1
vimboss
parents: 1215
diff changeset
7194 in the longest line (counting a <Tab> as 1 character).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7195
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7196 If {options} contains no register settings, then the default
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7197 is to use character mode unless {value} ends in a <NL> for
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7198 string {value} and linewise mode for list {value}. Blockwise
5798
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7199 mode is never selected automatically.
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7200 Returns zero for success, non-zero for failure.
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7201
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7202 *E883*
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7203 Note: you may not use |List| containing more than one item to
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7204 set search and expression registers. Lists containing no
5798
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7205 items act like empty strings.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7206
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7207 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7208 :call setreg(v:register, @*)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7209 :call setreg('*', @%, 'ac')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7210 :call setreg('a', "1\n2\n3", 'b5')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7211
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7212 < This example shows using the functions to save and restore a
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
7213 register: >
5798
9f8fa56f1906 updated for version 7.4.243
Bram Moolenaar <bram@vim.org>
parents: 5796
diff changeset
7214 :let var_a = getreg('a', 1, 1)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7215 :let var_amode = getregtype('a')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7216 ....
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7217 :call setreg('a', var_a, var_amode)
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7218 < Note: you may not reliably restore register value
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7219 without using the third argument to |getreg()| as without it
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
7220 newlines are represented as newlines AND Nul bytes are
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
7221 represented as newlines as well, see |NL-used-for-Nul|.
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
7222
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
7223 You can also change the type of a register by appending
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7224 nothing: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7225 :call setreg('a', '', 'al')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7226
2207
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7227 settabvar({tabnr}, {varname}, {val}) *settabvar()*
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7228 Set tab-local variable {varname} to {val} in tab page {tabnr}.
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7229 |t:var|
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7230 Note that the variable name without "t:" must be used.
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7231 Tabs are numbered starting with one.
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7232 This function is not available in the |sandbox|.
b17bbfa96fa0 Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents: 2206
diff changeset
7233
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7234 settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()*
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7235 Set option or local variable {varname} in window {winnr} to
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7236 {val}.
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7237 Tabs are numbered starting with one. For the current tabpage
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7238 use |setwinvar()|.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
7239 {winnr} can be the window number or the |window-ID|.
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7240 When {winnr} is zero the current window is used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7241 This also works for a global or local buffer option, but it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7242 doesn't work for a global or local buffer variable.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7243 For a local buffer option the global value is unchanged.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7244 Note that the variable name without "w:" must be used.
831
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7245 Examples: >
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7246 :call settabwinvar(1, 1, "&list", 0)
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7247 :call settabwinvar(3, 2, "myvar", "foobar")
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7248 < This function is not available in the |sandbox|.
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7249
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7250 setwinvar({nr}, {varname}, {val}) *setwinvar()*
f24a95dae8ee updated for version 7.0d05
vimboss
parents: 829
diff changeset
7251 Like |settabwinvar()| for the current tab page.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7252 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7253 :call setwinvar(1, "&list", 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7254 :call setwinvar(2, "myvar", "foobar")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7255
4126
2b340e5c5baa updated for version 7.3.816
Bram Moolenaar <bram@vim.org>
parents: 4073
diff changeset
7256 sha256({string}) *sha256()*
6647
3af822eb4da5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6583
diff changeset
7257 Returns a String with 64 hex characters, which is the SHA256
4126
2b340e5c5baa updated for version 7.3.816
Bram Moolenaar <bram@vim.org>
parents: 4073
diff changeset
7258 checksum of {string}.
2b340e5c5baa updated for version 7.3.816
Bram Moolenaar <bram@vim.org>
parents: 4073
diff changeset
7259 {only available when compiled with the |+cryptv| feature}
2b340e5c5baa updated for version 7.3.816
Bram Moolenaar <bram@vim.org>
parents: 4073
diff changeset
7260
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7261 shellescape({string} [, {special}]) *shellescape()*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7262 Escape {string} for use as a shell command argument.
985
656853d9c014 updated for version 7.0-111
vimboss
parents: 874
diff changeset
7263 On MS-Windows and MS-DOS, when 'shellslash' is not set, it
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7264 will enclose {string} in double quotes and double all double
985
656853d9c014 updated for version 7.0-111
vimboss
parents: 874
diff changeset
7265 quotes within {string}.
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
7266 Otherwise it will enclose {string} in single quotes and
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
7267 replace all "'" with "'\''".
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7268
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7269 When the {special} argument is present and it's a non-zero
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7270 Number or a non-empty String (|non-zero-arg|), then special
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7271 items such as "!", "%", "#" and "<cword>" will be preceded by
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7272 a backslash. This backslash will be removed again by the |:!|
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7273 command.
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7274
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7275 The "!" character will be escaped (again with a |non-zero-arg|
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7276 {special}) when 'shell' contains "csh" in the tail. That is
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7277 because for csh and tcsh "!" is used for history replacement
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7278 even when inside single quotes.
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7279
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7280 With a |non-zero-arg| {special} the <NL> character is also
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7281 escaped. When 'shell' containing "csh" in the tail it's
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
7282 escaped a second time.
11502
46bbef0ee9a6 patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents: 11473
diff changeset
7283
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7284 Example of use with a |:!| command: >
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7285 :exe '!dir ' . shellescape(expand('<cfile>'), 1)
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7286 < This results in a directory listing for the file under the
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7287 cursor. Example of use with |system()|: >
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7288 :call system("chmod +w -- " . shellescape(expand("%")))
5690
40f18a1c1592 updated for version 7.4.191
Bram Moolenaar <bram@vim.org>
parents: 5663
diff changeset
7289 < See also |::S|.
985
656853d9c014 updated for version 7.0-111
vimboss
parents: 874
diff changeset
7290
656853d9c014 updated for version 7.0-111
vimboss
parents: 874
diff changeset
7291
3875
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
7292 shiftwidth() *shiftwidth()*
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
7293 Returns the effective value of 'shiftwidth'. This is the
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
7294 'shiftwidth' value unless it is zero, in which case it is the
7782
3a99194bd187 commit https://github.com/vim/vim/commit/009d84a34f3678ec93921bee3bc05be2fd606264
Christian Brabandt <cb@256bit.org>
parents: 7742
diff changeset
7295 'tabstop' value. This function was introduced with patch
3a99194bd187 commit https://github.com/vim/vim/commit/009d84a34f3678ec93921bee3bc05be2fd606264
Christian Brabandt <cb@256bit.org>
parents: 7742
diff changeset
7296 7.3.694 in 2012, everybody should have it by now.
3875
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
7297
8235ccf121bb updated for version 7.3.694
Bram Moolenaar <bram@vim.org>
parents: 3830
diff changeset
7298
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7299 simplify({filename}) *simplify()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7300 Simplify the file name as much as possible without changing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7301 the meaning. Shortcuts (on MS-Windows) or symbolic links (on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7302 Unix) are not resolved. If the first path component in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7303 {filename} designates the current directory, this will be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7304 valid for the result as well. A trailing path separator is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7305 not removed either.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7306 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7307 simplify("./dir/.././/file/") == "./file/"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7308 < Note: The combination "dir/.." is only removed if "dir" is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7309 a searchable directory or does not exist. On Unix, it is also
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7310 removed when "dir" is a symbolic link within the same
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7311 directory. In order to resolve all the involved symbolic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7312 links before simplifying the path name, use |resolve()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7313
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7314
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7315 sin({expr}) *sin()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7316 Return the sine of {expr}, measured in radians, as a |Float|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7317 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7318 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7319 :echo sin(100)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7320 < -0.506366 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7321 :echo sin(-4.01)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7322 < 0.763301
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7323 {only available when compiled with the |+float| feature}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7324
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7325
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7326 sinh({expr}) *sinh()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
7327 Return the hyperbolic sine of {expr} as a |Float| in the range
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7328 [-inf, inf].
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
7329 {expr} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7330 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7331 :echo sinh(0.5)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7332 < 0.521095 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7333 :echo sinh(-0.9)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7334 < -1.026517
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
7335 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7336
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
7337
2902
69e0783ed0ef updated for version 7.3.224
Bram Moolenaar <bram@vim.org>
parents: 2845
diff changeset
7338 sort({list} [, {func} [, {dict}]]) *sort()* *E702*
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7339 Sort the items in {list} in-place. Returns {list}.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7340
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7341 If you want a list to remain unmodified make a copy first: >
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7342 :let sortedlist = sort(copy(mylist))
5968
92751673cc37 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5944
diff changeset
7343
6009
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7344 < When {func} is omitted, is empty or zero, then sort() uses the
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7345 string representation of each item to sort on. Numbers sort
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7346 after Strings, |Lists| after Numbers. For sorting text in the
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7347 current buffer use |:sort|.
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7348
6180
6921742f396a Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6153
diff changeset
7349 When {func} is given and it is '1' or 'i' then case is
6009
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7350 ignored.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7351
6009
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7352 When {func} is given and it is 'n' then all items will be
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7353 sorted numerical (Implementation detail: This uses the
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7354 strtod() function to parse numbers, Strings, Lists, Dicts and
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7355 Funcrefs will be considered as being 0).
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
7356
7291
6ffc75d807bd commit https://github.com/vim/vim/commit/b00da1d6d1655cb6e415f84ecc3be5ff3b790811
Christian Brabandt <cb@256bit.org>
parents: 7279
diff changeset
7357 When {func} is given and it is 'N' then all items will be
6ffc75d807bd commit https://github.com/vim/vim/commit/b00da1d6d1655cb6e415f84ecc3be5ff3b790811
Christian Brabandt <cb@256bit.org>
parents: 7279
diff changeset
7358 sorted numerical. This is like 'n' but a string containing
6ffc75d807bd commit https://github.com/vim/vim/commit/b00da1d6d1655cb6e415f84ecc3be5ff3b790811
Christian Brabandt <cb@256bit.org>
parents: 7279
diff changeset
7359 digits will be used as the number they represent.
6ffc75d807bd commit https://github.com/vim/vim/commit/b00da1d6d1655cb6e415f84ecc3be5ff3b790811
Christian Brabandt <cb@256bit.org>
parents: 7279
diff changeset
7360
7707
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
7361 When {func} is given and it is 'f' then all items will be
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
7362 sorted numerical. All values must be a Number or a Float.
41768bcebc9b commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents: 7703
diff changeset
7363
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7364 When {func} is a |Funcref| or a function name, this function
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7365 is called to compare items. The function is invoked with two
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7366 items as argument and must return zero if they are equal, 1 or
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7367 bigger if the first one sorts after the second one, -1 or
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7368 smaller if the first one sorts before the second one.
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7369
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7370 {dict} is for functions with the "dict" attribute. It will be
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7371 used to set the local variable "self". |Dictionary-function|
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7372
6032
b8f703a4e55f Updated runtime files. Overhauled HTML indent script.
Bram Moolenaar <bram@vim.org>
parents: 6009
diff changeset
7373 The sort is stable, items which compare equal (as number or as
b8f703a4e55f Updated runtime files. Overhauled HTML indent script.
Bram Moolenaar <bram@vim.org>
parents: 6009
diff changeset
7374 string) will keep their relative position. E.g., when sorting
6051
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6032
diff changeset
7375 on numbers, text strings will sort next to each other, in the
6032
b8f703a4e55f Updated runtime files. Overhauled HTML indent script.
Bram Moolenaar <bram@vim.org>
parents: 6009
diff changeset
7376 same order as they were originally.
b8f703a4e55f Updated runtime files. Overhauled HTML indent script.
Bram Moolenaar <bram@vim.org>
parents: 6009
diff changeset
7377
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7378 Also see |uniq()|.
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
7379
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7380 Example: >
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7381 func MyCompare(i1, i2)
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7382 return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7383 endfunc
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7384 let sortedlist = sort(mylist, "MyCompare")
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7385 < A shorter compare version for this specific simple case, which
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7386 ignores overflow: >
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7387 func MyCompare(i1, i2)
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7388 return a:i1 - a:i2
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
7389 endfunc
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7390 <
374
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
7391 *soundfold()*
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
7392 soundfold({word})
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
7393 Return the sound-folded equivalent of {word}. Uses the first
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7394 language in 'spelllang' for the current window that supports
375
f14cbd913415 updated for version 7.0097
vimboss
parents: 374
diff changeset
7395 soundfolding. 'spell' must be set. When no sound folding is
f14cbd913415 updated for version 7.0097
vimboss
parents: 374
diff changeset
7396 possible the {word} is returned unmodified.
374
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
7397 This can be used for making spelling suggestions. Note that
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
7398 the method can be quite slow.
575dacb554d8 updated for version 7.0096
vimboss
parents: 370
diff changeset
7399
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7400 *spellbadword()*
532
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7401 spellbadword([{sentence}])
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7402 Without argument: The result is the badly spelled word under
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7403 or after the cursor. The cursor is moved to the start of the
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7404 bad word. When no bad word is found in the cursor line the
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7405 result is an empty string and the cursor doesn't move.
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7406
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7407 With argument: The result is the first word in {sentence} that
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7408 is badly spelled. If there are no spelling mistakes the
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7409 result is an empty string.
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7410
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7411 The return value is a list with two items:
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7412 - The badly spelled word or an empty string.
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7413 - The type of the spelling error:
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
7414 "bad" spelling mistake
532
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7415 "rare" rare word
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7416 "local" word only valid in another region
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7417 "caps" word should start with Capital
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7418 Example: >
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7419 echo spellbadword("the quik brown fox")
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7420 < ['quik', 'bad'] ~
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7421
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7422 The spelling information for the current window is used. The
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7423 'spell' option must be set and the value of 'spelllang' is
7052f11a3dc9 updated for version 7.0150
vimboss
parents: 531
diff changeset
7424 used.
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7425
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7426 *spellsuggest()*
537
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7427 spellsuggest({word} [, {max} [, {capital}]])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7428 Return a |List| with spelling suggestions to replace {word}.
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7429 When {max} is given up to this number of suggestions are
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7430 returned. Otherwise up to 25 suggestions are returned.
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7431
537
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7432 When the {capital} argument is given and it's non-zero only
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7433 suggestions with a leading capital will be given. Use this
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7434 after a match with 'spellcapcheck'.
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7435
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7436 {word} can be a badly spelled word followed by other text.
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7437 This allows for joining two words that were split. The
359
6c62b9b939bd updated for version 7.0093
vimboss
parents: 344
diff changeset
7438 suggestions also include the following text, thus you can
6c62b9b939bd updated for version 7.0093
vimboss
parents: 344
diff changeset
7439 replace a line.
6c62b9b939bd updated for version 7.0093
vimboss
parents: 344
diff changeset
7440
6c62b9b939bd updated for version 7.0093
vimboss
parents: 344
diff changeset
7441 {word} may also be a good word. Similar words will then be
537
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7442 returned. {word} itself is not included in the suggestions,
e321639cfa3e updated for version 7.0152
vimboss
parents: 532
diff changeset
7443 although it may appear capitalized.
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7444
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7445 The spelling information for the current window is used. The
375
f14cbd913415 updated for version 7.0097
vimboss
parents: 374
diff changeset
7446 'spell' option must be set and the values of 'spelllang' and
f14cbd913415 updated for version 7.0097
vimboss
parents: 374
diff changeset
7447 'spellsuggest' are used.
344
7033303ea0c0 updated for version 7.0089
vimboss
parents: 336
diff changeset
7448
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7449
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7450 split({expr} [, {pattern} [, {keepempty}]]) *split()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7451 Make a |List| out of {expr}. When {pattern} is omitted or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7452 empty each white-separated sequence of characters becomes an
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7453 item.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7454 Otherwise the string is split where {pattern} matches,
3920
c53344bacabf Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3914
diff changeset
7455 removing the matched characters. 'ignorecase' is not used
c53344bacabf Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3914
diff changeset
7456 here, add \c to ignore case. |/\c|
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7457 When the first or last item is empty it is omitted, unless the
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7458 {keepempty} argument is given and it's non-zero.
293
f811be6fa9b5 updated for version 7.0077
vimboss
parents: 282
diff changeset
7459 Other empty items are kept when {pattern} matches at least one
f811be6fa9b5 updated for version 7.0077
vimboss
parents: 282
diff changeset
7460 character or when {keepempty} is non-zero.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7461 Example: >
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
7462 :let words = split(getline('.'), '\W\+')
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7463 < To split a string in individual characters: >
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
7464 :for c in split(mystring, '\zs')
7100
f717d96a39b3 commit https://github.com/vim/vim/commit/12969c04fe7bd27dc0cbf37709eb40a86d4a27f9
Christian Brabandt <cb@256bit.org>
parents: 7013
diff changeset
7465 < If you want to keep the separator you can also use '\zs' at
f717d96a39b3 commit https://github.com/vim/vim/commit/12969c04fe7bd27dc0cbf37709eb40a86d4a27f9
Christian Brabandt <cb@256bit.org>
parents: 7013
diff changeset
7466 the end of the pattern: >
258
f93df7322443 updated for version 7.0070
vimboss
parents: 236
diff changeset
7467 :echo split('abc:def:ghi', ':\zs')
f93df7322443 updated for version 7.0070
vimboss
parents: 236
diff changeset
7468 < ['abc:', 'def:', 'ghi'] ~
282
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7469 Splitting a table where the first element can be empty: >
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7470 :let items = split(line, ':', 1)
33d9c918b8ab updated for version 7.0075
vimboss
parents: 277
diff changeset
7471 < The opposite function is |join()|.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7472
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7473
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7474 sqrt({expr}) *sqrt()*
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7475 Return the non-negative square root of Float {expr} as a
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7476 |Float|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7477 {expr} must evaluate to a |Float| or a |Number|. When {expr}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7478 is negative the result is NaN (Not a Number).
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7479 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7480 :echo sqrt(100)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7481 < 10.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7482 :echo sqrt(-4.01)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7483 < nan
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
7484 "nan" may be different, it depends on system libraries.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7485 {only available when compiled with the |+float| feature}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7486
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7487
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
7488 str2float({expr}) *str2float()*
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7489 Convert String {expr} to a Float. This mostly works the same
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7490 as when using a floating point number in an expression, see
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7491 |floating-point-format|. But it's a bit more permissive.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7492 E.g., "1e40" is accepted, while in an expression you need to
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7493 write "1.0e40".
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7494 Text after the number is silently ignored.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7495 The decimal point is always '.', no matter what the locale is
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7496 set to. A comma ends the number: "12,345.67" is converted to
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7497 12.0. You can strip out thousands separators with
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7498 |substitute()|: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7499 let f = str2float(substitute(text, ',', '', 'g'))
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7500 < {only available when compiled with the |+float| feature}
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7501
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7502
8883
b7de875169e6 commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents: 8881
diff changeset
7503 str2nr({expr} [, {base}]) *str2nr()*
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7504 Convert string {expr} to a number.
7477
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
7505 {base} is the conversion base, it can be 2, 8, 10 or 16.
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7506 When {base} is omitted base 10 is used. This also means that
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7507 a leading zero doesn't cause octal conversion to be used, as
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7508 with the default String to Number conversion.
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7509 When {base} is 16 a leading "0x" or "0X" is ignored. With a
7477
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
7510 different base the result will be zero. Similarly, when
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
7511 {base} is 8 a leading "0" is ignored, and when {base} is 2 a
05cf4cc72a9f commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents: 7384
diff changeset
7512 leading "0b" or "0B" is ignored.
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7513 Text after the number is silently ignored.
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
7514
782
d20041a02ee5 updated for version 7.0228
vimboss
parents: 777
diff changeset
7515
6884
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
7516 strchars({expr} [, {skipcc}]) *strchars()*
2338
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7517 The result is a Number, which is the number of characters
6884
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
7518 in String {expr}.
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
7519 When {skipcc} is omitted or zero, composing characters are
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
7520 counted separately.
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
7521 When {skipcc} set to 1, Composing characters are ignored.
2339
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7522 Also see |strlen()|, |strdisplaywidth()| and |strwidth()|.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7523
6918
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7524 {skipcc} is only available after 7.4.755. For backward
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7525 compatibility, you can define a wrapper function: >
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7526 if has("patch-7.4.755")
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7527 function s:strchars(str, skipcc)
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7528 return strchars(a:str, a:skipcc)
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7529 endfunction
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7530 else
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7531 function s:strchars(str, skipcc)
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7532 if a:skipcc
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7533 return strlen(substitute(a:str, ".", "x", "g"))
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7534 else
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7535 return strchars(a:str)
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7536 endif
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7537 endfunction
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7538 endif
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7539 <
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7540 strcharpart({src}, {start} [, {len}]) *strcharpart()*
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7541 Like |strpart()| but using character index and length instead
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7542 of byte index and length.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7543 When a character index is used where a character does not
10617
9a75c8a1b8b1 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10563
diff changeset
7544 exist it is assumed to be one character. For example: >
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7545 strcharpart('abc', -1, 2)
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7546 < results in 'a'.
6918
2def7b25de60 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6909
diff changeset
7547
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7548 strdisplaywidth({expr} [, {col}]) *strdisplaywidth()*
2339
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7549 The result is a Number, which is the number of display cells
6884
29c328f69aaa Update help files.
Bram Moolenaar <bram@vim.org>
parents: 6870
diff changeset
7550 String {expr} occupies on the screen when it starts at {col}.
2339
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7551 When {col} is omitted zero is used. Otherwise it is the
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7552 screen column where to start. This matters for Tab
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7553 characters.
2343
0703d2fd5749 Last few changes for the 7.3a BETA release.
Bram Moolenaar <bram@vim.org>
parents: 2339
diff changeset
7554 The option settings of the current window are used. This
0703d2fd5749 Last few changes for the 7.3a BETA release.
Bram Moolenaar <bram@vim.org>
parents: 2339
diff changeset
7555 matters for anything that's displayed differently, such as
0703d2fd5749 Last few changes for the 7.3a BETA release.
Bram Moolenaar <bram@vim.org>
parents: 2339
diff changeset
7556 'tabstop' and 'display'.
2339
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7557 When {expr} contains characters with East Asian Width Class
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7558 Ambiguous, this function's return value depends on 'ambiwidth'.
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7559 Also see |strlen()|, |strwidth()| and |strchars()|.
2338
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7560
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7561 strftime({format} [, {time}]) *strftime()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7562 The result is a String, which is a formatted date and time, as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7563 specified by the {format} string. The given {time} is used,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7564 or the current time if no time is given. The accepted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7565 {format} depends on your system, thus this is not portable!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7566 See the manual page of the C function strftime() for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7567 format. The maximum length of the result is 80 characters.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7568 See also |localtime()| and |getftime()|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7569 The language can be changed with the |:language| command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7570 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7571 :echo strftime("%c") Sun Apr 27 11:49:23 1997
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7572 :echo strftime("%Y %b %d %X") 1997 Apr 27 11:53:25
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7573 :echo strftime("%y%m%d %T") 970427 11:53:55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7574 :echo strftime("%H:%M") 11:55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7575 :echo strftime("%c", getftime("file.c"))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7576 Show mod time of file.c.
82
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7577 < Not available on all systems. To check use: >
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7578 :if exists("*strftime")
366d9947baf2 updated for version 7.0033
vimboss
parents: 79
diff changeset
7579
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7580 strgetchar({str}, {index}) *strgetchar()*
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7581 Get character {index} from {str}. This uses a character
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7582 index, not a byte index. Composing characters are considered
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7583 separate characters here.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7584 Also see |strcharpart()| and |strchars()|.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7585
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
7586 stridx({haystack}, {needle} [, {start}]) *stridx()*
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
7587 The result is a Number, which gives the byte index in
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
7588 {haystack} of the first occurrence of the String {needle}.
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7589 If {start} is specified, the search starts at index {start}.
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7590 This can be used to find a second match: >
2662
916c90b37ea9 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
7591 :let colon1 = stridx(line, ":")
916c90b37ea9 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2642
diff changeset
7592 :let colon2 = stridx(line, ":", colon1 + 1)
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7593 < The search is done case-sensitive.
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7594 For pattern searches use |match()|.
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
7595 -1 is returned if the {needle} does not occur in {haystack}.
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7596 See also |strridx()|.
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7597 Examples: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7598 :echo stridx("An Example", "Example") 3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7599 :echo stridx("Starting point", "Start") 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7600 :echo stridx("Starting point", "start") -1
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
7601 < *strstr()* *strchr()*
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
7602 stridx() works similar to the C function strstr(). When used
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
7603 with a single character it works similar to strchr().
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
7604
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
7605 *string()*
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
7606 string({expr}) Return {expr} converted to a String. If {expr} is a Number,
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7607 Float, String or a composition of them, then the result can be
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7608 parsed back with |eval()|.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
7609 {expr} type result ~
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
7610 String 'string' (single quotes are doubled)
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
7611 Number 123
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7612 Float 123.123456 or 1.123456e8
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
7613 Funcref function('name')
95
a2081e6febb8 updated for version 7.0037
vimboss
parents: 90
diff changeset
7614 List [item, item]
323
03b3684919e3 updated for version 7.0084
vimboss
parents: 314
diff changeset
7615 Dictionary {key: value, key: value}
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
7616
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
7617 When a List or Dictionary has a recursive reference it is
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
7618 replaced by "[...]" or "{...}". Using eval() on the result
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
7619 will then fail.
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
7620
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7621 Also see |strtrans()|.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
7622
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7623 *strlen()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7624 strlen({expr}) The result is a Number, which is the length of the String
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents: 493
diff changeset
7625 {expr} in bytes.
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
7626 If the argument is a Number it is first converted to a String.
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
7627 For other types an error is given.
6870
66ab6ec256d1 patch 7.4.755
Bram Moolenaar <bram@vim.org>
parents: 6840
diff changeset
7628 If you want to count the number of multi-byte characters use
66ab6ec256d1 patch 7.4.755
Bram Moolenaar <bram@vim.org>
parents: 6840
diff changeset
7629 |strchars()|.
66ab6ec256d1 patch 7.4.755
Bram Moolenaar <bram@vim.org>
parents: 6840
diff changeset
7630 Also see |len()|, |strdisplaywidth()| and |strwidth()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7631
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7632 strpart({src}, {start} [, {len}]) *strpart()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7633 The result is a String, which is part of {src}, starting from
574
25a70b1cd2da updated for version 7.0163
vimboss
parents: 557
diff changeset
7634 byte {start}, with the byte length {len}.
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7635 To count characters instead of bytes use |strcharpart()|.
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7636
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7637 When bytes are selected which do not exist, this doesn't
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7638 result in an error, the bytes are simply omitted.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7639 If {len} is missing, the copy continues from {start} till the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7640 end of the {src}. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7641 strpart("abcdefg", 3, 2) == "de"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7642 strpart("abcdefg", -2, 4) == "ab"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7643 strpart("abcdefg", 5, 4) == "fg"
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
7644 strpart("abcdefg", 3) == "defg"
8951
0bdeaf7092bc commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents: 8883
diff changeset
7645
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7646 < Note: To get the first character, {start} must be 0. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7647 example, to get three bytes under and after the cursor: >
823
9ab23f1e137f updated for version 7.0c12
vimboss
parents: 819
diff changeset
7648 strpart(getline("."), col(".") - 1, 3)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7649 <
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7650 strridx({haystack}, {needle} [, {start}]) *strridx()*
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7651 The result is a Number, which gives the byte index in
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7652 {haystack} of the last occurrence of the String {needle}.
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7653 When {start} is specified, matches beyond this index are
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7654 ignored. This can be used to find a match before a previous
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7655 match: >
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7656 :let lastcomma = strridx(line, ",")
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7657 :let comma2 = strridx(line, ",", lastcomma - 1)
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
7658 < The search is done case-sensitive.
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
7659 For pattern searches use |match()|.
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
7660 -1 is returned if the {needle} does not occur in {haystack}.
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 20
diff changeset
7661 If the {needle} is empty the length of {haystack} is returned.
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
7662 See also |stridx()|. Examples: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7663 :echo strridx("an angry armadillo", "an") 3
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
7664 < *strrchr()*
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
7665 When used with a single character it works similar to the C
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
7666 function strrchr().
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
7667
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7668 strtrans({expr}) *strtrans()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7669 The result is a String, which is {expr} with all unprintable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7670 characters translated into printable characters |'isprint'|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7671 Like they are shown in a window. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7672 echo strtrans(@a)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7673 < This displays a newline in register a as "^@" instead of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7674 starting a new line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7675
2338
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7676 strwidth({expr}) *strwidth()*
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7677 The result is a Number, which is the number of display cells
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7678 String {expr} occupies. A Tab character is counted as one
2339
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7679 cell, alternatively use |strdisplaywidth()|.
2338
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7680 When {expr} contains characters with East Asian Width Class
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7681 Ambiguous, this function's return value depends on 'ambiwidth'.
2339
01e4b4d37842 Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents: 2338
diff changeset
7682 Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
2338
da6ec32d8d8f Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents: 2337
diff changeset
7683
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7684 submatch({nr} [, {list}]) *submatch()* *E935*
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7685 Only for an expression in a |:substitute| command or
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7686 substitute() function.
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7687 Returns the {nr}'th submatch of the matched text. When {nr}
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7688 is 0 the whole matched text is returned.
5794
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7689 Note that a NL in the string can stand for a line break of a
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7690 multi-line match or a NUL character in the text.
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7691 Also see |sub-replace-expression|.
5794
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7692
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7693 If {list} is present and non-zero then submatch() returns
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7694 a list of strings, similar to |getline()| with two arguments.
5794
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7695 NL characters in the text represent NUL characters in the
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7696 text.
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7697 Only returns more than one item for |:substitute|, inside
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7698 |substitute()| this list will always contain one or zero
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7699 items, since there are no real line breaks.
a63d0cd691dc updated for version 7.4.241
Bram Moolenaar <bram@vim.org>
parents: 5786
diff changeset
7700
10245
d76ccdacb41e commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents: 10244
diff changeset
7701 When substitute() is used recursively only the submatches in
d76ccdacb41e commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents: 10244
diff changeset
7702 the current (deepest) call can be obtained.
d76ccdacb41e commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents: 10244
diff changeset
7703
12968
45987b1b77dc Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12909
diff changeset
7704 Examples: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7705 :s/\d\+/\=submatch(0) + 1/
12968
45987b1b77dc Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12909
diff changeset
7706 :echo substitute(text, '\d\+', '\=submatch(0) + 1', '')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7707 < This finds the first number in the line and adds one to it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7708 A line break is included as a newline character.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7709
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7710 substitute({expr}, {pat}, {sub}, {flags}) *substitute()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7711 The result is a String, which is a copy of {expr}, in which
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7712 the first match of {pat} is replaced with {sub}.
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7713 When {flags} is "g", all matches of {pat} in {expr} are
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7714 replaced. Otherwise {flags} should be "".
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7715
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7716 This works like the ":substitute" command (without any flags).
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7717 But the matching with {pat} is always done like the 'magic'
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7718 option is set and 'cpoptions' is empty (to make scripts
3967
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
7719 portable). 'ignorecase' is still relevant, use |/\c| or |/\C|
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
7720 if you want to ignore or match case and ignore 'ignorecase'.
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
7721 'smartcase' is not used. See |string-match| for how {pat} is
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
7722 used.
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7723
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7724 A "~" in {sub} is not replaced with the previous {sub}.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7725 Note that some codes in {sub} have a special meaning
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7726 |sub-replace-special|. For example, to replace something with
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7727 "\n" (two characters), use "\\\\n" or '\\n'.
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7728
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7729 When {pat} does not match in {expr}, {expr} is returned
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7730 unmodified.
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7731
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7732 Example: >
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7733 :let &path = substitute(&path, ",\\=[^,]*$", "", "")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7734 < This removes the last component of the 'path' option. >
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7735 :echo substitute("testing", ".*", "\\U\\0", "")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7736 < results in "TESTING".
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7737
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7738 When {sub} starts with "\=", the remainder is interpreted as
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2902
diff changeset
7739 an expression. See |sub-replace-expression|. Example: >
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7740 :echo substitute(s, '%\(\x\x\)',
2833
c869ff170ddc Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2826
diff changeset
7741 \ '\=nr2char("0x" . submatch(1))', 'g')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7742
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7743 < When {sub} is a Funcref that function is called, with one
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7744 optional argument. Example: >
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7745 :echo substitute(s, '%\(\x\x\)', SubNr, 'g')
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7746 < The optional argument is a list which contains the whole
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7747 matched string and up to nine submatches, like what
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7748 |submatch()| returns. Example: >
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7749 :echo substitute(s, '%\(\x\x\)', {m -> '0x' . m[1]}, 'g')
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
7750
32
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
7751 synID({lnum}, {col}, {trans}) *synID()*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7752 The result is a Number, which is the syntax ID at the position
32
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
7753 {lnum} and {col} in the current window.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7754 The syntax ID can be used with |synIDattr()| and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7755 |synIDtrans()| to obtain syntax information about text.
419
f713fc55bf7b updated for version 7.0109
vimboss
parents: 401
diff changeset
7756
32
41f9fd58cf13 updated for version 7.0019
vimboss
parents: 29
diff changeset
7757 {col} is 1 for the leftmost column, {lnum} is 1 for the first
419
f713fc55bf7b updated for version 7.0109
vimboss
parents: 401
diff changeset
7758 line. 'synmaxcol' applies, in a longer line zero is returned.
7147
c590de398af9 commit https://github.com/vim/vim/commit/ca63501fbcd1cf9c8aa9ff12c093c95b62a89ed7
Christian Brabandt <cb@256bit.org>
parents: 7100
diff changeset
7759 Note that when the position is after the last character,
c590de398af9 commit https://github.com/vim/vim/commit/ca63501fbcd1cf9c8aa9ff12c093c95b62a89ed7
Christian Brabandt <cb@256bit.org>
parents: 7100
diff changeset
7760 that's where the cursor can be in Insert mode, synID() returns
c590de398af9 commit https://github.com/vim/vim/commit/ca63501fbcd1cf9c8aa9ff12c093c95b62a89ed7
Christian Brabandt <cb@256bit.org>
parents: 7100
diff changeset
7761 zero.
419
f713fc55bf7b updated for version 7.0109
vimboss
parents: 401
diff changeset
7762
9454
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
7763 When {trans} is |TRUE|, transparent items are reduced to the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7764 item that they reveal. This is useful when wanting to know
9454
9da0cb39cbee commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents: 9430
diff changeset
7765 the effective color. When {trans} is |FALSE|, the transparent
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7766 item is returned. This is useful when wanting to know which
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7767 syntax item is effective (e.g. inside parens).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7768 Warning: This function can be very slow. Best speed is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7769 obtained by going through the file in forward direction.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7770
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7771 Example (echoes the name of the syntax item under the cursor): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7772 :echo synIDattr(synID(line("."), col("."), 1), "name")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7773 <
2401
e7751177126b Add the synconcealed() function and use it for :TOhtml. (Benjamin Fritz)
Bram Moolenaar <bram@vim.org>
parents: 2350
diff changeset
7774
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7775 synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7776 The result is a String, which is the {what} attribute of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7777 syntax ID {synID}. This can be used to obtain information
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7778 about a syntax item.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7779 {mode} can be "gui", "cterm" or "term", to get the attributes
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
7780 for that mode. When {mode} is omitted, or an invalid value is
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7781 used, the attributes for the currently active highlighting are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7782 used (GUI, cterm or term).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7783 Use synIDtrans() to follow linked highlight groups.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7784 {what} result
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7785 "name" the name of the syntax item
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7786 "fg" foreground color (GUI: color name used to set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7787 the color, cterm: color number as a string,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7788 term: empty string)
1755
0c6c64edcbe0 updated for version 7.2-052
vimboss
parents: 1754
diff changeset
7789 "bg" background color (as with "fg")
2106
15674e198164 updated for version 7.2.389
Bram Moolenaar <bram@zimbu.org>
parents: 2072
diff changeset
7790 "font" font name (only available in the GUI)
15674e198164 updated for version 7.2.389
Bram Moolenaar <bram@zimbu.org>
parents: 2072
diff changeset
7791 |highlight-font|
1755
0c6c64edcbe0 updated for version 7.2-052
vimboss
parents: 1754
diff changeset
7792 "sp" special color (as with "fg") |highlight-guisp|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7793 "fg#" like "fg", but for the GUI and the GUI is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7794 running the name in "#RRGGBB" form
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7795 "bg#" like "fg#" for "bg"
1755
0c6c64edcbe0 updated for version 7.2-052
vimboss
parents: 1754
diff changeset
7796 "sp#" like "fg#" for "sp"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7797 "bold" "1" if bold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7798 "italic" "1" if italic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7799 "reverse" "1" if reverse
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7800 "inverse" "1" if inverse (= reverse)
2106
15674e198164 updated for version 7.2.389
Bram Moolenaar <bram@zimbu.org>
parents: 2072
diff changeset
7801 "standout" "1" if standout
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7802 "underline" "1" if underlined
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7803 "undercurl" "1" if undercurled
12317
2a8890b80923 patch 8.0.1038: strike-through text not supported
Christian Brabandt <cb@256bit.org>
parents: 12311
diff changeset
7804 "strike" "1" if strikethrough
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7805
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7806 Example (echoes the color of the syntax item under the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7807 cursor): >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7808 :echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "fg")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7809 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7810 synIDtrans({synID}) *synIDtrans()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7811 The result is a Number, which is the translated syntax ID of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7812 {synID}. This is the syntax group ID of what is being used to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7813 highlight the character. Highlight links given with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7814 ":highlight link" are followed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7815
2608
7d8af31066c8 Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2596
diff changeset
7816 synconcealed({lnum}, {col}) *synconcealed()*
11553
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7817 The result is a List with currently three items:
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7818 1. The first item in the list is 0 if the character at the
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7819 position {lnum} and {col} is not part of a concealable
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7820 region, 1 if it is.
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7821 2. The second item in the list is a string. If the first item
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7822 is 1, the second item contains the text which will be
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7823 displayed in place of the concealed text, depending on the
cbceef33af7a patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents: 11549
diff changeset
7824 current setting of 'conceallevel' and 'listchars'.
11579
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7825 3. The third and final item in the list is a number
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7826 representing the specific syntax region matched in the
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7827 line. When the character is not concealed the value is
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7828 zero. This allows detection of the beginning of a new
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7829 concealable region if there are two consecutive regions
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7830 with the same replacement character. For an example, if
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7831 the text is "123456" and both "23" and "45" are concealed
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7832 and replace by the character "X", then:
52e3a77c097b patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents: 11561
diff changeset
7833 call returns ~
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
7834 synconcealed(lnum, 1) [0, '', 0]
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
7835 synconcealed(lnum, 2) [1, 'X', 1]
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
7836 synconcealed(lnum, 3) [1, 'X', 1]
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
7837 synconcealed(lnum, 4) [1, 'X', 2]
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
7838 synconcealed(lnum, 5) [1, 'X', 2]
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
7839 synconcealed(lnum, 6) [0, '', 0]
2608
7d8af31066c8 Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2596
diff changeset
7840
7d8af31066c8 Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2596
diff changeset
7841
1500
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7842 synstack({lnum}, {col}) *synstack()*
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7843 Return a |List|, which is the stack of syntax items at the
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7844 position {lnum} and {col} in the current window. Each item in
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7845 the List is an ID like what |synID()| returns.
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7846 The first item in the List is the outer region, following are
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7847 items contained in that one. The last one is what |synID()|
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7848 returns, unless not the whole item is highlighted or it is a
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7849 transparent item.
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7850 This function is useful for debugging a syntax file.
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7851 Example that shows the syntax stack under the cursor: >
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7852 for id in synstack(line("."), col("."))
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7853 echo synIDattr(id, "name")
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7854 endfor
2290
22529abcd646 Fixed ":s" message. Docs updates.
Bram Moolenaar <bram@vim.org>
parents: 2281
diff changeset
7855 < When the position specified with {lnum} and {col} is invalid
22529abcd646 Fixed ":s" message. Docs updates.
Bram Moolenaar <bram@vim.org>
parents: 2281
diff changeset
7856 nothing is returned. The position just after the last
22529abcd646 Fixed ":s" message. Docs updates.
Bram Moolenaar <bram@vim.org>
parents: 2281
diff changeset
7857 character in a line and the first column in an empty line are
22529abcd646 Fixed ":s" message. Docs updates.
Bram Moolenaar <bram@vim.org>
parents: 2281
diff changeset
7858 valid positions.
1500
ea9f418ed072 updated for version 7.1-215
vimboss
parents: 1496
diff changeset
7859
24
8ff7fd162d3c updated for version 7.0016
vimboss
parents: 22
diff changeset
7860 system({expr} [, {input}]) *system()* *E677*
5808
e5f1f2ea0b4a updated for version 7.4.248
Bram Moolenaar <bram@vim.org>
parents: 5806
diff changeset
7861 Get the output of the shell command {expr} as a string. See
e5f1f2ea0b4a updated for version 7.4.248
Bram Moolenaar <bram@vim.org>
parents: 5806
diff changeset
7862 |systemlist()| to get the output as a List.
5806
76863b4b48a3 updated for version 7.4.247
Bram Moolenaar <bram@vim.org>
parents: 5798
diff changeset
7863
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7864 When {input} is given and is a string this string is written
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7865 to a file and passed as stdin to the command. The string is
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7866 written as-is, you need to take care of using the correct line
5806
76863b4b48a3 updated for version 7.4.247
Bram Moolenaar <bram@vim.org>
parents: 5798
diff changeset
7867 separators yourself.
76863b4b48a3 updated for version 7.4.247
Bram Moolenaar <bram@vim.org>
parents: 5798
diff changeset
7868 If {input} is given and is a |List| it is written to the file
76863b4b48a3 updated for version 7.4.247
Bram Moolenaar <bram@vim.org>
parents: 5798
diff changeset
7869 in a way |writefile()| does with {binary} set to "b" (i.e.
76863b4b48a3 updated for version 7.4.247
Bram Moolenaar <bram@vim.org>
parents: 5798
diff changeset
7870 with a newline between each list item with newlines inside
10522
7232cd9f8a7c commit https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882
Christian Brabandt <cb@256bit.org>
parents: 10449
diff changeset
7871 list items converted to NULs).
7232cd9f8a7c commit https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882
Christian Brabandt <cb@256bit.org>
parents: 10449
diff changeset
7872 When {input} is given and is a number that is a valid id for
7232cd9f8a7c commit https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882
Christian Brabandt <cb@256bit.org>
parents: 10449
diff changeset
7873 an existing buffer then the content of the buffer is written
7232cd9f8a7c commit https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882
Christian Brabandt <cb@256bit.org>
parents: 10449
diff changeset
7874 to the file line by line, each line terminated by a NL and
7232cd9f8a7c commit https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882
Christian Brabandt <cb@256bit.org>
parents: 10449
diff changeset
7875 NULs characters where the text has a NL.
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
7876
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
7877 Pipes are not used, the 'shelltemp' option is not used.
5806
76863b4b48a3 updated for version 7.4.247
Bram Moolenaar <bram@vim.org>
parents: 5798
diff changeset
7878
10038
7cf4e210cf3c commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents: 10027
diff changeset
7879 When prepended by |:silent| the terminal will not be set to
6183
fca35aa9380a updated for version 7.4.427
Bram Moolenaar <bram@vim.org>
parents: 6180
diff changeset
7880 cooked mode. This is meant to be used for commands that do
fca35aa9380a updated for version 7.4.427
Bram Moolenaar <bram@vim.org>
parents: 6180
diff changeset
7881 not need the user to type. It avoids stray characters showing
fca35aa9380a updated for version 7.4.427
Bram Moolenaar <bram@vim.org>
parents: 6180
diff changeset
7882 up on the screen which require |CTRL-L| to remove. >
fca35aa9380a updated for version 7.4.427
Bram Moolenaar <bram@vim.org>
parents: 6180
diff changeset
7883 :silent let f = system('ls *.vim')
fca35aa9380a updated for version 7.4.427
Bram Moolenaar <bram@vim.org>
parents: 6180
diff changeset
7884 <
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7885 Note: Use |shellescape()| or |::S| with |expand()| or
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7886 |fnamemodify()| to escape special characters in a command
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7887 argument. Newlines in {expr} may cause the command to fail.
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7888 The characters in 'shellquote' and 'shellxquote' may also
5690
40f18a1c1592 updated for version 7.4.191
Bram Moolenaar <bram@vim.org>
parents: 5663
diff changeset
7889 cause trouble.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7890 This is not to be used for interactive commands.
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7891
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7892 The result is a String. Example: >
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
7893 :let files = system("ls " . shellescape(expand('%:h')))
5690
40f18a1c1592 updated for version 7.4.191
Bram Moolenaar <bram@vim.org>
parents: 5663
diff changeset
7894 :let files = system('ls ' . expand('%:h:S'))
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7895
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7896 < To make the result more system-independent, the shell output
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7897 is filtered to replace <CR> with <NL> for Macintosh, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7898 <CR><NL> with <NL> for DOS-like systems.
5277
42bf9264e64e Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5247
diff changeset
7899 To avoid the string being truncated at a NUL, all NUL
42bf9264e64e Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5247
diff changeset
7900 characters are replaced with SOH (0x01).
42bf9264e64e Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5247
diff changeset
7901
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7902 The command executed is constructed using several options:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7903 'shell' 'shellcmdflag' 'shellxquote' {expr} 'shellredir' {tmp} 'shellxquote'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7904 ({tmp} is an automatically generated file name).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7905 For Unix and OS/2 braces are put around {expr} to allow for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7906 concatenated commands.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7907
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
7908 The command will be executed in "cooked" mode, so that a
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
7909 CTRL-C will interrupt the command (on Unix at least).
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
7910
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7911 The resulting error code can be found in |v:shell_error|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7912 This function will fail in |restricted-mode|.
625
81fe2ccc1207 updated for version 7.0179
vimboss
parents: 620
diff changeset
7913
81fe2ccc1207 updated for version 7.0179
vimboss
parents: 620
diff changeset
7914 Note that any wrong value in the options mentioned above may
81fe2ccc1207 updated for version 7.0179
vimboss
parents: 620
diff changeset
7915 make the function fail. It has also been reported to fail
81fe2ccc1207 updated for version 7.0179
vimboss
parents: 620
diff changeset
7916 when using a security agent application.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7917 Unlike ":!cmd" there is no automatic check for changed files.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7918 Use |:checktime| to force a check.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7919
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7920
5808
e5f1f2ea0b4a updated for version 7.4.248
Bram Moolenaar <bram@vim.org>
parents: 5806
diff changeset
7921 systemlist({expr} [, {input}]) *systemlist()*
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7922 Same as |system()|, but returns a |List| with lines (parts of
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7923 output separated by NL) with NULs transformed into NLs. Output
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7924 is the same as |readfile()| will output with {binary} argument
10548
74effdaa369e Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10522
diff changeset
7925 set to "b". Note that on MS-Windows you may get trailing CR
74effdaa369e Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10522
diff changeset
7926 characters.
5808
e5f1f2ea0b4a updated for version 7.4.248
Bram Moolenaar <bram@vim.org>
parents: 5806
diff changeset
7927
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
7928 Returns an empty string on error.
5808
e5f1f2ea0b4a updated for version 7.4.248
Bram Moolenaar <bram@vim.org>
parents: 5806
diff changeset
7929
e5f1f2ea0b4a updated for version 7.4.248
Bram Moolenaar <bram@vim.org>
parents: 5806
diff changeset
7930
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7931 tabpagebuflist([{arg}]) *tabpagebuflist()*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
7932 The result is a |List|, where each item is the number of the
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7933 buffer associated with each window in the current tab page.
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
7934 {arg} specifies the number of the tab page to be used. When
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7935 omitted the current tab page is used.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7936 When {arg} is invalid the number zero is returned.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7937 To get a list of all buffers in all tabs use this: >
3445
2cfb68fa26cd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3410
diff changeset
7938 let buflist = []
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7939 for i in range(tabpagenr('$'))
3445
2cfb68fa26cd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3410
diff changeset
7940 call extend(buflist, tabpagebuflist(i + 1))
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7941 endfor
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7942 < Note that a buffer may appear in more than one window.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7943
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7944
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7945 tabpagenr([{arg}]) *tabpagenr()*
674
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7946 The result is a Number, which is the number of the current
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7947 tab page. The first tab page has number 1.
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7948 When the optional argument is "$", the number of the last tab
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7949 page is returned (the tab page count).
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7950 The number can be used with the |:tab| command.
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7951
4b8583e82cb8 updated for version 7.0201
vimboss
parents: 667
diff changeset
7952
5763
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
7953 tabpagewinnr({tabarg} [, {arg}]) *tabpagewinnr()*
2569
f612f6b0b883 Docs fix for tabpagewinnr(). (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2561
diff changeset
7954 Like |winnr()| but for tab page {tabarg}.
677
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7955 {tabarg} specifies the number of tab page to be used.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7956 {arg} is used like with |winnr()|:
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7957 - When omitted the current window number is returned. This is
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7958 the window which will be used when going to this tab page.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7959 - When "$" the number of windows is returned.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7960 - When "#" the previous window nr is returned.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7961 Useful examples: >
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7962 tabpagewinnr(1) " current window of tab page 1
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7963 tabpagewinnr(4, '$') " number of windows in tab page 4
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7964 < When {tabarg} is invalid zero is returned.
e649c78407e6 updated for version 7.0202
vimboss
parents: 674
diff changeset
7965
805
497fab3f99d6 updated for version 7.0b01
vimboss
parents: 800
diff changeset
7966 *tagfiles()*
497fab3f99d6 updated for version 7.0b01
vimboss
parents: 800
diff changeset
7967 tagfiles() Returns a |List| with the file names used to search for tags
497fab3f99d6 updated for version 7.0b01
vimboss
parents: 800
diff changeset
7968 for the current buffer. This is the 'tags' option expanded.
497fab3f99d6 updated for version 7.0b01
vimboss
parents: 800
diff changeset
7969
497fab3f99d6 updated for version 7.0b01
vimboss
parents: 800
diff changeset
7970
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
7971 taglist({expr} [, {filename}]) *taglist()*
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7972 Returns a list of tags matching the regular expression {expr}.
11225
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents: 11211
diff changeset
7973
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents: 11211
diff changeset
7974 If {filename} is passed it is used to prioritize the results
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents: 11211
diff changeset
7975 in the same way that |:tselect| does. See |tag-priority|.
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents: 11211
diff changeset
7976 {filename} should be the full path of the file.
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents: 11211
diff changeset
7977
438
59b7b7e99c95 updated for version 7.0113
vimboss
parents: 435
diff changeset
7978 Each list item is a dictionary with at least the following
59b7b7e99c95 updated for version 7.0113
vimboss
parents: 435
diff changeset
7979 entries:
648
9032e4668296 updated for version 7.0189
vimboss
parents: 647
diff changeset
7980 name Name of the tag.
9032e4668296 updated for version 7.0189
vimboss
parents: 647
diff changeset
7981 filename Name of the file where the tag is
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7982 defined. It is either relative to the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7983 current directory or a full path.
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7984 cmd Ex command used to locate the tag in
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7985 the file.
648
9032e4668296 updated for version 7.0189
vimboss
parents: 647
diff changeset
7986 kind Type of the tag. The value for this
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7987 entry depends on the language specific
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7988 kind values. Only available when
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7989 using a tags file generated by
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7990 Exuberant ctags or hdrtag.
648
9032e4668296 updated for version 7.0189
vimboss
parents: 647
diff changeset
7991 static A file specific tag. Refer to
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
7992 |static-tag| for more information.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7993 More entries may be present, depending on the content of the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7994 tags file: access, implementation, inherits and signature.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7995 Refer to the ctags documentation for information about these
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7996 fields. For C code the fields "struct", "class" and "enum"
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7997 may appear, they give the name of the entity the tag is
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
7998 contained in.
452
01af1008a8d8 updated for version 7.0120
vimboss
parents: 449
diff changeset
7999
11062
1218c5353e2b Runtime file updates.
Christian Brabandt <cb@256bit.org>
parents: 11032
diff changeset
8000 The ex-command "cmd" can be either an ex search pattern, a
216
da182deebec7 updated for version 7.0061
vimboss
parents: 205
diff changeset
8001 line number or a line number followed by a byte number.
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8002
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8003 If there are no matching tags, then an empty list is returned.
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8004
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8005 To get an exact tag match, the anchors '^' and '$' should be
4073
e362db8b2d7b Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4051
diff changeset
8006 used in {expr}. This also make the function work faster.
e362db8b2d7b Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4051
diff changeset
8007 Refer to |tag-regexp| for more information about the tag
e362db8b2d7b Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 4051
diff changeset
8008 search regular expression pattern.
205
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8009
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8010 Refer to |'tags'| for information about how the tags file is
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8011 located by Vim. Refer to |tags-file-format| for the format of
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8012 the tags file generated by the different ctags tools.
d292c40ca788 updated for version 7.0060
vimboss
parents: 189
diff changeset
8013
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8014 tan({expr}) *tan()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
8015 Return the tangent of {expr}, measured in radians, as a |Float|
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8016 in the range [-inf, inf].
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
8017 {expr} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8018 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8019 :echo tan(10)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8020 < 0.648361 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8021 :echo tan(-4.01)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8022 < -1.181502
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
8023 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8024
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8025
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8026 tanh({expr}) *tanh()*
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
8027 Return the hyperbolic tangent of {expr} as a |Float| in the
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8028 range [-1, 1].
2337
a0f87fc19d1d Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents: 2320
diff changeset
8029 {expr} must evaluate to a |Float| or a |Number|.
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8030 Examples: >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8031 :echo tanh(0.5)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8032 < 0.462117 >
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8033 :echo tanh(-1)
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8034 < -0.761594
2570
71b56b4e7785 Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents: 2569
diff changeset
8035 {only available when compiled with the |+float| feature}
2206
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8036
a8afba7027ae Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents: 2154
diff changeset
8037
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8038 tempname() *tempname()* *temp-file-name*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8039 The result is a String, which is the name of a file that
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
8040 doesn't exist. It can be used for a temporary file. The name
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8041 is different for at least 26 consecutive calls. Example: >
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8042 :let tmpfile = tempname()
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8043 :exe "redir > " . tmpfile
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8044 < For Unix, the file will be in a private directory |tempfile|.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8045 For MS-Windows forward slashes are used when the 'shellslash'
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8046 option is set or when 'shellcmdflag' starts with '-'.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8047
12035
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
8048 term_getaltscreen({buf}) *term_getaltscreen()*
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
8049 Returns 1 if the terminal of {buf} is using the alternate
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
8050 screen.
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
8051 {buf} is used as with |term_getsize()|.
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
8052 {only available when compiled with the |+terminal| feature}
a3ed3d236839 patch 8.0.0898: can't use the alternate screen in a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12031
diff changeset
8053
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8054 term_getattr({attr}, {what}) *term_getattr()*
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8055 Given {attr}, a value returned by term_scrape() in the "attr"
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8056 item, return whether {what} is on. {what} can be one of:
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8057 bold
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8058 italic
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8059 underline
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8060 strike
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8061 reverse
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8062 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8063
11876
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
8064 term_getcursor({buf}) *term_getcursor()*
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8065 Get the cursor position of terminal {buf}. Returns a list with
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8066 two numbers and a dictionary: [row, col, dict].
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8067
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8068 "row" and "col" are one based, the first screen cell is row
12076
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8069 1, column 1. This is the cursor position of the terminal
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8070 itself, not of the Vim window.
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8071
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8072 "dict" can have these members:
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8073 "visible" one when the cursor is visible, zero when it
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8074 is hidden.
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8075 "blink" one when the cursor is visible, zero when it
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8076 is hidden.
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8077 "shape" 1 for a block cursor, 2 for underline and 3
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8078 for a vertical bar.
11876
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
8079
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
8080 {buf} must be the buffer number of a terminal window. If the
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
8081 buffer does not exist or is not a terminal window, an empty
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
8082 list is returned.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8083 {only available when compiled with the |+terminal| feature}
11876
3704ca24c9a2 patch 8.0.0818: cannot get the cursor position of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11874
diff changeset
8084
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8085 term_getjob({buf}) *term_getjob()*
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8086 Get the Job associated with terminal window {buf}.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8087 {buf} is used as with |term_getsize()|.
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8088 Returns |v:null| when there is no job.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8089 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8090
11904
40322e8f07e7 patch 8.0.0832: terminal function arguments are not consistent
Christian Brabandt <cb@256bit.org>
parents: 11882
diff changeset
8091 term_getline({buf}, {row}) *term_getline()*
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8092 Get a line of text from the terminal window of {buf}.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8093 {buf} is used as with |term_getsize()|.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8094
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8095 The first line has {row} one. When {row} is "." the cursor
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8096 line is used. When {row} is invalid an empty string is
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8097 returned.
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8098 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8099
12025
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8100 term_getscrolled({buf}) *term_getscrolled()*
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8101 Return the number of lines that scrolled to above the top of
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8102 terminal {buf}. This is the offset between the row number
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8103 used for |term_getline()| and |getline()|, so that: >
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8104 term_getline(buf, N)
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8105 < is equal to: >
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8106 `getline(N + term_getscrolled(buf))
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8107 < (if that line exists).
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8108
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8109 {buf} is used as with |term_getsize()|.
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8110 {only available when compiled with the |+terminal| feature}
c0ee48f48a2b patch 8.0.0893: cannot get the scroll count of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 12007
diff changeset
8111
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8112 term_getsize({buf}) *term_getsize()*
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8113 Get the size of terminal {buf}. Returns a list with two
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8114 numbers: [rows, cols]. This is the size of the terminal, not
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8115 the window containing the terminal.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8116
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8117 {buf} must be the buffer number of a terminal window. Use an
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8118 empty string for the current buffer. If the buffer does not
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8119 exist or is not a terminal window, an empty list is returned.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8120 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8121
11882
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8122 term_getstatus({buf}) *term_getstatus()*
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8123 Get the status of terminal {buf}. This returns a comma
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8124 separated list of these items:
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8125 running job is running
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8126 finished job has finished
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8127 normal in Terminal-Normal mode
11882
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8128 One of "running" or "finished" is always present.
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8129
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8130 {buf} must be the buffer number of a terminal window. If the
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8131 buffer does not exist or is not a terminal window, an empty
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8132 string is returned.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8133 {only available when compiled with the |+terminal| feature}
11882
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8134
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8135 term_gettitle({buf}) *term_gettitle()*
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8136 Get the title of terminal {buf}. This is the title that the
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8137 job in the terminal has set.
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8138
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8139 {buf} must be the buffer number of a terminal window. If the
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8140 buffer does not exist or is not a terminal window, an empty
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8141 string is returned.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8142 {only available when compiled with the |+terminal| feature}
11882
69e7379f46db patch 8.0.0821: cannot get the title and status of a terminal window
Christian Brabandt <cb@256bit.org>
parents: 11876
diff changeset
8143
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8144 term_gettty({buf} [, {input}]) *term_gettty()*
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8145 Get the name of the controlling terminal associated with
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8146 terminal window {buf}. {buf} is used as with |term_getsize()|.
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8147
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8148 When {input} is omitted or 0, return the name for writing
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8149 (stdout). When {input} is 1 return the name for reading
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8150 (stdin). On UNIX, both return same name.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8151 {only available when compiled with the |+terminal| feature}
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8152
11874
d444e087b8fd patch 8.0.0817: cannot get the terminal line at the cursor
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
8153 term_list() *term_list()*
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8154 Return a list with the buffer numbers of all buffers for
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8155 terminal windows.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8156 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8157
11904
40322e8f07e7 patch 8.0.0832: terminal function arguments are not consistent
Christian Brabandt <cb@256bit.org>
parents: 11882
diff changeset
8158 term_scrape({buf}, {row}) *term_scrape()*
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8159 Get the contents of {row} of terminal screen of {buf}.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8160 For {buf} see |term_getsize()|.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8161
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8162 The first line has {row} one. When {row} is "." the cursor
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8163 line is used. When {row} is invalid an empty string is
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8164 returned.
11874
d444e087b8fd patch 8.0.0817: cannot get the terminal line at the cursor
Christian Brabandt <cb@256bit.org>
parents: 11846
diff changeset
8165
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
8166 Return a List containing a Dict for each screen cell:
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8167 "chars" character(s) at the cell
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8168 "fg" foreground color as #rrggbb
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8169 "bg" background color as #rrggbb
11933
d033653d3df8 patch 8.0.0846: cannot get the name of the pty of a job
Christian Brabandt <cb@256bit.org>
parents: 11904
diff changeset
8170 "attr" attributes of the cell, use |term_getattr()|
12076
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8171 to get the individual flags
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8172 "width" cell width: 1 or 2
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8173 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8174
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8175 term_sendkeys({buf}, {keys}) *term_sendkeys()*
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8176 Send keystrokes {keys} to terminal {buf}.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8177 {buf} is used as with |term_getsize()|.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8178
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8179 {keys} are translated as key sequences. For example, "\<c-x>"
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8180 means the character CTRL-X.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8181 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8182
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8183 term_setsize({buf}, {expr}) *term_setsize()*
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8184 Not implemented yet.
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8185 {only available when compiled with the |+terminal| feature}
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8186
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8187 term_start({cmd}, {options}) *term_start()*
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8188 Open a terminal window and run {cmd} in it.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8189
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
8190 {cmd} can be a string or a List, like with |job_start()|. The
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
8191 string "NONE" can be used to open a terminal window without
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
8192 starting a job, the pty of the terminal can be used by a
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
8193 command like gdb.
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
8194
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8195 Returns the buffer number of the terminal window. If {cmd}
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8196 cannot be executed the window does open and shows an error
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8197 message.
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8198 If opening the window fails zero is returned.
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8199
11967
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8200 {options} are similar to what is used for |job_start()|, see
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8201 |job-options|. However, not all options can be used. These
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8202 are supported:
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8203 all timeout options
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8204 "stoponexit"
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
8205 "callback", "out_cb", "err_cb"
11967
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8206 "exit_cb", "close_cb"
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8207 "in_io", "in_top", "in_bot", "in_name", "in_buf"
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8208 "out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8209 "err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8210 However, at least one of stdin, stdout or stderr must be
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8211 connected to the terminal. When I/O is connected to the
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8212 terminal then the callback function for that part is not used.
12833414cc02 patch 8.0.0864: cannot specify the name of a terminal
Christian Brabandt <cb@256bit.org>
parents: 11933
diff changeset
8213
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8214 There are extra options:
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
8215 "term_name" name to use for the buffer name, instead
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
8216 of the command name.
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8217 "term_rows" vertical size to use for the terminal,
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8218 instead of using 'termsize'
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8219 "term_cols" horizontal size to use for the terminal,
12076
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8220 instead of using 'termsize'
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8221 "vertical" split the window vertically
12060
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
8222 "curwin" use the current window, do not split the
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
8223 window; fails if the current buffer
a879814b8a37 patch 8.0.0910: cannot create a terminal in the current window
Christian Brabandt <cb@256bit.org>
parents: 12056
diff changeset
8224 cannot be |abandon|ed
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
8225 "hidden" do not open a window
12056
0498547dace0 patch 8.0.0908: cannot set terminal size with options
Christian Brabandt <cb@256bit.org>
parents: 12048
diff changeset
8226 "term_finish" What to do when the job is finished:
12031
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
8227 "close": close any windows
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
8228 "open": open window if needed
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
8229 Note that "open" can be interruptive.
9897241c08b5 patch 8.0.0896: cannot close a terminal window when the job ends
Christian Brabandt <cb@256bit.org>
parents: 12025
diff changeset
8230 See |term++close| and |term++open|.
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
8231 "term_opencmd" command to use for opening the window when
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
8232 "open" is used for "term_finish"; must
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
8233 have "%d" where the buffer number goes,
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
8234 e.g. "10split|buffer %d"; when not
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
8235 specified "botright sbuf %d" is used
12311
66fa8eabbd6e patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12303
diff changeset
8236 "eof_chars" Text to send after all buffer lines were
66fa8eabbd6e patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12303
diff changeset
8237 written to the terminal. When not set
12389
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8238 CTRL-D is used on MS-Windows. For Python
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8239 use CTRL-Z or "exit()". For a shell use
d0cf7f71b95b patch 8.0.1074: ":term NONE" does not work on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 12337
diff changeset
8240 "exit". A CR is always added.
12072
f4e1e1e6886b patch 8.0.0916: cannot specify properties of window for terminal open
Christian Brabandt <cb@256bit.org>
parents: 12060
diff changeset
8241
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8242 {only available when compiled with the |+terminal| feature}
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8243
12007
64b822c4f7ae patch 8.0.0884: can't specify the wait time for term_wait()
Christian Brabandt <cb@256bit.org>
parents: 12003
diff changeset
8244 term_wait({buf} [, {time}]) *term_wait()*
11846
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8245 Wait for pending updates of {buf} to be handled.
1c65cad8b967 patch 8.0.0804: terminal window functions not yet implemented
Christian Brabandt <cb@256bit.org>
parents: 11828
diff changeset
8246 {buf} is used as with |term_getsize()|.
12007
64b822c4f7ae patch 8.0.0884: can't specify the wait time for term_wait()
Christian Brabandt <cb@256bit.org>
parents: 12003
diff changeset
8247 {time} is how long to wait for updates to arrive in msec. If
64b822c4f7ae patch 8.0.0884: can't specify the wait time for term_wait()
Christian Brabandt <cb@256bit.org>
parents: 12003
diff changeset
8248 not set then 10 msec will be used.
12003
6889f1f25d6b patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents: 11995
diff changeset
8249 {only available when compiled with the |+terminal| feature}
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8250
9121
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
8251 test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
8252 This is for testing: If the memory allocation with {id} is
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
8253 called, then decrement {countdown}, and when it reaches zero
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
8254 let memory allocation fail {repeat} times. When {repeat} is
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
8255 smaller than one it fails one time.
7350959e53c3 commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents: 9117
diff changeset
8256
9644
9f7bcc2c3b97 commit https://github.com/vim/vim/commit/6f1d9a096bf22d50c727dca73abbfb8e3ff55176
Christian Brabandt <cb@256bit.org>
parents: 9636
diff changeset
8257 test_autochdir() *test_autochdir()*
9f7bcc2c3b97 commit https://github.com/vim/vim/commit/6f1d9a096bf22d50c727dca73abbfb8e3ff55176
Christian Brabandt <cb@256bit.org>
parents: 9636
diff changeset
8258 Set a flag to enable the effect of 'autochdir' before Vim
9f7bcc2c3b97 commit https://github.com/vim/vim/commit/6f1d9a096bf22d50c727dca73abbfb8e3ff55176
Christian Brabandt <cb@256bit.org>
parents: 9636
diff changeset
8259 startup has finished.
9f7bcc2c3b97 commit https://github.com/vim/vim/commit/6f1d9a096bf22d50c727dca73abbfb8e3ff55176
Christian Brabandt <cb@256bit.org>
parents: 9636
diff changeset
8260
12337
040a892d0eed patch 8.0.1048: no test for what 8.0.1020 fixes
Christian Brabandt <cb@256bit.org>
parents: 12321
diff changeset
8261 test_feedinput({string}) *test_feedinput()*
040a892d0eed patch 8.0.1048: no test for what 8.0.1020 fixes
Christian Brabandt <cb@256bit.org>
parents: 12321
diff changeset
8262 Characters in {string} are queued for processing as if they
040a892d0eed patch 8.0.1048: no test for what 8.0.1020 fixes
Christian Brabandt <cb@256bit.org>
parents: 12321
diff changeset
8263 were typed by the user. This uses a low level input buffer.
040a892d0eed patch 8.0.1048: no test for what 8.0.1020 fixes
Christian Brabandt <cb@256bit.org>
parents: 12321
diff changeset
8264 This function works only when with |+unix| or GUI is running.
040a892d0eed patch 8.0.1048: no test for what 8.0.1020 fixes
Christian Brabandt <cb@256bit.org>
parents: 12321
diff changeset
8265
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8266 test_garbagecollect_now() *test_garbagecollect_now()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8267 Like garbagecollect(), but executed right away. This must
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8268 only be called directly to avoid any structure to exist
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8269 internally, and |v:testing| must have been set before calling
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8270 any function.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8271
11006
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8272 test_ignore_error({expr}) *test_ignore_error()*
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8273 Ignore any error containing {expr}. A normal message is given
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8274 instead.
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8275 This is only meant to be used in tests, where catching the
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8276 error with try/catch cannot be used (because it skips over
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8277 following code).
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8278 {expr} is used literally, not as a pattern.
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8279 There is currently no way to revert this.
b3601a8eb679 patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents: 10908
diff changeset
8280
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8281 test_null_channel() *test_null_channel()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8282 Return a Channel that is null. Only useful for testing.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8283 {only available when compiled with the +channel feature}
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8284
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8285 test_null_dict() *test_null_dict()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8286 Return a Dict that is null. Only useful for testing.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8287
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8288 test_null_job() *test_null_job()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8289 Return a Job that is null. Only useful for testing.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8290 {only available when compiled with the +job feature}
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8291
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8292 test_null_list() *test_null_list()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8293 Return a List that is null. Only useful for testing.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8294
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8295 test_null_partial() *test_null_partial()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8296 Return a Partial that is null. Only useful for testing.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8297
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8298 test_null_string() *test_null_string()*
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8299 Return a String that is null. Only useful for testing.
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8300
11160
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8301 test_override({name}, {val}) *test_override()*
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8302 Overrides certain parts of Vims internal processing to be able
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8303 to run tests. Only to be used for testing Vim!
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8304 The override is enabled when {val} is non-zero and removed
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8305 when {val} is zero.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
8306 Current supported values for name are:
11160
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8307
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8308 name effect when {val} is non-zero ~
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8309 redraw disable the redrawing() function
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8310 char_avail disable the char_avail() function
11587
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8311 starting reset the "starting" variable, see below
11160
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8312 ALL clear all overrides ({val} is not used)
d0a20101ecb2 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11105
diff changeset
8313
11587
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8314 "starting" is to be used when a test should behave like
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8315 startup was done. Since the tests are run by sourcing a
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8316 script the "starting" variable is non-zero. This is usually a
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8317 good thing (tests run faster), but sometimes changes behavior
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8318 in a way that the test doesn't work properly.
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8319 When using: >
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8320 call test_override('starting', 1)
12076
ca4931a20f8c patch 8.0.0918: cannot get terminal window cursor shape or attributes
Christian Brabandt <cb@256bit.org>
parents: 12072
diff changeset
8321 < The value of "starting" is saved. It is restored by: >
11587
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8322 call test_override('starting', 0)
439835c4b7aa patch 8.0.0676: crash when closing quickfix window in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11579
diff changeset
8323
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
8324 test_settime({expr}) *test_settime()*
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
8325 Set the time Vim uses internally. Currently only used for
9686
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
8326 timestamps in the history, as they are used in viminfo, and
8c2553beff0f commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents: 9644
diff changeset
8327 for undo.
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
8328 Using a value of 1 makes Vim not sleep after a warning or
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
8329 error message.
9286
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
8330 {expr} must evaluate to a number. When the value is zero the
64035abb986b commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents: 9223
diff changeset
8331 normal behavior is restored.
9108
d319453f62b3 commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents: 9104
diff changeset
8332
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8333 *timer_info()*
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8334 timer_info([{id}])
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8335 Return a list with information about timers.
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8336 When {id} is given only information about this timer is
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8337 returned. When timer {id} does not exist an empty list is
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8338 returned.
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8339 When {id} is omitted information about all timers is returned.
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8340
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8341 For each timer the information is stored in a Dictionary with
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8342 these items:
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8343 "id" the timer ID
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8344 "time" time the timer was started with
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8345 "remaining" time until the timer fires
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8346 "repeat" number of times the timer will still fire;
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8347 -1 means forever
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8348 "callback" the callback
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8349 "paused" 1 if the timer is paused, 0 otherwise
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8350
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8351 {only available when compiled with the |+timers| feature}
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8352
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8353 timer_pause({timer}, {paused}) *timer_pause()*
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8354 Pause or unpause a timer. A paused timer does not invoke its
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
8355 callback when its time expires. Unpausing a timer may cause
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
8356 the callback to be invoked almost immediately if enough time
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
8357 has passed.
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8358
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8359 Pausing a timer is useful to avoid the callback to be called
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8360 for a short time.
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8361
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8362 If {paused} evaluates to a non-zero Number or a non-empty
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8363 String, then the timer is paused, otherwise it is unpaused.
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8364 See |non-zero-arg|.
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8365
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8366 {only available when compiled with the |+timers| feature}
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8367
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
8368 *timer_start()* *timer* *timers*
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8369 timer_start({time}, {callback} [, {options}])
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8370 Create a timer and return the timer ID.
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8371
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8372 {time} is the waiting time in milliseconds. This is the
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8373 minimum time before invoking the callback. When the system is
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8374 busy or Vim is not waiting for input the time will be longer.
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8375
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8376 {callback} is the function to call. It can be the name of a
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
8377 function or a |Funcref|. It is called with one argument, which
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8378 is the timer ID. The callback is only invoked when Vim is
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8379 waiting for input.
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8380
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8381 {options} is a dictionary. Supported entries:
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8382 "repeat" Number of times to repeat calling the
10153
715d6c5707b8 commit https://github.com/vim/vim/commit/abd468ed0fbcba391e7833feeaa7de3ced841455
Christian Brabandt <cb@256bit.org>
parents: 10140
diff changeset
8383 callback. -1 means forever. When not present
715d6c5707b8 commit https://github.com/vim/vim/commit/abd468ed0fbcba391e7833feeaa7de3ced841455
Christian Brabandt <cb@256bit.org>
parents: 10140
diff changeset
8384 the callback will be called once.
11639
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
8385 If the timer causes an error three times in a
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
8386 row the repeat is cancelled. This avoids that
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
8387 Vim becomes unusable because of all the error
71d7b5ed08a0 patch 8.0.0702: an error in a timer can make Vim unusable
Christian Brabandt <cb@256bit.org>
parents: 11609
diff changeset
8388 messages.
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8389
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8390 Example: >
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8391 func MyHandler(timer)
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8392 echo 'Handler called'
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8393 endfunc
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8394 let timer = timer_start(500, 'MyHandler',
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8395 \ {'repeat': 3})
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8396 < This will invoke MyHandler() three times at 500 msec
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8397 intervals.
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8398
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8399 {only available when compiled with the |+timers| feature}
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
8400
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
8401 timer_stop({timer}) *timer_stop()*
9097
071f9da012fb commit https://github.com/vim/vim/commit/06d2d38ab7564e1f784b1058a4ef4580cd6d1810
Christian Brabandt <cb@256bit.org>
parents: 9076
diff changeset
8402 Stop a timer. The timer callback will no longer be invoked.
071f9da012fb commit https://github.com/vim/vim/commit/06d2d38ab7564e1f784b1058a4ef4580cd6d1810
Christian Brabandt <cb@256bit.org>
parents: 9076
diff changeset
8403 {timer} is an ID returned by timer_start(), thus it must be a
9790
34cc6a101340 commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents: 9737
diff changeset
8404 Number. If {timer} does not exist there is no error.
8669
06848fe9c816 commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents: 8577
diff changeset
8405
9810
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8406 {only available when compiled with the |+timers| feature}
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8407
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8408 timer_stopall() *timer_stopall()*
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8409 Stop all timers. The timer callbacks will no longer be
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8410 invoked. Useful if some timers is misbehaving. If there are
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8411 no timers there is no error.
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8412
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8413 {only available when compiled with the |+timers| feature}
6a28d0c6f929 commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents: 9790
diff changeset
8414
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8415 tolower({expr}) *tolower()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8416 The result is a copy of the String given, with all uppercase
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8417 characters turned into lowercase (just like applying |gu| to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8418 the string).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8419
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8420 toupper({expr}) *toupper()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8421 The result is a copy of the String given, with all lowercase
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8422 characters turned into uppercase (just like applying |gU| to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8423 the string).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8424
15
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8425 tr({src}, {fromstr}, {tostr}) *tr()*
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8426 The result is a copy of the {src} string with all characters
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8427 which appear in {fromstr} replaced by the character in that
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8428 position in the {tostr} string. Thus the first character in
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8429 {fromstr} is translated into the first character in {tostr}
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8430 and so on. Exactly like the unix "tr" command.
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8431 This code also deals with multibyte characters properly.
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8432
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8433 Examples: >
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8434 echo tr("hello there", "ht", "HT")
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8435 < returns "Hello THere" >
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8436 echo tr("<blob>", "<>", "{}")
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8437 < returns "{blob}"
631143ac4a01 updated for version 7.0007
vimboss
parents: 14
diff changeset
8438
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8439 trunc({expr}) *trunc()*
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
8440 Return the largest integral value with magnitude less than or
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8441 equal to {expr} as a |Float| (truncate towards zero).
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8442 {expr} must evaluate to a |Float| or a |Number|.
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8443 Examples: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8444 echo trunc(1.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8445 < 1.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8446 echo trunc(-5.456)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8447 < -5.0 >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8448 echo trunc(4.0)
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8449 < 4.0
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8450 {only available when compiled with the |+float| feature}
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
8451
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
8452 *type()*
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8453 type({expr}) The result is a Number representing the type of {expr}.
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8454 Instead of using the number directly, it is better to use the
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8455 v:t_ variable that has the value:
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8456 Number: 0 |v:t_number|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8457 String: 1 |v:t_string|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8458 Funcref: 2 |v:t_func|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8459 List: 3 |v:t_list|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8460 Dictionary: 4 |v:t_dict|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8461 Float: 5 |v:t_float|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8462 Boolean: 6 |v:t_bool| (v:false and v:true)
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8463 None 7 |v:t_none| (v:null and v:none)
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8464 Job 8 |v:t_job|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8465 Channel 9 |v:t_channel|
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8466 For backward compatibility, this method can be used: >
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
8467 :if type(myvar) == type(0)
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
8468 :if type(myvar) == type("")
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
8469 :if type(myvar) == type(function("tr"))
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
8470 :if type(myvar) == type([])
153
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
8471 :if type(myvar) == type({})
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8472 :if type(myvar) == type(0.0)
7742
5f6f35a3cb12 commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents: 7712
diff changeset
8473 :if type(myvar) == type(v:false)
8031
ece323e2b57f commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents: 8019
diff changeset
8474 :if type(myvar) == type(v:none)
9626
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8475 < To check if the v:t_ variables exist use this: >
172131507c85 commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents: 9587
diff changeset
8476 :if exists('v:t_number')
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8477
2236
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8478 undofile({name}) *undofile()*
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8479 Return the name of the undo file that would be used for a file
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8480 with name {name} when writing. This uses the 'undodir'
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8481 option, finding directories that exist. It does not check if
2250
1bac28a53fae Add the conceal patch from Vince Negri.
Bram Moolenaar <bram@vim.org>
parents: 2249
diff changeset
8482 the undo file exists.
2249
6d3d35ff2c2b Use full path in undofile(). Updated docs.
Bram Moolenaar <bram@vim.org>
parents: 2236
diff changeset
8483 {name} is always expanded to the full path, since that is what
6d3d35ff2c2b Use full path in undofile(). Updated docs.
Bram Moolenaar <bram@vim.org>
parents: 2236
diff changeset
8484 is used internally.
3507
8201108e9cf0 More runtime file fixes for 'compatible' mode.
Bram Moolenaar <bram@vim.org>
parents: 3492
diff changeset
8485 If {name} is empty undofile() returns an empty string, since a
8201108e9cf0 More runtime file fixes for 'compatible' mode.
Bram Moolenaar <bram@vim.org>
parents: 3492
diff changeset
8486 buffer without a file name will not write an undo file.
2236
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8487 Useful in combination with |:wundo| and |:rundo|.
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8488 When compiled without the +persistent_undo option this always
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8489 returns an empty string.
dc2e5ec0500d Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2226
diff changeset
8490
2280
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8491 undotree() *undotree()*
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8492 Return the current state of the undo tree in a dictionary with
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8493 the following items:
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8494 "seq_last" The highest undo sequence number used.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8495 "seq_cur" The sequence number of the current position in
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8496 the undo tree. This differs from "seq_last"
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8497 when some changes were undone.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8498 "time_cur" Time last used for |:earlier| and related
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8499 commands. Use |strftime()| to convert to
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8500 something readable.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8501 "save_last" Number of the last file write. Zero when no
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8502 write yet.
2281
e41433ea71df Added ":earlier 1f" and ":later 1f".
Bram Moolenaar <bram@vim.org>
parents: 2280
diff changeset
8503 "save_cur" Number of the current position in the undo
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
8504 tree.
2280
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8505 "synced" Non-zero when the last undo block was synced.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8506 This happens when waiting from input from the
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8507 user. See |undo-blocks|.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8508 "entries" A list of dictionaries with information about
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8509 undo blocks.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8510
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8511 The first item in the "entries" list is the oldest undo item.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8512 Each List item is a Dictionary with these items:
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8513 "seq" Undo sequence number. Same as what appears in
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8514 |:undolist|.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8515 "time" Timestamp when the change happened. Use
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8516 |strftime()| to convert to something readable.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8517 "newhead" Only appears in the item that is the last one
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8518 that was added. This marks the last change
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8519 and where further changes will be added.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8520 "curhead" Only appears in the item that is the last one
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8521 that was undone. This marks the current
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8522 position in the undo tree, the block that will
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8523 be used by a redo command. When nothing was
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8524 undone after the last change this item will
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8525 not appear anywhere.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8526 "save" Only appears on the last block before a file
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8527 write. The number is the write count. The
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8528 first write has number 1, the last one the
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8529 "save_last" mentioned above.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8530 "alt" Alternate entry. This is again a List of undo
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8531 blocks. Each item may again have an "alt"
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8532 item.
941ff1cd317a Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents: 2252
diff changeset
8533
5747
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8534 uniq({list} [, {func} [, {dict}]]) *uniq()* *E882*
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8535 Remove second and succeeding copies of repeated adjacent
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8536 {list} items in-place. Returns {list}. If you want a list
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8537 to remain unmodified make a copy first: >
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8538 :let newlist = uniq(copy(mylist))
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8539 < The default compare function uses the string representation of
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8540 each item. For the use of {func} and {dict} see |sort()|.
ddc3f32a4b21 updated for version 7.4.218
Bram Moolenaar <bram@vim.org>
parents: 5734
diff changeset
8541
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
8542 values({dict}) *values()*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
8543 Return a |List| with all the values of {dict}. The |List| is
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
8544 in arbitrary order.
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
8545
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
8546
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8547 virtcol({expr}) *virtcol()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8548 The result is a Number, which is the screen column of the file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8549 position given with {expr}. That is, the last screen position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8550 occupied by the character at that position, when the screen
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8551 would be of unlimited width. When there is a <Tab> at the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8552 position, the returned Number will be the column at the end of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8553 the <Tab>. For example, for a <Tab> in column 1, with 'ts'
3445
2cfb68fa26cd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3410
diff changeset
8554 set to 8, it returns 8. |conceal| is ignored.
1317
45bae37de037 updated for version 7.1-031
vimboss
parents: 1293
diff changeset
8555 For the byte position use |col()|.
45bae37de037 updated for version 7.1-031
vimboss
parents: 1293
diff changeset
8556 For the use of {expr} see |col()|.
45bae37de037 updated for version 7.1-031
vimboss
parents: 1293
diff changeset
8557 When 'virtualedit' is used {expr} can be [lnum, col, off], where
703
2fae45239fb3 updated for version 7.0212
vimboss
parents: 697
diff changeset
8558 "off" is the offset in screen columns from the start of the
1266
54588e2e8041 updated for version 7.1
vimboss
parents: 1215
diff changeset
8559 character. E.g., a position within a <Tab> or after the last
2965
f2de38a019a2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2908
diff changeset
8560 character. When "off" is omitted zero is used.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8561 When Virtual editing is active in the current mode, a position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8562 beyond the end of the line can be returned. |'virtualedit'|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8563 The accepted positions are:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8564 . the cursor position
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8565 $ the end of the cursor line (the result is the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8566 number of displayed characters in the cursor line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8567 plus one)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8568 'x position of mark x (if the mark is not set, 0 is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8569 returned)
6447
0550be8fc7f6 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
8570 v In Visual mode: the start of the Visual area (the
0550be8fc7f6 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
8571 cursor is the end). When not in Visual mode
0550be8fc7f6 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
8572 returns the cursor position. Differs from |'<| in
0550be8fc7f6 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6421
diff changeset
8573 that it's updated right away.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8574 Note that only marks in the current file can be used.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8575 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8576 virtcol(".") with text "foo^Lbar", with cursor on the "^L", returns 5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8577 virtcol("$") with text "foo^Lbar", returns 9
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8578 virtcol("'t") with text " there", with 't at 'h', returns 6
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
8579 < The first column is 1. 0 is returned for an error.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8580 A more advanced example that echoes the maximum length of
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8581 all lines: >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8582 echo max(map(range(1, line('$')), "virtcol([v:val, '$'])"))
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8583
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8584
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8585 visualmode([expr]) *visualmode()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8586 The result is a String, which describes the last Visual mode
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
8587 used in the current buffer. Initially it returns an empty
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
8588 string, but once Visual mode has been used, it returns "v",
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
8589 "V", or "<CTRL-V>" (a single CTRL-V character) for
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
8590 character-wise, line-wise, or block-wise Visual mode
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
8591 respectively.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8592 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8593 :exe "normal " . visualmode()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8594 < This enters the same Visual mode as before. It is also useful
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8595 in scripts if you wish to act differently depending on the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8596 Visual mode that was used.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8597 If Visual mode is active, use |mode()| to get the Visual mode
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8598 (e.g., in a |:vmap|).
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
8599 If [expr] is supplied and it evaluates to a non-zero Number or
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
8600 a non-empty String, then the Visual mode will be cleared and
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
8601 the old value is returned. See |non-zero-arg|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8602
4151
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8603 wildmenumode() *wildmenumode()*
9422
f93704b11e43 commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents: 9416
diff changeset
8604 Returns |TRUE| when the wildmenu is active and |FALSE|
4151
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8605 otherwise. See 'wildmenu' and 'wildmode'.
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8606 This can be used in mappings to handle the 'wildcharm' option
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8607 gracefully. (Makes only sense with |mapmode-c| mappings).
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8608
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8609 For example to make <c-j> work like <down> in wildmode, use: >
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8610 :cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>"
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8611 <
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8612 (Note, this needs the 'wildcharm' option set appropriately).
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8613
13170a796134 updated for version 7.3.828
Bram Moolenaar <bram@vim.org>
parents: 4126
diff changeset
8614
8536
09041d2fd7d0 commit https://github.com/vim/vim/commit/9cdf86b86f5fdb5a45b682f336846f9d9a9c6f1f
Christian Brabandt <cb@256bit.org>
parents: 8534
diff changeset
8615 win_findbuf({bufnr}) *win_findbuf()*
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
8616 Returns a list with |window-ID|s for windows that contain
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
8617 buffer {bufnr}. When there is none the list is empty.
8536
09041d2fd7d0 commit https://github.com/vim/vim/commit/9cdf86b86f5fdb5a45b682f336846f9d9a9c6f1f
Christian Brabandt <cb@256bit.org>
parents: 8534
diff changeset
8618
8534
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8619 win_getid([{win} [, {tab}]]) *win_getid()*
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
8620 Get the |window-ID| for the specified window.
8534
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8621 When {win} is missing use the current window.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8622 With {win} this is the window number. The top window has
12427
fc3e2d5614dd patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents: 12389
diff changeset
8623 number 1. Use `win_getid(winnr())` for the current window.
8534
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8624 Without {tab} use the current tab, otherwise the tab with
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8625 number {tab}. The first tab has number one.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8626 Return zero if the window cannot be found.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8627
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8628 win_gotoid({expr}) *win_gotoid()*
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8629 Go to window with ID {expr}. This may also change the current
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8630 tabpage.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8631 Return 1 if successful, 0 if the window cannot be found.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8632
8876
47f17f66da3d commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents: 8831
diff changeset
8633 win_id2tabwin({expr}) *win_id2tabwin()*
8534
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8634 Return a list with the tab number and window number of window
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8635 with ID {expr}: [tabnr, winnr].
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8636 Return [0, 0] if the window cannot be found.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8637
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8638 win_id2win({expr}) *win_id2win()*
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8639 Return the window number of window with ID {expr}.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8640 Return 0 if the window cannot be found in the current tabpage.
485d4d8a97f6 commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents: 8512
diff changeset
8641
12977
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8642 win_screenpos({nr}) *win_screenpos()*
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8643 Return the screen position of window {nr} as a list with two
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8644 numbers: [row, col]. The first window always has position
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8645 [1, 1].
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8646 {nr} can be the window number or the |window-ID|.
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8647 Return [0, 0] if the window cannot be found in the current
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8648 tabpage.
2d817fd289ba patch 8.0.1364: there is no easy way to get the window position
Christian Brabandt <cb@256bit.org>
parents: 12968
diff changeset
8649
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8650 *winbufnr()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8651 winbufnr({nr}) The result is a Number, which is the number of the buffer
9223
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
8652 associated with window {nr}. {nr} can be the window number or
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
8653 the |window-ID|.
9223
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
8654 When {nr} is zero, the number of the buffer in the current
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
8655 window is returned.
6c4d610fce0a commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents: 9221
diff changeset
8656 When window {nr} doesn't exist, -1 is returned.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8657 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8658 :echo "The file in the current window is " . bufname(winbufnr(0))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8659 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8660 *wincol()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8661 wincol() The result is a Number, which is the virtual column of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8662 cursor in the window. This is counting screen cells from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8663 left side of the window. The leftmost column is one.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8664
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8665 winheight({nr}) *winheight()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8666 The result is a Number, which is the height of window {nr}.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
8667 {nr} can be the window number or the |window-ID|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8668 When {nr} is zero, the height of the current window is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8669 returned. When window {nr} doesn't exist, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8670 An existing window always has a height of zero or more.
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
8671 This excludes any window toolbar line.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8672 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8673 :echo "The current window has " . winheight(0) . " lines."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8674 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8675 *winline()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8676 winline() The result is a Number, which is the screen line of the cursor
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
8677 in the window. This is counting screen lines from the top of
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8678 the window. The first line is one.
531
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
8679 If the cursor was moved the view on the file will be updated
da9142bd190a updated for version 7.0149
vimboss
parents: 530
diff changeset
8680 first, this may cause a scroll.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8681
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8682 *winnr()*
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
8683 winnr([{arg}]) The result is a Number, which is the number of the current
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
8684 window. The top window has number 1.
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
8685 When the optional argument is "$", the number of the
3967
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
8686 last window is returned (the window count). >
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
8687 let window_count = winnr('$')
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
8688 < When the optional argument is "#", the number of the last
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
8689 accessed window is returned (where |CTRL-W_p| goes to).
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8690 If there is no previous window or it is in another tab page 0
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8691 is returned.
20
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
8692 The number can be used with |CTRL-W_w| and ":wincmd w"
4ac1dce8dd5e updated for version 7.0012
vimboss
parents: 19
diff changeset
8693 |:wincmd|.
10734
523cd59d6db0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10730
diff changeset
8694 Also see |tabpagewinnr()| and |win_getid()|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8695
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8696 *winrestcmd()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8697 winrestcmd() Returns a sequence of |:resize| commands that should restore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8698 the current window sizes. Only works properly when no windows
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8699 are opened or closed and the current window and tab page is
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8700 unchanged.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8701 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8702 :let cmd = winrestcmd()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8703 :call MessWithWindowSizes()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8704 :exe cmd
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8705 <
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8706 *winrestview()*
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8707 winrestview({dict})
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8708 Uses the |Dictionary| returned by |winsaveview()| to restore
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8709 the view of the current window.
5940
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8710 Note: The {dict} does not have to contain all values, that are
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8711 returned by |winsaveview()|. If values are missing, those
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8712 settings won't be restored. So you can use: >
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8713 :call winrestview({'curswant': 4})
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8714 <
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8715 This will only set the curswant value (the column the cursor
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8716 wants to move on vertical movements) of the cursor to column 5
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8717 (yes, that is 5), while all other settings will remain the
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8718 same. This is useful, if you set the cursor position manually.
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8719
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8720 If you have changed the values the result is unpredictable.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8721 If the window size changed the result won't be the same.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8722
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8723 *winsaveview()*
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8724 winsaveview() Returns a |Dictionary| that contains information to restore
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8725 the view of the current window. Use |winrestview()| to
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8726 restore the view.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8727 This is useful if you have a mapping that jumps around in the
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8728 buffer and you want to go back to the original view.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8729 This does not save fold information. Use the 'foldenable'
798
95dac6af3b3a updated for version 7.0232
vimboss
parents: 794
diff changeset
8730 option to temporarily switch off folding, so that folds are
6070
32a77cc160d9 Update runtime files. Make matchparen plugin backwards compatible.
Bram Moolenaar <bram@vim.org>
parents: 6051
diff changeset
8731 not opened when moving around. This may have side effects.
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8732 The return value includes:
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8733 lnum cursor line number
5940
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8734 col cursor column (Note: the first column
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8735 zero, as opposed to what getpos()
f6f754304324 updated for version 7.4.311
Bram Moolenaar <bram@vim.org>
parents: 5938
diff changeset
8736 returns)
712
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8737 coladd cursor column offset for 'virtualedit'
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8738 curswant column for vertical movement
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8739 topline first line in the window
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8740 topfill filler lines, only in diff mode
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8741 leftcol first column displayed
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8742 skipcol columns skipped
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8743 Note that no option values are saved.
2e887dfa8917 updated for version 7.0214
vimboss
parents: 707
diff changeset
8744
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8745
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8746 winwidth({nr}) *winwidth()*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8747 The result is a Number, which is the width of window {nr}.
9908
2b6654519a7c commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents: 9904
diff changeset
8748 {nr} can be the window number or the |window-ID|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8749 When {nr} is zero, the width of the current window is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8750 returned. When window {nr} doesn't exist, -1 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8751 An existing window always has a width of zero or more.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8752 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8753 :echo "The current window has " . winwidth(0) . " columns."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8754 :if winwidth(0) <= 50
12857
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8755 : 50 wincmd |
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8756 :endif
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
8757 < For getting the terminal or screen size, see the 'columns'
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
8758 option.
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
8759
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
8760
7480
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8761 wordcount() *wordcount()*
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8762 The result is a dictionary of byte/chars/word statistics for
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8763 the current buffer. This is the same info as provided by
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8764 |g_CTRL-G|
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8765 The return value includes:
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8766 bytes Number of bytes in the buffer
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8767 chars Number of chars in the buffer
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8768 words Number of words in the buffer
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8769 cursor_bytes Number of bytes before cursor position
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8770 (not in Visual mode)
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8771 cursor_chars Number of chars before cursor position
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8772 (not in Visual mode)
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8773 cursor_words Number of words before cursor position
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8774 (not in Visual mode)
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8775 visual_bytes Number of bytes visually selected
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
8776 (only in Visual mode)
7480
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8777 visual_chars Number of chars visually selected
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
8778 (only in Visual mode)
12254
8d76a56861ec Update runtime files
Christian Brabandt <cb@256bit.org>
parents: 12252
diff changeset
8779 visual_words Number of words visually selected
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
8780 (only in Visual mode)
7480
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8781
a49163681559 commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents: 7477
diff changeset
8782
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8783 *writefile()*
6341
094a87e76155 updated for version 7.4.503
Bram Moolenaar <bram@vim.org>
parents: 6259
diff changeset
8784 writefile({list}, {fname} [, {flags}])
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
8785 Write |List| {list} to file {fname}. Each list item is
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8786 separated with a NL. Each list item must be a String or
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8787 Number.
6341
094a87e76155 updated for version 7.4.503
Bram Moolenaar <bram@vim.org>
parents: 6259
diff changeset
8788 When {flags} contains "b" then binary mode is used: There will
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8789 not be a NL after the last list item. An empty item at the
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8790 end does cause the last line in the file to end in a NL.
6341
094a87e76155 updated for version 7.4.503
Bram Moolenaar <bram@vim.org>
parents: 6259
diff changeset
8791
094a87e76155 updated for version 7.4.503
Bram Moolenaar <bram@vim.org>
parents: 6259
diff changeset
8792 When {flags} contains "a" then append mode is used, lines are
10301
07d2b5a3b7cc commit https://github.com/vim/vim/commit/46fceaaa8d1447a9588736d86eb4908214187b08
Christian Brabandt <cb@256bit.org>
parents: 10275
diff changeset
8793 appended to the file: >
6341
094a87e76155 updated for version 7.4.503
Bram Moolenaar <bram@vim.org>
parents: 6259
diff changeset
8794 :call writefile(["foo"], "event.log", "a")
094a87e76155 updated for version 7.4.503
Bram Moolenaar <bram@vim.org>
parents: 6259
diff changeset
8795 :call writefile(["bar"], "event.log", "a")
12857
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8796 <
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8797 When {flags} contains "s" then fsync() is called after writing
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8798 the file. This flushes the file to disk, if possible. This
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8799 takes more time but avoids losing the file if the system
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8800 crashes.
13016
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
8801 When {flags} does not contain "S" or "s" then fsync() is
e47e70300f30 patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents: 12977
diff changeset
8802 called if the 'fsync' option is set.
12857
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8803 When {flags} contains "S" then fsync() is not called, even
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8804 when 'fsync' is set.
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8805
ffdf2e4b5d9a patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents: 12837
diff changeset
8806 All NL characters are replaced with a NUL character.
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8807 Inserting CR characters needs to be done before passing {list}
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8808 to writefile().
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8809 An existing file is overwritten, if possible.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8810 When the write fails -1 is returned, otherwise 0. There is an
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8811 error message if the file can't be created or when writing
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8812 fails.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8813 Also see |readfile()|.
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8814 To copy a file byte for byte: >
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8815 :let fl = readfile("foo", "b")
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
8816 :call writefile(fl, "foocopy", "b")
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8817
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8818
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8819 xor({expr}, {expr}) *xor()*
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8820 Bitwise XOR on the two arguments. The arguments are converted
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8821 to a number. A List, Dict or Float argument causes an error.
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8822 Example: >
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8823 :let bits = xor(bits, 0x80)
3256
ba708ee8d69d Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3237
diff changeset
8824 <
3214
cd145cc2f2c9 updated for version 7.3.377
Bram Moolenaar <bram@vim.org>
parents: 3153
diff changeset
8825
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8826
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8827 *feature-list*
6009
7b83c190d370 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6007
diff changeset
8828 There are four types of features:
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8829 1. Features that are only supported when they have been enabled when Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8830 was compiled |+feature-list|. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8831 :if has("cindent")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8832 2. Features that are only supported when certain conditions have been met.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8833 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8834 :if has("gui_running")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8835 < *has-patch*
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8836 3. Included patches. The "patch123" feature means that patch 123 has been
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8837 included. Note that this form does not check the version of Vim, you need
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8838 to inspect |v:version| for that.
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8839 Example (checking version 6.2.148 or later): >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8840 :if v:version > 602 || v:version == 602 && has("patch148")
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8841 < Note that it's possible for patch 147 to be omitted even though 148 is
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8842 included.
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8843
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8844 4. Beyond a certain version or at a certain version and including a specific
5862
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
8845 patch. The "patch-7.4.237" feature means that the Vim version is 7.5 or
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
8846 later, or it is version 7.4 and patch 237 was included.
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
8847 Note that this only works for patch 7.4.237 and later, before that you
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
8848 need to use the example above that checks v:version. Example: >
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
8849 :if has("patch-7.4.248")
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
8850 < Note that it's possible for patch 147 to be omitted even though 148 is
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
8851 included.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8852
9850
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
8853 Hint: To find out if Vim supports backslashes in a file name (MS-Windows),
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
8854 use: `if exists('+shellslash')`
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
8855
67781bb0a61a commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents: 9810
diff changeset
8856
5340
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
8857 acl Compiled with |ACL| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8858 all_builtin_terms Compiled with all builtin terminals enabled.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8859 amiga Amiga version of Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8860 arabic Compiled with Arabic support |Arabic|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8861 arp Compiled with ARP support (Amiga).
613
53114ef7778f updated for version 7.0174
vimboss
parents: 593
diff changeset
8862 autocmd Compiled with autocommand support. |autocommand|
12837
963cdeb42c41 patch 8.0.1295: cannot automatically get a server name in a terminal
Christian Brabandt <cb@256bit.org>
parents: 12785
diff changeset
8863 autoservername Automatically enable |clientserver|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8864 balloon_eval Compiled with |balloon-eval| support.
435
73f016dbb279 updated for version 7.0112
vimboss
parents: 419
diff changeset
8865 balloon_multiline GUI supports multiline balloons.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8866 beos BeOS version of Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8867 browse Compiled with |:browse| support, and browse() will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8868 work.
3682
11d40fc82f11 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3513
diff changeset
8869 browsefilter Compiled with support for |browsefilter|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8870 builtin_terms Compiled with some builtin terminals.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8871 byte_offset Compiled with support for 'o' in 'statusline'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8872 cindent Compiled with 'cindent' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8873 clientserver Compiled with remote invocation support |clientserver|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8874 clipboard Compiled with 'clipboard' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8875 cmdline_compl Compiled with |cmdline-completion| support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8876 cmdline_hist Compiled with |cmdline-history| support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8877 cmdline_info Compiled with 'showcmd' and 'ruler' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8878 comments Compiled with |'comments'| support.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
8879 compatible Compiled to be very Vi compatible.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8880 cryptv Compiled with encryption support |encryption|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8881 cscope Compiled with |cscope| support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8882 debug Compiled with "DEBUG" defined.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8883 dialog_con Compiled with console dialog support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8884 dialog_gui Compiled with GUI dialog support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8885 diff Compiled with |vimdiff| and 'diff' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8886 digraphs Compiled with support for digraphs.
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
8887 directx Compiled with support for DirectX and 'renderoptions'.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8888 dnd Compiled with support for the "~ register |quote_~|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8889 ebcdic Compiled on a machine with ebcdic character set.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8890 emacs_tags Compiled with support for Emacs tags.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8891 eval Compiled with expression evaluation support. Always
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8892 true, of course!
7876
93f747af7b58 commit https://github.com/vim/vim/commit/5e9b2fa9bb0e6061cf18457c173cd141a5dc9c92
Christian Brabandt <cb@256bit.org>
parents: 7788
diff changeset
8893 ex_extra |+ex_extra|, always true now
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8894 extra_search Compiled with support for |'incsearch'| and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8895 |'hlsearch'|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8896 farsi Compiled with Farsi support |farsi|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8897 file_in_path Compiled with support for |gf| and |<cfile>|
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
8898 filterpipe When 'shelltemp' is off pipes are used for shell
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
8899 read/write/filter commands
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8900 find_in_path Compiled with support for include file searches
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8901 |+find_in_path|.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8902 float Compiled with support for |Float|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8903 fname_case Case in file names matters (for Amiga, MS-DOS, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8904 Windows this is not present).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8905 folding Compiled with |folding| support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8906 footer Compiled with GUI footer support. |gui-footer|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8907 fork Compiled to use fork()/exec() instead of system().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8908 gettext Compiled with message translation |multi-lang|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8909 gui Compiled with GUI enabled.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8910 gui_athena Compiled with Athena GUI.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
8911 gui_gnome Compiled with Gnome support (gui_gtk is also defined).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8912 gui_gtk Compiled with GTK+ GUI (any version).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8913 gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined).
8218
3456e2ebebd4 commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents: 8178
diff changeset
8914 gui_gtk3 Compiled with GTK+ 3 GUI (gui_gtk is also defined).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8915 gui_mac Compiled with Macintosh GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8916 gui_motif Compiled with Motif GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8917 gui_photon Compiled with Photon GUI.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
8918 gui_running Vim is running in the GUI, or it will start soon.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8919 gui_win32 Compiled with MS Windows Win32 GUI.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8920 gui_win32s idem, and Win32s system being used (Windows 3.1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8921 hangul_input Compiled with Hangul input support. |hangul|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8922 iconv Can use iconv() for conversion.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8923 insert_expand Compiled with support for CTRL-X expansion commands in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8924 Insert mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8925 jumplist Compiled with |jumplist| support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8926 keymap Compiled with 'keymap' support.
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
8927 lambda Compiled with |lambda| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8928 langmap Compiled with 'langmap' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8929 libcall Compiled with |libcall()| support.
5995
ef83b423ebf7 updated for version 7.4.338
Bram Moolenaar <bram@vim.org>
parents: 5979
diff changeset
8930 linebreak Compiled with 'linebreak', 'breakat', 'showbreak' and
ef83b423ebf7 updated for version 7.4.338
Bram Moolenaar <bram@vim.org>
parents: 5979
diff changeset
8931 'breakindent' support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8932 lispindent Compiled with support for lisp indenting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8933 listcmds Compiled with commands for the buffer list |:files|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8934 and the argument list |arglist|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8935 localmap Compiled with local mappings and abbr. |:map-local|
2320
966a5609669e Added Lua interfae. (Luis Carvalho)
Bram Moolenaar <bram@vim.org>
parents: 2290
diff changeset
8936 lua Compiled with Lua interface |Lua|.
12716
351cf7c67bbe patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents: 12632
diff changeset
8937 mac Any Macintosh version of Vim cf. osx
351cf7c67bbe patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents: 12632
diff changeset
8938 macunix Synonym for osxdarwin
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8939 menu Compiled with support for |:menu|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8940 mksession Compiled with support for |:mksession|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8941 modify_fname Compiled with file name modifiers. |filename-modifiers|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8942 mouse Compiled with support mouse.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8943 mouse_dec Compiled with support for Dec terminal mouse.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8944 mouse_gpm Compiled with support for gpm (Linux console mouse)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8945 mouse_netterm Compiled with support for netterm mouse.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8946 mouse_pterm Compiled with support for qnx pterm mouse.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
8947 mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse)
3750
536aa8b0c934 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3682
diff changeset
8948 mouse_sgr Compiled with support for sgr mouse.
3224
8b8ef1fed009 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3214
diff changeset
8949 mouse_urxvt Compiled with support for urxvt mouse.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8950 mouse_xterm Compiled with support for xterm mouse.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
8951 mouseshape Compiled with support for 'mouseshape'.
1768
2a11407a5a8f updated for version 7.2-066
vimboss
parents: 1755
diff changeset
8952 multi_byte Compiled with support for 'encoding'
2a11407a5a8f updated for version 7.2-066
vimboss
parents: 1755
diff changeset
8953 multi_byte_encoding 'encoding' is set to a multi-byte encoding.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8954 multi_byte_ime Compiled with support for IME input method.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8955 multi_lang Compiled with support for multiple languages.
14
946da5994c01 updated for version 7.0006
vimboss
parents: 11
diff changeset
8956 mzscheme Compiled with MzScheme interface |mzscheme|.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
8957 netbeans_enabled Compiled with support for |netbeans| and connected.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8958 netbeans_intg Compiled with support for |netbeans|.
9389
32e34e574716 commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents: 9344
diff changeset
8959 num64 Compiled with 64-bit |Number| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8960 ole Compiled with OLE automation support for Win32.
12716
351cf7c67bbe patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents: 12632
diff changeset
8961 osx Compiled for macOS cf. mac
351cf7c67bbe patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents: 12632
diff changeset
8962 osxdarwin Compiled for macOS, with |mac-darwin-feature|
9076
9305a1251e51 commit https://github.com/vim/vim/commit/91c4937be15b0b743b6bc495df602c1abbff6b87
Christian Brabandt <cb@256bit.org>
parents: 9041
diff changeset
8963 packages Compiled with |packages| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8964 path_extra Compiled with up/downwards search in 'path' and 'tags'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8965 perl Compiled with Perl interface.
2214
f8222d1f9a73 Included patch for persistent undo. Lots of changes and added test.
Bram Moolenaar <bram@vim.org>
parents: 2210
diff changeset
8966 persistent_undo Compiled with support for persistent undo history.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8967 postscript Compiled with PostScript file printing.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8968 printer Compiled with |:hardcopy| support.
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
8969 profile Compiled with |:profile| support.
2826
3c7da93eb7f9 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2725
diff changeset
8970 python Compiled with Python 2.x interface. |has-python|
3c7da93eb7f9 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2725
diff changeset
8971 python3 Compiled with Python 3.x interface. |has-python|
10722
7598ce51bf2a patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents: 10617
diff changeset
8972 pythonx Compiled with |python_x| interface. |has-pythonx|
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8973 qnx QNX version of Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8974 quickfix Compiled with |quickfix| support.
857
b933657f7c9d updated for version 7.0g01
vimboss
parents: 856
diff changeset
8975 reltime Compiled with |reltime()| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8976 rightleft Compiled with 'rightleft' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8977 ruby Compiled with Ruby interface |ruby|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8978 scrollbind Compiled with 'scrollbind' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8979 showcmd Compiled with 'showcmd' support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8980 signs Compiled with |:sign| support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8981 smartindent Compiled with 'smartindent' support.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
8982 spell Compiled with spell checking support |spell|.
1989
1fbbe04a950f updated for version 7.2-286
vimboss
parents: 1851
diff changeset
8983 startuptime Compiled with |--startuptime| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8984 statusline Compiled with support for 'statusline', 'rulerformat'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8985 and special formats of 'titlestring' and 'iconstring'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8986 sun_workshop Compiled with support for Sun |workshop|.
314
529f887b5cb7 updated for version 7.0082
vimboss
parents: 303
diff changeset
8987 syntax Compiled with syntax highlighting support |syntax|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8988 syntax_items There are active syntax highlighting items for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8989 current buffer.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8990 system Compiled to use system() instead of fork()/exec().
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8991 tag_binary Compiled with binary searching in tags files
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8992 |tag-binary-search|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8993 tag_old_static Compiled with support for old static tags
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8994 |tag-old-static|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8995 tag_any_white Compiled with support for any white characters in tags
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8996 files |tag-any-white|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8997 tcl Compiled with Tcl interface.
9076
9305a1251e51 commit https://github.com/vim/vim/commit/91c4937be15b0b743b6bc495df602c1abbff6b87
Christian Brabandt <cb@256bit.org>
parents: 9041
diff changeset
8998 termguicolors Compiled with true color in terminal support.
11904
40322e8f07e7 patch 8.0.0832: terminal function arguments are not consistent
Christian Brabandt <cb@256bit.org>
parents: 11882
diff changeset
8999 terminal Compiled with |terminal| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9000 terminfo Compiled with terminfo instead of termcap.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9001 termresponse Compiled with support for |t_RV| and |v:termresponse|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9002 textobjects Compiled with support for |text-objects|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9003 tgetent Compiled with tgetent support, able to use a termcap
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9004 or terminfo file.
8577
63dc856bd13d commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents: 8538
diff changeset
9005 timers Compiled with |timer_start()| support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9006 title Compiled with window title support |'title'|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9007 toolbar Compiled with support for |gui-toolbar|.
10404
65e0537a4560 commit https://github.com/vim/vim/commit/2cab0e191055a8145ccd46cd52869fbb9798b971
Christian Brabandt <cb@256bit.org>
parents: 10348
diff changeset
9008 ttyin input is a terminal (tty)
65e0537a4560 commit https://github.com/vim/vim/commit/2cab0e191055a8145ccd46cd52869fbb9798b971
Christian Brabandt <cb@256bit.org>
parents: 10348
diff changeset
9009 ttyout output is a terminal (tty)
12499
d91cf2e26ef0 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12465
diff changeset
9010 unix Unix version of Vim. *+unix*
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
9011 unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9012 user_commands User-defined commands.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
9013 vertsplit Compiled with vertically split windows |:vsplit|.
2581
e8a482a7fa6c Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2577
diff changeset
9014 vim_starting True while initial source'ing takes place. |startup|
8748
b1a19a2f73f0 commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
9015 *vim_starting*
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
9016 viminfo Compiled with viminfo support.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9017 virtualedit Compiled with 'virtualedit' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9018 visual Compiled with Visual mode.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9019 visualextra Compiled with extra Visual mode commands.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9020 |blockwise-operators|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9021 vms VMS version of Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9022 vreplace Compiled with |gR| and |gr| commands.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9023 wildignore Compiled with 'wildignore' option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9024 wildmenu Compiled with 'wildmenu' option.
2698
b6471224d2af Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2681
diff changeset
9025 win32 Win32 version of Vim (MS-Windows 95 and later, 32 or
b6471224d2af Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents: 2681
diff changeset
9026 64 bits)
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
9027 win32unix Win32 version of Vim, using Unix files (Cygwin)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9028 win64 Win64 version of Vim (MS-Windows 64 bit).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9029 win95 Win32 version for MS-Windows 95/98/ME.
2681
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
9030 winaltkeys Compiled with 'winaltkeys' option.
85c5a72551e2 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2662
diff changeset
9031 windows Compiled with support for more than one window.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9032 writebackup Compiled with 'writebackup' default on.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9033 xfontset Compiled with X fontset support |xfontset|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9034 xim Compiled with X input method support |xim|.
5340
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
9035 xpm Compiled with pixmap support.
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
9036 xpm_w32 Compiled with pixmap support for Win32. (Only for
22da5ab9aaa1 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5294
diff changeset
9037 backward compatibility. Use "xpm" instead.)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9038 xsmp Compiled with X session management support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9039 xsmp_interact Compiled with interactive X session management support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9040 xterm_clipboard Compiled with support for xterm clipboard.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9041 xterm_save Compiled with support for saving and restoring the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9042 xterm screen.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9043 x11 Compiled with X11 support.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9044
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9045 *string-match*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9046 Matching a pattern in a String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9047
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9048 A regexp pattern as explained at |pattern| is normally used to find a match in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9049 the buffer lines. When a pattern is used to find a match in a String, almost
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9050 everything works in the same way. The difference is that a String is handled
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9051 like it is one line. When it contains a "\n" character, this is not seen as a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9052 line break for the pattern. It can be matched with a "\n" in the pattern, or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9053 with ".". Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9054 :let a = "aaaa\nxxxx"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9055 :echo matchstr(a, "..\n..")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9056 aa
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9057 xx
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9058 :echo matchstr(a, "a.x")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9059 a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9060 x
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9061
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9062 Don't forget that "^" will only match at the first character of the String and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9063 "$" at the last character of the string. They don't match after or before a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9064 "\n".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9065
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9066 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9067 5. Defining functions *user-functions*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9068
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9069 New functions can be defined. These can be called just like builtin
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9070 functions. The function executes a sequence of Ex commands. Normal mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9071 commands can be executed with the |:normal| command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9072
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9073 The function name must start with an uppercase letter, to avoid confusion with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9074 builtin functions. To prevent from using the same name in different scripts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9075 avoid obvious, short names. A good habit is to start the function name with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9076 the name of the script, e.g., "HTMLcolor()".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9077
504
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
9078 It's also possible to use curly braces, see |curly-braces-names|. And the
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
9079 |autoload| facility is useful to define a function only when it's called.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9080
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9081 *local-function*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9082 A function local to a script must start with "s:". A local script function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9083 can only be called from within the script and from functions, user commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9084 and autocommands defined in the script. It is also possible to call the
1698
f4f8014d516e updated for version 7.2c-000
vimboss
parents: 1668
diff changeset
9085 function from a mapping defined in the script, but then |<SID>| must be used
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9086 instead of "s:" when the mapping is expanded outside of the script.
5862
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
9087 There are only script-local functions, no buffer-local or window-local
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
9088 functions.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9089
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9090 *:fu* *:function* *E128* *E129* *E123*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9091 :fu[nction] List all functions and their arguments.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9092
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9093 :fu[nction] {name} List function {name}.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9094 {name} can also be a |Dictionary| entry that is a
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9095 |Funcref|: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9096 :function dict.init
504
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
9097
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
9098 :fu[nction] /{pattern} List functions with a name matching {pattern}.
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
9099 Example that lists all functions ending with "File": >
35cde31bdcbd updated for version 7.0141
vimboss
parents: 502
diff changeset
9100 :function /File$
482
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9101 <
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9102 *:function-verbose*
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9103 When 'verbose' is non-zero, listing a function will also display where it was
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9104 last defined. Example: >
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9105
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9106 :verbose function SetFileTypeSH
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9107 function SetFileTypeSH(name)
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9108 Last set from /usr/share/vim/vim-7.0/filetype.vim
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9109 <
484
f012c4ed8c38 updated for version 7.0132
vimboss
parents: 482
diff changeset
9110 See |:verbose-cmd| for more information.
482
6f8b578776ab updated for version 7.0131
vimboss
parents: 477
diff changeset
9111
5862
306caa30d83b Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 5815
diff changeset
9112 *E124* *E125* *E853* *E884*
9688
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9113 :fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure]
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9114 Define a new function by the name {name}. The body of
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9115 the function follows in the next lines, until the
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9116 matching |:endfunction|.
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
9117
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9118 The name must be made of alphanumeric characters and
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9119 '_', and must start with a capital or "s:" (see
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9120 above). Note that using "b:" or "g:" is not allowed.
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9121 (since patch 7.4.260 E884 is given if the function
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9122 name has a colon in the name, e.g. for "foo:bar()".
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9123 Before that patch no error was given).
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9124
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9125 {name} can also be a |Dictionary| entry that is a
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9126 |Funcref|: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9127 :function dict.init(arg)
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9128 < "dict" must be an existing dictionary. The entry
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9129 "init" is added if it didn't exist yet. Otherwise [!]
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9130 is required to overwrite an existing function. The
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9131 result is a |Funcref| to a numbered function. The
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9132 function can only be used with a |Funcref| and will be
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9133 deleted if there are no more references to it.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9134 *E127* *E122*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9135 When a function by this name already exists and [!] is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9136 not used an error message is given. When [!] is used,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9137 an existing function is silently replaced. Unless it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9138 is currently being executed, that is an error.
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9139 NOTE: Use ! wisely. If used without care it can cause
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9140 an existing function to be replaced unexpectedly,
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9141 which is hard to debug.
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9142
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9143 For the {arguments} see |function-argument|.
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9144
5618
350272cbf1fd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5596
diff changeset
9145 *:func-range* *a:firstline* *a:lastline*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9146 When the [range] argument is added, the function is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9147 expected to take care of a range itself. The range is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9148 passed as "a:firstline" and "a:lastline". If [range]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9149 is excluded, ":{range}call" will call the function for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9150 each line in the range, with the cursor on the start
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9151 of each line. See |function-range-example|.
3967
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
9152 The cursor is still moved to the first line of the
fdb8a9c7bd91 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3920
diff changeset
9153 range, as is the case with all Ex commands.
5618
350272cbf1fd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5596
diff changeset
9154 *:func-abort*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9155 When the [abort] argument is added, the function will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9156 abort as soon as an error is detected.
5618
350272cbf1fd Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5596
diff changeset
9157 *:func-dict*
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
9158 When the [dict] argument is added, the function must
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9159 be invoked through an entry in a |Dictionary|. The
102
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
9160 local variable "self" will then be set to the
0aa0e89bfd5f updated for version 7.0039
vimboss
parents: 99
diff changeset
9161 dictionary. See |Dictionary-function|.
9688
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9162 *:func-closure* *E932*
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9163 When the [closure] argument is added, the function
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9164 can access variables and arguments from the outer
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9165 scope. This is usually called a closure. In this
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9166 example Bar() uses "x" from the scope of Foo(). It
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9167 remains referenced even after Foo() returns: >
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9168 :function! Foo()
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9169 : let x = 0
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9170 : function! Bar() closure
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9171 : let x += 1
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9172 : return x
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9173 : endfunction
9737
35ce559b8553 commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents: 9723
diff changeset
9174 : return funcref('Bar')
9688
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9175 :endfunction
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9176
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9177 :let F = Foo()
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9178 :echo F()
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9179 < 1 >
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9180 :echo F()
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9181 < 2 >
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9182 :echo F()
2ea935bdd1a1 commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents: 9686
diff changeset
9183 < 3
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9184
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9185 *function-search-undo*
653
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
9186 The last used search pattern and the redo command "."
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9187 will not be changed by the function. This also
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9188 implies that the effect of |:nohlsearch| is undone
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9189 when the function returns.
653
5acda076fb0c updated for version 7.0192
vimboss
parents: 650
diff changeset
9190
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9191 *:endf* *:endfunction* *E126* *E193* *W22*
11543
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9192 :endf[unction] [argument]
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9193 The end of a function definition. Best is to put it
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9194 on a line by its own, without [argument].
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9195
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9196 [argument] can be:
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9197 | command command to execute next
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9198 \n command command to execute next
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9199 " comment always ignored
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9200 anything else ignored, warning given when
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9201 'verbose' is non-zero
11543
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9202 The support for a following command was added in Vim
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9203 8.0.0654, before that any argument was silently
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9204 ignored.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9205
11561
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9206 To be able to define a function inside an `:execute`
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9207 command, use line breaks instead of |:bar|: >
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9208 :exe "func Foo()\necho 'foo'\nendfunc"
7ad79766365a patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents: 11553
diff changeset
9209 <
9723
80ac9cf77c9b commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents: 9688
diff changeset
9210 *:delf* *:delfunction* *E130* *E131* *E933*
11543
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9211 :delf[unction][!] {name}
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9212 Delete function {name}.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9213 {name} can also be a |Dictionary| entry that is a
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9214 |Funcref|: >
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9215 :delfunc dict.init
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9216 < This will remove the "init" entry from "dict". The
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9217 function is deleted if there are no more references to
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9218 it.
11543
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9219 With the ! there is no error if the function does not
57c452316da1 patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents: 11518
diff changeset
9220 exist.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9221 *:retu* *:return* *E133*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9222 :retu[rn] [expr] Return from a function. When "[expr]" is given, it is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9223 evaluated and returned as the result of the function.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9224 If "[expr]" is not given, the number 0 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9225 When a function ends without an explicit ":return",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9226 the number 0 is returned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9227 Note that there is no check for unreachable lines,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9228 thus there is no warning if commands follow ":return".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9229
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9230 If the ":return" is used after a |:try| but before the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9231 matching |:finally| (if present), the commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9232 following the ":finally" up to the matching |:endtry|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9233 are executed first. This process applies to all
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9234 nested ":try"s inside the function. The function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9235 returns at the outermost ":endtry".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9236
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9237 *function-argument* *a:var*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9238 An argument can be defined by giving its name. In the function this can then
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9239 be used as "a:name" ("a:" for argument).
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9240 *a:0* *a:1* *a:000* *E740* *...*
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9241 Up to 20 arguments can be given, separated by commas. After the named
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9242 arguments an argument "..." can be specified, which means that more arguments
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9243 may optionally be following. In the function the extra arguments can be used
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9244 as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9245 can be 0). "a:000" is set to a |List| that contains these arguments. Note
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9246 that "a:1" is the same as "a:000[0]".
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9247 *E742*
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9248 The a: scope and the variables in it cannot be changed, they are fixed.
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
9249 However, if a composite type is used, such as |List| or |Dictionary| , you can
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
9250 change their contents. Thus you can pass a |List| to a function and have the
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
9251 function add an item to it. If you want to make sure the function cannot
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
9252 change a |List| or |Dictionary| use |:lockvar|.
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9253
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9254 When not using "...", the number of arguments in a function call must be equal
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9255 to the number of named arguments. When using "...", the number of arguments
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9256 may be larger.
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9257
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9258 It is also possible to define a function without any arguments. You must
12756
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9259 still supply the () then.
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9260
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9261 It is allowed to define another function inside a function
3b26420fc639 Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents: 12722
diff changeset
9262 body.
133
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9263
bcb347a8f934 updated for version 7.0044
vimboss
parents: 123
diff changeset
9264 *local-variables*
9527
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
9265 Inside a function local variables can be used. These will disappear when the
e8b3db8e2d30 commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents: 9464
diff changeset
9266 function returns. Global variables need to be accessed with "g:".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9267
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9268 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9269 :function Table(title, ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9270 : echohl Title
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9271 : echo a:title
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9272 : echohl None
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
9273 : echo a:0 . " items:"
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
9274 : for s in a:000
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
9275 : echon ' ' . s
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
9276 : endfor
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9277 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9278
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9279 This function can then be called with: >
140
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
9280 call Table("Table", "line1", "line2")
8ecb0db93e9a updated for version 7.0045
vimboss
parents: 133
diff changeset
9281 call Table("Empty Table")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9282
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9283 To return more than one value, return a |List|: >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9284 :function Compute(n1, n2)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9285 : if a:n2 == 0
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9286 : return ["fail", 0]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9287 : endif
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9288 : return ["ok", a:n1 / a:n2]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9289 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9290
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9291 This function can then be called with: >
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9292 :let [success, div] = Compute(102, 6)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9293 :if success == "ok"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9294 : echo div
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9295 :endif
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9296 <
786
8f6a426bc1e0 updated for version 7.0229
vimboss
parents: 782
diff changeset
9297 *:cal* *:call* *E107* *E117*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9298 :[range]cal[l] {name}([arguments])
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9299 Call a function. The name of the function and its arguments
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9300 are as specified with |:function|. Up to 20 arguments can be
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9301 used. The returned value is discarded.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9302 Without a range and for functions that accept a range, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9303 function is called once. When a range is given the cursor is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9304 positioned at the start of the first line before executing the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9305 function.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9306 When a range is given and the function doesn't handle it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9307 itself, the function is executed for each line in the range,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9308 with the cursor in the first column of that line. The cursor
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9309 is left at the last line (possibly moved by the last function
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9310 call). The arguments are re-evaluated for each line. Thus
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9311 this works:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9312 *function-range-example* >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9313 :function Mynumber(arg)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9314 : echo line(".") . " " . a:arg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9315 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9316 :1,5call Mynumber(getline("."))
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9317 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9318 The "a:firstline" and "a:lastline" are defined anyway, they
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9319 can be used to do something different at the start or end of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9320 the range.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9321
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9322 Example of a function that handles the range itself: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9323
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9324 :function Cont() range
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9325 : execute (a:firstline + 1) . "," . a:lastline . 's/^/\t\\ '
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9326 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9327 :4,8call Cont()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9328 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9329 This function inserts the continuation character "\" in front
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9330 of all the lines in the range, except the first one.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9331
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9332 When the function returns a composite value it can be further
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9333 dereferenced, but the range will not be used then. Example: >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9334 :4,8call GetDict().method()
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9335 < Here GetDict() gets the range but method() does not.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9336
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9337 *E132*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9338 The recursiveness of user functions is restricted with the |'maxfuncdepth'|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9339 option.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9340
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9341
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9342 AUTOMATICALLY LOADING FUNCTIONS ~
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9343 *autoload-functions*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9344 When using many or large functions, it's possible to automatically define them
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9345 only when they are used. There are two methods: with an autocommand and with
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9346 the "autoload" directory in 'runtimepath'.
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9347
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9348
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9349 Using an autocommand ~
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9350
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
9351 This is introduced in the user manual, section |41.14|.
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
9352
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9353 The autocommand is useful if you have a plugin that is a long Vim script file.
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9354 You can define the autocommand and quickly quit the script with |:finish|.
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9355 That makes Vim startup faster. The autocommand should then load the same file
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9356 again, setting a variable to skip the |:finish| command.
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9357
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9358 Use the FuncUndefined autocommand event with a pattern that matches the
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9359 function(s) to be defined. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9360
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9361 :au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9362
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9363 The file "~/vim/bufnetfuncs.vim" should then define functions that start with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9364 "BufNet". Also see |FuncUndefined|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9365
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9366
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9367 Using an autoload script ~
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9368 *autoload* *E746*
170
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
9369 This is introduced in the user manual, section |41.15|.
8c60f65311fa updated for version 7.0052
vimboss
parents: 168
diff changeset
9370
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9371 Using a script in the "autoload" directory is simpler, but requires using
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9372 exactly the right file name. A function that can be autoloaded has a name
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9373 like this: >
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9374
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9375 :call filename#funcname()
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9376
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9377 When such a function is called, and it is not defined yet, Vim will search the
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9378 "autoload" directories in 'runtimepath' for a script file called
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9379 "filename.vim". For example "~/.vim/autoload/filename.vim". That file should
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9380 then define the function like this: >
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9381
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9382 function filename#funcname()
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9383 echo "Done!"
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9384 endfunction
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9385
530
339999b511a0 updated for version 7.0148
vimboss
parents: 523
diff changeset
9386 The file name and the name used before the # in the function must match
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9387 exactly, and the defined function must have the name exactly as it will be
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9388 called.
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9389
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9390 It is possible to use subdirectories. Every # in the function name works like
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9391 a path separator. Thus when calling a function: >
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9392
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9393 :call foo#bar#func()
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9394
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9395 Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'.
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9396
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9397 This also works when reading a variable that has not been set yet: >
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9398
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9399 :let l = foo#bar#lvar
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9400
557
862863033fdd updated for version 7.0158
vimboss
parents: 555
diff changeset
9401 However, when the autoload script was already loaded it won't be loaded again
862863033fdd updated for version 7.0158
vimboss
parents: 555
diff changeset
9402 for an unknown variable.
862863033fdd updated for version 7.0158
vimboss
parents: 555
diff changeset
9403
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9404 When assigning a value to such a variable nothing special happens. This can
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9405 be used to pass settings to the autoload script before it's loaded: >
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9406
270
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9407 :let foo#bar#toggle = 1
a20218704019 updated for version 7.0072
vimboss
parents: 258
diff changeset
9408 :call foo#bar#func()
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9409
164
8b0ee9d57d7f updated for version 7.0050
vimboss
parents: 161
diff changeset
9410 Note that when you make a mistake and call a function that is supposed to be
8b0ee9d57d7f updated for version 7.0050
vimboss
parents: 161
diff changeset
9411 defined in an autoload script, but the script doesn't actually define the
8b0ee9d57d7f updated for version 7.0050
vimboss
parents: 161
diff changeset
9412 function, the script will be sourced every time you try to call the function.
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9413 And you will get an error message every time.
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9414
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9415 Also note that if you have two script files, and one calls a function in the
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9416 other and vice versa, before the used function is defined, it won't work.
168
4d9eabb1396e updated for version 7.0051
vimboss
parents: 164
diff changeset
9417 Avoid using the autoload functionality at the toplevel.
161
6df0106fc595 updated for version 7.0049
vimboss
parents: 158
diff changeset
9418
794
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
9419 Hint: If you distribute a bunch of scripts you can pack them together with the
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
9420 |vimball| utility. Also read the user manual |distribute-script|.
f19994020dad updated for version 7.0231
vimboss
parents: 790
diff changeset
9421
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9422 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9423 6. Curly braces names *curly-braces-names*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9424
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9425 In most places where you can use a variable, you can use a "curly braces name"
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9426 variable. This is a regular variable name with one or more expressions
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9427 wrapped in braces {} like this: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9428 my_{adjective}_variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9429
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9430 When Vim encounters this, it evaluates the expression inside the braces, puts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9431 that in place of the expression, and re-interprets the whole as a variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9432 name. So in the above example, if the variable "adjective" was set to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9433 "noisy", then the reference would be to "my_noisy_variable", whereas if
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9434 "adjective" was set to "quiet", then it would be to "my_quiet_variable".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9435
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9436 One application for this is to create a set of variables governed by an option
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9437 value. For example, the statement >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9438 echo my_{&background}_message
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9439
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9440 would output the contents of "my_dark_message" or "my_light_message" depending
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9441 on the current value of 'background'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9442
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9443 You can use multiple brace pairs: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9444 echo my_{adverb}_{adjective}_message
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9445 ..or even nest them: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9446 echo my_{ad{end_of_word}}_message
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9447 where "end_of_word" is either "verb" or "jective".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9448
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9449 However, the expression inside the braces must evaluate to a valid single
236
4707450c2b33 updated for version 7.0066
vimboss
parents: 233
diff changeset
9450 variable name, e.g. this is invalid: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9451 :let foo='a + b'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9452 :echo c{foo}d
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9453 .. since the result of expansion is "ca + bd", which is not a variable name.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9454
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9455 *curly-braces-function-names*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9456 You can call and define functions by an evaluated name in a similar way.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9457 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9458 :let func_end='whizz'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9459 :call my_func_{func_end}(parameter)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9460
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9461 This would call the function "my_func_whizz(parameter)".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9462
3410
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9463 This does NOT work: >
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9464 :let i = 3
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9465 :let @{i} = '' " error
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9466 :echo @{i} " error
94601b379f38 Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents: 3398
diff changeset
9467
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9468 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9469 7. Commands *expression-commands*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9470
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9471 :let {var-name} = {expr1} *:let* *E18*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9472 Set internal variable {var-name} to the result of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9473 expression {expr1}. The variable will get the type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9474 from the {expr}. If {var-name} didn't exist yet, it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9475 is created.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9476
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
9477 :let {var-name}[{idx}] = {expr1} *E689*
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
9478 Set a list item to the result of the expression
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
9479 {expr1}. {var-name} must refer to a list and {idx}
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
9480 must be a valid index in that list. For nested list
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
9481 the index can be repeated.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9482 This cannot be used to add an item to a |List|.
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9483 This cannot be used to set a byte in a String. You
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9484 can do that like this: >
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9485 :let var = var[0:2] . 'X' . var[4:]
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9486 <
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9487 *E711* *E719*
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9488 :let {var-name}[{idx1}:{idx2}] = {expr1} *E708* *E709* *E710*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9489 Set a sequence of items in a |List| to the result of
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9490 the expression {expr1}, which must be a list with the
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9491 correct number of items.
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9492 {idx1} can be omitted, zero is used instead.
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9493 {idx2} can be omitted, meaning the end of the list.
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9494 When the selected range of items is partly past the
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9495 end of the list, items will be added.
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9496
153
19670b05ee32 updated for version 7.0047
vimboss
parents: 148
diff changeset
9497 *:let+=* *:let-=* *:let.=* *E734*
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9498 :let {var} += {expr1} Like ":let {var} = {var} + {expr1}".
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9499 :let {var} -= {expr1} Like ":let {var} = {var} - {expr1}".
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9500 :let {var} .= {expr1} Like ":let {var} = {var} . {expr1}".
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9501 These fail if {var} was not set yet and when the type
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9502 of {var} and {expr1} don't fit the operator.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9503
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9504
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9505 :let ${env-name} = {expr1} *:let-environment* *:let-$*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9506 Set environment variable {env-name} to the result of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9507 the expression {expr1}. The type is always String.
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9508 :let ${env-name} .= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9509 Append {expr1} to the environment variable {env-name}.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9510 If the environment variable didn't exist yet this
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9511 works like "=".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9512
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9513 :let @{reg-name} = {expr1} *:let-register* *:let-@*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9514 Write the result of the expression {expr1} in register
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9515 {reg-name}. {reg-name} must be a single letter, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9516 must be the name of a writable register (see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9517 |registers|). "@@" can be used for the unnamed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9518 register, "@/" for the search pattern.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9519 If the result of {expr1} ends in a <CR> or <NL>, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9520 register will be linewise, otherwise it will be set to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9521 characterwise.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9522 This can be used to clear the last search pattern: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9523 :let @/ = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9524 < This is different from searching for an empty string,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9525 that would match everywhere.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9526
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9527 :let @{reg-name} .= {expr1}
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9528 Append {expr1} to register {reg-name}. If the
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9529 register was empty it's like setting it to {expr1}.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9530
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9531 :let &{option-name} = {expr1} *:let-option* *:let-&*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9532 Set option {option-name} to the result of the
68
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9533 expression {expr1}. A String or Number value is
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9534 always converted to the type of the option.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9535 For an option local to a window or buffer the effect
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9536 is just like using the |:set| command: both the local
555
a5efb97bc104 updated for version 7.0157
vimboss
parents: 548
diff changeset
9537 value and the global value are changed.
68
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9538 Example: >
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9539 :let &path = &path . ',/usr/local/include'
10895
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
9540 < This also works for terminal codes in the form t_xx.
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
9541 But only for alphanumerical names. Example: >
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
9542 :let &t_k1 = "\<Esc>[234;"
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
9543 < When the code does not exist yet it will be created as
c391bfbdb452 Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
9544 a terminal key code, there is no error.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9545
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9546 :let &{option-name} .= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9547 For a string option: Append {expr1} to the value.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9548 Does not insert a comma like |:set+=|.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9549
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9550 :let &{option-name} += {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9551 :let &{option-name} -= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9552 For a number or boolean option: Add or subtract
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9553 {expr1}.
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9554
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9555 :let &l:{option-name} = {expr1}
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9556 :let &l:{option-name} .= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9557 :let &l:{option-name} += {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9558 :let &l:{option-name} -= {expr1}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9559 Like above, but only set the local value of an option
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9560 (if there is one). Works like |:setlocal|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9561
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9562 :let &g:{option-name} = {expr1}
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9563 :let &g:{option-name} .= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9564 :let &g:{option-name} += {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9565 :let &g:{option-name} -= {expr1}
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9566 Like above, but only set the global value of an option
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9567 (if there is one). Works like |:setglobal|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9568
85
fc244e0a6e7e updated for version 7.0034
vimboss
parents: 82
diff changeset
9569 :let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9570 {expr1} must evaluate to a |List|. The first item in
68
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9571 the list is assigned to {name1}, the second item to
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9572 {name2}, etc.
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9573 The number of names must match the number of items in
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9574 the |List|.
68
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9575 Each name can be one of the items of the ":let"
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9576 command as mentioned above.
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9577 Example: >
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9578 :let [s, item] = GetItem(s)
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9579 < Detail: {expr1} is evaluated first, then the
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9580 assignments are done in sequence. This matters if
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9581 {name2} depends on {name1}. Example: >
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9582 :let x = [0, 1]
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9583 :let i = 0
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9584 :let [i, x[i]] = [1, 2]
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9585 :echo x
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9586 < The result is [0, 2].
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9587
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9588 :let [{name1}, {name2}, ...] .= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9589 :let [{name1}, {name2}, ...] += {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9590 :let [{name1}, {name2}, ...] -= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9591 Like above, but append/add/subtract the value for each
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9592 |List| item.
68
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9593
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9594 :let [{name}, ..., ; {lastname}] = {expr1}
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9595 Like |:let-unpack| above, but the |List| may have more
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9596 items than there are names. A list of the remaining
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9597 items is assigned to {lastname}. If there are no
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9598 remaining items {lastname} is set to an empty list.
68
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9599 Example: >
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9600 :let [a, b; rest] = ["aval", "bval", 3, 4]
a97c6902ecd9 updated for version 7.0030
vimboss
parents: 55
diff changeset
9601 <
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9602 :let [{name}, ..., ; {lastname}] .= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9603 :let [{name}, ..., ; {lastname}] += {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9604 :let [{name}, ..., ; {lastname}] -= {expr1}
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9605 Like above, but append/add/subtract the value for each
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9606 |List| item.
2596
fae782ef63dd Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2581
diff changeset
9607
fae782ef63dd Runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2581
diff changeset
9608 *E121*
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9609 :let {var-name} .. List the value of variable {var-name}. Multiple
123
f67f8a8d81ba updated for version 7.0043
vimboss
parents: 119
diff changeset
9610 variable names may be given. Special names recognized
f67f8a8d81ba updated for version 7.0043
vimboss
parents: 119
diff changeset
9611 here: *E738*
777
f664cc974a7a updated for version 7.0227
vimboss
parents: 724
diff changeset
9612 g: global variables
f664cc974a7a updated for version 7.0227
vimboss
parents: 724
diff changeset
9613 b: local buffer variables
f664cc974a7a updated for version 7.0227
vimboss
parents: 724
diff changeset
9614 w: local window variables
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
9615 t: local tab page variables
777
f664cc974a7a updated for version 7.0227
vimboss
parents: 724
diff changeset
9616 s: script-local variables
f664cc974a7a updated for version 7.0227
vimboss
parents: 724
diff changeset
9617 l: local function variables
123
f67f8a8d81ba updated for version 7.0043
vimboss
parents: 119
diff changeset
9618 v: Vim variables.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9619
55
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
9620 :let List the values of all variables. The type of the
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
9621 variable is indicated before the value:
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
9622 <nothing> String
225cc00b2eda updated for version 7.0029
vimboss
parents: 37
diff changeset
9623 # Number
856
8cd729851562 updated for version 7.0g
vimboss
parents: 853
diff changeset
9624 * Funcref
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9625
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9626
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9627 :unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795*
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9628 Remove the internal variable {name}. Several variable
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9629 names can be given, they are all removed. The name
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9630 may also be a |List| or |Dictionary| item.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9631 With [!] no error message is given for non-existing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9632 variables.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9633 One or more items from a |List| can be removed: >
108
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
9634 :unlet list[3] " remove fourth item
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
9635 :unlet list[3:] " remove fourth item to last
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9636 < One item from a |Dictionary| can be removed at a time: >
108
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
9637 :unlet dict['two']
375b1d0f97b0 updated for version 7.0040
vimboss
parents: 102
diff changeset
9638 :unlet dict.two
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
9639 < This is especially useful to clean up used global
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
9640 variables and script-local variables (these are not
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
9641 deleted when the script ends). Function-local
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
9642 variables are automatically deleted when the function
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1661
diff changeset
9643 ends.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9644
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9645 :lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv*
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9646 Lock the internal variable {name}. Locking means that
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9647 it can no longer be changed (until it is unlocked).
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9648 A locked variable can be deleted: >
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9649 :lockvar v
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9650 :let v = 'asdf' " fails!
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9651 :unlet v
10908
6b6abffbdf59 patch 8.0.0343: b:changedtick can be unlocked
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
9652 < *E741* *E940*
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9653 If you try to change a locked variable you get an
10908
6b6abffbdf59 patch 8.0.0343: b:changedtick can be unlocked
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
9654 error message: "E741: Value is locked: {name}".
6b6abffbdf59 patch 8.0.0343: b:changedtick can be unlocked
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
9655 If you try to lock or unlock a built-in variable you
6b6abffbdf59 patch 8.0.0343: b:changedtick can be unlocked
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
9656 get an error message: "E940: Cannot lock or unlock
6b6abffbdf59 patch 8.0.0343: b:changedtick can be unlocked
Christian Brabandt <cb@256bit.org>
parents: 10895
diff changeset
9657 variable {name}".
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9658
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9659 [depth] is relevant when locking a |List| or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9660 |Dictionary|. It specifies how deep the locking goes:
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9661 1 Lock the |List| or |Dictionary| itself,
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9662 cannot add or remove items, but can
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9663 still change their values.
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9664 2 Also lock the values, cannot change
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9665 the items. If an item is a |List| or
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9666 |Dictionary|, cannot add or remove
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9667 items, but can still change the
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9668 values.
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9669 3 Like 2 but for the |List| /
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9670 |Dictionary| in the |List| /
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9671 |Dictionary|, one level deeper.
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9672 The default [depth] is 2, thus when {name} is a |List|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9673 or |Dictionary| the values cannot be changed.
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9674 *E743*
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9675 For unlimited depth use [!] and omit [depth].
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9676 However, there is a maximum depth of 100 to catch
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9677 loops.
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9678
685
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9679 Note that when two variables refer to the same |List|
d7e33248b9c8 updated for version 7.0206
vimboss
parents: 681
diff changeset
9680 and you lock one of them, the |List| will also be
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
9681 locked when used through the other variable.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 818
diff changeset
9682 Example: >
148
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9683 :let l = [0, 1, 2, 3]
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9684 :let cl = l
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9685 :lockvar l
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9686 :let cl[1] = 99 " won't work!
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9687 < You may want to make a copy of a list to avoid this.
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9688 See |deepcopy()|.
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9689
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9690
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9691 :unlo[ckvar][!] [depth] {name} ... *:unlockvar* *:unlo*
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9692 Unlock the internal variable {name}. Does the
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9693 opposite of |:lockvar|.
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9694
72aefd4c1e0d updated for version 7.0046
vimboss
parents: 140
diff changeset
9695
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9696 :if {expr1} *:if* *:endif* *:en* *E171* *E579* *E580*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9697 :en[dif] Execute the commands until the next matching ":else"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9698 or ":endif" if {expr1} evaluates to non-zero.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9699
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9700 From Vim version 4.5 until 5.0, every Ex command in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9701 between the ":if" and ":endif" is ignored. These two
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9702 commands were just to allow for future expansions in a
7659
07f11de5efca commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents: 7653
diff changeset
9703 backward compatible way. Nesting was allowed. Note
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9704 that any ":else" or ":elseif" was ignored, the "else"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9705 part was not executed either.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9706
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9707 You can use this to remain compatible with older
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9708 versions: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9709 :if version >= 500
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9710 : version-5-specific-commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9711 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9712 < The commands still need to be parsed to find the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9713 "endif". Sometimes an older Vim has a problem with a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9714 new command. For example, ":silent" is recognized as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9715 a ":substitute" command. In that case ":execute" can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9716 avoid problems: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9717 :if version >= 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9718 : execute "silent 1,$delete"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9719 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9720 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9721 NOTE: The ":append" and ":insert" commands don't work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9722 properly in between ":if" and ":endif".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9723
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9724 *:else* *:el* *E581* *E583*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9725 :el[se] Execute the commands until the next matching ":else"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9726 or ":endif" if they previously were not being
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9727 executed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9728
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9729 *:elseif* *:elsei* *E582* *E584*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9730 :elsei[f] {expr1} Short for ":else" ":if", with the addition that there
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9731 is no extra ":endif".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9732
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9733 :wh[ile] {expr1} *:while* *:endwhile* *:wh* *:endw*
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9734 *E170* *E585* *E588* *E733*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9735 :endw[hile] Repeat the commands between ":while" and ":endwhile",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9736 as long as {expr1} evaluates to non-zero.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9737 When an error is detected from a command inside the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9738 loop, execution continues after the "endwhile".
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9739 Example: >
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9740 :let lnum = 1
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9741 :while lnum <= line("$")
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9742 :call FixLine(lnum)
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9743 :let lnum = lnum + 1
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9744 :endwhile
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9745 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9746 NOTE: The ":append" and ":insert" commands don't work
99
04f2e519ab18 updated for version 7.0038
vimboss
parents: 95
diff changeset
9747 properly inside a ":while" and ":for" loop.
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9748
114
f6e567606d47 updated for version 7.0041
vimboss
parents: 108
diff changeset
9749 :for {var} in {list} *:for* *E690* *E732*
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9750 :endfo[r] *:endfo* *:endfor*
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9751 Repeat the commands between ":for" and ":endfor" for
158
78423945b251 updated for version 7.0048
vimboss
parents: 153
diff changeset
9752 each item in {list}. Variable {var} is set to the
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9753 value of each item.
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9754 When an error is detected for a command inside the
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9755 loop, execution continues after the "endfor".
464
3b705e71c7b0 updated for version 7.0124
vimboss
parents: 459
diff changeset
9756 Changing {list} inside the loop affects what items are
3b705e71c7b0 updated for version 7.0124
vimboss
parents: 459
diff changeset
9757 used. Make a copy if this is unwanted: >
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9758 :for item in copy(mylist)
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9759 < When not making a copy, Vim stores a reference to the
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9760 next item in the list, before executing the commands
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9761 with the current item. Thus the current item can be
79
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9762 removed without effect. Removing any later item means
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9763 it will not be found. Thus the following example
e918d3e340a4 updated for version 7.0032
vimboss
parents: 75
diff changeset
9764 works (an inefficient way to make a list empty): >
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
9765 for item in mylist
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
9766 call remove(mylist, 0)
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
9767 endfor
87
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9768 < Note that reordering the list (e.g., with sort() or
014ba200db86 updated for version 7.0035
vimboss
parents: 85
diff changeset
9769 reverse()) may have unexpected effects.
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9770
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9771 :for [{var1}, {var2}, ...] in {listlist}
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9772 :endfo[r]
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9773 Like ":for" above, but each item in {listlist} must be
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9774 a list, of which each item is assigned to {var1},
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9775 {var2}, etc. Example: >
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9776 :for [lnum, col] in [[1, 3], [2, 5], [3, 8]]
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9777 :echo getline(lnum)[col]
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9778 :endfor
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9779 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9780 *:continue* *:con* *E586*
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9781 :con[tinue] When used inside a ":while" or ":for" loop, jumps back
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9782 to the start of the loop.
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9783 If it is used after a |:try| inside the loop but
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9784 before the matching |:finally| (if present), the
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9785 commands following the ":finally" up to the matching
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9786 |:endtry| are executed first. This process applies to
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9787 all nested ":try"s inside the loop. The outermost
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9788 ":endtry" then jumps back to the start of the loop.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9789
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9790 *:break* *:brea* *E587*
75
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9791 :brea[k] When used inside a ":while" or ":for" loop, skips to
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9792 the command after the matching ":endwhile" or
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9793 ":endfor".
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9794 If it is used after a |:try| inside the loop but
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9795 before the matching |:finally| (if present), the
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9796 commands following the ":finally" up to the matching
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9797 |:endtry| are executed first. This process applies to
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9798 all nested ":try"s inside the loop. The outermost
388f285bda1b updated for version 7.0031
vimboss
parents: 68
diff changeset
9799 ":endtry" then jumps to the command after the loop.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9800
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9801 :try *:try* *:endt* *:endtry* *E600* *E601* *E602*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9802 :endt[ry] Change the error handling for the commands between
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9803 ":try" and ":endtry" including everything being
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9804 executed across ":source" commands, function calls,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9805 or autocommand invocations.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9806
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9807 When an error or interrupt is detected and there is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9808 a |:finally| command following, execution continues
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9809 after the ":finally". Otherwise, or when the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9810 ":endtry" is reached thereafter, the next
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9811 (dynamically) surrounding ":try" is checked for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9812 a corresponding ":finally" etc. Then the script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9813 processing is terminated. (Whether a function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9814 definition has an "abort" argument does not matter.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9815 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9816 :try | edit too much | finally | echo "cleanup" | endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9817 :echo "impossible" " not reached, script terminated above
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9818 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9819 Moreover, an error or interrupt (dynamically) inside
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9820 ":try" and ":endtry" is converted to an exception. It
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9821 can be caught as if it were thrown by a |:throw|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9822 command (see |:catch|). In this case, the script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9823 processing is not terminated.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9824
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9825 The value "Vim:Interrupt" is used for an interrupt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9826 exception. An error in a Vim command is converted
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9827 to a value of the form "Vim({command}):{errmsg}",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9828 other errors are converted to a value of the form
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9829 "Vim:{errmsg}". {command} is the full command name,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9830 and {errmsg} is the message that is displayed if the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9831 error exception is not caught, always beginning with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9832 the error number.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9833 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9834 :try | sleep 100 | catch /^Vim:Interrupt$/ | endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9835 :try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9836 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9837 *:cat* *:catch* *E603* *E604* *E605*
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
9838 :cat[ch] /{pattern}/ The following commands until the next |:catch|,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9839 |:finally|, or |:endtry| that belongs to the same
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9840 |:try| as the ":catch" are executed when an exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9841 matching {pattern} is being thrown and has not yet
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9842 been caught by a previous ":catch". Otherwise, these
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9843 commands are skipped.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9844 When {pattern} is omitted all errors are caught.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9845 Examples: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9846 :catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9847 :catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9848 :catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9849 :catch /^Vim(write):/ " catch all errors in :write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9850 :catch /^Vim\%((\a\+)\)\=:E123/ " catch error E123
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9851 :catch /my-exception/ " catch user exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9852 :catch /.*/ " catch everything
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9853 :catch " same as /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9854 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9855 Another character can be used instead of / around the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9856 {pattern}, so long as it does not have a special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9857 meaning (e.g., '|' or '"') and doesn't occur inside
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9858 {pattern}.
5814
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
9859 Information about the exception is available in
755931e042e4 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5808
diff changeset
9860 |v:exception|. Also see |throw-variables|.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9861 NOTE: It is not reliable to ":catch" the TEXT of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9862 an error message because it may vary in different
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9863 locales.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9864
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9865 *:fina* *:finally* *E606* *E607*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9866 :fina[lly] The following commands until the matching |:endtry|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9867 are executed whenever the part between the matching
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9868 |:try| and the ":finally" is left: either by falling
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9869 through to the ":finally" or by a |:continue|,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9870 |:break|, |:finish|, or |:return|, or by an error or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9871 interrupt or exception (see |:throw|).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9872
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9873 *:th* *:throw* *E608*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9874 :th[row] {expr1} The {expr1} is evaluated and thrown as an exception.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9875 If the ":throw" is used after a |:try| but before the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9876 first corresponding |:catch|, commands are skipped
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9877 until the first ":catch" matching {expr1} is reached.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9878 If there is no such ":catch" or if the ":throw" is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9879 used after a ":catch" but before the |:finally|, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9880 commands following the ":finally" (if present) up to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9881 the matching |:endtry| are executed. If the ":throw"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9882 is after the ":finally", commands up to the ":endtry"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9883 are skipped. At the ":endtry", this process applies
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9884 again for the next dynamically surrounding ":try"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9885 (which may be found in a calling function or sourcing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9886 script), until a matching ":catch" has been found.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9887 If the exception is not caught, the command processing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9888 is terminated.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9889 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9890 :try | throw "oops" | catch /^oo/ | echo "caught" | endtry
2725
6f63330ec225 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2709
diff changeset
9891 < Note that "catch" may need to be on a separate line
6f63330ec225 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2709
diff changeset
9892 for when an error causes the parsing to skip the whole
6f63330ec225 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2709
diff changeset
9893 line and not see the "|" that separates the commands.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9894
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9895 *:ec* *:echo*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9896 :ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9897 first {expr1} starts on a new line.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9898 Also see |:comment|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9899 Use "\n" to start a new line. Use "\r" to move the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9900 cursor to the first column.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9901 Uses the highlighting set by the |:echohl| command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9902 Cannot be followed by a comment.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9903 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9904 :echo "the value of 'shell' is" &shell
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9905 < *:echo-redraw*
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9906 A later redraw may make the message disappear again.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9907 And since Vim mostly postpones redrawing until it's
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9908 finished with a sequence of commands this happens
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9909 quite often. To avoid that a command from before the
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9910 ":echo" causes a redraw afterwards (redraws are often
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9911 postponed until you type something), force a redraw
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9912 with the |:redraw| command. Example: >
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9913 :new | redraw | echo "there is a new window"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9914 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9915 *:echon*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9916 :echon {expr1} .. Echoes each {expr1}, without anything added. Also see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9917 |:comment|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9918 Uses the highlighting set by the |:echohl| command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9919 Cannot be followed by a comment.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9920 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9921 :echon "the value of 'shell' is " &shell
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9922 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9923 Note the difference between using ":echo", which is a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9924 Vim command, and ":!echo", which is an external shell
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9925 command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9926 :!echo % --> filename
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9927 < The arguments of ":!" are expanded, see |:_%|. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9928 :!echo "%" --> filename or "filename"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9929 < Like the previous example. Whether you see the double
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9930 quotes or not depends on your 'shell'. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9931 :echo % --> nothing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9932 < The '%' is an illegal character in an expression. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9933 :echo "%" --> %
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9934 < This just echoes the '%' character. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9935 :echo expand("%") --> filename
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9936 < This calls the expand() function to expand the '%'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9937
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9938 *:echoh* *:echohl*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9939 :echoh[l] {name} Use the highlight group {name} for the following
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9940 |:echo|, |:echon| and |:echomsg| commands. Also used
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9941 for the |input()| prompt. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9942 :echohl WarningMsg | echo "Don't panic!" | echohl None
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9943 < Don't forget to set the group back to "None",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9944 otherwise all following echo's will be highlighted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9945
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9946 *:echom* *:echomsg*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9947 :echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9948 message in the |message-history|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9949 Spaces are placed between the arguments as with the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9950 |:echo| command. But unprintable characters are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9951 displayed, not interpreted.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9952 The parsing works slightly different from |:echo|,
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9953 more like |:execute|. All the expressions are first
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9954 evaluated and concatenated before echoing anything.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9955 The expressions must evaluate to a Number or String, a
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9956 Dictionary or List causes an error.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9957 Uses the highlighting set by the |:echohl| command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9958 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9959 :echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see."
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9960 < See |:echo-redraw| to avoid the message disappearing
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
9961 when the screen is redrawn.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9962 *:echoe* *:echoerr*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9963 :echoe[rr] {expr1} .. Echo the expression(s) as an error message, saving the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9964 message in the |message-history|. When used in a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9965 script or function the line number will be added.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9966 Spaces are placed between the arguments as with the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
9967 :echo command. When used inside a try conditional,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9968 the message is raised as an error exception instead
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9969 (see |try-echoerr|).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9970 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9971 :echoerr "This script just failed!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9972 < If you just want a highlighted message use |:echohl|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9973 And to get a beep: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9974 :exe "normal \<Esc>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9975 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9976 *:exe* *:execute*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9977 :exe[cute] {expr1} .. Executes the string that results from the evaluation
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9978 of {expr1} as an Ex command.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9979 Multiple arguments are concatenated, with a space in
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9980 between. To avoid the extra space use the "."
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9981 operator to concatenate strings into one argument.
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9982 {expr1} is used as the processed command, command line
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9983 editing keys are not recognized.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9984 Cannot be followed by a comment.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9985 Examples: >
2152
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9986 :execute "buffer" nextbuf
b9e314fe473f Updated runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 2120
diff changeset
9987 :execute "normal" count . "w"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9988 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9989 ":execute" can be used to append a command to commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9990 that don't accept a '|'. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9991 :execute '!ls' | echo "theend"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9992
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9993 < ":execute" is also a nice way to avoid having to type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9994 control characters in a Vim script for a ":normal"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9995 command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9996 :execute "normal ixxx\<Esc>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9997 < This has an <Esc> character, see |expr-string|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9998
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
9999 Be careful to correctly escape special characters in
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10000 file names. The |fnameescape()| function can be used
1661
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
10001 for Vim commands, |shellescape()| for |:!| commands.
5bbc2d6658ad updated for version 7.2a-013
vimboss
parents: 1621
diff changeset
10002 Examples: >
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10003 :execute "e " . fnameescape(filename)
5692
80e5f9584b02 Update runtime files. Add Euphoria syntax files.
Bram Moolenaar <bram@vim.org>
parents: 5690
diff changeset
10004 :execute "!ls " . shellescape(filename, 1)
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10005 <
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10006 Note: The executed string may be any command-line, but
5763
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10007 starting or ending "if", "while" and "for" does not
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10008 always work, because when commands are skipped the
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10009 ":execute" is not evaluated and Vim loses track of
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10010 where blocks start and end. Also "break" and
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10011 "continue" should not be inside ":execute".
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10012 This example does not work, because the ":execute" is
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10013 not evaluated and Vim does not see the "while", and
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10014 gives an error for finding an ":endwhile": >
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10015 :if 0
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10016 : execute 'while i > 5'
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10017 : echo "test"
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10018 : endwhile
c52a655d927d Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 5747
diff changeset
10019 :endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10020 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10021 It is allowed to have a "while" or "if" command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10022 completely in the executed string: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10023 :execute 'while i < 5 | echo i | let i = i + 1 | endwhile'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10024 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10025
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
10026 *:exe-comment*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10027 ":execute", ":echo" and ":echon" cannot be followed by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10028 a comment directly, because they see the '"' as the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10029 start of a string. But, you can use '|' followed by a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10030 comment. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10031 :echo "foo" | "this is a comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10032
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10033 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10034 8. Exception handling *exception-handling*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10035
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10036 The Vim script language comprises an exception handling feature. This section
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10037 explains how it can be used in a Vim script.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10038
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10039 Exceptions may be raised by Vim on an error or on interrupt, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10040 |catch-errors| and |catch-interrupt|. You can also explicitly throw an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10041 exception by using the ":throw" command, see |throw-catch|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10042
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10043
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10044 TRY CONDITIONALS *try-conditionals*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10045
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10046 Exceptions can be caught or can cause cleanup code to be executed. You can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10047 use a try conditional to specify catch clauses (that catch exceptions) and/or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10048 a finally clause (to be executed for cleanup).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10049 A try conditional begins with a |:try| command and ends at the matching
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10050 |:endtry| command. In between, you can use a |:catch| command to start
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10051 a catch clause, or a |:finally| command to start a finally clause. There may
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10052 be none or multiple catch clauses, but there is at most one finally clause,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10053 which must not be followed by any catch clauses. The lines before the catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10054 clauses and the finally clause is called a try block. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10055
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10056 :try
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10057 : ...
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10058 : ... TRY BLOCK
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10059 : ...
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10060 :catch /{pattern}/
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10061 : ...
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10062 : ... CATCH CLAUSE
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10063 : ...
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10064 :catch /{pattern}/
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10065 : ...
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10066 : ... CATCH CLAUSE
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10067 : ...
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10068 :finally
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10069 : ...
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10070 : ... FINALLY CLAUSE
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10071 : ...
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10072 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10073
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10074 The try conditional allows to watch code for exceptions and to take the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10075 appropriate actions. Exceptions from the try block may be caught. Exceptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10076 from the try block and also the catch clauses may cause cleanup actions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10077 When no exception is thrown during execution of the try block, the control
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10078 is transferred to the finally clause, if present. After its execution, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10079 script continues with the line following the ":endtry".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10080 When an exception occurs during execution of the try block, the remaining
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10081 lines in the try block are skipped. The exception is matched against the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10082 patterns specified as arguments to the ":catch" commands. The catch clause
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10083 after the first matching ":catch" is taken, other catch clauses are not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10084 executed. The catch clause ends when the next ":catch", ":finally", or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10085 ":endtry" command is reached - whatever is first. Then, the finally clause
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10086 (if present) is executed. When the ":endtry" is reached, the script execution
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10087 continues in the following line as usual.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10088 When an exception that does not match any of the patterns specified by the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10089 ":catch" commands is thrown in the try block, the exception is not caught by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10090 that try conditional and none of the catch clauses is executed. Only the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10091 finally clause, if present, is taken. The exception pends during execution of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10092 the finally clause. It is resumed at the ":endtry", so that commands after
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10093 the ":endtry" are not executed and the exception might be caught elsewhere,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10094 see |try-nesting|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10095 When during execution of a catch clause another exception is thrown, the
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10096 remaining lines in that catch clause are not executed. The new exception is
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10097 not matched against the patterns in any of the ":catch" commands of the same
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10098 try conditional and none of its catch clauses is taken. If there is, however,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10099 a finally clause, it is executed, and the exception pends during its
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10100 execution. The commands following the ":endtry" are not executed. The new
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10101 exception might, however, be caught elsewhere, see |try-nesting|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10102 When during execution of the finally clause (if present) an exception is
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10103 thrown, the remaining lines in the finally clause are skipped. If the finally
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10104 clause has been taken because of an exception from the try block or one of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10105 catch clauses, the original (pending) exception is discarded. The commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10106 following the ":endtry" are not executed, and the exception from the finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10107 clause is propagated and can be caught elsewhere, see |try-nesting|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10108
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10109 The finally clause is also executed, when a ":break" or ":continue" for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10110 a ":while" loop enclosing the complete try conditional is executed from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10111 try block or a catch clause. Or when a ":return" or ":finish" is executed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10112 from the try block or a catch clause of a try conditional in a function or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10113 sourced script, respectively. The ":break", ":continue", ":return", or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10114 ":finish" pends during execution of the finally clause and is resumed when the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10115 ":endtry" is reached. It is, however, discarded when an exception is thrown
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10116 from the finally clause.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10117 When a ":break" or ":continue" for a ":while" loop enclosing the complete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10118 try conditional or when a ":return" or ":finish" is encountered in the finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10119 clause, the rest of the finally clause is skipped, and the ":break",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10120 ":continue", ":return" or ":finish" is executed as usual. If the finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10121 clause has been taken because of an exception or an earlier ":break",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10122 ":continue", ":return", or ":finish" from the try block or a catch clause,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10123 this pending exception or command is discarded.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10124
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10125 For examples see |throw-catch| and |try-finally|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10126
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10127
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10128 NESTING OF TRY CONDITIONALS *try-nesting*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10129
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10130 Try conditionals can be nested arbitrarily. That is, a complete try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10131 conditional can be put into the try block, a catch clause, or the finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10132 clause of another try conditional. If the inner try conditional does not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10133 catch an exception thrown in its try block or throws a new exception from one
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10134 of its catch clauses or its finally clause, the outer try conditional is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10135 checked according to the rules above. If the inner try conditional is in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10136 try block of the outer try conditional, its catch clauses are checked, but
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10137 otherwise only the finally clause is executed. It does not matter for
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10138 nesting, whether the inner try conditional is directly contained in the outer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10139 one, or whether the outer one sources a script or calls a function containing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10140 the inner try conditional.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10141
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10142 When none of the active try conditionals catches an exception, just their
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10143 finally clauses are executed. Thereafter, the script processing terminates.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10144 An error message is displayed in case of an uncaught exception explicitly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10145 thrown by a ":throw" command. For uncaught error and interrupt exceptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10146 implicitly raised by Vim, the error message(s) or interrupt message are shown
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10147 as usual.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10148
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10149 For examples see |throw-catch|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10150
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10151
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10152 EXAMINING EXCEPTION HANDLING CODE *except-examine*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10153
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10154 Exception handling code can get tricky. If you are in doubt what happens, set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10155 'verbose' to 13 or use the ":13verbose" command modifier when sourcing your
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10156 script file. Then you see when an exception is thrown, discarded, caught, or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10157 finished. When using a verbosity level of at least 14, things pending in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10158 a finally clause are also shown. This information is also given in debug mode
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10159 (see |debug-scripts|).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10160
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10161
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10162 THROWING AND CATCHING EXCEPTIONS *throw-catch*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10163
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10164 You can throw any number or string as an exception. Use the |:throw| command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10165 and pass the value to be thrown as argument: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10166 :throw 4711
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10167 :throw "string"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10168 < *throw-expression*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10169 You can also specify an expression argument. The expression is then evaluated
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10170 first, and the result is thrown: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10171 :throw 4705 + strlen("string")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10172 :throw strpart("strings", 0, 6)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10173
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10174 An exception might be thrown during evaluation of the argument of the ":throw"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10175 command. Unless it is caught there, the expression evaluation is abandoned.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10176 The ":throw" command then does not throw a new exception.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10177 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10178
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10179 :function! Foo(arg)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10180 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10181 : throw a:arg
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10182 : catch /foo/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10183 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10184 : return 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10185 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10186 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10187 :function! Bar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10188 : echo "in Bar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10189 : return 4710
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10190 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10191 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10192 :throw Foo("arrgh") + Bar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10193
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10194 This throws "arrgh", and "in Bar" is not displayed since Bar() is not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10195 executed. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10196 :throw Foo("foo") + Bar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10197 however displays "in Bar" and throws 4711.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10199 Any other command that takes an expression as argument might also be
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10200 abandoned by an (uncaught) exception during the expression evaluation. The
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10201 exception is then propagated to the caller of the command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10202 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10203
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10204 :if Foo("arrgh")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10205 : echo "then"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10206 :else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10207 : echo "else"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10208 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10209
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10210 Here neither of "then" or "else" is displayed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10211
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10212 *catch-order*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10213 Exceptions can be caught by a try conditional with one or more |:catch|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10214 commands, see |try-conditionals|. The values to be caught by each ":catch"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10215 command can be specified as a pattern argument. The subsequent catch clause
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10216 gets executed when a matching exception is caught.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10217 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10218
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10219 :function! Foo(value)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10220 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10221 : throw a:value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10222 : catch /^\d\+$/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10223 : echo "Number thrown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10224 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10225 : echo "String thrown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10226 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10227 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10228 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10229 :call Foo(0x1267)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10230 :call Foo('string')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10231
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10232 The first call to Foo() displays "Number thrown", the second "String thrown".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10233 An exception is matched against the ":catch" commands in the order they are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10234 specified. Only the first match counts. So you should place the more
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10235 specific ":catch" first. The following order does not make sense: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10236
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10237 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10238 : echo "String thrown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10239 : catch /^\d\+$/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10240 : echo "Number thrown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10241
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10242 The first ":catch" here matches always, so that the second catch clause is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10243 never taken.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10244
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10245 *throw-variables*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10246 If you catch an exception by a general pattern, you may access the exact value
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10247 in the variable |v:exception|: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10248
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10249 : catch /^\d\+$/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10250 : echo "Number thrown. Value is" v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10251
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10252 You may also be interested where an exception was thrown. This is stored in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10253 |v:throwpoint|. Note that "v:exception" and "v:throwpoint" are valid for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10254 exception most recently caught as long it is not finished.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10255 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10256
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10257 :function! Caught()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10258 : if v:exception != ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10259 : echo 'Caught "' . v:exception . '" in ' . v:throwpoint
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10260 : else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10261 : echo 'Nothing caught'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10262 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10263 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10264 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10265 :function! Foo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10266 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10267 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10268 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10269 : throw 4711
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10270 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10271 : call Caught()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10272 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10273 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10274 : call Caught()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10275 : throw "oops"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10276 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10277 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10278 : call Caught()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10279 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10280 : call Caught()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10281 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10282 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10283 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10284 :call Foo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10285
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10286 This displays >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10287
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10288 Nothing caught
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10289 Caught "4711" in function Foo, line 4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10290 Caught "oops" in function Foo, line 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10291 Nothing caught
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10292
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10293 A practical example: The following command ":LineNumber" displays the line
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10294 number in the script or function where it has been used: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10295
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10296 :function! LineNumber()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10297 : return substitute(v:throwpoint, '.*\D\(\d\+\).*', '\1', "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10298 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10299 :command! LineNumber try | throw "" | catch | echo LineNumber() | endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10300 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10301 *try-nested*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10302 An exception that is not caught by a try conditional can be caught by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10303 a surrounding try conditional: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10304
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10305 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10306 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10307 : throw "foo"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10308 : catch /foobar/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10309 : echo "foobar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10310 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10311 : echo "inner finally"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10312 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10313 :catch /foo/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10314 : echo "foo"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10315 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10316
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10317 The inner try conditional does not catch the exception, just its finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10318 clause is executed. The exception is then caught by the outer try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10319 conditional. The example displays "inner finally" and then "foo".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10320
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10321 *throw-from-catch*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10322 You can catch an exception and throw a new one to be caught elsewhere from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10323 catch clause: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10324
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10325 :function! Foo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10326 : throw "foo"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10327 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10328 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10329 :function! Bar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10330 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10331 : call Foo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10332 : catch /foo/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10333 : echo "Caught foo, throw bar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10334 : throw "bar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10335 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10336 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10337 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10338 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10339 : call Bar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10340 :catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10341 : echo "Caught" v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10342 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10343
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10344 This displays "Caught foo, throw bar" and then "Caught bar".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10345
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10346 *rethrow*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10347 There is no real rethrow in the Vim script language, but you may throw
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10348 "v:exception" instead: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10349
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10350 :function! Bar()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10351 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10352 : call Foo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10353 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10354 : echo "Rethrow" v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10355 : throw v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10356 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10357 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10358 < *try-echoerr*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10359 Note that this method cannot be used to "rethrow" Vim error or interrupt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10360 exceptions, because it is not possible to fake Vim internal exceptions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10361 Trying so causes an error exception. You should throw your own exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10362 denoting the situation. If you want to cause a Vim error exception containing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10363 the original error exception value, you can use the |:echoerr| command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10364
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10365 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10366 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10367 : asdf
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10368 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10369 : echoerr v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10370 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10371 :catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10372 : echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10373 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10374
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10375 This code displays
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10376
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10377 Vim(echoerr):Vim:E492: Not an editor command: asdf ~
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10378
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10379
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10380 CLEANUP CODE *try-finally*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10381
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10382 Scripts often change global settings and restore them at their end. If the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10383 user however interrupts the script by pressing CTRL-C, the settings remain in
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10384 an inconsistent state. The same may happen to you in the development phase of
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10385 a script when an error occurs or you explicitly throw an exception without
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10386 catching it. You can solve these problems by using a try conditional with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10387 a finally clause for restoring the settings. Its execution is guaranteed on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10388 normal control flow, on error, on an explicit ":throw", and on interrupt.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10389 (Note that errors and interrupts from inside the try conditional are converted
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10390 to exceptions. When not caught, they terminate the script after the finally
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10391 clause has been executed.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10392 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10393
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10394 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10395 : let s:saved_ts = &ts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10396 : set ts=17
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10397 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10398 : " Do the hard work here.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10399 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10400 :finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10401 : let &ts = s:saved_ts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10402 : unlet s:saved_ts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10403 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10404
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10405 This method should be used locally whenever a function or part of a script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10406 changes global settings which need to be restored on failure or normal exit of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10407 that function or script part.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10408
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10409 *break-finally*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10410 Cleanup code works also when the try block or a catch clause is left by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10411 a ":continue", ":break", ":return", or ":finish".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10412 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10413
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10414 :let first = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10415 :while 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10416 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10417 : if first
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10418 : echo "first"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10419 : let first = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10420 : continue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10421 : else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10422 : throw "second"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10423 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10424 : catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10425 : echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10426 : break
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10427 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10428 : echo "cleanup"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10429 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10430 : echo "still in while"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10431 :endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10432 :echo "end"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10433
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10434 This displays "first", "cleanup", "second", "cleanup", and "end". >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10435
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10436 :function! Foo()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10437 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10438 : return 4711
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10439 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10440 : echo "cleanup\n"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10441 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10442 : echo "Foo still active"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10443 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10444 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10445 :echo Foo() "returned by Foo"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10446
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10447 This displays "cleanup" and "4711 returned by Foo". You don't need to add an
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10448 extra ":return" in the finally clause. (Above all, this would override the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10449 return value.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10450
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10451 *except-from-finally*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10452 Using either of ":continue", ":break", ":return", ":finish", or ":throw" in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10453 a finally clause is possible, but not recommended since it abandons the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10454 cleanup actions for the try conditional. But, of course, interrupt and error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10455 exceptions might get raised from a finally clause.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10456 Example where an error in the finally clause stops an interrupt from
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10457 working correctly: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10458
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10459 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10460 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10461 : echo "Press CTRL-C for interrupt"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10462 : while 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10463 : endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10464 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10465 : unlet novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10466 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10467 :catch /novar/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10468 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10469 :echo "Script still running"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10470 :sleep 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10471
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10472 If you need to put commands that could fail into a finally clause, you should
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10473 think about catching or ignoring the errors in these commands, see
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10474 |catch-errors| and |ignore-errors|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10475
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10476
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10477 CATCHING ERRORS *catch-errors*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10478
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10479 If you want to catch specific errors, you just have to put the code to be
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10480 watched in a try block and add a catch clause for the error message. The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10481 presence of the try conditional causes all errors to be converted to an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10482 exception. No message is displayed and |v:errmsg| is not set then. To find
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10483 the right pattern for the ":catch" command, you have to know how the format of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10484 the error exception is.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10485 Error exceptions have the following format: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10486
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10487 Vim({cmdname}):{errmsg}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10488 or >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10489 Vim:{errmsg}
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10490
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10491 {cmdname} is the name of the command that failed; the second form is used when
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10492 the command name is not known. {errmsg} is the error message usually produced
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10493 when the error occurs outside try conditionals. It always begins with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10494 a capital "E", followed by a two or three-digit error number, a colon, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10495 a space.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10496
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10497 Examples:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10498
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10499 The command >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10500 :unlet novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10501 normally produces the error message >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10502 E108: No such variable: "novar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10503 which is converted inside try conditionals to an exception >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10504 Vim(unlet):E108: No such variable: "novar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10505
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10506 The command >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10507 :dwim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10508 normally produces the error message >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10509 E492: Not an editor command: dwim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10510 which is converted inside try conditionals to an exception >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10511 Vim:E492: Not an editor command: dwim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10512
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10513 You can catch all ":unlet" errors by a >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10514 :catch /^Vim(unlet):/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10515 or all errors for misspelled command names by a >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10516 :catch /^Vim:E492:/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10517
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10518 Some error messages may be produced by different commands: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10519 :function nofunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10520 and >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10521 :delfunction nofunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10522 both produce the error message >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10523 E128: Function name must start with a capital: nofunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10524 which is converted inside try conditionals to an exception >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10525 Vim(function):E128: Function name must start with a capital: nofunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10526 or >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10527 Vim(delfunction):E128: Function name must start with a capital: nofunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10528 respectively. You can catch the error by its number independently on the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10529 command that caused it if you use the following pattern: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10530 :catch /^Vim(\a\+):E128:/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10531
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10532 Some commands like >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10533 :let x = novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10534 produce multiple error messages, here: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10535 E121: Undefined variable: novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10536 E15: Invalid expression: novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10537 Only the first is used for the exception value, since it is the most specific
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10538 one (see |except-several-errors|). So you can catch it by >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10539 :catch /^Vim(\a\+):E121:/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10540
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10541 You can catch all errors related to the name "nofunc" by >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10542 :catch /\<nofunc\>/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10543
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10544 You can catch all Vim errors in the ":write" and ":read" commands by >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10545 :catch /^Vim(\(write\|read\)):E\d\+:/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10546
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10547 You can catch all Vim errors by the pattern >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10548 :catch /^Vim\((\a\+)\)\=:E\d\+:/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10549 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10550 *catch-text*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10551 NOTE: You should never catch the error message text itself: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10552 :catch /No such variable/
6647
3af822eb4da5 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 6583
diff changeset
10553 only works in the English locale, but not when the user has selected
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10554 a different language by the |:language| command. It is however helpful to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10555 cite the message text in a comment: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10556 :catch /^Vim(\a\+):E108:/ " No such variable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10557
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10558
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10559 IGNORING ERRORS *ignore-errors*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10560
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10561 You can ignore errors in a specific Vim command by catching them locally: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10562
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10563 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10564 : write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10565 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10566 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10567
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10568 But you are strongly recommended NOT to use this simple form, since it could
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10569 catch more than you want. With the ":write" command, some autocommands could
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10570 be executed and cause errors not related to writing, for instance: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10571
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10572 :au BufWritePre * unlet novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10573
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10574 There could even be such errors you are not responsible for as a script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10575 writer: a user of your script might have defined such autocommands. You would
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10576 then hide the error from the user.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10577 It is much better to use >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10578
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10579 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10580 : write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10581 :catch /^Vim(write):/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10582 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10583
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10584 which only catches real write errors. So catch only what you'd like to ignore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10585 intentionally.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10586
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10587 For a single command that does not cause execution of autocommands, you could
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10588 even suppress the conversion of errors to exceptions by the ":silent!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10589 command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10590 :silent! nunmap k
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10591 This works also when a try conditional is active.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10592
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10593
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10594 CATCHING INTERRUPTS *catch-interrupt*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10595
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10596 When there are active try conditionals, an interrupt (CTRL-C) is converted to
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10597 the exception "Vim:Interrupt". You can catch it like every exception. The
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10598 script is not terminated, then.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10599 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10601 :function! TASK1()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10602 : sleep 10
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10603 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10604
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10605 :function! TASK2()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10606 : sleep 20
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10607 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10608
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10609 :while 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10610 : let command = input("Type a command: ")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10611 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10612 : if command == ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10613 : continue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10614 : elseif command == "END"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10615 : break
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10616 : elseif command == "TASK1"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10617 : call TASK1()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10618 : elseif command == "TASK2"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10619 : call TASK2()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10620 : else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10621 : echo "\nIllegal command:" command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10622 : continue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10623 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10624 : catch /^Vim:Interrupt$/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10625 : echo "\nCommand interrupted"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10626 : " Caught the interrupt. Continue with next prompt.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10627 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10628 :endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10629
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10630 You can interrupt a task here by pressing CTRL-C; the script then asks for
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10631 a new command. If you press CTRL-C at the prompt, the script is terminated.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10632
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10633 For testing what happens when CTRL-C would be pressed on a specific line in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10634 your script, use the debug mode and execute the |>quit| or |>interrupt|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10635 command on that line. See |debug-scripts|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10636
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10637
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10638 CATCHING ALL *catch-all*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10639
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10640 The commands >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10641
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10642 :catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10643 :catch //
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10644 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10645
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10646 catch everything, error exceptions, interrupt exceptions and exceptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10647 explicitly thrown by the |:throw| command. This is useful at the top level of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10648 a script in order to catch unexpected things.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10649 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10650
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10651 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10652 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10653 : " do the hard work here
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10654 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10655 :catch /MyException/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10656 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10657 : " handle known problem
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10658 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10659 :catch /^Vim:Interrupt$/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10660 : echo "Script interrupted"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10661 :catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10662 : echo "Internal error (" . v:exception . ")"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10663 : echo " - occurred at " . v:throwpoint
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10664 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10665 :" end of script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10666
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10667 Note: Catching all might catch more things than you want. Thus, you are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10668 strongly encouraged to catch only for problems that you can really handle by
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10669 specifying a pattern argument to the ":catch".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10670 Example: Catching all could make it nearly impossible to interrupt a script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10671 by pressing CTRL-C: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10672
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10673 :while 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10674 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10675 : sleep 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10676 : catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10677 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10678 :endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10679
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10680
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10681 EXCEPTIONS AND AUTOCOMMANDS *except-autocmd*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10682
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10683 Exceptions may be used during execution of autocommands. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10684
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10685 :autocmd User x try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10686 :autocmd User x throw "Oops!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10687 :autocmd User x catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10688 :autocmd User x echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10689 :autocmd User x endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10690 :autocmd User x throw "Arrgh!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10691 :autocmd User x echo "Should not be displayed"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10692 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10693 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10694 : doautocmd User x
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10695 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10696 : echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10697 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10698
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10699 This displays "Oops!" and "Arrgh!".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10700
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10701 *except-autocmd-Pre*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10702 For some commands, autocommands get executed before the main action of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10703 command takes place. If an exception is thrown and not caught in the sequence
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10704 of autocommands, the sequence and the command that caused its execution are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10705 abandoned and the exception is propagated to the caller of the command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10706 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10707
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10708 :autocmd BufWritePre * throw "FAIL"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10709 :autocmd BufWritePre * echo "Should not be displayed"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10710 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10711 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10712 : write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10713 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10714 : echo "Caught:" v:exception "from" v:throwpoint
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10715 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10716
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10717 Here, the ":write" command does not write the file currently being edited (as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10718 you can see by checking 'modified'), since the exception from the BufWritePre
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10719 autocommand abandons the ":write". The exception is then caught and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10720 script displays: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10721
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10722 Caught: FAIL from BufWrite Auto commands for "*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10723 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10724 *except-autocmd-Post*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10725 For some commands, autocommands get executed after the main action of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10726 command has taken place. If this main action fails and the command is inside
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10727 an active try conditional, the autocommands are skipped and an error exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10728 is thrown that can be caught by the caller of the command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10729 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10730
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10731 :autocmd BufWritePost * echo "File successfully written!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10732 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10733 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10734 : write /i/m/p/o/s/s/i/b/l/e
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10735 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10736 : echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10737 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10738
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10739 This just displays: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10740
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10741 Vim(write):E212: Can't open file for writing (/i/m/p/o/s/s/i/b/l/e)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10742
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10743 If you really need to execute the autocommands even when the main action
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10744 fails, trigger the event from the catch clause.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10745 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10746
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10747 :autocmd BufWritePre * set noreadonly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10748 :autocmd BufWritePost * set readonly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10749 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10750 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10751 : write /i/m/p/o/s/s/i/b/l/e
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10752 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10753 : doautocmd BufWritePost /i/m/p/o/s/s/i/b/l/e
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10754 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10755 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10756 You can also use ":silent!": >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10757
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10758 :let x = "ok"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10759 :let v:errmsg = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10760 :autocmd BufWritePost * if v:errmsg != ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10761 :autocmd BufWritePost * let x = "after fail"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10762 :autocmd BufWritePost * endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10763 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10764 : silent! write /i/m/p/o/s/s/i/b/l/e
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10765 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10766 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10767 :echo x
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10768
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10769 This displays "after fail".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10770
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10771 If the main action of the command does not fail, exceptions from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10772 autocommands will be catchable by the caller of the command: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10773
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10774 :autocmd BufWritePost * throw ":-("
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10775 :autocmd BufWritePost * echo "Should not be displayed"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10776 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10777 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10778 : write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10779 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10780 : echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10781 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10782 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10783 *except-autocmd-Cmd*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10784 For some commands, the normal action can be replaced by a sequence of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10785 autocommands. Exceptions from that sequence will be catchable by the caller
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10786 of the command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10787 Example: For the ":write" command, the caller cannot know whether the file
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10788 had actually been written when the exception occurred. You need to tell it in
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10789 some way. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10790
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10791 :if !exists("cnt")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10792 : let cnt = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10793 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10794 : autocmd BufWriteCmd * if &modified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10795 : autocmd BufWriteCmd * let cnt = cnt + 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10796 : autocmd BufWriteCmd * if cnt % 3 == 2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10797 : autocmd BufWriteCmd * throw "BufWriteCmdError"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10798 : autocmd BufWriteCmd * endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10799 : autocmd BufWriteCmd * write | set nomodified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10800 : autocmd BufWriteCmd * if cnt % 3 == 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10801 : autocmd BufWriteCmd * throw "BufWriteCmdError"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10802 : autocmd BufWriteCmd * endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10803 : autocmd BufWriteCmd * echo "File successfully written!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10804 : autocmd BufWriteCmd * endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10805 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10806 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10807 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10808 : write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10809 :catch /^BufWriteCmdError$/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10810 : if &modified
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10811 : echo "Error on writing (file contents not changed)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10812 : else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10813 : echo "Error after writing"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10814 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10815 :catch /^Vim(write):/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10816 : echo "Error on writing"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10817 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10818
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10819 When this script is sourced several times after making changes, it displays
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10820 first >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10821 File successfully written!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10822 then >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10823 Error on writing (file contents not changed)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10824 then >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10825 Error after writing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10826 etc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10827
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10828 *except-autocmd-ill*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10829 You cannot spread a try conditional over autocommands for different events.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10830 The following code is ill-formed: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10831
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10832 :autocmd BufWritePre * try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10833 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10834 :autocmd BufWritePost * catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10835 :autocmd BufWritePost * echo v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10836 :autocmd BufWritePost * endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10837 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10838 :write
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10839
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10840
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10841 EXCEPTION HIERARCHIES AND PARAMETERIZED EXCEPTIONS *except-hier-param*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10842
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10843 Some programming languages allow to use hierarchies of exception classes or to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10844 pass additional information with the object of an exception class. You can do
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10845 similar things in Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10846 In order to throw an exception from a hierarchy, just throw the complete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10847 class name with the components separated by a colon, for instance throw the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10848 string "EXCEPT:MATHERR:OVERFLOW" for an overflow in a mathematical library.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10849 When you want to pass additional information with your exception class, add
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10850 it in parentheses, for instance throw the string "EXCEPT:IO:WRITEERR(myfile)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10851 for an error when writing "myfile".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10852 With the appropriate patterns in the ":catch" command, you can catch for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10853 base classes or derived classes of your hierarchy. Additional information in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10854 parentheses can be cut out from |v:exception| with the ":substitute" command.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10855 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10856
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10857 :function! CheckRange(a, func)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10858 : if a:a < 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10859 : throw "EXCEPT:MATHERR:RANGE(" . a:func . ")"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10860 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10861 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10862 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10863 :function! Add(a, b)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10864 : call CheckRange(a:a, "Add")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10865 : call CheckRange(a:b, "Add")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10866 : let c = a:a + a:b
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10867 : if c < 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10868 : throw "EXCEPT:MATHERR:OVERFLOW"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10869 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10870 : return c
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10871 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10872 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10873 :function! Div(a, b)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10874 : call CheckRange(a:a, "Div")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10875 : call CheckRange(a:b, "Div")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10876 : if (a:b == 0)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10877 : throw "EXCEPT:MATHERR:ZERODIV"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10878 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10879 : return a:a / a:b
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10880 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10881 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10882 :function! Write(file)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10883 : try
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
10884 : execute "write" fnameescape(a:file)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10885 : catch /^Vim(write):/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10886 : throw "EXCEPT:IO(" . getcwd() . ", " . a:file . "):WRITEERR"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10887 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10888 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10889 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10890 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10891 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10892 : " something with arithmetics and I/O
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10893 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10894 :catch /^EXCEPT:MATHERR:RANGE/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10895 : let function = substitute(v:exception, '.*(\(\a\+\)).*', '\1', "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10896 : echo "Range error in" function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10897 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10898 :catch /^EXCEPT:MATHERR/ " catches OVERFLOW and ZERODIV
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10899 : echo "Math error"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10900 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10901 :catch /^EXCEPT:IO/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10902 : let dir = substitute(v:exception, '.*(\(.\+\),\s*.\+).*', '\1', "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10903 : let file = substitute(v:exception, '.*(.\+,\s*\(.\+\)).*', '\1', "")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10904 : if file !~ '^/'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10905 : let file = dir . "/" . file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10906 : endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10907 : echo 'I/O error for "' . file . '"'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10908 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10909 :catch /^EXCEPT/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10910 : echo "Unspecified error"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10911 :
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10912 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10913
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10914 The exceptions raised by Vim itself (on error or when pressing CTRL-C) use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10915 a flat hierarchy: they are all in the "Vim" class. You cannot throw yourself
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10916 exceptions with the "Vim" prefix; they are reserved for Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10917 Vim error exceptions are parameterized with the name of the command that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10918 failed, if known. See |catch-errors|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10919
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10920
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10921 PECULIARITIES
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10922 *except-compat*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10923 The exception handling concept requires that the command sequence causing the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10924 exception is aborted immediately and control is transferred to finally clauses
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10925 and/or a catch clause.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10926
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10927 In the Vim script language there are cases where scripts and functions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10928 continue after an error: in functions without the "abort" flag or in a command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10929 after ":silent!", control flow goes to the following line, and outside
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10930 functions, control flow goes to the line following the outermost ":endwhile"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10931 or ":endif". On the other hand, errors should be catchable as exceptions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10932 (thus, requiring the immediate abortion).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10933
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10934 This problem has been solved by converting errors to exceptions and using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10935 immediate abortion (if not suppressed by ":silent!") only when a try
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10936 conditional is active. This is no restriction since an (error) exception can
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10937 be caught only from an active try conditional. If you want an immediate
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10938 termination without catching the error, just use a try conditional without
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10939 catch clause. (You can cause cleanup code being executed before termination
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10940 by specifying a finally clause.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10941
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10942 When no try conditional is active, the usual abortion and continuation
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10943 behavior is used instead of immediate abortion. This ensures compatibility of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10944 scripts written for Vim 6.1 and earlier.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10945
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10946 However, when sourcing an existing script that does not use exception handling
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10947 commands (or when calling one of its functions) from inside an active try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10948 conditional of a new script, you might change the control flow of the existing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10949 script on error. You get the immediate abortion on error and can catch the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10950 error in the new script. If however the sourced script suppresses error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10951 messages by using the ":silent!" command (checking for errors by testing
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10952 |v:errmsg| if appropriate), its execution path is not changed. The error is
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
10953 not converted to an exception. (See |:silent|.) So the only remaining cause
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10954 where this happens is for scripts that don't care about errors and produce
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10955 error messages. You probably won't want to use such code from your new
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10956 scripts.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10957
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10958 *except-syntax-err*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10959 Syntax errors in the exception handling commands are never caught by any of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10960 the ":catch" commands of the try conditional they belong to. Its finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10961 clauses, however, is executed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10962 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10963
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10964 :try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10965 : try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10966 : throw 4711
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10967 : catch /\(/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10968 : echo "in catch with syntax error"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10969 : catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10970 : echo "inner catch-all"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10971 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10972 : echo "inner finally"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10973 : endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10974 :catch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10975 : echo 'outer catch-all caught "' . v:exception . '"'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10976 : finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10977 : echo "outer finally"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10978 :endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10979
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10980 This displays: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10981 inner finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10982 outer catch-all caught "Vim(catch):E54: Unmatched \("
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10983 outer finally
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10984 The original exception is discarded and an error exception is raised, instead.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10985
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10986 *except-single-line*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10987 The ":try", ":catch", ":finally", and ":endtry" commands can be put on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10988 a single line, but then syntax errors may make it difficult to recognize the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10989 "catch" line, thus you better avoid this.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10990 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10991 :try | unlet! foo # | catch | endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10992 raises an error exception for the trailing characters after the ":unlet!"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10993 argument, but does not see the ":catch" and ":endtry" commands, so that the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10994 error exception is discarded and the "E488: Trailing characters" message gets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10995 displayed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10996
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10997 *except-several-errors*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10998 When several errors appear in a single command, the first error message is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10999 usually the most specific one and therefor converted to the error exception.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11000 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11001 echo novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11002 causes >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11003 E121: Undefined variable: novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11004 E15: Invalid expression: novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11005 The value of the error exception inside try conditionals is: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11006 Vim(echo):E121: Undefined variable: novar
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11007 < *except-syntax-error*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11008 But when a syntax error is detected after a normal error in the same command,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11009 the syntax error is used for the exception being thrown.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11010 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11011 unlet novar #
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11012 causes >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11013 E108: No such variable: "novar"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11014 E488: Trailing characters
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11015 The value of the error exception inside try conditionals is: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11016 Vim(unlet):E488: Trailing characters
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11017 This is done because the syntax error might change the execution path in a way
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11018 not intended by the user. Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11019 try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11020 try | unlet novar # | catch | echo v:exception | endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11021 catch /.*/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11022 echo "outer catch:" v:exception
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11023 endtry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11024 This displays "outer catch: Vim(unlet):E488: Trailing characters", and then
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11025 a "E600: Missing :endtry" error message is given, see |except-single-line|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11026
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11027 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11028 9. Examples *eval-examples*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11029
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11030 Printing in Binary ~
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11031 >
2033
de5a43c5eedc Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents: 1998
diff changeset
11032 :" The function Nr2Bin() returns the binary string representation of a number.
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11033 :func Nr2Bin(nr)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11034 : let n = a:nr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11035 : let r = ""
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11036 : while n
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11037 : let r = '01'[n % 2] . r
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11038 : let n = n / 2
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11039 : endwhile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11040 : return r
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11041 :endfunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11042
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11043 :" The function String2Bin() converts each character in a string to a
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11044 :" binary string, separated with dashes.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11045 :func String2Bin(str)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11046 : let out = ''
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11047 : for ix in range(strlen(a:str))
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11048 : let out = out . '-' . Nr2Bin(char2nr(a:str[ix]))
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11049 : endfor
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11050 : return out[1:]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11051 :endfunc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11052
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11053 Example of its use: >
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11054 :echo Nr2Bin(32)
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11055 result: "100000" >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11056 :echo String2Bin("32")
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11057 result: "110011-110010"
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11058
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11059
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11060 Sorting lines ~
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11061
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11062 This example sorts lines with a specific compare function. >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11063
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11064 :func SortBuffer()
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11065 : let lines = getline(1, '$')
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11066 : call sort(lines, function("Strcmp"))
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11067 : call setline(1, lines)
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11068 :endfunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11069
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11070 As a one-liner: >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11071 :call setline(1, sort(getline(1, '$'), function("Strcmp")))
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11072
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11073
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11074 scanf() replacement ~
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11075 *sscanf*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11076 There is no sscanf() function in Vim. If you need to extract parts from a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11077 line, you can use matchstr() and substitute() to do it. This example shows
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11078 how to get the file name, line number and column number out of a line like
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11079 "foobar.txt, 123, 45". >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11080 :" Set up the match bit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11081 :let mx='\(\f\+\),\s*\(\d\+\),\s*\(\d\+\)'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11082 :"get the part matching the whole expression
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11083 :let l = matchstr(line, mx)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11084 :"get each item out of the match
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11085 :let file = substitute(l, mx, '\1', '')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11086 :let lnum = substitute(l, mx, '\2', '')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11087 :let col = substitute(l, mx, '\3', '')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11088
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11089 The input is in the variable "line", the results in the variables "file",
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11090 "lnum" and "col". (idea from Michael Geddes)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11091
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11092
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11093 getting the scriptnames in a Dictionary ~
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11094 *scriptnames-dictionary*
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11095 The |:scriptnames| command can be used to get a list of all script files that
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11096 have been sourced. There is no equivalent function or variable for this
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11097 (because it's rarely needed). In case you need to manipulate the list this
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11098 code can be used: >
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11099 " Get the output of ":scriptnames" in the scriptnames_output variable.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11100 let scriptnames_output = ''
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11101 redir => scriptnames_output
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11102 silent scriptnames
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11103 redir END
12785
65d7fd8381a3 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 12756
diff changeset
11104
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
11105 " Split the output into lines and parse each line. Add an entry to the
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11106 " "scripts" dictionary.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11107 let scripts = {}
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11108 for line in split(scriptnames_output, "\n")
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11109 " Only do non-blank lines.
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11110 if line =~ '\S'
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11111 " Get the first number in the line.
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
11112 let nr = matchstr(line, '\d\+')
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11113 " Get the file name, remove the script number " 123: ".
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
11114 let name = substitute(line, '.\+:\s*', '', '')
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11115 " Add an item to the Dictionary
1621
82b5078be2dd updated for version 7.2a
vimboss
parents: 1609
diff changeset
11116 let scripts[nr] = name
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11117 endif
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11118 endfor
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11119 unlet scriptnames_output
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11120
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11121 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11122 10. No +eval feature *no-eval-feature*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11123
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11124 When the |+eval| feature was disabled at compile time, none of the expression
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11125 evaluation commands are available. To prevent this from causing Vim scripts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11126 to generate all kinds of errors, the ":if" and ":endif" commands are still
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11127 recognized, though the argument of the ":if" and everything between the ":if"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11128 and the matching ":endif" is ignored. Nesting of ":if" blocks is allowed, but
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11129 only if the commands are at the start of the line. The ":else" command is not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11130 recognized.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11131
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11132 Example of how to avoid executing commands when the |+eval| feature is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11133 missing: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11134
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11135 :if 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11136 : echo "Expression evaluation is compiled in"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11137 :else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11138 : echo "You will _never_ see this message"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11139 :endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11140
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
11141 To execute a command only when the |+eval| feature is disabled requires a trick,
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
11142 as this example shows: >
11414
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11143
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11144 silent! while 0
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11145 set history=111
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11146 silent! endwhile
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11147
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11148 When the |+eval| feature is available the command is skipped because of the
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11149 "while 0". Without the |+eval| feature the "while 0" is an error, which is
c95c5ddc3b0d patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents: 11407
diff changeset
11150 silently ignored, and the command is executed.
11347
4aae8146c21f Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 11313
diff changeset
11151
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11152 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11153 11. The sandbox *eval-sandbox* *sandbox* *E48*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11154
2350
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
11155 The 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' and
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
11156 'foldtext' options may be evaluated in a sandbox. This means that you are
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
11157 protected from these expressions having nasty side effects. This gives some
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
11158 safety for when these options are set from a modeline. It is also used when
06feaf4fe36a Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents: 2345
diff changeset
11159 the command from a tags file is executed and for CTRL-R = in the command line.
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11160 The sandbox is also used for the |:sandbox| command.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11161
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11162 These items are not allowed in the sandbox:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11163 - changing the buffer text
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11164 - defining or changing mapping, autocommands, functions, user commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11165 - setting certain options (see |option-summary|)
1156
9cec4e0b792a updated for version 7.1a
vimboss
parents: 1104
diff changeset
11166 - setting certain v: variables (see |v:var|) *E794*
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11167 - executing a shell command
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11168 - reading or writing a file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11169 - jumping to another buffer or editing a file
625
81fe2ccc1207 updated for version 7.0179
vimboss
parents: 620
diff changeset
11170 - executing Python, Perl, etc. commands
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11171 This is not guaranteed 100% secure, but it should block most attacks.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11172
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11173 *:san* *:sandbox*
401
4a1ead01d30b updated for version 7.0105
vimboss
parents: 395
diff changeset
11174 :san[dbox] {cmd} Execute {cmd} in the sandbox. Useful to evaluate an
29
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11175 option that may have been set from a modeline, e.g.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11176 'foldexpr'.
ac33b7c03fac updated for version 7.0018
vimboss
parents: 26
diff changeset
11177
634
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11178 *sandbox-option*
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11179 A few options contain an expression. When this expression is evaluated it may
790
c8680debe1cc updated for version 7.0230
vimboss
parents: 786
diff changeset
11180 have to be done in the sandbox to avoid a security risk. But the sandbox is
634
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11181 restrictive, thus this only happens when the option was set from an insecure
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11182 location. Insecure in this context are:
843
9f279ebda751 updated for version 7.0f01
vimboss
parents: 842
diff changeset
11183 - sourcing a .vimrc or .exrc in the current directory
634
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11184 - while executing in the sandbox
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11185 - value coming from a modeline
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11186
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11187 Note that when in the sandbox and saving an option value and restoring it, the
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11188 option will still be marked as it was set in the sandbox.
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11189
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11190 ==============================================================================
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11191 12. Textlock *textlock*
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11192
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11193 In a few situations it is not allowed to change the text in the buffer, jump
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11194 to another window and some other things that might confuse or break what Vim
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11195 is currently doing. This mostly applies to things that happen when Vim is
9877
7da89d9c744b commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents: 9861
diff changeset
11196 actually doing something else. For example, evaluating the 'balloonexpr' may
634
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11197 happen any moment the mouse cursor is resting at some position.
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11198
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11199 This is not allowed when the textlock is active:
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11200 - changing the buffer text
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11201 - jumping to another buffer or window
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11202 - editing another file
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11203 - closing a window or quitting Vim
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11204 - etc.
1c586ee8dd45 updated for version 7.0183
vimboss
parents: 626
diff changeset
11205
9887
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11206 ==============================================================================
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11207 13. Testing *testing*
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11208
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11209 Vim can be tested after building it, usually with "make test".
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11210 The tests are located in the directory "src/testdir".
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11211
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11212 There are several types of tests added over time:
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11213 test33.in oldest, don't add any more
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11214 test_something.in old style tests
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11215 test_something.vim new style tests
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11216
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11217 *new-style-testing*
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11218 New tests should be added as new style tests. These use functions such as
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11219 |assert_equal()| to keep the test commands and the expected result in one
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11220 place.
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11221 *old-style-testing*
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11222 In some cases an old style test needs to be used. E.g. when testing Vim
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11223 without the |+eval| feature.
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11224
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11225 Find more information in the file src/testdir/README.txt.
b4da19b7539f commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents: 9881
diff changeset
11226
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11227
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11228 vim:tw=78:ts=8:ft=help:norl: