Mercurial > vim
annotate runtime/doc/eval.txt @ 20039:41d0b22db011 v8.2.0575
patch 8.2.0575: :digraph! not tested
Commit: https://github.com/vim/vim/commit/e3242346cf1c2ff8b0315cb2cb98e731bfa952c0
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Apr 13 19:46:43 2020 +0200
patch 8.2.0575: :digraph! not tested
Problem: :digraph! not tested.
Solution: Add a test. (Dominique Pelle, closes https://github.com/vim/vim/issues/5925)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 13 Apr 2020 20:00:04 +0200 |
parents | f36f10d90378 |
children | bd021eb62e73 |
rev | line source |
---|---|
20037
f36f10d90378
patch 8.2.0574: ipv6 feature not shown in :version output
Bram Moolenaar <Bram@vim.org>
parents:
19968
diff
changeset
|
1 *eval.txt* For Vim version 8.2. Last change: 2020 Apr 13 |
1621 | 2 |
3 | |
4 VIM REFERENCE MANUAL by Bram Moolenaar | |
7 | 5 |
6 | |
7 Expression evaluation *expression* *expr* *E15* *eval* | |
8 | |
9 Using expressions is introduced in chapter 41 of the user manual |usr_41.txt|. | |
10 | |
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 | 13 |no-eval-feature|. |
7 | 14 |
19181
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
15 This file is about the backwards compatible Vim script. For Vim9 script, |
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
16 which executes much faster, supports type checking and much more, see |
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
17 |vim9.txt|. |
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
18 |
85 | 19 1. Variables |variables| |
20 1.1 Variable types | |
87 | 21 1.2 Function references |Funcref| |
161 | 22 1.3 Lists |Lists| |
99 | 23 1.4 Dictionaries |Dictionaries| |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
24 1.5 Blobs |Blobs| |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
25 1.6 More about variables |more-variables| |
85 | 26 2. Expression syntax |expression-syntax| |
27 3. Internal variable |internal-variables| | |
28 4. Builtin Functions |functions| | |
29 5. Defining functions |user-functions| | |
30 6. Curly braces names |curly-braces-names| | |
31 7. Commands |expression-commands| | |
32 8. Exception handling |exception-handling| | |
33 9. Examples |eval-examples| | |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
34 10. Vim script version |vimscript-version| |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
35 11. No +eval feature |no-eval-feature| |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
36 12. The sandbox |eval-sandbox| |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
37 13. Textlock |textlock| |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
38 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
39 Testing support is documented in |testing.txt|. |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
40 Profiling is documented at |profiling|. |
7 | 41 |
42 ============================================================================== | |
43 1. Variables *variables* | |
44 | |
85 | 45 1.1 Variable types ~ |
15579
391ac26c9412
patch 8.1.0797: error E898 is used twice
Bram Moolenaar <Bram@vim.org>
parents:
15571
diff
changeset
|
46 *E712* *E896* *E897* *E899* |
17909 | 47 There are ten types of variables: |
1621 | 48 |
18831 | 49 *Number* *Integer* |
50 Number A 32 or 64 bit signed number. |expr-number| | |
19477
2bb0e80fcd32
patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Bram Moolenaar <Bram@vim.org>
parents:
19400
diff
changeset
|
51 The number of bits is available in |v:numbersize|. |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
52 Examples: -123 0x10 0177 0b1011 |
99 | 53 |
1621 | 54 Float A floating point number. |floating-point-format| *Float* |
55 {only when compiled with the |+float| feature} | |
56 Examples: 123.456 1.15e-6 -1.1e3 | |
57 | |
9041
34c45ee4210d
commit https://github.com/vim/vim/commit/06481427005a9dae39721087df94855f7d4d1feb
Christian Brabandt <cb@256bit.org>
parents:
8951
diff
changeset
|
58 *E928* |
99 | 59 String A NUL terminated string of 8-bit unsigned characters (bytes). |
1621 | 60 |expr-string| Examples: "ab\txx\"--" 'x-z''a,c' |
99 | 61 |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
62 List An ordered sequence of items, see |List| for details. |
99 | 63 Example: [1, 2, ['a', 'b']] |
55 | 64 |
370 | 65 Dictionary An associative, unordered array: Each entry has a key and a |
66 value. |Dictionary| | |
17368
6604ecb7a615
patch 8.1.1683: dictionary with string keys is longer than needed
Bram Moolenaar <Bram@vim.org>
parents:
17366
diff
changeset
|
67 Examples: |
6604ecb7a615
patch 8.1.1683: dictionary with string keys is longer than needed
Bram Moolenaar <Bram@vim.org>
parents:
17366
diff
changeset
|
68 {'blue': "#0000ff", 'red': "#ff0000"} |
17413
40417757dffd
patch 8.1.1705: using ~{} for a literal dict is not nice
Bram Moolenaar <Bram@vim.org>
parents:
17387
diff
changeset
|
69 #{blue: "#0000ff", red: "#ff0000"} |
370 | 70 |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
71 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
|
72 Example: function("strlen") |
9104
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
73 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
|
74 like a Partial. |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
75 Example: function("Callback", [arg], myDict) |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
76 |
8178
e77efd7a7dad
commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Christian Brabandt <cb@256bit.org>
parents:
8148
diff
changeset
|
77 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
|
78 |
8881
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
79 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
|
80 |
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
81 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
|
82 |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
83 Blob Binary Large Object. Stores any sequence of bytes. See |Blob| |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
84 for details |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
85 Example: 0zFF00ED015DAF |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
86 0z is an empty Blob. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
87 |
55 | 88 The Number and String types are converted automatically, depending on how they |
89 are used. | |
7 | 90 |
91 Conversion from a Number to a String is by making the ASCII representation of | |
2581 | 92 the Number. Examples: |
93 Number 123 --> String "123" ~ | |
94 Number 0 --> String "0" ~ | |
95 Number -1 --> String "-1" ~ | |
2152 | 96 *octal* |
7477
05cf4cc72a9f
commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents:
7384
diff
changeset
|
97 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
|
98 a number. Hexadecimal "0xf9", Octal "017", and Binary "0b10" numbers are |
18080
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
99 recognized (NOTE: when using |scriptversion-4| octal is not recognized). If |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
100 the String doesn't start with digits, the result is zero. |
7477
05cf4cc72a9f
commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents:
7384
diff
changeset
|
101 Examples: |
2581 | 102 String "456" --> Number 456 ~ |
103 String "6bar" --> Number 6 ~ | |
104 String "foo" --> Number 0 ~ | |
105 String "0xf1" --> Number 241 ~ | |
106 String "0100" --> Number 64 ~ | |
7477
05cf4cc72a9f
commit https://github.com/vim/vim/commit/fa7353428f705f7a13465a1943dddeede4083023
Christian Brabandt <cb@256bit.org>
parents:
7384
diff
changeset
|
107 String "0b101" --> Number 5 ~ |
2581 | 108 String "-8" --> Number -8 ~ |
109 String "+8" --> Number 0 ~ | |
7 | 110 |
111 To force conversion from String to Number, add zero to it: > | |
112 :echo "0100" + 0 | |
782 | 113 < 64 ~ |
114 | |
115 To avoid a leading zero to cause octal conversion, or for using a different | |
116 base, use |str2nr()|. | |
7 | 117 |
15512 | 118 *TRUE* *FALSE* *Boolean* |
7 | 119 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
|
120 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
|
121 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
|
122 |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
123 Note that in the command: > |
7 | 124 :if "foo" |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
125 :" NOT executed |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
126 "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
|
127 non-zero number it means TRUE: > |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
128 :if "8foo" |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
129 :" executed |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
130 To test for a non-empty string, use empty(): > |
3893 | 131 :if !empty("foo") |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
132 < |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
133 *non-zero-arg* |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
134 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
|
135 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
|
136 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
|
137 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
|
138 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
|
139 |
8061
abd64cf67bcf
commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
140 *E745* *E728* *E703* *E729* *E730* *E731* *E908* *E910* *E913* |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
141 *E974* *E975* *E976* |
15512 | 142 |List|, |Dictionary|, |Funcref|, |Job|, |Channel| and |Blob| types are not |
143 automatically converted. | |
85 | 144 |
1621 | 145 *E805* *E806* *E808* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
146 When mixing Number and Float the Number is converted to Float. Otherwise |
1621 | 147 there is no automatic conversion of Float. You can use str2float() for String |
148 to Float, printf() for Float to String and float2nr() for Float to Number. | |
149 | |
8061
abd64cf67bcf
commit https://github.com/vim/vim/commit/38a55639d603823efcf2d2fdf542dbffdeb60b75
Christian Brabandt <cb@256bit.org>
parents:
8031
diff
changeset
|
150 *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
|
151 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
|
152 |
8512
5104f96b6ecf
commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents:
8502
diff
changeset
|
153 *no-type-checking* |
5104f96b6ecf
commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Christian Brabandt <cb@256bit.org>
parents:
8502
diff
changeset
|
154 You will not get an error if you try to change the type of a variable. |
85 | 155 |
156 | |
87 | 157 1.2 Function references ~ |
153 | 158 *Funcref* *E695* *E718* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
159 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
|
160 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
|
161 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
|
162 around the arguments, to invoke the function it refers to. Example: > |
55 | 163 |
164 :let Fn = function("MyFunc") | |
165 :echo Fn() | |
114 | 166 < *E704* *E705* *E707* |
819 | 167 A Funcref variable must start with a capital, "s:", "w:", "t:" or "b:". You |
5340 | 168 can use "g:" but the following name must still start with a capital. You |
819 | 169 cannot have both a Funcref variable and a function with the same name. |
85 | 170 |
114 | 171 A special case is defining a function and directly assigning its Funcref to a |
172 Dictionary entry. Example: > | |
173 :function dict.init() dict | |
174 : let self.val = 0 | |
175 :endfunction | |
176 | |
177 The key of the Dictionary can start with a lower case letter. The actual | |
178 function name is not used here. Also see |numbered-function|. | |
179 | |
180 A Funcref can also be used with the |:call| command: > | |
181 :call Fn() | |
182 :call dict.init() | |
85 | 183 |
184 The name of the referenced function can be obtained with |string()|. > | |
119 | 185 :let func = string(Fn) |
85 | 186 |
187 You can use |call()| to invoke a Funcref and use a list variable for the | |
188 arguments: > | |
119 | 189 :let r = call(Fn, mylist) |
9104
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 *Partial* |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
192 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
|
193 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
|
194 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
|
195 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
|
196 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
197 let Cb = function('Callback', ['foo'], myDict) |
14999 | 198 call Cb('bar') |
9104
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
199 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
200 This will invoke the function as if using: > |
14999 | 201 call myDict.Callback('foo', 'bar') |
9104
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
202 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
203 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
|
204 |ch_open()|. |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
205 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
206 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
|
207 a member of the Dictionary: > |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
208 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
209 let myDict.myFunction = MyFunction |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
210 call myDict.myFunction() |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
211 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
212 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
|
213 "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
|
214 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
|
215 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
216 let otherDict.myFunction = myDict.myFunction |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
217 call otherDict.myFunction() |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
218 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
219 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
|
220 this won't happen: > |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
221 |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
222 let myDict.myFunction = function(MyFunction, myDict) |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
223 let otherDict.myFunction = myDict.myFunction |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
224 call otherDict.myFunction() |
2242a5766417
commit https://github.com/vim/vim/commit/1d429610bf9e99a6252be8abbc910d6667e4d1da
Christian Brabandt <cb@256bit.org>
parents:
9097
diff
changeset
|
225 |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
226 Here "self" will be "myDict", because it was bound explicitly. |
85 | 227 |
228 | |
87 | 229 1.3 Lists ~ |
5814 | 230 *list* *List* *Lists* *E686* |
55 | 231 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
|
232 can be accessed by their index number. Items can be added and removed at any |
55 | 233 position in the sequence. |
234 | |
85 | 235 |
236 List creation ~ | |
237 *E696* *E697* | |
55 | 238 A List is created with a comma separated list of items in square brackets. |
85 | 239 Examples: > |
240 :let mylist = [1, two, 3, "four"] | |
241 :let emptylist = [] | |
55 | 242 |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
243 An item can be any expression. Using a List for an item creates a |
842 | 244 List of Lists: > |
85 | 245 :let nestlist = [[11, 12], [21, 22], [31, 32]] |
55 | 246 |
247 An extra comma after the last item is ignored. | |
248 | |
85 | 249 |
250 List index ~ | |
251 *list-index* *E684* | |
55 | 252 An item in the List can be accessed by putting the index in square brackets |
85 | 253 after the List. Indexes are zero-based, thus the first item has index zero. > |
254 :let item = mylist[0] " get the first item: 1 | |
55 | 255 :let item = mylist[2] " get the third item: 3 |
85 | 256 |
87 | 257 When the resulting item is a list this can be repeated: > |
85 | 258 :let item = nestlist[0][1] " get the first list, second item: 12 |
55 | 259 < |
85 | 260 A negative index is counted from the end. Index -1 refers to the last item in |
261 the List, -2 to the last but one item, etc. > | |
55 | 262 :let last = mylist[-1] " get the last item: "four" |
263 | |
85 | 264 To avoid an error for an invalid index use the |get()| function. When an item |
87 | 265 is not available it returns zero or the default value you specify: > |
85 | 266 :echo get(mylist, idx) |
267 :echo get(mylist, idx, "NONE") | |
268 | |
269 | |
270 List concatenation ~ | |
271 | |
272 Two lists can be concatenated with the "+" operator: > | |
273 :let longlist = mylist + [5, 6] | |
119 | 274 :let mylist += [7, 8] |
85 | 275 |
276 To prepend or append an item turn the item into a list by putting [] around | |
277 it. To change a list in-place see |list-modification| below. | |
278 | |
279 | |
280 Sublist ~ | |
9737
35ce559b8553
commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents:
9723
diff
changeset
|
281 *sublist* |
55 | 282 A part of the List can be obtained by specifying the first and last index, |
283 separated by a colon in square brackets: > | |
85 | 284 :let shortlist = mylist[2:-1] " get List [3, "four"] |
55 | 285 |
286 Omitting the first index is similar to zero. Omitting the last index is | |
1156 | 287 similar to -1. > |
90 | 288 :let endlist = mylist[2:] " from item 2 to the end: [3, "four"] |
289 :let shortlist = mylist[2:2] " List with one item: [3] | |
290 :let otherlist = mylist[:] " make a copy of the List | |
85 | 291 |
842 | 292 If the first index is beyond the last item of the List or the second item is |
293 before the first item, the result is an empty list. There is no error | |
294 message. | |
295 | |
296 If the second index is equal to or greater than the length of the list the | |
297 length minus one is used: > | |
829 | 298 :let mylist = [0, 1, 2, 3] |
299 :echo mylist[2:8] " result: [2, 3] | |
300 | |
270 | 301 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
|
302 using a single letter variable before the ":". Insert a space when needed: |
270 | 303 mylist[s : e]. |
304 | |
85 | 305 |
306 List identity ~ | |
99 | 307 *list-identity* |
85 | 308 When variable "aa" is a list and you assign it to another variable "bb", both |
309 variables refer to the same list. Thus changing the list "aa" will also | |
310 change "bb": > | |
311 :let aa = [1, 2, 3] | |
312 :let bb = aa | |
313 :call add(aa, 4) | |
314 :echo bb | |
114 | 315 < [1, 2, 3, 4] |
85 | 316 |
317 Making a copy of a list is done with the |copy()| function. Using [:] also | |
318 works, as explained above. This creates a shallow copy of the list: Changing | |
87 | 319 a list item in the list will also change the item in the copied list: > |
85 | 320 :let aa = [[1, 'a'], 2, 3] |
321 :let bb = copy(aa) | |
114 | 322 :call add(aa, 4) |
85 | 323 :let aa[0][1] = 'aaa' |
324 :echo aa | |
114 | 325 < [[1, aaa], 2, 3, 4] > |
85 | 326 :echo bb |
114 | 327 < [[1, aaa], 2, 3] |
85 | 328 |
87 | 329 To make a completely independent list use |deepcopy()|. This also makes a |
114 | 330 copy of the values in the list, recursively. Up to a hundred levels deep. |
85 | 331 |
332 The operator "is" can be used to check if two variables refer to the same | |
114 | 333 List. "isnot" does the opposite. In contrast "==" compares if two lists have |
87 | 334 the same value. > |
335 :let alist = [1, 2, 3] | |
336 :let blist = [1, 2, 3] | |
337 :echo alist is blist | |
114 | 338 < 0 > |
87 | 339 :echo alist == blist |
114 | 340 < 1 |
85 | 341 |
323 | 342 Note about comparing lists: Two lists are considered equal if they have the |
343 same length and all items compare equal, as with using "==". There is one | |
388 | 344 exception: When comparing a number with a string they are considered |
345 different. There is no automatic type conversion, as with using "==" on | |
346 variables. Example: > | |
347 echo 4 == "4" | |
323 | 348 < 1 > |
388 | 349 echo [4] == ["4"] |
323 | 350 < 0 |
351 | |
388 | 352 Thus comparing Lists is more strict than comparing numbers and strings. You |
1621 | 353 can compare simple values this way too by putting them in a list: > |
388 | 354 |
355 :let a = 5 | |
356 :let b = "5" | |
1621 | 357 :echo a == b |
388 | 358 < 1 > |
1621 | 359 :echo [a] == [b] |
388 | 360 < 0 |
323 | 361 |
85 | 362 |
363 List unpack ~ | |
364 | |
365 To unpack the items in a list to individual variables, put the variables in | |
366 square brackets, like list items: > | |
367 :let [var1, var2] = mylist | |
368 | |
369 When the number of variables does not match the number of items in the list | |
370 this produces an error. To handle any extra items from the list append ";" | |
371 and a variable name: > | |
372 :let [var1, var2; rest] = mylist | |
373 | |
374 This works like: > | |
375 :let var1 = mylist[0] | |
376 :let var2 = mylist[1] | |
95 | 377 :let rest = mylist[2:] |
85 | 378 |
379 Except that there is no error if there are only two items. "rest" will be an | |
380 empty list then. | |
381 | |
382 | |
383 List modification ~ | |
384 *list-modification* | |
87 | 385 To change a specific item of a list use |:let| this way: > |
85 | 386 :let list[4] = "four" |
387 :let listlist[0][3] = item | |
388 | |
87 | 389 To change part of a list you can specify the first and last item to be |
114 | 390 modified. The value must at least have the number of items in the range: > |
87 | 391 :let list[3:5] = [3, 4, 5] |
392 | |
85 | 393 Adding and removing items from a list is done with functions. Here are a few |
394 examples: > | |
395 :call insert(list, 'a') " prepend item 'a' | |
396 :call insert(list, 'a', 3) " insert item 'a' before list[3] | |
397 :call add(list, "new") " append String item | |
114 | 398 :call add(list, [1, 2]) " append a List as one new item |
85 | 399 :call extend(list, [1, 2]) " extend the list with two more items |
400 :let i = remove(list, 3) " remove item 3 | |
108 | 401 :unlet list[3] " idem |
85 | 402 :let l = remove(list, 3, -1) " remove items 3 to last item |
108 | 403 :unlet list[3 : ] " idem |
114 | 404 :call filter(list, 'v:val !~ "x"') " remove items with an 'x' |
405 | |
406 Changing the order of items in a list: > | |
87 | 407 :call sort(list) " sort a list alphabetically |
408 :call reverse(list) " reverse the order of items | |
5747 | 409 :call uniq(sort(list)) " sort and remove duplicates |
87 | 410 |
85 | 411 |
412 For loop ~ | |
413 | |
87 | 414 The |:for| loop executes commands for each item in a list. A variable is set |
415 to each item in the list in sequence. Example: > | |
114 | 416 :for item in mylist |
417 : call Doit(item) | |
85 | 418 :endfor |
419 | |
420 This works like: > | |
421 :let index = 0 | |
422 :while index < len(mylist) | |
114 | 423 : let item = mylist[index] |
424 : :call Doit(item) | |
85 | 425 : let index = index + 1 |
426 :endwhile | |
427 | |
95 | 428 If all you want to do is modify each item in the list then the |map()| |
114 | 429 function will be a simpler method than a for loop. |
95 | 430 |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
431 Just like the |:let| command, |:for| also accepts a list of variables. This |
85 | 432 requires the argument to be a list of lists. > |
433 :for [lnum, col] in [[1, 3], [2, 8], [3, 0]] | |
434 : call Doit(lnum, col) | |
435 :endfor | |
436 | |
437 This works like a |:let| command is done for each list item. Again, the types | |
438 must remain the same to avoid an error. | |
439 | |
114 | 440 It is also possible to put remaining items in a List variable: > |
85 | 441 :for [i, j; rest] in listlist |
442 : call Doit(i, j) | |
443 : if !empty(rest) | |
444 : echo "remainder: " . string(rest) | |
445 : endif | |
446 :endfor | |
447 | |
448 | |
449 List functions ~ | |
114 | 450 *E714* |
85 | 451 Functions that are useful with a List: > |
87 | 452 :let r = call(funcname, list) " call a function with an argument list |
85 | 453 :if empty(list) " check if list is empty |
102 | 454 :let l = len(list) " number of items in list |
455 :let big = max(list) " maximum value in list | |
456 :let small = min(list) " minimum value in list | |
87 | 457 :let xs = count(list, 'x') " count nr of times 'x' appears in list |
458 :let i = index(list, 'x') " index of first 'x' in list | |
85 | 459 :let lines = getline(1, 10) " get ten text lines from buffer |
460 :call append('$', lines) " append text lines in buffer | |
95 | 461 :let list = split("a b c") " create list from items in a string |
462 :let string = join(list, ', ') " create string from list items | |
102 | 463 :let s = string(list) " String representation of list |
464 :call map(list, '">> " . v:val') " prepend ">> " to each item | |
99 | 465 |
258 | 466 Don't forget that a combination of features can make things simple. For |
467 example, to add up all the numbers in a list: > | |
468 :exe 'let sum = ' . join(nrlist, '+') | |
469 | |
99 | 470 |
471 1.4 Dictionaries ~ | |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
472 *dict* *Dict* *Dictionaries* *Dictionary* |
99 | 473 A Dictionary is an associative array: Each entry has a key and a value. The |
114 | 474 entry can be located with the key. The entries are stored without a specific |
475 ordering. | |
99 | 476 |
477 | |
478 Dictionary creation ~ | |
114 | 479 *E720* *E721* *E722* *E723* |
99 | 480 A Dictionary is created with a comma separated list of entries in curly |
114 | 481 braces. Each entry has a key and a value, separated by a colon. Each key can |
482 only appear once. Examples: > | |
99 | 483 :let mydict = {1: 'one', 2: 'two', 3: 'three'} |
484 :let emptydict = {} | |
114 | 485 < *E713* *E716* *E717* |
99 | 486 A key is always a String. You can use a Number, it will be converted to a |
487 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
|
488 entry. Note that the String '04' and the Number 04 are different, since the |
17368
6604ecb7a615
patch 8.1.1683: dictionary with string keys is longer than needed
Bram Moolenaar <Bram@vim.org>
parents:
17366
diff
changeset
|
489 Number will be converted to the String '4'. The empty string can also be used |
6604ecb7a615
patch 8.1.1683: dictionary with string keys is longer than needed
Bram Moolenaar <Bram@vim.org>
parents:
17366
diff
changeset
|
490 as a key. |
17758 | 491 *literal-Dict* *#{}* |
17413
40417757dffd
patch 8.1.1705: using ~{} for a literal dict is not nice
Bram Moolenaar <Bram@vim.org>
parents:
17387
diff
changeset
|
492 To avoid having to put quotes around every key the #{} form can be used. This |
17368
6604ecb7a615
patch 8.1.1683: dictionary with string keys is longer than needed
Bram Moolenaar <Bram@vim.org>
parents:
17366
diff
changeset
|
493 does require the key to consist only of ASCII letters, digits, '-' and '_'. |
6604ecb7a615
patch 8.1.1683: dictionary with string keys is longer than needed
Bram Moolenaar <Bram@vim.org>
parents:
17366
diff
changeset
|
494 Example: > |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
495 :let mydict = #{zero: 0, one_key: 1, two-key: 2, 333: 3} |
17413
40417757dffd
patch 8.1.1705: using ~{} for a literal dict is not nice
Bram Moolenaar <Bram@vim.org>
parents:
17387
diff
changeset
|
496 Note that 333 here is the string "333". Empty keys are not possible with #{}. |
114 | 497 |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
498 A value can be any expression. Using a Dictionary for a value creates a |
99 | 499 nested Dictionary: > |
500 :let nestdict = {1: {11: 'a', 12: 'b'}, 2: {21: 'c'}} | |
501 | |
502 An extra comma after the last entry is ignored. | |
503 | |
504 | |
505 Accessing entries ~ | |
506 | |
507 The normal way to access an entry is by putting the key in square brackets: > | |
508 :let val = mydict["one"] | |
509 :let mydict["four"] = 4 | |
510 | |
114 | 511 You can add new entries to an existing Dictionary this way, unlike Lists. |
99 | 512 |
513 For keys that consist entirely of letters, digits and underscore the following | |
514 form can be used |expr-entry|: > | |
515 :let val = mydict.one | |
516 :let mydict.four = 4 | |
517 | |
518 Since an entry can be any type, also a List and a Dictionary, the indexing and | |
519 key lookup can be repeated: > | |
114 | 520 :echo dict.key[idx].key |
99 | 521 |
522 | |
523 Dictionary to List conversion ~ | |
524 | |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
525 You may want to loop over the entries in a dictionary. For this you need to |
99 | 526 turn the Dictionary into a List and pass it to |:for|. |
527 | |
528 Most often you want to loop over the keys, using the |keys()| function: > | |
529 :for key in keys(mydict) | |
530 : echo key . ': ' . mydict[key] | |
531 :endfor | |
532 | |
533 The List of keys is unsorted. You may want to sort them first: > | |
534 :for key in sort(keys(mydict)) | |
535 | |
536 To loop over the values use the |values()| function: > | |
537 :for v in values(mydict) | |
538 : echo "value: " . v | |
539 :endfor | |
540 | |
541 If you want both the key and the value use the |items()| function. It returns | |
15131 | 542 a List in which each item is a List with two items, the key and the value: > |
1156 | 543 :for [key, value] in items(mydict) |
544 : echo key . ': ' . value | |
99 | 545 :endfor |
546 | |
547 | |
548 Dictionary identity ~ | |
161 | 549 *dict-identity* |
99 | 550 Just like Lists you need to use |copy()| and |deepcopy()| to make a copy of a |
551 Dictionary. Otherwise, assignment results in referring to the same | |
552 Dictionary: > | |
553 :let onedict = {'a': 1, 'b': 2} | |
554 :let adict = onedict | |
555 :let adict['a'] = 11 | |
556 :echo onedict['a'] | |
557 11 | |
558 | |
327 | 559 Two Dictionaries compare equal if all the key-value pairs compare equal. For |
560 more info see |list-identity|. | |
99 | 561 |
562 | |
563 Dictionary modification ~ | |
564 *dict-modification* | |
565 To change an already existing entry of a Dictionary, or to add a new entry, | |
566 use |:let| this way: > | |
567 :let dict[4] = "four" | |
568 :let dict['one'] = item | |
569 | |
108 | 570 Removing an entry from a Dictionary is done with |remove()| or |:unlet|. |
571 Three ways to remove the entry with key "aaa" from dict: > | |
572 :let i = remove(dict, 'aaa') | |
573 :unlet dict.aaa | |
574 :unlet dict['aaa'] | |
99 | 575 |
576 Merging a Dictionary with another is done with |extend()|: > | |
114 | 577 :call extend(adict, bdict) |
578 This extends adict with all entries from bdict. Duplicate keys cause entries | |
579 in adict to be overwritten. An optional third argument can change this. | |
119 | 580 Note that the order of entries in a Dictionary is irrelevant, thus don't |
581 expect ":echo adict" to show the items from bdict after the older entries in | |
582 adict. | |
99 | 583 |
584 Weeding out entries from a Dictionary can be done with |filter()|: > | |
1156 | 585 :call filter(dict, 'v:val =~ "x"') |
114 | 586 This removes all entries from "dict" with a value not matching 'x'. |
102 | 587 |
588 | |
589 Dictionary function ~ | |
4159 | 590 *Dictionary-function* *self* *E725* *E862* |
102 | 591 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
|
592 special way with a dictionary. Example: > |
102 | 593 :function Mylen() dict |
114 | 594 : return len(self.data) |
102 | 595 :endfunction |
114 | 596 :let mydict = {'data': [0, 1, 2, 3], 'len': function("Mylen")} |
597 :echo mydict.len() | |
102 | 598 |
599 This is like a method in object oriented programming. The entry in the | |
600 Dictionary is a |Funcref|. The local variable "self" refers to the dictionary | |
601 the function was invoked from. | |
602 | |
114 | 603 It is also possible to add a function without the "dict" attribute as a |
604 Funcref to a Dictionary, but the "self" variable is not available then. | |
605 | |
819 | 606 *numbered-function* *anonymous-function* |
102 | 607 To avoid the extra name for the function it can be defined and directly |
608 assigned to a Dictionary in this way: > | |
114 | 609 :let mydict = {'data': [0, 1, 2, 3]} |
6741 | 610 :function mydict.len() |
114 | 611 : return len(self.data) |
102 | 612 :endfunction |
114 | 613 :echo mydict.len() |
614 | |
615 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
|
616 that references this function. The function can only be used through a |
114 | 617 |Funcref|. It will automatically be deleted when there is no |Funcref| |
618 remaining that refers to it. | |
619 | |
620 It is not necessary to use the "dict" attribute for a numbered function. | |
102 | 621 |
2488
def0e3934129
Preparations for 7.3d release.
Bram Moolenaar <bram@vim.org>
parents:
2465
diff
changeset
|
622 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
|
623 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
|
624 :function {42} |
def0e3934129
Preparations for 7.3d release.
Bram Moolenaar <bram@vim.org>
parents:
2465
diff
changeset
|
625 |
102 | 626 |
627 Functions for Dictionaries ~ | |
114 | 628 *E715* |
629 Functions that can be used with a Dictionary: > | |
102 | 630 :if has_key(dict, 'foo') " TRUE if dict has entry with key "foo" |
631 :if empty(dict) " TRUE if dict is empty | |
632 :let l = len(dict) " number of items in dict | |
633 :let big = max(dict) " maximum value in dict | |
634 :let small = min(dict) " minimum value in dict | |
635 :let xs = count(dict, 'x') " count nr of times 'x' appears in dict | |
636 :let s = string(dict) " String representation of dict | |
637 :call map(dict, '">> " . v:val') " prepend ">> " to each item | |
99 | 638 |
639 | |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
640 1.5 Blobs ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
641 *blob* *Blob* *Blobs* *E978* |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
642 A Blob is a binary object. It can be used to read an image from a file and |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
643 send it over a channel, for example. |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
644 |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
645 A Blob mostly behaves like a |List| of numbers, where each number has the |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
646 value of an 8-bit byte, from 0 to 255. |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
647 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
648 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
649 Blob creation ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
650 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
651 A Blob can be created with a |blob-literal|: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
652 :let b = 0zFF00ED015DAF |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
653 Dots can be inserted between bytes (pair of hex characters) for readability, |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
654 they don't change the value: > |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
655 :let b = 0zFF00.ED01.5DAF |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
656 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
657 A blob can be read from a file with |readfile()| passing the {type} argument |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
658 set to "B", for example: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
659 :let b = readfile('image.png', 'B') |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
660 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
661 A blob can be read from a channel with the |ch_readblob()| function. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
662 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
663 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
664 Blob index ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
665 *blob-index* *E979* |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
666 A byte in the Blob can be accessed by putting the index in square brackets |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
667 after the Blob. Indexes are zero-based, thus the first byte has index zero. > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
668 :let myblob = 0z00112233 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
669 :let byte = myblob[0] " get the first byte: 0x00 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
670 :let byte = myblob[2] " get the third byte: 0x22 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
671 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
672 A negative index is counted from the end. Index -1 refers to the last byte in |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
673 the Blob, -2 to the last but one byte, etc. > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
674 :let last = myblob[-1] " get the last byte: 0x33 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
675 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
676 To avoid an error for an invalid index use the |get()| function. When an item |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
677 is not available it returns -1 or the default value you specify: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
678 :echo get(myblob, idx) |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
679 :echo get(myblob, idx, 999) |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
680 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
681 |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
682 Blob iteration ~ |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
683 |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
684 The |:for| loop executes commands for each byte of a Blob. The loop variable is |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
685 set to each byte in the Blob. Example: > |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
686 :for byte in 0z112233 |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
687 : call Doit(byte) |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
688 :endfor |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
689 This calls Doit() with 0x11, 0x22 and 0x33. |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
690 |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
691 |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
692 Blob concatenation ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
693 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
694 Two blobs can be concatenated with the "+" operator: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
695 :let longblob = myblob + 0z4455 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
696 :let myblob += 0z6677 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
697 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
698 To change a blob in-place see |blob-modification| below. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
699 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
700 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
701 Part of a blob ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
702 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
703 A part of the Blob can be obtained by specifying the first and last index, |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
704 separated by a colon in square brackets: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
705 :let myblob = 0z00112233 |
15512 | 706 :let shortblob = myblob[1:2] " get 0z1122 |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
707 :let shortblob = myblob[2:-1] " get 0z2233 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
708 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
709 Omitting the first index is similar to zero. Omitting the last index is |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
710 similar to -1. > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
711 :let endblob = myblob[2:] " from item 2 to the end: 0z2233 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
712 :let shortblob = myblob[2:2] " Blob with one byte: 0z22 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
713 :let otherblob = myblob[:] " make a copy of the Blob |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
714 |
15512 | 715 If the first index is beyond the last byte of the Blob or the second index is |
15725
a3e2e7948ee4
patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents:
15711
diff
changeset
|
716 before the first index, the result is an empty Blob. There is no error |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
717 message. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
718 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
719 If the second index is equal to or greater than the length of the list the |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
720 length minus one is used: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
721 :echo myblob[2:8] " result: 0z2233 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
722 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
723 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
724 Blob modification ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
725 *blob-modification* |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
726 To change a specific byte of a blob use |:let| this way: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
727 :let blob[4] = 0x44 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
728 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
729 When the index is just one beyond the end of the Blob, it is appended. Any |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
730 higher index is an error. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
731 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
732 To change a sequence of bytes the [:] notation can be used: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
733 let blob[1:3] = 0z445566 |
15512 | 734 The length of the replaced bytes must be exactly the same as the value |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
735 provided. *E972* |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
736 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
737 To change part of a blob you can specify the first and last byte to be |
15512 | 738 modified. The value must have the same number of bytes in the range: > |
739 :let blob[3:5] = 0z334455 | |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
740 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
741 You can also use the functions |add()|, |remove()| and |insert()|. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
742 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
743 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
744 Blob identity ~ |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
745 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
746 Blobs can be compared for equality: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
747 if blob == 0z001122 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
748 And for equal identity: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
749 if blob is otherblob |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
750 < *blob-identity* *E977* |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
751 When variable "aa" is a Blob and you assign it to another variable "bb", both |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
752 variables refer to the same Blob. Then the "is" operator returns true. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
753 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
754 When making a copy using [:] or |copy()| the values are the same, but the |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
755 identity is different: > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
756 :let blob = 0z112233 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
757 :let blob2 = blob |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
758 :echo blob == blob2 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
759 < 1 > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
760 :echo blob is blob2 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
761 < 1 > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
762 :let blob3 = blob[:] |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
763 :echo blob == blob3 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
764 < 1 > |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
765 :echo blob is blob3 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
766 < 0 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
767 |
15512 | 768 Making a copy of a Blob is done with the |copy()| function. Using [:] also |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
769 works, as explained above. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
770 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
771 |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
772 1.6 More about variables ~ |
85 | 773 *more-variables* |
7 | 774 If you need to know the type of a variable or expression, use the |type()| |
775 function. | |
776 | |
777 When the '!' flag is included in the 'viminfo' option, global variables that | |
778 start with an uppercase letter, and don't contain a lowercase letter, are | |
779 stored in the viminfo file |viminfo-file|. | |
780 | |
781 When the 'sessionoptions' option contains "global", global variables that | |
782 start with an uppercase letter and contain at least one lowercase letter are | |
783 stored in the session file |session-file|. | |
784 | |
785 variable name can be stored where ~ | |
786 my_var_6 not | |
787 My_Var_6 session file | |
788 MY_VAR_6 viminfo file | |
789 | |
790 | |
791 It's possible to form a variable name with curly braces, see | |
792 |curly-braces-names|. | |
793 | |
794 ============================================================================== | |
795 2. Expression syntax *expression-syntax* | |
796 | |
797 Expression syntax summary, from least to most significant: | |
798 | |
10218
584c835a2de1
commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents:
10198
diff
changeset
|
799 |expr1| expr2 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
800 expr2 ? expr1 : expr1 if-then-else |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
801 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
802 |expr2| expr3 |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
803 expr3 || expr3 ... logical OR |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
804 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
805 |expr3| expr4 |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
806 expr4 && expr4 ... logical AND |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
807 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
808 |expr4| expr5 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
809 expr5 == expr5 equal |
7 | 810 expr5 != expr5 not equal |
811 expr5 > expr5 greater than | |
812 expr5 >= expr5 greater than or equal | |
813 expr5 < expr5 smaller than | |
814 expr5 <= expr5 smaller than or equal | |
815 expr5 =~ expr5 regexp matches | |
816 expr5 !~ expr5 regexp doesn't match | |
817 | |
818 expr5 ==? expr5 equal, ignoring case | |
819 expr5 ==# expr5 equal, match case | |
820 etc. As above, append ? for ignoring case, # for | |
821 matching case | |
822 | |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
823 expr5 is expr5 same |List|, |Dictionary| or |Blob| instance |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
824 expr5 isnot expr5 different |List|, |Dictionary| or |Blob| |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
825 instance |
79 | 826 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
827 |expr5| expr6 |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
828 expr6 + expr6 ... number addition, list or blob concatenation |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
829 expr6 - expr6 ... number subtraction |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
830 expr6 . expr6 ... string concatenation |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
831 expr6 .. expr6 ... string concatenation |
7 | 832 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
833 |expr6| expr7 |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
834 expr7 * expr7 ... number multiplication |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
835 expr7 / expr7 ... number division |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
836 expr7 % expr7 ... number modulo |
7 | 837 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
838 |expr7| expr8 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
839 ! expr7 logical NOT |
7 | 840 - expr7 unary minus |
841 + expr7 unary plus | |
102 | 842 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
843 |expr8| expr9 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
10038
diff
changeset
|
844 expr8[expr1] byte of a String or item of a |List| |
685 | 845 expr8[expr1 : expr1] substring of a String or sublist of a |List| |
846 expr8.name entry in a |Dictionary| | |
847 expr8(expr1, ...) function call with |Funcref| variable | |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
848 expr8->name(expr1, ...) |method| call |
102 | 849 |
10218
584c835a2de1
commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents:
10198
diff
changeset
|
850 |expr9| number number constant |
26 | 851 "string" string constant, backslash is special |
99 | 852 'string' string constant, ' is doubled |
685 | 853 [expr1, ...] |List| |
854 {expr1: expr1, ...} |Dictionary| | |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
855 #{key: expr1, ...} |Dictionary| |
7 | 856 &option option value |
857 (expr1) nested expression | |
858 variable internal variable | |
859 va{ria}ble internal variable with curly braces | |
860 $VAR environment variable | |
861 @r contents of register 'r' | |
862 function(expr1, ...) function call | |
863 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
|
864 {args -> expr1} lambda expression |
7 | 865 |
866 | |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
867 "..." indicates that the operations in this level can be concatenated. |
7 | 868 Example: > |
869 &nu || &list && &shell == "csh" | |
870 | |
871 All expressions within one level are parsed from left to right. | |
872 | |
873 | |
874 expr1 *expr1* *E109* | |
875 ----- | |
876 | |
877 expr2 ? expr1 : expr1 | |
878 | |
879 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
|
880 |TRUE|, the result is the value of the expression between the '?' and ':', |
7 | 881 otherwise the result is the value of the expression after the ':'. |
882 Example: > | |
883 :echo lnum == 1 ? "top" : lnum | |
884 | |
885 Since the first expression is an "expr2", it cannot contain another ?:. The | |
886 other two expressions can, thus allow for recursive use of ?:. | |
887 Example: > | |
888 :echo lnum == 1 ? "top" : lnum == 1000 ? "last" : lnum | |
889 | |
890 To keep this readable, using |line-continuation| is suggested: > | |
891 :echo lnum == 1 | |
892 :\ ? "top" | |
893 :\ : lnum == 1000 | |
894 :\ ? "last" | |
895 :\ : lnum | |
896 | |
1156 | 897 You should always put a space before the ':', otherwise it can be mistaken for |
898 use in a variable such as "a:1". | |
899 | |
7 | 900 |
901 expr2 and expr3 *expr2* *expr3* | |
902 --------------- | |
903 | |
10038
7cf4e210cf3c
commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents:
10027
diff
changeset
|
904 expr3 || expr3 .. logical OR *expr-barbar* |
7cf4e210cf3c
commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents:
10027
diff
changeset
|
905 expr4 && expr4 .. logical AND *expr-&&* |
7cf4e210cf3c
commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents:
10027
diff
changeset
|
906 |
7 | 907 The "||" and "&&" operators take one argument on each side. The arguments |
908 are (converted to) Numbers. The result is: | |
909 | |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
910 input output ~ |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
911 n1 n2 n1 || n2 n1 && n2 ~ |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
912 |FALSE| |FALSE| |FALSE| |FALSE| |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
913 |FALSE| |TRUE| |TRUE| |FALSE| |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
914 |TRUE| |FALSE| |TRUE| |FALSE| |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
915 |TRUE| |TRUE| |TRUE| |TRUE| |
7 | 916 |
917 The operators can be concatenated, for example: > | |
918 | |
919 &nu || &list && &shell == "csh" | |
920 | |
921 Note that "&&" takes precedence over "||", so this has the meaning of: > | |
922 | |
923 &nu || (&list && &shell == "csh") | |
924 | |
925 Once the result is known, the expression "short-circuits", that is, further | |
926 arguments are not evaluated. This is like what happens in C. For example: > | |
927 | |
928 let a = 1 | |
929 echo a || b | |
930 | |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
931 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
|
932 so the result must be |TRUE|. Similarly below: > |
7 | 933 |
934 echo exists("b") && b == "yes" | |
935 | |
936 This is valid whether "b" has been defined or not. The second clause will | |
937 only be evaluated if "b" has been defined. | |
938 | |
939 | |
940 expr4 *expr4* | |
941 ----- | |
942 | |
943 expr5 {cmp} expr5 | |
944 | |
945 Compare two expr5 expressions, resulting in a 0 if it evaluates to false, or 1 | |
946 if it evaluates to true. | |
947 | |
1621 | 948 *expr-==* *expr-!=* *expr->* *expr->=* |
7 | 949 *expr-<* *expr-<=* *expr-=~* *expr-!~* |
950 *expr-==#* *expr-!=#* *expr->#* *expr->=#* | |
951 *expr-<#* *expr-<=#* *expr-=~#* *expr-!~#* | |
952 *expr-==?* *expr-!=?* *expr->?* *expr->=?* | |
953 *expr-<?* *expr-<=?* *expr-=~?* *expr-!~?* | |
2908 | 954 *expr-is* *expr-isnot* *expr-is#* *expr-isnot#* |
955 *expr-is?* *expr-isnot?* | |
7 | 956 use 'ignorecase' match case ignore case ~ |
957 equal == ==# ==? | |
958 not equal != !=# !=? | |
959 greater than > ># >? | |
960 greater than or equal >= >=# >=? | |
961 smaller than < <# <? | |
962 smaller than or equal <= <=# <=? | |
963 regexp matches =~ =~# =~? | |
964 regexp doesn't match !~ !~# !~? | |
2908 | 965 same instance is is# is? |
966 different instance isnot isnot# isnot? | |
7 | 967 |
968 Examples: | |
969 "abc" ==# "Abc" evaluates to 0 | |
970 "abc" ==? "Abc" evaluates to 1 | |
971 "abc" == "Abc" evaluates to 1 if 'ignorecase' is set, 0 otherwise | |
972 | |
85 | 973 *E691* *E692* |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
974 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
|
975 "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
|
976 recursively. Ignoring case means case is ignored when comparing item values. |
79 | 977 |
114 | 978 *E735* *E736* |
685 | 979 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
|
980 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
|
981 |Dictionary| recursively. Ignoring case means case is ignored when comparing |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
982 item values. |
114 | 983 |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
984 *E694* |
9407
619a98a67f67
commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
985 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
|
986 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
|
987 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
|
988 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
|
989 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
|
990 |
619a98a67f67
commit https://github.com/vim/vim/commit/e18dbe865d190e74fb5d43ac8bc6ac22507d0223
Christian Brabandt <cb@256bit.org>
parents:
9389
diff
changeset
|
991 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
|
992 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
|
993 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
|
994 " Part1 and Part2 refer to the same function |
685 | 995 |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
996 Using "is" or "isnot" with a |List|, |Dictionary| or |Blob| checks whether |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
997 the expressions are referring to the same |List|, |Dictionary| or |Blob| |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
998 instance. A copy of a |List| is different from the original |List|. When |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
999 using "is" without a |List|, |Dictionary| or |Blob|, it is equivalent to |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
1000 using "equal", using "isnot" equivalent to using "not equal". Except that |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
1001 a different type means the values are different: > |
8534
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1002 echo 4 == '4' |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1003 1 |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1004 echo 4 is '4' |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1005 0 |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1006 echo 0 is [] |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1007 0 |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1008 "is#"/"isnot#" and "is?"/"isnot?" can be used to match and ignore case. |
79 | 1009 |
7 | 1010 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
|
1011 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
|
1012 echo 0 == 'x' |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1013 1 |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1014 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
|
1015 echo [0] == ['x'] |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1016 0 |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
1017 Inside a List or Dictionary this conversion is not used. |
7 | 1018 |
1019 When comparing two Strings, this is done with strcmp() or stricmp(). This | |
1020 results in the mathematical difference (comparing byte values), not | |
1021 necessarily the alphabetical difference in the local language. | |
1022 | |
1621 | 1023 When using the operators with a trailing '#', or the short version and |
1156 | 1024 'ignorecase' is off, the comparing is done with strcmp(): case matters. |
7 | 1025 |
1026 When using the operators with a trailing '?', or the short version and | |
1156 | 1027 'ignorecase' is set, the comparing is done with stricmp(): case is ignored. |
1028 | |
1029 'smartcase' is not used. | |
7 | 1030 |
1031 The "=~" and "!~" operators match the lefthand argument with the righthand | |
1032 argument, which is used as a pattern. See |pattern| for what a pattern is. | |
1033 This matching is always done like 'magic' was set and 'cpoptions' is empty, no | |
1034 matter what the actual value of 'magic' or 'cpoptions' is. This makes scripts | |
1035 portable. To avoid backslashes in the regexp pattern to be doubled, use a | |
1036 single-quote string, see |literal-string|. | |
1037 Since a string is considered to be a single line, a multi-line pattern | |
1038 (containing \n, backslash-n) will not match. However, a literal NL character | |
1039 can be matched like an ordinary character. Examples: | |
1040 "foo\nbar" =~ "\n" evaluates to 1 | |
1041 "foo\nbar" =~ "\\n" evaluates to 0 | |
1042 | |
1043 | |
1044 expr5 and expr6 *expr5* *expr6* | |
1045 --------------- | |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1046 expr6 + expr6 Number addition, |List| or |Blob| concatenation *expr-+* |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1047 expr6 - expr6 Number subtraction *expr--* |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1048 expr6 . expr6 String concatenation *expr-.* |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1049 expr6 .. expr6 String concatenation *expr-..* |
79 | 1050 |
692 | 1051 For |Lists| only "+" is possible and then both expr6 must be a list. The |
685 | 1052 result is a new list with the two lists Concatenated. |
79 | 1053 |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1054 For String concatenation ".." is preferred, since "." is ambiguous, it is also |
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1055 used for |Dict| member access and floating point numbers. |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
1056 When |vimscript-version| is 2 or higher, using "." is not allowed. |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
1057 |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
1058 expr7 * expr7 Number multiplication *expr-star* |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
1059 expr7 / expr7 Number division *expr-/* |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
1060 expr7 % expr7 Number modulo *expr-%* |
7 | 1061 |
16267 | 1062 For all, except "." and "..", Strings are converted to Numbers. |
3214 | 1063 For bitwise operators see |and()|, |or()| and |xor()|. |
7 | 1064 |
1065 Note the difference between "+" and ".": | |
1066 "123" + "456" = 579 | |
1067 "123" . "456" = "123456" | |
1068 | |
1621 | 1069 Since '.' has the same precedence as '+' and '-', you need to read: > |
1070 1 . 90 + 90.0 | |
1071 As: > | |
1072 (1 . 90) + 90.0 | |
1073 That works, since the String "190" is automatically converted to the Number | |
1074 190, which can be added to the Float 90.0. However: > | |
1075 1 . 90 * 90.0 | |
1076 Should be read as: > | |
1077 1 . (90 * 90.0) | |
1078 Since '.' has lower precedence than '*'. This does NOT work, since this | |
1079 attempts to concatenate a Float and a String. | |
1080 | |
1081 When dividing a Number by zero the result depends on the value: | |
1082 0 / 0 = -0x80000000 (like NaN for Float) | |
1083 >0 / 0 = 0x7fffffff (like positive infinity) | |
1084 <0 / 0 = -0x7fffffff (like negative infinity) | |
1085 (before Vim 7.2 it was always 0x7fffffff) | |
1086 | |
9389
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
1087 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
|
1088 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
|
1089 >0 / 0 = 0x7fffffffffffffff (like positive infinity) |
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
1090 <0 / 0 = -0x7fffffffffffffff (like negative infinity) |
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
1091 |
7 | 1092 When the righthand side of '%' is zero, the result is 0. |
1093 | |
685 | 1094 None of these work for |Funcref|s. |
79 | 1095 |
1621 | 1096 . and % do not work for Float. *E804* |
1097 | |
7 | 1098 |
1099 expr7 *expr7* | |
1100 ----- | |
1101 ! expr7 logical NOT *expr-!* | |
1102 - expr7 unary minus *expr-unary--* | |
1103 + expr7 unary plus *expr-unary-+* | |
1104 | |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
1105 For '!' |TRUE| becomes |FALSE|, |FALSE| becomes |TRUE| (one). |
7 | 1106 For '-' the sign of the number is changed. |
1107 For '+' the number is unchanged. | |
1108 | |
1109 A String will be converted to a Number first. | |
1110 | |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
1111 These three can be repeated and mixed. Examples: |
7 | 1112 !-1 == 0 |
1113 !!8 == 1 | |
1114 --9 == 9 | |
1115 | |
1116 | |
1117 expr8 *expr8* | |
1118 ----- | |
14637 | 1119 This expression is either |expr9| or a sequence of the alternatives below, |
1120 in any order. E.g., these are all possible: | |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1121 expr8[expr1].name |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1122 expr8.name[expr1] |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1123 expr8(expr1, ...)[expr1].name |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1124 expr8->(expr1, ...)[expr1] |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
1125 Evaluation is always from left to right. |
14637 | 1126 |
685 | 1127 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
|
1128 *E909* *subscript* |
102 | 1129 If expr8 is a Number or String this results in a String that contains the |
1130 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
|
1131 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
|
1132 an alternative, or use `split()` to turn the string into a list of characters. |
55 | 1133 |
7384
aea5ebf352c4
commit https://github.com/vim/vim/commit/256972a9849b5d575b62a6a71be5b6934b5b0e8b
Christian Brabandt <cb@256bit.org>
parents:
7358
diff
changeset
|
1134 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
|
1135 text column numbers start with one! Example, to get the byte under the |
55 | 1136 cursor: > |
823 | 1137 :let c = getline(".")[col(".") - 1] |
7 | 1138 |
1139 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
|
1140 String. A negative index always results in an empty string (reason: backward |
55 | 1141 compatibility). Use [-1:] to get the last byte. |
1142 | |
685 | 1143 If expr8 is a |List| then it results the item at index expr1. See |list-index| |
55 | 1144 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
|
1145 error. Example: > |
55 | 1146 :let item = mylist[-1] " get last item |
1147 | |
685 | 1148 Generally, if a |List| index is equal to or higher than the length of the |
1149 |List|, or more negative than the length of the |List|, this results in an | |
1150 error. | |
55 | 1151 |
99 | 1152 |
102 | 1153 expr8[expr1a : expr1b] substring or sublist *expr-[:]* |
1154 | |
1155 If expr8 is a Number or String this results in the substring with the bytes | |
1156 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
|
1157 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
|
1158 |byteidx()| for computing the indexes. |
55 | 1159 |
1160 If expr1a is omitted zero is used. If expr1b is omitted the length of the | |
1161 string minus one is used. | |
1162 | |
1163 A negative number can be used to measure from the end of the string. -1 is | |
1164 the last character, -2 the last but one, etc. | |
1165 | |
1166 If an index goes out of range for the string characters are omitted. If | |
1167 expr1b is smaller than expr1a the result is an empty string. | |
1168 | |
1169 Examples: > | |
1170 :let c = name[-1:] " last byte of a string | |
1171 :let c = name[-2:-2] " last but one byte of a string | |
1172 :let s = line(".")[4:] " from the fifth byte to the end | |
1173 :let s = s[:-3] " remove last two bytes | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
1174 < |
9737
35ce559b8553
commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents:
9723
diff
changeset
|
1175 *slice* |
685 | 1176 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
|
1177 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
|
1178 just above. Also see |sublist| below. Examples: > |
55 | 1179 :let l = mylist[:3] " first four items |
1180 :let l = mylist[4:4] " List with one item | |
1181 :let l = mylist[:] " shallow copy of a List | |
1182 | |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1183 If expr8 is a |Blob| this results in a new |Blob| with the bytes in the |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1184 indexes expr1a and expr1b, inclusive. Examples: > |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1185 :let b = 0zDEADBEEF |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1186 :let bs = b[1:2] " 0zADBE |
15512 | 1187 :let bs = b[:] " copy of 0zDEADBEEF |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1188 |
685 | 1189 Using expr8[expr1] or expr8[expr1a : expr1b] on a |Funcref| results in an |
1190 error. | |
1191 | |
7615
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
1192 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
|
1193 for a sublist: > |
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
1194 mylist[n:] " uses variable n |
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
1195 mylist[s:] " uses namespace s:, error! |
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
1196 |
685 | 1197 |
1198 expr8.name entry in a |Dictionary| *expr-entry* | |
1199 | |
1200 If expr8 is a |Dictionary| and it is followed by a dot, then the following | |
1201 name will be used as a key in the |Dictionary|. This is just like: | |
1202 expr8[name]. | |
99 | 1203 |
1204 The name must consist of alphanumeric characters, just like a variable name, | |
1205 but it may start with a number. Curly braces cannot be used. | |
1206 | |
1207 There must not be white space before or after the dot. | |
1208 | |
1209 Examples: > | |
1210 :let dict = {"one": 1, 2: "two"} | |
16808 | 1211 :echo dict.one " shows "1" |
1212 :echo dict.2 " shows "two" | |
1213 :echo dict .2 " error because of space before the dot | |
99 | 1214 |
1215 Note that the dot is also used for String concatenation. To avoid confusion | |
1216 always put spaces around the dot for String concatenation. | |
1217 | |
1218 | |
685 | 1219 expr8(expr1, ...) |Funcref| function call |
102 | 1220 |
1221 When expr8 is a |Funcref| type variable, invoke the function it refers to. | |
1222 | |
1223 | |
17674
06c3e15ad84d
patch 8.1.1834: cannot use a lambda as a method
Bram Moolenaar <Bram@vim.org>
parents:
17667
diff
changeset
|
1224 expr8->name([args]) method call *method* *->* |
06c3e15ad84d
patch 8.1.1834: cannot use a lambda as a method
Bram Moolenaar <Bram@vim.org>
parents:
17667
diff
changeset
|
1225 expr8->{lambda}([args]) |
17758 | 1226 *E276* |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1227 For methods that are also available as global functions this is the same as: > |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
1228 name(expr8 [, args]) |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
1229 There can also be methods specifically for the type of "expr8". |
102 | 1230 |
17661
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1231 This allows for chaining, passing the value that one method returns to the |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1232 next method: > |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1233 mylist->filter(filterexpr)->map(mapexpr)->sort()->join() |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1234 < |
17674
06c3e15ad84d
patch 8.1.1834: cannot use a lambda as a method
Bram Moolenaar <Bram@vim.org>
parents:
17667
diff
changeset
|
1235 Example of using a lambda: > |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
1236 GetPercentage()->{x -> x * 100}()->printf('%d%%') |
17758 | 1237 < |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1238 When using -> the |expr7| operators will be applied first, thus: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1239 -1.234->string() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1240 Is equivalent to: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1241 (-1.234)->string() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1242 And NOT: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1243 -(1.234->string()) |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
1244 < |
17661
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1245 *E274* |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1246 "->name(" must not contain white space. There can be white space before the |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1247 "->" and after the "(", thus you can split the lines like this: > |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1248 mylist |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1249 \ ->filter(filterexpr) |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1250 \ ->map(mapexpr) |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1251 \ ->sort() |
da7890e3359b
patch 8.1.1828: not strict enough checking syntax of method invocation
Bram Moolenaar <Bram@vim.org>
parents:
17624
diff
changeset
|
1252 \ ->join() |
17758 | 1253 |
1254 When using the lambda form there must be no white space between the } and the | |
1255 (. | |
1256 | |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
1257 |
102 | 1258 *expr9* |
7 | 1259 number |
1260 ------ | |
12785 | 1261 number number constant *expr-number* |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
1262 *hex-number* *octal-number* *binary-number* |
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
1263 |
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
1264 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
|
1265 and Octal (starting with 0). |
7 | 1266 |
1621 | 1267 *floating-point-format* |
1268 Floating point numbers can be written in two forms: | |
1269 | |
1270 [-+]{N}.{M} | |
6530 | 1271 [-+]{N}.{M}[eE][-+]{exp} |
1621 | 1272 |
1273 {N} and {M} are numbers. Both {N} and {M} must be present and can only | |
1274 contain digits. | |
1275 [-+] means there is an optional plus or minus sign. | |
1276 {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
|
1277 Only a decimal point is accepted, not a comma. No matter what the current |
1621 | 1278 locale is. |
1279 {only when compiled with the |+float| feature} | |
1280 | |
1281 Examples: | |
1282 123.456 | |
1283 +0.0001 | |
1284 55.0 | |
1285 -0.123 | |
1286 1.234e03 | |
1287 1.0E-6 | |
1288 -3.1416e+88 | |
1289 | |
1290 These are INVALID: | |
1291 3. empty {M} | |
1292 1e40 missing .{M} | |
1293 | |
1294 Rationale: | |
1295 Before floating point was introduced, the text "123.456" was interpreted as | |
1296 the two numbers "123" and "456", both converted to a string and concatenated, | |
1297 resulting in the string "123456". Since this was considered pointless, and we | |
1698 | 1298 could not find it intentionally being used in Vim scripts, this backwards |
1621 | 1299 incompatibility was accepted in favor of being able to use the normal notation |
1300 for floating point numbers. | |
1301 | |
15131 | 1302 *float-pi* *float-e* |
1303 A few useful values to copy&paste: > | |
1304 :let pi = 3.14159265359 | |
1305 :let e = 2.71828182846 | |
1306 Or, if you don't want to write them in as floating-point literals, you can | |
1307 also use functions, like the following: > | |
1308 :let pi = acos(-1.0) | |
1309 :let e = exp(1.0) | |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
1310 < |
1621 | 1311 *floating-point-precision* |
1312 The precision and range of floating points numbers depends on what "double" | |
1313 means in the library Vim was compiled with. There is no way to change this at | |
1314 runtime. | |
1315 | |
1316 The default for displaying a |Float| is to use 6 decimal places, like using | |
1317 printf("%g", f). You can select something else when using the |printf()| | |
1318 function. Example: > | |
1319 :echo printf('%.15e', atan(1)) | |
1320 < 7.853981633974483e-01 | |
1321 | |
1322 | |
7 | 1323 |
6884 | 1324 string *string* *String* *expr-string* *E114* |
7 | 1325 ------ |
1326 "string" string constant *expr-quote* | |
1327 | |
1328 Note that double quotes are used. | |
1329 | |
1330 A string constant accepts these special characters: | |
1331 \... three-digit octal number (e.g., "\316") | |
1332 \.. two-digit octal number (must be followed by non-digit) | |
1333 \. one-digit octal number (must be followed by non-digit) | |
1334 \x.. byte specified with two hex numbers (e.g., "\x1f") | |
1335 \x. byte specified with one hex number (must be followed by non-hex char) | |
1336 \X.. same as \x.. | |
1337 \X. same as \x. | |
1621 | 1338 \u.... character specified with up to 4 hex numbers, stored according to the |
7 | 1339 current value of 'encoding' (e.g., "\u02a4") |
6840 | 1340 \U.... same as \u but allows up to 8 hex numbers. |
7 | 1341 \b backspace <BS> |
1342 \e escape <Esc> | |
1343 \f formfeed <FF> | |
1344 \n newline <NL> | |
1345 \r return <CR> | |
1346 \t tab <Tab> | |
1347 \\ backslash | |
1348 \" double quote | |
2152 | 1349 \<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
|
1350 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
|
1351 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
|
1352 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
|
1353 mentioned above. |
7 | 1354 |
1156 | 1355 Note that "\xff" is stored as the byte 255, which may be invalid in some |
1356 encodings. Use "\u00ff" to store character 255 according to the current value | |
1357 of 'encoding'. | |
1358 | |
7 | 1359 Note that "\000" and "\x00" force the end of the string. |
1360 | |
1361 | |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
1362 blob-literal *blob-literal* *E973* |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1363 ------------ |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1364 |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1365 Hexadecimal starting with 0z or 0Z, with an arbitrary number of bytes. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1366 The sequence must be an even number of hex characters. Example: > |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1367 :let b = 0zFF00ED015DAF |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1368 |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
1369 |
7 | 1370 literal-string *literal-string* *E115* |
1371 --------------- | |
26 | 1372 'string' string constant *expr-'* |
7 | 1373 |
1374 Note that single quotes are used. | |
1375 | |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
1376 This string is taken as it is. No backslashes are removed or have a special |
99 | 1377 meaning. The only exception is that two quotes stand for one quote. |
26 | 1378 |
1379 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
|
1380 to be doubled. These two commands are equivalent: > |
26 | 1381 if a =~ "\\s*" |
1382 if a =~ '\s*' | |
7 | 1383 |
1384 | |
1385 option *expr-option* *E112* *E113* | |
1386 ------ | |
1387 &option option value, local value if possible | |
1388 &g:option global option value | |
1389 &l:option local option value | |
1390 | |
1391 Examples: > | |
1392 echo "tabstop is " . &tabstop | |
1393 if &insertmode | |
1394 | |
1395 Any option name can be used here. See |options|. When using the local value | |
1396 and there is no buffer-local or window-local value, the global value is used | |
1397 anyway. | |
1398 | |
1399 | |
1156 | 1400 register *expr-register* *@r* |
7 | 1401 -------- |
1402 @r contents of register 'r' | |
1403 | |
1404 The result is the contents of the named register, as a single string. | |
1405 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
|
1406 register use @" or @@. See |registers| for an explanation of the available |
336 | 1407 registers. |
1408 | |
1409 When using the '=' register you get the expression itself, not what it | |
1410 evaluates to. Use |eval()| to evaluate it. | |
7 | 1411 |
1412 | |
1413 nesting *expr-nesting* *E110* | |
1414 ------- | |
1415 (expr1) nested expression | |
1416 | |
1417 | |
1418 environment variable *expr-env* | |
1419 -------------------- | |
1420 $VAR environment variable | |
1421 | |
1422 The String value of any environment variable. When it is not defined, the | |
1423 result is an empty string. | |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1424 |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1425 The functions `getenv()` and `setenv()` can also be used and work for |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1426 environment variables with non-alphanumeric names. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1427 The function `environ()` can be used to get a Dict with all environment |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1428 variables. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1429 |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
1430 |
7 | 1431 *expr-env-expand* |
1432 Note that there is a difference between using $VAR directly and using | |
1433 expand("$VAR"). Using it directly will only expand environment variables that | |
1434 are known inside the current Vim session. Using expand() will first try using | |
1435 the environment variables known inside the current Vim session. If that | |
1436 fails, a shell will be used to expand the variable. This can be slow, but it | |
1437 does expand all variables that the shell knows about. Example: > | |
6180 | 1438 :echo $shell |
1439 :echo expand("$shell") | |
1440 The first one probably doesn't echo anything, the second echoes the $shell | |
7 | 1441 variable (if your shell supports it). |
1442 | |
1443 | |
1444 internal variable *expr-variable* | |
1445 ----------------- | |
1446 variable internal variable | |
1447 See below |internal-variables|. | |
1448 | |
1449 | |
170 | 1450 function call *expr-function* *E116* *E118* *E119* *E120* |
7 | 1451 ------------- |
1452 function(expr1, ...) function call | |
1453 See below |functions|. | |
1454 | |
1455 | |
9527
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1456 lambda expression *expr-lambda* *lambda* |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1457 ----------------- |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1458 {args -> expr1} lambda expression |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1459 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1460 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
|
1461 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
|
1462 the following ways: |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1463 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1464 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
|
1465 commands. |
9686
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1466 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
|
1467 :let F = {arg1, arg2 -> arg1 - arg2} |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1468 :echo F(5, 2) |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1469 < 3 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1470 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1471 The arguments are optional. Example: > |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1472 :let F = {-> 'error function'} |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1473 :echo F() |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1474 < error function |
9686
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1475 *closure* |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1476 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
|
1477 often called a closure. Example where "i" and "a:arg" are used in a lambda |
13329
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
1478 while they already exist in the function scope. They remain valid even after |
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
1479 the function returns: > |
9686
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1480 :function Foo(arg) |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1481 : let i = 3 |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1482 : return {x -> x + i - a:arg} |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1483 :endfunction |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1484 :let Bar = Foo(4) |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1485 :echo Bar(6) |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1486 < 5 |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
1487 |
13329
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
1488 Note that the variables must exist in the outer scope before the lamba is |
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
1489 defined for this to work. See also |:func-closure|. |
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
1490 |
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
1491 Lambda and closure support can be checked with: > |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
1492 if has('lambda') |
9527
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1493 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1494 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
|
1495 :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
|
1496 < [2, 3, 4] > |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1497 :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
|
1498 < [1, 2, 3, 4, 7] |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1499 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1500 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
|
1501 :let timer = timer_start(500, |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1502 \ {-> execute("echo 'Handler called'", "")}, |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1503 \ {'repeat': 3}) |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1504 < Handler called |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1505 Handler called |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1506 Handler called |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1507 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
1508 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
|
1509 |
9686
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1510 |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1511 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
|
1512 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
|
1513 :function {'<lambda>42'} |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1514 See also: |numbered-function| |
8c2553beff0f
commit https://github.com/vim/vim/commit/1e96d9bf98f9ab84d5af7f98d6a961d91b17364f
Christian Brabandt <cb@256bit.org>
parents:
9644
diff
changeset
|
1515 |
7 | 1516 ============================================================================== |
2596 | 1517 3. Internal variable *internal-variables* *E461* |
1518 | |
7 | 1519 An internal variable name can be made up of letters, digits and '_'. But it |
1520 cannot start with a digit. It's also possible to use curly braces, see | |
1521 |curly-braces-names|. | |
1522 | |
1523 An internal variable is created with the ":let" command |:let|. | |
87 | 1524 An internal variable is explicitly destroyed with the ":unlet" command |
1525 |:unlet|. | |
1526 Using a name that is not an internal variable or refers to a variable that has | |
1527 been destroyed results in an error. | |
7 | 1528 |
1529 There are several name spaces for variables. Which one is to be used is | |
1530 specified by what is prepended: | |
1531 | |
1532 (nothing) In a function: local to a function; otherwise: global | |
1533 |buffer-variable| b: Local to the current buffer. | |
1534 |window-variable| w: Local to the current window. | |
819 | 1535 |tabpage-variable| t: Local to the current tab page. |
7 | 1536 |global-variable| g: Global. |
1537 |local-variable| l: Local to a function. | |
1538 |script-variable| s: Local to a |:source|'ed Vim script. | |
1539 |function-argument| a: Function argument (only inside a function). | |
5815 | 1540 |vim-variable| v: Global, predefined by Vim. |
7 | 1541 |
685 | 1542 The scope name by itself can be used as a |Dictionary|. For example, to |
1543 delete all script-local variables: > | |
133 | 1544 :for k in keys(s:) |
1545 : unlet s:[k] | |
1546 :endfor | |
1547 < | |
4358 | 1548 *buffer-variable* *b:var* *b:* |
7 | 1549 A variable name that is preceded with "b:" is local to the current buffer. |
1550 Thus you can have several "b:foo" variables, one for each buffer. | |
1551 This kind of variable is deleted when the buffer is wiped out or deleted with | |
1552 |:bdelete|. | |
1553 | |
1554 One local buffer variable is predefined: | |
4264 | 1555 *b:changedtick* *changetick* |
7 | 1556 b:changedtick The total number of changes to the current buffer. It is |
1557 incremented for each change. An undo command is also a change | |
16996
d5e1e09a829f
patch 8.1.1498: ":write" increments b:changedtick even though nothing changed
Bram Moolenaar <Bram@vim.org>
parents:
16971
diff
changeset
|
1558 in this case. Resetting 'modified' when writing the buffer is |
d5e1e09a829f
patch 8.1.1498: ":write" increments b:changedtick even though nothing changed
Bram Moolenaar <Bram@vim.org>
parents:
16971
diff
changeset
|
1559 also counted. |
d5e1e09a829f
patch 8.1.1498: ":write" increments b:changedtick even though nothing changed
Bram Moolenaar <Bram@vim.org>
parents:
16971
diff
changeset
|
1560 This can be used to perform an action only when the buffer has |
d5e1e09a829f
patch 8.1.1498: ":write" increments b:changedtick even though nothing changed
Bram Moolenaar <Bram@vim.org>
parents:
16971
diff
changeset
|
1561 changed. Example: > |
7 | 1562 :if my_changedtick != b:changedtick |
1621 | 1563 : let my_changedtick = b:changedtick |
1564 : call My_Update() | |
7 | 1565 :endif |
10895
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
1566 < You cannot change or delete the b:changedtick variable. |
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
1567 |
4358 | 1568 *window-variable* *w:var* *w:* |
7 | 1569 A variable name that is preceded with "w:" is local to the current window. It |
1570 is deleted when the window is closed. | |
1571 | |
4437 | 1572 *tabpage-variable* *t:var* *t:* |
819 | 1573 A variable name that is preceded with "t:" is local to the current tab page, |
1574 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
|
1575 without the |+windows| feature} |
819 | 1576 |
4358 | 1577 *global-variable* *g:var* *g:* |
7 | 1578 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
|
1579 access a variable local to a function. But "g:" can also be used in any other |
7 | 1580 place if you like. |
1581 | |
4358 | 1582 *local-variable* *l:var* *l:* |
7 | 1583 Inside functions local variables are accessed without prepending anything. |
1156 | 1584 But you can also prepend "l:" if you like. However, without prepending "l:" |
1585 you may run into reserved variable names. For example "count". By itself it | |
1586 refers to "v:count". Using "l:count" you can have a local variable with the | |
1587 same name. | |
7 | 1588 |
1589 *script-variable* *s:var* | |
1590 In a Vim script variables starting with "s:" can be used. They cannot be | |
1591 accessed from outside of the scripts, thus are local to the script. | |
1592 | |
1593 They can be used in: | |
1594 - commands executed while the script is sourced | |
1595 - functions defined in the script | |
1596 - autocommands defined in the script | |
1597 - functions and autocommands defined in functions and autocommands which were | |
1598 defined in the script (recursively) | |
1599 - user defined commands defined in the script | |
1600 Thus not in: | |
1601 - other scripts sourced from this one | |
1602 - mappings | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
1603 - menus |
7 | 1604 - etc. |
1605 | |
1156 | 1606 Script variables can be used to avoid conflicts with global variable names. |
1607 Take this example: > | |
7 | 1608 |
1609 let s:counter = 0 | |
1610 function MyCounter() | |
1611 let s:counter = s:counter + 1 | |
1612 echo s:counter | |
1613 endfunction | |
1614 command Tick call MyCounter() | |
1615 | |
1616 You can now invoke "Tick" from any script, and the "s:counter" variable in | |
1617 that script will not be changed, only the "s:counter" in the script where | |
1618 "Tick" was defined is used. | |
1619 | |
1620 Another example that does the same: > | |
1621 | |
1622 let s:counter = 0 | |
1623 command Tick let s:counter = s:counter + 1 | echo s:counter | |
1624 | |
1625 When calling a function and invoking a user-defined command, the context for | |
9 | 1626 script variables is set to the script where the function or command was |
7 | 1627 defined. |
1628 | |
1629 The script variables are also available when a function is defined inside a | |
1630 function that is defined in a script. Example: > | |
1631 | |
1632 let s:counter = 0 | |
1633 function StartCounting(incr) | |
1634 if a:incr | |
1635 function MyCounter() | |
1636 let s:counter = s:counter + 1 | |
1637 endfunction | |
1638 else | |
1639 function MyCounter() | |
1640 let s:counter = s:counter - 1 | |
1641 endfunction | |
1642 endif | |
1643 endfunction | |
1644 | |
1645 This defines the MyCounter() function either for counting up or counting down | |
1646 when calling StartCounting(). It doesn't matter from where StartCounting() is | |
1647 called, the s:counter variable will be accessible in MyCounter(). | |
1648 | |
1649 When the same script is sourced again it will use the same script variables. | |
1650 They will remain valid as long as Vim is running. This can be used to | |
1651 maintain a counter: > | |
1652 | |
1653 if !exists("s:counter") | |
1654 let s:counter = 1 | |
1655 echo "script executed for the first time" | |
1656 else | |
1657 let s:counter = s:counter + 1 | |
1658 echo "script executed " . s:counter . " times now" | |
1659 endif | |
1660 | |
1661 Note that this means that filetype plugins don't get a different set of script | |
1662 variables for each buffer. Use local buffer variables instead |b:var|. | |
1663 | |
1664 | |
15131 | 1665 PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:* |
1666 *E963* | |
1667 Some variables can be set by the user, but the type cannot be changed. | |
7 | 1668 |
18477
e93cab5d0f0f
patch 8.1.2233: cannot get the Vim command line arguments
Bram Moolenaar <Bram@vim.org>
parents:
18463
diff
changeset
|
1669 *v:argv* *argv-variable* |
e93cab5d0f0f
patch 8.1.2233: cannot get the Vim command line arguments
Bram Moolenaar <Bram@vim.org>
parents:
18463
diff
changeset
|
1670 v:argv The command line arguments Vim was invoked with. This is a |
e93cab5d0f0f
patch 8.1.2233: cannot get the Vim command line arguments
Bram Moolenaar <Bram@vim.org>
parents:
18463
diff
changeset
|
1671 list of strings. The first item is the Vim command. |
e93cab5d0f0f
patch 8.1.2233: cannot get the Vim command line arguments
Bram Moolenaar <Bram@vim.org>
parents:
18463
diff
changeset
|
1672 |
189 | 1673 *v:beval_col* *beval_col-variable* |
1674 v:beval_col The number of the column, over which the mouse pointer is. | |
1675 This is the byte index in the |v:beval_lnum| line. | |
1676 Only valid while evaluating the 'balloonexpr' option. | |
1677 | |
1678 *v:beval_bufnr* *beval_bufnr-variable* | |
1679 v:beval_bufnr The number of the buffer, over which the mouse pointer is. Only | |
1680 valid while evaluating the 'balloonexpr' option. | |
1681 | |
1682 *v:beval_lnum* *beval_lnum-variable* | |
1683 v:beval_lnum The number of the line, over which the mouse pointer is. Only | |
1684 valid while evaluating the 'balloonexpr' option. | |
1685 | |
1686 *v:beval_text* *beval_text-variable* | |
374 | 1687 v:beval_text The text under or after the mouse pointer. Usually a word as |
1688 it is useful for debugging a C program. 'iskeyword' applies, | |
1689 but a dot and "->" before the position is included. When on a | |
1690 ']' the text before it is used, including the matching '[' and | |
189 | 1691 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
|
1692 highlighted text is used. Also see |<cexpr>|. |
189 | 1693 Only valid while evaluating the 'balloonexpr' option. |
1694 | |
1695 *v:beval_winnr* *beval_winnr-variable* | |
1696 v:beval_winnr The number of the window, over which the mouse pointer is. Only | |
2709 | 1697 valid while evaluating the 'balloonexpr' option. The first |
1698 window has number zero (unlike most other places where a | |
1699 window gets a number). | |
189 | 1700 |
9221
17fa362f10be
commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents:
9219
diff
changeset
|
1701 *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
|
1702 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
|
1703 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
|
1704 |
844 | 1705 *v:char* *char-variable* |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
1706 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
|
1707 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
|
1708 It is also used by the |InsertCharPre| and |InsertEnter| events. |
844 | 1709 |
7 | 1710 *v:charconvert_from* *charconvert_from-variable* |
1711 v:charconvert_from | |
1712 The name of the character encoding of a file to be converted. | |
1713 Only valid while evaluating the 'charconvert' option. | |
1714 | |
1715 *v:charconvert_to* *charconvert_to-variable* | |
1716 v:charconvert_to | |
1717 The name of the character encoding of a file after conversion. | |
1718 Only valid while evaluating the 'charconvert' option. | |
1719 | |
1720 *v:cmdarg* *cmdarg-variable* | |
1721 v:cmdarg This variable is used for two purposes: | |
1722 1. The extra arguments given to a file read/write command. | |
1723 Currently these are "++enc=" and "++ff=". This variable is | |
1724 set before an autocommand event for a file read/write | |
1725 command is triggered. There is a leading space to make it | |
1726 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
|
1727 read/write command. Note: The "+cmd" argument isn't |
7 | 1728 included here, because it will be executed anyway. |
1729 2. When printing a PostScript file with ":hardcopy" this is | |
1730 the argument for the ":hardcopy" command. This can be used | |
1731 in 'printexpr'. | |
1732 | |
1733 *v:cmdbang* *cmdbang-variable* | |
1734 v:cmdbang Set like v:cmdarg for a file read/write command. When a "!" | |
1735 was used the value is 1, otherwise it is 0. Note that this | |
1736 can only be used in autocommands. For user commands |<bang>| | |
1737 can be used. | |
1738 | |
6909 | 1739 *v:completed_item* *completed_item-variable* |
1740 v:completed_item | |
1741 |Dictionary| containing the |complete-items| for the most | |
1742 recently completed word after |CompleteDone|. The | |
1743 |Dictionary| is empty if the completion failed. | |
1744 | |
7 | 1745 *v:count* *count-variable* |
1746 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
|
1747 to get the count before a mapping. Read-only. Example: > |
7 | 1748 :map _x :<C-U>echo "the count is " . v:count<CR> |
1749 < Note: The <C-U> is required to remove the line range that you | |
1750 get when typing ':' after a count. | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
1751 When there are two counts, as in "3d2w", they are multiplied, |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
1752 just like what happens in the command, "d6w" for the example. |
667 | 1753 Also used for evaluating the 'formatexpr' option. |
16366
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
1754 "count" also works, for backwards compatibility, unless |
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
1755 |scriptversion| is 3 or higher. |
7 | 1756 |
1757 *v:count1* *count1-variable* | |
1758 v:count1 Just like "v:count", but defaults to one when no count is | |
1759 used. | |
1760 | |
1761 *v:ctype* *ctype-variable* | |
1762 v:ctype The current locale setting for characters of the runtime | |
1763 environment. This allows Vim scripts to be aware of the | |
1764 current locale encoding. Technical: it's the value of | |
1765 LC_CTYPE. When not using a locale the value is "C". | |
1766 This variable can not be set directly, use the |:language| | |
1767 command. | |
1768 See |multi-lang|. | |
1769 | |
1770 *v:dying* *dying-variable* | |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
1771 v:dying Normally zero. When a deadly signal is caught it's set to |
7 | 1772 one. When multiple signals are caught the number increases. |
1773 Can be used in an autocommand to check if Vim didn't | |
1774 terminate normally. {only works on Unix} | |
1775 Example: > | |
1776 :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
|
1777 < 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
|
1778 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
|
1779 |
17833
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1780 *v:echospace* *echospace-variable* |
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1781 v:echospace Number of screen cells that can be used for an `:echo` message |
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1782 in the last screen line before causing the |hit-enter-prompt|. |
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1783 Depends on 'showcmd', 'ruler' and 'columns'. You need to |
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1784 check 'cmdheight' for whether there are full-width lines |
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1785 available above the last line. |
8377ec7c5824
patch 8.1.1913: not easy to compute the space on the command line
Bram Moolenaar <Bram@vim.org>
parents:
17829
diff
changeset
|
1786 |
7 | 1787 *v:errmsg* *errmsg-variable* |
1788 v:errmsg Last given error message. It's allowed to set this variable. | |
1789 Example: > | |
1790 :let v:errmsg = "" | |
1791 :silent! next | |
1792 :if v:errmsg != "" | |
1793 : ... handle error | |
16366
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
1794 < "errmsg" also works, for backwards compatibility, unless |
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
1795 |scriptversion| is 3 or higher. |
7 | 1796 |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
1797 *v:errors* *errors-variable* *assert-return* |
7279
b5e9810b389d
commit https://github.com/vim/vim/commit/683fa185a4b4ed7595e5942901548b8239ed5cdb
Christian Brabandt <cb@256bit.org>
parents:
7277
diff
changeset
|
1798 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
|
1799 This is a list of strings. |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7147
diff
changeset
|
1800 The assert functions append an item when an assert fails. |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
1801 The return value indicates this: a one is returned if an item |
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
1802 was added to v:errors, otherwise zero is returned. |
7277
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7147
diff
changeset
|
1803 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
|
1804 :let v:errors = [] |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7147
diff
changeset
|
1805 < 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
|
1806 list by the assert function. |
6600871bb38c
commit https://github.com/vim/vim/commit/43345546ae63710441f066648b8485fb545b3801
Christian Brabandt <cb@256bit.org>
parents:
7147
diff
changeset
|
1807 |
13037
6e81a68d63a1
patch 8.0.1394: cannot intercept a yank command
Christian Brabandt <cb@256bit.org>
parents:
13026
diff
changeset
|
1808 *v:event* *event-variable* |
6e81a68d63a1
patch 8.0.1394: cannot intercept a yank command
Christian Brabandt <cb@256bit.org>
parents:
13026
diff
changeset
|
1809 v:event Dictionary containing information about the current |
19303 | 1810 |autocommand|. See the specific event for what it puts in |
1811 this dictionary. | |
1812 The dictionary is emptied when the |autocommand| | |
13037
6e81a68d63a1
patch 8.0.1394: cannot intercept a yank command
Christian Brabandt <cb@256bit.org>
parents:
13026
diff
changeset
|
1813 finishes, please refer to |dict-identity| for how to get an |
6e81a68d63a1
patch 8.0.1394: cannot intercept a yank command
Christian Brabandt <cb@256bit.org>
parents:
13026
diff
changeset
|
1814 independent copy of it. |
6e81a68d63a1
patch 8.0.1394: cannot intercept a yank command
Christian Brabandt <cb@256bit.org>
parents:
13026
diff
changeset
|
1815 |
7 | 1816 *v:exception* *exception-variable* |
1817 v:exception The value of the exception most recently caught and not | |
1818 finished. See also |v:throwpoint| and |throw-variables|. | |
1819 Example: > | |
1820 :try | |
1821 : throw "oops" | |
1822 :catch /.*/ | |
17571 | 1823 : echo "caught " .. v:exception |
7 | 1824 :endtry |
1825 < Output: "caught oops". | |
1826 | |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1827 *v:false* *false-variable* |
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1828 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
|
1829 |json_encode()|. |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1830 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
|
1831 echo v:false |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1832 < v:false ~ |
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1833 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
|
1834 value. Read-only. |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1835 |
179 | 1836 *v:fcs_reason* *fcs_reason-variable* |
1837 v:fcs_reason The reason why the |FileChangedShell| event was triggered. | |
1838 Can be used in an autocommand to decide what to do and/or what | |
1839 to set v:fcs_choice to. Possible values: | |
1840 deleted file no longer exists | |
1841 conflict file contents, mode or timestamp was | |
1842 changed and buffer is modified | |
1843 changed file contents has changed | |
1844 mode mode of file changed | |
1845 time only file timestamp changed | |
1846 | |
1847 *v:fcs_choice* *fcs_choice-variable* | |
1848 v:fcs_choice What should happen after a |FileChangedShell| event was | |
1849 triggered. Can be used in an autocommand to tell Vim what to | |
1850 do with the affected buffer: | |
1851 reload Reload the buffer (does not work if | |
1852 the file was deleted). | |
1853 ask Ask the user what to do, as if there | |
1854 was no autocommand. Except that when | |
1855 only the timestamp changed nothing | |
1856 will happen. | |
1857 <empty> Nothing, the autocommand should do | |
1858 everything that needs to be done. | |
1859 The default is empty. If another (invalid) value is used then | |
1860 Vim behaves like it is empty, there is no warning message. | |
1861 | |
7 | 1862 *v:fname_in* *fname_in-variable* |
579 | 1863 v:fname_in The name of the input file. Valid while evaluating: |
7 | 1864 option used for ~ |
1865 'charconvert' file to be converted | |
1866 'diffexpr' original file | |
1867 'patchexpr' original file | |
1868 'printexpr' file to be printed | |
593 | 1869 And set to the swap file name for |SwapExists|. |
7 | 1870 |
1871 *v:fname_out* *fname_out-variable* | |
1872 v:fname_out The name of the output file. Only valid while | |
1873 evaluating: | |
1874 option used for ~ | |
1875 'charconvert' resulting converted file (*) | |
1876 'diffexpr' output of diff | |
1877 'patchexpr' resulting patched file | |
1878 (*) 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
|
1879 file") it will be equal to v:fname_in. When doing conversion |
7 | 1880 for a read command (e.g., ":e file") it will be a temporary |
1881 file and different from v:fname_in. | |
1882 | |
1883 *v:fname_new* *fname_new-variable* | |
1884 v:fname_new The name of the new version of the file. Only valid while | |
1885 evaluating 'diffexpr'. | |
1886 | |
1887 *v:fname_diff* *fname_diff-variable* | |
1888 v:fname_diff The name of the diff (patch) file. Only valid while | |
1889 evaluating 'patchexpr'. | |
1890 | |
1891 *v:folddashes* *folddashes-variable* | |
1892 v:folddashes Used for 'foldtext': dashes representing foldlevel of a closed | |
1893 fold. | |
29 | 1894 Read-only in the |sandbox|. |fold-foldtext| |
7 | 1895 |
1896 *v:foldlevel* *foldlevel-variable* | |
1897 v:foldlevel Used for 'foldtext': foldlevel of closed fold. | |
29 | 1898 Read-only in the |sandbox|. |fold-foldtext| |
7 | 1899 |
1900 *v:foldend* *foldend-variable* | |
1901 v:foldend Used for 'foldtext': last line of closed fold. | |
29 | 1902 Read-only in the |sandbox|. |fold-foldtext| |
7 | 1903 |
1904 *v:foldstart* *foldstart-variable* | |
1905 v:foldstart Used for 'foldtext': first line of closed fold. | |
29 | 1906 Read-only in the |sandbox|. |fold-foldtext| |
7 | 1907 |
5460 | 1908 *v:hlsearch* *hlsearch-variable* |
12785 | 1909 v:hlsearch Variable that indicates whether search highlighting is on. |
6413 | 1910 Setting it makes sense only if 'hlsearch' is enabled which |
1911 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
|
1912 like the |:nohlsearch| command, setting it to one acts like > |
5460 | 1913 let &hlsearch = &hlsearch |
6918 | 1914 < Note that the value is restored when returning from a |
1915 function. |function-search-undo|. | |
1916 | |
11 | 1917 *v:insertmode* *insertmode-variable* |
1918 v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand | |
1919 events. Values: | |
1920 i Insert mode | |
1921 r Replace mode | |
1922 v Virtual Replace mode | |
1923 | |
102 | 1924 *v:key* *key-variable* |
685 | 1925 v:key Key of the current item of a |Dictionary|. Only valid while |
102 | 1926 evaluating the expression used with |map()| and |filter()|. |
1927 Read-only. | |
1928 | |
7 | 1929 *v:lang* *lang-variable* |
1930 v:lang The current locale setting for messages of the runtime | |
1931 environment. This allows Vim scripts to be aware of the | |
1932 current language. Technical: it's the value of LC_MESSAGES. | |
1933 The value is system dependent. | |
1934 This variable can not be set directly, use the |:language| | |
1935 command. | |
1936 It can be different from |v:ctype| when messages are desired | |
1937 in a different language than what is used for character | |
1938 encoding. See |multi-lang|. | |
1939 | |
1940 *v:lc_time* *lc_time-variable* | |
1941 v:lc_time The current locale setting for time messages of the runtime | |
1942 environment. This allows Vim scripts to be aware of the | |
1943 current language. Technical: it's the value of LC_TIME. | |
1944 This variable can not be set directly, use the |:language| | |
1945 command. See |multi-lang|. | |
1946 | |
1947 *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
|
1948 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
|
1949 '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
|
1950 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
|
1951 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
|
1952 |sandbox|. |
7 | 1953 |
1029 | 1954 *v:mouse_win* *mouse_win-variable* |
1955 v:mouse_win Window number for a mouse click obtained with |getchar()|. | |
1956 First window has number 1, like with |winnr()|. The value is | |
1957 zero when there was no mouse button click. | |
1958 | |
9221
17fa362f10be
commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents:
9219
diff
changeset
|
1959 *v:mouse_winid* *mouse_winid-variable* |
17fa362f10be
commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents:
9219
diff
changeset
|
1960 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
|
1961 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
|
1962 |
1029 | 1963 *v:mouse_lnum* *mouse_lnum-variable* |
1964 v:mouse_lnum Line number for a mouse click obtained with |getchar()|. | |
1965 This is the text line number, not the screen line number. The | |
1966 value is zero when there was no mouse button click. | |
1967 | |
1968 *v:mouse_col* *mouse_col-variable* | |
1969 v:mouse_col Column number for a mouse click obtained with |getchar()|. | |
1970 This is the screen column number, like with |virtcol()|. The | |
1971 value is zero when there was no mouse button click. | |
1972 | |
15512 | 1973 *v:none* *none-variable* *None* |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1974 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
|
1975 |json_encode()|. |
7742
5f6f35a3cb12
commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents:
7712
diff
changeset
|
1976 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
|
1977 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
|
1978 echo v:none |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1979 < v:none ~ |
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1980 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
|
1981 value. Read-only. |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1982 |
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1983 *v:null* *null-variable* |
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1984 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
|
1985 |json_encode()|. |
7742
5f6f35a3cb12
commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents:
7712
diff
changeset
|
1986 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
|
1987 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
|
1988 echo v:null |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1989 < v:null ~ |
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
1990 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
|
1991 value. Read-only. |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
1992 |
19477
2bb0e80fcd32
patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Bram Moolenaar <Bram@vim.org>
parents:
19400
diff
changeset
|
1993 *v:numbersize* *numbersize-variable* |
2bb0e80fcd32
patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Bram Moolenaar <Bram@vim.org>
parents:
19400
diff
changeset
|
1994 v:numbersize Number of bits in a Number. This is normally 64, but on some |
19523 | 1995 systems it may be 32. |
19477
2bb0e80fcd32
patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Bram Moolenaar <Bram@vim.org>
parents:
19400
diff
changeset
|
1996 |
1733 | 1997 *v:oldfiles* *oldfiles-variable* |
1998 v:oldfiles List of file names that is loaded from the |viminfo| file on | |
1999 startup. These are the files that Vim remembers marks for. | |
2000 The length of the List is limited by the ' argument of the | |
2001 'viminfo' option (default is 100). | |
5618 | 2002 When the |viminfo| file is not used the List is empty. |
1733 | 2003 Also see |:oldfiles| and |c_#<|. |
2004 The List can be modified, but this has no effect on what is | |
2005 stored in the |viminfo| file later. If you use values other | |
2006 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
|
2007 {only when compiled with the |+viminfo| feature} |
1733 | 2008 |
6935 | 2009 *v:option_new* |
2010 v:option_new New value of the option. Valid while executing an |OptionSet| | |
2011 autocommand. | |
2012 *v:option_old* | |
2013 v:option_old Old value of the option. Valid while executing an |OptionSet| | |
17085
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2014 autocommand. Depending on the command used for setting and the |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2015 kind of option this is either the local old value or the |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2016 global old value. |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2017 *v:option_oldlocal* |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2018 v:option_oldlocal |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2019 Old local value of the option. Valid while executing an |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2020 |OptionSet| autocommand. |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2021 *v:option_oldglobal* |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2022 v:option_oldglobal |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2023 Old global value of the option. Valid while executing an |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2024 |OptionSet| autocommand. |
6935 | 2025 *v:option_type* |
2026 v:option_type Scope of the set command. Valid while executing an | |
2027 |OptionSet| autocommand. Can be either "global" or "local" | |
17085
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2028 *v:option_command* |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2029 v:option_command |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2030 Command used to set the option. Valid while executing an |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2031 |OptionSet| autocommand. |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2032 value option was set via ~ |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2033 "setlocal" |:setlocal| or ":let l:xxx" |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2034 "setglobal" |:setglobal| or ":let g:xxx" |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2035 "set" |:set| or |:let| |
620e9011b685
patch 8.1.1542: an OptionSet autocommand does not get enough info
Bram Moolenaar <Bram@vim.org>
parents:
17079
diff
changeset
|
2036 "modeline" |modeline| |
1490 | 2037 *v:operator* *operator-variable* |
2038 v:operator The last operator given in Normal mode. This is a single | |
2039 character except for commands starting with <g> or <z>, | |
2040 in which case it is two characters. Best used alongside | |
2041 |v:prevcount| and |v:register|. Useful if you want to cancel | |
2042 Operator-pending mode and then use the operator, e.g.: > | |
2043 :omap O <Esc>:call MyMotion(v:operator)<CR> | |
2044 < The value remains set until another operator is entered, thus | |
2045 don't expect it to be empty. | |
2046 v:operator is not set for |:delete|, |:yank| or other Ex | |
2047 commands. | |
2048 Read-only. | |
2049 | |
7 | 2050 *v:prevcount* *prevcount-variable* |
2051 v:prevcount The count given for the last but one Normal mode command. | |
2052 This is the v:count value of the previous command. Useful if | |
1490 | 2053 you want to cancel Visual or Operator-pending mode and then |
2054 use the count, e.g.: > | |
7 | 2055 :vmap % <Esc>:call MyFilter(v:prevcount)<CR> |
2056 < Read-only. | |
2057 | |
170 | 2058 *v:profiling* *profiling-variable* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
2059 v:profiling Normally zero. Set to one after using ":profile start". |
170 | 2060 See |profiling|. |
2061 | |
7 | 2062 *v:progname* *progname-variable* |
2063 v:progname Contains the name (with path removed) with which Vim was | |
3492 | 2064 invoked. Allows you to do special initialisations for |view|, |
2065 |evim| etc., or any other name you might symlink to Vim. | |
7 | 2066 Read-only. |
2067 | |
5780 | 2068 *v:progpath* *progpath-variable* |
17758 | 2069 v:progpath Contains the command with which Vim was invoked, in a form |
2070 that when passed to the shell will run the same Vim executable | |
2071 as the current one (if $PATH remains unchanged). | |
2072 Useful if you want to message a Vim server using a | |
5780 | 2073 |--remote-expr|. |
5782 | 2074 To get the full path use: > |
2075 echo exepath(v:progpath) | |
17758 | 2076 < If the command has a relative path it will be expanded to the |
2077 full path, so that it still works after `:cd`. Thus starting | |
2078 "./vim" results in "/home/user/path/to/vim/src/vim". | |
2079 On Linux and other systems it will always be the full path. | |
2080 On Mac it may just be "vim" and using exepath() as mentioned | |
2081 above should be used to get the full path. | |
11032
516391d8865f
patch 8.0.0405: v:progpath may become invalid after :cd
Christian Brabandt <cb@256bit.org>
parents:
11014
diff
changeset
|
2082 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
|
2083 ".exe" is not added to v:progpath. |
5780 | 2084 Read-only. |
2085 | |
7 | 2086 *v:register* *register-variable* |
2698
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2681
diff
changeset
|
2087 v:register The name of the register in effect for the current normal mode |
3492 | 2088 command (regardless of whether that command actually used a |
2089 register). Or for the currently executing normal mode mapping | |
2090 (use this in custom commands that take a register). | |
2091 If none is supplied it is the default register '"', unless | |
2092 'clipboard' contains "unnamed" or "unnamedplus", then it is | |
2093 '*' or '+'. | |
2698
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2681
diff
changeset
|
2094 Also see |getreg()| and |setreg()| |
7 | 2095 |
540 | 2096 *v:scrollstart* *scrollstart-variable* |
2097 v:scrollstart String describing the script or function that caused the | |
2098 screen to scroll up. It's only set when it is empty, thus the | |
2099 first reason is remembered. It is set to "Unknown" for a | |
2100 typed command. | |
2101 This can be used to find out why your script causes the | |
2102 hit-enter prompt. | |
2103 | |
7 | 2104 *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
|
2105 v:servername The resulting registered |client-server-name| if any. |
7 | 2106 Read-only. |
2107 | |
12785 | 2108 |
1621 | 2109 v:searchforward *v:searchforward* *searchforward-variable* |
2110 Search direction: 1 after a forward search, 0 after a | |
2111 backward search. It is reset to forward when directly setting | |
2112 the last search pattern, see |quote/|. | |
2113 Note that the value is restored when returning from a | |
2114 function. |function-search-undo|. | |
2115 Read-write. | |
2116 | |
7 | 2117 *v:shell_error* *shell_error-variable* |
2118 v:shell_error Result of the last shell command. When non-zero, the last | |
2119 shell command had an error. When zero, there was no problem. | |
2120 This only works when the shell returns the error code to Vim. | |
2121 The value -1 is often used when the command could not be | |
2122 executed. Read-only. | |
2123 Example: > | |
2124 :!mv foo bar | |
2125 :if v:shell_error | |
2126 : echo 'could not rename "foo" to "bar"!' | |
2127 :endif | |
16366
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
2128 < "shell_error" also works, for backwards compatibility, unless |
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
2129 |scriptversion| is 3 or higher. |
7 | 2130 |
2131 *v:statusmsg* *statusmsg-variable* | |
2132 v:statusmsg Last given status message. It's allowed to set this variable. | |
2133 | |
579 | 2134 *v:swapname* *swapname-variable* |
2135 v:swapname Only valid when executing |SwapExists| autocommands: Name of | |
2136 the swap file found. Read-only. | |
2137 | |
2138 *v:swapchoice* *swapchoice-variable* | |
2139 v:swapchoice |SwapExists| autocommands can set this to the selected choice | |
2140 for handling an existing swap file: | |
2141 'o' Open read-only | |
2142 'e' Edit anyway | |
2143 'r' Recover | |
2144 'd' Delete swapfile | |
2145 'q' Quit | |
2146 'a' Abort | |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
2147 The value should be a single-character string. An empty value |
579 | 2148 results in the user being asked, as would happen when there is |
2149 no SwapExists autocommand. The default is empty. | |
2150 | |
590 | 2151 *v:swapcommand* *swapcommand-variable* |
625 | 2152 v:swapcommand Normal mode command to be executed after a file has been |
590 | 2153 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
|
2154 another Vim open the file and jump to the right place. For |
590 | 2155 example, when jumping to a tag the value is ":tag tagname\r". |
716 | 2156 For ":edit +cmd file" the value is ":cmd\r". |
590 | 2157 |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
2158 *v:t_TYPE* *v:t_bool* *t_bool-variable* |
15512 | 2159 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
|
2160 *v:t_channel* *t_channel-variable* |
15512 | 2161 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
|
2162 *v:t_dict* *t_dict-variable* |
15512 | 2163 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
|
2164 *v:t_float* *t_float-variable* |
15512 | 2165 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
|
2166 *v:t_func* *t_func-variable* |
15512 | 2167 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
|
2168 *v:t_job* *t_job-variable* |
15512 | 2169 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
|
2170 *v:t_list* *t_list-variable* |
15512 | 2171 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
|
2172 *v:t_none* *t_none-variable* |
15512 | 2173 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
|
2174 *v:t_number* *t_number-variable* |
15512 | 2175 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
|
2176 *v:t_string* *t_string-variable* |
15512 | 2177 v:t_string Value of |String| type. Read-only. See: |type()| |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2178 *v:t_blob* *t_blob-variable* |
15512 | 2179 v:t_blob Value of |Blob| type. Read-only. See: |type()| |
9587
05a56bbe34a1
commit https://github.com/vim/vim/commit/f562e72df726c6191fa305e1c0a113f1cfb87f76
Christian Brabandt <cb@256bit.org>
parents:
9555
diff
changeset
|
2180 |
7 | 2181 *v:termresponse* *termresponse-variable* |
2182 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
|
2183 termcap entry. It is set when Vim receives an escape sequence |
16849
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
2184 that starts with ESC [ or CSI, then '>' or '?' and ends in a |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
2185 'c', with only digits and ';' in between. |
7 | 2186 When this option is set, the TermResponse autocommand event is |
2187 fired, so that you can react to the response from the | |
2188 terminal. | |
16849
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
2189 The response from a new xterm is: "<Esc>[> Pp ; Pv ; Pc c". Pp |
7 | 2190 is the terminal type: 0 for vt100 and 1 for vt220. Pv is the |
2191 patch level (since this was introduced in patch 95, it's | |
2192 always 95 or bigger). Pc is always zero. | |
2193 {only when compiled with |+termresponse| feature} | |
2194 | |
12273
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2195 *v:termblinkresp* |
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2196 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
|
2197 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
|
2198 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
|
2199 |
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2200 *v:termstyleresp* |
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2201 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
|
2202 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
|
2203 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
|
2204 |
12632
b1a7e3968a31
patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents:
12499
diff
changeset
|
2205 *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
|
2206 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
|
2207 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
|
2208 background color is, see 'background'. |
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2209 |
12632
b1a7e3968a31
patch 8.0.1194: actual fg and bg colors of terminal are unknown
Christian Brabandt <cb@256bit.org>
parents:
12499
diff
changeset
|
2210 *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
|
2211 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
|
2212 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
|
2213 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
|
2214 |
12273
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2215 *v:termu7resp* |
c952a6af25e0
patch 8.0.1016: gnome terminal echoes t_RC
Christian Brabandt <cb@256bit.org>
parents:
12254
diff
changeset
|
2216 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
|
2217 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
|
2218 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
|
2219 |
8881
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
2220 *v:testing* *testing-variable* |
9121
7350959e53c3
commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents:
9117
diff
changeset
|
2221 v:testing Must be set before using `test_garbagecollect_now()`. |
11160 | 2222 Also, when set certain error messages won't be shown for 2 |
12785 | 2223 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
|
2224 |
7 | 2225 *v:this_session* *this_session-variable* |
2226 v:this_session Full filename of the last loaded or saved session file. See | |
2227 |:mksession|. It is allowed to set this variable. When no | |
2228 session file has been saved, this variable is empty. | |
16366
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
2229 "this_session" also works, for backwards compatibility, unless |
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
2230 |scriptversion| is 3 or higher |
7 | 2231 |
2232 *v:throwpoint* *throwpoint-variable* | |
2233 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
|
2234 finished was thrown. Not set when commands are typed. See |
7 | 2235 also |v:exception| and |throw-variables|. |
2236 Example: > | |
2237 :try | |
2238 : throw "oops" | |
2239 :catch /.*/ | |
2240 : echo "Exception from" v:throwpoint | |
2241 :endtry | |
2242 < Output: "Exception from test.vim, line 2" | |
2243 | |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
2244 *v:true* *true-variable* |
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
2245 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
|
2246 |json_encode()|. |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
2247 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
|
2248 echo v:true |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
2249 < v:true ~ |
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
2250 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
|
2251 value. Read-only. |
102 | 2252 *v:val* *val-variable* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
2253 v:val Value of the current item of a |List| or |Dictionary|. Only |
685 | 2254 valid while evaluating the expression used with |map()| and |
102 | 2255 |filter()|. Read-only. |
2256 | |
7 | 2257 *v:version* *version-variable* |
2258 v:version Version number of Vim: Major version number times 100 plus | |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
2259 minor version number. Version 5.0 is 500. Version 5.1 |
7 | 2260 is 501. Read-only. "version" also works, for backwards |
16366
6ee80f3b5ea9
patch 8.1.1188: not all Vim variables require the v: prefix
Bram Moolenaar <Bram@vim.org>
parents:
16271
diff
changeset
|
2261 compatibility, unless |scriptversion| is 3 or higher. |
7 | 2262 Use |has()| to check if a certain patch was included, e.g.: > |
5786 | 2263 if has("patch-7.4.123") |
7 | 2264 < Note that patch numbers are specific to the version, thus both |
2265 version 5.0 and 5.1 may have a patch 123, but these are | |
2266 completely different. | |
2267 | |
17053
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2268 *v:versionlong* *versionlong-variable* |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
2269 v:versionlong Like v:version, but also including the patchlevel in the last |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
2270 four digits. Version 8.1 with patch 123 has value 8010123. |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
2271 This can be used like this: > |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
2272 if v:versionlong >= 8010123 |
17053
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2273 < However, if there are gaps in the list of patches included |
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2274 this will not work well. This can happen if a recent patch |
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2275 was included into an older version, e.g. for a security fix. |
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2276 Use the has() function to make sure the patch is actually |
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2277 included. |
d5fa04016df0
patch 8.1.1526: no numerical value for the patchlevel
Bram Moolenaar <Bram@vim.org>
parents:
17036
diff
changeset
|
2278 |
8738
e770986c855a
commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
8669
diff
changeset
|
2279 *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
|
2280 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
|
2281 before |VimEnter| autocommands are triggered. |
e770986c855a
commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
8669
diff
changeset
|
2282 |
7 | 2283 *v:warningmsg* *warningmsg-variable* |
2284 v:warningmsg Last given warning message. It's allowed to set this variable. | |
2285 | |
2609 | 2286 *v:windowid* *windowid-variable* |
2287 v:windowid When any X11 based GUI is running or when running in a | |
2288 terminal and Vim connects to the X server (|-X|) this will be | |
2616 | 2289 set to the window ID. |
2290 When an MS-Windows GUI is running this will be set to the | |
2291 window handle. | |
2292 Otherwise the value is zero. | |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
2293 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
|
2294 see |window-ID|. |
2609 | 2295 |
7 | 2296 ============================================================================== |
2297 4. Builtin Functions *functions* | |
2298 | |
2299 See |function-list| for a list grouped by what the function is used for. | |
2300 | |
236 | 2301 (Use CTRL-] on the function name to jump to the full explanation.) |
7 | 2302 |
2303 USAGE RESULT DESCRIPTION ~ | |
2304 | |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2305 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
|
2306 acos({expr}) Float arc cosine of {expr} |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
2307 add({object}, {item}) List/Blob append {item} to {object} |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2308 and({expr}, {expr}) Number bitwise AND |
14864 | 2309 append({lnum}, {text}) Number append {text} below line {lnum} |
2310 appendbufline({expr}, {lnum}, {text}) | |
2311 Number append {text} below line {lnum} | |
2312 in buffer {expr} | |
15033 | 2313 argc([{winid}]) Number number of files in the argument list |
55 | 2314 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
|
2315 arglistid([{winnr} [, {tabnr}]]) Number argument list id |
14964
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
2316 argv({nr} [, {winid}]) String {nr} entry of the argument list |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
2317 argv([-1, {winid}]) List the argument list |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2318 assert_beeps({cmd}) Number assert {cmd} causes a beep |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11177
diff
changeset
|
2319 assert_equal({exp}, {act} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2320 Number assert {exp} is equal to {act} |
13298
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
2321 assert_equalfile({fname-one}, {fname-two}) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2322 Number assert file contents is equal |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11177
diff
changeset
|
2323 assert_exception({error} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2324 Number assert {error} is in v:exception |
14945 | 2325 assert_fails({cmd} [, {error} [, {msg}]]) |
2326 Number assert {cmd} fails | |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11177
diff
changeset
|
2327 assert_false({actual} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2328 Number assert {actual} is false |
9636
ccbb8e393d80
commit https://github.com/vim/vim/commit/61c04493b00f85d0b97436260a9ef9ab82143b78
Christian Brabandt <cb@256bit.org>
parents:
9626
diff
changeset
|
2329 assert_inrange({lower}, {upper}, {actual} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2330 Number 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
|
2331 assert_match({pat}, {text} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2332 Number assert {pat} matches {text} |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11177
diff
changeset
|
2333 assert_notequal({exp}, {act} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2334 Number assert {exp} is not equal {act} |
11181
13544aa85dc0
patch 8.0.0477: the client-server test may hang when failing
Christian Brabandt <cb@256bit.org>
parents:
11177
diff
changeset
|
2335 assert_notmatch({pat}, {text} [, {msg}]) |
13796
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2336 Number assert {pat} not matches {text} |
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2337 assert_report({msg}) Number report a test failure |
87012d2b17b5
patch 8.0.1770: assert functions don't return anything
Christian Brabandt <cb@256bit.org>
parents:
13740
diff
changeset
|
2338 assert_true({actual} [, {msg}]) Number assert {actual} is true |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2339 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
|
2340 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
|
2341 atan2({expr1}, {expr2}) Float arc tangent of {expr1} / {expr2} |
16600
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
2342 balloon_gettext() String current text in the balloon |
13016
e47e70300f30
patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents:
12977
diff
changeset
|
2343 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
|
2344 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
|
2345 browse({save}, {title}, {initdir}, {default}) |
7 | 2346 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
|
2347 browsedir({title}, {initdir}) String put up a directory requester |
17221
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
2348 bufadd({name}) Number add a buffer to the buffer list |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2349 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
|
2350 buflisted({expr}) Number |TRUE| if buffer {expr} is listed |
17221
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
2351 bufload({expr}) Number load buffer {expr} if not loaded yet |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2352 bufloaded({expr}) Number |TRUE| if buffer {expr} is loaded |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
2353 bufname([{expr}]) String Name of the buffer {expr} |
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
2354 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
|
2355 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
|
2356 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
|
2357 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
|
2358 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
|
2359 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
|
2360 call({func}, {arglist} [, {dict}]) |
102 | 2361 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
|
2362 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
|
2363 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
|
2364 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
|
2365 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
|
2366 ch_evalexpr({handle}, {expr} [, {options}]) |
8440
4c6ad81d41fe
commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents:
8392
diff
changeset
|
2367 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
|
2368 ch_evalraw({handle}, {string} [, {options}]) |
8440
4c6ad81d41fe
commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents:
8392
diff
changeset
|
2369 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
|
2370 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
|
2371 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
|
2372 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
|
2373 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
|
2374 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
|
2375 ch_open({address} [, {options}]) |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2376 Channel open a channel to {address} |
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2377 ch_read({handle} [, {options}]) String read from {handle} |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2378 ch_readblob({handle} [, {options}]) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2379 Blob read Blob from {handle} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2380 ch_readraw({handle} [, {options}]) |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2381 String read raw from {handle} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2382 ch_sendexpr({handle}, {expr} [, {options}]) |
8440
4c6ad81d41fe
commit https://github.com/vim/vim/commit/5f148ec0b5a6cedd9129b3abac351034b83cc4f7
Christian Brabandt <cb@256bit.org>
parents:
8392
diff
changeset
|
2383 any send {expr} over JSON {handle} |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2384 ch_sendraw({handle}, {expr} [, {options}]) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2385 any send {expr} over raw {handle} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2386 ch_setoptions({handle}, {options}) |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2387 none set options for {handle} |
10233
d709622a18c9
commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents:
10228
diff
changeset
|
2388 ch_status({handle} [, {options}]) |
d709622a18c9
commit https://github.com/vim/vim/commit/7ef3810d28b7ab2edbfcafab3fe8ad8bc2c2f138
Christian Brabandt <cb@256bit.org>
parents:
10228
diff
changeset
|
2389 String status of channel {handle} |
1621 | 2390 changenr() Number current change number |
12785 | 2391 char2nr({expr} [, {utf8}]) Number ASCII/UTF8 value of first char in {expr} |
16576
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
2392 chdir({dir}) String change current working directory |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2393 cindent({lnum}) Number C indent for line {lnum} |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
2394 clearmatches([{win}]) none clear all matches |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2395 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
|
2396 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
|
2397 complete_add({expr}) Number add completion match |
1621 | 2398 complete_check() Number check for key typed during completion |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
2399 complete_info([{what}]) Dict get current completion information |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2400 confirm({msg} [, {choices} [, {default} [, {type}]]]) |
7 | 2401 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
|
2402 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
|
2403 cos({expr}) Float cosine of {expr} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2404 cosh({expr}) Float hyperbolic cosine of {expr} |
14864 | 2405 count({comp}, {expr} [, {ic} [, {start}]]) |
2406 Number count how many {expr} are in {comp} | |
9887
b4da19b7539f
commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents:
9881
diff
changeset
|
2407 cscope_connection([{num}, {dbpath} [, {prepend}]]) |
7 | 2408 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
|
2409 cursor({lnum}, {col} [, {off}]) |
6385 | 2410 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
|
2411 cursor({list}) Number move cursor to position in {list} |
14147
de75c249723d
patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
2412 debugbreak({pid}) Number interrupt process being debugged |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2413 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
|
2414 delete({fname} [, {flags}]) Number delete the file or directory {fname} |
14519 | 2415 deletebufline({expr}, {first} [, {last}]) |
14043
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
2416 Number delete lines from buffer {expr} |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2417 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
|
2418 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
|
2419 diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col} |
19400
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
2420 echoraw({expr}) none output {expr} as-is |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2421 empty({expr}) Number |TRUE| if {expr} is empty |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
2422 environ() Dict return environment variables |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2423 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
|
2424 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
|
2425 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
|
2426 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
|
2427 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
|
2428 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
|
2429 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
|
2430 extend({expr1}, {expr2} [, {expr3}]) |
824 | 2431 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
|
2432 exp({expr}) Float exponential of {expr} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2433 expand({expr} [, {nosuf} [, {list}]]) |
3398 | 2434 any expand special keywords in {expr} |
17020
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
2435 expandcmd({expr}) String expand {expr} like with `:edit` |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2436 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
|
2437 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
|
2438 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
|
2439 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
|
2440 {expr2} is 0 |
12785 | 2441 finddir({name} [, {path} [, {count}]]) |
824 | 2442 String find directory {name} in {path} |
12785 | 2443 findfile({name} [, {path} [, {count}]]) |
824 | 2444 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
|
2445 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
|
2446 floor({expr}) Float round {expr} down |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2447 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
|
2448 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
|
2449 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
|
2450 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
|
2451 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
|
2452 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
|
2453 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
|
2454 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
|
2455 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
|
2456 funcref({name} [, {arglist}] [, {dict}]) |
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
2457 Funcref reference to function {name} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2458 function({name} [, {arglist}] [, {dict}]) |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
2459 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
|
2460 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
|
2461 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
|
2462 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
|
2463 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
|
2464 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
|
2465 getbufline({expr}, {lnum} [, {end}]) |
435 | 2466 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
|
2467 getbufvar({expr}, {varname} [, {def}]) |
4157 | 2468 any variable {varname} in buffer {expr} |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
2469 getchangelist([{expr}]) List list of change list items |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2470 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
|
2471 getcharmod() Number modifiers for the last typed character |
7013 | 2472 getcharsearch() Dict last character search |
7 | 2473 getcmdline() String return the current command-line |
2474 getcmdpos() Number return cursor position in command-line | |
6153 | 2475 getcmdtype() String return current command-line type |
2476 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
|
2477 getcompletion({pat}, {type} [, {filtered}]) |
74f67cb4f7e1
commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
2478 List list of cmdline completion matches |
5944 | 2479 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
|
2480 getcwd([{winnr} [, {tabnr}]]) String get the current working directory |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
2481 getenv({name}) String return environment variable |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2482 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
|
2483 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
|
2484 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
|
2485 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
|
2486 getftype({fname}) String description of type of file {fname} |
18008
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
18000
diff
changeset
|
2487 getimstatus() Number |TRUE| if the IME status is active |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
2488 getjumplist([{winnr} [, {tabnr}]]) |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
2489 List list of jump list items |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2490 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
|
2491 getline({lnum}, {end}) List lines {lnum} to {end} of current buffer |
12785 | 2492 getloclist({nr} [, {what}]) List list of location list items |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
2493 getmatches([{win}]) List list of current matches |
18623
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
2494 getmousepos() Dict last known mouse position |
1548 | 2495 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
|
2496 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
|
2497 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
|
2498 getreg([{regname} [, 1 [, {list}]]]) |
5796 | 2499 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
|
2500 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
|
2501 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
|
2502 gettabvar({nr}, {varname} [, {def}]) |
4157 | 2503 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
|
2504 gettabwinvar({tabnr}, {winnr}, {name} [, {def}]) |
831 | 2505 any {name} in {winnr} in tab page {tabnr} |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
2506 gettagstack([{nr}]) Dict get the tag stack of window {nr} |
14343
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
2507 getwininfo([{winid}]) List list of info about each window |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
2508 getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window |
13379
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
2509 getwinposx() Number X coord in pixels of the Vim window |
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
2510 getwinposy() Number Y coord in pixels of the Vim window |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2511 getwinvar({nr}, {varname} [, {def}]) |
4157 | 2512 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
|
2513 glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) |
3398 | 2514 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
|
2515 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
|
2516 globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]) |
1754 | 2517 String do glob({expr}) for all dirs in {path} |
19742
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
2518 has({feature} [, {check}]) Number |TRUE| if feature {feature} supported |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2519 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
|
2520 haslocaldir([{winnr} [, {tabnr}]]) |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2521 Number |TRUE| if the window executed |:lcd| |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
2522 or |:tcd| |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2523 hasmapto({what} [, {mode} [, {abbr}]]) |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2524 Number |TRUE| if mapping to {what} exists |
19181
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
2525 histadd({history}, {item}) Number add an item to a history |
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
2526 histdel({history} [, {item}]) Number remove an item from a history |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2527 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
|
2528 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
|
2529 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
|
2530 hlID({name}) Number syntax ID of highlight group {name} |
7 | 2531 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
|
2532 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
|
2533 indent({lnum}) Number indent of line {lnum} |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2534 index({object}, {expr} [, {start} [, {ic}]]) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2535 Number index in {object} where {expr} appears |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2536 input({prompt} [, {text} [, {completion}]]) |
531 | 2537 String get input from the user |
11763
21f3930dfe6e
Documentation updates.
Christian Brabandt <cb@256bit.org>
parents:
11659
diff
changeset
|
2538 inputdialog({prompt} [, {text} [, {completion}]]) |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2539 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
|
2540 inputlist({textlist}) Number let the user pick from a choice list |
55 | 2541 inputrestore() Number restore typeahead |
2542 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
|
2543 inputsecret({prompt} [, {text}]) String like input() but hiding the text |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2544 insert({object}, {item} [, {idx}]) List insert {item} in {object} [before {idx}] |
18699
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
2545 interrupt() none interrupt script execution |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2546 invert({expr}) Number bitwise invert |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2547 isdirectory({directory}) Number |TRUE| if {directory} is a directory |
16213
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
2548 isinf({expr}) Number determine if {expr} is infinity value |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
2549 (positive or negative) |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
2550 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
|
2551 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
|
2552 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
|
2553 job_getchannel({job}) Channel get the channel handle for {job} |
13740
f309afff6f25
patch 8.0.1742: cannot get a list of all the jobs
Christian Brabandt <cb@256bit.org>
parents:
13735
diff
changeset
|
2554 job_info([{job}]) Dict get information about {job} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2555 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
|
2556 job_start({command} [, {options}]) |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2557 Job start a job |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2558 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
|
2559 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
|
2560 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
|
2561 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
|
2562 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
|
2563 json_decode({string}) any decode JSON |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2564 json_encode({expr}) String encode JSON |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2565 keys({dict}) List keys in {dict} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2566 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
|
2567 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
|
2568 libcallnr({lib}, {func}, {arg}) Number idem, but return a Number |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
2569 line({expr} [, {winid}]) Number line nr of cursor, last line or mark |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2570 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
|
2571 lispindent({lnum}) Number Lisp indent for line {lnum} |
16235
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
2572 list2str({list} [, {utf8}]) String turn numbers in {list} into a String |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
2573 listener_add({callback} [, {buf}]) |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
2574 Number add a callback to listen to changes |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
2575 listener_flush([{buf}]) none invoke listener callbacks |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
2576 listener_remove({id}) none remove a listener callback |
7 | 2577 localtime() Number current time |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2578 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
|
2579 log10({expr}) Float logarithm of Float {expr} to base 10 |
12785 | 2580 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
|
2581 map({expr1}, {expr2}) List/Dict change each item in {expr1} to {expr} |
12785 | 2582 maparg({name} [, {mode} [, {abbr} [, {dict}]]]) |
3224 | 2583 String or Dict |
2584 rhs of mapping {name} in mode {mode} | |
12785 | 2585 mapcheck({name} [, {mode} [, {abbr}]]) |
782 | 2586 String check for mappings matching {name} |
12785 | 2587 match({expr}, {pat} [, {start} [, {count}]]) |
7 | 2588 Number position where {pat} matches in {expr} |
12785 | 2589 matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]]) |
1326 | 2590 Number highlight {pattern} with {group} |
12785 | 2591 matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) |
5979 | 2592 Number highlight positions with {group} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2593 matcharg({nr}) List arguments of |:match| |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
2594 matchdelete({id} [, {win}]) Number delete match identified by {id} |
12785 | 2595 matchend({expr}, {pat} [, {start} [, {count}]]) |
7 | 2596 Number position where {pat} ends in {expr} |
12785 | 2597 matchlist({expr}, {pat} [, {start} [, {count}]]) |
158 | 2598 List match and submatches of {pat} in {expr} |
12785 | 2599 matchstr({expr}, {pat} [, {start} [, {count}]]) |
19 | 2600 String {count}'th match of {pat} in {expr} |
12785 | 2601 matchstrpos({expr}, {pat} [, {start} [, {count}]]) |
8793
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
2602 List {count}'th match of {pat} in {expr} |
10734 | 2603 max({expr}) Number maximum value of items in {expr} |
19657
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
2604 menu_info({name} [, {mode}]) Dict get menu item information |
10734 | 2605 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
|
2606 mkdir({name} [, {path} [, {prot}]]) |
168 | 2607 Number create directory {name} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2608 mode([expr]) String current editing mode |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2609 mzeval({expr}) any evaluate |MzScheme| expression |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2610 nextnonblank({lnum}) Number line nr of non-blank line >= {lnum} |
12785 | 2611 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
|
2612 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
|
2613 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
|
2614 perleval({expr}) any evaluate |Perl| expression |
17257
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2615 popup_atcursor({what}, {options}) Number create popup window near the cursor |
18130 | 2616 popup_beval({what}, {options}) Number create popup window for 'ballooneval' |
17257
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2617 popup_clear() none close all popup windows |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2618 popup_close({id} [, {result}]) none close popup window {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2619 popup_create({what}, {options}) Number create a popup window |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2620 popup_dialog({what}, {options}) Number create a popup window used as a dialog |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2621 popup_filter_menu({id}, {key}) Number filter for a menu popup window |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2622 popup_filter_yesno({id}, {key}) Number filter for a dialog popup window |
17825
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
2623 popup_findinfo() Number get window ID of info popup window |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
2624 popup_findpreview() Number get window ID of preview popup window |
17257
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2625 popup_getoptions({id}) Dict get options of popup window {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2626 popup_getpos({id}) Dict get position of popup window {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2627 popup_hide({id}) none hide popup menu {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2628 popup_menu({what}, {options}) Number create a popup window used as a menu |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2629 popup_move({id}, {options}) none set position of popup window {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2630 popup_notification({what}, {options}) |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2631 Number create a notification popup window |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2632 popup_show({id}) none unhide popup window {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2633 popup_setoptions({id}, {options}) |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2634 none set options for popup window {id} |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
2635 popup_settext({id}, {text}) none set the text of popup window {id} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2636 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
|
2637 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
|
2638 printf({fmt}, {expr1}...) String format text |
14103
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
2639 prompt_setcallback({buf}, {expr}) none set prompt callback function |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
2640 prompt_setinterrupt({buf}, {text}) none set prompt interrupt function |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
2641 prompt_setprompt({buf}, {text}) none set prompt text |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2642 prop_add({lnum}, {col}, {props}) none add a text property |
15251
17525ca95e1e
patch 8.1.0634: text properties cannot cross line boundaries
Bram Moolenaar <Bram@vim.org>
parents:
15219
diff
changeset
|
2643 prop_clear({lnum} [, {lnum-end} [, {props}]]) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2644 none remove all text properties |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2645 prop_find({props} [, {direction}]) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2646 Dict search for a text property |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
2647 prop_list({lnum} [, {props}) List text properties in {lnum} |
15281 | 2648 prop_remove({props} [, {lnum} [, {lnum-end}]]) |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2649 Number remove a text property |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2650 prop_type_add({name}, {props}) none define a new property type |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2651 prop_type_change({name}, {props}) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2652 none change an existing property type |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2653 prop_type_delete({name} [, {props}]) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2654 none delete a property type |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2655 prop_type_get([{name} [, {props}]) |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2656 Dict get property type values |
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
2657 prop_type_list([{props}]) List get list of property types |
17756
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
2658 pum_getpos() Dict position and size of pum if visible |
1621 | 2659 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
|
2660 pyeval({expr}) any evaluate |Python| expression |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2661 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
|
2662 pyxeval({expr}) any evaluate |python_x| expression |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
2663 rand([{expr}]) Number get pseudo-random number |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2664 range({expr} [, {max} [, {stride}]]) |
99 | 2665 List items from {expr} to {max} |
16267 | 2666 readdir({dir} [, {expr}]) List file names in {dir} selected by {expr} |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2667 readfile({fname} [, {type} [, {max}]]) |
168 | 2668 List get list of lines from file {fname} |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
2669 reg_executing() String get the executing register name |
14004
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
2670 reg_recording() String get the recording register name |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2671 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
|
2672 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
|
2673 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
|
2674 remote_expr({server}, {string} [, {idvar} [, {timeout}]]) |
7 | 2675 String send expression |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2676 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
|
2677 remote_peek({serverid} [, {retvar}]) |
7 | 2678 Number check for reply string |
11229
146a1e213b60
Update runtime files. Add Rust support.
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
2679 remote_read({serverid} [, {timeout}]) |
146a1e213b60
Update runtime files. Add Rust support.
Christian Brabandt <cb@256bit.org>
parents:
11225
diff
changeset
|
2680 String read reply string |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2681 remote_send({server}, {string} [, {idvar}]) |
7 | 2682 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
|
2683 remote_startserver({name}) none become server {name} |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
2684 remove({list}, {idx} [, {end}]) any/List |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
2685 remove items {idx}-{end} from {list} |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
2686 remove({blob}, {idx} [, {end}]) Number/Blob |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
2687 remove bytes {idx}-{end} from {blob} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2688 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
|
2689 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
|
2690 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
|
2691 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
|
2692 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
|
2693 round({expr}) Float round off {expr} |
16103
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
2694 rubyeval({expr}) any evaluate |Ruby| expression |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2695 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
|
2696 screenchar({row}, {col}) Number character at screen position |
16133
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
2697 screenchars({row}, {col}) List List of characters at screen position |
3986 | 2698 screencol() Number current cursor column |
17292
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
2699 screenpos({winid}, {lnum}, {col}) Dict screen row and col of a text character |
3986 | 2700 screenrow() Number current cursor row |
16133
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
2701 screenstring({row}, {col}) String characters at screen position |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2702 search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) |
1496 | 2703 Number search for {pattern} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2704 searchdecl({name} [, {global} [, {thisblock}]]) |
1621 | 2705 Number search for variable declaration |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2706 searchpair({start}, {middle}, {end} [, {flags} [, {skip} [...]]]) |
55 | 2707 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
|
2708 searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [...]]]) |
667 | 2709 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
|
2710 searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) |
667 | 2711 List search for {pattern} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2712 server2client({clientid}, {string}) |
7 | 2713 Number send reply string |
2714 serverlist() String get a list of available servers | |
14864 | 2715 setbufline({expr}, {lnum}, {text}) |
2716 Number set line {lnum} to {text} in buffer | |
12319
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
2717 {expr} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2718 setbufvar({expr}, {varname}, {val}) |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2719 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
|
2720 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
|
2721 setcmdpos({pos}) Number set cursor position in command-line |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
2722 setenv({name}, {val}) none set environment variable |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2723 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
|
2724 setline({lnum}, {line}) Number set line {lnum} to {line} |
12785 | 2725 setloclist({nr}, {list} [, {action} [, {what}]]) |
647 | 2726 Number modify location list using {list} |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
2727 setmatches({list} [, {win}]) Number restore a list of matches |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2728 setpos({expr}, {list}) Number set the {expr} position to {list} |
12785 | 2729 setqflist({list} [, {action} [, {what}]]) |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
2730 Number modify quickfix list using {list} |
12785 | 2731 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
|
2732 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
|
2733 settabwinvar({tabnr}, {winnr}, {varname}, {val}) |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2734 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
|
2735 page {tabnr} to {val} |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
2736 settagstack({nr}, {dict} [, {action}]) |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
2737 Number modify tag stack using {dict} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2738 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
|
2739 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
|
2740 shellescape({string} [, {special}]) |
1661 | 2741 String escape {string} for use as shell |
985 | 2742 command argument |
15062
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
2743 shiftwidth([{col}]) Number effective value of 'shiftwidth' |
15209
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2744 sign_define({name} [, {dict}]) Number define or update a sign |
17366
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
2745 sign_define({list}) List define or update a list of signs |
15209
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2746 sign_getdefined([{name}]) List get a list of defined signs |
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2747 sign_getplaced([{expr} [, {dict}]]) |
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2748 List get a list of placed signs |
15418
51b3c36b0523
patch 8.1.0717: there is no function for the ":sign jump" command
Bram Moolenaar <Bram@vim.org>
parents:
15388
diff
changeset
|
2749 sign_jump({id}, {group}, {expr}) |
51b3c36b0523
patch 8.1.0717: there is no function for the ":sign jump" command
Bram Moolenaar <Bram@vim.org>
parents:
15388
diff
changeset
|
2750 Number jump to a sign |
15209
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2751 sign_place({id}, {group}, {name}, {expr} [, {dict}]) |
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2752 Number place a sign |
17366
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
2753 sign_placelist({list}) List place a list of signs |
15209
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2754 sign_undefine([{name}]) Number undefine a sign |
17366
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
2755 sign_undefine({list}) List undefine a list of signs |
15209
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2756 sign_unplace({group} [, {dict}]) |
3a99b2e6d136
patch 8.1.0614: placing signs can be complicated
Bram Moolenaar <Bram@vim.org>
parents:
15194
diff
changeset
|
2757 Number unplace a sign |
17366
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
2758 sign_unplacelist({list}) List unplace a list of signs |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2759 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
|
2760 sin({expr}) Float sine of {expr} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2761 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
|
2762 sort({list} [, {func} [, {dict}]]) |
2902 | 2763 List sort {list}, using {func} to compare |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
2764 sound_clear() none stop playing all sounds |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
2765 sound_playevent({name} [, {callback}]) |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
2766 Number play an event sound |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
2767 sound_playfile({path} [, {callback}]) |
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
2768 Number play sound file {path} |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
2769 sound_stop({id}) none stop playing sound {id} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2770 soundfold({word}) String sound-fold {word} |
344 | 2771 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
|
2772 spellsuggest({word} [, {max} [, {capital}]]) |
537 | 2773 List spelling suggestions |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2774 split({expr} [, {pat} [, {keepempty}]]) |
685 | 2775 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
|
2776 sqrt({expr}) Float square root of {expr} |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
2777 srand([{expr}]) List get seed for |rand()| |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
2778 state([{what}]) String current state of Vim |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2779 str2float({expr}) Float convert String to Float |
16235
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
2780 str2list({expr} [, {utf8}]) List convert each character of {expr} to |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
2781 ASCII/UTF8 value |
18080
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
2782 str2nr({expr} [, {base} [, {quoted}]]) |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
2783 Number convert String to Number |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2784 strchars({expr} [, {skipcc}]) Number character length of the String {expr} |
12785 | 2785 strcharpart({str}, {start} [, {len}]) |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
2786 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
|
2787 strdisplaywidth({expr} [, {col}]) Number display length of the String {expr} |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
2788 strftime({format} [, {time}]) String format time with a specified format |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
2789 strgetchar({str}, {index}) Number get char {index} from {str} |
12785 | 2790 stridx({haystack}, {needle} [, {start}]) |
133 | 2791 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
|
2792 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
|
2793 strlen({expr}) Number length of the String {expr} |
12785 | 2794 strpart({str}, {start} [, {len}]) |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
2795 String {len} characters of {str} at {start} |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
2796 strptime({format}, {timestring}) |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
2797 Number Convert {timestring} to unix timestamp |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2798 strridx({haystack}, {needle} [, {start}]) |
140 | 2799 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
|
2800 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
|
2801 strwidth({expr}) Number display cell length of the String {expr} |
12785 | 2802 submatch({nr} [, {list}]) String or List |
5794 | 2803 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
|
2804 substitute({expr}, {pat}, {sub}, {flags}) |
7 | 2805 String all {pat} in {expr} replaced with {sub} |
14599
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
2806 swapinfo({fname}) Dict information about swap file {fname} |
14778
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
2807 swapname({expr}) String swap file of buffer {expr} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2808 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
|
2809 synIDattr({synID}, {what} [, {mode}]) |
7 | 2810 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
|
2811 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
|
2812 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
|
2813 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
|
2814 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
|
2815 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
|
2816 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
|
2817 tabpagenr([{arg}]) Number number of current or last tab page |
12785 | 2818 tabpagewinnr({tabarg} [, {arg}]) Number number of current window in tab page |
2819 taglist({expr} [, {filename}]) List list of tags matching {expr} | |
1621 | 2820 tagfiles() List tags files used |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2821 tan({expr}) Float tangent of {expr} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2822 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
|
2823 tempname() String name for a temporary file |
13298
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
2824 term_dumpdiff({filename}, {filename} [, {options}]) |
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
2825 Number display difference between two dumps |
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
2826 term_dumpload({filename} [, {options}]) |
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
2827 Number displaying a screen dump |
13329
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
2828 term_dumpwrite({buf}, {filename} [, {options}]) |
13298
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
2829 none dump terminal window contents |
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
|
2830 term_getaltscreen({buf}) Number get the alternate screen flag |
13626
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
2831 term_getansicolors({buf}) List get ANSI palette in GUI color mode |
12003
6889f1f25d6b
patch 8.0.0882: term_scrape() and term_getline() require two arguments
Christian Brabandt <cb@256bit.org>
parents:
11995
diff
changeset
|
2832 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
|
2833 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
|
2834 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
|
2835 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
|
2836 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
|
2837 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
|
2838 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
|
2839 term_gettitle({buf}) String get the title of a terminal |
12785 | 2840 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
|
2841 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
|
2842 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
|
2843 term_sendkeys({buf}, {keys}) none send keystrokes to a terminal |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
2844 term_setapi({buf}, {expr}) none set |terminal-api| function name prefix |
13626
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
2845 term_setansicolors({buf}, {colors}) |
ab89131d30e0
patch 8.0.1685: can't set ANSI colors of a terminal window
Christian Brabandt <cb@256bit.org>
parents:
13563
diff
changeset
|
2846 none set ANSI palette in GUI color mode |
13735 | 2847 term_setkill({buf}, {how}) none set signal to stop job in terminal |
13437 | 2848 term_setrestore({buf}, {command}) none set command to restore terminal |
13735 | 2849 term_setsize({buf}, {rows}, {cols}) |
2850 none set the size of a terminal | |
16380 | 2851 term_start({cmd} [, {options}]) Number 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
|
2852 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
|
2853 test_alloc_fail({id}, {countdown}, {repeat}) |
7350959e53c3
commit https://github.com/vim/vim/commit/8e8df251bf2505e5decf258397c6069fbe5e2e01
Christian Brabandt <cb@256bit.org>
parents:
9117
diff
changeset
|
2854 none make memory allocation fail |
9644
9f7bcc2c3b97
commit https://github.com/vim/vim/commit/6f1d9a096bf22d50c727dca73abbfb8e3ff55176
Christian Brabandt <cb@256bit.org>
parents:
9636
diff
changeset
|
2855 test_autochdir() none enable 'autochdir' during startup |
14864 | 2856 test_feedinput({string}) 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
|
2857 test_garbagecollect_now() none free memory right now for testing |
17159
3fd0765f454f
patch 8.1.1579: dict and list could be GC'ed while displaying error
Bram Moolenaar <Bram@vim.org>
parents:
17131
diff
changeset
|
2858 test_garbagecollect_soon() none free memory soon for testing |
16664
ca1814eeecf5
patch 8.1.1334: when buffer is hidden "F" in 'shortmess' is not used
Bram Moolenaar <Bram@vim.org>
parents:
16660
diff
changeset
|
2859 test_getvalue({string}) any get value of an internal variable |
11006
b3601a8eb679
patch 8.0.0392: GUI test fails with Athena and Motif
Christian Brabandt <cb@256bit.org>
parents:
10908
diff
changeset
|
2860 test_ignore_error({expr}) none ignore a specific error |
15456
f01eb1aed348
patch 8.1.0736: code for Blob not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
15454
diff
changeset
|
2861 test_null_blob() Blob null value for testing |
9108
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
2862 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
|
2863 test_null_dict() Dict null value for testing |
19874
f92435f0f449
patch 8.2.0493: Vim9: some error messages not tested
Bram Moolenaar <Bram@vim.org>
parents:
19870
diff
changeset
|
2864 test_null_function() Funcref null value for testing |
9108
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
2865 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
|
2866 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
|
2867 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
|
2868 test_null_string() String null value for testing |
19483
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19477
diff
changeset
|
2869 test_unknown() any unknown value for testing |
0d3dcb4476ba
patch 8.2.0299: Vim9: ISN_STORE with argument not tested
Bram Moolenaar <Bram@vim.org>
parents:
19477
diff
changeset
|
2870 test_void() any void value for testing |
14945 | 2871 test_option_not_set({name}) none reset flag indicating option was set |
2872 test_override({expr}, {val}) none test with Vim internal overrides | |
16078
d13aa9c5a1d1
patch 8.1.1044: no way to check the reference count of objects
Bram Moolenaar <Bram@vim.org>
parents:
16019
diff
changeset
|
2873 test_refcount({expr}) Number get the reference count of {expr} |
14756
a179e5cfcab7
patch 8.1.0390: scrollbars are not tested
Christian Brabandt <cb@256bit.org>
parents:
14748
diff
changeset
|
2874 test_scrollbar({which}, {value}, {dragging}) |
a179e5cfcab7
patch 8.1.0390: scrollbars are not tested
Christian Brabandt <cb@256bit.org>
parents:
14748
diff
changeset
|
2875 none scroll in the GUI for testing |
16517
9484fc00ac6b
patch 8.1.1262: cannot simulate a mouse click in a test
Bram Moolenaar <Bram@vim.org>
parents:
16489
diff
changeset
|
2876 test_setmouse({row}, {col}) none set the mouse position for testing |
19350
76cb39bf1871
patch 8.2.0233: crash when using garbagecollect() in between rand()
Bram Moolenaar <Bram@vim.org>
parents:
19308
diff
changeset
|
2877 test_srand_seed([seed]) none set seed for testing srand() |
9286
64035abb986b
commit https://github.com/vim/vim/commit/c95a302a4c42ec8230473cd4a5e0064d0a143aa8
Christian Brabandt <cb@256bit.org>
parents:
9223
diff
changeset
|
2878 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
|
2879 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
|
2880 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
|
2881 timer_start({time}, {callback} [, {options}]) |
8577
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
2882 Number create a timer |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2883 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
|
2884 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
|
2885 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
|
2886 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
|
2887 tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} |
15 | 2888 to chars in {tostr} |
14519 | 2889 trim({text} [, {mask}]) String trim characters in {mask} from {text} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2890 trunc({expr}) Float truncate Float {expr} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2891 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
|
2892 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
|
2893 undotree() List undo file tree |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2894 uniq({list} [, {func} [, {dict}]]) |
5747 | 2895 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
|
2896 values({dict}) List values in {dict} |
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2897 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
|
2898 visualmode([expr]) String last visual mode used |
4151 | 2899 wildmenumode() Number whether 'wildmenu' mode is active |
16833
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
2900 win_execute({id}, {command} [, {silent}]) |
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
2901 String execute {command} in window {id} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2902 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
|
2903 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
|
2904 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
|
2905 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
|
2906 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
|
2907 win_screenpos({nr}) List get screen position of window {nr} |
18049
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
2908 win_splitmove({nr}, {target} [, {options}]) |
18343 | 2909 Number move window {nr} to split of {target} |
19400
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
2910 win_type([{nr}]) String type of window {nr} |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
2911 winbufnr({nr}) Number buffer number of window {nr} |
7 | 2912 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
|
2913 winheight({nr}) Number height of window {nr} |
14587
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
2914 winlayout([{tabnr}]) List layout of windows in tab {tabnr} |
7 | 2915 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
|
2916 winnr([{expr}]) Number number of current window |
55 | 2917 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
|
2918 winrestview({dict}) none restore view of current window |
712 | 2919 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
|
2920 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
|
2921 wordcount() Dict get byte/char/word statistics |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2922 writefile({object}, {fname} [, {flags}]) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
2923 Number write |Blob| or |List| of lines to file |
9536
b2aada04d84e
commit https://github.com/vim/vim/commit/a06ecab7a5159e744448ace731036f0dc5f87dd4
Christian Brabandt <cb@256bit.org>
parents:
9527
diff
changeset
|
2924 xor({expr}, {expr}) Number bitwise XOR |
7 | 2925 |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
2926 |
1621 | 2927 abs({expr}) *abs()* |
2928 Return the absolute value of {expr}. When {expr} evaluates to | |
2929 a |Float| abs() returns a |Float|. When {expr} can be | |
2930 converted to a |Number| abs() returns a |Number|. Otherwise | |
2931 abs() gives an error message and returns -1. | |
2932 Examples: > | |
2933 echo abs(1.456) | |
2934 < 1.456 > | |
2935 echo abs(-5.456) | |
2936 < 5.456 > | |
2937 echo abs(-4) | |
2938 < 4 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2939 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2940 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2941 Compute()->abs() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2942 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2943 < {only available when compiled with the |+float| feature} |
1621 | 2944 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2945 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2946 acos({expr}) *acos()* |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2947 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
|
2948 |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
|
2949 {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
|
2950 [-1, 1]. |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2951 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2952 :echo acos(0) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2953 < 1.570796 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2954 :echo acos(-0.5) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2955 < 2.094395 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2956 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2957 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2958 Compute()->acos() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2959 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2960 < {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2961 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
2962 |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
2963 add({object}, {expr}) *add()* |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
2964 Append the item {expr} to |List| or |Blob| {object}. Returns |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
2965 the resulting |List| or |Blob|. Examples: > |
82 | 2966 :let alist = add([1, 2, 3], item) |
2967 :call add(mylist, "woodstock") | |
685 | 2968 < Note that when {expr} is a |List| it is appended as a single |
692 | 2969 item. Use |extend()| to concatenate |Lists|. |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
2970 When {object} is a |Blob| then {expr} must be a number. |
85 | 2971 Use |insert()| to add an item at another position. |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
2972 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
2973 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
2974 mylist->add(val1)->add(val2) |
55 | 2975 |
82 | 2976 |
3214 | 2977 and({expr}, {expr}) *and()* |
2978 Bitwise AND on the two arguments. The arguments are converted | |
2979 to a number. A List, Dict or Float argument causes an error. | |
2980 Example: > | |
2981 :let flag = and(bits, 0x80) | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
2982 < Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
2983 :let flag = bits->and(0x80) |
3214 | 2984 |
2985 | |
14864 | 2986 append({lnum}, {text}) *append()* |
2987 When {text} is a |List|: Append each item of the |List| as a | |
685 | 2988 text line below line {lnum} in the current buffer. |
14864 | 2989 Otherwise append {text} as one text line below line {lnum} in |
153 | 2990 the current buffer. |
2991 {lnum} can be zero to insert a line before the first one. | |
82 | 2992 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
|
2993 0 for success. Example: > |
55 | 2994 :let failed = append(line('$'), "# THE END") |
82 | 2995 :let failed = append(0, ["Chapter 1", "the beginning"]) |
14039
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
2996 |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
2997 < Can also be used as a |method| after a List: > |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
2998 mylist->append(lnum) |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
2999 |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
3000 |
14039
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3001 appendbufline({expr}, {lnum}, {text}) *appendbufline()* |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3002 Like |append()| but append the text in buffer {expr}. |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3003 |
18343 | 3004 This function works only for loaded buffers. First call |
3005 |bufload()| if needed. | |
3006 | |
14039
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3007 For the use of {expr}, see |bufname()|. |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3008 |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3009 {lnum} is used like with |append()|. Note that using |line()| |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3010 would use the current buffer, not the one appending to. |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3011 Use "$" to append at the end of the buffer. |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3012 |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3013 On success 0 is returned, on failure 1 is returned. |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3014 |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3015 If {expr} is not a valid buffer or {lnum} is not valid, an |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3016 error message is given. Example: > |
acb2dc112b06
patch 8.1.0037: cannot easily append lines to another buffer
Christian Brabandt <cb@256bit.org>
parents:
14019
diff
changeset
|
3017 :let failed = appendbufline(13, 0, "# THE START") |
55 | 3018 < |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
3019 Can also be used as a |method| after a List: > |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
3020 mylist->appendbufline(buf, lnum) |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
3021 |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
3022 |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
3023 argc([{winid}]) *argc()* |
14964
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3024 The result is the number of files in the argument list. See |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3025 |arglist|. |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3026 If {winid} is not supplied, the argument list of the current |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3027 window is used. |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3028 If {winid} is -1, the global argument list is used. |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3029 Otherwise {winid} specifies the window of which the argument |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3030 list is used: either the window number or the window ID. |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3031 Returns -1 if the {winid} argument is invalid. |
7 | 3032 |
3033 *argidx()* | |
3034 argidx() The result is the current index in the argument list. 0 is | |
3035 the first file. argc() - 1 is the last one. See |arglist|. | |
3036 | |
5942 | 3037 *arglistid()* |
8148
f5da459c5698
commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents:
8094
diff
changeset
|
3038 arglistid([{winnr} [, {tabnr}]]) |
5942 | 3039 Return the argument list ID. This is a number which |
3040 identifies the argument list being used. Zero is used for the | |
6153 | 3041 global argument list. See |arglist|. |
14964
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3042 Returns -1 if the arguments are invalid. |
5942 | 3043 |
3044 Without arguments use the current window. | |
3045 With {winnr} only use this window in the current tab page. | |
3046 With {winnr} and {tabnr} use the window in the specified tab | |
3047 page. | |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
3048 {winnr} can be the window number or the |window-ID|. |
5942 | 3049 |
7 | 3050 *argv()* |
14964
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3051 argv([{nr} [, {winid}]) |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3052 The result is the {nr}th file in the argument list. See |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3053 |arglist|. "argv(0)" is the first one. Example: > |
7 | 3054 :let i = 0 |
3055 :while i < argc() | |
1621 | 3056 : let f = escape(fnameescape(argv(i)), '.') |
7 | 3057 : exe 'amenu Arg.' . f . ' :e ' . f . '<CR>' |
3058 : let i = i + 1 | |
3059 :endwhile | |
14964
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3060 < Without the {nr} argument, or when {nr} is -1, a |List| with |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3061 the whole |arglist| is returned. |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3062 |
2c0bfa167468
patch 8.1.0493: argv() and argc() only work on the current argument list
Bram Moolenaar <Bram@vim.org>
parents:
14945
diff
changeset
|
3063 The {winid} argument specifies the window ID, see |argc()|. |
18477
e93cab5d0f0f
patch 8.1.2233: cannot get the Vim command line arguments
Bram Moolenaar <Bram@vim.org>
parents:
18463
diff
changeset
|
3064 For the Vim command line arguments see |v:argv|. |
818 | 3065 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3066 asin({expr}) *asin()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
3067 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
|
3068 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
|
3069 {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
|
3070 [-1, 1]. |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3071 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3072 :echo asin(0.8) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3073 < 0.927295 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3074 :echo asin(-0.5) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3075 < -0.523599 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3076 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3077 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3078 Compute()->asin() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3079 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
3080 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3081 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3082 |
19099 | 3083 assert_ functions are documented here: |assert-functions-details| |
3084 | |
3085 | |
3086 | |
1621 | 3087 atan({expr}) *atan()* |
3088 Return the principal value of the arc tangent of {expr}, in | |
3089 the range [-pi/2, +pi/2] radians, as a |Float|. | |
3090 {expr} must evaluate to a |Float| or a |Number|. | |
3091 Examples: > | |
3092 :echo atan(100) | |
3093 < 1.560797 > | |
3094 :echo atan(-4.01) | |
3095 < -1.326405 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3096 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3097 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3098 Compute()->atan() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3099 < |
1621 | 3100 {only available when compiled with the |+float| feature} |
3101 | |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3102 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3103 atan2({expr1}, {expr2}) *atan2()* |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3104 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
|
3105 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
|
3106 {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
|
3107 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3108 :echo atan2(-1, 1) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3109 < -0.785398 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3110 :echo atan2(1, -1) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3111 < 2.356194 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3112 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3113 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3114 Compute()->atan(1) |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3115 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
3116 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3117 |
16600
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
3118 balloon_gettext() *balloon_gettext()* |
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
3119 Return the current text in the balloon. Only for the string, |
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
3120 not used for the List. |
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
3121 |
12883
058e93aee621
patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents:
12857
diff
changeset
|
3122 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
|
3123 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
|
3124 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
|
3125 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
|
3126 split with |balloon_split()|. |
16600
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
3127 If {expr} is an empty string any existing balloon is removed. |
12883
058e93aee621
patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents:
12857
diff
changeset
|
3128 |
11062 | 3129 Example: > |
11014
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3130 func GetBalloonContent() |
16600
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
3131 " ... initiate getting the content |
11014
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3132 return '' |
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3133 endfunc |
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3134 set balloonexpr=GetBalloonContent() |
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3135 |
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3136 func BalloonCallback(result) |
11062 | 3137 call balloon_show(a:result) |
11014
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3138 endfunc |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3139 < Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3140 GetText()->balloon_show() |
11014
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3141 < |
fb2bcfa6a8de
patch 8.0.0396: 'balloonexpr' only works synchronously
Christian Brabandt <cb@256bit.org>
parents:
11006
diff
changeset
|
3142 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
|
3143 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
|
3144 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
|
3145 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
|
3146 empty string or a placeholder. |
11062 | 3147 |
3148 When showing a balloon is not possible nothing happens, no | |
3149 error message. | |
14864 | 3150 {only available when compiled with the |+balloon_eval| or |
3151 |+balloon_eval_term| feature} | |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3152 |
12883
058e93aee621
patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents:
12857
diff
changeset
|
3153 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
|
3154 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
|
3155 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
|
3156 show debugger output. |
058e93aee621
patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents:
12857
diff
changeset
|
3157 Returns a |List| with the split lines. |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3158 Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3159 GetText()->balloon_split()->balloon_show() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3160 |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3161 < {only available when compiled with the |+balloon_eval_term| |
12885
10cb5c3df3f5
patch 8.0.1319: can't build GUI on MS-Windows
Christian Brabandt <cb@256bit.org>
parents:
12883
diff
changeset
|
3162 feature} |
12883
058e93aee621
patch 8.0.1318: terminal balloon only shows one line
Christian Brabandt <cb@256bit.org>
parents:
12857
diff
changeset
|
3163 |
7 | 3164 *browse()* |
3165 browse({save}, {title}, {initdir}, {default}) | |
3166 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
|
3167 returns |TRUE| (only in some GUI versions). |
7 | 3168 The input fields are: |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
3169 {save} when |TRUE|, select file to write |
7 | 3170 {title} title for the requester |
3171 {initdir} directory to start browsing in | |
3172 {default} default file name | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3173 An empty string is returned when the "Cancel" button is hit, |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3174 something went wrong, or browsing is not possible. |
7 | 3175 |
29 | 3176 *browsedir()* |
3177 browsedir({title}, {initdir}) | |
3178 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
|
3179 "has("browse")" returns |TRUE| (only in some GUI versions). |
29 | 3180 On systems where a directory browser is not supported a file |
3181 browser is used. In that case: select a file in the directory | |
3182 to be used. | |
3183 The input fields are: | |
3184 {title} title for the requester | |
3185 {initdir} directory to start browsing in | |
3186 When the "Cancel" button is hit, something went wrong, or | |
3187 browsing is not possible, an empty string is returned. | |
3188 | |
17221
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3189 bufadd({name}) *bufadd()* |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3190 Add a buffer to the buffer list with {name}. |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3191 If a buffer for file {name} already exists, return that buffer |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3192 number. Otherwise return the buffer number of the newly |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3193 created buffer. When {name} is an empty string then a new |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3194 buffer is always created. |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
3195 The buffer will not have 'buflisted' set and not be loaded |
17253
26e0352613ec
patch 8.1.1626: no test for closing a popup window with a modified buffer
Bram Moolenaar <Bram@vim.org>
parents:
17221
diff
changeset
|
3196 yet. To add some text to the buffer use this: > |
26e0352613ec
patch 8.1.1626: no test for closing a popup window with a modified buffer
Bram Moolenaar <Bram@vim.org>
parents:
17221
diff
changeset
|
3197 let bufnr = bufadd('someName') |
26e0352613ec
patch 8.1.1626: no test for closing a popup window with a modified buffer
Bram Moolenaar <Bram@vim.org>
parents:
17221
diff
changeset
|
3198 call bufload(bufnr) |
26e0352613ec
patch 8.1.1626: no test for closing a popup window with a modified buffer
Bram Moolenaar <Bram@vim.org>
parents:
17221
diff
changeset
|
3199 call setbufline(bufnr, 1, ['some', 'text']) |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3200 < Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3201 let bufnr = 'somename'->bufadd() |
17221
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3202 |
7 | 3203 bufexists({expr}) *bufexists()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
3204 The result is a Number, which is |TRUE| if a buffer called |
7 | 3205 {expr} exists. |
9 | 3206 If the {expr} argument is a number, buffer numbers are used. |
12909 | 3207 Number zero is the alternate buffer for the current window. |
3208 | |
7 | 3209 If the {expr} argument is a string it must match a buffer name |
9 | 3210 exactly. The name can be: |
3211 - Relative to the current directory. | |
3212 - A full path. | |
1621 | 3213 - The name of a buffer with 'buftype' set to "nofile". |
9 | 3214 - A URL name. |
7 | 3215 Unlisted buffers will be found. |
3216 Note that help files are listed by their short name in the | |
3217 output of |:buffers|, but bufexists() requires using their | |
3218 long name to be able to find them. | |
1621 | 3219 bufexists() may report a buffer exists, but to use the name |
3220 with a |:buffer| command you may need to use |expand()|. Esp | |
3221 for MS-Windows 8.3 names in the form "c:\DOCUME~1" | |
7 | 3222 Use "bufexists(0)" to test for the existence of an alternate |
3223 file name. | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3224 |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3225 Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3226 let exists = 'somename'->bufexists() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3227 < |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3228 Obsolete name: buffer_exists(). *buffer_exists()* |
7 | 3229 |
3230 buflisted({expr}) *buflisted()* | |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
3231 The result is a Number, which is |TRUE| if a buffer called |
7 | 3232 {expr} exists and is listed (has the 'buflisted' option set). |
9 | 3233 The {expr} argument is used like with |bufexists()|. |
7 | 3234 |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3235 Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3236 let listed = 'somename'->buflisted() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3237 |
17221
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3238 bufload({expr}) *bufload()* |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3239 Ensure the buffer {expr} is loaded. When the buffer name |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3240 refers to an existing file then the file is read. Otherwise |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3241 the buffer will be empty. If the buffer was already loaded |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3242 then there is no change. |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3243 If there is an existing swap file for the file of the buffer, |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3244 there will be no dialog, the buffer will be loaded anyway. |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3245 The {expr} argument is used like with |bufexists()|. |
a8fc7d97b54d
patch 8.1.1610: there is no way to add or load a buffer without side effects
Bram Moolenaar <Bram@vim.org>
parents:
17172
diff
changeset
|
3246 |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3247 Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3248 eval 'somename'->bufload() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3249 |
7 | 3250 bufloaded({expr}) *bufloaded()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
3251 The result is a Number, which is |TRUE| if a buffer called |
7 | 3252 {expr} exists and is loaded (shown in a window or hidden). |
9 | 3253 The {expr} argument is used like with |bufexists()|. |
7 | 3254 |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3255 Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3256 let loaded = 'somename'->bufloaded() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3257 |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
3258 bufname([{expr}]) *bufname()* |
7 | 3259 The result is the name of a buffer, as it is displayed by the |
3260 ":ls" command. | |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
3261 If {expr} is omitted the current buffer is used. |
7 | 3262 If {expr} is a Number, that buffer number's name is given. |
3263 Number zero is the alternate buffer for the current window. | |
3264 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
|
3265 with the buffer names. This is always done like 'magic' is |
7 | 3266 set and 'cpoptions' is empty. When there is more than one |
3267 match an empty string is returned. | |
3268 "" or "%" can be used for the current buffer, "#" for the | |
3269 alternate buffer. | |
3270 A full match is preferred, otherwise a match at the start, end | |
1156 | 3271 or middle of the buffer name is accepted. If you only want a |
3272 full match then put "^" at the start and "$" at the end of the | |
3273 pattern. | |
7 | 3274 Listed buffers are found first. If there is a single match |
3275 with a listed buffer, that one is returned. Next unlisted | |
3276 buffers are searched for. | |
3277 If the {expr} is a String, but you want to use it as a buffer | |
3278 number, force it to be a Number by adding zero to it: > | |
3279 :echo bufname("3" + 0) | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3280 < Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3281 echo bufnr->bufname() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3282 |
7 | 3283 < If the buffer doesn't exist, or doesn't have a name, an empty |
3284 string is returned. > | |
3285 bufname("#") alternate buffer name | |
3286 bufname(3) name of buffer 3 | |
3287 bufname("%") name of current buffer | |
3288 bufname("file2") name of buffer where "file2" matches. | |
3289 < *buffer_name()* | |
3290 Obsolete name: buffer_name(). | |
3291 | |
3292 *bufnr()* | |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
3293 bufnr([{expr} [, {create}]]) |
707 | 3294 The result is the number of a buffer, as it is displayed by |
7 | 3295 the ":ls" command. For the use of {expr}, see |bufname()| |
707 | 3296 above. |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
3297 |
707 | 3298 If the buffer doesn't exist, -1 is returned. Or, if the |
3299 {create} argument is present and not zero, a new, unlisted, | |
18170
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
3300 buffer is created and its number is returned. Example: > |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
3301 let newbuf = bufnr('Scratch001', 1) |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
3302 < Using an empty name uses the current buffer. To create a new |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
3303 buffer with an empty name use |bufadd()|. |
4ac8161e92e0
patch 8.1.2080: the terminal API is limited and can't be disabled
Bram Moolenaar <Bram@vim.org>
parents:
18130
diff
changeset
|
3304 |
7 | 3305 bufnr("$") is the last buffer: > |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
3306 :let last_buffer = bufnr("$") |
7 | 3307 < The result is a Number, which is the highest buffer number |
3308 of existing buffers. Note that not all buffers with a smaller | |
3309 number necessarily exist, because ":bwipeout" may have removed | |
3310 them. Use bufexists() to test for the existence of a buffer. | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3311 |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3312 Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3313 echo bufref->bufnr() |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3314 < |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
3315 Obsolete name: buffer_number(). *buffer_number()* |
7 | 3316 *last_buffer_nr()* |
3317 Obsolete name for bufnr("$"): last_buffer_nr(). | |
3318 | |
9219
7363f5cc4cb8
commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents:
9121
diff
changeset
|
3319 bufwinid({expr}) *bufwinid()* |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
3320 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
|
3321 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
|
3322 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
|
3323 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
|
3324 |
7363f5cc4cb8
commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents:
9121
diff
changeset
|
3325 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
|
3326 < |
7363f5cc4cb8
commit https://github.com/vim/vim/commit/b3619a90eae2702553ff9494ecc4c9b20c13c224
Christian Brabandt <cb@256bit.org>
parents:
9121
diff
changeset
|
3327 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
|
3328 |
17825
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3329 Can also be used as a |method|: > |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3330 FindBuffer()->bufwinid() |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3331 |
7 | 3332 bufwinnr({expr}) *bufwinnr()* |
17825
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3333 Like |bufwinid()| but return the window number instead of the |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3334 |window-ID|. |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3335 If buffer {expr} doesn't exist or there is no such window, -1 |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3336 is returned. Example: > |
7 | 3337 |
3338 echo "A window containing buffer 1 is " . (bufwinnr(1)) | |
3339 | |
3340 < The number can be used with |CTRL-W_w| and ":wincmd w" | |
3341 |:wincmd|. | |
17825
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3342 |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3343 Can also be used as a |method|: > |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
3344 FindBuffer()->bufwinnr() |
7 | 3345 |
3346 byte2line({byte}) *byte2line()* | |
3347 Return the line number that contains the character at byte | |
3348 count {byte} in the current buffer. This includes the | |
3349 end-of-line character, depending on the 'fileformat' option | |
3350 for the current buffer. The first character has byte count | |
3351 one. | |
3352 Also see |line2byte()|, |go| and |:goto|. | |
17829
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3353 |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3354 Can also be used as a |method|: > |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3355 GetOffset()->byte2line() |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3356 |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3357 < {not available when compiled without the |+byte_offset| |
7 | 3358 feature} |
3359 | |
18 | 3360 byteidx({expr}, {nr}) *byteidx()* |
3361 Return byte index of the {nr}'th character in the string | |
3362 {expr}. Use zero for the first character, it returns zero. | |
3363 This function is only useful when there are multibyte | |
3364 characters, otherwise the returned value is equal to {nr}. | |
5413 | 3365 Composing characters are not counted separately, their byte |
3366 length is added to the preceding base character. See | |
3367 |byteidxcomp()| below for counting composing characters | |
3368 separately. | |
18 | 3369 Example : > |
3370 echo matchstr(str, ".", byteidx(str, 3)) | |
3371 < will display the fourth character. Another way to do the | |
3372 same: > | |
3373 let s = strpart(str, byteidx(str, 3)) | |
3374 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
|
3375 < Also see |strgetchar()| and |strcharpart()|. |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
3376 |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
3377 If there are less than {nr} characters -1 is returned. |
18 | 3378 If there are exactly {nr} characters the length of the string |
5413 | 3379 in bytes is returned. |
3380 | |
17829
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3381 Can also be used as a |method|: > |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3382 GetName()->byteidx(idx) |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3383 |
5413 | 3384 byteidxcomp({expr}, {nr}) *byteidxcomp()* |
3385 Like byteidx(), except that a composing character is counted | |
3386 as a separate character. Example: > | |
3387 let s = 'e' . nr2char(0x301) | |
3388 echo byteidx(s, 1) | |
3389 echo byteidxcomp(s, 1) | |
3390 echo byteidxcomp(s, 2) | |
3391 < The first and third echo result in 3 ('e' plus composing | |
3392 character is 3 bytes), the second echo results in 1 ('e' is | |
3393 one byte). | |
3394 Only works different from byteidx() when 'encoding' is set to | |
3395 a Unicode encoding. | |
18 | 3396 |
17829
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3397 Can also be used as a |method|: > |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3398 GetName()->byteidxcomp(idx) |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3399 |
102 | 3400 call({func}, {arglist} [, {dict}]) *call()* *E699* |
685 | 3401 Call function {func} with the items in |List| {arglist} as |
79 | 3402 arguments. |
685 | 3403 {func} can either be a |Funcref| or the name of a function. |
79 | 3404 a:firstline and a:lastline are set to the cursor line. |
3405 Returns the return value of the called function. | |
102 | 3406 {dict} is for functions with the "dict" attribute. It will be |
3407 used to set the local variable "self". |Dictionary-function| | |
79 | 3408 |
17829
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3409 Can also be used as a |method|: > |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3410 GetFunc()->call([arg, arg], dict) |
1090d6637cfd
patch 8.1.1911: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17825
diff
changeset
|
3411 |
1621 | 3412 ceil({expr}) *ceil()* |
3413 Return the smallest integral value greater than or equal to | |
3414 {expr} as a |Float| (round up). | |
3415 {expr} must evaluate to a |Float| or a |Number|. | |
3416 Examples: > | |
3417 echo ceil(1.456) | |
3418 < 2.0 > | |
3419 echo ceil(-5.456) | |
3420 < -5.0 > | |
3421 echo ceil(4.0) | |
3422 < 4.0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3423 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3424 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3425 Compute()->ceil() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3426 < |
1621 | 3427 {only available when compiled with the |+float| feature} |
3428 | |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
3429 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
3430 ch_ functions are documented here: |channel-functions-details| |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
3431 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
3432 |
11062 | 3433 changenr() *changenr()* |
3434 Return the number of the most recent change. This is the same | |
3435 number as what is displayed with |:undolist| and can be used | |
3436 with the |:undo| command. | |
3437 When a change was made it is the number of that change. After | |
3438 redo it is the number of the redone change. After undo it is | |
3439 one less than the number of the undone change. | |
3440 | |
12785 | 3441 char2nr({expr} [, {utf8}]) *char2nr()* |
11062 | 3442 Return number value of the first char in {expr}. Examples: > |
3443 char2nr(" ") returns 32 | |
3444 char2nr("ABC") returns 65 | |
3445 < When {utf8} is omitted or zero, the current 'encoding' is used. | |
3446 Example for "utf-8": > | |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
3447 char2nr("á") returns 225 |
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
3448 char2nr("á"[0]) returns 195 |
11062 | 3449 < With {utf8} set to 1, always treat as utf-8 characters. |
3450 A combining character is a separate character. | |
3451 |nr2char()| does the opposite. | |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3452 To turn a string into a list of character numbers: > |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3453 let str = "ABC" |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3454 let list = map(split(str, '\zs'), {_, val -> char2nr(val)}) |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3455 < Result: [65, 66, 67] |
11062 | 3456 |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3457 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3458 GetChar()->char2nr() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3459 |
16576
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3460 chdir({dir}) *chdir()* |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3461 Change the current working directory to {dir}. The scope of |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3462 the directory change depends on the directory of the current |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3463 window: |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3464 - If the current window has a window-local directory |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3465 (|:lcd|), then changes the window local directory. |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3466 - Otherwise, if the current tabpage has a local |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3467 directory (|:tcd|) then changes the tabpage local |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3468 directory. |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3469 - Otherwise, changes the global directory. |
19303 | 3470 {dir} must be a String. |
16576
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3471 If successful, returns the previous working directory. Pass |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3472 this to another chdir() to restore the directory. |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3473 On failure, returns an empty string. |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3474 |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3475 Example: > |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3476 let save_dir = chdir(newdir) |
16808 | 3477 if save_dir != "" |
16576
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3478 " ... do some work |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3479 call chdir(save_dir) |
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3480 endif |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3481 |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3482 < Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3483 GetDir()->chdir() |
16576
bcc343175103
patch 8.1.1291: not easy to change directory and restore
Bram Moolenaar <Bram@vim.org>
parents:
16553
diff
changeset
|
3484 < |
11062 | 3485 cindent({lnum}) *cindent()* |
3486 Get the amount of indent for line {lnum} according the C | |
3487 indenting rules, as with 'cindent'. | |
3488 The indent is counted in spaces, the value of 'tabstop' is | |
3489 relevant. {lnum} is used just like in |getline()|. | |
3490 When {lnum} is invalid or Vim was not compiled the |+cindent| | |
3491 feature, -1 is returned. | |
3492 See |C-indenting|. | |
3493 | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3494 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3495 GetLnum()->cindent() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3496 |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3497 clearmatches([{win}]) *clearmatches()* |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3498 Clears all matches previously defined for the current window |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3499 by |matchadd()| and the |:match| commands. |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3500 If {win} is specified, use the window with this number or |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
3501 window ID instead of the current window. |
11062 | 3502 |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3503 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3504 GetWin()->clearmatches() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3505 < |
11062 | 3506 *col()* |
3507 col({expr}) The result is a Number, which is the byte index of the column | |
3508 position given with {expr}. The accepted positions are: | |
3509 . the cursor position | |
3510 $ the end of the cursor line (the result is the | |
3511 number of bytes in the cursor line plus one) | |
3512 'x position of mark x (if the mark is not set, 0 is | |
3513 returned) | |
3514 v In Visual mode: the start of the Visual area (the | |
3515 cursor is the end). When not in Visual mode | |
3516 returns the cursor position. Differs from |'<| in | |
3517 that it's updated right away. | |
3518 Additionally {expr} can be [lnum, col]: a |List| with the line | |
3519 and column number. Most useful when the column is "$", to get | |
3520 the last column of a specific line. When "lnum" or "col" is | |
3521 out of range then col() returns zero. | |
3522 To get the line number use |line()|. To get both use | |
3523 |getpos()|. | |
3524 For the screen column position use |virtcol()|. | |
3525 Note that only marks in the current file can be used. | |
3526 Examples: > | |
3527 col(".") column of cursor | |
3528 col("$") length of cursor line plus one | |
3529 col("'t") column of mark t | |
3530 col("'" . markname) column of mark markname | |
3531 < The first column is 1. 0 is returned for an error. | |
3532 For an uppercase mark the column may actually be in another | |
3533 buffer. | |
3534 For the cursor position, when 'virtualedit' is active, the | |
3535 column is one higher if the cursor is after the end of the | |
3536 line. This can be used to obtain the column in Insert mode: > | |
3537 :imap <F2> <C-O>:let save_ve = &ve<CR> | |
3538 \<C-O>:set ve=all<CR> | |
3539 \<C-O>:echo col(".") . "\n" <Bar> | |
3540 \let &ve = save_ve<CR> | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3541 |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3542 < Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3543 GetPos()->col() |
11062 | 3544 < |
3545 | |
3546 complete({startcol}, {matches}) *complete()* *E785* | |
3547 Set the matches for Insert mode completion. | |
3548 Can only be used in Insert mode. You need to use a mapping | |
3549 with CTRL-R = (see |i_CTRL-R|). It does not work after CTRL-O | |
3550 or with an expression mapping. | |
3551 {startcol} is the byte offset in the line where the completed | |
3552 text start. The text up to the cursor is the original text | |
3553 that will be replaced by the matches. Use col('.') for an | |
3554 empty string. "col('.') - 1" will replace one character by a | |
3555 match. | |
3556 {matches} must be a |List|. Each |List| item is one match. | |
3557 See |complete-items| for the kind of items that are possible. | |
3558 Note that the after calling this function you need to avoid | |
3559 inserting anything that would cause completion to stop. | |
3560 The match can be selected with CTRL-N and CTRL-P as usual with | |
3561 Insert mode completion. The popup menu will appear if | |
3562 specified, see |ins-completion-menu|. | |
3563 Example: > | |
3564 inoremap <F5> <C-R>=ListMonths()<CR> | |
3565 | |
3566 func! ListMonths() | |
3567 call complete(col('.'), ['January', 'February', 'March', | |
3568 \ 'April', 'May', 'June', 'July', 'August', 'September', | |
3569 \ 'October', 'November', 'December']) | |
3570 return '' | |
3571 endfunc | |
3572 < This isn't very useful, but it shows how it works. Note that | |
3573 an empty string is returned to avoid a zero being inserted. | |
3574 | |
18343 | 3575 Can also be used as a |method|, the base is passed as the |
3576 second argument: > | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3577 GetMatches()->complete(col('.')) |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3578 |
11062 | 3579 complete_add({expr}) *complete_add()* |
3580 Add {expr} to the list of matches. Only to be used by the | |
3581 function specified with the 'completefunc' option. | |
3582 Returns 0 for failure (empty string or out of memory), | |
3583 1 when the match was added, 2 when the match was already in | |
3584 the list. | |
3585 See |complete-functions| for an explanation of {expr}. It is | |
3586 the same as one item in the list that 'omnifunc' would return. | |
3587 | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3588 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3589 GetMoreMatches()->complete_add() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3590 |
11062 | 3591 complete_check() *complete_check()* |
3592 Check for a key typed while looking for completion matches. | |
3593 This is to be used when looking for matches takes some time. | |
3594 Returns |TRUE| when searching for matches is to be aborted, | |
3595 zero otherwise. | |
3596 Only to be used by the function specified with the | |
3597 'completefunc' option. | |
3598 | |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3599 *complete_info()* |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3600 complete_info([{what}]) |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3601 Returns a Dictionary with information about Insert mode |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3602 completion. See |ins-completion|. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3603 The items are: |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3604 mode Current completion mode name string. |
16208 | 3605 See |complete_info_mode| for the values. |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3606 pum_visible |TRUE| if popup menu is visible. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3607 See |pumvisible()|. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3608 items List of completion matches. Each item is a |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3609 dictionary containing the entries "word", |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3610 "abbr", "menu", "kind", "info" and "user_data". |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3611 See |complete-items|. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3612 selected Selected item index. First index is zero. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3613 Index is -1 if no item is selected (showing |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3614 typed text only) |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3615 inserted Inserted string. [NOT IMPLEMENT YET] |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3616 |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3617 *complete_info_mode* |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3618 mode values are: |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3619 "" Not in completion mode |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3620 "keyword" Keyword completion |i_CTRL-X_CTRL-N| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3621 "ctrl_x" Just pressed CTRL-X |i_CTRL-X| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3622 "whole_line" Whole lines |i_CTRL-X_CTRL-L| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3623 "files" File names |i_CTRL-X_CTRL-F| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3624 "tags" Tags |i_CTRL-X_CTRL-]| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3625 "path_defines" Definition completion |i_CTRL-X_CTRL-D| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3626 "path_patterns" Include completion |i_CTRL-X_CTRL-I| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3627 "dictionary" Dictionary |i_CTRL-X_CTRL-K| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3628 "thesaurus" Thesaurus |i_CTRL-X_CTRL-T| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3629 "cmdline" Vim Command line |i_CTRL-X_CTRL-V| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3630 "function" User defined completion |i_CTRL-X_CTRL-U| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3631 "omni" Omni completion |i_CTRL-X_CTRL-O| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3632 "spell" Spelling suggestions |i_CTRL-X_s| |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3633 "eval" |complete()| completion |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3634 "unknown" Other internal modes |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3635 |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3636 If the optional {what} list argument is supplied, then only |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3637 the items listed in {what} are returned. Unsupported items in |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3638 {what} are silently ignored. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3639 |
17756
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
3640 To get the position and size of the popup menu, see |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
3641 |pum_getpos()|. It's also available in |v:event| during the |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
3642 |CompleteChanged| event. |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
3643 |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3644 Examples: > |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3645 " Get all items |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3646 call complete_info() |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3647 " Get only 'mode' |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3648 call complete_info(['mode']) |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3649 " Get only 'mode' and 'pum_visible' |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3650 call complete_info(['mode', 'pum_visible']) |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3651 |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3652 < Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3653 GetItems()->complete_info() |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
3654 < |
11062 | 3655 *confirm()* |
3656 confirm({msg} [, {choices} [, {default} [, {type}]]]) | |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
3657 confirm() offers the user a dialog, from which a choice can be |
11062 | 3658 made. It returns the number of the choice. For the first |
3659 choice this is 1. | |
3660 Note: confirm() is only supported when compiled with dialog | |
3661 support, see |+dialog_con| and |+dialog_gui|. | |
3662 | |
3663 {msg} is displayed in a |dialog| with {choices} as the | |
3664 alternatives. When {choices} is missing or empty, "&OK" is | |
3665 used (and translated). | |
3666 {msg} is a String, use '\n' to include a newline. Only on | |
3667 some systems the string is wrapped when it doesn't fit. | |
3668 | |
3669 {choices} is a String, with the individual choices separated | |
3670 by '\n', e.g. > | |
3671 confirm("Save changes?", "&Yes\n&No\n&Cancel") | |
3672 < The letter after the '&' is the shortcut key for that choice. | |
3673 Thus you can type 'c' to select "Cancel". The shortcut does | |
3674 not need to be the first letter: > | |
3675 confirm("file has been modified", "&Save\nSave &All") | |
3676 < For the console, the first letter of each choice is used as | |
3677 the default shortcut key. | |
3678 | |
3679 The optional {default} argument is the number of the choice | |
3680 that is made if the user hits <CR>. Use 1 to make the first | |
3681 choice the default one. Use 0 to not set a default. If | |
3682 {default} is omitted, 1 is used. | |
3683 | |
3684 The optional {type} argument gives the type of dialog. This | |
3685 is only used for the icon of the GTK, Mac, Motif and Win32 | |
3686 GUI. It can be one of these values: "Error", "Question", | |
3687 "Info", "Warning" or "Generic". Only the first character is | |
3688 relevant. When {type} is omitted, "Generic" is used. | |
3689 | |
3690 If the user aborts the dialog by pressing <Esc>, CTRL-C, | |
3691 or another valid interrupt key, confirm() returns 0. | |
3692 | |
3693 An example: > | |
3694 :let choice = confirm("What do you want?", "&Apples\n&Oranges\n&Bananas", 2) | |
3695 :if choice == 0 | |
3696 : echo "make up your mind!" | |
3697 :elseif choice == 3 | |
3698 : echo "tasteful" | |
3699 :else | |
3700 : echo "I prefer bananas myself." | |
3701 :endif | |
3702 < In a GUI dialog, buttons are used. The layout of the buttons | |
3703 depends on the 'v' flag in 'guioptions'. If it is included, | |
3704 the buttons are always put vertically. Otherwise, confirm() | |
3705 tries to put the buttons in one horizontal line. If they | |
3706 don't fit, a vertical layout is used anyway. For some systems | |
3707 the horizontal layout is always used. | |
3708 | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3709 Can also be used as a |method|in: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3710 BuildMessage()->confirm("&Yes\n&No") |
18343 | 3711 < |
55 | 3712 *copy()* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
3713 copy({expr}) Make a copy of {expr}. For Numbers and Strings this isn't |
55 | 3714 different from using {expr} directly. |
685 | 3715 When {expr} is a |List| a shallow copy is created. This means |
3716 that the original |List| can be changed without changing the | |
1621 | 3717 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
|
3718 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
|
3719 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
|
3720 Also see |deepcopy()|. |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
3721 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
3722 mylist->copy() |
55 | 3723 |
1621 | 3724 cos({expr}) *cos()* |
3725 Return the cosine of {expr}, measured in radians, as a |Float|. | |
3726 {expr} must evaluate to a |Float| or a |Number|. | |
3727 Examples: > | |
3728 :echo cos(100) | |
3729 < 0.862319 > | |
3730 :echo cos(-4.01) | |
3731 < -0.646043 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3732 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3733 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3734 Compute()->cos() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3735 < |
1621 | 3736 {only available when compiled with the |+float| feature} |
3737 | |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3738 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3739 cosh({expr}) *cosh()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
3740 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
|
3741 [1, inf]. |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
3742 {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
|
3743 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3744 :echo cosh(0.5) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3745 < 1.127626 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3746 :echo cosh(-0.5) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3747 < -1.127626 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3748 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3749 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3750 Compute()->cosh() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
3751 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
3752 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
3753 |
12785 | 3754 |
102 | 3755 count({comp}, {expr} [, {ic} [, {start}]]) *count()* |
79 | 3756 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
|
3757 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
|
3758 |
102 | 3759 If {start} is given then start with the item with this index. |
685 | 3760 {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
|
3761 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
3762 When {ic} is given and it's |TRUE| then case is ignored. |
79 | 3763 |
11828
5a07a3ff56c1
patch 8.0.0794: checking translations fails with multiple NL
Christian Brabandt <cb@256bit.org>
parents:
11763
diff
changeset
|
3764 When {comp} is a string then the number of not overlapping |
13070
17720967656c
patch 8.0.1410: hang when using count() with an empty string
Christian Brabandt <cb@256bit.org>
parents:
13062
diff
changeset
|
3765 occurrences of {expr} is returned. Zero is returned when |
17720967656c
patch 8.0.1410: hang when using count() with an empty string
Christian Brabandt <cb@256bit.org>
parents:
13062
diff
changeset
|
3766 {expr} is an empty string. |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
3767 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
3768 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
3769 mylist->count(val) |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
3770 < |
7 | 3771 *cscope_connection()* |
3772 cscope_connection([{num} , {dbpath} [, {prepend}]]) | |
3773 Checks for the existence of a |cscope| connection. If no | |
3774 parameters are specified, then the function returns: | |
3775 0, if cscope was not available (not compiled in), or | |
3776 if there are no cscope connections; | |
3777 1, if there is at least one cscope connection. | |
3778 | |
3779 If parameters are specified, then the value of {num} | |
3780 determines how existence of a cscope connection is checked: | |
3781 | |
3782 {num} Description of existence check | |
3783 ----- ------------------------------ | |
3784 0 Same as no parameters (e.g., "cscope_connection()"). | |
3785 1 Ignore {prepend}, and use partial string matches for | |
3786 {dbpath}. | |
3787 2 Ignore {prepend}, and use exact string matches for | |
3788 {dbpath}. | |
3789 3 Use {prepend}, use partial string matches for both | |
3790 {dbpath} and {prepend}. | |
3791 4 Use {prepend}, use exact string matches for both | |
3792 {dbpath} and {prepend}. | |
3793 | |
3794 Note: All string comparisons are case sensitive! | |
3795 | |
3796 Examples. Suppose we had the following (from ":cs show"): > | |
3797 | |
3798 # pid database name prepend path | |
3799 0 27664 cscope.out /usr/local | |
3800 < | |
3801 Invocation Return Val ~ | |
3802 ---------- ---------- > | |
3803 cscope_connection() 1 | |
3804 cscope_connection(1, "out") 1 | |
3805 cscope_connection(2, "out") 0 | |
3806 cscope_connection(3, "out") 0 | |
3807 cscope_connection(3, "out", "local") 1 | |
3808 cscope_connection(4, "out") 0 | |
3809 cscope_connection(4, "out", "local") 0 | |
3810 cscope_connection(4, "cscope.out", "/usr/local") 1 | |
3811 < | |
703 | 3812 cursor({lnum}, {col} [, {off}]) *cursor()* |
3813 cursor({list}) | |
1156 | 3814 Positions the cursor at the column (byte count) {col} in the |
3815 line {lnum}. The first column is one. | |
5938 | 3816 |
703 | 3817 When there is one argument {list} this is used as a |List| |
5938 | 3818 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
|
3819 [{lnum}, {col}] |
5938 | 3820 [{lnum}, {col}, {off}] |
3821 [{lnum}, {col}, {off}, {curswant}] | |
6009 | 3822 This is like the return value of |getpos()| or |getcurpos()|, |
5944 | 3823 but without the first item. |
5938 | 3824 |
7 | 3825 Does not change the jumplist. |
3826 If {lnum} is greater than the number of lines in the buffer, | |
3827 the cursor will be positioned at the last line in the buffer. | |
3828 If {lnum} is zero, the cursor will stay in the current line. | |
493 | 3829 If {col} is greater than the number of bytes in the line, |
7 | 3830 the cursor will be positioned at the last character in the |
3831 line. | |
3832 If {col} is zero, the cursor will stay in the current column. | |
5944 | 3833 If {curswant} is given it is used to set the preferred column |
6180 | 3834 for vertical movement. Otherwise {col} is used. |
6385 | 3835 |
703 | 3836 When 'virtualedit' is used {off} specifies the offset in |
3837 screen columns from the start of the character. E.g., a | |
1266 | 3838 position within a <Tab> or after the last character. |
1851 | 3839 Returns 0 when the position could be set, -1 otherwise. |
7 | 3840 |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3841 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3842 GetCursorPos()->cursor() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3843 |
14147
de75c249723d
patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
3844 debugbreak({pid}) *debugbreak()* |
de75c249723d
patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
3845 Specifically used to interrupt a program being debugged. It |
de75c249723d
patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
3846 will cause process {pid} to get a SIGTRAP. Behavior for other |
de75c249723d
patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
3847 processes is undefined. See |terminal-debugger|. |
de75c249723d
patch 8.1.0091: MS-Windows: Cannot interrupt gdb when program is running
Christian Brabandt <cb@256bit.org>
parents:
14123
diff
changeset
|
3848 {only available on MS-Windows} |
55 | 3849 |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3850 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3851 GetPid()->debugbreak() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3852 |
12785 | 3853 deepcopy({expr} [, {noref}]) *deepcopy()* *E698* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
3854 Make a copy of {expr}. For Numbers and Strings this isn't |
55 | 3855 different from using {expr} directly. |
685 | 3856 When {expr} is a |List| a full copy is created. This means |
3857 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
|
3858 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
|
3859 |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
|
3860 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
|
3861 the original |List|. |
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8019
diff
changeset
|
3862 A |Dictionary| is copied in a similar way as a |List|. |
685 | 3863 When {noref} is omitted or zero a contained |List| or |
3864 |Dictionary| is only copied once. All references point to | |
3865 this single copy. With {noref} set to 1 every occurrence of a | |
3866 |List| or |Dictionary| results in a new copy. This also means | |
3867 that a cyclic reference causes deepcopy() to fail. | |
114 | 3868 *E724* |
3869 Nesting is possible up to 100 levels. When there is an item | |
164 | 3870 that refers back to a higher level making a deep copy with |
3871 {noref} set to 1 will fail. | |
55 | 3872 Also see |copy()|. |
3873 | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3874 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3875 GetObject()->deepcopy() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3876 |
7615
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
3877 delete({fname} [, {flags}]) *delete()* |
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
3878 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
|
3879 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
|
3880 |
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
3881 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
|
3882 {fname}. This fails when directory {fname} is not empty. |
12785 | 3883 |
7615
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
3884 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
|
3885 {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
|
3886 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
|
3887 that is being used. |
10004
8061455d9179
commit https://github.com/vim/vim/commit/818078ddfbb8cc2546f697c5675a251d095722ec
Christian Brabandt <cb@256bit.org>
parents:
10000
diff
changeset
|
3888 |
7629
befbed72da87
commit https://github.com/vim/vim/commit/43a34f9f74fdce462fa250baab620264c28b6165
Christian Brabandt <cb@256bit.org>
parents:
7615
diff
changeset
|
3889 A symbolic link itself is deleted, not what it points to. |
12785 | 3890 |
7615
228ff048db20
commit https://github.com/vim/vim/commit/da440d21a6b94d7f525fa7be9b1417c78dd9aa4c
Christian Brabandt <cb@256bit.org>
parents:
7597
diff
changeset
|
3891 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
|
3892 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
|
3893 |
685 | 3894 Use |remove()| to delete an item from a |List|. |
14043
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3895 To delete a line from the buffer use |:delete| or |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3896 |deletebufline()|. |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3897 |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3898 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3899 GetName()->delete() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3900 |
14519 | 3901 deletebufline({expr}, {first} [, {last}]) *deletebufline()* |
14043
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3902 Delete lines {first} to {last} (inclusive) from buffer {expr}. |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3903 If {last} is omitted then delete line {first} only. |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3904 On success 0 is returned, on failure 1 is returned. |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3905 |
18343 | 3906 This function works only for loaded buffers. First call |
3907 |bufload()| if needed. | |
3908 | |
14043
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3909 For the use of {expr}, see |bufname()| above. |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3910 |
14864 | 3911 {first} and {last} are used like with |getline()|. Note that |
14043
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3912 when using |line()| this refers to the current buffer. Use "$" |
cbad3b3f46b2
patch 8.1.0039: cannot easily delete lines in another buffer
Christian Brabandt <cb@256bit.org>
parents:
14039
diff
changeset
|
3913 to refer to the last line in buffer {expr}. |
7 | 3914 |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3915 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3916 GetBuffer()->deletebufline(1) |
18343 | 3917 < |
7 | 3918 *did_filetype()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
3919 did_filetype() Returns |TRUE| when autocommands are being executed and the |
7 | 3920 FileType event has been triggered at least once. Can be used |
3921 to avoid triggering the FileType event again in the scripts | |
3922 that detect the file type. |FileType| | |
11473 | 3923 Returns |FALSE| when `:setf FALLBACK` was used. |
7 | 3924 When editing another file, the counter is reset, thus this |
3925 really checks if the FileType event has been triggered for the | |
3926 current buffer. This allows an autocommand that starts | |
3927 editing another buffer to set 'filetype' and load a syntax | |
3928 file. | |
3929 | |
32 | 3930 diff_filler({lnum}) *diff_filler()* |
3931 Returns the number of filler lines above line {lnum}. | |
3932 These are the lines that were inserted at this point in | |
3933 another diff'ed window. These filler lines are shown in the | |
3934 display but don't exist in the buffer. | |
3935 {lnum} is used like with |getline()|. Thus "." is the current | |
3936 line, "'m" mark m, etc. | |
3937 Returns 0 if the current window is not in diff mode. | |
3938 | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3939 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3940 GetLnum()->diff_filler() |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3941 |
32 | 3942 diff_hlID({lnum}, {col}) *diff_hlID()* |
3943 Returns the highlight ID for diff mode at line {lnum} column | |
3944 {col} (byte index). When the current line does not have a | |
3945 diff change zero is returned. | |
3946 {lnum} is used like with |getline()|. Thus "." is the current | |
3947 line, "'m" mark m, etc. | |
3948 {col} is 1 for the leftmost column, {lnum} is 1 for the first | |
3949 line. | |
3950 The highlight ID can be used with |synIDattr()| to obtain | |
3951 syntax information about the highlighting. | |
3952 | |
17837
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3953 Can also be used as a |method|: > |
f71ee7b04f0b
patch 8.1.1915: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17833
diff
changeset
|
3954 GetLnum()->diff_hlID(col) |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
3955 |
19400
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3956 |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3957 echoraw({expr}) *echoraw()* |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3958 Output {expr} as-is, including unprintable characters. This |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3959 can be used to output a terminal code. For example, to disable |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3960 modifyOtherKeys: > |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3961 call echoraw(&t_TE) |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3962 < and to enable it again: > |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3963 call echoraw(&t_TI) |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3964 < Use with care, you can mess up the terminal this way. |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3965 |
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
3966 |
85 | 3967 empty({expr}) *empty()* |
3968 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
|
3969 - 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
|
3970 items. |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
3971 - A |String| is empty when its length is zero. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
3972 - A |Number| and |Float| are empty when their value is zero. |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
3973 - |v:false|, |v:none| and |v:null| are empty, |v:true| is not. |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
3974 - A |Job| is empty when it failed to start. |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
3975 - A |Channel| is empty when it is closed. |
15512 | 3976 - A |Blob| 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
|
3977 |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
3978 For a long |List| this is much faster than comparing the |
685 | 3979 length with zero. |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
3980 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
3981 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
3982 mylist->empty() |
85 | 3983 |
19099 | 3984 environ() *environ()* |
3985 Return all of environment variables as dictionary. You can | |
3986 check if an environment variable exists like this: > | |
3987 :echo has_key(environ(), 'HOME') | |
3988 < Note that the variable name may be CamelCase; to ignore case | |
3989 use this: > | |
3990 :echo index(keys(environ()), 'HOME', 0, 1) != -1 | |
3991 | |
7 | 3992 escape({string}, {chars}) *escape()* |
3993 Escape the characters in {chars} that occur in {string} with a | |
3994 backslash. Example: > | |
3995 :echo escape('c:\program files\vim', ' \') | |
3996 < results in: > | |
3997 c:\\program\ files\\vim | |
12427
fc3e2d5614dd
patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents:
12389
diff
changeset
|
3998 < Also see |shellescape()| and |fnameescape()|. |
1621 | 3999 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4000 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4001 GetText()->escape(' \') |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4002 < |
1621 | 4003 *eval()* |
95 | 4004 eval({string}) Evaluate {string} and return the result. Especially useful to |
4005 turn the result of |string()| back into the original value. | |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
4006 This works for Numbers, Floats, Strings, Blobs and composites |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
4007 of them. Also works for |Funcref|s that refer to existing |
1621 | 4008 functions. |
95 | 4009 |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4010 Can also be used as a |method|: > |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4011 argv->join()->eval() |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4012 |
7 | 4013 eventhandler() *eventhandler()* |
4014 Returns 1 when inside an event handler. That is that Vim got | |
4015 interrupted while waiting for the user to type a character, | |
4016 e.g., when dropping a file on Vim. This means interactive | |
4017 commands cannot be used. Otherwise zero is returned. | |
4018 | |
4019 executable({expr}) *executable()* | |
4020 This function checks if an executable with the name {expr} | |
4021 exists. {expr} must be the name of the program without any | |
10 | 4022 arguments. |
4023 executable() uses the value of $PATH and/or the normal | |
4024 searchpath for programs. *PATHEXT* | |
18972 | 4025 On MS-Windows the ".exe", ".bat", etc. can optionally be |
4026 included. Then the extensions in $PATHEXT are tried. Thus if | |
4027 "foo.exe" does not exist, "foo.exe.bat" can be found. If | |
4028 $PATHEXT is not set then ".exe;.com;.bat;.cmd" is used. A dot | |
4029 by itself can be used in $PATHEXT to try using the name | |
4030 without an extension. When 'shell' looks like a Unix shell, | |
4031 then the name is also tried without adding an extension. | |
4032 On MS-Windows it only checks if the file exists and is not a | |
4033 directory, not if it's really executable. | |
819 | 4034 On MS-Windows an executable in the same directory as Vim is |
4035 always found. Since this directory is added to $PATH it | |
4036 should also work to execute it |win32-PATH|. | |
7 | 4037 The result is a Number: |
4038 1 exists | |
4039 0 does not exist | |
4040 -1 not implemented on this system | |
14249
4543777545a3
Updated runtime and language files.
Christian Brabandt <cb@256bit.org>
parents:
14193
diff
changeset
|
4041 |exepath()| can be used to get the full path of an executable. |
7 | 4042 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4043 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4044 GetCommand()->executable() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4045 |
9454
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4046 execute({command} [, {silent}]) *execute()* |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4047 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
|
4048 string. |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4049 {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
|
4050 lines are executed one by one. |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4051 This is equivalent to: > |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4052 redir => var |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4053 {command} |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4054 redir END |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4055 < |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4056 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
|
4057 "" no `:silent` used |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4058 "silent" `:silent` used |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4059 "silent!" `:silent!` used |
11062 | 4060 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
|
4061 `: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
|
4062 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
|
4063 *E930* |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4064 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
|
4065 |
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4066 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
|
4067 split(execute('args'), "\n") |
9454
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4068 |
16833
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
4069 < To execute a command in another window than the current one |
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
4070 use `win_execute()`. |
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
4071 |
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
4072 When used recursively the output of the recursive call is not |
9454
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
4073 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
|
4074 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4075 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4076 GetCommand()->execute() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4077 |
5782 | 4078 exepath({expr}) *exepath()* |
4079 If {expr} is an executable and is either an absolute path, a | |
4080 relative path or found in $PATH, return the full path. | |
4081 Note that the current directory is used when {expr} starts | |
4082 with "./", which may be a problem for Vim: > | |
4083 echo exepath(v:progpath) | |
5814 | 4084 < If {expr} cannot be found in $PATH or is not executable then |
5782 | 4085 an empty string is returned. |
4086 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4087 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4088 GetCommand()->exepath() |
18343 | 4089 < |
7 | 4090 *exists()* |
9790
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
4091 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
|
4092 zero otherwise. |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
4093 |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
4094 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
|
4095 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
|
4096 |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
4097 The {expr} argument is a string, which contains one of these: |
7 | 4098 &option-name Vim option (only checks if it exists, |
4099 not if it really works) | |
4100 +option-name Vim option that works. | |
4101 $ENVNAME environment variable (could also be | |
4102 done by comparing with an empty | |
4103 string) | |
4104 *funcname built-in function (see |functions|) | |
4105 or user defined function (see | |
19805
2dc5e6ddeb4c
patch 8.2.0459: cannot check if a function name is correct
Bram Moolenaar <Bram@vim.org>
parents:
19783
diff
changeset
|
4106 |user-functions|) that is implemented. |
2dc5e6ddeb4c
patch 8.2.0459: cannot check if a function name is correct
Bram Moolenaar <Bram@vim.org>
parents:
19783
diff
changeset
|
4107 Also works for a variable that is a |
2dc5e6ddeb4c
patch 8.2.0459: cannot check if a function name is correct
Bram Moolenaar <Bram@vim.org>
parents:
19783
diff
changeset
|
4108 Funcref. |
2dc5e6ddeb4c
patch 8.2.0459: cannot check if a function name is correct
Bram Moolenaar <Bram@vim.org>
parents:
19783
diff
changeset
|
4109 ?funcname built-in function that could be |
2dc5e6ddeb4c
patch 8.2.0459: cannot check if a function name is correct
Bram Moolenaar <Bram@vim.org>
parents:
19783
diff
changeset
|
4110 implemented; to be used to check if |
2dc5e6ddeb4c
patch 8.2.0459: cannot check if a function name is correct
Bram Moolenaar <Bram@vim.org>
parents:
19783
diff
changeset
|
4111 "funcname" is valid |
7 | 4112 varname internal variable (see |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
4113 |internal-variables|). Also works |
685 | 4114 for |curly-braces-names|, |Dictionary| |
4115 entries, |List| items, etc. Beware | |
1668 | 4116 that evaluating an index may cause an |
4117 error message for an invalid | |
4118 expression. E.g.: > | |
4119 :let l = [1, 2, 3] | |
4120 :echo exists("l[5]") | |
4121 < 0 > | |
4122 :echo exists("l[xx]") | |
4123 < E121: Undefined variable: xx | |
4124 0 | |
7 | 4125 :cmdname Ex command: built-in command, user |
4126 command or command modifier |:command|. | |
4127 Returns: | |
4128 1 for match with start of a command | |
4129 2 full match with a command | |
4130 3 matches several user commands | |
4131 To check for a supported command | |
4132 always check the return value to be 2. | |
864 | 4133 :2match The |:2match| command. |
4134 :3match The |:3match| command. | |
7 | 4135 #event autocommand defined for this event |
4136 #event#pattern autocommand defined for this event and | |
4137 pattern (the pattern is taken | |
4138 literally and compared to the | |
4139 autocommand patterns character by | |
4140 character) | |
613 | 4141 #group autocommand group exists |
4142 #group#event autocommand defined for this group and | |
4143 event. | |
4144 #group#event#pattern | |
856 | 4145 autocommand defined for this group, |
613 | 4146 event and pattern. |
615 | 4147 ##event autocommand for this event is |
4148 supported. | |
7 | 4149 |
4150 Examples: > | |
4151 exists("&shortname") | |
4152 exists("$HOSTNAME") | |
4153 exists("*strftime") | |
4154 exists("*s:MyFunc") | |
4155 exists("bufcount") | |
4156 exists(":Make") | |
613 | 4157 exists("#CursorHold") |
7 | 4158 exists("#BufReadPre#*.gz") |
613 | 4159 exists("#filetypeindent") |
4160 exists("#filetypeindent#FileType") | |
4161 exists("#filetypeindent#FileType#*") | |
615 | 4162 exists("##ColorScheme") |
7 | 4163 < There must be no space between the symbol (&/$/*/#) and the |
4164 name. | |
867 | 4165 There must be no extra characters after the name, although in |
4166 a few cases this is ignored. That may become more strict in | |
4167 the future, thus don't count on it! | |
4168 Working example: > | |
4169 exists(":make") | |
4170 < NOT working example: > | |
4171 exists(":make install") | |
859 | 4172 |
4173 < Note that the argument must be a string, not the name of the | |
4174 variable itself. For example: > | |
7 | 4175 exists(bufcount) |
4176 < This doesn't check for existence of the "bufcount" variable, | |
853 | 4177 but gets the value of "bufcount", and checks if that exists. |
7 | 4178 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4179 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4180 Varname()->exists() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4181 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4182 exp({expr}) *exp()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
4183 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
|
4184 [0, inf]. |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
4185 {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
|
4186 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4187 :echo exp(2) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4188 < 7.389056 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4189 :echo exp(-1) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4190 < 0.367879 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4191 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4192 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4193 Compute()->exp() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4194 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
4195 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4196 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4197 |
3410
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
4198 expand({expr} [, {nosuf} [, {list}]]) *expand()* |
7 | 4199 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
|
4200 'wildignorecase' applies. |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
4201 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
4202 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
|
4203 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
|
4204 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
|
4205 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
|
4206 file name contains a space] |
7 | 4207 |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
4208 If the expansion fails, the result is an empty string. A name |
4869 | 4209 for a non-existing file is not included, unless {expr} does |
4210 not start with '%', '#' or '<', see below. | |
7 | 4211 |
4212 When {expr} starts with '%', '#' or '<', the expansion is done | |
4213 like for the |cmdline-special| variables with their associated | |
4214 modifiers. Here is a short overview: | |
4215 | |
4216 % current file name | |
4217 # alternate file name | |
4218 #n alternate file name n | |
4219 <cfile> file name under the cursor | |
4220 <afile> autocmd file name | |
4221 <abuf> autocmd buffer number (as a String!) | |
4222 <amatch> autocmd matched name | |
5734 | 4223 <sfile> sourced script file or function name |
14700
0a3b9ecf7cb8
patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents:
14695
diff
changeset
|
4224 <slnum> sourced script line number or function |
0a3b9ecf7cb8
patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents:
14695
diff
changeset
|
4225 line number |
0a3b9ecf7cb8
patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents:
14695
diff
changeset
|
4226 <sflnum> script file line number, also when in |
0a3b9ecf7cb8
patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents:
14695
diff
changeset
|
4227 a function |
7 | 4228 <cword> word under the cursor |
4229 <cWORD> WORD under the cursor | |
4230 <client> the {clientid} of the last received | |
4231 message |server2client()| | |
4232 Modifiers: | |
4233 :p expand to full path | |
4234 :h head (last path component removed) | |
4235 :t tail (last path component only) | |
4236 :r root (one extension removed) | |
4237 :e extension only | |
4238 | |
4239 Example: > | |
4240 :let &tags = expand("%:p:h") . "/tags" | |
4241 < Note that when expanding a string that starts with '%', '#' or | |
4242 '<', any following text is ignored. This does NOT work: > | |
4243 :let doesntwork = expand("%:h.bak") | |
4244 < Use this: > | |
4245 :let doeswork = expand("%:h") . ".bak" | |
4246 < Also note that expanding "<cfile>" and others only returns the | |
4247 referenced file name without further expansion. If "<cfile>" | |
4248 is "~/.cshrc", you need to do another expand() to have the | |
4249 "~/" expanded into the path of the home directory: > | |
4250 :echo expand(expand("<cfile>")) | |
4251 < | |
4252 There cannot be white space between the variables and the | |
4253 following modifier. The |fnamemodify()| function can be used | |
4254 to modify normal file names. | |
4255 | |
4256 When using '%' or '#', and the current or alternate file name | |
4257 is not defined, an empty string is used. Using "%:p" in a | |
4258 buffer with no name, results in the current directory, with a | |
4259 '/' added. | |
4260 | |
4261 When {expr} does not start with '%', '#' or '<', it is | |
4262 expanded like a file name is expanded on the command line. | |
4263 '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
|
4264 {nosuf} argument is given and it is |TRUE|. |
3398 | 4265 Names for non-existing files are included. The "**" item can |
4266 be used to search in a directory tree. For example, to find | |
4267 all "README" files in the current directory and below: > | |
444 | 4268 :echo expand("**/README") |
4269 < | |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
4270 expand() can also be used to expand variables and environment |
7 | 4271 variables that are only known in a shell. But this can be |
6180 | 4272 slow, because a shell may be used to do the expansion. See |
4273 |expr-env-expand|. | |
7 | 4274 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
|
4275 names. When an environment variable cannot be expanded, it is |
7 | 4276 left unchanged. Thus ":echo expand('$FOOBAR')" results in |
4277 "$FOOBAR". | |
4278 | |
4279 See |glob()| for finding existing files. See |system()| for | |
4280 getting the raw output of an external command. | |
4281 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4282 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4283 Getpattern()->expand() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4284 |
17020
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
4285 expandcmd({expr}) *expandcmd()* |
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
4286 Expand special items in {expr} like what is done for an Ex |
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
4287 command such as `:edit`. This expands special keywords, like |
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
4288 with |expand()|, and environment variables, anywhere in |
18456 | 4289 {expr}. "~user" and "~/path" are only expanded at the start. |
4290 Returns the expanded string. Example: > | |
17020
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
4291 :echo expandcmd('make %<.o') |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4292 |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4293 < Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4294 GetCommand()->expandcmd() |
17020
1841c03a9b5e
patch 8.1.1510: a plugin cannot easily expand a command like done internally
Bram Moolenaar <Bram@vim.org>
parents:
17004
diff
changeset
|
4295 < |
102 | 4296 extend({expr1}, {expr2} [, {expr3}]) *extend()* |
692 | 4297 {expr1} and {expr2} must be both |Lists| or both |
4298 |Dictionaries|. | |
4299 | |
4300 If they are |Lists|: Append {expr2} to {expr1}. | |
102 | 4301 If {expr3} is given insert the items of {expr2} before item |
4302 {expr3} in {expr1}. When {expr3} is zero insert before the | |
4303 first item. When {expr3} is equal to len({expr1}) then | |
4304 {expr2} is appended. | |
79 | 4305 Examples: > |
4306 :echo sort(extend(mylist, [7, 5])) | |
4307 :call extend(mylist, [2, 3], 1) | |
1699 | 4308 < When {expr1} is the same List as {expr2} then the number of |
4309 items copied is equal to the original length of the List. | |
4310 E.g., when {expr3} is 1 you get N new copies of the first item | |
4311 (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
|
4312 Use |add()| to concatenate one item to a list. To concatenate |
82 | 4313 two lists into a new list use the + operator: > |
79 | 4314 :let newlist = [1, 2, 3] + [4, 5] |
102 | 4315 < |
692 | 4316 If they are |Dictionaries|: |
102 | 4317 Add all entries from {expr2} to {expr1}. |
4318 If a key exists in both {expr1} and {expr2} then {expr3} is | |
4319 used to decide what to do: | |
4320 {expr3} = "keep": keep the value of {expr1} | |
4321 {expr3} = "force": use the value of {expr2} | |
856 | 4322 {expr3} = "error": give an error message *E737* |
102 | 4323 When {expr3} is omitted then "force" is assumed. |
4324 | |
4325 {expr1} is changed when {expr2} is not empty. If necessary | |
4326 make a copy of {expr1} first. | |
4327 {expr2} remains unchanged. | |
6823 | 4328 When {expr1} is locked and {expr2} is not empty the operation |
4329 fails. | |
102 | 4330 Returns {expr1}. |
4331 | |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4332 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4333 mylist->extend(otherlist) |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4334 |
79 | 4335 |
842 | 4336 feedkeys({string} [, {mode}]) *feedkeys()* |
4337 Characters in {string} are queued for processing as if they | |
6549 | 4338 come from a mapping or were typed by the user. |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4339 |
6549 | 4340 By default the string is added to the end of the typeahead |
4341 buffer, thus if a mapping is still being executed the | |
4342 characters come after them. Use the 'i' flag to insert before | |
4343 other characters, they will be executed next, before any | |
4344 characters from a mapping. | |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4345 |
842 | 4346 The function does not wait for processing of keys contained in |
4347 {string}. | |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4348 |
842 | 4349 To include special keys into {string}, use double-quotes |
4350 and "\..." notation |expr-quote|. For example, | |
1215 | 4351 feedkeys("\<CR>") simulates pressing of the <Enter> key. But |
842 | 4352 feedkeys('\<CR>') pushes 5 characters. |
16600
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
4353 A special code that might be useful is <Ignore>, it exits the |
ff3c99bd1038
patch 8.1.1303: not possible to hide a balloon
Bram Moolenaar <Bram@vim.org>
parents:
16576
diff
changeset
|
4354 wait for a character without doing anything. *<Ignore>* |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4355 |
842 | 4356 {mode} is a String, which can contain these character flags: |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4357 'm' Remap keys. This is default. If {mode} is absent, |
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4358 keys are remapped. |
843 | 4359 'n' Do not remap keys. |
4360 't' Handle keys as if typed; otherwise they are handled as | |
4361 if coming from a mapping. This matters for undo, | |
4362 opening folds, etc. | |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
4363 'L' Lowlevel input. Only works for Unix or when using the |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
4364 GUI. Keys are used as if they were coming from the |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
4365 terminal. Other flags are not used. *E980* |
19742
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
4366 When a CTRL-C interrupts and 't' is included it sets |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
4367 the internal "got_int" flag. |
6549 | 4368 '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
|
4369 '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
|
4370 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
|
4371 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
|
4372 (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
|
4373 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
|
4374 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
|
4375 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
|
4376 script continues. |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4377 Note that if you manage to call feedkeys() while |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
4378 executing commands, thus calling it recursively, then |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
4379 all typehead will be consumed by the last call. |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
4380 '!' 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
|
4381 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
|
4382 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
|
4383 |
842 | 4384 Return value is always 0. |
4385 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4386 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4387 GetInput()->feedkeys() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4388 |
7 | 4389 filereadable({file}) *filereadable()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
4390 The result is a Number, which is |TRUE| when a file with the |
7 | 4391 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
|
4392 or is a directory, the result is |FALSE|. {file} is any |
7 | 4393 expression, which is used as a String. |
1156 | 4394 If you don't care about the file being readable you can use |
4395 |glob()|. | |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4396 {file} is used as-is, you may want to expand wildcards first: > |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4397 echo filereadable('~/.vimrc') |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4398 0 |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4399 echo filereadable(expand('~/.vimrc')) |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4400 1 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4401 |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4402 < Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4403 GetName()->filereadable() |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
4404 < *file_readable()* |
7 | 4405 Obsolete name: file_readable(). |
4406 | |
95 | 4407 |
1156 | 4408 filewritable({file}) *filewritable()* |
4409 The result is a Number, which is 1 when a file with the | |
4410 name {file} exists, and can be written. If {file} doesn't | |
1621 | 4411 exist, or is not writable, the result is 0. If {file} is a |
1156 | 4412 directory, and we can write to it, the result is 2. |
4413 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4414 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4415 GetName()->filewriteable() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4416 |
1156 | 4417 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4418 filter({expr1}, {expr2}) *filter()* |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4419 {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
|
4420 For each item in {expr1} evaluate {expr2} and when the result |
685 | 4421 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
|
4422 {expr2} must be a |string| or |Funcref|. |
12785 | 4423 |
10218
584c835a2de1
commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents:
10198
diff
changeset
|
4424 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
|
4425 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
|
4426 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
|
4427 the current item. |
102 | 4428 Examples: > |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4429 call filter(mylist, 'v:val !~ "OLD"') |
102 | 4430 < 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
|
4431 call filter(mydict, 'v:key >= 8') |
102 | 4432 < 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
|
4433 call filter(var, 0) |
685 | 4434 < Removes all the items, thus clears the |List| or |Dictionary|. |
99 | 4435 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4436 Note that {expr2} is the result of expression and is then |
102 | 4437 used as an expression again. Often it is good to use a |
4438 |literal-string| to avoid having to double backslashes. | |
4439 | |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4440 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
|
4441 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
|
4442 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
|
4443 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
|
4444 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
|
4445 func Odd(idx, val) |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4446 return a:idx % 2 == 1 |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4447 endfunc |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4448 call filter(mylist, function('Odd')) |
10218
584c835a2de1
commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents:
10198
diff
changeset
|
4449 < 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
|
4450 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
|
4451 < 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
|
4452 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
|
4453 < |
685 | 4454 The operation is done in-place. If you want a |List| or |
4455 |Dictionary| to remain unmodified make a copy first: > | |
650 | 4456 :let l = filter(copy(mylist), 'v:val =~ "KEEP"') |
102 | 4457 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
4458 < 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
|
4459 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
|
4460 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
|
4461 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
|
4462 defined with the "abort" flag. |
95 | 4463 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4464 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4465 mylist->filter(expr2) |
95 | 4466 |
12785 | 4467 finddir({name} [, {path} [, {count}]]) *finddir()* |
1095 | 4468 Find directory {name} in {path}. Supports both downwards and |
4469 upwards recursive directory searches. See |file-searching| | |
4470 for the syntax of {path}. | |
4471 Returns the path of the first found match. When the found | |
4472 directory is below the current directory a relative path is | |
4473 returned. Otherwise a full path is returned. | |
19 | 4474 If {path} is omitted or empty then 'path' is used. |
4475 If the optional {count} is given, find {count}'s occurrence of | |
794 | 4476 {name} in {path} instead of the first one. |
809 | 4477 When {count} is negative return all the matches in a |List|. |
19 | 4478 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
|
4479 {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
|
4480 feature} |
794 | 4481 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4482 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4483 GetName()->finddir() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4484 |
12785 | 4485 findfile({name} [, {path} [, {count}]]) *findfile()* |
794 | 4486 Just like |finddir()|, but find a file instead of a directory. |
4487 Uses 'suffixesadd'. | |
19 | 4488 Example: > |
4489 :echo findfile("tags.vim", ".;") | |
1156 | 4490 < Searches from the directory of the current file upwards until |
4491 it finds the file "tags.vim". | |
7 | 4492 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4493 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4494 GetName()->findfile() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4495 |
1621 | 4496 float2nr({expr}) *float2nr()* |
4497 Convert {expr} to a Number by omitting the part after the | |
4498 decimal point. | |
4499 {expr} must evaluate to a |Float| or a Number. | |
4500 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
|
4501 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
|
4502 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
|
4503 -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
|
4504 64-bit Number support is enabled, -0x8000000000000000). |
1621 | 4505 Examples: > |
4506 echo float2nr(3.95) | |
4507 < 3 > | |
4508 echo float2nr(-23.45) | |
4509 < -23 > | |
4510 echo float2nr(1.0e100) | |
9389
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
4511 < 2147483647 (or 9223372036854775807) > |
1621 | 4512 echo float2nr(-1.0e150) |
9389
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
4513 < -2147483647 (or -9223372036854775807) > |
1621 | 4514 echo float2nr(1.0e-100) |
4515 < 0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4516 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4517 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4518 Compute()->float2nr() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4519 < |
1621 | 4520 {only available when compiled with the |+float| feature} |
4521 | |
4522 | |
4523 floor({expr}) *floor()* | |
4524 Return the largest integral value less than or equal to | |
4525 {expr} as a |Float| (round down). | |
4526 {expr} must evaluate to a |Float| or a |Number|. | |
4527 Examples: > | |
4528 echo floor(1.856) | |
4529 < 1.0 > | |
4530 echo floor(-5.456) | |
4531 < -6.0 > | |
4532 echo floor(4.0) | |
4533 < 4.0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4534 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4535 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4536 Compute()->floor() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4537 < |
1621 | 4538 {only available when compiled with the |+float| feature} |
12785 | 4539 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4540 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4541 fmod({expr1}, {expr2}) *fmod()* |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4542 Return the remainder of {expr1} / {expr2}, even if the |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4543 division is not representable. Returns {expr1} - i * {expr2} |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4544 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
|
4545 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
|
4546 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
|
4547 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
|
4548 {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
|
4549 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4550 :echo fmod(12.33, 1.22) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4551 < 0.13 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4552 :echo fmod(-12.33, 1.22) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4553 < -0.13 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4554 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4555 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4556 Compute()->fmod(1.22) |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
4557 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
4558 {only available when compiled with |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4559 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
4560 |
1586 | 4561 fnameescape({string}) *fnameescape()* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
4562 Escape {string} for use as file name command argument. All |
1586 | 4563 characters that have a special meaning, such as '%' and '|' |
4564 are escaped with a backslash. | |
1621 | 4565 For most systems the characters escaped are |
4566 " \t\n*?[{`$\\%#'\"|!<". For systems where a backslash | |
4567 appears in a filename, it depends on the value of 'isfname'. | |
1700 | 4568 A leading '+' and '>' is also escaped (special after |:edit| |
4569 and |:write|). And a "-" by itself (special after |:cd|). | |
1586 | 4570 Example: > |
1700 | 4571 :let fname = '+some str%nge|name' |
1586 | 4572 :exe "edit " . fnameescape(fname) |
4573 < results in executing: > | |
1700 | 4574 edit \+some\ str\%nge\|name |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4575 < |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4576 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4577 GetName()->fnameescape() |
1586 | 4578 |
7 | 4579 fnamemodify({fname}, {mods}) *fnamemodify()* |
4580 Modify file name {fname} according to {mods}. {mods} is a | |
4581 string of characters like it is used for file names on the | |
4582 command line. See |filename-modifiers|. | |
4583 Example: > | |
4584 :echo fnamemodify("main.c", ":p:h") | |
4585 < results in: > | |
4586 /home/mool/vim/vim/src | |
1621 | 4587 < Note: Environment variables don't work in {fname}, use |
7 | 4588 |expand()| first then. |
4589 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4590 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4591 GetName()->fnamemodify(':p:h') |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4592 |
7 | 4593 foldclosed({lnum}) *foldclosed()* |
4594 The result is a Number. If the line {lnum} is in a closed | |
4595 fold, the result is the number of the first line in that fold. | |
4596 If the line {lnum} is not in a closed fold, -1 is returned. | |
4597 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4598 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4599 GetLnum()->foldclosed() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4600 |
7 | 4601 foldclosedend({lnum}) *foldclosedend()* |
4602 The result is a Number. If the line {lnum} is in a closed | |
4603 fold, the result is the number of the last line in that fold. | |
4604 If the line {lnum} is not in a closed fold, -1 is returned. | |
4605 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4606 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4607 GetLnum()->foldclosedend() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4608 |
7 | 4609 foldlevel({lnum}) *foldlevel()* |
4610 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
|
4611 in the current buffer. For nested folds the deepest level is |
7 | 4612 returned. If there is no fold at line {lnum}, zero is |
4613 returned. It doesn't matter if the folds are open or closed. | |
4614 When used while updating folds (from 'foldexpr') -1 is | |
4615 returned for lines where folds are still to be updated and the | |
4616 foldlevel is unknown. As a special case the level of the | |
4617 previous line is usually available. | |
4618 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4619 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4620 GetLnum()->foldlevel() |
18343 | 4621 < |
7 | 4622 *foldtext()* |
4623 foldtext() Returns a String, to be displayed for a closed fold. This is | |
4624 the default function used for the 'foldtext' option and should | |
4625 only be called from evaluating 'foldtext'. It uses the | |
4626 |v:foldstart|, |v:foldend| and |v:folddashes| variables. | |
4627 The returned string looks like this: > | |
4628 +-- 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
|
4629 < 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
|
4630 "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
|
4631 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
|
4632 "//" 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
|
4633 '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
|
4634 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
|
4635 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
|
4636 setting. |
7 | 4637 {not available when compiled without the |+folding| feature} |
4638 | |
29 | 4639 foldtextresult({lnum}) *foldtextresult()* |
4640 Returns the text that is displayed for the closed fold at line | |
4641 {lnum}. Evaluates 'foldtext' in the appropriate context. | |
4642 When there is no closed fold at {lnum} an empty string is | |
4643 returned. | |
4644 {lnum} is used like with |getline()|. Thus "." is the current | |
4645 line, "'m" mark m, etc. | |
4646 Useful when exporting folded text, e.g., to HTML. | |
4647 {not available when compiled without the |+folding| feature} | |
4648 | |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4649 |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4650 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4651 GetLnum()->foldtextresult() |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4652 < |
7 | 4653 *foreground()* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
4654 foreground() Move the Vim window to the foreground. Useful when sent from |
7 | 4655 a client to a Vim server. |remote_send()| |
4656 On Win32 systems this might not work, the OS does not always | |
4657 allow a window to bring itself to the foreground. Use | |
4658 |remote_foreground()| instead. | |
4659 {only in the Win32, Athena, Motif and GTK GUI versions and the | |
4660 Win32 console version} | |
4661 | |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4662 *funcref()* |
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4663 funcref({name} [, {arglist}] [, {dict}]) |
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4664 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
|
4665 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
|
4666 function {name} is redefined later. |
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4667 |
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4668 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
|
4669 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
|
4670 function. |
82 | 4671 |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4672 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4673 GetFuncname()->funcref([arg]) |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4674 < |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4675 *function()* *E700* *E922* *E923* |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4676 function({name} [, {arglist}] [, {dict}]) |
685 | 4677 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
|
4678 {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
|
4679 internal function. |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
4680 |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4681 {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
|
4682 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
|
4683 argument is not allowed. E.g.: > |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
4684 let FuncWithArg = function(dict.Func, [arg]) |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
4685 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
|
4686 < |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4687 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
|
4688 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
|
4689 same function. |
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
4690 |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4691 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
|
4692 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
|
4693 the Funcref and will be used when the Funcref is called. |
12785 | 4694 |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4695 The arguments are passed to the function in front of other |
17667 | 4696 arguments, but after any argument from |method|. Example: > |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4697 func Callback(arg1, arg2, name) |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4698 ... |
17667 | 4699 let Partial = function('Callback', ['one', 'two']) |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4700 ... |
17667 | 4701 call Partial('name') |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4702 < Invokes the function as with: > |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4703 call Callback('one', 'two', 'name') |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4704 |
17667 | 4705 < With a |method|: > |
4706 func Callback(one, two, three) | |
4707 ... | |
4708 let Partial = function('Callback', ['two']) | |
4709 ... | |
4710 eval 'one'->Partial('three') | |
4711 < Invokes the function as with: > | |
4712 call Callback('one', 'two', 'three') | |
4713 | |
8669
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4714 < 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
|
4715 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
|
4716 arguments. Example: > |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4717 func Callback(arg1, arg2, name) |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4718 ... |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4719 let Func = function('Callback', ['one']) |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4720 let Func2 = function(Func, ['two']) |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4721 ... |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4722 call Func2('name') |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4723 < Invokes the function as with: > |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4724 call Callback('one', 'two', 'name') |
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
4725 |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4726 < 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
|
4727 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
|
4728 function Callback() dict |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4729 echo "called for " . self.name |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4730 endfunction |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4731 ... |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4732 let context = {"name": "example"} |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4733 let Func = function('Callback', context) |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4734 ... |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4735 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
|
4736 < 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
|
4737 arguments, these two are equivalent: > |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
4738 let Func = function('Callback', context) |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
4739 let Func = context.Callback |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4740 |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4741 < 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
|
4742 function Callback(arg1, count) dict |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4743 ... |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4744 let context = {"name": "example"} |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4745 let Func = function('Callback', ['one'], context) |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4746 ... |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4747 call Func(500) |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4748 < Invokes the function as with: > |
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4749 call context.Callback('one', 500) |
17849
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4750 < |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4751 Can also be used as a |method|: > |
73ddc462979d
patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17837
diff
changeset
|
4752 GetFuncname()->function([arg]) |
8538
c337c813c64d
commit https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
Christian Brabandt <cb@256bit.org>
parents:
8536
diff
changeset
|
4753 |
82 | 4754 |
3224 | 4755 garbagecollect([{atexit}]) *garbagecollect()* |
8881
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
4756 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
|
4757 that have circular references. |
12785 | 4758 |
8881
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
4759 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
|
4760 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
|
4761 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
|
4762 circular references are always freed when they become unused. |
685 | 4763 This is useful if you have deleted a very big |List| and/or |
4764 |Dictionary| with circular references in a script that runs | |
4765 for a long time. | |
8881
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
4766 |
3224 | 4767 When the optional {atexit} argument is one, garbage |
1405 | 4768 collection will also be done when exiting Vim, if it wasn't |
4769 done before. This is useful when checking for memory leaks. | |
370 | 4770 |
9108
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
4771 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
|
4772 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
|
4773 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
|
4774 |test_garbagecollect_now()|. |
8881
ed0b39dd7fd6
commit https://github.com/vim/vim/commit/ebf7dfa6f121c82f97d2adca3d45fbaba9ad8f7e
Christian Brabandt <cb@256bit.org>
parents:
8876
diff
changeset
|
4775 |
140 | 4776 get({list}, {idx} [, {default}]) *get()* |
685 | 4777 Get item {idx} from |List| {list}. When this item is not |
82 | 4778 available return {default}. Return zero when {default} is |
4779 omitted. | |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4780 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
4781 mylist->get(idx) |
15498
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
4782 get({blob}, {idx} [, {default}]) |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
4783 Get byte {idx} from |Blob| {blob}. When this byte is not |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
4784 available return {default}. Return -1 when {default} is |
e1de20a47fa9
patch 8.1.0757: not enough documentation for Blobs
Bram Moolenaar <Bram@vim.org>
parents:
15456
diff
changeset
|
4785 omitted. |
102 | 4786 get({dict}, {key} [, {default}]) |
685 | 4787 Get item with key {key} from |Dictionary| {dict}. When this |
102 | 4788 item is not available return {default}. Return zero when |
17571 | 4789 {default} is omitted. Useful example: > |
4790 let val = get(g:, 'var_name', 'default') | |
4791 < This gets the value of g:var_name if it exists, and uses | |
4792 'default' when it does not exist. | |
9117
0cc48b3cd884
commit https://github.com/vim/vim/commit/03e19a04ac2ca55643663b97b6ab94043233dcbd
Christian Brabandt <cb@256bit.org>
parents:
9110
diff
changeset
|
4793 get({func}, {what}) |
0cc48b3cd884
commit https://github.com/vim/vim/commit/03e19a04ac2ca55643663b97b6ab94043233dcbd
Christian Brabandt <cb@256bit.org>
parents:
9110
diff
changeset
|
4794 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
|
4795 {what} are: |
11062 | 4796 "name" The function name |
4797 "func" The function | |
4798 "dict" The dictionary | |
4799 "args" The list with arguments | |
102 | 4800 |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4801 *getbufinfo()* |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4802 getbufinfo([{expr}]) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4803 getbufinfo([{dict}]) |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
4804 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
|
4805 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4806 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
|
4807 returned. |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4808 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4809 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
|
4810 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
|
4811 be specified in {dict}: |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4812 buflisted include only listed buffers. |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4813 bufloaded include only loaded buffers. |
13020
58cce40c965b
patch 8.0.1386: cannot select modified buffers with getbufinfo()
Christian Brabandt <cb@256bit.org>
parents:
13016
diff
changeset
|
4814 bufmodified include only modified buffers. |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4815 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4816 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
|
4817 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
|
4818 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
|
4819 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
|
4820 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4821 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
|
4822 entries: |
9904
24900147aa44
commit https://github.com/vim/vim/commit/339288377072f66ec88e21903e75a82d23ffbf4f
Christian Brabandt <cb@256bit.org>
parents:
9894
diff
changeset
|
4823 bufnr buffer number. |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4824 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
|
4825 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
|
4826 hidden TRUE if the buffer is hidden. |
18463
18d7337b6837
patch 8.1.2225: the "last used" info of a buffer is under used
Bram Moolenaar <Bram@vim.org>
parents:
18456
diff
changeset
|
4827 lastused timestamp in seconds, like |
18d7337b6837
patch 8.1.2225: the "last used" info of a buffer is under used
Bram Moolenaar <Bram@vim.org>
parents:
18456
diff
changeset
|
4828 |localtime()|, when the buffer was |
18d7337b6837
patch 8.1.2225: the "last used" info of a buffer is under used
Bram Moolenaar <Bram@vim.org>
parents:
18456
diff
changeset
|
4829 last used. |
18d7337b6837
patch 8.1.2225: the "last used" info of a buffer is under used
Bram Moolenaar <Bram@vim.org>
parents:
18456
diff
changeset
|
4830 {only with the |+viminfo| feature} |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4831 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
|
4832 lnum current line number in buffer. |
18916
cf051bdefb3f
patch 8.2.0019: cannot number of lines of another buffer
Bram Moolenaar <Bram@vim.org>
parents:
18912
diff
changeset
|
4833 linecount number of lines in the buffer (only |
cf051bdefb3f
patch 8.2.0019: cannot number of lines of another buffer
Bram Moolenaar <Bram@vim.org>
parents:
18912
diff
changeset
|
4834 valid when loaded) |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4835 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
|
4836 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
|
4837 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
|
4838 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
|
4839 the following fields: |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4840 id sign identifier |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4841 lnum line number |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4842 name sign name |
10000
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4843 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
|
4844 buffer-local variables. |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4845 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
|
4846 buffer |
17253
26e0352613ec
patch 8.1.1626: no test for closing a popup window with a modified buffer
Bram Moolenaar <Bram@vim.org>
parents:
17221
diff
changeset
|
4847 popups list of popup |window-ID|s that |
26e0352613ec
patch 8.1.1626: no test for closing a popup window with a modified buffer
Bram Moolenaar <Bram@vim.org>
parents:
17221
diff
changeset
|
4848 display this buffer |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4849 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4850 Examples: > |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4851 for buf in getbufinfo() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4852 echo buf.name |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4853 endfor |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4854 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
|
4855 if buf.changed |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4856 .... |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4857 endif |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4858 endfor |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
4859 < |
10000
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4860 To get buffer-local options use: > |
14519 | 4861 getbufvar({bufnr}, '&option_name') |
10000
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4862 |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4863 < |
435 | 4864 *getbufline()* |
4865 getbufline({expr}, {lnum} [, {end}]) | |
685 | 4866 Return a |List| with the lines starting from {lnum} to {end} |
4867 (inclusive) in the buffer {expr}. If {end} is omitted, a | |
4868 |List| with only the line {lnum} is returned. | |
435 | 4869 |
4870 For the use of {expr}, see |bufname()| above. | |
4871 | |
448 | 4872 For {lnum} and {end} "$" can be used for the last line of the |
4873 buffer. Otherwise a number must be used. | |
435 | 4874 |
4875 When {lnum} is smaller than 1 or bigger than the number of | |
685 | 4876 lines in the buffer, an empty |List| is returned. |
435 | 4877 |
4878 When {end} is greater than the number of lines in the buffer, | |
4879 it is treated as {end} is set to the number of lines in the | |
685 | 4880 buffer. When {end} is before {lnum} an empty |List| is |
435 | 4881 returned. |
4882 | |
448 | 4883 This function works only for loaded buffers. For unloaded and |
685 | 4884 non-existing buffers, an empty |List| is returned. |
435 | 4885 |
4886 Example: > | |
4887 :let lines = getbufline(bufnr("myfile"), 1, "$") | |
82 | 4888 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4889 < Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4890 GetBufnr()->getbufline(lnum) |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4891 |
4157 | 4892 getbufvar({expr}, {varname} [, {def}]) *getbufvar()* |
82 | 4893 The result is the value of option or local buffer variable |
4894 {varname} in buffer {expr}. Note that the name without "b:" | |
4895 must be used. | |
1668 | 4896 When {varname} is empty returns a dictionary with all the |
4897 buffer-local variables. | |
10000
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4898 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
|
4899 the buffer-local options. |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
4900 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
|
4901 a buffer-local option. |
216 | 4902 This also works for a global or buffer-local option, but it |
4903 doesn't work for a global variable, window-local variable or | |
4904 window-local option. | |
82 | 4905 For the use of {expr}, see |bufname()| above. |
4157 | 4906 When the buffer or variable doesn't exist {def} or an empty |
4907 string is returned, there is no error message. | |
82 | 4908 Examples: > |
4909 :let bufmodified = getbufvar(1, "&mod") | |
4910 :echo "todo myvar = " . getbufvar("todo", "myvar") | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4911 |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4912 < Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4913 GetBufnr()->getbufvar(varname) |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4914 < |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4915 getchangelist([{expr}]) *getchangelist()* |
13280
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4916 Returns the |changelist| for the buffer {expr}. For the use |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4917 of {expr}, see |bufname()| above. If buffer {expr} doesn't |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4918 exist, an empty list is returned. |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4919 |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4920 The returned list contains two entries: a list with the change |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4921 locations and the current position in the list. Each |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4922 entry in the change list is a dictionary with the following |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4923 entries: |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4924 col column number |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4925 coladd column offset for 'virtualedit' |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4926 lnum line number |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4927 If buffer {expr} is the current buffer, then the current |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4928 position refers to the position in the list. For other |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4929 buffers, it is set to the length of the list. |
fbda23eb0996
patch 8.0.1514: getting the list of changes is not easy
Christian Brabandt <cb@256bit.org>
parents:
13272
diff
changeset
|
4930 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4931 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4932 GetBufnr()->getchangelist() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
4933 |
7 | 4934 getchar([expr]) *getchar()* |
867 | 4935 Get a single character from the user or input stream. |
7 | 4936 If [expr] is omitted, wait until a character is available. |
4937 If [expr] is 0, only get a character when one is available. | |
867 | 4938 Return zero otherwise. |
7 | 4939 If [expr] is 1, only check if a character is available, it is |
867 | 4940 not consumed. Return zero if no character available. |
4941 | |
5555 | 4942 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
|
4943 special key is returned. If it is a single character, the |
867 | 4944 result is a number. Use nr2char() to convert it to a String. |
4945 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
|
4946 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
|
4947 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
|
4948 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
|
4949 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
|
4950 that is not included in the character. |
867 | 4951 |
5968 | 4952 When [expr] is 0 and Esc is typed, there will be a short delay |
4953 while Vim waits to see if this is the start of an escape | |
4954 sequence. | |
4955 | |
5555 | 4956 When [expr] is 1 only the first byte is returned. For a |
872 | 4957 one-byte character it is the character itself as a number. |
4958 Use nr2char() to convert it to a String. | |
867 | 4959 |
3224 | 4960 Use getcharmod() to obtain any additional modifiers. |
4961 | |
1029 | 4962 When the user clicks a mouse button, the mouse event will be |
4963 returned. The position can then be found in |v:mouse_col|, | |
18623
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
4964 |v:mouse_lnum|, |v:mouse_winid| and |v:mouse_win|. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
4965 |getmousepos()| can also be used. This example positions the |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
4966 mouse as it would normally happen: > |
1029 | 4967 let c = getchar() |
1621 | 4968 if c == "\<LeftMouse>" && v:mouse_win > 0 |
1029 | 4969 exe v:mouse_win . "wincmd w" |
4970 exe v:mouse_lnum | |
4971 exe "normal " . v:mouse_col . "|" | |
4972 endif | |
4973 < | |
10734 | 4974 When using bracketed paste only the first character is |
4975 returned, the rest of the pasted text is dropped. | |
4976 |xterm-bracketed-paste|. | |
4977 | |
7 | 4978 There is no prompt, you will somehow have to make clear to the |
4979 user that a character has to be typed. | |
4980 There is no mapping for the character. | |
4981 Key codes are replaced, thus when the user presses the <Del> | |
4982 key you get the code for the <Del> key, not the raw character | |
4983 sequence. Examples: > | |
4984 getchar() == "\<Del>" | |
4985 getchar() == "\<S-Left>" | |
4986 < This example redefines "f" to ignore case: > | |
4987 :nmap f :call FindChar()<CR> | |
4988 :function FindChar() | |
4989 : let c = nr2char(getchar()) | |
4990 : while col('.') < col('$') - 1 | |
4991 : normal l | |
4992 : if getline('.')[col('.') - 1] ==? c | |
4993 : break | |
4994 : endif | |
4995 : endwhile | |
4996 :endfunction | |
6421 | 4997 < |
6647 | 4998 You may also receive synthetic characters, such as |
6421 | 4999 |<CursorHold>|. Often you will want to ignore this and get |
5000 another character: > | |
5001 :function GetKey() | |
5002 : let c = getchar() | |
5003 : while c == "\<CursorHold>" | |
5004 : let c = getchar() | |
5005 : endwhile | |
5006 : return c | |
5007 :endfunction | |
7 | 5008 |
5009 getcharmod() *getcharmod()* | |
5010 The result is a Number which is the state of the modifiers for | |
5011 the last obtained character with getchar() or in another way. | |
5012 These values are added together: | |
5013 2 shift | |
5014 4 control | |
5015 8 alt (meta) | |
3224 | 5016 16 meta (when it's different from ALT) |
5017 32 mouse double click | |
5018 64 mouse triple click | |
5019 96 mouse quadruple click (== 32 + 64) | |
5020 128 command (Macintosh only) | |
7 | 5021 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
|
5022 character itself are obtained. Thus Shift-a results in "A" |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
5023 without a modifier. |
7 | 5024 |
6991 | 5025 getcharsearch() *getcharsearch()* |
5026 Return the current character search information as a {dict} | |
5027 with the following entries: | |
5028 | |
5029 char character previously used for a character | |
5030 search (|t|, |f|, |T|, or |F|); empty string | |
5031 if no character search has been performed | |
5032 forward direction of character search; 1 for forward, | |
5033 0 for backward | |
5034 until type of character search; 1 for a |t| or |T| | |
5035 character search, 0 for an |f| or |F| | |
5036 character search | |
5037 | |
5038 This can be useful to always have |;| and |,| search | |
5039 forward/backward regardless of the direction of the previous | |
5040 character search: > | |
5041 :nnoremap <expr> ; getcharsearch().forward ? ';' : ',' | |
5042 :nnoremap <expr> , getcharsearch().forward ? ',' : ';' | |
5043 < Also see |setcharsearch()|. | |
5044 | |
7 | 5045 getcmdline() *getcmdline()* |
5046 Return the current command-line. Only works when the command | |
5047 line is being edited, thus requires use of |c_CTRL-\_e| or | |
5048 |c_CTRL-R_=|. | |
5049 Example: > | |
5050 :cmap <F7> <C-\>eescape(getcmdline(), ' \')<CR> | |
531 | 5051 < Also see |getcmdtype()|, |getcmdpos()| and |setcmdpos()|. |
14864 | 5052 Returns an empty string when entering a password or using |
5053 |inputsecret()|. | |
7 | 5054 |
95 | 5055 getcmdpos() *getcmdpos()* |
7 | 5056 Return the position of the cursor in the command line as a |
5057 byte count. The first column is 1. | |
5058 Only works when editing the command line, thus requires use of | |
3456 | 5059 |c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping. |
5060 Returns 0 otherwise. | |
531 | 5061 Also see |getcmdtype()|, |setcmdpos()| and |getcmdline()|. |
5062 | |
5063 getcmdtype() *getcmdtype()* | |
5064 Return the current command-line type. Possible return values | |
5065 are: | |
532 | 5066 : normal Ex command |
5067 > debug mode command |debug-mode| | |
5068 / forward search command | |
5069 ? backward search command | |
5070 @ |input()| command | |
5071 - |:insert| or |:append| command | |
6213 | 5072 = |i_CTRL-R_=| |
531 | 5073 Only works when editing the command line, thus requires use of |
3456 | 5074 |c_CTRL-\_e| or |c_CTRL-R_=| or an expression mapping. |
5075 Returns an empty string otherwise. | |
531 | 5076 Also see |getcmdpos()|, |setcmdpos()| and |getcmdline()|. |
7 | 5077 |
6153 | 5078 getcmdwintype() *getcmdwintype()* |
5079 Return the current |command-line-window| type. Possible return | |
5080 values are the same as |getcmdtype()|. Returns an empty string | |
5081 when not in the command-line window. | |
5082 | |
9861
74f67cb4f7e1
commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
5083 getcompletion({pat}, {type} [, {filtered}]) *getcompletion()* |
9460
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5084 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
|
5085 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
|
5086 supported: |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5087 |
13551
1fd0f8392946
patch 8.0.1649: no completion for argument list commands
Christian Brabandt <cb@256bit.org>
parents:
13513
diff
changeset
|
5088 arglist file names in argument list |
9460
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5089 augroup autocmd groups |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5090 buffer buffer names |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5091 behave :behave suboptions |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5092 color color schemes |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5093 command Ex command (and arguments) |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5094 compiler compilers |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5095 cscope |:cscope| suboptions |
18987
e378907d79bf
patch 8.2.0054: :diffget and :diffput don't have good completion
Bram Moolenaar <Bram@vim.org>
parents:
18973
diff
changeset
|
5096 diff_buffer |:diffget| and |:diffput| completion |
9460
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5097 dir directory names |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5098 environment environment variable names |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5099 event autocommand events |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5100 expression Vim expression |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5101 file file and directory names |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5102 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
|
5103 filetype filetype names |'filetype'| |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5104 function function name |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5105 help help subjects |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5106 highlight highlight groups |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5107 history :history suboptions |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5108 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
|
5109 mapclear buffer argument |
9460
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5110 mapping mapping name |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5111 menu menus |
10275
6d8b2da002e9
commit https://github.com/vim/vim/commit/9e507ca8a3e1535e62de4bd86374b0fcd18ef5b8
Christian Brabandt <cb@256bit.org>
parents:
10245
diff
changeset
|
5112 messages |:messages| suboptions |
9460
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5113 option options |
10275
6d8b2da002e9
commit https://github.com/vim/vim/commit/9e507ca8a3e1535e62de4bd86374b0fcd18ef5b8
Christian Brabandt <cb@256bit.org>
parents:
10245
diff
changeset
|
5114 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
|
5115 shellcmd Shell command |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5116 sign |:sign| suboptions |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5117 syntax syntax file names |'syntax'| |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5118 syntime |:syntime| suboptions |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5119 tag tags |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5120 tag_listfiles tags, file names |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5121 user user names |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5122 var user variables |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5123 |
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5124 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
|
5125 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
|
5126 |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
|
5127 |
9861
74f67cb4f7e1
commit https://github.com/vim/vim/commit/e9d58a6459687a1228b5aa85bd7b31f8f1e528a8
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
5128 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
|
5129 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
|
5130 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
|
5131 |
9460
cdffa812f9d1
commit https://github.com/vim/vim/commit/aa4d73235bf4deee167aa5314b89ae3d3db334b7
Christian Brabandt <cb@256bit.org>
parents:
9454
diff
changeset
|
5132 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
|
5133 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
|
5134 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5135 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5136 GetPattern()->getcompletion('color') |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5137 < |
5944 | 5138 *getcurpos()* |
5139 getcurpos() Get the position of the cursor. This is like getpos('.'), but | |
19968 | 5140 includes an extra "curswant" item in the list: |
5141 [0, lnum, col, off, curswant] ~ | |
5944 | 5142 The "curswant" number is the preferred column when moving the |
11347 | 5143 cursor vertically. Also see |getpos()|. |
19968 | 5144 The first "bufnum" item is always zero. |
11347 | 5145 |
5944 | 5146 This can be used to save and restore the cursor position: > |
5147 let save_cursor = getcurpos() | |
5148 MoveTheCursorAround | |
5149 call setpos('.', save_cursor) | |
11347 | 5150 < Note that this only works within the window. See |
5151 |winrestview()| for restoring more state. | |
7 | 5152 *getcwd()* |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5153 getcwd([{winnr} [, {tabnr}]]) |
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5154 The result is a String, which is the name of the current |
7 | 5155 working directory. |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5156 |
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5157 With {winnr} return the local current directory of this window |
13229
93efa1de7abb
patch 8.0.1489: there is no easy way to get the global directory
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
5158 in the current tab page. {winnr} can be the window number or |
93efa1de7abb
patch 8.0.1489: there is no easy way to get the global directory
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
5159 the |window-ID|. |
93efa1de7abb
patch 8.0.1489: there is no easy way to get the global directory
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
5160 If {winnr} is -1 return the name of the global working |
93efa1de7abb
patch 8.0.1489: there is no easy way to get the global directory
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
5161 directory. See also |haslocaldir()|. |
93efa1de7abb
patch 8.0.1489: there is no easy way to get the global directory
Christian Brabandt <cb@256bit.org>
parents:
13125
diff
changeset
|
5162 |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5163 With {winnr} and {tabnr} return the local current directory of |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5164 the window in the specified tab page. If {winnr} is -1 return |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5165 the working directory of the tabpage. |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5166 If {winnr} is zero use the current window, if {tabnr} is zero |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5167 use the current tabpage. |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5168 Without any arguments, return the working directory of the |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5169 current window. |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5170 Return an empty string if the arguments are invalid. |
7 | 5171 |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5172 Examples: > |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5173 " Get the working directory of the current window |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5174 :echo getcwd() |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5175 :echo getcwd(0) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5176 :echo getcwd(0, 0) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5177 " Get the working directory of window 3 in tabpage 2 |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5178 :echo getcwd(3, 2) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5179 " Get the global working directory |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5180 :echo getcwd(-1) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5181 " Get the working directory of tabpage 3 |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5182 :echo getcwd(-1, 3) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5183 " Get the working directory of current tabpage |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5184 :echo getcwd(-1, 0) |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5185 |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5186 < Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5187 GetWinnr()->getcwd() |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5188 < |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5189 getenv({name}) *getenv()* |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5190 Return the value of environment variable {name}. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5191 When the variable does not exist |v:null| is returned. That |
17571 | 5192 is different from a variable set to an empty string, although |
5193 some systems interpret the empty value as the variable being | |
5194 deleted. See also |expr-env|. | |
7 | 5195 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5196 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5197 GetVarname()->getenv() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5198 |
37 | 5199 getfontname([{name}]) *getfontname()* |
5200 Without an argument returns the name of the normal font being | |
5201 used. Like what is used for the Normal highlight group | |
5202 |hl-Normal|. | |
5203 With an argument a check is done whether {name} is a valid | |
5204 font name. If not then an empty string is returned. | |
5205 Otherwise the actual font name is returned, or {name} if the | |
5206 GUI does not support obtaining the real name. | |
824 | 5207 Only works when the GUI is running, thus not in your vimrc or |
819 | 5208 gvimrc file. Use the |GUIEnter| autocommand to use this |
5209 function just after the GUI has started. | |
10895
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
5210 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
|
5211 a valid name does not work. |
37 | 5212 |
20 | 5213 getfperm({fname}) *getfperm()* |
5214 The result is a String, which is the read, write, and execute | |
5215 permissions of the given file {fname}. | |
5216 If {fname} does not exist or its directory cannot be read, an | |
5217 empty string is returned. | |
5218 The result is of the form "rwxrwxrwx", where each group of | |
5219 "rwx" flags represent, in turn, the permissions of the owner | |
5220 of the file, the group the file belongs to, and other users. | |
5221 If a user does not have a given permission the flag for this | |
3750 | 5222 is replaced with the string "-". Examples: > |
20 | 5223 :echo getfperm("/etc/passwd") |
3750 | 5224 :echo getfperm(expand("~/.vimrc")) |
20 | 5225 < This will hopefully (from a security point of view) display |
5226 the string "rw-r--r--" or even "rw-------". | |
205 | 5227 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5228 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5229 GetFilename()->getfperm() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5230 < |
10244
876fbdd84e52
commit https://github.com/vim/vim/commit/2ec618c9feac4573b154510236ad8121c77d0eca
Christian Brabandt <cb@256bit.org>
parents:
10237
diff
changeset
|
5231 For setting permissions use |setfperm()|. |
8451
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
5232 |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5233 getfsize({fname}) *getfsize()* |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5234 The result is a Number, which is the size in bytes of the |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5235 given file {fname}. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5236 If {fname} is a directory, 0 is returned. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5237 If the file {fname} can't be found, -1 is returned. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5238 If the size of {fname} is too big to fit in a Number then -2 |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5239 is returned. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
5240 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5241 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5242 GetFilename()->getfsize() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5243 |
7 | 5244 getftime({fname}) *getftime()* |
5245 The result is a Number, which is the last modification time of | |
5246 the given file {fname}. The value is measured as seconds | |
5247 since 1st Jan 1970, and may be passed to strftime(). See also | |
5248 |localtime()| and |strftime()|. | |
5249 If the file {fname} can't be found -1 is returned. | |
5250 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5251 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5252 GetFilename()->getftime() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5253 |
20 | 5254 getftype({fname}) *getftype()* |
5255 The result is a String, which is a description of the kind of | |
5256 file of the given file {fname}. | |
5257 If {fname} does not exist an empty string is returned. | |
5258 Here is a table over different kinds of files and their | |
5259 results: | |
5260 Normal file "file" | |
5261 Directory "dir" | |
5262 Symbolic link "link" | |
5263 Block device "bdev" | |
5264 Character device "cdev" | |
5265 Socket "socket" | |
5266 FIFO "fifo" | |
5267 All other "other" | |
5268 Example: > | |
5269 getftype("/home") | |
5270 < Note that a type such as "link" will only be returned on | |
5271 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
|
5272 "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
|
5273 directory returns "dir" instead of "link". |
20 | 5274 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5275 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5276 GetFilename()->getftype() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5277 |
18008
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
18000
diff
changeset
|
5278 getimstatus() *getimstatus()* |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
18000
diff
changeset
|
5279 The result is a Number, which is |TRUE| when the IME status is |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
18000
diff
changeset
|
5280 active. |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
18000
diff
changeset
|
5281 See 'imstatusfunc'. |
8ae333756614
patch 8.1.2000: plugin cannot get the current IME status
Bram Moolenaar <Bram@vim.org>
parents:
18000
diff
changeset
|
5282 |
13298
a88c5e12b860
patch 8.0.1523: cannot write and read terminal screendumps
Christian Brabandt <cb@256bit.org>
parents:
13280
diff
changeset
|
5283 getjumplist([{winnr} [, {tabnr}]]) *getjumplist()* |
13246
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5284 Returns the |jumplist| for the specified window. |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5285 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5286 Without arguments use the current window. |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5287 With {winnr} only use this window in the current tab page. |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5288 {winnr} can also be a |window-ID|. |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5289 With {winnr} and {tabnr} use the window in the specified tab |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5290 page. |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5291 |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5292 The returned list contains two entries: a list with the jump |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5293 locations and the last used jump position number in the list. |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5294 Each entry in the jump location list is a dictionary with |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5295 the following entries: |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5296 bufnr buffer number |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5297 col column number |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5298 coladd column offset for 'virtualedit' |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5299 filename filename if available |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5300 lnum line number |
dd3b2ecf91f6
patch 8.0.1497: getting the jump list requires parsing the output of :jumps
Christian Brabandt <cb@256bit.org>
parents:
13231
diff
changeset
|
5301 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5302 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5303 GetWinnr()->getjumplist() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5304 |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5305 < *getline()* |
82 | 5306 getline({lnum} [, {end}]) |
5307 Without {end} the result is a String, which is line {lnum} | |
5308 from the current buffer. Example: > | |
7 | 5309 getline(1) |
5310 < When {lnum} is a String that doesn't start with a | |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
5311 digit, |line()| is called to translate the String into a Number. |
7 | 5312 To get the line under the cursor: > |
5313 getline(".") | |
5314 < When {lnum} is smaller than 1 or bigger than the number of | |
5315 lines in the buffer, an empty string is returned. | |
5316 | |
685 | 5317 When {end} is given the result is a |List| where each item is |
5318 a line from the current buffer in the range {lnum} to {end}, | |
82 | 5319 including line {end}. |
5320 {end} is used in the same way as {lnum}. | |
5321 Non-existing lines are silently omitted. | |
685 | 5322 When {end} is before {lnum} an empty |List| is returned. |
82 | 5323 Example: > |
5324 :let start = line('.') | |
5325 :let end = search("^$") - 1 | |
5326 :let lines = getline(start, end) | |
5327 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5328 < Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5329 ComputeLnum()->getline() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5330 |
1156 | 5331 < To get lines from another buffer see |getbufline()| |
5332 | |
12785 | 5333 getloclist({nr} [, {what}]) *getloclist()* |
647 | 5334 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
|
5335 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
|
5336 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
|
5337 |
647 | 5338 For a location list window, the displayed location list is |
648 | 5339 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
|
5340 returned. Otherwise, same as |getqflist()|. |
82 | 5341 |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5342 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
|
5343 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
|
5344 |getqflist()| for the supported items in {what}. |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5345 |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5346 In addition to the items supported by |getqflist()| in {what}, |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5347 the following item is supported by |getloclist()|: |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5348 |
16808 | 5349 filewinid id of the window used to display files |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5350 from the location list. This field is |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5351 applicable only when called from a |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5352 location list window. See |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5353 |location-list-file-window| for more |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5354 details. |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5355 |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
5356 getmatches([{win}]) *getmatches()* |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
5357 Returns a |List| with all matches previously defined for the |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
5358 current window by |matchadd()| and the |:match| commands. |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
5359 |getmatches()| is useful in combination with |setmatches()|, |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
5360 as |setmatches()| can restore a list of matches saved by |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
5361 |getmatches()|. |
1326 | 5362 Example: > |
5363 :echo getmatches() | |
5364 < [{'group': 'MyGroup1', 'pattern': 'TODO', | |
5365 'priority': 10, 'id': 1}, {'group': 'MyGroup2', | |
5366 'pattern': 'FIXME', 'priority': 10, 'id': 2}] > | |
5367 :let m = getmatches() | |
5368 :call clearmatches() | |
5369 :echo getmatches() | |
5370 < [] > | |
5371 :call setmatches(m) | |
5372 :echo getmatches() | |
5373 < [{'group': 'MyGroup1', 'pattern': 'TODO', | |
5374 'priority': 10, 'id': 1}, {'group': 'MyGroup2', | |
5375 'pattern': 'FIXME', 'priority': 10, 'id': 2}] > | |
5376 :unlet m | |
5377 < | |
18623
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5378 getmousepos() *getmousepos()* |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5379 Returns a Dictionary with the last known position of the |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5380 mouse. This can be used in a mapping for a mouse click or in |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5381 a filter of a popup window. The items are: |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5382 screenrow screen row |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5383 screencol screen column |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5384 winid Window ID of the click |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5385 winrow row inside "winid" |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5386 wincol column inside "winid" |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5387 line text line inside "winid" |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5388 column text column inside "winid" |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5389 All numbers are 1-based. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5390 |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5391 If not over a window, e.g. when in the command line, then only |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5392 "screenrow" and "screencol" are valid, the others are zero. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5393 |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5394 When on the status line below a window or the vertical |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5395 separater right of a window, the "line" and "column" values |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5396 are zero. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5397 |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5398 When the position is after the text then "column" is the |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5399 length of the text in bytes. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5400 |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5401 If the mouse is over a popup window then that window is used. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5402 |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5403 |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5404 When using |getchar()| the Vim variables |v:mouse_lnum|, |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5405 |v:mouse_col| and |v:mouse_winid| also provide these values. |
3089b422b9dc
patch 8.1.2304: cannot get the mouse position when getting a mouse click
Bram Moolenaar <Bram@vim.org>
parents:
18594
diff
changeset
|
5406 |
5968 | 5407 *getpid()* |
5408 getpid() Return a Number which is the process ID of the Vim process. | |
5409 On Unix and MS-Windows this is a unique number, until Vim | |
18972 | 5410 exits. |
5968 | 5411 |
5412 *getpos()* | |
5413 getpos({expr}) Get the position for {expr}. For possible values of {expr} | |
5414 see |line()|. For getting the cursor position see | |
5415 |getcurpos()|. | |
5416 The result is a |List| with four numbers: | |
5417 [bufnum, lnum, col, off] | |
5418 "bufnum" is zero, unless a mark like '0 or 'A is used, then it | |
5419 is the buffer number of the mark. | |
5420 "lnum" and "col" are the position in the buffer. The first | |
5421 column is 1. | |
5422 The "off" number is zero, unless 'virtualedit' is used. Then | |
5423 it is the offset in screen columns from the start of the | |
5424 character. E.g., a position within a <Tab> or after the last | |
5425 character. | |
5426 Note that for '< and '> Visual mode matters: when it is "V" | |
5427 (visual line mode) the column of '< is zero and the column of | |
5428 '> is a large number. | |
5429 This can be used to save and restore the position of a mark: > | |
5430 let save_a_mark = getpos("'a") | |
5431 ... | |
6421 | 5432 call setpos("'a", save_a_mark) |
5968 | 5433 < Also see |getcurpos()| and |setpos()|. |
5434 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5435 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5436 GetMark()->getpos() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5437 |
1326 | 5438 |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5439 getqflist([{what}]) *getqflist()* |
230 | 5440 Returns a list with all the current quickfix errors. Each |
5441 list item is a dictionary with these entries: | |
5442 bufnr number of buffer that has the file name, use | |
5443 bufname() to get the name | |
13821
98274127d675
patch 8.0.1782: no simple way to label quickfix entries
Christian Brabandt <cb@256bit.org>
parents:
13818
diff
changeset
|
5444 module module name |
230 | 5445 lnum line number in the buffer (first line is 1) |
5446 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
|
5447 vcol |TRUE|: "col" is visual column |
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5448 |FALSE|: "col" is byte index |
230 | 5449 nr error number |
1065 | 5450 pattern search pattern used to locate the error |
230 | 5451 text description of the error |
5452 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
|
5453 valid |TRUE|: recognized error message |
230 | 5454 |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
5455 When there is no error list or it's empty, an empty list is |
1065 | 5456 returned. Quickfix list entries with non-existing buffer |
5457 number are returned with "bufnr" set to zero. | |
515 | 5458 |
230 | 5459 Useful application: Find pattern matches in multiple files and |
5460 do something with them: > | |
5461 :vimgrep /theword/jg *.c | |
5462 :for d in getqflist() | |
5463 : echo bufname(d.bufnr) ':' d.lnum '=' d.text | |
5464 :endfor | |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5465 < |
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5466 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
|
5467 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
|
5468 following string items are supported in {what}: |
13062
6479dadcf214
patch 8.0.1406: difficult to track changes to a quickfix list
Christian Brabandt <cb@256bit.org>
parents:
13051
diff
changeset
|
5469 changedtick get the total number of changes made |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5470 to the list |quickfix-changedtick| |
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5471 context get the |quickfix-context| |
12321
2779d593a706
patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents:
12319
diff
changeset
|
5472 efm errorformat to use when parsing "lines". If |
12968 | 5473 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
|
5474 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
|
5475 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
|
5476 |quickfix-ID|; zero means the id for the |
12968 | 5477 current list or the list specified by "nr" |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
5478 idx index of the current entry in the quickfix |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
5479 list specified by 'id' or 'nr'. |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
5480 See |quickfix-index| |
11549
f5add45f9848
patch 8.0.0657: cannot get and set quickfix list items
Christian Brabandt <cb@256bit.org>
parents:
11543
diff
changeset
|
5481 items quickfix list entries |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5482 lines parse a list of lines using 'efm' and return |
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5483 the resulting entries. Only a |List| type is |
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5484 accepted. The current quickfix list is not |
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5485 modified. See |quickfix-parse|. |
10237
197795e3530d
commit https://github.com/vim/vim/commit/890680ca6364386fabb271c85e0755bcaa6a33c1
Christian Brabandt <cb@256bit.org>
parents:
10233
diff
changeset
|
5486 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
|
5487 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
|
5488 the last quickfix list |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5489 qfbufnr number of the buffer displayed in the quickfix |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5490 window. Returns 0 if the quickfix buffer is |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5491 not present. See |quickfix-buffer|. |
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
|
5492 size number of entries in the quickfix list |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5493 title get the list title |quickfix-title| |
13016
e47e70300f30
patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents:
12977
diff
changeset
|
5494 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
|
5495 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
|
5496 Non-string items in {what} are ignored. To get the value of a |
13026
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5497 particular item, set it to zero. |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5498 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
|
5499 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
|
5500 specified by "id" is used. |
12427
fc3e2d5614dd
patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents:
12389
diff
changeset
|
5501 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
|
5502 "$" 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
|
5503 contains the quickfix stack size. |
12427
fc3e2d5614dd
patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents:
12389
diff
changeset
|
5504 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
|
5505 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
|
5506 "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
|
5507 |
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5508 The returned dictionary contains the following entries: |
13062
6479dadcf214
patch 8.0.1406: difficult to track changes to a quickfix list
Christian Brabandt <cb@256bit.org>
parents:
13051
diff
changeset
|
5509 changedtick total number of changes made to the |
6479dadcf214
patch 8.0.1406: difficult to track changes to a quickfix list
Christian Brabandt <cb@256bit.org>
parents:
13051
diff
changeset
|
5510 list |quickfix-changedtick| |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5511 context quickfix list context. See |quickfix-context| |
13026
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5512 If not present, set to "". |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5513 id quickfix list ID |quickfix-ID|. If not |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5514 present, set to 0. |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5515 idx index of the current entry in the list. If not |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5516 present, set to 0. |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5517 items quickfix list entries. If not present, set to |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5518 an empty list. |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5519 nr quickfix list number. If not present, set to 0 |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5520 qfbufnr number of the buffer displayed in the quickfix |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
5521 window. If not present, set to 0. |
13026
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5522 size number of entries in the quickfix list. If not |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5523 present, set to 0. |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5524 title quickfix list title text. If not present, set |
7c0e0e923537
patch 8.0.1389: getqflist() items are missing if not set
Christian Brabandt <cb@256bit.org>
parents:
13020
diff
changeset
|
5525 to "". |
13016
e47e70300f30
patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents:
12977
diff
changeset
|
5526 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
|
5527 |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
5528 Examples (See also |getqflist-examples|): > |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5529 :echo getqflist({'all': 1}) |
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5530 :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
|
5531 :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
|
5532 < |
5796 | 5533 getreg([{regname} [, 1 [, {list}]]]) *getreg()* |
7 | 5534 The result is a String, which is the contents of register |
236 | 5535 {regname}. Example: > |
7 | 5536 :let cliptext = getreg('*') |
9887
b4da19b7539f
commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents:
9881
diff
changeset
|
5537 < 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
|
5538 |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
5539 getreg('=') returns the last evaluated value of the expression |
236 | 5540 register. (For use in maps.) |
282 | 5541 getreg('=', 1) returns the expression itself, so that it can |
5542 be restored with |setreg()|. For other registers the extra | |
5543 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
|
5544 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5545 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
|
5546 to |List|. Each list item is one text line. Use it if you care |
5796 | 5547 about zero bytes possibly present inside register: without |
5548 third argument both NLs and zero bytes are represented as NLs | |
5549 (see |NL-used-for-Nul|). | |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
5550 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
|
5551 |
7 | 5552 If {regname} is not specified, |v:register| is used. |
5553 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5554 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5555 GetRegname()->getreg() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5556 |
82 | 5557 |
7 | 5558 getregtype([{regname}]) *getregtype()* |
5559 The result is a String, which is type of register {regname}. | |
5560 The value will be one of: | |
5561 "v" for |characterwise| text | |
5562 "V" for |linewise| text | |
5563 "<CTRL-V>{width}" for |blockwise-visual| text | |
5596 | 5564 "" for an empty or unknown register |
7 | 5565 <CTRL-V> is one character with value 0x16. |
5566 If {regname} is not specified, |v:register| is used. | |
5567 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5568 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5569 GetRegname()->getregtype() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5570 |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
5571 gettabinfo([{arg}]) *gettabinfo()* |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
5572 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
|
5573 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
|
5574 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
|
5575 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
|
5576 empty List is returned. |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
5577 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
5578 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
|
5579 tabnr tab page number. |
10000
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
5580 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
|
5581 tabpage-local variables |
15932 | 5582 windows List of |window-ID|s in the tab page. |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
9850
diff
changeset
|
5583 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5584 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5585 GetTabnr()->gettabinfo() |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5586 |
4157 | 5587 gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* |
2207
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
5588 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
|
5589 {tabnr}. |t:var| |
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
5590 Tabs are numbered starting with one. |
6197 | 5591 When {varname} is empty a dictionary with all tab-local |
5592 variables is returned. | |
2207
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
5593 Note that the name without "t:" must be used. |
4157 | 5594 When the tab or variable doesn't exist {def} or an empty |
5595 string is returned, there is no error message. | |
5596 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5597 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5598 GetTabnr()->gettabvar(varname) |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5599 |
4157 | 5600 gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()* |
1156 | 5601 Get the value of window-local variable {varname} in window |
5602 {winnr} in tab page {tabnr}. | |
4157 | 5603 When {varname} is empty a dictionary with all window-local |
5604 variables is returned. | |
10000
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
5605 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
|
5606 window-local options in a Dictionary. |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
5607 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
|
5608 window-local option. |
4157 | 5609 Note that {varname} must be the name without "w:". |
831 | 5610 Tabs are numbered starting with one. For the current tabpage |
5611 use |getwinvar()|. | |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
5612 {winnr} can be the window number or the |window-ID|. |
831 | 5613 When {winnr} is zero the current window is used. |
5614 This also works for a global option, buffer-local option and | |
5615 window-local option, but it doesn't work for a global variable | |
5616 or buffer-local variable. | |
4157 | 5617 When the tab, window or variable doesn't exist {def} or an |
5618 empty string is returned, there is no error message. | |
831 | 5619 Examples: > |
5620 :let list_is_on = gettabwinvar(1, 2, '&list') | |
5621 :echo "myvar = " . gettabwinvar(3, 1, 'myvar') | |
1266 | 5622 < |
14347 | 5623 To obtain all window-local variables use: > |
5624 gettabwinvar({tabnr}, {winnr}, '&') | |
5625 | |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5626 < Can also be used as a |method|: > |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5627 GetTabnr()->gettabwinvar(winnr, varname) |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
5628 |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5629 gettagstack([{nr}]) *gettagstack()* |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5630 The result is a Dict, which is the tag stack of window {nr}. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5631 {nr} can be the window number or the |window-ID|. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5632 When {nr} is not specified, the current window is used. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5633 When window {nr} doesn't exist, an empty Dict is returned. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5634 |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5635 The returned dictionary contains the following entries: |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5636 curidx Current index in the stack. When at |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5637 top of the stack, set to (length + 1). |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5638 Index of bottom of the stack is 1. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5639 items List of items in the stack. Each item |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5640 is a dictionary containing the |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5641 entries described below. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5642 length Number of entries in the stack. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5643 |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5644 Each item in the stack is a dictionary with the following |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5645 entries: |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5646 bufnr buffer number of the current jump |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5647 from cursor position before the tag jump. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5648 See |getpos()| for the format of the |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5649 returned list. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5650 matchnr current matching tag number. Used when |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5651 multiple matching tags are found for a |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5652 name. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5653 tagname name of the tag |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5654 |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5655 See |tagstack| for more information about the tag stack. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
5656 |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5657 Can also be used as a |method|: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5658 GetWinnr()->gettagstack() |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5659 |
14343
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5660 getwininfo([{winid}]) *getwininfo()* |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5661 Returns information about windows as a List with Dictionaries. |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5662 |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5663 If {winid} is given Information about the window with that ID |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5664 is returned. If the window does not exist the result is an |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5665 empty list. |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5666 |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5667 Without {winid} information about all the windows in all the |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5668 tab pages is returned. |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5669 |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5670 Each List item is a Dictionary with the following entries: |
15977
7fbdceabad64
patch 8.1.0994: relative cursor position is not calculated correctly
Bram Moolenaar <Bram@vim.org>
parents:
15932
diff
changeset
|
5671 botline last displayed buffer line |
14343
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5672 bufnr number of buffer in the window |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5673 height window height (excluding winbar) |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5674 loclist 1 if showing a location list |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5675 {only with the +quickfix feature} |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5676 quickfix 1 if quickfix or location list window |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5677 {only with the +quickfix feature} |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5678 terminal 1 if a terminal window |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5679 {only with the +terminal feature} |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5680 tabnr tab page number |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
5681 topline first displayed buffer line |
14343
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5682 variables a reference to the dictionary with |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5683 window-local variables |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5684 width window width |
14347 | 5685 winbar 1 if the window has a toolbar, 0 |
5686 otherwise | |
14343
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5687 wincol leftmost screen column of the window, |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5688 col from |win_screenpos()| |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5689 winid |window-ID| |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5690 winnr window number |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5691 winrow topmost screen column of the window, |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5692 row from |win_screenpos()| |
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
5693 |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5694 Can also be used as a |method|: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5695 GetWinnr()->getwininfo() |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5696 |
13379
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5697 getwinpos([{timeout}]) *getwinpos()* |
19303 | 5698 The result is a List with two numbers, the result of |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
5699 |getwinposx()| and |getwinposy()| combined: |
13379
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5700 [x-pos, y-pos] |
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5701 {timeout} can be used to specify how long to wait in msec for |
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5702 a response from the terminal. When omitted 100 msec is used. |
13437 | 5703 Use a longer time for a remote terminal. |
5704 When using a value less than 10 and no response is received | |
5705 within that time, a previously reported position is returned, | |
5706 if available. This can be used to poll for the position and | |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
5707 do some work in the meantime: > |
13437 | 5708 while 1 |
5709 let res = getwinpos(1) | |
5710 if res[0] >= 0 | |
5711 break | |
5712 endif | |
5713 " Do some work here | |
5714 endwhile | |
5715 < | |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5716 |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5717 Can also be used as a |method|: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5718 GetTimeout()->getwinpos() |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5719 < |
7 | 5720 *getwinposx()* |
5721 getwinposx() The result is a Number, which is the X coordinate in pixels of | |
11347 | 5722 the left hand side of the GUI Vim window. Also works for an |
13379
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5723 xterm (uses a timeout of 100 msec). |
11347 | 5724 The result will be -1 if the information is not available. |
5725 The value can be used with `:winpos`. | |
7 | 5726 |
5727 *getwinposy()* | |
5728 getwinposy() The result is a Number, which is the Y coordinate in pixels of | |
13379
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5729 the top of the GUI Vim window. Also works for an xterm (uses |
0f9dd1b43244
patch 8.0.1563: timeout of getwinposx() can be too short
Christian Brabandt <cb@256bit.org>
parents:
13341
diff
changeset
|
5730 a timeout of 100 msec). |
11347 | 5731 The result will be -1 if the information is not available. |
5732 The value can be used with `:winpos`. | |
7 | 5733 |
4157 | 5734 getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* |
831 | 5735 Like |gettabwinvar()| for the current tabpage. |
7 | 5736 Examples: > |
5737 :let list_is_on = getwinvar(2, '&list') | |
5738 :echo "myvar = " . getwinvar(1, 'myvar') | |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5739 |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5740 < Can also be used as a |method|: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5741 GetWinnr()->getwinvar(varname) |
7 | 5742 < |
6663 | 5743 glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) *glob()* |
1754 | 5744 Expand the file wildcards in {expr}. See |wildcards| for the |
1156 | 5745 use of special characters. |
3410
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
5746 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5747 Unless the optional {nosuf} argument is given and is |TRUE|, |
1754 | 5748 the 'suffixes' and 'wildignore' options apply: Names matching |
5749 one of the patterns in 'wildignore' will be skipped and | |
5750 'suffixes' affect the ordering of matches. | |
2662 | 5751 'wildignorecase' always applies. |
3410
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
5752 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5753 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
|
5754 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
|
5755 you also get filenames containing newlines correctly. |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
5756 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
|
5757 matches, they are separated by <NL> characters. |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
5758 |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
5759 If the expansion fails, the result is an empty String or List. |
6663 | 5760 |
16267 | 5761 You can also use |readdir()| if you need to do complicated |
5762 things, such as limiting the number of matches. | |
5763 | |
3445 | 5764 A name for a non-existing file is not included. A symbolic |
5765 link is only included if it points to an existing file. | |
6663 | 5766 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
|
5767 |TRUE| then all symbolic links are included. |
7 | 5768 |
5769 For most systems backticks can be used to get files names from | |
5770 any external command. Example: > | |
5771 :let tagfiles = glob("`find . -name tags -print`") | |
5772 :let &tags = substitute(tagfiles, "\n", ",", "g") | |
5773 < 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
|
5774 item per line. Spaces inside an item are allowed. |
7 | 5775 |
5776 See |expand()| for expanding special Vim variables. See | |
5777 |system()| for getting the raw output of an external command. | |
5778 | |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5779 Can also be used as a |method|: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5780 GetExpr()->glob() |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5781 |
6697 | 5782 glob2regpat({expr}) *glob2regpat()* |
5783 Convert a file pattern, as used by glob(), into a search | |
5784 pattern. The result can be used to match with a string that | |
5785 is a file name. E.g. > | |
5786 if filename =~ glob2regpat('Make*.mak') | |
5787 < This is equivalent to: > | |
5788 if filename =~ '^Make.*\.mak$' | |
7788
192ae655ac91
commit https://github.com/vim/vim/commit/3b5f929b18492fec291d1ec95a91f54e5912c03b
Christian Brabandt <cb@256bit.org>
parents:
7782
diff
changeset
|
5789 < 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
|
5790 empty string. |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
5791 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
|
5792 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
|
5793 |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5794 Can also be used as a |method|: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5795 GetExpr()->glob2regpat() |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5796 < *globpath()* |
8031
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8019
diff
changeset
|
5797 globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]) |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
5798 Perform glob() for {expr} on all directories in {path} and |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
5799 concatenate the results. Example: > |
7 | 5800 :echo globpath(&rtp, "syntax/c.vim") |
5873 | 5801 < |
5802 {path} is a comma-separated list of directory names. Each | |
7 | 5803 directory name is prepended to {expr} and expanded like with |
1754 | 5804 |glob()|. A path separator is inserted when needed. |
7 | 5805 To add a comma inside a directory name escape it with a |
5806 backslash. Note that on MS-Windows a directory may have a | |
5807 trailing backslash, remove it if you put a comma after it. | |
5808 If the expansion fails for one of the directories, there is no | |
5809 error message. | |
5873 | 5810 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5811 Unless the optional {nosuf} argument is given and is |TRUE|, |
1754 | 5812 the 'suffixes' and 'wildignore' options apply: Names matching |
5813 one of the patterns in 'wildignore' will be skipped and | |
5814 'suffixes' affect the ordering of matches. | |
7 | 5815 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5816 When {list} is present and it is |TRUE| the result is a List |
5873 | 5817 with all matching files. The advantage of using a List is, you |
5818 also get filenames containing newlines correctly. Otherwise | |
5819 the result is a String and when there are several matches, | |
5820 they are separated by <NL> characters. Example: > | |
5821 :echo globpath(&rtp, "syntax/c.vim", 0, 1) | |
5822 < | |
8031
ece323e2b57f
commit https://github.com/vim/vim/commit/6463ca229cb9412581419497924c85fcbfc854ab
Christian Brabandt <cb@256bit.org>
parents:
8019
diff
changeset
|
5823 {alllinks} is used as with |glob()|. |
6663 | 5824 |
444 | 5825 The "**" item can be used to search in a directory tree. |
5826 For example, to find all "README.txt" files in the directories | |
5827 in 'runtimepath' and below: > | |
5828 :echo globpath(&rtp, "**/README.txt") | |
1668 | 5829 < Upwards search and limiting the depth of "**" is not |
5830 supported, thus using 'path' will not always work properly. | |
5831 | |
17912
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5832 Can also be used as a |method|, the base is passed as the |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5833 second argument: > |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5834 GetExpr()->globpath(&rtp) |
9fac6d0de69a
patch 8.1.1952: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17909
diff
changeset
|
5835 < |
7 | 5836 *has()* |
19742
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5837 has({feature} [, {check}]) |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5838 When {check} is omitted or is zero: The result is a Number, |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5839 which is 1 if the feature {feature} is supported, zero |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5840 otherwise. The {feature} argument is a string, case is |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5841 ignored. See |feature-list| below. |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5842 |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5843 When {check} is present and not zero: The result is a Number, |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5844 which is 1 if the feature {feature} could ever be supported, |
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5845 zero otherwise. This is useful to check for a typo in |
19813 | 5846 {feature} and to detect dead code. Keep in mind that an older |
5847 Vim version will not know about a feature added later and | |
5848 features that have been abandoned will not be know by the | |
5849 current Vim version. | |
19742
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5850 |
7 | 5851 Also see |exists()|. |
19742
810eee1b42e3
patch 8.2.0427: it is not possible to check for a typo in a feature name
Bram Moolenaar <Bram@vim.org>
parents:
19721
diff
changeset
|
5852 |
19646 | 5853 Note that to skip code that has a syntax error when the |
5854 feature is not available, Vim may skip the rest of the line | |
5855 and miss a following `endif`. Therfore put the `endif` on a | |
5856 separate line: > | |
5857 if has('feature') | |
5858 let x = this->breaks->without->the->feature | |
5859 endif | |
19721 | 5860 < If the `endif` would be moved to the second line as "| endif" it |
5861 would not be found. | |
7 | 5862 |
102 | 5863 |
5864 has_key({dict}, {key}) *has_key()* | |
685 | 5865 The result is a Number, which is 1 if |Dictionary| {dict} has |
5866 an entry with key {key}. Zero otherwise. | |
102 | 5867 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
5868 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
5869 mydict->has_key(key) |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
5870 |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5871 haslocaldir([{winnr} [, {tabnr}]]) *haslocaldir()* |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5872 The result is a Number: |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5873 1 when the window has set a local directory via |:lcd| |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5874 2 when the tab-page has set a local directory via |:tcd| |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5875 0 otherwise. |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5876 |
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5877 Without arguments use the current window. |
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5878 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
|
5879 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
|
5880 page. |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
5881 {winnr} can be the window number or the |window-ID|. |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5882 If {winnr} is -1 it is ignored and only the tabpage is used. |
7653
d4370fef0175
commit https://github.com/vim/vim/commit/c970330676eaae7ba7cd05cfa46df5a413853ef9
Christian Brabandt <cb@256bit.org>
parents:
7651
diff
changeset
|
5883 Return 0 if the arguments are invalid. |
16427
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5884 Examples: > |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5885 if haslocaldir() == 1 |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5886 " window local directory case |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5887 elseif haslocaldir() == 2 |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5888 " tab-local directory case |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5889 else |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5890 " global directory case |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5891 endif |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5892 |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5893 " current window |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5894 :echo haslocaldir() |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5895 :echo haslocaldir(0) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5896 :echo haslocaldir(0, 0) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5897 " window n in current tab page |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5898 :echo haslocaldir(n) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5899 :echo haslocaldir(n, 0) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5900 " window n in tab page m |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5901 :echo haslocaldir(n, m) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5902 " tab page m |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5903 :echo haslocaldir(-1, m) |
8c3a1bd270bb
patch 8.1.1218: cannot set a directory for a tab page
Bram Moolenaar <Bram@vim.org>
parents:
16411
diff
changeset
|
5904 < |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5905 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5906 GetWinnr()->haslocaldir() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5907 |
782 | 5908 hasmapto({what} [, {mode} [, {abbr}]]) *hasmapto()* |
7 | 5909 The result is a Number, which is 1 if there is a mapping that |
5910 contains {what} in somewhere in the rhs (what it is mapped to) | |
5911 and this mapping exists in one of the modes indicated by | |
5912 {mode}. | |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
5913 When {abbr} is there and it is |TRUE| use abbreviations |
786 | 5914 instead of mappings. Don't forget to specify Insert and/or |
5915 Command-line mode. | |
7 | 5916 Both the global mappings and the mappings local to the current |
5917 buffer are checked for a match. | |
5918 If no matching mapping is found 0 is returned. | |
5919 The following characters are recognized in {mode}: | |
5920 n Normal mode | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
5921 v Visual and Select mode |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
5922 x Visual mode |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
5923 s Select mode |
7 | 5924 o Operator-pending mode |
5925 i Insert mode | |
5926 l Language-Argument ("r", "f", "t", etc.) | |
5927 c Command-line mode | |
5928 When {mode} is omitted, "nvo" is used. | |
5929 | |
5930 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
|
5931 to a function in a Vim script. Example: > |
7 | 5932 :if !hasmapto('\ABCdoit') |
5933 : map <Leader>d \ABCdoit | |
5934 :endif | |
5935 < This installs the mapping to "\ABCdoit" only if there isn't | |
5936 already a mapping to "\ABCdoit". | |
5937 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5938 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5939 GetRHS()->hasmapto() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5940 |
7 | 5941 histadd({history}, {item}) *histadd()* |
5942 Add the String {item} to the history {history} which can be | |
5943 one of: *hist-names* | |
5944 "cmd" or ":" command line history | |
5945 "search" or "/" search pattern history | |
1621 | 5946 "expr" or "=" typed expression history |
7 | 5947 "input" or "@" input line history |
3682 | 5948 "debug" or ">" debug command history |
10228
8a1481e59d64
commit https://github.com/vim/vim/commit/3e496b0ea31996b665824f45664dee1fdd73c4d0
Christian Brabandt <cb@256bit.org>
parents:
10218
diff
changeset
|
5949 empty the current or last used history |
3682 | 5950 The {history} string does not need to be the whole name, one |
5951 character is sufficient. | |
7 | 5952 If {item} does already exist in the history, it will be |
5953 shifted to become the newest entry. | |
5954 The result is a Number: 1 if the operation was successful, | |
5955 otherwise 0 is returned. | |
5956 | |
5957 Example: > | |
5958 :call histadd("input", strftime("%Y %b %d")) | |
5959 :let date=input("Enter date: ") | |
5960 < This function is not available in the |sandbox|. | |
5961 | |
18343 | 5962 Can also be used as a |method|, the base is passed as the |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5963 second argument: > |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
5964 GetHistory()->histadd('search') |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5965 |
7 | 5966 histdel({history} [, {item}]) *histdel()* |
236 | 5967 Clear {history}, i.e. delete all its entries. See |hist-names| |
7 | 5968 for the possible values of {history}. |
5969 | |
1668 | 5970 If the parameter {item} evaluates to a String, it is used as a |
5971 regular expression. All entries matching that expression will | |
5972 be removed from the history (if there are any). | |
7 | 5973 Upper/lowercase must match, unless "\c" is used |/\c|. |
1668 | 5974 If {item} evaluates to a Number, it will be interpreted as |
5975 an index, see |:history-indexing|. The respective entry will | |
5976 be removed if it exists. | |
7 | 5977 |
5978 The result is a Number: 1 for a successful operation, | |
5979 otherwise 0 is returned. | |
5980 | |
5981 Examples: | |
5982 Clear expression register history: > | |
5983 :call histdel("expr") | |
5984 < | |
5985 Remove all entries starting with "*" from the search history: > | |
5986 :call histdel("/", '^\*') | |
5987 < | |
5988 The following three are equivalent: > | |
5989 :call histdel("search", histnr("search")) | |
5990 :call histdel("search", -1) | |
5991 :call histdel("search", '^'.histget("search", -1).'$') | |
5992 < | |
5993 To delete the last search pattern and use the last-but-one for | |
5994 the "n" command and 'hlsearch': > | |
5995 :call histdel("search", -1) | |
5996 :let @/ = histget("search", -1) | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5997 < |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5998 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
5999 GetHistory()->histdel() |
7 | 6000 |
6001 histget({history} [, {index}]) *histget()* | |
6002 The result is a String, the entry with Number {index} from | |
6003 {history}. See |hist-names| for the possible values of | |
6004 {history}, and |:history-indexing| for {index}. If there is | |
6005 no such entry, an empty String is returned. When {index} is | |
6006 omitted, the most recent item from the history is used. | |
6007 | |
6008 Examples: | |
6009 Redo the second last search from history. > | |
6010 :execute '/' . histget("search", -2) | |
6011 | |
6012 < Define an Ex command ":H {num}" that supports re-execution of | |
6013 the {num}th entry from the output of |:history|. > | |
6014 :command -nargs=1 H execute histget("cmd", 0+<args>) | |
6015 < | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6016 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6017 GetHistory()->histget() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6018 |
7 | 6019 histnr({history}) *histnr()* |
6020 The result is the Number of the current entry in {history}. | |
6021 See |hist-names| for the possible values of {history}. | |
6022 If an error occurred, -1 is returned. | |
6023 | |
6024 Example: > | |
6025 :let inp_index = histnr("expr") | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6026 |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6027 < Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6028 GetHistory()->histnr() |
7 | 6029 < |
6030 hlexists({name}) *hlexists()* | |
6031 The result is a Number, which is non-zero if a highlight group | |
6032 called {name} exists. This is when the group has been | |
6033 defined in some way. Not necessarily when highlighting has | |
6034 been defined for it, it may also have been used for a syntax | |
6035 item. | |
6036 *highlight_exists()* | |
6037 Obsolete name: highlight_exists(). | |
6038 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6039 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6040 GetName()->hlexists() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6041 < |
7 | 6042 *hlID()* |
6043 hlID({name}) The result is a Number, which is the ID of the highlight group | |
6044 with name {name}. When the highlight group doesn't exist, | |
6045 zero is returned. | |
6046 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
|
6047 group. For example, to get the background color of the |
7 | 6048 "Comment" group: > |
6049 :echo synIDattr(synIDtrans(hlID("Comment")), "bg") | |
6050 < *highlightID()* | |
6051 Obsolete name: highlightID(). | |
6052 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6053 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6054 GetName()->hlID() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6055 |
7 | 6056 hostname() *hostname()* |
6057 The result is a String, which is the name of the machine on | |
236 | 6058 which Vim is currently running. Machine names greater than |
7 | 6059 256 characters long are truncated. |
6060 | |
6061 iconv({expr}, {from}, {to}) *iconv()* | |
6062 The result is a String, which is the text {expr} converted | |
6063 from encoding {from} to encoding {to}. | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6064 When the conversion completely fails an empty string is |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6065 returned. When some characters could not be converted they |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6066 are replaced with "?". |
7 | 6067 The encoding names are whatever the iconv() library function |
6068 can accept, see ":!man 3 iconv". | |
6069 Most conversions require Vim to be compiled with the |+iconv| | |
6070 feature. Otherwise only UTF-8 to latin1 conversion and back | |
6071 can be done. | |
6072 This can be used to display messages with special characters, | |
6073 no matter what 'encoding' is set to. Write the message in | |
6074 UTF-8 and use: > | |
6075 echo iconv(utf8_str, "utf-8", &enc) | |
6076 < Note that Vim uses UTF-8 for all Unicode encodings, conversion | |
6077 from/to UCS-2 is automatically changed to use UTF-8. You | |
6078 cannot use UCS-2 in a string anyway, because of the NUL bytes. | |
6079 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6080 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6081 GetText()->iconv('latin1', 'utf-8') |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6082 < |
7 | 6083 *indent()* |
6084 indent({lnum}) The result is a Number, which is indent of line {lnum} in the | |
6085 current buffer. The indent is counted in spaces, the value | |
6086 of 'tabstop' is relevant. {lnum} is used just like in | |
6087 |getline()|. | |
6088 When {lnum} is invalid -1 is returned. | |
6089 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6090 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6091 GetLnum()->indent() |
79 | 6092 |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6093 index({object}, {expr} [, {start} [, {ic}]]) *index()* |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6094 If {object} is a |List| return the lowest index where the item |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6095 has a value equal to {expr}. There is no automatic |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6096 conversion, so the String "4" is different from the Number 4. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6097 And the number 4 is different from the Float 4.0. The value |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6098 of 'ignorecase' is not used here, case always matters. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6099 |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6100 If {object} is |Blob| return the lowest index where the byte |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6101 value is equal to {expr}. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6102 |
153 | 6103 If {start} is given then start looking at the item with index |
6104 {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
|
6105 When {ic} is given and it is |TRUE|, ignore case. Otherwise |
79 | 6106 case must match. |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6107 -1 is returned when {expr} is not found in {object}. |
79 | 6108 Example: > |
6109 :let idx = index(words, "the") | |
87 | 6110 :if index(numbers, 123) >= 0 |
79 | 6111 |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6112 < Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6113 GetObject()->index(what) |
79 | 6114 |
531 | 6115 input({prompt} [, {text} [, {completion}]]) *input()* |
7 | 6116 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
|
6117 the command-line. The {prompt} argument is either a prompt |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6118 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
|
6119 in the prompt to start a new line. |
531 | 6120 The highlighting set with |:echohl| is used for the prompt. |
6121 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
|
6122 editing commands and mappings. There is a separate history |
531 | 6123 for lines typed for input(). |
6124 Example: > | |
6125 :if input("Coffee or beer? ") == "beer" | |
6126 : echo "Cheers!" | |
6127 :endif | |
6128 < | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6129 If the optional {text} argument is present and not empty, this |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6130 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
|
6131 Example: > |
531 | 6132 :let color = input("Color? ", "white") |
6133 | |
6134 < The optional {completion} argument specifies the type of | |
6135 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
|
6136 not performed. The supported completion types are the same as |
531 | 6137 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
|
6138 "-complete=" argument. Refer to |:command-completion| for |
531 | 6139 more information. Example: > |
6140 let fname = input("File: ", "", "file") | |
6141 < | |
6142 NOTE: This function must not be used in a startup file, for | |
6143 the versions that only run in GUI mode (e.g., the Win32 GUI). | |
7 | 6144 Note: When input() is called from within a mapping it will |
6145 consume remaining characters from that mapping, because a | |
6146 mapping is handled like the characters were typed. | |
6147 Use |inputsave()| before input() and |inputrestore()| | |
6148 after input() to avoid that. Another solution is to avoid | |
6149 that further characters follow in the mapping, e.g., by using | |
6150 |:execute| or |:normal|. | |
6151 | |
531 | 6152 Example with a mapping: > |
7 | 6153 :nmap \x :call GetFoo()<CR>:exe "/" . Foo<CR> |
6154 :function GetFoo() | |
6155 : call inputsave() | |
6156 : let g:Foo = input("enter search pattern: ") | |
6157 : call inputrestore() | |
6158 :endfunction | |
6159 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6160 < Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6161 GetPrompt()->input() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6162 |
7 | 6163 inputdialog({prompt} [, {text} [, {cancelreturn}]]) *inputdialog()* |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6164 Like |input()|, but when the GUI is running and text dialogs |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6165 are supported, a dialog window pops up to input the text. |
7 | 6166 Example: > |
3875 | 6167 :let n = inputdialog("value for shiftwidth", shiftwidth()) |
6168 :if n != "" | |
6169 : let &sw = n | |
6170 :endif | |
7 | 6171 < When the dialog is cancelled {cancelreturn} is returned. When |
6172 omitted an empty string is returned. | |
6173 Hitting <Enter> works like pressing the OK button. Hitting | |
6174 <Esc> works like pressing the Cancel button. | |
531 | 6175 NOTE: Command-line completion is not supported. |
7 | 6176 |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6177 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6178 GetPrompt()->inputdialog() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6179 |
519 | 6180 inputlist({textlist}) *inputlist()* |
819 | 6181 {textlist} must be a |List| of strings. This |List| is |
6182 displayed, one string per line. The user will be prompted to | |
6183 enter a number, which is returned. | |
519 | 6184 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
|
6185 mouse. For the first string 0 is returned. When clicking |
519 | 6186 above the first item a negative number is returned. When |
6187 clicking on the prompt one more than the length of {textlist} | |
6188 is returned. | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6189 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
|
6190 it won't work. It's a good idea to put the entry number at |
1156 | 6191 the start of the string. And put a prompt in the first item. |
6192 Example: > | |
519 | 6193 let color = inputlist(['Select color:', '1. red', |
6194 \ '2. green', '3. blue']) | |
6195 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6196 < Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6197 GetChoices()->inputlist() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6198 |
7 | 6199 inputrestore() *inputrestore()* |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6200 Restore typeahead that was saved with a previous |inputsave()|. |
7 | 6201 Should be called the same number of times inputsave() is |
6202 called. Calling it more often is harmless though. | |
6203 Returns 1 when there is nothing to restore, 0 otherwise. | |
6204 | |
6205 inputsave() *inputsave()* | |
6206 Preserve typeahead (also from mappings) and clear it, so that | |
6207 a following prompt gets input from the user. Should be | |
6208 followed by a matching inputrestore() after the prompt. Can | |
6209 be used several times, in which case there must be just as | |
6210 many inputrestore() calls. | |
6211 Returns 1 when out of memory, 0 otherwise. | |
6212 | |
6213 inputsecret({prompt} [, {text}]) *inputsecret()* | |
6214 This function acts much like the |input()| function with but | |
6215 two exceptions: | |
6216 a) the user's response will be displayed as a sequence of | |
6217 asterisks ("*") thereby keeping the entry secret, and | |
6218 b) the user's response will not be recorded on the input | |
6219 |history| stack. | |
6220 The result is a String, which is whatever the user actually | |
6221 typed on the command-line in response to the issued prompt. | |
531 | 6222 NOTE: Command-line completion is not supported. |
7 | 6223 |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6224 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6225 GetPrompt()->inputsecret() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6226 |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6227 insert({object}, {item} [, {idx}]) *insert()* |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6228 When {object} is a |List| or a |Blob| insert {item} at the start |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6229 of it. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6230 |
55 | 6231 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
|
6232 {idx}. If {idx} is zero it goes before the first item, just |
55 | 6233 like omitting {idx}. A negative {idx} is also possible, see |
6234 |list-index|. -1 inserts just before the last item. | |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6235 |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
6236 Returns the resulting |List| or |Blob|. Examples: > |
55 | 6237 :let mylist = insert([2, 3, 5], 1) |
6238 :call insert(mylist, 4, -1) | |
6239 :call insert(mylist, 6, len(mylist)) | |
82 | 6240 < The last example can be done simpler with |add()|. |
685 | 6241 Note that when {item} is a |List| it is inserted as a single |
692 | 6242 item. Use |extend()| to concatenate |Lists|. |
55 | 6243 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6244 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6245 mylist->insert(item) |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6246 |
18699
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6247 interrupt() *interrupt()* |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6248 Interrupt script execution. It works more or less like the |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6249 user typing CTRL-C, most commands won't execute and control |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6250 returns to the user. This is useful to abort execution |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6251 from lower down, e.g. in an autocommand. Example: > |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6252 :function s:check_typoname(file) |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6253 : if fnamemodify(a:file, ':t') == '[' |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6254 : echomsg 'Maybe typo' |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6255 : call interrupt() |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6256 : endif |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6257 :endfunction |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6258 :au BufWritePre * call s:check_typoname(expand('<amatch>')) |
1febd1aa9930
patch 8.1.2341: not so easy to interrupt a script programatically
Bram Moolenaar <Bram@vim.org>
parents:
18669
diff
changeset
|
6259 |
3214 | 6260 invert({expr}) *invert()* |
6261 Bitwise invert. The argument is converted to a number. A | |
6262 List, Dict or Float argument causes an error. Example: > | |
6263 :let bits = invert(bits) | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
6264 < Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
6265 :let bits = bits->invert() |
3214 | 6266 |
7 | 6267 isdirectory({directory}) *isdirectory()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
6268 The result is a Number, which is |TRUE| when a directory |
7 | 6269 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
|
6270 exist, or isn't a directory, the result is |FALSE|. {directory} |
7 | 6271 is any expression, which is used as a String. |
6272 | |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6273 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6274 GetName()->isdirectory() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6275 |
16213
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6276 isinf({expr}) *isinf()* |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6277 Return 1 if {expr} is a positive infinity, or -1 a negative |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6278 infinity, otherwise 0. > |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6279 :echo isinf(1.0 / 0.0) |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6280 < 1 > |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6281 :echo isinf(-1.0 / 0.0) |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6282 < -1 |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6283 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6284 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6285 Compute()->isinf() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6286 < |
16213
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6287 {only available when compiled with the |+float| feature} |
2c33b119ba92
patch 8.1.1111: it is not easy to check for infinity
Bram Moolenaar <Bram@vim.org>
parents:
16208
diff
changeset
|
6288 |
819 | 6289 islocked({expr}) *islocked()* *E786* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
6290 The result is a Number, which is |TRUE| when {expr} is the |
148 | 6291 name of a locked variable. |
685 | 6292 {expr} must be the name of a variable, |List| item or |
6293 |Dictionary| entry, not the variable itself! Example: > | |
148 | 6294 :let alist = [0, ['a', 'b'], 2, 3] |
6295 :lockvar 1 alist | |
6296 :echo islocked('alist') " 1 | |
6297 :echo islocked('alist[1]') " 0 | |
6298 | |
6299 < When {expr} is a variable that does not exist you get an error | |
843 | 6300 message. Use |exists()| to check for existence. |
148 | 6301 |
17914
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6302 Can also be used as a |method|: > |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6303 GetName()->islocked() |
af3d441845cd
patch 8.1.1953: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17912
diff
changeset
|
6304 |
8246
f16bfe02cef1
commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents:
8218
diff
changeset
|
6305 isnan({expr}) *isnan()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
6306 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
|
6307 echo isnan(0.0 / 0.0) |
16219
bd49e1656c72
patch 8.1.1114: confusing overloaded operator "." for string concatenation
Bram Moolenaar <Bram@vim.org>
parents:
16213
diff
changeset
|
6308 < 1 |
8246
f16bfe02cef1
commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents:
8218
diff
changeset
|
6309 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6310 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6311 Compute()->isnan() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6312 < |
8246
f16bfe02cef1
commit https://github.com/vim/vim/commit/f391327adbbffb11180cf6038a92af1ed144e907
Christian Brabandt <cb@256bit.org>
parents:
8218
diff
changeset
|
6313 {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
|
6314 |
140 | 6315 items({dict}) *items()* |
685 | 6316 Return a |List| with all the key-value pairs of {dict}. Each |
6317 |List| item is a list with two items: the key of a {dict} | |
6318 entry and the value of this entry. The |List| is in arbitrary | |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6319 order. Also see |keys()| and |values()|. |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6320 Example: > |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6321 for [key, value] in items(mydict) |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6322 echo key . ': ' . value |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6323 endfor |
140 | 6324 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6325 < Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6326 mydict->items() |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
6327 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
6328 job_ functions are documented here: |job-functions-details| |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
6329 |
7957
b74549818500
commit https://github.com/vim/vim/commit/835dc636a5350f610b62f110227d2363b5b2880a
Christian Brabandt <cb@256bit.org>
parents:
7935
diff
changeset
|
6330 |
95 | 6331 join({list} [, {sep}]) *join()* |
6332 Join the items in {list} together into one String. | |
6333 When {sep} is specified it is put in between the items. If | |
6334 {sep} is omitted a single space is used. | |
6335 Note that {sep} is not added at the end. You might want to | |
6336 add it there too: > | |
6337 let lines = join(mylist, "\n") . "\n" | |
692 | 6338 < String items are used as-is. |Lists| and |Dictionaries| are |
95 | 6339 converted into a string like with |string()|. |
6340 The opposite function is |split()|. | |
6341 | |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6342 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6343 mylist->join() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6344 |
8019
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6345 js_decode({string}) *js_decode()* |
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6346 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
|
6347 - 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
|
6348 - 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
|
6349 - 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
|
6350 result in v:none items. |
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6351 |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6352 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6353 ReadObject()->js_decode() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6354 |
8019
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6355 js_encode({expr}) *js_encode()* |
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6356 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
|
6357 - 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
|
6358 - 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
|
6359 commas. |
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6360 For example, the Vim object: |
8019
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6361 [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
|
6362 Will be encoded as: |
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6363 [1,,{one:1},,] ~ |
8019
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6364 While json_encode() would produce: |
7967
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6365 [1,null,{"one":1},null] ~ |
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6366 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
|
6367 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
|
6368 |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6369 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6370 GetObject()->js_encode() |
7967
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6371 |
8019
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6372 json_decode({string}) *json_decode()* |
7742
5f6f35a3cb12
commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents:
7712
diff
changeset
|
6373 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
|
6374 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
|
6375 JSON and Vim values. |
5f6f35a3cb12
commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents:
7712
diff
changeset
|
6376 The decoding is permissive: |
11347 | 6377 - A trailing comma in an array and object is ignored, e.g. |
6378 "[1, 2, ]" is the same as "[1, 2]". | |
15512 | 6379 - Integer keys are accepted in objects, e.g. {1:2} is the |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6380 same as {"1":2}. |
7742
5f6f35a3cb12
commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents:
7712
diff
changeset
|
6381 - More floating point numbers are recognized, e.g. "1." for |
11347 | 6382 "1.0", or "001.2" for "1.2". Special floating point values |
15446
8ac454818352
patch 8.1.0731: JS encoding does not handle negative infinity
Bram Moolenaar <Bram@vim.org>
parents:
15424
diff
changeset
|
6383 "Infinity", "-Infinity" and "NaN" (capitalization ignored) |
8ac454818352
patch 8.1.0731: JS encoding does not handle negative infinity
Bram Moolenaar <Bram@vim.org>
parents:
15424
diff
changeset
|
6384 are accepted. |
11347 | 6385 - Leading zeroes in integer numbers are ignored, e.g. "012" |
6386 for "12" or "-012" for "-12". | |
6387 - Capitalization is ignored in literal names null, true or | |
6388 false, e.g. "NULL" for "null", "True" for "true". | |
6389 - Control characters U+0000 through U+001F which are not | |
6390 escaped in strings are accepted, e.g. " " (tab | |
6391 character in string) for "\t". | |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6392 - An empty JSON expression or made of only spaces is accepted |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6393 and results in v:none. |
11347 | 6394 - Backslash in an invalid 2-character sequence escape is |
6395 ignored, e.g. "\a" is decoded as "a". | |
6396 - A correct surrogate pair in JSON strings should normally be | |
6397 a 12 character sequence such as "\uD834\uDD1E", but | |
6398 json_decode() silently accepts truncated surrogate pairs | |
6399 such as "\uD834" or "\uD834\u" | |
6400 *E938* | |
6401 A duplicate key in an object, valid in rfc7159, is not | |
6402 accepted by json_decode() as the result must be a valid Vim | |
6403 type, e.g. this fails: {"a":"b", "a":"c"} | |
6404 | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6405 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6406 ReadObject()->json_decode() |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
6407 |
8019
d685893d852e
commit https://github.com/vim/vim/commit/7823a3bd2eed6ff9e544d201de96710bd5344aaf
Christian Brabandt <cb@256bit.org>
parents:
7992
diff
changeset
|
6408 json_encode({expr}) *json_encode()* |
7742
5f6f35a3cb12
commit https://github.com/vim/vim/commit/705ada1aff27ecd9c47c690df817d043c2ceb5e2
Christian Brabandt <cb@256bit.org>
parents:
7712
diff
changeset
|
6409 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
|
6410 The encoding is specified in: |
7782
3a99194bd187
commit https://github.com/vim/vim/commit/009d84a34f3678ec93921bee3bc05be2fd606264
Christian Brabandt <cb@256bit.org>
parents:
7742
diff
changeset
|
6411 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
|
6412 Vim values are converted as follows: |
15512 | 6413 |Number| decimal number |
6414 |Float| floating point number | |
8275
ff900e499f79
commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents:
8251
diff
changeset
|
6415 Float nan "NaN" |
ff900e499f79
commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents:
8251
diff
changeset
|
6416 Float inf "Infinity" |
15446
8ac454818352
patch 8.1.0731: JS encoding does not handle negative infinity
Bram Moolenaar <Bram@vim.org>
parents:
15424
diff
changeset
|
6417 Float -inf "-Infinity" |
15512 | 6418 |String| in double quotes (possibly null) |
6419 |Funcref| not possible, error | |
6420 |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
|
6421 used recursively: [] |
15512 | 6422 |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
|
6423 used recursively: {} |
15512 | 6424 |Blob| as an array of the individual bytes |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
6425 v:false "false" |
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
6426 v:true "true" |
7967
45ea5ebf3a98
commit https://github.com/vim/vim/commit/595e64e259faefb330866852e1b9f6168544572a
Christian Brabandt <cb@256bit.org>
parents:
7957
diff
changeset
|
6427 v:none "null" |
7712
bce3b5ddb393
commit https://github.com/vim/vim/commit/520e1e41f35b063ede63b41738c82d6636e78c34
Christian Brabandt <cb@256bit.org>
parents:
7707
diff
changeset
|
6428 v:null "null" |
8275
ff900e499f79
commit https://github.com/vim/vim/commit/7ce686c990ea8c490d16be7f1c6bd95eb48816f9
Christian Brabandt <cb@256bit.org>
parents:
8251
diff
changeset
|
6429 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
|
6430 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
|
6431 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
|
6432 |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6433 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6434 GetObject()->json_encode() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6435 |
99 | 6436 keys({dict}) *keys()* |
685 | 6437 Return a |List| with all the keys of {dict}. The |List| is in |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
6438 arbitrary order. Also see |items()| and |values()|. |
99 | 6439 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6440 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6441 mydict->keys() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6442 |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6443 < *len()* *E701* |
55 | 6444 len({expr}) The result is a Number, which is the length of the argument. |
6445 When {expr} is a String or a Number the length in bytes is | |
6446 used, as with |strlen()|. | |
685 | 6447 When {expr} is a |List| the number of items in the |List| is |
55 | 6448 returned. |
15512 | 6449 When {expr} is a |Blob| the number of bytes is returned. |
685 | 6450 When {expr} is a |Dictionary| the number of entries in the |
6451 |Dictionary| is returned. | |
55 | 6452 Otherwise an error is given. |
6453 | |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6454 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6455 mylist->len() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6456 |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6457 < *libcall()* *E364* *E368* |
7 | 6458 libcall({libname}, {funcname}, {argument}) |
6459 Call function {funcname} in the run-time library {libname} | |
6460 with single argument {argument}. | |
6461 This is useful to call functions in a library that you | |
6462 especially made to be used with Vim. Since only one argument | |
6463 is possible, calling standard library functions is rather | |
6464 limited. | |
6465 The result is the String returned by the function. If the | |
6466 function returns NULL, this will appear as an empty string "" | |
6467 to Vim. | |
6468 If the function returns a number, use libcallnr()! | |
6469 If {argument} is a number, it is passed to the function as an | |
6470 int; if {argument} is a string, it is passed as a | |
6471 null-terminated string. | |
6472 This function will fail in |restricted-mode|. | |
6473 | |
6474 libcall() allows you to write your own 'plug-in' extensions to | |
6475 Vim without having to recompile the program. It is NOT a | |
6476 means to call system functions! If you try to do so Vim will | |
6477 very probably crash. | |
6478 | |
6479 For Win32, the functions you write must be placed in a DLL | |
6480 and use the normal C calling convention (NOT Pascal which is | |
6481 used in Windows System DLLs). The function must take exactly | |
6482 one parameter, either a character pointer or a long integer, | |
6483 and must return a character pointer or NULL. The character | |
6484 pointer returned must point to memory that will remain valid | |
6485 after the function has returned (e.g. in static data in the | |
6486 DLL). If it points to allocated memory, that memory will | |
6487 leak away. Using a static buffer in the function should work, | |
6488 it's then freed when the DLL is unloaded. | |
6489 | |
6490 WARNING: If the function returns a non-valid pointer, Vim may | |
1621 | 6491 crash! This also happens if the function returns a number, |
7 | 6492 because Vim thinks it's a pointer. |
6493 For Win32 systems, {libname} should be the filename of the DLL | |
6494 without the ".DLL" suffix. A full path is only required if | |
6495 the DLL is not in the usual places. | |
6496 For Unix: When compiling your own plugins, remember that the | |
6497 object code must be compiled as position-independent ('PIC'). | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6498 {only in Win32 and some Unix versions, when the |+libcall| |
7 | 6499 feature is present} |
6500 Examples: > | |
6501 :echo libcall("libc.so", "getenv", "HOME") | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6502 |
18343 | 6503 < Can also be used as a |method|, the base is passed as the |
6504 third argument: > | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6505 GetValue()->libcall("libc.so", "getenv") |
7 | 6506 < |
6507 *libcallnr()* | |
6508 libcallnr({libname}, {funcname}, {argument}) | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
6509 Just like |libcall()|, but used for a function that returns an |
7 | 6510 int instead of a string. |
6511 {only in Win32 on some Unix versions, when the |+libcall| | |
6512 feature is present} | |
1621 | 6513 Examples: > |
6514 :echo libcallnr("/usr/lib/libc.so", "getpid", "") | |
7 | 6515 :call libcallnr("libc.so", "printf", "Hello World!\n") |
6516 :call libcallnr("libc.so", "sleep", 10) | |
6517 < | |
18343 | 6518 Can also be used as a |method|, the base is passed as the |
6519 third argument: > | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6520 GetValue()->libcallnr("libc.so", "printf") |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6521 < |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
6522 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
6523 line({expr} [, {winid}]) *line()* |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
6524 The result is a Number, which is the line number of the file |
7 | 6525 position given with {expr}. The accepted positions are: |
6526 . the cursor position | |
6527 $ the last line in the current buffer | |
6528 'x position of mark x (if the mark is not set, 0 is | |
6529 returned) | |
11313
327a04a762f6
patch 8.0.0542: getpos() can return a negative line number
Christian Brabandt <cb@256bit.org>
parents:
11263
diff
changeset
|
6530 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
|
6531 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
|
6532 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
|
6533 less than "w0" if no lines are visible) |
1609 | 6534 v In Visual mode: the start of the Visual area (the |
6535 cursor is the end). When not in Visual mode | |
6536 returns the cursor position. Differs from |'<| in | |
6537 that it's updated right away. | |
1156 | 6538 Note that a mark in another file can be used. The line number |
6539 then applies to another buffer. | |
703 | 6540 To get the column number use |col()|. To get both use |
6541 |getpos()|. | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
6542 With the optional {winid} argument the values are obtained for |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
6543 that window instead of the current window. |
7 | 6544 Examples: > |
6545 line(".") line number of the cursor | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
6546 line(".", winid) idem, in window "winid" |
7 | 6547 line("'t") line number of mark t |
6548 line("'" . marker) line number of mark marker | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
6549 < |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
6550 To jump to the last known position when opening a file see |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
6551 |last-position-jump|. |
9 | 6552 |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6553 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6554 GetValue()->line() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6555 |
7 | 6556 line2byte({lnum}) *line2byte()* |
6557 Return the byte count from the start of the buffer for line | |
6558 {lnum}. This includes the end-of-line character, depending on | |
6559 the 'fileformat' option for the current buffer. The first | |
3237 | 6560 line returns 1. 'encoding' matters, 'fileencoding' is ignored. |
7 | 6561 This can also be used to get the byte count for the line just |
6562 below the last line: > | |
6563 line2byte(line("$") + 1) | |
3237 | 6564 < This is the buffer size plus one. If 'fileencoding' is empty |
6565 it is the file size plus one. | |
7 | 6566 When {lnum} is invalid, or the |+byte_offset| feature has been |
6567 disabled at compile time, -1 is returned. | |
6568 Also see |byte2line()|, |go| and |:goto|. | |
6569 | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6570 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6571 GetLnum()->line2byte() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6572 |
7 | 6573 lispindent({lnum}) *lispindent()* |
6574 Get the amount of indent for line {lnum} according the lisp | |
6575 indenting rules, as with 'lisp'. | |
6576 The indent is counted in spaces, the value of 'tabstop' is | |
6577 relevant. {lnum} is used just like in |getline()|. | |
6578 When {lnum} is invalid or Vim was not compiled the | |
6579 |+lispindent| feature, -1 is returned. | |
6580 | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6581 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6582 GetLnum()->lispindent() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6583 |
16235
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6584 list2str({list} [, {utf8}]) *list2str()* |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6585 Convert each number in {list} to a character string can |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6586 concatenate them all. Examples: > |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6587 list2str([32]) returns " " |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6588 list2str([65, 66, 67]) returns "ABC" |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6589 < The same can be done (slowly) with: > |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6590 join(map(list, {nr, val -> nr2char(val)}), '') |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6591 < |str2list()| does the opposite. |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6592 |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6593 When {utf8} is omitted or zero, the current 'encoding' is used. |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6594 With {utf8} is 1, always return utf-8 characters. |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6595 With utf-8 composing characters work as expected: > |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6596 list2str([97, 769]) returns "á" |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
6597 < |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6598 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6599 GetList()->list2str() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6600 |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6601 listener_add({callback} [, {buf}]) *listener_add()* |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6602 Add a callback function that will be invoked when changes have |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6603 been made to buffer {buf}. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6604 {buf} refers to a buffer name or number. For the accepted |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6605 values, see |bufname()|. When {buf} is omitted the current |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6606 buffer is used. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6607 Returns a unique ID that can be passed to |listener_remove()|. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6608 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
6609 The {callback} is invoked with five arguments: |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6610 a:bufnr the buffer that was changed |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6611 a:start first changed line number |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6612 a:end first line number below the change |
18456 | 6613 a:added number of lines added, negative if lines were |
6614 deleted | |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6615 a:changes a List of items with details about the changes |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6616 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6617 Example: > |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6618 func Listener(bufnr, start, end, added, changes) |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6619 echo 'lines ' .. a:start .. ' until ' .. a:end .. ' changed' |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6620 endfunc |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6621 call listener_add('Listener', bufnr) |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6622 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6623 < The List cannot be changed. Each item in a:changes is a |
16648
a7f06505ad39
patch 8.1.1326: no test for listener with partial
Bram Moolenaar <Bram@vim.org>
parents:
16638
diff
changeset
|
6624 dictionary with these entries: |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6625 lnum the first line number of the change |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6626 end the first line below the change |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6627 added number of lines added; negative if lines were |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6628 deleted |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6629 col first column in "lnum" that was affected by |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6630 the change; one if unknown or the whole line |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6631 was affected; this is a byte index, first |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6632 character has a value of one. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6633 When lines are inserted the values are: |
16808 | 6634 lnum line above which the new line is added |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6635 end equal to "lnum" |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6636 added number of lines inserted |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6637 col 1 |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6638 When lines are deleted the values are: |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6639 lnum the first deleted line |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6640 end the line below the first deleted line, before |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6641 the deletion was done |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6642 added negative, number of lines deleted |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6643 col 1 |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6644 When lines are changed: |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6645 lnum the first changed line |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6646 end the line below the last changed line |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6647 added 0 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6648 col first column with a change or 1 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6649 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6650 The entries are in the order the changes were made, thus the |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6651 most recent change is at the end. The line numbers are valid |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6652 when the callback is invoked, but later changes may make them |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6653 invalid, thus keeping a copy for later might not work. |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6654 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6655 The {callback} is invoked just before the screen is updated, |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6656 when |listener_flush()| is called or when a change is being |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6657 made that changes the line count in a way it causes a line |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6658 number in the list of changes to become invalid. |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6659 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6660 The {callback} is invoked with the text locked, see |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6661 |textlock|. If you do need to make changes to the buffer, use |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6662 a timer to do this later |timer_start()|. |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6663 |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6664 The {callback} is not invoked when the buffer is first loaded. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6665 Use the |BufReadPost| autocmd event to handle the initial text |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6666 of a buffer. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6667 The {callback} is also not invoked when the buffer is |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6668 unloaded, use the |BufUnload| autocmd event for that. |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6669 |
18343 | 6670 Can also be used as a |method|, the base is passed as the |
6671 second argument: > | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6672 GetBuffer()->listener_add(callback) |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6673 |
16660
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6674 listener_flush([{buf}]) *listener_flush()* |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6675 Invoke listener callbacks for buffer {buf}. If there are no |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6676 pending changes then no callbacks are invoked. |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6677 |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6678 {buf} refers to a buffer name or number. For the accepted |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6679 values, see |bufname()|. When {buf} is omitted the current |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6680 buffer is used. |
04c2614af21c
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Bram Moolenaar <Bram@vim.org>
parents:
16648
diff
changeset
|
6681 |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6682 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6683 GetBuffer()->listener_flush() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6684 |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6685 listener_remove({id}) *listener_remove()* |
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6686 Remove a listener previously added with listener_add(). |
17366
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
6687 Returns zero when {id} could not be found, one when {id} was |
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
6688 removed. |
16638
4790302965fc
patch 8.1.1321: no docs or tests for listener functions
Bram Moolenaar <Bram@vim.org>
parents:
16615
diff
changeset
|
6689 |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6690 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6691 GetListenerId()->listener_remove() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6692 |
7 | 6693 localtime() *localtime()* |
6694 Return the current time, measured as seconds since 1st Jan | |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
6695 1970. See also |strftime()|, |strptime()| and |getftime()|. |
7 | 6696 |
95 | 6697 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6698 log({expr}) *log()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
6699 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
|
6700 {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
|
6701 (0, inf]. |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6702 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6703 :echo log(10) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6704 < 2.302585 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6705 :echo log(exp(5)) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6706 < 5.0 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6707 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6708 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6709 Compute()->log() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6710 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
6711 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6712 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
6713 |
1621 | 6714 log10({expr}) *log10()* |
6715 Return the logarithm of Float {expr} to base 10 as a |Float|. | |
6716 {expr} must evaluate to a |Float| or a |Number|. | |
6717 Examples: > | |
6718 :echo log10(1000) | |
6719 < 3.0 > | |
6720 :echo log10(0.01) | |
6721 < -2.0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6722 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6723 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6724 Compute()->log10() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
6725 < |
1621 | 6726 {only available when compiled with the |+float| feature} |
12785 | 6727 |
6728 luaeval({expr} [, {expr}]) *luaeval()* | |
6729 Evaluate Lua expression {expr} and return its result converted | |
6730 to Vim data structures. Second {expr} may hold additional | |
3492 | 6731 argument accessible as _A inside first {expr}. |
6732 Strings are returned as they are. | |
6733 Boolean objects are converted to numbers. | |
12785 | 6734 Numbers are converted to |Float| values if vim was compiled |
3492 | 6735 with |+float| and to numbers otherwise. |
12785 | 6736 Dictionaries and lists obtained by vim.eval() are returned |
3492 | 6737 as-is. |
6738 Other objects are returned as zero without any errors. | |
6739 See |lua-luaeval| for more details. | |
17916
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6740 |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6741 Can also be used as a |method|: > |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6742 GetExpr()->luaeval() |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6743 |
2e53305f2239
patch 8.1.1954: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17914
diff
changeset
|
6744 < {only available when compiled with the |+lua| feature} |
3492 | 6745 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6746 map({expr1}, {expr2}) *map()* |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6747 {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
|
6748 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
|
6749 {expr2}. {expr2} must be a |string| or |Funcref|. |
12785 | 6750 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6751 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
|
6752 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
|
6753 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
|
6754 the current item. |
102 | 6755 Example: > |
6756 :call map(mylist, '"> " . v:val . " <"') | |
95 | 6757 < This puts "> " before and " <" after each item in "mylist". |
102 | 6758 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6759 Note that {expr2} is the result of an expression and is then |
102 | 6760 used as an expression again. Often it is good to use a |
158 | 6761 |literal-string| to avoid having to double backslashes. You |
6762 still have to double ' quotes | |
102 | 6763 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6764 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
|
6765 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
|
6766 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
|
6767 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
|
6768 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
|
6769 func KeyValue(key, val) |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6770 return a:key . '-' . a:val |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6771 endfunc |
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6772 call map(myDict, function('KeyValue')) |
10218
584c835a2de1
commit https://github.com/vim/vim/commit/50ba526fbf3e9e5e0e6b0b3086a4d5df581ebc7e
Christian Brabandt <cb@256bit.org>
parents:
10198
diff
changeset
|
6773 < 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
|
6774 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
|
6775 < 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
|
6776 call map(myDict, {key -> 'item: ' . key}) |
17667 | 6777 < If you do not use "key" you can use a short name: > |
6778 call map(myDict, {_, val -> 'item: ' . val}) | |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6779 < |
685 | 6780 The operation is done in-place. If you want a |List| or |
6781 |Dictionary| to remain unmodified make a copy first: > | |
3682 | 6782 :let tlist = map(copy(mylist), ' v:val . "\t"') |
102 | 6783 |
9416
cbf052ccb120
commit https://github.com/vim/vim/commit/b33c7eb5b813cb631b2b0ca5c4029e1788a09bde
Christian Brabandt <cb@256bit.org>
parents:
9407
diff
changeset
|
6784 < 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
|
6785 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
|
6786 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
|
6787 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
|
6788 defined with the "abort" flag. |
95 | 6789 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6790 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
6791 mylist->map(expr2) |
95 | 6792 |
12785 | 6793 maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()* |
2610 | 6794 When {dict} is omitted or zero: Return the rhs of mapping |
6795 {name} in mode {mode}. The returned String has special | |
6796 characters translated like in the output of the ":map" command | |
6797 listing. | |
12785 | 6798 |
2610 | 6799 When there is no mapping for {name}, an empty String is |
14006 | 6800 returned. When the mapping for {name} is empty, then "<Nop>" |
6801 is returned. | |
2610 | 6802 |
6803 The {name} can have special key names, like in the ":map" | |
6804 command. | |
6805 | |
644 | 6806 {mode} can be one of these strings: |
7 | 6807 "n" Normal |
2610 | 6808 "v" Visual (including Select) |
7 | 6809 "o" Operator-pending |
6810 "i" Insert | |
6811 "c" Cmd-line | |
2610 | 6812 "s" Select |
6813 "x" Visual | |
7 | 6814 "l" langmap |language-mapping| |
12499 | 6815 "t" Terminal-Job |
7 | 6816 "" Normal, Visual and Operator-pending |
644 | 6817 When {mode} is omitted, the modes for "" are used. |
2610 | 6818 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
6819 When {abbr} is there and it is |TRUE| use abbreviations |
782 | 6820 instead of mappings. |
2610 | 6821 |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
6822 When {dict} is there and it is |TRUE| return a dictionary |
2610 | 6823 containing all the information of the mapping with the |
6824 following items: | |
6825 "lhs" The {lhs} of the mapping. | |
6826 "rhs" The {rhs} of the mapping as typed. | |
6827 "silent" 1 for a |:map-silent| mapping, else 0. | |
2625 | 6828 "noremap" 1 if the {rhs} of the mapping is not remappable. |
19870
658248b68f7c
patch 8.2.0491: cannot recognize a <script> mapping using maparg()
Bram Moolenaar <Bram@vim.org>
parents:
19813
diff
changeset
|
6829 "script" 1 if mapping was defined with <script>. |
2610 | 6830 "expr" 1 for an expression mapping (|:map-<expr>|). |
6831 "buffer" 1 for a buffer local mapping (|:map-local|). | |
6832 "mode" Modes for which the mapping is defined. In | |
6833 addition to the modes mentioned above, these | |
6834 characters will be used: | |
6835 " " Normal, Visual and Operator-pending | |
6836 "!" Insert and Commandline mode | |
2642 | 6837 (|mapmode-ic|) |
2625 | 6838 "sid" The script local ID, used for <sid> mappings |
6839 (|<SID>|). | |
14700
0a3b9ecf7cb8
patch 8.1.0362: cannot get the script line number when executing a function
Christian Brabandt <cb@256bit.org>
parents:
14695
diff
changeset
|
6840 "lnum" The line number in "sid", zero if unknown. |
5555 | 6841 "nowait" Do not wait for other, longer mappings. |
6842 (|:map-<nowait>|). | |
2610 | 6843 |
7 | 6844 The mappings local to the current buffer are checked first, |
6845 then the global mappings. | |
626 | 6846 This function can be used to map a key even when it's already |
6847 mapped, and have it do the original mapping too. Sketch: > | |
6848 exe 'nnoremap <Tab> ==' . maparg('<Tab>', 'n') | |
6849 | |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6850 < Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6851 GetKey()->maparg('n') |
7 | 6852 |
12785 | 6853 mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()* |
7 | 6854 Check if there is a mapping that matches with {name} in mode |
6855 {mode}. See |maparg()| for {mode} and special names in | |
6856 {name}. | |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
6857 When {abbr} is there and it is |TRUE| use abbreviations |
782 | 6858 instead of mappings. |
7 | 6859 A match happens with a mapping that starts with {name} and |
6860 with a mapping which is equal to the start of {name}. | |
6861 | |
1621 | 6862 matches mapping "a" "ab" "abc" ~ |
7 | 6863 mapcheck("a") yes yes yes |
6864 mapcheck("abc") yes yes yes | |
6865 mapcheck("ax") yes no no | |
6866 mapcheck("b") no no no | |
6867 | |
6868 The difference with maparg() is that mapcheck() finds a | |
6869 mapping that matches with {name}, while maparg() only finds a | |
6870 mapping for {name} exactly. | |
6871 When there is no mapping that starts with {name}, an empty | |
14006 | 6872 String is returned. If there is one, the RHS of that mapping |
7 | 6873 is returned. If there are several mappings that start with |
14006 | 6874 {name}, the RHS of one of them is returned. This will be |
6875 "<Nop>" if the RHS is empty. | |
7 | 6876 The mappings local to the current buffer are checked first, |
6877 then the global mappings. | |
6878 This function can be used to check if a mapping can be added | |
6879 without being ambiguous. Example: > | |
6880 :if mapcheck("_vv") == "" | |
6881 : map _vv :set guifont=7x13<CR> | |
6882 :endif | |
6883 < This avoids adding the "_vv" mapping when there already is a | |
6884 mapping for "_v" or for "_vvv". | |
6885 | |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6886 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6887 GetKey()->mapcheck('n') |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6888 |
12785 | 6889 match({expr}, {pat} [, {start} [, {count}]]) *match()* |
685 | 6890 When {expr} is a |List| then this returns the index of the |
6891 first item where {pat} matches. Each item is used as a | |
692 | 6892 String, |Lists| and |Dictionaries| are used as echoed. |
14695 | 6893 |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
6894 Otherwise, {expr} is used as a String. The result is a |
95 | 6895 Number, which gives the index (byte offset) in {expr} where |
6896 {pat} matches. | |
14695 | 6897 |
685 | 6898 A match at the first character or |List| item returns zero. |
19 | 6899 If there is no match -1 is returned. |
14695 | 6900 |
2833 | 6901 For getting submatches see |matchlist()|. |
19 | 6902 Example: > |
95 | 6903 :echo match("testing", "ing") " results in 4 |
714 | 6904 :echo match([1, 'x'], '\a') " results in 1 |
95 | 6905 < See |string-match| for how {pat} is used. |
170 | 6906 *strpbrk()* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
6907 Vim doesn't have a strpbrk() function. But you can do: > |
170 | 6908 :let sepidx = match(line, '[.,;: \t]') |
6909 < *strcasestr()* | |
6910 Vim doesn't have a strcasestr() function. But you can add | |
6911 "\c" to the pattern to ignore case: > | |
6912 :let idx = match(haystack, '\cneedle') | |
6913 < | |
95 | 6914 If {start} is given, the search starts from byte index |
685 | 6915 {start} in a String or item {start} in a |List|. |
7 | 6916 The result, however, is still the index counted from the |
236 | 6917 first character/item. Example: > |
7 | 6918 :echo match("testing", "ing", 2) |
6919 < result is again "4". > | |
6920 :echo match("testing", "ing", 4) | |
6921 < result is again "4". > | |
6922 :echo match("testing", "t", 2) | |
6923 < result is "3". | |
694 | 6924 For a String, if {start} > 0 then it is like the string starts |
703 | 6925 {start} bytes later, thus "^" will match at {start}. Except |
6926 when {count} is given, then it's like matches before the | |
6927 {start} byte are ignored (this is a bit complicated to keep it | |
6928 backwards compatible). | |
95 | 6929 For a String, if {start} < 0, it will be set to 0. For a list |
6930 the index is counted from the end. | |
697 | 6931 If {start} is out of range ({start} > strlen({expr}) for a |
6932 String or {start} > len({expr}) for a |List|) -1 is returned. | |
95 | 6933 |
694 | 6934 When {count} is given use the {count}'th match. When a match |
697 | 6935 is found in a String the search for the next one starts one |
694 | 6936 character further. Thus this example results in 1: > |
6937 echo match("testing", "..", 0, 2) | |
6938 < In a |List| the search continues in the next item. | |
703 | 6939 Note that when {count} is added the way {start} works changes, |
6940 see above. | |
694 | 6941 |
7 | 6942 See |pattern| for the patterns that are accepted. |
6943 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
|
6944 the pattern. 'smartcase' is NOT used. The matching is always |
7 | 6945 done like 'magic' is set and 'cpoptions' is empty. |
19523 | 6946 Note that a match at the start is preferred, thus when the |
6947 pattern is using "*" (any number of matches) it tends to find | |
6948 zero matches at the start instead of a number of matches | |
6949 further down in the text. | |
7 | 6950 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6951 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6952 GetList()->match('word') |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
6953 < |
14407
631344964949
patch 8.1.0218: cannot add matches to another window
Christian Brabandt <cb@256bit.org>
parents:
14347
diff
changeset
|
6954 *matchadd()* *E798* *E799* *E801* *E957* |
12785 | 6955 matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]]) |
1326 | 6956 Defines a pattern to be highlighted in the current window (a |
6957 "match"). It will be highlighted with {group}. Returns an | |
6958 identification number (ID), which can be used to delete the | |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
6959 match using |matchdelete()|. The ID is bound to the window. |
5466 | 6960 Matching is case sensitive and magic, unless case sensitivity |
6961 or magicness are explicitly overridden in {pattern}. The | |
6962 'magic', 'smartcase' and 'ignorecase' options are not used. | |
6951
b2673982c625
Updated and new runtime files.
Bram Moolenaar <bram@vim.org>
parents:
6947
diff
changeset
|
6963 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
|
6964 concealed. |
1326 | 6965 |
6966 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
|
6967 match. A match with a high priority will have its |
1326 | 6968 highlighting overrule that of a match with a lower priority. |
6969 A priority is specified as an integer (negative numbers are no | |
6970 exception). If the {priority} argument is not specified, the | |
6971 default priority is 10. The priority of 'hlsearch' is zero, | |
6972 hence all matches with a priority greater than zero will | |
6973 overrule it. Syntax highlighting (see 'syntax') is a separate | |
6974 mechanism, and regardless of the chosen priority a match will | |
6975 always overrule syntax highlighting. | |
6976 | |
6977 The optional {id} argument allows the request for a specific | |
6978 match ID. If a specified ID is already taken, an error | |
6979 message will appear and the match will not be added. An ID | |
6980 is specified as a positive integer (zero excluded). IDs 1, 2 | |
6981 and 3 are reserved for |:match|, |:2match| and |:3match|, | |
6947 | 6982 respectively. If the {id} argument is not specified or -1, |
1326 | 6983 |matchadd()| automatically chooses a free ID. |
6984 | |
7659
07f11de5efca
commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents:
7653
diff
changeset
|
6985 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
|
6986 values. Currently this is used to specify a match specific |
6947 | 6987 conceal character that will be shown for |hl-Conceal| |
6988 highlighted matches. The dict can have the following members: | |
6989 | |
6990 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
|
6991 match (only for |hl-Conceal| highlighted |
6947 | 6992 matches, see |:syn-cchar|) |
14407
631344964949
patch 8.1.0218: cannot add matches to another window
Christian Brabandt <cb@256bit.org>
parents:
14347
diff
changeset
|
6993 window Instead of the current window use the |
631344964949
patch 8.1.0218: cannot add matches to another window
Christian Brabandt <cb@256bit.org>
parents:
14347
diff
changeset
|
6994 window with this number or window ID. |
6947 | 6995 |
1326 | 6996 The number of matches is not limited, as it is the case with |
6997 the |:match| commands. | |
6998 | |
6999 Example: > | |
7000 :highlight MyGroup ctermbg=green guibg=green | |
7001 :let m = matchadd("MyGroup", "TODO") | |
7002 < Deletion of the pattern: > | |
7003 :call matchdelete(m) | |
7004 | |
7005 < 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
|
7006 available from |getmatches()|. All matches can be deleted in |
1326 | 7007 one operation by |clearmatches()|. |
819 | 7008 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7009 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7010 GetGroup()->matchadd('TODO') |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7011 < |
9790
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
7012 *matchaddpos()* |
12785 | 7013 matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]]) |
5979 | 7014 Same as |matchadd()|, but requires a list of positions {pos} |
7015 instead of a pattern. This command is faster than |matchadd()| | |
7016 because it does not require to handle regular expressions and | |
7017 sets buffer line boundaries to redraw screen. It is supposed | |
7018 to be used when fast match additions and deletions are | |
7019 required, for example to highlight matching parentheses. | |
7020 | |
7021 The list {pos} can contain one of these items: | |
6007 | 7022 - A number. This whole line will be highlighted. The first |
5979 | 7023 line has number 1. |
7024 - A list with one number, e.g., [23]. The whole line with this | |
7025 number will be highlighted. | |
7026 - A list with two numbers, e.g., [23, 11]. The first number is | |
6007 | 7027 the line number, the second one is the column number (first |
7028 column is 1, the value must correspond to the byte index as | |
7029 |col()| would return). The character at this position will | |
7030 be highlighted. | |
5979 | 7031 - A list with three numbers, e.g., [23, 11, 3]. As above, but |
6007 | 7032 the third number gives the length of the highlight in bytes. |
12785 | 7033 |
5979 | 7034 The maximum number of positions is 8. |
7035 | |
7036 Example: > | |
7037 :highlight MyGroup ctermbg=green guibg=green | |
7038 :let m = matchaddpos("MyGroup", [[23, 24], 34]) | |
7039 < Deletion of the pattern: > | |
7040 :call matchdelete(m) | |
7041 | |
7042 < Matches added by |matchaddpos()| are returned by | |
7043 |getmatches()| with an entry "pos1", "pos2", etc., with the | |
7044 value a list like the {pos} item. | |
7045 | |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7046 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7047 GetGroup()->matchaddpos([23, 11]) |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7048 |
819 | 7049 matcharg({nr}) *matcharg()* |
856 | 7050 Selects the {nr} match item, as set with a |:match|, |
819 | 7051 |:2match| or |:3match| command. |
7052 Return a |List| with two elements: | |
7053 The name of the highlight group used | |
7054 The pattern used. | |
7055 When {nr} is not 1, 2 or 3 returns an empty |List|. | |
7056 When there is no match item set returns ['', '']. | |
1326 | 7057 This is useful to save and restore a |:match|. |
7058 Highlighting matches using the |:match| commands are limited | |
7059 to three matches. |matchadd()| does not have this limitation. | |
7060 | |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7061 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7062 GetMatch()->matcharg() |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7063 |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7064 matchdelete({id} [, {win}) *matchdelete()* *E802* *E803* |
1326 | 7065 Deletes a match with ID {id} previously defined by |matchadd()| |
1621 | 7066 or one of the |:match| commands. Returns 0 if successful, |
1326 | 7067 otherwise -1. See example for |matchadd()|. All matches can |
7068 be deleted in one operation by |clearmatches()|. | |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7069 If {win} is specified, use the window with this number or |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7070 window ID instead of the current window. |
819 | 7071 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7072 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7073 GetMatch()->matchdelete() |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7074 |
12785 | 7075 matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()* |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
7076 Same as |match()|, but return the index of first character |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
7077 after the match. Example: > |
7 | 7078 :echo matchend("testing", "ing") |
7079 < results in "7". | |
170 | 7080 *strspn()* *strcspn()* |
7081 Vim doesn't have a strspn() or strcspn() function, but you can | |
7082 do it with matchend(): > | |
7083 :let span = matchend(line, '[a-zA-Z]') | |
7084 :let span = matchend(line, '[^a-zA-Z]') | |
7085 < Except that -1 is returned when there are no matches. | |
7086 | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
7087 The {start}, if given, has the same meaning as for |match()|. > |
7 | 7088 :echo matchend("testing", "ing", 2) |
7089 < results in "7". > | |
7090 :echo matchend("testing", "ing", 5) | |
7091 < result is "-1". | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
7092 When {expr} is a |List| the result is equal to |match()|. |
7 | 7093 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7094 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7095 GetText()->matchend('word') |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7096 |
12785 | 7097 matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()* |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
7098 Same as |match()|, but return a |List|. The first item in the |
158 | 7099 list is the matched string, same as what matchstr() would |
7100 return. Following items are submatches, like "\1", "\2", etc. | |
842 | 7101 in |:substitute|. When an optional submatch didn't match an |
7102 empty string is used. Example: > | |
7103 echo matchlist('acd', '\(a\)\?\(b\)\?\(c\)\?\(.*\)') | |
7104 < Results in: ['acd', 'a', '', 'c', 'd', '', '', '', '', ''] | |
158 | 7105 When there is no match an empty list is returned. |
7106 | |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7107 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7108 GetList()->matchlist('word') |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7109 |
12785 | 7110 matchstr({expr}, {pat} [, {start} [, {count}]]) *matchstr()* |
1621 | 7111 Same as |match()|, but return the matched string. Example: > |
7 | 7112 :echo matchstr("testing", "ing") |
7113 < results in "ing". | |
7114 When there is no match "" is returned. | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
7115 The {start}, if given, has the same meaning as for |match()|. > |
7 | 7116 :echo matchstr("testing", "ing", 2) |
7117 < results in "ing". > | |
7118 :echo matchstr("testing", "ing", 5) | |
7119 < result is "". | |
685 | 7120 When {expr} is a |List| then the matching item is returned. |
95 | 7121 The type isn't changed, it's not necessarily a String. |
7 | 7122 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7123 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7124 GetText()->matchstr('word') |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7125 |
12785 | 7126 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
|
7127 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
|
7128 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
|
7129 :echo matchstrpos("testing", "ing") |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7130 < results in ["ing", 4, 7]. |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7131 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
|
7132 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
|
7133 :echo matchstrpos("testing", "ing", 2) |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7134 < results in ["ing", 4, 7]. > |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7135 :echo matchstrpos("testing", "ing", 5) |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7136 < result is ["", -1, -1]. |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7137 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
|
7138 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
|
7139 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
|
7140 :echo matchstrpos([1, '__x'], '\a') |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7141 < result is ["x", 1, 2, 3]. |
dda254280bab
commit https://github.com/vim/vim/commit/7fed5c18f8577b75404b80d8b9a9907b1bbd27e4
Christian Brabandt <cb@256bit.org>
parents:
8749
diff
changeset
|
7142 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
|
7143 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7144 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7145 GetText()->matchstrpos('word') |
18343 | 7146 < |
19657
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7147 |
87 | 7148 *max()* |
10734 | 7149 max({expr}) Return the maximum value of all items in {expr}. |
19099 | 7150 {expr} can be a List or a Dictionary. For a Dictionary, |
7151 it returns the maximum of all values in the Dictionary. | |
7152 If {expr} is neither a List nor a Dictionary, or one of the | |
10734 | 7153 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
|
7154 an error. An empty |List| or |Dictionary| results in zero. |
87 | 7155 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7156 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7157 mylist->max() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7158 |
19657
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7159 |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7160 menu_info({name} [, {mode}]) *menu_info()* |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7161 Return information about the specified menu {name} in |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7162 mode {mode}. The menu name should be specified without the |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7163 shortcut character ('&'). |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7164 |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7165 {mode} can be one of these strings: |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7166 "n" Normal |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7167 "v" Visual (including Select) |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7168 "o" Operator-pending |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7169 "i" Insert |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7170 "c" Cmd-line |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7171 "s" Select |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7172 "x" Visual |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7173 "t" Terminal-Job |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7174 "" Normal, Visual and Operator-pending |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7175 "!" Insert and Cmd-line |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7176 When {mode} is omitted, the modes for "" are used. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7177 |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7178 Returns a |Dictionary| containing the following items: |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7179 accel menu item accelerator text |menu-text| |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7180 display display name (name without '&') |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7181 enabled v:true if this menu item is enabled |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7182 Refer to |:menu-enable| |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7183 icon name of the icon file (for toolbar) |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7184 |toolbar-icon| |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7185 iconidx index of a built-in icon |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7186 modes modes for which the menu is defined. In |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7187 addition to the modes mentioned above, these |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7188 characters will be used: |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7189 " " Normal, Visual and Operator-pending |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7190 name menu item name. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7191 noremenu v:true if the {rhs} of the menu item is not |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7192 remappable else v:false. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7193 priority menu order priority |menu-priority| |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7194 rhs right-hand-side of the menu item. The returned |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7195 string has special characters translated like |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7196 in the output of the ":menu" command listing. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7197 When the {rhs} of a menu item is empty, then |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7198 "<Nop>" is returned. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7199 script v:true if script-local remapping of {rhs} is |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7200 allowed else v:false. See |:menu-script|. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7201 shortcut shortcut key (character after '&' in |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7202 the menu name) |menu-shortcut| |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7203 silent v:true if the menu item is created |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7204 with <silent> argument |:menu-silent| |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7205 submenus |List| containing the names of |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7206 all the submenus. Present only if the menu |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7207 item has submenus. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7208 |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7209 Returns an empty dictionary if the menu item is not found. |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7210 |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7211 Examples: > |
19721 | 7212 :echo menu_info('Edit.Cut') |
7213 :echo menu_info('File.Save', 'n') | |
7214 < | |
7215 Can also be used as a |method|: > | |
7216 GetMenuName()->menu_info('v') | |
19657
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7217 |
da791e5c0139
patch 8.2.0385: menu functionality insufficiently tested
Bram Moolenaar <Bram@vim.org>
parents:
19646
diff
changeset
|
7218 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7219 < *min()* |
10734 | 7220 min({expr}) Return the minimum value of all items in {expr}. |
19099 | 7221 {expr} can be a List or a Dictionary. For a Dictionary, |
7222 it returns the minimum of all values in the Dictionary. | |
7223 If {expr} is neither a List nor a Dictionary, or one of the | |
10734 | 7224 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
|
7225 an error. An empty |List| or |Dictionary| results in zero. |
87 | 7226 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7227 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7228 mylist->min() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7229 |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
7230 < *mkdir()* *E739* |
168 | 7231 mkdir({name} [, {path} [, {prot}]]) |
7232 Create directory {name}. | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7233 |
168 | 7234 If {path} is "p" then intermediate directories are created as |
7235 necessary. Otherwise it must be "". | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7236 |
168 | 7237 If {prot} is given it is used to set the protection bits of |
7238 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
|
7239 the user readable for others). Use 0700 to make it unreadable |
1702 | 7240 for others. This is only used for the last part of {name}. |
7241 Thus if you create /tmp/foo/bar then /tmp/foo will be created | |
7242 with 0755. | |
7243 Example: > | |
7244 :call mkdir($HOME . "/tmp/foo/bar", "p", 0700) | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7245 |
1702 | 7246 < This function is not available in the |sandbox|. |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7247 |
13672
4a1efd1a6018
patch 8.0.1708: mkdir with 'p' flag fails on existing directory
Christian Brabandt <cb@256bit.org>
parents:
13626
diff
changeset
|
7248 There is no error if the directory already exists and the "p" |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7249 flag is passed (since patch 8.0.1708). However, without the |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
7250 "p" option the call will fail. |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
7251 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
7252 The function result is a Number, which is 1 if the call was |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7253 successful or 0 if the directory creation failed or partly |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7254 failed. |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
7255 |
168 | 7256 Not available on all systems. To check use: > |
7257 :if exists("*mkdir") | |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7258 |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7259 < Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7260 GetName()->mkdir() |
168 | 7261 < |
7 | 7262 *mode()* |
1621 | 7263 mode([expr]) Return a string that indicates the current mode. |
1661 | 7264 If [expr] is supplied and it evaluates to a non-zero Number or |
7265 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
|
7266 returned, otherwise only the first letter is returned. |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
7267 Also see |state()|. |
1621 | 7268 |
14422
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7269 n Normal, Terminal-Normal |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7270 no Operator-pending |
15279
54457fc4af0b
patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents:
15271
diff
changeset
|
7271 nov Operator-pending (forced characterwise |o_v|) |
54457fc4af0b
patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents:
15271
diff
changeset
|
7272 noV Operator-pending (forced linewise |o_V|) |
54457fc4af0b
patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents:
15271
diff
changeset
|
7273 noCTRL-V Operator-pending (forced blockwise |o_CTRL-V|); |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
7274 CTRL-V is one character |
14422
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7275 niI Normal using |i_CTRL-O| in |Insert-mode| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7276 niR Normal using |i_CTRL-O| in |Replace-mode| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7277 niV Normal using |i_CTRL-O| in |Virtual-Replace-mode| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7278 v Visual by character |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7279 V Visual by line |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7280 CTRL-V Visual blockwise |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7281 s Select by character |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7282 S Select by line |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7283 CTRL-S Select blockwise |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7284 i Insert |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7285 ic Insert mode completion |compl-generic| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7286 ix Insert mode |i_CTRL-X| completion |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7287 R Replace |R| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7288 Rc Replace mode completion |compl-generic| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7289 Rv Virtual Replace |gR| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7290 Rx Replace mode |i_CTRL-X| completion |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7291 c Command-line editing |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7292 cv Vim Ex mode |gQ| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7293 ce Normal Ex mode |Q| |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7294 r Hit-enter prompt |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7295 rm The -- more -- prompt |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7296 r? A |:confirm| query of some sort |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7297 ! Shell or external command is executing |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7298 t Terminal-Job mode: keys go to the job |
1621 | 7299 This is useful in the 'statusline' option or when used |
7300 with |remote_expr()| In most other places it always returns | |
7301 "c" or "n". | |
14422
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7302 Note that in the future more modes and more specific modes may |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7303 be added. It's better not to compare the whole string but only |
06316dbd66bc
patch 8.1.0225: mode() does not indicate using CTRL-O from Insert mode
Christian Brabandt <cb@256bit.org>
parents:
14421
diff
changeset
|
7304 the leading character(s). |
1621 | 7305 Also see |visualmode()|. |
7 | 7306 |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7307 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7308 DoFull()->mode() |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7309 |
2050
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7310 mzeval({expr}) *mzeval()* |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7311 Evaluate MzScheme expression {expr} and return its result |
3492 | 7312 converted to Vim data structures. |
2050
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7313 Numbers and strings are returned as they are. |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7314 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
|
7315 returned as Vim |Lists|. |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7316 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
|
7317 converted to strings. |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7318 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
|
7319 Examples: > |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7320 :mz (define l (list 1 2 3)) |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7321 :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
|
7322 :echo mzeval("l") |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7323 :echo mzeval("h") |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7324 < |
17930
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7325 Can also be used as a |method|: > |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7326 GetExpr()->mzeval() |
0cdb6ac20748
patch 8.1.1961: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17916
diff
changeset
|
7327 < |
2050
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7328 {only available when compiled with the |+mzscheme| feature} |
afcf9db31561
updated for version 7.2.336
Bram Moolenaar <bram@zimbu.org>
parents:
2033
diff
changeset
|
7329 |
7 | 7330 nextnonblank({lnum}) *nextnonblank()* |
7331 Return the line number of the first line at or below {lnum} | |
7332 that is not blank. Example: > | |
7333 if getline(nextnonblank(1)) =~ "Java" | |
7334 < When {lnum} is invalid or there is no non-blank line at or | |
7335 below it, zero is returned. | |
7336 See also |prevnonblank()|. | |
7337 | |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7338 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7339 GetLnum()->nextnonblank() |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7340 |
12785 | 7341 nr2char({expr} [, {utf8}]) *nr2char()* |
7 | 7342 Return a string with a single character, which has the number |
7343 value {expr}. Examples: > | |
7344 nr2char(64) returns "@" | |
7345 nr2char(32) returns " " | |
4051 | 7346 < When {utf8} is omitted or zero, the current 'encoding' is used. |
7347 Example for "utf-8": > | |
7 | 7348 nr2char(300) returns I with bow character |
4051 | 7349 < With {utf8} set to 1, always return utf-8 characters. |
7350 Note that a NUL character in the file is specified with | |
7 | 7351 nr2char(10), because NULs are represented with newline |
7352 characters. nr2char(0) is a real NUL and terminates the | |
119 | 7353 string, thus results in an empty string. |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7354 To turn a list of character numbers into a string: > |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7355 let list = [65, 66, 67] |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7356 let str = join(map(list, {_, val -> nr2char(val)}), '') |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
7357 < Result: "ABC" |
7 | 7358 |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7359 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7360 GetNumber()->nr2char() |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
7361 |
3214 | 7362 or({expr}, {expr}) *or()* |
7363 Bitwise OR on the two arguments. The arguments are converted | |
7364 to a number. A List, Dict or Float argument causes an error. | |
7365 Example: > | |
7366 :let bits = or(bits, 0x80) | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
7367 < Can also be used as a |method|: > |
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
7368 :let bits = bits->or(0x80) |
3214 | 7369 |
7370 | |
819 | 7371 pathshorten({expr}) *pathshorten()* |
7372 Shorten directory names in the path {expr} and return the | |
7373 result. The tail, the file name, is kept as-is. The other | |
7374 components in the path are reduced to single letters. Leading | |
7375 '~' and '.' characters are kept. Example: > | |
7376 :echo pathshorten('~/.vim/autoload/myfile.vim') | |
7377 < ~/.v/a/myfile.vim ~ | |
7378 It doesn't matter if the path exists or not. | |
7379 | |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7380 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7381 GetDirectories()->pathshorten() |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7382 |
7651
c7575b07de98
commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents:
7629
diff
changeset
|
7383 perleval({expr}) *perleval()* |
c7575b07de98
commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents:
7629
diff
changeset
|
7384 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
|
7385 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
|
7386 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
|
7387 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
|
7388 reference to it. |
7651
c7575b07de98
commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents:
7629
diff
changeset
|
7389 Example: > |
c7575b07de98
commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents:
7629
diff
changeset
|
7390 :echo perleval('[1 .. 4]') |
c7575b07de98
commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents:
7629
diff
changeset
|
7391 < [1, 2, 3, 4] |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7392 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7393 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7394 GetExpr()->perleval() |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7395 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7396 < {only available when compiled with the |+perl| feature} |
7651
c7575b07de98
commit https://github.com/vim/vim/commit/e9b892ebcd8596bf813793a1eed5a460a9495a28
Christian Brabandt <cb@256bit.org>
parents:
7629
diff
changeset
|
7397 |
17257
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
7398 |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
7399 popup_ functions are documented here: |popup-functions|. |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
7400 |
cb0ca75f0c26
patch 8.1.1628: popup window functions not in list of functions
Bram Moolenaar <Bram@vim.org>
parents:
17253
diff
changeset
|
7401 |
1621 | 7402 pow({x}, {y}) *pow()* |
7403 Return the power of {x} to the exponent {y} as a |Float|. | |
7404 {x} and {y} must evaluate to a |Float| or a |Number|. | |
7405 Examples: > | |
7406 :echo pow(3, 3) | |
7407 < 27.0 > | |
7408 :echo pow(2, 16) | |
7409 < 65536.0 > | |
7410 :echo pow(32, 0.20) | |
7411 < 2.0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
7412 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
7413 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
7414 Compute()->pow(3) |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
7415 < |
1621 | 7416 {only available when compiled with the |+float| feature} |
12785 | 7417 |
667 | 7418 prevnonblank({lnum}) *prevnonblank()* |
7419 Return the line number of the first line at or above {lnum} | |
7420 that is not blank. Example: > | |
7421 let ind = indent(prevnonblank(v:lnum - 1)) | |
7422 < When {lnum} is invalid or there is no non-blank line at or | |
7423 above it, zero is returned. | |
7424 Also see |nextnonblank()|. | |
7425 | |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7426 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7427 GetLnum()->prevnonblank() |
667 | 7428 |
449 | 7429 printf({fmt}, {expr1} ...) *printf()* |
7430 Return a String with {fmt}, where "%" items are replaced by | |
7431 the formatted form of their respective arguments. Example: > | |
452 | 7432 printf("%4d: E%d %.30s", lnum, errno, msg) |
449 | 7433 < May result in: |
452 | 7434 " 99: E42 asdfasdfasdfasdfasdfasdfasdfas" ~ |
449 | 7435 |
17676
14ac8c31e598
patch 8.1.1835: cannot use printf() as a method
Bram Moolenaar <Bram@vim.org>
parents:
17674
diff
changeset
|
7436 When used as a |method| the base is passed as the second |
14ac8c31e598
patch 8.1.1835: cannot use printf() as a method
Bram Moolenaar <Bram@vim.org>
parents:
17674
diff
changeset
|
7437 argument: > |
14ac8c31e598
patch 8.1.1835: cannot use printf() as a method
Bram Moolenaar <Bram@vim.org>
parents:
17674
diff
changeset
|
7438 Compute()->printf("result: %d") |
14ac8c31e598
patch 8.1.1835: cannot use printf() as a method
Bram Moolenaar <Bram@vim.org>
parents:
17674
diff
changeset
|
7439 |
14ac8c31e598
patch 8.1.1835: cannot use printf() as a method
Bram Moolenaar <Bram@vim.org>
parents:
17674
diff
changeset
|
7440 < Often used items are: |
856 | 7441 %s string |
3914 | 7442 %6S string right-aligned in 6 display cells |
653 | 7443 %6s string right-aligned in 6 bytes |
1621 | 7444 %.9s string truncated to 9 bytes |
7445 %c single byte | |
7446 %d decimal number | |
7447 %5d decimal number padded with spaces to 5 characters | |
7448 %x hex number | |
7449 %04x hex number padded with zeros to at least 4 characters | |
7450 %X hex number using upper case letters | |
7451 %o octal number | |
9894
b01afb4e8f66
commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents:
9887
diff
changeset
|
7452 %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
|
7453 %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
|
7454 %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
|
7455 %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
|
7456 %E floating point number as 1.23E3, INF, -INF or NAN |
1621 | 7457 %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
|
7458 %G floating point number, as %F or %E depending on value |
1621 | 7459 %% the % character itself |
449 | 7460 |
7461 Conversion specifications start with '%' and end with the | |
7462 conversion type. All other characters are copied unchanged to | |
7463 the result. | |
7464 | |
7465 The "%" starts a conversion specification. The following | |
452 | 7466 arguments appear in sequence: |
7467 | |
7468 % [flags] [field-width] [.precision] type | |
7469 | |
856 | 7470 flags |
452 | 7471 Zero or more of the following flags: |
7472 | |
449 | 7473 # The value should be converted to an "alternate |
7474 form". For c, d, and s conversions, this option | |
7475 has no effect. For o conversions, the precision | |
7476 of the number is increased to force the first | |
7477 character of the output string to a zero (except | |
7478 if a zero value is printed with an explicit | |
7479 precision of zero). | |
9894
b01afb4e8f66
commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents:
9887
diff
changeset
|
7480 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
|
7481 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
|
7482 prepended to it. |
449 | 7483 For x and X conversions, a non-zero result has |
7484 the string "0x" (or "0X" for X conversions) | |
7485 prepended to it. | |
452 | 7486 |
449 | 7487 0 (zero) Zero padding. For all conversions the converted |
7488 value is padded on the left with zeros rather | |
7489 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
|
7490 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
|
7491 flag is ignored. |
452 | 7492 |
449 | 7493 - A negative field width flag; the converted value |
7494 is to be left adjusted on the field boundary. | |
7495 The converted value is padded on the right with | |
7496 blanks, rather than on the left with blanks or | |
7497 zeros. A - overrides a 0 if both are given. | |
452 | 7498 |
449 | 7499 ' ' (space) A blank should be left before a positive |
7500 number produced by a signed conversion (d). | |
452 | 7501 |
449 | 7502 + 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
|
7503 produced by a signed conversion. A + overrides |
449 | 7504 a space if both are used. |
452 | 7505 |
7506 field-width | |
7507 An optional decimal digit string specifying a minimum | |
653 | 7508 field width. If the converted value has fewer bytes |
7509 than the field width, it will be padded with spaces on | |
7510 the left (or right, if the left-adjustment flag has | |
7511 been given) to fill out the field width. | |
452 | 7512 |
7513 .precision | |
7514 An optional precision, in the form of a period '.' | |
7515 followed by an optional digit string. If the digit | |
7516 string is omitted, the precision is taken as zero. | |
7517 This gives the minimum number of digits to appear for | |
7518 d, o, x, and X conversions, or the maximum number of | |
653 | 7519 bytes to be printed from a string for s conversions. |
1621 | 7520 For floating point it is the number of digits after |
7521 the decimal point. | |
452 | 7522 |
7523 type | |
7524 A character that specifies the type of conversion to | |
7525 be applied, see below. | |
7526 | |
449 | 7527 A field width or precision, or both, may be indicated by an |
7528 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
|
7529 Number argument supplies the field width or precision. A |
449 | 7530 negative field width is treated as a left adjustment flag |
7531 followed by a positive field width; a negative precision is | |
7532 treated as though it were missing. Example: > | |
452 | 7533 :echo printf("%d: %.*s", nr, width, line) |
449 | 7534 < This limits the length of the text used from "line" to |
452 | 7535 "width" bytes. |
449 | 7536 |
856 | 7537 The conversion specifiers and their meanings are: |
452 | 7538 |
9894
b01afb4e8f66
commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents:
9887
diff
changeset
|
7539 *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
|
7540 *printf-x* *printf-X* |
b01afb4e8f66
commit https://github.com/vim/vim/commit/91984b9034d3b698459622be277d963e0c6df60e
Christian Brabandt <cb@256bit.org>
parents:
9887
diff
changeset
|
7541 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
|
7542 (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
|
7543 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
|
7544 "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
|
7545 "ABCDEF" are used for X conversions. |
452 | 7546 The precision, if any, gives the minimum number of |
7547 digits that must appear; if the converted value | |
7548 requires fewer digits, it is padded on the left with | |
7549 zeros. | |
7550 In no case does a non-existent or small field width | |
7551 cause truncation of a numeric field; if the result of | |
7552 a conversion is wider than the field width, the field | |
7553 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
|
7554 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
|
7555 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
|
7556 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
|
7557 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
|
7558 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
|
7559 |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
7560 i alias for d |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
7561 D alias for ld |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
7562 U alias for lu |
233289599874
commit https://github.com/vim/vim/commit/3056735ae8a366aa7fcb51872520895251858637
Christian Brabandt <cb@256bit.org>
parents:
9975
diff
changeset
|
7563 O alias for lo |
452 | 7564 |
1621 | 7565 *printf-c* |
452 | 7566 c The Number argument is converted to a byte, and the |
7567 resulting character is written. | |
7568 | |
1621 | 7569 *printf-s* |
452 | 7570 s The text of the String argument is used. If a |
7571 precision is specified, no more bytes than the number | |
7572 specified are used. | |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
7573 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
|
7574 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
|
7575 as ":echo". |
6583 | 7576 *printf-S* |
3914 | 7577 S The text of the String argument is used. If a |
7578 precision is specified, no more display cells than the | |
15878 | 7579 number specified are used. |
452 | 7580 |
1621 | 7581 *printf-f* *E807* |
12785 | 7582 f F The Float argument is converted into a string of the |
1621 | 7583 form 123.456. The precision specifies the number of |
7584 digits after the decimal point. When the precision is | |
7585 zero the decimal point is omitted. When the precision | |
7586 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
|
7587 (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
|
7588 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
|
7589 "0.0 / 0.0" results in "nan" with %f (NAN with %F). |
1621 | 7590 Example: > |
7591 echo printf("%.2f", 12.115) | |
7592 < 12.12 | |
7593 Note that roundoff depends on the system libraries. | |
7594 Use |round()| when in doubt. | |
7595 | |
7596 *printf-e* *printf-E* | |
7597 e E The Float argument is converted into a string of the | |
7598 form 1.234e+03 or 1.234E+03 when using 'E'. The | |
7599 precision specifies the number of digits after the | |
7600 decimal point, like with 'f'. | |
7601 | |
7602 *printf-g* *printf-G* | |
7603 g G The Float argument is converted like with 'f' if the | |
7604 value is between 0.001 (inclusive) and 10000000.0 | |
7605 (exclusive). Otherwise 'e' is used for 'g' and 'E' | |
7606 for 'G'. When no precision is specified superfluous | |
7607 zeroes and '+' signs are removed, except for the zero | |
7608 immediately after the decimal point. Thus 10000000.0 | |
7609 results in 1.0e7. | |
7610 | |
7611 *printf-%* | |
449 | 7612 % A '%' is written. No argument is converted. The |
7613 complete conversion specification is "%%". | |
452 | 7614 |
1668 | 7615 When a Number argument is expected a String argument is also |
7616 accepted and automatically converted. | |
7617 When a Float or String argument is expected a Number argument | |
7618 is also accepted and automatically converted. | |
7619 Any other argument type results in an error message. | |
449 | 7620 |
459 | 7621 *E766* *E767* |
449 | 7622 The number of {exprN} arguments must exactly match the number |
7623 of "%" items. If there are not sufficient or too many | |
452 | 7624 arguments an error is given. Up to 18 arguments can be used. |
449 | 7625 |
7626 | |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7627 prompt_setcallback({buf}, {expr}) *prompt_setcallback()* |
14103
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7628 Set prompt callback for buffer {buf} to {expr}. When {expr} |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7629 is an empty string the callback is removed. This has only |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7630 effect if {buf} has 'buftype' set to "prompt". |
14103
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7631 |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7632 The callback is invoked when pressing Enter. The current |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7633 buffer will always be the prompt buffer. A new line for a |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7634 prompt is added before invoking the callback, thus the prompt |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7635 for which the callback was invoked will be in the last but one |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7636 line. |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7637 If the callback wants to add text to the buffer, it must |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7638 insert it above the last line, since that is where the current |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7639 prompt is. This can also be done asynchronously. |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7640 The callback is invoked with one argument, which is the text |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7641 that was entered at the prompt. This can be an empty string |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7642 if the user only typed Enter. |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7643 Example: > |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
7644 call prompt_setcallback(bufnr(), function('s:TextEntered')) |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7645 func s:TextEntered(text) |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7646 if a:text == 'exit' || a:text == 'quit' |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7647 stopinsert |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7648 close |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7649 else |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7650 call append(line('$') - 1, 'Entered: "' . a:text . '"') |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7651 " Reset 'modified' to allow the buffer to be closed. |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7652 set nomodified |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7653 endif |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7654 endfunc |
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7655 |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7656 < Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7657 GetBuffer()->prompt_setcallback(callback) |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7658 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7659 |
14103
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7660 prompt_setinterrupt({buf}, {expr}) *prompt_setinterrupt()* |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7661 Set a callback for buffer {buf} to {expr}. When {expr} is an |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7662 empty string the callback is removed. This has only effect if |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7663 {buf} has 'buftype' set to "prompt". |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7664 |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7665 This callback will be invoked when pressing CTRL-C in Insert |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7666 mode. Without setting a callback Vim will exit Insert mode, |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7667 as in any buffer. |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7668 |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7669 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7670 GetBuffer()->prompt_setinterrupt(callback) |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7671 |
14103
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7672 prompt_setprompt({buf}, {text}) *prompt_setprompt()* |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7673 Set prompt for buffer {buf} to {text}. You most likely want |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7674 {text} to end in a space. |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7675 The result is only visible if {buf} has 'buftype' set to |
d053ec57d886
patch 8.1.0069: cannot handle pressing CTRL-C in a prompt buffer
Christian Brabandt <cb@256bit.org>
parents:
14043
diff
changeset
|
7676 "prompt". Example: > |
17855
285f7a700185
patch 8.1.1924: using empty string for current buffer is unexpected
Bram Moolenaar <Bram@vim.org>
parents:
17849
diff
changeset
|
7677 call prompt_setprompt(bufnr(), 'command: ') |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
7678 < |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7679 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7680 GetBuffer()->prompt_setprompt('command: ') |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7681 |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
7682 prop_ functions are documented here: |text-prop-functions|. |
14019
dc67449d648c
patch 8.1.0027: difficult to make a plugin that feeds a line to a job
Christian Brabandt <cb@256bit.org>
parents:
14006
diff
changeset
|
7683 |
17756
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7684 pum_getpos() *pum_getpos()* |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7685 If the popup menu (see |ins-completion-menu|) is not visible, |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7686 returns an empty |Dictionary|, otherwise, returns a |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7687 |Dictionary| with the following keys: |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7688 height nr of items visible |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7689 width screen cells |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7690 row top screen row (0 first row) |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7691 col leftmost screen column (0 first col) |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7692 size total nr of items |
18456 | 7693 scrollbar |TRUE| if scrollbar is visible |
17756
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7694 |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7695 The values are the same as in |v:event| during |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7696 |CompleteChanged|. |
a7afcea6f40a
patch 8.1.1875: cannot get size and position of the popup menu
Bram Moolenaar <Bram@vim.org>
parents:
17680
diff
changeset
|
7697 |
667 | 7698 pumvisible() *pumvisible()* |
7699 Returns non-zero when the popup menu is visible, zero | |
7700 otherwise. See |ins-completion-menu|. | |
712 | 7701 This can be used to avoid some things that would remove the |
7702 popup menu. | |
7 | 7703 |
3682 | 7704 py3eval({expr}) *py3eval()* |
7705 Evaluate Python expression {expr} and return its result | |
7706 converted to Vim data structures. | |
12785 | 7707 Numbers and strings are returned as they are (strings are |
7708 copied though, Unicode strings are additionally converted to | |
3682 | 7709 'encoding'). |
7710 Lists are represented as Vim |List| type. | |
12785 | 7711 Dictionaries are represented as Vim |Dictionary| type with |
3682 | 7712 keys converted to strings. |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7713 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7714 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7715 GetExpr()->py3eval() |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7716 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7717 < {only available when compiled with the |+python3| feature} |
3682 | 7718 |
7719 *E858* *E859* | |
7720 pyeval({expr}) *pyeval()* | |
7721 Evaluate Python expression {expr} and return its result | |
7722 converted to Vim data structures. | |
12785 | 7723 Numbers and strings are returned as they are (strings are |
3682 | 7724 copied though). |
7725 Lists are represented as Vim |List| type. | |
12785 | 7726 Dictionaries are represented as Vim |Dictionary| type, |
3830 | 7727 non-string keys result in error. |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7728 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7729 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7730 GetExpr()->pyeval() |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7731 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7732 < {only available when compiled with the |+python| feature} |
3682 | 7733 |
10722
7598ce51bf2a
patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents:
10617
diff
changeset
|
7734 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
|
7735 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
|
7736 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
|
7737 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
|
7738 See also: |pyeval()|, |py3eval()| |
17976
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7739 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7740 Can also be used as a |method|: > |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7741 GetExpr()->pyxeval() |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7742 |
6d11a0d5751d
patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17930
diff
changeset
|
7743 < {only available when compiled with the |+python| or the |
10722
7598ce51bf2a
patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents:
10617
diff
changeset
|
7744 |+python3| feature} |
7598ce51bf2a
patch 8.0.0251: not easy to select Python 2 or 3
Christian Brabandt <cb@256bit.org>
parents:
10617
diff
changeset
|
7745 |
114 | 7746 *E726* *E727* |
99 | 7747 range({expr} [, {max} [, {stride}]]) *range()* |
685 | 7748 Returns a |List| with Numbers: |
99 | 7749 - If only {expr} is specified: [0, 1, ..., {expr} - 1] |
7750 - If {max} is specified: [{expr}, {expr} + 1, ..., {max}] | |
7751 - If {stride} is specified: [{expr}, {expr} + {stride}, ..., | |
7752 {max}] (increasing {expr} with {stride} each time, not | |
7753 producing a value past {max}). | |
336 | 7754 When the maximum is one before the start the result is an |
7755 empty list. When the maximum is more than one before the | |
7756 start this is an error. | |
99 | 7757 Examples: > |
856 | 7758 range(4) " [0, 1, 2, 3] |
99 | 7759 range(2, 4) " [2, 3, 4] |
7760 range(2, 9, 3) " [2, 5, 8] | |
856 | 7761 range(2, -2, -1) " [2, 1, 0, -1, -2] |
336 | 7762 range(0) " [] |
7763 range(2, 0) " error! | |
99 | 7764 < |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7765 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7766 GetExpr()->range() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7767 < |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7768 |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7769 rand([{expr}]) *rand()* |
18732
2513e666aa82
patch 8.1.2356: rand() does not use the best algorithm
Bram Moolenaar <Bram@vim.org>
parents:
18719
diff
changeset
|
7770 Return a pseudo-random Number generated with an xoshiro128** |
18719 | 7771 algorithm using seed {expr}. The returned number is 32 bits, |
7772 also on 64 bits systems, for consistency. | |
7773 {expr} can be initialized by |srand()| and will be updated by | |
7774 rand(). If {expr} is omitted, an internal seed value is used | |
7775 and updated. | |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7776 |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7777 Examples: > |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7778 :echo rand() |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7779 :let seed = srand() |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7780 :echo rand(seed) |
18719 | 7781 :echo rand(seed) % 16 " random number 0 - 15 |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
7782 < |
16231
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7783 *readdir()* |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7784 readdir({directory} [, {expr}]) |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7785 Return a list with file and directory names in {directory}. |
16267 | 7786 You can also use |glob()| if you don't need to do complicated |
7787 things, such as limiting the number of matches. | |
16231
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7788 |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7789 When {expr} is omitted all entries are included. |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7790 When {expr} is given, it is evaluated to check what to do: |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7791 If {expr} results in -1 then no further entries will |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7792 be handled. |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7793 If {expr} results in 0 then this entry will not be |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7794 added to the list. |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7795 If {expr} results in 1 then this entry will be added |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7796 to the list. |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7797 Each time {expr} is evaluated |v:val| is set to the entry name. |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7798 When {expr} is a function the name is passed as the argument. |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7799 For example, to get a list of files ending in ".txt": > |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7800 readdir(dirname, {n -> n =~ '.txt$'}) |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7801 < To skip hidden and backup files: > |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7802 readdir(dirname, {n -> n !~ '^\.\|\~$'}) |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7803 |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7804 < If you want to get a directory tree: > |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7805 function! s:tree(dir) |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7806 return {a:dir : map(readdir(a:dir), |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7807 \ {_, x -> isdirectory(x) ? |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7808 \ {x : s:tree(a:dir . '/' . x)} : x})} |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7809 endfunction |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7810 echo s:tree(".") |
0761a4c111a7
patch 8.1.1120: cannot easily get directory entry matches
Bram Moolenaar <Bram@vim.org>
parents:
16223
diff
changeset
|
7811 < |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7812 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7813 GetDirName()->readdir() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7814 < |
158 | 7815 *readfile()* |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
7816 readfile({fname} [, {type} [, {max}]]) |
685 | 7817 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
|
7818 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
|
7819 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
|
7820 (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
|
7821 All NUL characters are replaced with a NL character. |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
7822 When {type} contains "b" binary mode is used: |
158 | 7823 - When the last line ends in a NL an extra empty list item is |
7824 added. | |
7825 - No CR characters are removed. | |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
7826 When {type} contains "B" a |Blob| is returned with the binary |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
7827 data of the file unmodified. |
158 | 7828 Otherwise: |
7829 - CR characters that appear before a NL are removed. | |
7830 - 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
|
7831 - 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
|
7832 removed from the text. |
168 | 7833 When {max} is given this specifies the maximum number of lines |
7834 to be read. Useful if you only want to check the first ten | |
7835 lines of a file: > | |
7836 :for line in readfile(fname, '', 10) | |
7837 : if line =~ 'Date' | echo line | endif | |
7838 :endfor | |
233 | 7839 < When {max} is negative -{max} lines from the end of the file |
7840 are returned, or as many as there are. | |
7841 When {max} is zero the result is an empty list. | |
168 | 7842 Note that without {max} the whole file is read into memory. |
7843 Also note that there is no recognition of encoding. Read a | |
7844 file into a buffer if you need to. | |
158 | 7845 When the file can't be opened an error message is given and |
7846 the result is an empty list. | |
7847 Also see |writefile()|. | |
7848 | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7849 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7850 GetFileName()->readfile() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7851 |
14004
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7852 reg_executing() *reg_executing()* |
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7853 Returns the single letter name of the register being executed. |
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7854 Returns an empty string when no register is being executed. |
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7855 See |@|. |
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7856 |
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7857 reg_recording() *reg_recording()* |
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7858 Returns the single letter name of the register being recorded. |
16267 | 7859 Returns an empty string when not recording. See |q|. |
14004
e124262d435e
patch 8.1.0020: cannot tell whether a register is executing or recording
Christian Brabandt <cb@256bit.org>
parents:
13967
diff
changeset
|
7860 |
794 | 7861 reltime([{start} [, {end}]]) *reltime()* |
7862 Return an item that represents a time value. The format of | |
7863 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
|
7864 |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
|
7865 to convert to a Float. |
794 | 7866 Without an argument it returns the current time. |
7867 With one argument is returns the time passed since the time | |
7868 specified in the argument. | |
843 | 7869 With two arguments it returns the time passed between {start} |
794 | 7870 and {end}. |
7871 The {start} and {end} arguments must be values returned by | |
7872 reltime(). | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7873 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7874 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7875 GetStart()->reltime() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7876 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
7877 {only available when compiled with the |+reltime| feature} |
794 | 7878 |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7879 reltimefloat({time}) *reltimefloat()* |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7880 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
|
7881 Example: > |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7882 let start = reltime() |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7883 call MyFunction() |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7884 let seconds = reltimefloat(reltime(start)) |
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7885 < 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
|
7886 Also see |profiling|. |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7887 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7888 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7889 reltime(start)->reltimefloat() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7890 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7891 < {only available when compiled with the |+reltime| feature} |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
7892 |
794 | 7893 reltimestr({time}) *reltimestr()* |
7894 Return a String that represents the time value of {time}. | |
7895 This is the number of seconds, a dot and the number of | |
7896 microseconds. Example: > | |
7897 let start = reltime() | |
7898 call MyFunction() | |
7899 echo reltimestr(reltime(start)) | |
7900 < Note that overhead for the commands will be added to the time. | |
7901 The accuracy depends on the system. | |
1156 | 7902 Leading spaces are used to make the string align nicely. You |
7903 can use split() to remove it. > | |
7904 echo split(reltimestr(reltime(start)))[0] | |
7905 < Also see |profiling|. | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7906 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7907 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7908 reltime(start)->reltimestr() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7909 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7910 < {only available when compiled with the |+reltime| feature} |
794 | 7911 |
7 | 7912 *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
|
7913 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
|
7914 Send the {string} to {server}. The string is sent as an |
7 | 7915 expression and the result is returned after evaluation. |
714 | 7916 The result must be a String or a |List|. A |List| is turned |
7917 into a String by joining the items with a line break in | |
7918 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
|
7919 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
|
7920 of a variable and a {serverid} for later use with |
13329
424321d6eea7
patch 8.0.1539: no test for the popup menu positioning
Christian Brabandt <cb@256bit.org>
parents:
13298
diff
changeset
|
7921 |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
|
7922 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
|
7923 seconds. Otherwise a timeout of 600 seconds is used. |
7 | 7924 See also |clientserver| |RemoteReply|. |
7925 This function is not available in the |sandbox|. | |
7926 {only available when compiled with the |+clientserver| feature} | |
7927 Note: Any errors will cause a local error message to be issued | |
7928 and the result will be the empty string. | |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
7929 |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
7930 Variables will be evaluated in the global namespace, |
12785 | 7931 independent of a function currently being active. Except |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
7932 when in debug mode, then local function variables and |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
7933 arguments can be evaluated. |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
7934 |
7 | 7935 Examples: > |
7936 :echo remote_expr("gvim", "2+2") | |
7937 :echo remote_expr("gvim1", "b:current_syntax") | |
7938 < | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7939 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7940 ServerName()->remote_expr(expr) |
7 | 7941 |
7942 remote_foreground({server}) *remote_foreground()* | |
7943 Move the Vim server with the name {server} to the foreground. | |
7944 This works like: > | |
7945 remote_expr({server}, "foreground()") | |
7946 < Except that on Win32 systems the client does the work, to work | |
7947 around the problem that the OS doesn't always allow the server | |
7948 to bring itself to the foreground. | |
574 | 7949 Note: This does not restore the window if it was minimized, |
7950 like foreground() does. | |
7 | 7951 This function is not available in the |sandbox|. |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7952 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7953 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7954 ServerName()->remote_foreground() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7955 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7956 < {only in the Win32, Athena, Motif and GTK GUI versions and the |
7 | 7957 Win32 console version} |
7958 | |
7959 | |
7960 remote_peek({serverid} [, {retvar}]) *remote_peek()* | |
7961 Returns a positive number if there are available strings | |
7962 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
|
7963 {retvar} if specified. {retvar} must be a string with the |
7 | 7964 name of a variable. |
7965 Returns zero if none are available. | |
7966 Returns -1 if something is wrong. | |
7967 See also |clientserver|. | |
7968 This function is not available in the |sandbox|. | |
7969 {only available when compiled with the |+clientserver| feature} | |
7970 Examples: > | |
7971 :let repl = "" | |
7972 :echo "PEEK: ".remote_peek(id, "repl").": ".repl | |
7973 | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7974 < Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7975 ServerId()->remote_peek() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7976 |
11211
71311d899b42
patch 8.0.0492: a failing client-server request can make Vim hang
Christian Brabandt <cb@256bit.org>
parents:
11181
diff
changeset
|
7977 remote_read({serverid}, [{timeout}]) *remote_read()* |
7 | 7978 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
|
7979 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
|
7980 reply is available. |
7 | 7981 See also |clientserver|. |
7982 This function is not available in the |sandbox|. | |
7983 {only available when compiled with the |+clientserver| feature} | |
7984 Example: > | |
7985 :echo remote_read(id) | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7986 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7987 < Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
7988 ServerId()->remote_read() |
7 | 7989 < |
7990 *remote_send()* *E241* | |
7991 remote_send({server}, {string} [, {idvar}]) | |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
7992 Send the {string} to {server}. The string is sent as input |
22 | 7993 keys and the function returns immediately. At the Vim server |
7994 the keys are not mapped |:map|. | |
667 | 7995 If {idvar} is present, it is taken as the name of a variable |
7996 and a {serverid} for later use with remote_read() is stored | |
7997 there. | |
7 | 7998 See also |clientserver| |RemoteReply|. |
7999 This function is not available in the |sandbox|. | |
8000 {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
|
8001 |
7 | 8002 Note: Any errors will be reported in the server and may mess |
8003 up the display. | |
8004 Examples: > | |
8005 :echo remote_send("gvim", ":DropAndReply ".file, "serverid"). | |
8006 \ remote_read(serverid) | |
8007 | |
8008 :autocmd NONE RemoteReply * | |
8009 \ echo remote_read(expand("<amatch>")) | |
8010 :echo remote_send("gvim", ":sleep 10 | echo ". | |
8011 \ 'server2client(expand("<client>"), "HELLO")<CR>') | |
82 | 8012 < |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8013 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8014 ServerName()->remote_send(keys) |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8015 < |
11177
76fb679a310e
patch 8.0.0475: not enough testing for the client-server feature
Christian Brabandt <cb@256bit.org>
parents:
11160
diff
changeset
|
8016 *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
|
8017 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
|
8018 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
|
8019 server, when |v:servername| is not empty. |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8020 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8021 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8022 ServerName()->remote_startserver() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8023 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8024 < {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
|
8025 |
79 | 8026 remove({list}, {idx} [, {end}]) *remove()* |
685 | 8027 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
|
8028 return the item. |
79 | 8029 With {end}: Remove items from {idx} to {end} (inclusive) and |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
8030 return a List with these items. When {idx} points to the same |
79 | 8031 item as {end} a list with one item is returned. When {end} |
8032 points to an item before {idx} this is an error. | |
8033 See |list-index| for possible values of {idx} and {end}. | |
55 | 8034 Example: > |
8035 :echo "last item: " . remove(mylist, -1) | |
79 | 8036 :call remove(mylist, 0, 9) |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
8037 < |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
8038 Use |delete()| to remove a file. |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
8039 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8040 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8041 mylist->remove(idx) |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8042 |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8043 remove({blob}, {idx} [, {end}]) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8044 Without {end}: Remove the byte at {idx} from |Blob| {blob} and |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8045 return the byte. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8046 With {end}: Remove bytes from {idx} to {end} (inclusive) and |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8047 return a |Blob| with these bytes. When {idx} points to the same |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8048 byte as {end} a |Blob| with one byte is returned. When {end} |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8049 points to a byte before {idx} this is an error. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8050 Example: > |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8051 :echo "last byte: " . remove(myblob, -1) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8052 :call remove(mylist, 0, 9) |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
8053 |
99 | 8054 remove({dict}, {key}) |
17571 | 8055 Remove the entry from {dict} with key {key} and return it. |
8056 Example: > | |
99 | 8057 :echo "removed " . remove(dict, "one") |
8058 < If there is no {key} in {dict} this is an error. | |
8059 | |
7 | 8060 rename({from}, {to}) *rename()* |
8061 Rename the file by the name {from} to the name {to}. This | |
8062 should also work to move files across file systems. The | |
8063 result is a Number, which is 0 if the file was renamed | |
8064 successfully, and non-zero when the renaming failed. | |
1851 | 8065 NOTE: If {to} exists it is overwritten without warning. |
7 | 8066 This function is not available in the |sandbox|. |
8067 | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8068 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8069 GetOldName()->rename(newname) |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8070 |
18 | 8071 repeat({expr}, {count}) *repeat()* |
8072 Repeat {expr} {count} times and return the concatenated | |
8073 result. Example: > | |
843 | 8074 :let separator = repeat('-', 80) |
18 | 8075 < When {count} is zero or negative the result is empty. |
685 | 8076 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
|
8077 {count} times. Example: > |
79 | 8078 :let longlist = repeat(['a', 'b'], 3) |
8079 < Results in ['a', 'b', 'a', 'b', 'a', 'b']. | |
18 | 8080 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8081 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8082 mylist->repeat(count) |
82 | 8083 |
7 | 8084 resolve({filename}) *resolve()* *E655* |
8085 On MS-Windows, when {filename} is a shortcut (a .lnk file), | |
8086 returns the path the shortcut points to in a simplified form. | |
15774
c4efa095f323
patch 8.1.0894: MS-Windows: resolve() does not return a reparse point
Bram Moolenaar <Bram@vim.org>
parents:
15746
diff
changeset
|
8087 When {filename} is a symbolic link or junction point, return |
c4efa095f323
patch 8.1.0894: MS-Windows: resolve() does not return a reparse point
Bram Moolenaar <Bram@vim.org>
parents:
15746
diff
changeset
|
8088 the full path to the target. If the target of junction is |
c4efa095f323
patch 8.1.0894: MS-Windows: resolve() does not return a reparse point
Bram Moolenaar <Bram@vim.org>
parents:
15746
diff
changeset
|
8089 removed, return {filename}. |
7 | 8090 On Unix, repeat resolving symbolic links in all path |
8091 components of {filename} and return the simplified result. | |
8092 To cope with link cycles, resolving of symbolic links is | |
8093 stopped after 100 iterations. | |
8094 On other systems, return the simplified {filename}. | |
8095 The simplification step is done as by |simplify()|. | |
8096 resolve() keeps a leading path component specifying the | |
8097 current directory (provided the result is still a relative | |
8098 path name) and also keeps a trailing path separator. | |
8099 | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8100 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8101 GetName()->resolve() |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8102 |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8103 reverse({object}) *reverse()* |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8104 Reverse the order of items in {object} in-place. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8105 {object} can be a |List| or a |Blob|. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8106 Returns {object}. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
8107 If you want an object to remain unmodified make a copy first: > |
82 | 8108 :let revlist = reverse(copy(mylist)) |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8109 < Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
8110 mylist->reverse() |
82 | 8111 |
1621 | 8112 round({expr}) *round()* |
1668 | 8113 Round off {expr} to the nearest integral value and return it |
1621 | 8114 as a |Float|. If {expr} lies halfway between two integral |
8115 values, then use the larger one (away from zero). | |
8116 {expr} must evaluate to a |Float| or a |Number|. | |
8117 Examples: > | |
8118 echo round(0.456) | |
8119 < 0.0 > | |
8120 echo round(4.5) | |
8121 < 5.0 > | |
8122 echo round(-4.5) | |
8123 < -5.0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
8124 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
8125 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
8126 Compute()->round() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
8127 < |
1621 | 8128 {only available when compiled with the |+float| feature} |
3996 | 8129 |
16103
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8130 rubyeval({expr}) *rubyeval()* |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8131 Evaluate Ruby expression {expr} and return its result |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8132 converted to Vim data structures. |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8133 Numbers, floats and strings are returned as they are (strings |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8134 are copied though). |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8135 Arrays are represented as Vim |List| type. |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8136 Hashes are represented as Vim |Dictionary| type. |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8137 Other objects are represented as strings resulted from their |
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8138 "Object#to_s" method. |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8139 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8140 Can also be used as a |method|: > |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8141 GetRubyExpr()->rubyeval() |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8142 |
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
8143 < {only available when compiled with the |+ruby| feature} |
16103
518f44125207
patch 8.1.1056: no eval function for Ruby
Bram Moolenaar <Bram@vim.org>
parents:
16086
diff
changeset
|
8144 |
12785 | 8145 screenattr({row}, {col}) *screenattr()* |
10027
018fead968c1
commit https://github.com/vim/vim/commit/36f44c21da2e912c008683a0c4447fca2a071e9a
Christian Brabandt <cb@256bit.org>
parents:
10004
diff
changeset
|
8146 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
|
8147 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
|
8148 attribute at other positions. |
4db0bf9f1b44
updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents:
4502
diff
changeset
|
8149 |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8150 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8151 GetRow()->screenattr(col) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8152 |
12785 | 8153 screenchar({row}, {col}) *screenchar()* |
4835
4db0bf9f1b44
updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents:
4502
diff
changeset
|
8154 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
|
8155 [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
|
8156 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
|
8157 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
|
8158 The character excludes composing characters. For double-byte |
4db0bf9f1b44
updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents:
4502
diff
changeset
|
8159 encodings it may only be the first byte. |
4db0bf9f1b44
updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents:
4502
diff
changeset
|
8160 This is mainly to be used for testing. |
4db0bf9f1b44
updated for version 7.3.1164
Bram Moolenaar <bram@vim.org>
parents:
4502
diff
changeset
|
8161 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
|
8162 |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8163 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8164 GetRow()->screenchar(col) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8165 |
16133
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8166 screenchars({row}, {col}) *screenchars()* |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8167 The result is a List of Numbers. The first number is the same |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8168 as what |screenchar()| returns. Further numbers are |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8169 composing characters on top of the base character. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8170 This is mainly to be used for testing. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8171 Returns an empty List when row or col is out of range. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8172 |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8173 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8174 GetRow()->screenchars(col) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8175 |
3996 | 8176 screencol() *screencol()* |
8177 The result is a Number, which is the current screen column of | |
8178 the cursor. The leftmost column has number 1. | |
8179 This function is mainly used for testing. | |
8180 | |
8181 Note: Always returns the current screen column, thus if used | |
8182 in a command (e.g. ":echo screencol()") it will return the | |
8183 column inside the command line, which is 1 when the command is | |
8184 executed. To get the cursor position in the file use one of | |
8185 the following mappings: > | |
8186 nnoremap <expr> GG ":echom ".screencol()."\n" | |
8187 nnoremap <silent> GG :echom screencol()<CR> | |
8188 < | |
17292
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8189 screenpos({winid}, {lnum}, {col}) *screenpos()* |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8190 The result is a Dict with the screen position of the text |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8191 character in window {winid} at buffer line {lnum} and column |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8192 {col}. {col} is a one-based byte index. |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8193 The Dict has these members: |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8194 row screen row |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8195 col first screen column |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8196 endcol last screen column |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8197 curscol cursor screen column |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8198 If the specified position is not visible, all values are zero. |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8199 The "endcol" value differs from "col" when the character |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8200 occupies more than one screen cell. E.g. for a Tab "col" can |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8201 be 1 and "endcol" can be 8. |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8202 The "curscol" value is where the cursor would be placed. For |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8203 a Tab it would be the same as "endcol", while for a double |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8204 width character it would be the same as "col". |
8a095d343c59
patch 8.1.1645: cannot use a popup window for a balloon
Bram Moolenaar <Bram@vim.org>
parents:
17259
diff
changeset
|
8205 |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8206 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8207 GetWinid()->screenpos(lnum, col) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8208 |
3996 | 8209 screenrow() *screenrow()* |
8210 The result is a Number, which is the current screen row of the | |
8211 cursor. The top line has number one. | |
8212 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
|
8213 Alternatively you can use |winline()|. |
3996 | 8214 |
8215 Note: Same restrictions as with |screencol()|. | |
8216 | |
16133
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8217 screenstring({row}, {col}) *screenstring()* |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8218 The result is a String that contains the base character and |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8219 any composing characters at position [row, col] on the screen. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8220 This is like |screenchars()| but returning a String with the |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8221 characters. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8222 This is mainly to be used for testing. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8223 Returns an empty String when row or col is out of range. |
eb087f8a26a8
patch 8.1.1071: cannot get composing characters from the screen
Bram Moolenaar <Bram@vim.org>
parents:
16127
diff
changeset
|
8224 |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8225 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8226 GetRow()->screenstring(col) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8227 |
1496 | 8228 search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *search()* |
7 | 8229 Search for regexp pattern {pattern}. The search starts at the |
119 | 8230 cursor position (you can use |cursor()| to set it). |
707 | 8231 |
3967 | 8232 When a match has been found its line number is returned. |
3312 | 8233 If there is no match a 0 is returned and the cursor doesn't |
8234 move. No error message is given. | |
8235 | |
7 | 8236 {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
|
8237 'b' search Backward instead of forward |
6fbeef3b65e6
commit https://github.com/vim/vim/commit/ad4d8a192abf44b89371af87d70b971cd654b799
Christian Brabandt <cb@256bit.org>
parents:
7315
diff
changeset
|
8238 'c' accept a match at the Cursor position |
712 | 8239 'e' move to the End of the match |
20 | 8240 '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
|
8241 '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
|
8242 '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
|
8243 '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
|
8244 '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
|
8245 'z' start searching at the cursor column instead of zero |
7 | 8246 If neither 'w' or 'W' is given, the 'wrapscan' option applies. |
8247 | |
444 | 8248 If the 's' flag is supplied, the ' mark is set, only if the |
8249 cursor is moved. The 's' flag cannot be combined with the 'n' | |
8250 flag. | |
8251 | |
1156 | 8252 'ignorecase', 'smartcase' and 'magic' are used. |
12785 | 8253 |
7659
07f11de5efca
commit https://github.com/vim/vim/commit/85084ef1e999dcf50e8d466106a33bac24a0febb
Christian Brabandt <cb@256bit.org>
parents:
7653
diff
changeset
|
8254 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
|
8255 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
|
8256 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
|
8257 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
|
8258 one column further. |
1156 | 8259 |
692 | 8260 When the {stopline} argument is given then the search stops |
8261 after searching this line. This is useful to restrict the | |
8262 search to a range of lines. Examples: > | |
8263 let match = search('(', 'b', line("w0")) | |
8264 let end = search('END', '', line("w$")) | |
8265 < When {stopline} is used and it is not zero this also implies | |
8266 that the search does not wrap around the end of the file. | |
1496 | 8267 A zero value is equal to not giving the argument. |
8268 | |
8269 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
|
8270 more than this many milliseconds have passed. Thus when |
1496 | 8271 {timeout} is 500 the search stops after half a second. |
8272 The value must not be negative. A zero value is like not | |
8273 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
|
8274 {only available when compiled with the |+reltime| feature} |
692 | 8275 |
714 | 8276 *search()-sub-match* |
8277 With the 'p' flag the returned value is one more than the | |
8278 first sub-match in \(\). One if none of them matched but the | |
8279 whole pattern did match. | |
712 | 8280 To get the column number too use |searchpos()|. |
8281 | |
20 | 8282 The cursor will be positioned at the match, unless the 'n' |
707 | 8283 flag is used. |
7 | 8284 |
8285 Example (goes over all files in the argument list): > | |
8286 :let n = 1 | |
8287 :while n <= argc() " loop over all files in arglist | |
8288 : exe "argument " . n | |
8289 : " start at the last char in the file and wrap for the | |
8290 : " first search to find match at start of file | |
8291 : normal G$ | |
8292 : let flags = "w" | |
8293 : while search("foo", flags) > 0 | |
1621 | 8294 : s/foo/bar/g |
7 | 8295 : let flags = "W" |
8296 : endwhile | |
8297 : update " write the file if modified | |
8298 : let n = n + 1 | |
8299 :endwhile | |
8300 < | |
712 | 8301 Example for using some flags: > |
8302 :echo search('\<if\|\(else\)\|\(endif\)', 'ncpe') | |
8303 < This will search for the keywords "if", "else", and "endif" | |
8304 under or after the cursor. Because of the 'p' flag, it | |
8305 returns 1, 2, or 3 depending on which keyword is found, or 0 | |
8306 if the search fails. With the cursor on the first word of the | |
8307 line: | |
8308 if (foo == 0) | let foo = foo + 1 | endif ~ | |
8309 the function returns 1. Without the 'c' flag, the function | |
8310 finds the "endif" and returns 3. The same thing happens | |
8311 without the 'e' flag if the cursor is on the "f" of "if". | |
8312 The 'n' flag tells the function not to move the cursor. | |
8313 | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8314 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8315 GetPattern()->search() |
504 | 8316 |
523 | 8317 searchdecl({name} [, {global} [, {thisblock}]]) *searchdecl()* |
8318 Search for the declaration of {name}. | |
856 | 8319 |
523 | 8320 With a non-zero {global} argument it works like |gD|, find |
8321 first match in the file. Otherwise it works like |gd|, find | |
8322 first match in the function. | |
8323 | |
8324 With a non-zero {thisblock} argument matches in a {} block | |
8325 that ends before the cursor position are ignored. Avoids | |
8326 finding variable declarations only valid in another scope. | |
8327 | |
504 | 8328 Moves the cursor to the found match. |
8329 Returns zero for success, non-zero for failure. | |
8330 Example: > | |
8331 if searchdecl('myvar') == 0 | |
8332 echo getline('.') | |
8333 endif | |
8334 < | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8335 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8336 GetName()->searchdecl() |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8337 < |
7 | 8338 *searchpair()* |
1496 | 8339 searchpair({start}, {middle}, {end} [, {flags} [, {skip} |
8340 [, {stopline} [, {timeout}]]]]) | |
7 | 8341 Search for the match of a nested start-end pair. This can be |
8342 used to find the "endif" that matches an "if", while other | |
8343 if/endif pairs in between are ignored. | |
677 | 8344 The search starts at the cursor. The default is to search |
8345 forward, include 'b' in {flags} to search backward. | |
8346 If a match is found, the cursor is positioned at it and the | |
8347 line number is returned. If no match is found 0 or -1 is | |
8348 returned and the cursor doesn't move. No error message is | |
8349 given. | |
7 | 8350 |
8351 {start}, {middle} and {end} are patterns, see |pattern|. They | |
8352 must not contain \( \) pairs. Use of \%( \) is allowed. When | |
8353 {middle} is not empty, it is found when searching from either | |
8354 direction, but only when not in a nested start-end pair. A | |
8355 typical use is: > | |
8356 searchpair('\<if\>', '\<else\>', '\<endif\>') | |
8357 < By leaving {middle} empty the "else" is skipped. | |
8358 | |
712 | 8359 {flags} 'b', 'c', 'n', 's', 'w' and 'W' are used like with |
8360 |search()|. Additionally: | |
7 | 8361 'r' Repeat until no more matches found; will find the |
1621 | 8362 outer pair. Implies the 'W' flag. |
8363 'm' Return number of matches instead of line number with | |
712 | 8364 the match; will be > 1 when 'r' is used. |
1621 | 8365 Note: it's nearly always a good idea to use the 'W' flag, to |
8366 avoid wrapping around the end of the file. | |
7 | 8367 |
8368 When a match for {start}, {middle} or {end} is found, the | |
8369 {skip} expression is evaluated with the cursor positioned on | |
8370 the start of the match. It should return non-zero if this | |
8371 match is to be skipped. E.g., because it is inside a comment | |
8372 or a string. | |
8373 When {skip} is omitted or empty, every match is accepted. | |
8374 When evaluating {skip} causes an error the search is aborted | |
8375 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
|
8376 {skip} can be a string, a lambda, a funcref or a partial. |
14193 | 8377 Anything else makes the function fail. |
7 | 8378 |
1496 | 8379 For {stopline} and {timeout} see |search()|. |
692 | 8380 |
7 | 8381 The value of 'ignorecase' is used. 'magic' is ignored, the |
8382 patterns are used like it's on. | |
8383 | |
8384 The search starts exactly at the cursor. A match with | |
8385 {start}, {middle} or {end} at the next character, in the | |
8386 direction of searching, is the first one found. Example: > | |
8387 if 1 | |
8388 if 2 | |
8389 endif 2 | |
8390 endif 1 | |
8391 < When starting at the "if 2", with the cursor on the "i", and | |
8392 searching forwards, the "endif 2" is found. When starting on | |
8393 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
|
8394 found. That's because the "if 2" will be found first, and |
7 | 8395 then this is considered to be a nested if/endif from "if 2" to |
8396 "endif 2". | |
8397 When searching backwards and {end} is more than one character, | |
8398 it may be useful to put "\zs" at the end of the pattern, so | |
8399 that when the cursor is inside a match with the end it finds | |
8400 the matching start. | |
8401 | |
8402 Example, to find the "endif" command in a Vim script: > | |
8403 | |
8404 :echo searchpair('\<if\>', '\<el\%[seif]\>', '\<en\%[dif]\>', 'W', | |
8405 \ 'getline(".") =~ "^\\s*\""') | |
8406 | |
8407 < The cursor must be at or after the "if" for which a match is | |
8408 to be found. Note that single-quote strings are used to avoid | |
8409 having to double the backslashes. The skip expression only | |
8410 catches comments at the start of a line, not after a command. | |
8411 Also, a word "en" or "if" halfway a line is considered a | |
8412 match. | |
8413 Another example, to search for the matching "{" of a "}": > | |
8414 | |
8415 :echo searchpair('{', '', '}', 'bW') | |
8416 | |
8417 < This works when the cursor is at or before the "}" for which a | |
8418 match is to be found. To reject matches that syntax | |
8419 highlighting recognized as strings: > | |
8420 | |
8421 :echo searchpair('{', '', '}', 'bW', | |
8422 \ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"') | |
8423 < | |
667 | 8424 *searchpairpos()* |
1496 | 8425 searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} |
8426 [, {stopline} [, {timeout}]]]]) | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
8427 Same as |searchpair()|, but returns a |List| with the line and |
685 | 8428 column position of the match. The first element of the |List| |
8429 is the line number and the second element is the byte index of | |
667 | 8430 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
|
8431 returns [0, 0]. > |
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
8432 |
667 | 8433 :let [lnum,col] = searchpairpos('{', '', '}', 'n') |
8434 < | |
8435 See |match-parens| for a bigger and more useful example. | |
8436 | |
1496 | 8437 searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) *searchpos()* |
692 | 8438 Same as |search()|, but returns a |List| with the line and |
685 | 8439 column position of the match. The first element of the |List| |
8440 is the line number and the second element is the byte index of | |
8441 the column position of the match. If no match is found, | |
8442 returns [0, 0]. | |
714 | 8443 Example: > |
8444 :let [lnum, col] = searchpos('mypattern', 'n') | |
8445 | |
8446 < When the 'p' flag is given then there is an extra item with | |
8447 the sub-pattern match number |search()-sub-match|. Example: > | |
8448 :let [lnum, col, submatch] = searchpos('\(\l\)\|\(\u\)', 'np') | |
8449 < In this example "submatch" is 2 when a lowercase letter is | |
8450 found |/\l|, 3 when an uppercase letter is found |/\u|. | |
8451 | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8452 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8453 GetPattern()->searchpos() |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8454 |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
8455 server2client({clientid}, {string}) *server2client()* |
7 | 8456 Send a reply string to {clientid}. The most recent {clientid} |
8457 that sent a string can be retrieved with expand("<client>"). | |
8458 {only available when compiled with the |+clientserver| feature} | |
8459 Note: | |
8460 This id has to be stored before the next command can be | |
236 | 8461 received. I.e. before returning from the received command and |
7 | 8462 before calling any commands that waits for input. |
8463 See also |clientserver|. | |
8464 Example: > | |
8465 :echo server2client(expand("<client>"), "HELLO") | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8466 |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8467 < Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8468 GetClientId()->server2client(string) |
7 | 8469 < |
8470 serverlist() *serverlist()* | |
8471 Return a list of available server names, one per line. | |
8472 When there are no servers or the information is not available | |
8473 an empty string is returned. See also |clientserver|. | |
8474 {only available when compiled with the |+clientserver| feature} | |
8475 Example: > | |
8476 :echo serverlist() | |
8477 < | |
12319
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8478 setbufline({expr}, {lnum}, {text}) *setbufline()* |
18343 | 8479 Set line {lnum} to {text} in buffer {expr}. This works like |
8480 |setline()| for the specified buffer. | |
8481 | |
8482 This function works only for loaded buffers. First call | |
8483 |bufload()| if needed. | |
8484 | |
8485 To insert lines use |appendbufline()|. | |
8486 Any text properties in {lnum} are cleared. | |
8487 | |
8488 {text} can be a string to set one line, or a list of strings | |
8489 to set multiple lines. If the list extends below the last | |
8490 line then those lines are added. | |
12319
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8491 |
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8492 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
|
8493 |
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8494 {lnum} is used like with |setline()|. |
18343 | 8495 When {lnum} is just below the last line the {text} will be |
8496 added below the last line. | |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
8497 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
17257
diff
changeset
|
8498 When {expr} is not a valid buffer, the buffer is not loaded or |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
17257
diff
changeset
|
8499 {lnum} is not valid then 1 is returned. On success 0 is |
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
17257
diff
changeset
|
8500 returned. |
12319
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8501 |
18343 | 8502 Can also be used as a |method|, the base is passed as the |
8503 third argument: > | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8504 GetText()->setbufline(buf, lnum) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8505 |
7 | 8506 setbufvar({expr}, {varname}, {val}) *setbufvar()* |
8507 Set option or local variable {varname} in buffer {expr} to | |
8508 {val}. | |
8509 This also works for a global or local window option, but it | |
8510 doesn't work for a global or local window variable. | |
8511 For a local window option the global value is unchanged. | |
8512 For the use of {expr}, see |bufname()| above. | |
8513 Note that the variable name without "b:" must be used. | |
8514 Examples: > | |
8515 :call setbufvar(1, "&mod", 1) | |
8516 :call setbufvar("todo", "myvar", "foobar") | |
8517 < This function is not available in the |sandbox|. | |
8518 | |
18343 | 8519 Can also be used as a |method|, the base is passed as the |
8520 third argument: > | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8521 GetValue()->setbufvar(buf, varname) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8522 |
7100
f717d96a39b3
commit https://github.com/vim/vim/commit/12969c04fe7bd27dc0cbf37709eb40a86d4a27f9
Christian Brabandt <cb@256bit.org>
parents:
7013
diff
changeset
|
8523 setcharsearch({dict}) *setcharsearch()* |
6991 | 8524 Set the current character search information to {dict}, |
8525 which contains one or more of the following entries: | |
8526 | |
8527 char character which will be used for a subsequent | |
8528 |,| or |;| command; an empty string clears the | |
8529 character search | |
8530 forward direction of character search; 1 for forward, | |
8531 0 for backward | |
8532 until type of character search; 1 for a |t| or |T| | |
8533 character search, 0 for an |f| or |F| | |
8534 character search | |
8535 | |
8536 This can be useful to save/restore a user's character search | |
8537 from a script: > | |
8538 :let prevsearch = getcharsearch() | |
8539 :" Perform a command which clobbers user's search | |
8540 :call setcharsearch(prevsearch) | |
8541 < Also see |getcharsearch()|. | |
8542 | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8543 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8544 SavedSearch()->setcharsearch() |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8545 |
7 | 8546 setcmdpos({pos}) *setcmdpos()* |
8547 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
|
8548 {pos}. The first position is 1. |
7 | 8549 Use |getcmdpos()| to obtain the current position. |
8550 Only works while editing the command line, thus you must use | |
99 | 8551 |c_CTRL-\_e|, |c_CTRL-R_=| or |c_CTRL-R_CTRL-R| with '='. For |
8552 |c_CTRL-\_e| and |c_CTRL-R_CTRL-R| with '=' the position is | |
8553 set after the command line is set to the expression. For | |
8554 |c_CTRL-R_=| it is set after evaluating the expression but | |
8555 before inserting the resulting text. | |
7 | 8556 When the number is too big the cursor is put at the end of the |
8557 line. A number smaller than one has undefined results. | |
8558 Returns 0 when successful, 1 when not editing the command | |
8559 line. | |
8560 | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8561 Can also be used as a |method|: > |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8562 GetPos()->setcmdpos() |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8563 |
16604
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
8564 setenv({name}, {val}) *setenv()* |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
8565 Set environment variable {name} to {val}. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
8566 When {val} is |v:null| the environment variable is deleted. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
8567 See also |expr-env|. |
1e0a5f09fdf1
patch 8.1.1305: there is no easy way to manipulate environment variables
Bram Moolenaar <Bram@vim.org>
parents:
16600
diff
changeset
|
8568 |
18343 | 8569 Can also be used as a |method|, the base is passed as the |
8570 second argument: > | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8571 GetPath()->setenv('PATH') |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8572 |
8451
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8573 setfperm({fname}, {mode}) *setfperm()* *chmod* |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8574 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
|
8575 {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
|
8576 "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
|
8577 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
|
8578 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
|
8579 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
|
8580 characters are not supported. |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8581 |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8582 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
|
8583 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
|
8584 would do the same thing. |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8585 |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8586 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
|
8587 |
17857
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
8588 Can also be used as a |method|: > |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
8589 GetFilename()->setfperm(mode) |
4935244c1128
patch 8.1.1925: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17855
diff
changeset
|
8590 < |
8451
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8591 To read permissions see |getfperm()|. |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8592 |
c0b5c2b0a5ee
commit https://github.com/vim/vim/commit/8049253b96838b3584600e5ad229abad37a95b10
Christian Brabandt <cb@256bit.org>
parents:
8440
diff
changeset
|
8593 |
1621 | 8594 setline({lnum}, {text}) *setline()* |
3312 | 8595 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
|
8596 lines use |append()|. To set lines in another buffer use |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
8597 |setbufline()|. Any text properties in {lnum} are cleared. |
12319
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8598 |
236 | 8599 {lnum} is used like with |getline()|. |
1621 | 8600 When {lnum} is just below the last line the {text} will be |
18343 | 8601 added below the last line. |
12319
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8602 |
236 | 8603 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
|
8604 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
|
8605 |
c7e95667d14b
patch 8.0.1039: cannot change a line in not current buffer
Christian Brabandt <cb@256bit.org>
parents:
12317
diff
changeset
|
8606 Example: > |
7 | 8607 :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
|
8608 |
1621 | 8609 < When {text} is a |List| then line {lnum} and following lines |
282 | 8610 will be set to the items in the list. Example: > |
8611 :call setline(5, ['aaa', 'bbb', 'ccc']) | |
8612 < This is equivalent to: > | |
3465 | 8613 :for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']] |
282 | 8614 : call setline(n, l) |
8615 :endfor | |
12427
fc3e2d5614dd
patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents:
12389
diff
changeset
|
8616 |
7 | 8617 < Note: The '[ and '] marks are not set. |
8618 | |
18343 | 8619 Can also be used as a |method|, the base is passed as the |
8620 second argument: > | |
17994
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8621 GetText()->setline(lnum) |
0dcc2ee838dd
patch 8.1.1993: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17982
diff
changeset
|
8622 |
12785 | 8623 setloclist({nr}, {list} [, {action} [, {what}]]) *setloclist()* |
647 | 8624 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
|
8625 {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
|
8626 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
|
8627 |
6c4d610fce0a
commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents:
9221
diff
changeset
|
8628 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
|
8629 modified. For an invalid window number {nr}, -1 is returned. |
1326 | 8630 Otherwise, same as |setqflist()|. |
8631 Also see |location-list|. | |
8632 | |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
8633 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
|
8634 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
|
8635 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
|
8636 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8637 Can also be used as a |method|, the base is passed as the |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8638 second argument: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8639 GetLoclist()->setloclist(winnr) |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8640 |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
8641 setmatches({list} [, {win}]) *setmatches()* |
16127
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
8642 Restores a list of matches saved by |getmatches() for the |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
8643 current window|. Returns 0 if successful, otherwise -1. All |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
8644 current matches are cleared before the list is restored. See |
0375e54f0adc
patch 8.1.1068: cannot get all the information about current completion
Bram Moolenaar <Bram@vim.org>
parents:
16103
diff
changeset
|
8645 example for |getmatches()|. |
16158
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
8646 If {win} is specified, use the window with this number or |
aef0f93d3eba
patch 8.1.1084: cannot delete a match from another window
Bram Moolenaar <Bram@vim.org>
parents:
16133
diff
changeset
|
8647 window ID instead of the current window. |
230 | 8648 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8649 Can also be used as a |method|: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8650 GetMatches()->setmatches() |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8651 < |
707 | 8652 *setpos()* |
8653 setpos({expr}, {list}) | |
8654 Set the position for {expr}. Possible values: | |
8655 . the cursor | |
8656 'x mark x | |
8657 | |
5938 | 8658 {list} must be a |List| with four or five numbers: |
707 | 8659 [bufnum, lnum, col, off] |
5938 | 8660 [bufnum, lnum, col, off, curswant] |
707 | 8661 |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
8662 "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
|
8663 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
|
8664 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
|
8665 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
|
8666 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
|
8667 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
|
8668 since these are associated with a window, not a buffer. |
798 | 8669 Does not change the jumplist. |
707 | 8670 |
8671 "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
|
8672 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
|
8673 smaller than 1 then 1 is used. |
707 | 8674 |
8675 The "off" number is only used when 'virtualedit' is set. Then | |
8676 it is the offset in screen columns from the start of the | |
1266 | 8677 character. E.g., a position within a <Tab> or after the last |
707 | 8678 character. |
8679 | |
5938 | 8680 The "curswant" number is only used when setting the cursor |
8681 position. It sets the preferred column for when moving the | |
8682 cursor vertically. When the "curswant" number is missing the | |
8683 preferred column is not set. When it is present and setting a | |
8684 mark position it is not used. | |
8685 | |
5555 | 8686 Note that for '< and '> changing the line number may result in |
8687 the marks to be effectively be swapped, so that '< is always | |
8688 before '>. | |
8689 | |
1533 | 8690 Returns 0 when the position could be set, -1 otherwise. |
8691 An error message is given if {expr} is invalid. | |
8692 | |
5944 | 8693 Also see |getpos()| and |getcurpos()|. |
707 | 8694 |
1156 | 8695 This does not restore the preferred column for moving |
5938 | 8696 vertically; if you set the cursor position with this, |j| and |
8697 |k| motions will jump to previous columns! Use |cursor()| to | |
8698 also set the preferred column. Also see the "curswant" key in | |
8699 |winrestview()|. | |
1156 | 8700 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8701 Can also be used as a |method|: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8702 GetPosition()->setpos('.') |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8703 |
12785 | 8704 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
|
8705 Create or replace or add to the quickfix list. |
12785 | 8706 |
19646 | 8707 If the optional {what} dictionary argument is supplied, then |
8708 only the items listed in {what} are set. The first {list} | |
8709 argument is ignored. See below for the supported items in | |
8710 {what}. | |
8711 | |
8712 When {what} is not present, the items in {list} or used. Each | |
12048
ebd313aa5a6c
patch 8.0.0904: cannot set a location list from text
Christian Brabandt <cb@256bit.org>
parents:
12045
diff
changeset
|
8713 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
|
8714 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
|
8715 entries: |
230 | 8716 |
1065 | 8717 bufnr buffer number; must be the number of a valid |
1621 | 8718 buffer |
1065 | 8719 filename name of a file; only used when "bufnr" is not |
1621 | 8720 present or it is invalid. |
13821
98274127d675
patch 8.0.1782: no simple way to label quickfix entries
Christian Brabandt <cb@256bit.org>
parents:
13818
diff
changeset
|
8721 module name of a module; if given it will be used in |
98274127d675
patch 8.0.1782: no simple way to label quickfix entries
Christian Brabandt <cb@256bit.org>
parents:
13818
diff
changeset
|
8722 quickfix error window instead of the filename. |
230 | 8723 lnum line number in the file |
233 | 8724 pattern search pattern used to locate the error |
230 | 8725 col column number |
233 | 8726 vcol when non-zero: "col" is visual column |
856 | 8727 when zero: "col" is byte index |
233 | 8728 nr error number |
230 | 8729 text description of the error |
233 | 8730 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
|
8731 valid recognized error message |
233 | 8732 |
8733 The "col", "vcol", "nr", "type" and "text" entries are | |
8734 optional. Either "lnum" or "pattern" entry can be used to | |
8735 locate a matching error line. | |
1065 | 8736 If the "filename" and "bufnr" entries are not present or |
8737 neither the "lnum" or "pattern" entries are present, then the | |
8738 item will not be handled as an error line. | |
230 | 8739 If both "pattern" and "lnum" are present then "pattern" will |
8740 be used. | |
11390
73cfcf11d983
patch 8.0.0580: cannot set the valid flag with setqflist()
Christian Brabandt <cb@256bit.org>
parents:
11347
diff
changeset
|
8741 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
|
8742 set when "bufnr" is a valid buffer or "filename" exists. |
2152 | 8743 If you supply an empty {list}, the quickfix list will be |
8744 cleared. | |
1065 | 8745 Note that the list is not exactly the same as what |
8746 |getqflist()| returns. | |
230 | 8747 |
11263
ae5f9f26f81c
patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents:
11262
diff
changeset
|
8748 {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
|
8749 '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
|
8750 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
|
8751 new list is created. |
12785 | 8752 |
11263
ae5f9f26f81c
patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents:
11262
diff
changeset
|
8753 '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
|
8754 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
|
8755 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
|
8756 :call setqflist([], 'r') |
12785 | 8757 < |
11263
ae5f9f26f81c
patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents:
11262
diff
changeset
|
8758 '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
|
8759 freed. |
ae5f9f26f81c
patch 8.0.0517: there is no way to remove quickfix lists
Christian Brabandt <cb@256bit.org>
parents:
11262
diff
changeset
|
8760 |
9221
17fa362f10be
commit https://github.com/vim/vim/commit/511972d810ea490955161ff5097ec2f57919ceaf
Christian Brabandt <cb@256bit.org>
parents:
9219
diff
changeset
|
8761 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
|
8762 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
|
8763 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
|
8764 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
|
8765 set "nr" in {what} to "$". |
277 | 8766 |
19646 | 8767 The following items can be specified in dictionary {what}: |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
8768 context quickfix list context. See |quickfix-context| |
12321
2779d593a706
patch 8.0.1040: cannot use another error format in getqflist()
Christian Brabandt <cb@256bit.org>
parents:
12319
diff
changeset
|
8769 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
|
8770 "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
|
8771 'errorformat' option value is used. |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8772 See |quickfix-parse| |
12287
20641a7e1fc9
patch 8.0.1023: it is not easy to identify a quickfix list
Christian Brabandt <cb@256bit.org>
parents:
12273
diff
changeset
|
8773 id quickfix list identifier |quickfix-ID| |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8774 idx index of the current entry in the quickfix |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8775 list specified by 'id' or 'nr'. If set to '$', |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8776 then the last entry in the list is set as the |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8777 current entry. See |quickfix-index| |
11549
f5add45f9848
patch 8.0.0657: cannot get and set quickfix list items
Christian Brabandt <cb@256bit.org>
parents:
11543
diff
changeset
|
8778 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
|
8779 argument. |
12303
ec7a4fd21dd5
patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents:
12287
diff
changeset
|
8780 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
|
8781 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
|
8782 {nr} or {id}. Only a |List| value is supported. |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8783 See |quickfix-parse| |
11502
46bbef0ee9a6
patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents:
11473
diff
changeset
|
8784 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
|
8785 means the current quickfix list and "$" means |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8786 the last quickfix list. |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
8787 title quickfix list title text. See |quickfix-title| |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
8788 Unsupported keys in {what} are ignored. |
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
8789 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
|
8790 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
|
8791 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
|
8792 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
|
8793 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
|
8794 specify the list. |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
8795 |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
8796 Examples (See also |setqflist-examples|): > |
12303
ec7a4fd21dd5
patch 8.0.1031: "text" argument for getqflist() is confusing
Christian Brabandt <cb@256bit.org>
parents:
12287
diff
changeset
|
8797 :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
|
8798 :call setqflist([], 'r', {'nr': 2, 'title': 'Errors'}) |
13818
28ac7914b2b6
Update runtime files and translations
Christian Brabandt <cb@256bit.org>
parents:
13796
diff
changeset
|
8799 :call setqflist([], 'a', {'id':qfid, 'lines':["F1:10:L10"]}) |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
8800 < |
230 | 8801 Returns zero for success, -1 for failure. |
8802 | |
8803 This function can be used to create a quickfix list | |
8804 independent of the 'errorformat' setting. Use a command like | |
11400
0f8713fe20dc
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
11390
diff
changeset
|
8805 `:cc 1` to jump to the first position. |
230 | 8806 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8807 Can also be used as a |method|, the base is passed as the |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8808 second argument: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8809 GetErrorlist()->setqflist() |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8810 < |
7 | 8811 *setreg()* |
8148
f5da459c5698
commit https://github.com/vim/vim/commit/e0fa3742ead676a3074a10edadbc955e1a89153d
Christian Brabandt <cb@256bit.org>
parents:
8094
diff
changeset
|
8812 setreg({regname}, {value} [, {options}]) |
7 | 8813 Set the register {regname} to {value}. |
19783
546bdeef35f1
patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents:
19742
diff
changeset
|
8814 If {regname} is "" or "@", the unnamed register '"' is used. |
12785 | 8815 {value} may be any value returned by |getreg()|, including |
5798 | 8816 a |List|. |
7 | 8817 If {options} contains "a" or {regname} is upper case, |
8818 then the value is appended. | |
2423 | 8819 {options} can also contain a register type specification: |
7 | 8820 "c" or "v" |characterwise| mode |
8821 "l" or "V" |linewise| mode | |
8822 "b" or "<CTRL-V>" |blockwise-visual| mode | |
8823 If a number immediately follows "b" or "<CTRL-V>" then this is | |
8824 used as the width of the selection - if it is not specified | |
8825 then the width of the block is set to the number of characters | |
1266 | 8826 in the longest line (counting a <Tab> as 1 character). |
7 | 8827 |
8828 If {options} contains no register settings, then the default | |
12785 | 8829 is to use character mode unless {value} ends in a <NL> for |
8830 string {value} and linewise mode for list {value}. Blockwise | |
5798 | 8831 mode is never selected automatically. |
8832 Returns zero for success, non-zero for failure. | |
8833 | |
8834 *E883* | |
12785 | 8835 Note: you may not use |List| containing more than one item to |
8836 set search and expression registers. Lists containing no | |
5798 | 8837 items act like empty strings. |
7 | 8838 |
8839 Examples: > | |
8840 :call setreg(v:register, @*) | |
8841 :call setreg('*', @%, 'ac') | |
8842 :call setreg('a', "1\n2\n3", 'b5') | |
8843 | |
8844 < 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
|
8845 register: > |
5798 | 8846 :let var_a = getreg('a', 1, 1) |
7 | 8847 :let var_amode = getregtype('a') |
8848 .... | |
8849 :call setreg('a', var_a, var_amode) | |
12785 | 8850 < Note: you may not reliably restore register value |
8851 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
|
8852 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
|
8853 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
|
8854 |
fc3e2d5614dd
patch 8.0.1093: various small quickfix issues
Christian Brabandt <cb@256bit.org>
parents:
12389
diff
changeset
|
8855 You can also change the type of a register by appending |
7 | 8856 nothing: > |
8857 :call setreg('a', '', 'al') | |
8858 | |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8859 < Can also be used as a |method|, the base is passed as the |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8860 second argument: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8861 GetText()->setreg('a') |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8862 |
2207
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
8863 settabvar({tabnr}, {varname}, {val}) *settabvar()* |
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
8864 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
|
8865 |t:var| |
16849
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
8866 Note that autocommands are blocked, side effects may not be |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
8867 triggered, e.g. when setting 'filetype'. |
2207
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
8868 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
|
8869 Tabs are numbered starting with one. |
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
8870 This function is not available in the |sandbox|. |
b17bbfa96fa0
Add the settabvar() and gettabvar() functions.
Bram Moolenaar <bram@vim.org>
parents:
2206
diff
changeset
|
8871 |
18343 | 8872 Can also be used as a |method|, the base is passed as the |
8873 third argument: > | |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8874 GetValue()->settabvar(tab, name) |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8875 |
831 | 8876 settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()* |
8877 Set option or local variable {varname} in window {winnr} to | |
8878 {val}. | |
8879 Tabs are numbered starting with one. For the current tabpage | |
8880 use |setwinvar()|. | |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
8881 {winnr} can be the window number or the |window-ID|. |
831 | 8882 When {winnr} is zero the current window is used. |
16849
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
8883 Note that autocommands are blocked, side effects may not be |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
8884 triggered, e.g. when setting 'filetype' or 'syntax'. |
7 | 8885 This also works for a global or local buffer option, but it |
8886 doesn't work for a global or local buffer variable. | |
8887 For a local buffer option the global value is unchanged. | |
8888 Note that the variable name without "w:" must be used. | |
831 | 8889 Examples: > |
8890 :call settabwinvar(1, 1, "&list", 0) | |
8891 :call settabwinvar(3, 2, "myvar", "foobar") | |
8892 < This function is not available in the |sandbox|. | |
8893 | |
18343 | 8894 Can also be used as a |method|, the base is passed as the |
8895 fourth argument: > | |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8896 GetValue()->settabvar(tab, winnr, name) |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8897 |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8898 settagstack({nr}, {dict} [, {action}]) *settagstack()* |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8899 Modify the tag stack of the window {nr} using {dict}. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8900 {nr} can be the window number or the |window-ID|. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8901 |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8902 For a list of supported items in {dict}, refer to |
19033
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8903 |gettagstack()|. "curidx" takes effect before changing the tag |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8904 stack. |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8905 *E962* |
19033
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8906 How the tag stack is modified depends on the {action} |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8907 argument: |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8908 - If {action} is not present or is set to 'r', then the tag |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8909 stack is replaced. |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8910 - If {action} is set to 'a', then new entries from {dict} are |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8911 pushed (added) onto the tag stack. |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8912 - If {action} is set to 't', then all the entries from the |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8913 current entry in the tag stack or "curidx" in {dict} are |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8914 removed and then new entries are pushed to the stack. |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8915 |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8916 The current index is set to one after the length of the tag |
f0312cf3c792
patch 8.2.0077: settagstack() cannot truncate at current index
Bram Moolenaar <Bram@vim.org>
parents:
18987
diff
changeset
|
8917 stack after the modification. |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8918 |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8919 Returns zero for success, -1 for failure. |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8920 |
19968 | 8921 Examples (for more examples see |tagstack-examples||): |
8922 Empty the tag stack of window 3: > | |
15016
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8923 call settagstack(3, {'items' : []}) |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8924 |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8925 < Save and restore the tag stack: > |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8926 let stack = gettagstack(1003) |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8927 " do something else |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8928 call settagstack(1003, stack) |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8929 unlet stack |
c338c91086b9
patch 8.1.0519: cannot save and restore the tag stack
Bram Moolenaar <Bram@vim.org>
parents:
15008
diff
changeset
|
8930 < |
18343 | 8931 Can also be used as a |method|, the base is passed as the |
8932 second argument: > | |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8933 GetStack()->settagstack(winnr) |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8934 |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8935 setwinvar({winnr}, {varname}, {val}) *setwinvar()* |
831 | 8936 Like |settabwinvar()| for the current tab page. |
7 | 8937 Examples: > |
8938 :call setwinvar(1, "&list", 0) | |
8939 :call setwinvar(2, "myvar", "foobar") | |
8940 | |
18343 | 8941 < Can also be used as a |method|, the base is passed as the |
8942 third argument: > | |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8943 GetValue()->setwinvar(winnr, name) |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8944 |
4126 | 8945 sha256({string}) *sha256()* |
6647 | 8946 Returns a String with 64 hex characters, which is the SHA256 |
4126 | 8947 checksum of {string}. |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8948 |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8949 Can also be used as a |method|: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8950 GetText()->sha256() |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8951 |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8952 < {only available when compiled with the |+cryptv| feature} |
4126 | 8953 |
1661 | 8954 shellescape({string} [, {special}]) *shellescape()* |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
8955 Escape {string} for use as a shell command argument. |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
8956 On MS-Windows, when 'shellslash' is not set, it will enclose |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
8957 {string} in double quotes and double all double quotes within |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
8958 {string}. |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
8959 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
|
8960 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
|
8961 |
1661 | 8962 When the {special} argument is present and it's a non-zero |
8963 Number or a non-empty String (|non-zero-arg|), then special | |
1698 | 8964 items such as "!", "%", "#" and "<cword>" will be preceded by |
8965 a backslash. This backslash will be removed again by the |:!| | |
1661 | 8966 command. |
11502
46bbef0ee9a6
patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents:
11473
diff
changeset
|
8967 |
1698 | 8968 The "!" character will be escaped (again with a |non-zero-arg| |
8969 {special}) when 'shell' contains "csh" in the tail. That is | |
8970 because for csh and tcsh "!" is used for history replacement | |
8971 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
|
8972 |
46bbef0ee9a6
patch 8.0.0634: cannot easily get to the last quickfix list
Christian Brabandt <cb@256bit.org>
parents:
11473
diff
changeset
|
8973 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
|
8974 escaped. When 'shell' containing "csh" in the tail it's |
1698 | 8975 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
|
8976 |
1661 | 8977 Example of use with a |:!| command: > |
8978 :exe '!dir ' . shellescape(expand('<cfile>'), 1) | |
8979 < This results in a directory listing for the file under the | |
8980 cursor. Example of use with |system()|: > | |
8981 :call system("chmod +w -- " . shellescape(expand("%"))) | |
5690 | 8982 < See also |::S|. |
985 | 8983 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8984 Can also be used as a |method|: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8985 GetCommand()->shellescape() |
985 | 8986 |
15062
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8987 shiftwidth([{col}]) *shiftwidth()* |
3875 | 8988 Returns the effective value of 'shiftwidth'. This is the |
8989 '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
|
8990 'tabstop' value. This function was introduced with patch |
15062
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8991 7.3.694 in 2012, everybody should have it by now (however it |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8992 did not allow for the optional {col} argument until 8.1.542). |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8993 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8994 When there is one argument {col} this is used as column number |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8995 for which to return the 'shiftwidth' value. This matters for the |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8996 'vartabstop' feature. If the 'vartabstop' setting is enabled and |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
15033
diff
changeset
|
8997 no {col} argument is given, column 1 will be assumed. |
15033 | 8998 |
18000
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
8999 Can also be used as a |method|: > |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
9000 GetColumn()->shiftwidth() |
7a19c8d6bb9e
patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17994
diff
changeset
|
9001 |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
9002 sign_ functions are documented here: |sign-functions-details| |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
9003 |
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
9004 |
7 | 9005 simplify({filename}) *simplify()* |
9006 Simplify the file name as much as possible without changing | |
9007 the meaning. Shortcuts (on MS-Windows) or symbolic links (on | |
9008 Unix) are not resolved. If the first path component in | |
9009 {filename} designates the current directory, this will be | |
9010 valid for the result as well. A trailing path separator is | |
9011 not removed either. | |
9012 Example: > | |
9013 simplify("./dir/.././/file/") == "./file/" | |
9014 < Note: The combination "dir/.." is only removed if "dir" is | |
9015 a searchable directory or does not exist. On Unix, it is also | |
9016 removed when "dir" is a symbolic link within the same | |
9017 directory. In order to resolve all the involved symbolic | |
9018 links before simplifying the path name, use |resolve()|. | |
9019 | |
19952
82ea10d554fb
patch 8.2.0532: cannot use simplify() as a method
Bram Moolenaar <Bram@vim.org>
parents:
19874
diff
changeset
|
9020 Can also be used as a |method|: > |
82ea10d554fb
patch 8.2.0532: cannot use simplify() as a method
Bram Moolenaar <Bram@vim.org>
parents:
19874
diff
changeset
|
9021 GetName()->simplify() |
82 | 9022 |
1621 | 9023 sin({expr}) *sin()* |
9024 Return the sine of {expr}, measured in radians, as a |Float|. | |
9025 {expr} must evaluate to a |Float| or a |Number|. | |
9026 Examples: > | |
9027 :echo sin(100) | |
9028 < -0.506366 > | |
9029 :echo sin(-4.01) | |
9030 < 0.763301 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9031 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9032 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9033 Compute()->sin() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9034 < |
1621 | 9035 {only available when compiled with the |+float| feature} |
12785 | 9036 |
1621 | 9037 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9038 sinh({expr}) *sinh()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
9039 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
|
9040 [-inf, inf]. |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
9041 {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
|
9042 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9043 :echo sinh(0.5) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9044 < 0.521095 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9045 :echo sinh(-0.9) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9046 < -1.026517 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9047 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9048 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9049 Compute()->sinh() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9050 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
9051 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9052 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
9053 |
2902 | 9054 sort({list} [, {func} [, {dict}]]) *sort()* *E702* |
5747 | 9055 Sort the items in {list} in-place. Returns {list}. |
12785 | 9056 |
5747 | 9057 If you want a list to remain unmodified make a copy first: > |
82 | 9058 :let sortedlist = sort(copy(mylist)) |
5968 | 9059 |
6009 | 9060 < When {func} is omitted, is empty or zero, then sort() uses the |
9061 string representation of each item to sort on. Numbers sort | |
9062 after Strings, |Lists| after Numbers. For sorting text in the | |
9063 current buffer use |:sort|. | |
9064 | |
6180 | 9065 When {func} is given and it is '1' or 'i' then case is |
6009 | 9066 ignored. |
12785 | 9067 |
6009 | 9068 When {func} is given and it is 'n' then all items will be |
9069 sorted numerical (Implementation detail: This uses the | |
9070 strtod() function to parse numbers, Strings, Lists, Dicts and | |
9071 Funcrefs will be considered as being 0). | |
9072 | |
7291
6ffc75d807bd
commit https://github.com/vim/vim/commit/b00da1d6d1655cb6e415f84ecc3be5ff3b790811
Christian Brabandt <cb@256bit.org>
parents:
7279
diff
changeset
|
9073 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
|
9074 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
|
9075 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
|
9076 |
7707
41768bcebc9b
commit https://github.com/vim/vim/commit/13d5aeef56e3140a8eb8f40c7062aa1c5700f76e
Christian Brabandt <cb@256bit.org>
parents:
7703
diff
changeset
|
9077 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
|
9078 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
|
9079 |
685 | 9080 When {func} is a |Funcref| or a function name, this function |
9081 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
|
9082 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
|
9083 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
|
9084 smaller if the first one sorts before the second one. |
5747 | 9085 |
9086 {dict} is for functions with the "dict" attribute. It will be | |
9087 used to set the local variable "self". |Dictionary-function| | |
9088 | |
6032
b8f703a4e55f
Updated runtime files. Overhauled HTML indent script.
Bram Moolenaar <bram@vim.org>
parents:
6009
diff
changeset
|
9089 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
|
9090 string) will keep their relative position. E.g., when sorting |
6051 | 9091 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
|
9092 same order as they were originally. |
b8f703a4e55f
Updated runtime files. Overhauled HTML indent script.
Bram Moolenaar <bram@vim.org>
parents:
6009
diff
changeset
|
9093 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9094 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9095 mylist->sort() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9096 |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9097 < Also see |uniq()|. |
5747 | 9098 |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
9099 Example: > |
82 | 9100 func MyCompare(i1, i2) |
9101 return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1 | |
9102 endfunc | |
9103 let sortedlist = sort(mylist, "MyCompare") | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
9104 < A shorter compare version for this specific simple case, which |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
9105 ignores overflow: > |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
9106 func MyCompare(i1, i2) |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
9107 return a:i1 - a:i2 |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
9108 endfunc |
344 | 9109 < |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
9110 sound_clear() *sound_clear()* |
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
9111 Stop playing all sounds. |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9112 {only available when compiled with the |+sound| feature} |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
9113 |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9114 *sound_playevent()* |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9115 sound_playevent({name} [, {callback}]) |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9116 Play a sound identified by {name}. Which event names are |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9117 supported depends on the system. Often the XDG sound names |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9118 are used. On Ubuntu they may be found in |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9119 /usr/share/sounds/freedesktop/stereo. Example: > |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9120 call sound_playevent('bell') |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9121 < On MS-Windows, {name} can be SystemAsterisk, SystemDefault, |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9122 SystemExclamation, SystemExit, SystemHand, SystemQuestion, |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9123 SystemStart, SystemWelcome, etc. |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9124 |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9125 When {callback} is specified it is invoked when the sound is |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9126 finished. The first argument is the sound ID, the second |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9127 argument is the status: |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9128 0 sound was played to the end |
17036 | 9129 1 sound was interrupted |
17161 | 9130 2 error occurred after sound started |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9131 Example: > |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9132 func Callback(id, status) |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9133 echomsg "sound " .. a:id .. " finished with " .. a:status |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9134 endfunc |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9135 call sound_playevent('bell', 'Callback') |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9136 |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9137 < MS-Windows: {callback} doesn't work for this function. |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9138 |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9139 Returns the sound ID, which can be passed to `sound_stop()`. |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9140 Returns zero if the sound could not be played. |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9141 |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9142 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9143 GetSoundName()->sound_playevent() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9144 |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9145 < {only available when compiled with the |+sound| feature} |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9146 |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9147 *sound_playfile()* |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
9148 sound_playfile({path} [, {callback}]) |
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
9149 Like `sound_playevent()` but play sound file {path}. {path} |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9150 must be a full path. On Ubuntu you may find files to play |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9151 with this command: > |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9152 :!find /usr/share/sounds -type f | grep -v index.theme |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9153 |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9154 < Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9155 GetSoundPath()->sound_playfile() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9156 |
17036 | 9157 < {only available when compiled with the |+sound| feature} |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9158 |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9159 |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9160 sound_stop({id}) *sound_stop()* |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9161 Stop playing sound {id}. {id} must be previously returned by |
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9162 `sound_playevent()` or `sound_playfile()`. |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9163 |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9164 On MS-Windows, this does not work for event sound started by |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9165 `sound_playevent()`. To stop event sounds, use `sound_clear()`. |
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
9166 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9167 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9168 soundid->sound_stop() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9169 |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9170 < {only available when compiled with the |+sound| feature} |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
9171 |
374 | 9172 *soundfold()* |
9173 soundfold({word}) | |
9174 Return the sound-folded equivalent of {word}. Uses the first | |
1621 | 9175 language in 'spelllang' for the current window that supports |
375 | 9176 soundfolding. 'spell' must be set. When no sound folding is |
9177 possible the {word} is returned unmodified. | |
374 | 9178 This can be used for making spelling suggestions. Note that |
9179 the method can be quite slow. | |
9180 | |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9181 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9182 GetWord()->soundfold() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9183 < |
344 | 9184 *spellbadword()* |
532 | 9185 spellbadword([{sentence}]) |
9186 Without argument: The result is the badly spelled word under | |
9187 or after the cursor. The cursor is moved to the start of the | |
9188 bad word. When no bad word is found in the cursor line the | |
9189 result is an empty string and the cursor doesn't move. | |
9190 | |
9191 With argument: The result is the first word in {sentence} that | |
9192 is badly spelled. If there are no spelling mistakes the | |
9193 result is an empty string. | |
9194 | |
9195 The return value is a list with two items: | |
9196 - The badly spelled word or an empty string. | |
9197 - The type of the spelling error: | |
856 | 9198 "bad" spelling mistake |
532 | 9199 "rare" rare word |
9200 "local" word only valid in another region | |
9201 "caps" word should start with Capital | |
9202 Example: > | |
9203 echo spellbadword("the quik brown fox") | |
9204 < ['quik', 'bad'] ~ | |
9205 | |
9206 The spelling information for the current window is used. The | |
9207 'spell' option must be set and the value of 'spelllang' is | |
9208 used. | |
344 | 9209 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9210 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9211 GetText()->spellbadword() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9212 < |
344 | 9213 *spellsuggest()* |
537 | 9214 spellsuggest({word} [, {max} [, {capital}]]) |
685 | 9215 Return a |List| with spelling suggestions to replace {word}. |
344 | 9216 When {max} is given up to this number of suggestions are |
9217 returned. Otherwise up to 25 suggestions are returned. | |
9218 | |
537 | 9219 When the {capital} argument is given and it's non-zero only |
9220 suggestions with a leading capital will be given. Use this | |
9221 after a match with 'spellcapcheck'. | |
9222 | |
344 | 9223 {word} can be a badly spelled word followed by other text. |
9224 This allows for joining two words that were split. The | |
359 | 9225 suggestions also include the following text, thus you can |
9226 replace a line. | |
9227 | |
9228 {word} may also be a good word. Similar words will then be | |
537 | 9229 returned. {word} itself is not included in the suggestions, |
9230 although it may appear capitalized. | |
344 | 9231 |
9232 The spelling information for the current window is used. The | |
375 | 9233 'spell' option must be set and the values of 'spelllang' and |
9234 'spellsuggest' are used. | |
344 | 9235 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9236 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9237 GetWord()->spellsuggest() |
82 | 9238 |
282 | 9239 split({expr} [, {pattern} [, {keepempty}]]) *split()* |
685 | 9240 Make a |List| out of {expr}. When {pattern} is omitted or |
9241 empty each white-separated sequence of characters becomes an | |
9242 item. | |
82 | 9243 Otherwise the string is split where {pattern} matches, |
3920 | 9244 removing the matched characters. 'ignorecase' is not used |
9245 here, add \c to ignore case. |/\c| | |
282 | 9246 When the first or last item is empty it is omitted, unless the |
9247 {keepempty} argument is given and it's non-zero. | |
293 | 9248 Other empty items are kept when {pattern} matches at least one |
9249 character or when {keepempty} is non-zero. | |
82 | 9250 Example: > |
95 | 9251 :let words = split(getline('.'), '\W\+') |
282 | 9252 < To split a string in individual characters: > |
236 | 9253 :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
|
9254 < 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
|
9255 the end of the pattern: > |
258 | 9256 :echo split('abc:def:ghi', ':\zs') |
9257 < ['abc:', 'def:', 'ghi'] ~ | |
282 | 9258 Splitting a table where the first element can be empty: > |
9259 :let items = split(line, ':', 1) | |
9260 < The opposite function is |join()|. | |
82 | 9261 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9262 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9263 GetString()->split() |
82 | 9264 |
1621 | 9265 sqrt({expr}) *sqrt()* |
9266 Return the non-negative square root of Float {expr} as a | |
9267 |Float|. | |
9268 {expr} must evaluate to a |Float| or a |Number|. When {expr} | |
9269 is negative the result is NaN (Not a Number). | |
9270 Examples: > | |
9271 :echo sqrt(100) | |
9272 < 10.0 > | |
9273 :echo sqrt(-4.01) | |
9274 < nan | |
1668 | 9275 "nan" may be different, it depends on system libraries. |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9276 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9277 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9278 Compute()->sqrt() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9279 < |
1621 | 9280 {only available when compiled with the |+float| feature} |
12785 | 9281 |
1621 | 9282 |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9283 srand([{expr}]) *srand()* |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9284 Initialize seed used by |rand()|: |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9285 - If {expr} is not given, seed values are initialized by |
18732
2513e666aa82
patch 8.1.2356: rand() does not use the best algorithm
Bram Moolenaar <Bram@vim.org>
parents:
18719
diff
changeset
|
9286 reading from /dev/urandom, if possible, or using time(NULL) |
2513e666aa82
patch 8.1.2356: rand() does not use the best algorithm
Bram Moolenaar <Bram@vim.org>
parents:
18719
diff
changeset
|
9287 a.k.a. epoch time otherwise; this only has second accuracy. |
2513e666aa82
patch 8.1.2356: rand() does not use the best algorithm
Bram Moolenaar <Bram@vim.org>
parents:
18719
diff
changeset
|
9288 - If {expr} is given it must be a Number. It is used to |
2513e666aa82
patch 8.1.2356: rand() does not use the best algorithm
Bram Moolenaar <Bram@vim.org>
parents:
18719
diff
changeset
|
9289 initialize the seed values. This is useful for testing or |
2513e666aa82
patch 8.1.2356: rand() does not use the best algorithm
Bram Moolenaar <Bram@vim.org>
parents:
18719
diff
changeset
|
9290 when a predictable sequence is intended. |
18701
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9291 |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9292 Examples: > |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9293 :let seed = srand() |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9294 :let seed = srand(userinput) |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9295 :echo rand(seed) |
128662297ddf
patch 8.1.2342: random number generator in Vim script is slow
Bram Moolenaar <Bram@vim.org>
parents:
18699
diff
changeset
|
9296 |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9297 state([{what}]) *state()* |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9298 Return a string which contains characters indicating the |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9299 current state. Mostly useful in callbacks that want to do |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9300 work that may not always be safe. Roughly this works like: |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9301 - callback uses state() to check if work is safe to do. |
18130 | 9302 Yes: then do it right away. |
9303 No: add to work queue and add a |SafeState| and/or | |
9304 |SafeStateAgain| autocommand (|SafeState| triggers at | |
9305 toplevel, |SafeStateAgain| triggers after handling | |
9306 messages and callbacks). | |
9307 - When SafeState or SafeStateAgain is triggered and executes | |
9308 your autocommand, check with `state()` if the work can be | |
9309 done now, and if yes remove it from the queue and execute. | |
9310 Remove the autocommand if the queue is now empty. | |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9311 Also see |mode()|. |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9312 |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9313 When {what} is given only characters in this string will be |
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9314 added. E.g, this checks if the screen has scrolled: > |
18130 | 9315 if state('s') == '' |
9316 " screen has not scrolled | |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9317 < |
18116
7f57ea9a4ba8
patch 8.1.2053: SafeStateAgain not triggered if callback uses feedkeys()
Bram Moolenaar <Bram@vim.org>
parents:
18104
diff
changeset
|
9318 These characters indicate the state, generally indicating that |
7f57ea9a4ba8
patch 8.1.2053: SafeStateAgain not triggered if callback uses feedkeys()
Bram Moolenaar <Bram@vim.org>
parents:
18104
diff
changeset
|
9319 something is busy: |
18130 | 9320 m halfway a mapping, :normal command, feedkeys() or |
9321 stuffed command | |
9322 o operator pending or waiting for a command argument, | |
9323 e.g. after |f| | |
9324 a Insert mode autocomplete active | |
9325 x executing an autocommand | |
18343 | 9326 w blocked on waiting, e.g. ch_evalexpr(), ch_read() and |
9327 ch_readraw() when reading json. | |
18130 | 9328 S not triggering SafeState or SafeStateAgain |
9329 c callback invoked, including timer (repeats for | |
9330 recursiveness up to "ccc") | |
9331 s screen has scrolled for messages | |
18104
e59ff7b5d7a7
patch 8.1.2047: cannot check the current state
Bram Moolenaar <Bram@vim.org>
parents:
18080
diff
changeset
|
9332 |
8883
b7de875169e6
commit https://github.com/vim/vim/commit/81edd171a9465cf99cede4fa4a7b7bca3d538b0f
Christian Brabandt <cb@256bit.org>
parents:
8881
diff
changeset
|
9333 str2float({expr}) *str2float()* |
1621 | 9334 Convert String {expr} to a Float. This mostly works the same |
9335 as when using a floating point number in an expression, see | |
9336 |floating-point-format|. But it's a bit more permissive. | |
9337 E.g., "1e40" is accepted, while in an expression you need to | |
15131 | 9338 write "1.0e40". The hexadecimal form "0x123" is also |
9339 accepted, but not others, like binary or octal. | |
1621 | 9340 Text after the number is silently ignored. |
9341 The decimal point is always '.', no matter what the locale is | |
9342 set to. A comma ends the number: "12,345.67" is converted to | |
9343 12.0. You can strip out thousands separators with | |
9344 |substitute()|: > | |
9345 let f = str2float(substitute(text, ',', '', 'g')) | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9346 < |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9347 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9348 let f = text->substitute(',', '', 'g')->str2float() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9349 < |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
9350 {only available when compiled with the |+float| feature} |
1621 | 9351 |
16235
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9352 str2list({expr} [, {utf8}]) *str2list()* |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9353 Return a list containing the number values which represent |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9354 each character in String {expr}. Examples: > |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9355 str2list(" ") returns [32] |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9356 str2list("ABC") returns [65, 66, 67] |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9357 < |list2str()| does the opposite. |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9358 |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9359 When {utf8} is omitted or zero, the current 'encoding' is used. |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9360 With {utf8} set to 1, always treat the String as utf-8 |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9361 characters. With utf-8 composing characters are handled |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9362 properly: > |
219c58b3879c
patch 8.1.1122: char2nr() does not handle composing characters
Bram Moolenaar <Bram@vim.org>
parents:
16231
diff
changeset
|
9363 str2list("á") returns [97, 769] |
1621 | 9364 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9365 < Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9366 GetString()->str2list() |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9367 |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9368 |
18080
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
9369 str2nr({expr} [, {base} [, {quoted}]]) *str2nr()* |
782 | 9370 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
|
9371 {base} is the conversion base, it can be 2, 8, 10 or 16. |
18080
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
9372 When {quoted} is present and non-zero then embedded single |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
9373 quotes are ignored, thus "1'000'000" is a million. |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9374 |
782 | 9375 When {base} is omitted base 10 is used. This also means that |
9376 a leading zero doesn't cause octal conversion to be used, as | |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9377 with the default String to Number conversion. Example: > |
18343 | 9378 let nr = str2nr('0123') |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9379 < |
782 | 9380 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
|
9381 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
|
9382 {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
|
9383 leading "0b" or "0B" is ignored. |
782 | 9384 Text after the number is silently ignored. |
856 | 9385 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9386 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9387 GetText()->str2nr() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9388 |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9389 strcharpart({src}, {start} [, {len}]) *strcharpart()* |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9390 Like |strpart()| but using character index and length instead |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9391 of byte index and length. |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9392 When a character index is used where a character does not |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9393 exist it is assumed to be one character. For example: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9394 strcharpart('abc', -1, 2) |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9395 < results in 'a'. |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9396 |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9397 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9398 GetText()->strcharpart(5) |
782 | 9399 |
6884 | 9400 strchars({expr} [, {skipcc}]) *strchars()* |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9401 The result is a Number, which is the number of characters |
6884 | 9402 in String {expr}. |
9403 When {skipcc} is omitted or zero, composing characters are | |
9404 counted separately. | |
9405 When {skipcc} set to 1, Composing characters are ignored. | |
2339
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9406 Also see |strlen()|, |strdisplaywidth()| and |strwidth()|. |
12785 | 9407 |
6918 | 9408 {skipcc} is only available after 7.4.755. For backward |
9409 compatibility, you can define a wrapper function: > | |
9410 if has("patch-7.4.755") | |
9411 function s:strchars(str, skipcc) | |
9412 return strchars(a:str, a:skipcc) | |
9413 endfunction | |
9414 else | |
9415 function s:strchars(str, skipcc) | |
9416 if a:skipcc | |
9417 return strlen(substitute(a:str, ".", "x", "g")) | |
9418 else | |
9419 return strchars(a:str) | |
9420 endif | |
9421 endfunction | |
9422 endif | |
9423 < | |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9424 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9425 GetText()->strchars() |
6918 | 9426 |
12785 | 9427 strdisplaywidth({expr} [, {col}]) *strdisplaywidth()* |
2339
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9428 The result is a Number, which is the number of display cells |
15878 | 9429 String {expr} occupies on the screen when it starts at {col} |
9430 (first column is zero). When {col} is omitted zero is used. | |
9431 Otherwise it is the screen column where to start. This | |
9432 matters for Tab characters. | |
2343
0703d2fd5749
Last few changes for the 7.3a BETA release.
Bram Moolenaar <bram@vim.org>
parents:
2339
diff
changeset
|
9433 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
|
9434 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
|
9435 'tabstop' and 'display'. |
2339
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9436 When {expr} contains characters with East Asian Width Class |
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9437 Ambiguous, this function's return value depends on 'ambiwidth'. |
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9438 Also see |strlen()|, |strwidth()| and |strchars()|. |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9439 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9440 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9441 GetText()->strdisplaywidth() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9442 |
7 | 9443 strftime({format} [, {time}]) *strftime()* |
9444 The result is a String, which is a formatted date and time, as | |
9445 specified by the {format} string. The given {time} is used, | |
9446 or the current time if no time is given. The accepted | |
9447 {format} depends on your system, thus this is not portable! | |
9448 See the manual page of the C function strftime() for the | |
9449 format. The maximum length of the result is 80 characters. | |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9450 See also |localtime()|, |getftime()| and |strptime()|. |
7 | 9451 The language can be changed with the |:language| command. |
9452 Examples: > | |
9453 :echo strftime("%c") Sun Apr 27 11:49:23 1997 | |
9454 :echo strftime("%Y %b %d %X") 1997 Apr 27 11:53:25 | |
9455 :echo strftime("%y%m%d %T") 970427 11:53:55 | |
9456 :echo strftime("%H:%M") 11:55 | |
9457 :echo strftime("%c", getftime("file.c")) | |
9458 Show mod time of file.c. | |
82 | 9459 < Not available on all systems. To check use: > |
9460 :if exists("*strftime") | |
9461 | |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9462 < Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9463 GetFormat()->strftime() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9464 |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
9465 strgetchar({str}, {index}) *strgetchar()* |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
9466 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
|
9467 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
|
9468 separate characters here. |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
9469 Also see |strcharpart()| and |strchars()|. |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
9470 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9471 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9472 GetText()->strgetchar(5) |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9473 |
133 | 9474 stridx({haystack}, {needle} [, {start}]) *stridx()* |
9475 The result is a Number, which gives the byte index in | |
9476 {haystack} of the first occurrence of the String {needle}. | |
140 | 9477 If {start} is specified, the search starts at index {start}. |
9478 This can be used to find a second match: > | |
2662 | 9479 :let colon1 = stridx(line, ":") |
9480 :let colon2 = stridx(line, ":", colon1 + 1) | |
140 | 9481 < The search is done case-sensitive. |
205 | 9482 For pattern searches use |match()|. |
133 | 9483 -1 is returned if the {needle} does not occur in {haystack}. |
140 | 9484 See also |strridx()|. |
9485 Examples: > | |
7 | 9486 :echo stridx("An Example", "Example") 3 |
9487 :echo stridx("Starting point", "Start") 0 | |
9488 :echo stridx("Starting point", "start") -1 | |
856 | 9489 < *strstr()* *strchr()* |
170 | 9490 stridx() works similar to the C function strstr(). When used |
9491 with a single character it works similar to strchr(). | |
9492 | |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9493 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9494 GetHaystack()->stridx(needle) |
18343 | 9495 < |
55 | 9496 *string()* |
95 | 9497 string({expr}) Return {expr} converted to a String. If {expr} is a Number, |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
9498 Float, String, Blob or a composition of them, then the result |
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
9499 can be parsed back with |eval()|. |
55 | 9500 {expr} type result ~ |
8748
b1a19a2f73f0
commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents:
8738
diff
changeset
|
9501 String 'string' (single quotes are doubled) |
95 | 9502 Number 123 |
1621 | 9503 Float 123.123456 or 1.123456e8 |
99 | 9504 Funcref function('name') |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
9505 Blob 0z00112233.44556677.8899 |
95 | 9506 List [item, item] |
323 | 9507 Dictionary {key: value, key: value} |
8748
b1a19a2f73f0
commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents:
8738
diff
changeset
|
9508 |
b1a19a2f73f0
commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents:
8738
diff
changeset
|
9509 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
|
9510 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
|
9511 will then fail. |
b1a19a2f73f0
commit https://github.com/vim/vim/commit/4f3f668c8486444e53163c29d2fc79bf47eb3c82
Christian Brabandt <cb@256bit.org>
parents:
8738
diff
changeset
|
9512 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9513 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9514 mylist->string() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9515 |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
9516 < Also see |strtrans()|. |
55 | 9517 |
7 | 9518 *strlen()* |
9519 strlen({expr}) The result is a Number, which is the length of the String | |
502 | 9520 {expr} in bytes. |
55 | 9521 If the argument is a Number it is first converted to a String. |
9522 For other types an error is given. | |
6870 | 9523 If you want to count the number of multi-byte characters use |
9524 |strchars()|. | |
9525 Also see |len()|, |strdisplaywidth()| and |strwidth()|. | |
7 | 9526 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9527 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9528 GetString()->strlen() |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9529 |
12785 | 9530 strpart({src}, {start} [, {len}]) *strpart()* |
7 | 9531 The result is a String, which is part of {src}, starting from |
574 | 9532 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
|
9533 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
|
9534 |
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
9535 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
|
9536 result in an error, the bytes are simply omitted. |
7 | 9537 If {len} is missing, the copy continues from {start} till the |
9538 end of the {src}. > | |
9539 strpart("abcdefg", 3, 2) == "de" | |
9540 strpart("abcdefg", -2, 4) == "ab" | |
9541 strpart("abcdefg", 5, 4) == "fg" | |
1621 | 9542 strpart("abcdefg", 3) == "defg" |
8951
0bdeaf7092bc
commit https://github.com/vim/vim/commit/aa3b15dbebf333282503d6031e2f9ba6ee4398ed
Christian Brabandt <cb@256bit.org>
parents:
8883
diff
changeset
|
9543 |
7 | 9544 < Note: To get the first character, {start} must be 0. For |
9545 example, to get three bytes under and after the cursor: > | |
823 | 9546 strpart(getline("."), col(".") - 1, 3) |
7 | 9547 < |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9548 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9549 GetText()->strpart(5) |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9550 |
18669
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9551 strptime({format}, {timestring}) *strptime()* |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9552 The result is a Number, which is a unix timestamp representing |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9553 the date and time in {timestring}, which is expected to match |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9554 the format specified in {format}. |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9555 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9556 The accepted {format} depends on your system, thus this is not |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9557 portable! See the manual page of the C function strptime() |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9558 for the format. Especially avoid "%c". The value of $TZ also |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9559 matters. |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9560 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9561 If the {timestring} cannot be parsed with {format} zero is |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9562 returned. If you do not know the format of {timestring} you |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9563 can try different {format} values until you get a non-zero |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9564 result. |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9565 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9566 See also |strftime()|. |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9567 Examples: > |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9568 :echo strptime("%Y %b %d %X", "1997 Apr 27 11:49:23") |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9569 < 862156163 > |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9570 :echo strftime("%c", strptime("%y%m%d %T", "970427 11:53:55")) |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9571 < Sun Apr 27 11:53:55 1997 > |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9572 :echo strftime("%c", strptime("%Y%m%d%H%M%S", "19970427115355") + 3600) |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9573 < Sun Apr 27 12:53:55 1997 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9574 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9575 Not available on all systems. To check use: > |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9576 :if exists("*strptime") |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9577 |
9007e9896303
patch 8.1.2326: cannot parse a date/time string
Bram Moolenaar <Bram@vim.org>
parents:
18639
diff
changeset
|
9578 |
140 | 9579 strridx({haystack}, {needle} [, {start}]) *strridx()* |
9580 The result is a Number, which gives the byte index in | |
9581 {haystack} of the last occurrence of the String {needle}. | |
9582 When {start} is specified, matches beyond this index are | |
9583 ignored. This can be used to find a match before a previous | |
9584 match: > | |
9585 :let lastcomma = strridx(line, ",") | |
9586 :let comma2 = strridx(line, ",", lastcomma - 1) | |
9587 < The search is done case-sensitive. | |
133 | 9588 For pattern searches use |match()|. |
9589 -1 is returned if the {needle} does not occur in {haystack}. | |
22 | 9590 If the {needle} is empty the length of {haystack} is returned. |
236 | 9591 See also |stridx()|. Examples: > |
7 | 9592 :echo strridx("an angry armadillo", "an") 3 |
856 | 9593 < *strrchr()* |
170 | 9594 When used with a single character it works similar to the C |
9595 function strrchr(). | |
9596 | |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9597 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9598 GetHaystack()->strridx(needle) |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9599 |
7 | 9600 strtrans({expr}) *strtrans()* |
9601 The result is a String, which is {expr} with all unprintable | |
9602 characters translated into printable characters |'isprint'|. | |
9603 Like they are shown in a window. Example: > | |
9604 echo strtrans(@a) | |
9605 < This displays a newline in register a as "^@" instead of | |
9606 starting a new line. | |
9607 | |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9608 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9609 GetString()->strtrans() |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9610 |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9611 strwidth({expr}) *strwidth()* |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9612 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
|
9613 String {expr} occupies. A Tab character is counted as one |
2339
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9614 cell, alternatively use |strdisplaywidth()|. |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9615 When {expr} contains characters with East Asian Width Class |
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9616 Ambiguous, this function's return value depends on 'ambiwidth'. |
2339
01e4b4d37842
Added strdisplaywidth() function.
Bram Moolenaar <bram@vim.org>
parents:
2338
diff
changeset
|
9617 Also see |strlen()|, |strdisplaywidth()| and |strchars()|. |
2338
da6ec32d8d8f
Added strwidth() and strchars() functions.
Bram Moolenaar <bram@vim.org>
parents:
2337
diff
changeset
|
9618 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9619 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9620 GetString()->strwidth() |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9621 |
12785 | 9622 submatch({nr} [, {list}]) *submatch()* *E935* |
2908 | 9623 Only for an expression in a |:substitute| command or |
9624 substitute() function. | |
9625 Returns the {nr}'th submatch of the matched text. When {nr} | |
9626 is 0 the whole matched text is returned. | |
5794 | 9627 Note that a NL in the string can stand for a line break of a |
9628 multi-line match or a NUL character in the text. | |
2908 | 9629 Also see |sub-replace-expression|. |
5794 | 9630 |
12785 | 9631 If {list} is present and non-zero then submatch() returns |
9632 a list of strings, similar to |getline()| with two arguments. | |
5794 | 9633 NL characters in the text represent NUL characters in the |
9634 text. | |
9635 Only returns more than one item for |:substitute|, inside | |
9636 |substitute()| this list will always contain one or zero | |
9637 items, since there are no real line breaks. | |
9638 | |
10245
d76ccdacb41e
commit https://github.com/vim/vim/commit/6100d02aab7c8294b581cb299250eea164b50e9d
Christian Brabandt <cb@256bit.org>
parents:
10244
diff
changeset
|
9639 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
|
9640 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
|
9641 |
12968 | 9642 Examples: > |
7 | 9643 :s/\d\+/\=submatch(0) + 1/ |
12968 | 9644 :echo substitute(text, '\d\+', '\=submatch(0) + 1', '') |
7 | 9645 < This finds the first number in the line and adds one to it. |
9646 A line break is included as a newline character. | |
9647 | |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9648 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9649 GetNr()->submatch() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9650 |
7 | 9651 substitute({expr}, {pat}, {sub}, {flags}) *substitute()* |
9652 The result is a String, which is a copy of {expr}, in which | |
2908 | 9653 the first match of {pat} is replaced with {sub}. |
9654 When {flags} is "g", all matches of {pat} in {expr} are | |
9655 replaced. Otherwise {flags} should be "". | |
12785 | 9656 |
2908 | 9657 This works like the ":substitute" command (without any flags). |
9658 But the matching with {pat} is always done like the 'magic' | |
9659 option is set and 'cpoptions' is empty (to make scripts | |
3967 | 9660 portable). 'ignorecase' is still relevant, use |/\c| or |/\C| |
9661 if you want to ignore or match case and ignore 'ignorecase'. | |
9662 'smartcase' is not used. See |string-match| for how {pat} is | |
9663 used. | |
2908 | 9664 |
9665 A "~" in {sub} is not replaced with the previous {sub}. | |
7 | 9666 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
|
9667 |sub-replace-special|. For example, to replace something with |
7 | 9668 "\n" (two characters), use "\\\\n" or '\\n'. |
2908 | 9669 |
7 | 9670 When {pat} does not match in {expr}, {expr} is returned |
9671 unmodified. | |
2908 | 9672 |
7 | 9673 Example: > |
9626
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
9674 :let &path = substitute(&path, ",\\=[^,]*$", "", "") |
7 | 9675 < 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
|
9676 :echo substitute("testing", ".*", "\\U\\0", "") |
7 | 9677 < results in "TESTING". |
2908 | 9678 |
9679 When {sub} starts with "\=", the remainder is interpreted as | |
9680 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
|
9681 :echo substitute(s, '%\(\x\x\)', |
2833 | 9682 \ '\=nr2char("0x" . submatch(1))', 'g') |
7 | 9683 |
9626
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
9684 < 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
|
9685 optional argument. Example: > |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
9686 :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
|
9687 < 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
|
9688 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
|
9689 |submatch()| returns. Example: > |
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
9690 :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
|
9691 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9692 < Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9693 GetString()->substitute(pat, sub, flags) |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9694 |
14668 | 9695 swapinfo({fname}) *swapinfo()* |
14599
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9696 The result is a dictionary, which holds information about the |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9697 swapfile {fname}. The available fields are: |
14864 | 9698 version Vim version |
14599
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9699 user user name |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9700 host host name |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9701 fname original file name |
14864 | 9702 pid PID of the Vim process that created the swap |
14599
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9703 file |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9704 mtime last modification time in seconds |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9705 inode Optional: INODE number of the file |
14601
d0ff19a55579
patch 8.1.0314: build failure without the +eval feature
Christian Brabandt <cb@256bit.org>
parents:
14599
diff
changeset
|
9706 dirty 1 if file was modified, 0 if not |
14637 | 9707 Note that "user" and "host" are truncated to at most 39 bytes. |
14599
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9708 In case of failure an "error" item is added with the reason: |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9709 Cannot open file: file not found or in accessible |
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9710 Cannot read file: cannot read first block |
14601
d0ff19a55579
patch 8.1.0314: build failure without the +eval feature
Christian Brabandt <cb@256bit.org>
parents:
14599
diff
changeset
|
9711 Not a swap file: does not contain correct block ID |
d0ff19a55579
patch 8.1.0314: build failure without the +eval feature
Christian Brabandt <cb@256bit.org>
parents:
14599
diff
changeset
|
9712 Magic number mismatch: Info in first block is invalid |
14599
72d6f6f7ead7
patch 8.1.0313: information about a swap file is unavailable
Christian Brabandt <cb@256bit.org>
parents:
14587
diff
changeset
|
9713 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9714 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9715 GetFilename()->swapinfo() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9716 |
14778
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9717 swapname({expr}) *swapname()* |
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9718 The result is the swap file path of the buffer {expr}. |
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9719 For the use of {expr}, see |bufname()| above. |
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9720 If buffer {expr} is the current buffer, the result is equal to |
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9721 |:swapname| (unless no swap file). |
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9722 If buffer {expr} has no swap file, returns an empty string. |
20653d6f3d95
patch 8.1.0401: can't get swap name of another buffer
Christian Brabandt <cb@256bit.org>
parents:
14756
diff
changeset
|
9723 |
18017
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9724 Can also be used as a |method|: > |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9725 GetBufname()->swapname() |
988e5a868b60
patch 8.1.2004: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18008
diff
changeset
|
9726 |
32 | 9727 synID({lnum}, {col}, {trans}) *synID()* |
7 | 9728 The result is a Number, which is the syntax ID at the position |
32 | 9729 {lnum} and {col} in the current window. |
7 | 9730 The syntax ID can be used with |synIDattr()| and |
9731 |synIDtrans()| to obtain syntax information about text. | |
419 | 9732 |
32 | 9733 {col} is 1 for the leftmost column, {lnum} is 1 for the first |
419 | 9734 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
|
9735 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
|
9736 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
|
9737 zero. |
419 | 9738 |
9454
9da0cb39cbee
commit https://github.com/vim/vim/commit/79815f1ec77406f2f21a618c053e5793b597db7a
Christian Brabandt <cb@256bit.org>
parents:
9430
diff
changeset
|
9739 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
|
9740 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
|
9741 the effective color. When {trans} is |FALSE|, the transparent |
7 | 9742 item is returned. This is useful when wanting to know which |
9743 syntax item is effective (e.g. inside parens). | |
9744 Warning: This function can be very slow. Best speed is | |
9745 obtained by going through the file in forward direction. | |
9746 | |
9747 Example (echoes the name of the syntax item under the cursor): > | |
9748 :echo synIDattr(synID(line("."), col("."), 1), "name") | |
9749 < | |
2401
e7751177126b
Add the synconcealed() function and use it for :TOhtml. (Benjamin Fritz)
Bram Moolenaar <bram@vim.org>
parents:
2350
diff
changeset
|
9750 |
7 | 9751 synIDattr({synID}, {what} [, {mode}]) *synIDattr()* |
9752 The result is a String, which is the {what} attribute of | |
9753 syntax ID {synID}. This can be used to obtain information | |
9754 about a syntax item. | |
9755 {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
|
9756 for that mode. When {mode} is omitted, or an invalid value is |
7 | 9757 used, the attributes for the currently active highlighting are |
9758 used (GUI, cterm or term). | |
9759 Use synIDtrans() to follow linked highlight groups. | |
9760 {what} result | |
9761 "name" the name of the syntax item | |
9762 "fg" foreground color (GUI: color name used to set | |
9763 the color, cterm: color number as a string, | |
9764 term: empty string) | |
1755 | 9765 "bg" background color (as with "fg") |
2106
15674e198164
updated for version 7.2.389
Bram Moolenaar <bram@zimbu.org>
parents:
2072
diff
changeset
|
9766 "font" font name (only available in the GUI) |
15674e198164
updated for version 7.2.389
Bram Moolenaar <bram@zimbu.org>
parents:
2072
diff
changeset
|
9767 |highlight-font| |
1755 | 9768 "sp" special color (as with "fg") |highlight-guisp| |
7 | 9769 "fg#" like "fg", but for the GUI and the GUI is |
9770 running the name in "#RRGGBB" form | |
9771 "bg#" like "fg#" for "bg" | |
1755 | 9772 "sp#" like "fg#" for "sp" |
7 | 9773 "bold" "1" if bold |
9774 "italic" "1" if italic | |
9775 "reverse" "1" if reverse | |
9776 "inverse" "1" if inverse (= reverse) | |
2106
15674e198164
updated for version 7.2.389
Bram Moolenaar <bram@zimbu.org>
parents:
2072
diff
changeset
|
9777 "standout" "1" if standout |
7 | 9778 "underline" "1" if underlined |
205 | 9779 "undercurl" "1" if undercurled |
12317
2a8890b80923
patch 8.0.1038: strike-through text not supported
Christian Brabandt <cb@256bit.org>
parents:
12311
diff
changeset
|
9780 "strike" "1" if strikethrough |
7 | 9781 |
9782 Example (echoes the color of the syntax item under the | |
9783 cursor): > | |
9784 :echo synIDattr(synIDtrans(synID(line("."), col("."), 1)), "fg") | |
9785 < | |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9786 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9787 :echo synID(line("."), col("."), 1)->synIDtrans()->synIDattr("fg") |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9788 |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9789 |
7 | 9790 synIDtrans({synID}) *synIDtrans()* |
9791 The result is a Number, which is the translated syntax ID of | |
9792 {synID}. This is the syntax group ID of what is being used to | |
9793 highlight the character. Highlight links given with | |
9794 ":highlight link" are followed. | |
9795 | |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9796 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9797 :echo synID(line("."), col("."), 1)->synIDtrans()->synIDattr("fg") |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9798 |
2608
7d8af31066c8
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2596
diff
changeset
|
9799 synconcealed({lnum}, {col}) *synconcealed()* |
11553
cbceef33af7a
patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents:
11549
diff
changeset
|
9800 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
|
9801 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
|
9802 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
|
9803 region, 1 if it is. |
cbceef33af7a
patch 8.0.0659: no test for conceal mode
Christian Brabandt <cb@256bit.org>
parents:
11549
diff
changeset
|
9804 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
|
9805 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
|
9806 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
|
9807 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
|
9808 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
|
9809 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
|
9810 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
|
9811 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
|
9812 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
|
9813 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
|
9814 the text is "123456" and both "23" and "45" are concealed |
14864 | 9815 and replaced by the character "X", then: |
11579
52e3a77c097b
patch 8.0.0672: third item of synconcealed() changes too often
Christian Brabandt <cb@256bit.org>
parents:
11561
diff
changeset
|
9816 call returns ~ |
12254 | 9817 synconcealed(lnum, 1) [0, '', 0] |
9818 synconcealed(lnum, 2) [1, 'X', 1] | |
9819 synconcealed(lnum, 3) [1, 'X', 1] | |
9820 synconcealed(lnum, 4) [1, 'X', 2] | |
9821 synconcealed(lnum, 5) [1, 'X', 2] | |
9822 synconcealed(lnum, 6) [0, '', 0] | |
2608
7d8af31066c8
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2596
diff
changeset
|
9823 |
7d8af31066c8
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2596
diff
changeset
|
9824 |
1500 | 9825 synstack({lnum}, {col}) *synstack()* |
9826 Return a |List|, which is the stack of syntax items at the | |
9827 position {lnum} and {col} in the current window. Each item in | |
9828 the List is an ID like what |synID()| returns. | |
9829 The first item in the List is the outer region, following are | |
9830 items contained in that one. The last one is what |synID()| | |
9831 returns, unless not the whole item is highlighted or it is a | |
9832 transparent item. | |
9833 This function is useful for debugging a syntax file. | |
9834 Example that shows the syntax stack under the cursor: > | |
9835 for id in synstack(line("."), col(".")) | |
9836 echo synIDattr(id, "name") | |
9837 endfor | |
2290
22529abcd646
Fixed ":s" message. Docs updates.
Bram Moolenaar <bram@vim.org>
parents:
2281
diff
changeset
|
9838 < 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
|
9839 nothing is returned. The position just after the last |
22529abcd646
Fixed ":s" message. Docs updates.
Bram Moolenaar <bram@vim.org>
parents:
2281
diff
changeset
|
9840 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
|
9841 valid positions. |
1500 | 9842 |
24 | 9843 system({expr} [, {input}]) *system()* *E677* |
5808 | 9844 Get the output of the shell command {expr} as a string. See |
9845 |systemlist()| to get the output as a List. | |
5806 | 9846 |
12785 | 9847 When {input} is given and is a string this string is written |
9848 to a file and passed as stdin to the command. The string is | |
9849 written as-is, you need to take care of using the correct line | |
5806 | 9850 separators yourself. |
9851 If {input} is given and is a |List| it is written to the file | |
9852 in a way |writefile()| does with {binary} set to "b" (i.e. | |
9853 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
|
9854 list items converted to NULs). |
7232cd9f8a7c
commit https://github.com/vim/vim/commit/12c4492dd35e0cd83c8816be2ec849b836109882
Christian Brabandt <cb@256bit.org>
parents:
10449
diff
changeset
|
9855 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
|
9856 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
|
9857 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
|
9858 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
|
9859 |
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
9860 Pipes are not used, the 'shelltemp' option is not used. |
5806 | 9861 |
10038
7cf4e210cf3c
commit https://github.com/vim/vim/commit/04186095346daa60e82e981dad114de2b641d672
Christian Brabandt <cb@256bit.org>
parents:
10027
diff
changeset
|
9862 When prepended by |:silent| the terminal will not be set to |
6183 | 9863 cooked mode. This is meant to be used for commands that do |
9864 not need the user to type. It avoids stray characters showing | |
9865 up on the screen which require |CTRL-L| to remove. > | |
9866 :silent let f = system('ls *.vim') | |
9867 < | |
12785 | 9868 Note: Use |shellescape()| or |::S| with |expand()| or |
9869 |fnamemodify()| to escape special characters in a command | |
9870 argument. Newlines in {expr} may cause the command to fail. | |
9871 The characters in 'shellquote' and 'shellxquote' may also | |
5690 | 9872 cause trouble. |
7 | 9873 This is not to be used for interactive commands. |
1661 | 9874 |
7 | 9875 The result is a String. Example: > |
1661 | 9876 :let files = system("ls " . shellescape(expand('%:h'))) |
5690 | 9877 :let files = system('ls ' . expand('%:h:S')) |
7 | 9878 |
9879 < To make the result more system-independent, the shell output | |
9880 is filtered to replace <CR> with <NL> for Macintosh, and | |
9881 <CR><NL> with <NL> for DOS-like systems. | |
5277 | 9882 To avoid the string being truncated at a NUL, all NUL |
9883 characters are replaced with SOH (0x01). | |
9884 | |
7 | 9885 The command executed is constructed using several options: |
9886 'shell' 'shellcmdflag' 'shellxquote' {expr} 'shellredir' {tmp} 'shellxquote' | |
9887 ({tmp} is an automatically generated file name). | |
18912
ccd16426a1f9
patch 8.2.0017: OS/2 and MS-DOS are still mentioned
Bram Moolenaar <Bram@vim.org>
parents:
18879
diff
changeset
|
9888 For Unix, braces are put around {expr} to allow for |
7 | 9889 concatenated commands. |
9890 | |
794 | 9891 The command will be executed in "cooked" mode, so that a |
9892 CTRL-C will interrupt the command (on Unix at least). | |
9893 | |
7 | 9894 The resulting error code can be found in |v:shell_error|. |
9895 This function will fail in |restricted-mode|. | |
625 | 9896 |
9897 Note that any wrong value in the options mentioned above may | |
9898 make the function fail. It has also been reported to fail | |
9899 when using a security agent application. | |
7 | 9900 Unlike ":!cmd" there is no automatic check for changed files. |
9901 Use |:checktime| to force a check. | |
9902 | |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9903 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9904 :echo GetCmd()->system() |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9905 |
205 | 9906 |
5808 | 9907 systemlist({expr} [, {input}]) *systemlist()* |
12785 | 9908 Same as |system()|, but returns a |List| with lines (parts of |
9909 output separated by NL) with NULs transformed into NLs. Output | |
9910 is the same as |readfile()| will output with {binary} argument | |
18186 | 9911 set to "b", except that there is no extra empty item when the |
9912 result ends in a NL. | |
9913 Note that on MS-Windows you may get trailing CR characters. | |
9914 | |
9915 To see the difference between "echo hello" and "echo -n hello" | |
9916 use |system()| and |split()|: > | |
9917 echo system('echo hello')->split('\n', 1) | |
9918 < | |
8577
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
9919 Returns an empty string on error. |
5808 | 9920 |
17624
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9921 Can also be used as a |method|: > |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9922 :echo GetCmd()->systemlist() |
4c7097a980a5
patch 8.1.1809: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17620
diff
changeset
|
9923 |
5808 | 9924 |
677 | 9925 tabpagebuflist([{arg}]) *tabpagebuflist()* |
685 | 9926 The result is a |List|, where each item is the number of the |
677 | 9927 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
|
9928 {arg} specifies the number of the tab page to be used. When |
677 | 9929 omitted the current tab page is used. |
9930 When {arg} is invalid the number zero is returned. | |
9931 To get a list of all buffers in all tabs use this: > | |
3445 | 9932 let buflist = [] |
677 | 9933 for i in range(tabpagenr('$')) |
3445 | 9934 call extend(buflist, tabpagebuflist(i + 1)) |
677 | 9935 endfor |
9936 < Note that a buffer may appear in more than one window. | |
9937 | |
18031
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
9938 Can also be used as a |method|: > |
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
9939 GetTabpage()->tabpagebuflist() |
677 | 9940 |
9941 tabpagenr([{arg}]) *tabpagenr()* | |
674 | 9942 The result is a Number, which is the number of the current |
9943 tab page. The first tab page has number 1. | |
9944 When the optional argument is "$", the number of the last tab | |
9945 page is returned (the tab page count). | |
9946 The number can be used with the |:tab| command. | |
9947 | |
9948 | |
5763 | 9949 tabpagewinnr({tabarg} [, {arg}]) *tabpagewinnr()* |
2569
f612f6b0b883
Docs fix for tabpagewinnr(). (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2561
diff
changeset
|
9950 Like |winnr()| but for tab page {tabarg}. |
677 | 9951 {tabarg} specifies the number of tab page to be used. |
9952 {arg} is used like with |winnr()|: | |
9953 - When omitted the current window number is returned. This is | |
9954 the window which will be used when going to this tab page. | |
9955 - When "$" the number of windows is returned. | |
9956 - When "#" the previous window nr is returned. | |
9957 Useful examples: > | |
9958 tabpagewinnr(1) " current window of tab page 1 | |
9959 tabpagewinnr(4, '$') " number of windows in tab page 4 | |
9960 < When {tabarg} is invalid zero is returned. | |
9961 | |
18031
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
9962 Can also be used as a |method|: > |
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
9963 GetTabpage()->tabpagewinnr() |
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
9964 < |
805 | 9965 *tagfiles()* |
9966 tagfiles() Returns a |List| with the file names used to search for tags | |
9967 for the current buffer. This is the 'tags' option expanded. | |
9968 | |
9969 | |
12785 | 9970 taglist({expr} [, {filename}]) *taglist()* |
205 | 9971 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
|
9972 |
d3415ec1cdaf
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
11211
diff
changeset
|
9973 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
|
9974 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
|
9975 {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
|
9976 |
438 | 9977 Each list item is a dictionary with at least the following |
9978 entries: | |
648 | 9979 name Name of the tag. |
9980 filename Name of the file where the tag is | |
1156 | 9981 defined. It is either relative to the |
9982 current directory or a full path. | |
205 | 9983 cmd Ex command used to locate the tag in |
9984 the file. | |
648 | 9985 kind Type of the tag. The value for this |
205 | 9986 entry depends on the language specific |
1156 | 9987 kind values. Only available when |
9988 using a tags file generated by | |
9989 Exuberant ctags or hdrtag. | |
648 | 9990 static A file specific tag. Refer to |
205 | 9991 |static-tag| for more information. |
1156 | 9992 More entries may be present, depending on the content of the |
9993 tags file: access, implementation, inherits and signature. | |
9994 Refer to the ctags documentation for information about these | |
9995 fields. For C code the fields "struct", "class" and "enum" | |
9996 may appear, they give the name of the entity the tag is | |
9997 contained in. | |
452 | 9998 |
11062 | 9999 The ex-command "cmd" can be either an ex search pattern, a |
216 | 10000 line number or a line number followed by a byte number. |
205 | 10001 |
10002 If there are no matching tags, then an empty list is returned. | |
10003 | |
10004 To get an exact tag match, the anchors '^' and '$' should be | |
4073 | 10005 used in {expr}. This also make the function work faster. |
10006 Refer to |tag-regexp| for more information about the tag | |
10007 search regular expression pattern. | |
205 | 10008 |
10009 Refer to |'tags'| for information about how the tags file is | |
10010 located by Vim. Refer to |tags-file-format| for the format of | |
10011 the tags file generated by the different ctags tools. | |
10012 | |
18031
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
10013 Can also be used as a |method|: > |
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
10014 GetTagpattern()->taglist() |
8a2fb21c23c0
patch 8.1.2011: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18017
diff
changeset
|
10015 |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10016 tan({expr}) *tan()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
10017 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
|
10018 in the range [-inf, inf]. |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
10019 {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
|
10020 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10021 :echo tan(10) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10022 < 0.648361 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10023 :echo tan(-4.01) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10024 < -1.181502 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10025 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10026 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10027 Compute()->tan() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10028 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
10029 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10030 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10031 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10032 tanh({expr}) *tanh()* |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
10033 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
|
10034 range [-1, 1]. |
2337
a0f87fc19d1d
Better conceal in help. (partly by Dominique Pelle)
Bram Moolenaar <bram@vim.org>
parents:
2320
diff
changeset
|
10035 {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
|
10036 Examples: > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10037 :echo tanh(0.5) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10038 < 0.462117 > |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10039 :echo tanh(-1) |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10040 < -0.761594 |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10041 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10042 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10043 Compute()->tanh() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10044 < |
2570
71b56b4e7785
Make the references to features in the help more consistent. (Sylvain Hitier)
Bram Moolenaar <bram@vim.org>
parents:
2569
diff
changeset
|
10045 {only available when compiled with the |+float| feature} |
2206
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10046 |
a8afba7027ae
Add extra floating point functions.
Bram Moolenaar <bram@vim.org>
parents:
2154
diff
changeset
|
10047 |
9108
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
10048 tempname() *tempname()* *temp-file-name* |
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
10049 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
|
10050 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
|
10051 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
|
10052 :let tmpfile = tempname() |
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
10053 :exe "redir > " . tmpfile |
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
10054 < 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
|
10055 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
|
10056 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
|
10057 |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
10058 |
17259
6dbb9b3c53e2
patch 8.1.1629: terminal function help is in the wrong file
Bram Moolenaar <Bram@vim.org>
parents:
17257
diff
changeset
|
10059 term_ functions are documented here: |terminal-function-details| |
9108
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
10060 |
17571 | 10061 test_ functions are documented here: |test-functions-details| |
17456
e414281d8bb4
patch 8.1.1726: the eval.txt help file is too big
Bram Moolenaar <Bram@vim.org>
parents:
17450
diff
changeset
|
10062 |
9108
d319453f62b3
commit https://github.com/vim/vim/commit/574860b5ee9da281c875dad07a607454e135eaee
Christian Brabandt <cb@256bit.org>
parents:
9104
diff
changeset
|
10063 |
9790
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10064 *timer_info()* |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10065 timer_info([{id}]) |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10066 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
|
10067 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
|
10068 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
|
10069 returned. |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10070 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
|
10071 |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10072 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
|
10073 these items: |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10074 "id" the timer ID |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10075 "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
|
10076 "remaining" time until the timer fires |
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10077 "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
|
10078 -1 means forever |
9790
34cc6a101340
commit https://github.com/vim/vim/commit/8e97bd74b5377753597e3d98e7123d8985c7fffd
Christian Brabandt <cb@256bit.org>
parents:
9737
diff
changeset
|
10079 "callback" the callback |
9810
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10080 "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
|
10081 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10082 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10083 GetTimer()->timer_info() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10084 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10085 < {only available when compiled with the |+timers| feature} |
9810
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10086 |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10087 timer_pause({timer}, {paused}) *timer_pause()* |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10088 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
|
10089 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
|
10090 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
|
10091 has passed. |
9810
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10092 |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10093 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
|
10094 for a short time. |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10095 |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10096 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
|
10097 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
|
10098 See |non-zero-arg|. |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10099 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10100 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10101 GetTimer()->timer_pause(1) |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10102 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10103 < {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
|
10104 |
9887
b4da19b7539f
commit https://github.com/vim/vim/commit/dc1f1645cb495fa6bfbe216d7359f23539a0e25d
Christian Brabandt <cb@256bit.org>
parents:
9881
diff
changeset
|
10105 *timer_start()* *timer* *timers* |
8577
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10106 timer_start({time}, {callback} [, {options}]) |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10107 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
|
10108 |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10109 {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
|
10110 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
|
10111 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
|
10112 |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10113 {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
|
10114 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
|
10115 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
|
10116 waiting for input. |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10117 |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10118 {options} is a dictionary. Supported entries: |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10119 "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
|
10120 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
|
10121 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
|
10122 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
|
10123 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
|
10124 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
|
10125 messages. |
8577
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10126 |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10127 Example: > |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10128 func MyHandler(timer) |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10129 echo 'Handler called' |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10130 endfunc |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10131 let timer = timer_start(500, 'MyHandler', |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10132 \ {'repeat': 3}) |
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10133 < 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
|
10134 intervals. |
9810
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10135 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10136 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10137 GetMsec()->timer_start(callback) |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10138 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10139 < Not available in the |sandbox|. |
8577
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10140 {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
|
10141 |
8669
06848fe9c816
commit https://github.com/vim/vim/commit/03602ec28ed25739e88b2c835adb0662d3720bb2
Christian Brabandt <cb@256bit.org>
parents:
8577
diff
changeset
|
10142 timer_stop({timer}) *timer_stop()* |
9097
071f9da012fb
commit https://github.com/vim/vim/commit/06d2d38ab7564e1f784b1058a4ef4580cd6d1810
Christian Brabandt <cb@256bit.org>
parents:
9076
diff
changeset
|
10143 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
|
10144 {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
|
10145 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
|
10146 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10147 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10148 GetTimer()->timer_stop() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10149 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10150 < {only available when compiled with the |+timers| feature} |
9810
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10151 |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10152 timer_stopall() *timer_stopall()* |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10153 Stop all timers. The timer callbacks will no longer be |
17366
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
10154 invoked. Useful if a timer is misbehaving. If there are no |
9843fbfa0ee5
patch 8.1.1682: placing a larger number of signs is slow
Bram Moolenaar <Bram@vim.org>
parents:
17292
diff
changeset
|
10155 timers there is no error. |
9810
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10156 |
6a28d0c6f929
commit https://github.com/vim/vim/commit/b73598e2f022a22fec512ea681c70d2775e8fd87
Christian Brabandt <cb@256bit.org>
parents:
9790
diff
changeset
|
10157 {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
|
10158 |
7 | 10159 tolower({expr}) *tolower()* |
10160 The result is a copy of the String given, with all uppercase | |
10161 characters turned into lowercase (just like applying |gu| to | |
10162 the string). | |
10163 | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10164 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10165 GetText()->tolower() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10166 |
7 | 10167 toupper({expr}) *toupper()* |
10168 The result is a copy of the String given, with all lowercase | |
10169 characters turned into uppercase (just like applying |gU| to | |
10170 the string). | |
10171 | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10172 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10173 GetText()->toupper() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10174 |
15 | 10175 tr({src}, {fromstr}, {tostr}) *tr()* |
10176 The result is a copy of the {src} string with all characters | |
10177 which appear in {fromstr} replaced by the character in that | |
10178 position in the {tostr} string. Thus the first character in | |
10179 {fromstr} is translated into the first character in {tostr} | |
10180 and so on. Exactly like the unix "tr" command. | |
10181 This code also deals with multibyte characters properly. | |
10182 | |
10183 Examples: > | |
10184 echo tr("hello there", "ht", "HT") | |
10185 < returns "Hello THere" > | |
10186 echo tr("<blob>", "<>", "{}") | |
10187 < returns "{blob}" | |
10188 | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10189 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10190 GetText()->tr(from, to) |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10191 |
14519 | 10192 trim({text} [, {mask}]) *trim()* |
13513
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10193 Return {text} as a String where any character in {mask} is |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10194 removed from the beginning and end of {text}. |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10195 If {mask} is not given, {mask} is all characters up to 0x20, |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10196 which includes Tab, space, NL and CR, plus the non-breaking |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10197 space character 0xa0. |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10198 This code deals with multibyte characters properly. |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10199 |
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10200 Examples: > |
13563 | 10201 echo trim(" some text ") |
10202 < returns "some text" > | |
10203 echo trim(" \r\t\t\r RESERVE \t\n\x0B\xA0") . "_TAIL" | |
13513
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10204 < returns "RESERVE_TAIL" > |
13563 | 10205 echo trim("rm<Xrm<>X>rrm", "rm<>") |
10206 < returns "Xrm<>X" (characters in the middle are not removed) | |
13513
4064f342bea4
patch 8.0.1630: trimming white space is not that easy
Christian Brabandt <cb@256bit.org>
parents:
13501
diff
changeset
|
10207 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10208 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10209 GetText()->trim() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10210 |
1621 | 10211 trunc({expr}) *trunc()* |
1668 | 10212 Return the largest integral value with magnitude less than or |
1621 | 10213 equal to {expr} as a |Float| (truncate towards zero). |
10214 {expr} must evaluate to a |Float| or a |Number|. | |
10215 Examples: > | |
10216 echo trunc(1.456) | |
10217 < 1.0 > | |
10218 echo trunc(-5.456) | |
10219 < -5.0 > | |
10220 echo trunc(4.0) | |
10221 < 4.0 | |
17765
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10222 |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10223 Can also be used as a |method|: > |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10224 Compute()->trunc() |
545119cd5554
patch 8.1.1879: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17758
diff
changeset
|
10225 < |
1621 | 10226 {only available when compiled with the |+float| feature} |
12785 | 10227 |
87 | 10228 *type()* |
9626
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10229 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
|
10230 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
|
10231 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
|
10232 Number: 0 |v:t_number| |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10233 String: 1 |v:t_string| |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10234 Funcref: 2 |v:t_func| |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10235 List: 3 |v:t_list| |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10236 Dictionary: 4 |v:t_dict| |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10237 Float: 5 |v:t_float| |
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10238 Boolean: 6 |v:t_bool| (v:false and v:true) |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10239 None: 7 |v:t_none| (v:null and v:none) |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10240 Job: 8 |v:t_job| |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10241 Channel: 9 |v:t_channel| |
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10242 Blob: 10 |v:t_blob| |
9626
172131507c85
commit https://github.com/vim/vim/commit/df48fb456fb6bf63d94cad9b302ff01d8ee8d311
Christian Brabandt <cb@256bit.org>
parents:
9587
diff
changeset
|
10243 For backward compatibility, this method can be used: > |
87 | 10244 :if type(myvar) == type(0) |
10245 :if type(myvar) == type("") | |
10246 :if type(myvar) == type(function("tr")) | |
10247 :if type(myvar) == type([]) | |
153 | 10248 :if type(myvar) == type({}) |
1621 | 10249 :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
|
10250 :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
|
10251 :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
|
10252 < 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
|
10253 :if exists('v:t_number') |
7 | 10254 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10255 < Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10256 mylist->type() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10257 |
2236
dc2e5ec0500d
Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
2226
diff
changeset
|
10258 undofile({name}) *undofile()* |
dc2e5ec0500d
Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
2226
diff
changeset
|
10259 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
|
10260 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
|
10261 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
|
10262 the undo file exists. |
2249
6d3d35ff2c2b
Use full path in undofile(). Updated docs.
Bram Moolenaar <bram@vim.org>
parents:
2236
diff
changeset
|
10263 {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
|
10264 is used internally. |
3507
8201108e9cf0
More runtime file fixes for 'compatible' mode.
Bram Moolenaar <bram@vim.org>
parents:
3492
diff
changeset
|
10265 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
|
10266 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
|
10267 Useful in combination with |:wundo| and |:rundo|. |
15378
0d76dd701e49
patch 8.1.0697: ":sign place" requires the buffer argument
Bram Moolenaar <Bram@vim.org>
parents:
15335
diff
changeset
|
10268 When compiled without the |+persistent_undo| option this always |
2236
dc2e5ec0500d
Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
2226
diff
changeset
|
10269 returns an empty string. |
dc2e5ec0500d
Added the undofile() function. Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
2226
diff
changeset
|
10270 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10271 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10272 GetFilename()->undofile() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10273 |
2280
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10274 undotree() *undotree()* |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10275 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
|
10276 the following items: |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10277 "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
|
10278 "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
|
10279 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
|
10280 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
|
10281 "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
|
10282 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
|
10283 something readable. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10284 "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
|
10285 write yet. |
2281
e41433ea71df
Added ":earlier 1f" and ":later 1f".
Bram Moolenaar <bram@vim.org>
parents:
2280
diff
changeset
|
10286 "save_cur" Number of the current position in the undo |
12785 | 10287 tree. |
2280
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10288 "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
|
10289 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
|
10290 user. See |undo-blocks|. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10291 "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
|
10292 undo blocks. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10293 |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10294 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
|
10295 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
|
10296 "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
|
10297 |:undolist|. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10298 "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
|
10299 |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
|
10300 "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
|
10301 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
|
10302 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
|
10303 "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
|
10304 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
|
10305 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
|
10306 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
|
10307 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
|
10308 not appear anywhere. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10309 "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
|
10310 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
|
10311 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
|
10312 "save_last" mentioned above. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10313 "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
|
10314 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
|
10315 item. |
941ff1cd317a
Add file save counter to undo information. Add undotree() function.
Bram Moolenaar <bram@vim.org>
parents:
2252
diff
changeset
|
10316 |
5747 | 10317 uniq({list} [, {func} [, {dict}]]) *uniq()* *E882* |
10318 Remove second and succeeding copies of repeated adjacent | |
10319 {list} items in-place. Returns {list}. If you want a list | |
10320 to remain unmodified make a copy first: > | |
10321 :let newlist = uniq(copy(mylist)) | |
10322 < The default compare function uses the string representation of | |
10323 each item. For the use of {func} and {dict} see |sort()|. | |
10324 | |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10325 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10326 mylist->uniq() |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10327 |
140 | 10328 values({dict}) *values()* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
10329 Return a |List| with all the values of {dict}. The |List| is |
15571
4af72c724093
patch 8.1.0793: incorrect error messages for functions that take a Blob
Bram Moolenaar <Bram@vim.org>
parents:
15512
diff
changeset
|
10330 in arbitrary order. Also see |items()| and |keys()|. |
140 | 10331 |
17612
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10332 Can also be used as a |method|: > |
e259d11e2900
patch 8.1.1803: all builtin functions are global
Bram Moolenaar <Bram@vim.org>
parents:
17571
diff
changeset
|
10333 mydict->values() |
140 | 10334 |
7 | 10335 virtcol({expr}) *virtcol()* |
10336 The result is a Number, which is the screen column of the file | |
10337 position given with {expr}. That is, the last screen position | |
10338 occupied by the character at that position, when the screen | |
10339 would be of unlimited width. When there is a <Tab> at the | |
10340 position, the returned Number will be the column at the end of | |
10341 the <Tab>. For example, for a <Tab> in column 1, with 'ts' | |
3445 | 10342 set to 8, it returns 8. |conceal| is ignored. |
1317 | 10343 For the byte position use |col()|. |
10344 For the use of {expr} see |col()|. | |
10345 When 'virtualedit' is used {expr} can be [lnum, col, off], where | |
703 | 10346 "off" is the offset in screen columns from the start of the |
1266 | 10347 character. E.g., a position within a <Tab> or after the last |
2965 | 10348 character. When "off" is omitted zero is used. |
7 | 10349 When Virtual editing is active in the current mode, a position |
10350 beyond the end of the line can be returned. |'virtualedit'| | |
10351 The accepted positions are: | |
10352 . the cursor position | |
10353 $ the end of the cursor line (the result is the | |
10354 number of displayed characters in the cursor line | |
10355 plus one) | |
10356 'x position of mark x (if the mark is not set, 0 is | |
10357 returned) | |
6447 | 10358 v In Visual mode: the start of the Visual area (the |
10359 cursor is the end). When not in Visual mode | |
10360 returns the cursor position. Differs from |'<| in | |
10361 that it's updated right away. | |
7 | 10362 Note that only marks in the current file can be used. |
10363 Examples: > | |
10364 virtcol(".") with text "foo^Lbar", with cursor on the "^L", returns 5 | |
10365 virtcol("$") with text "foo^Lbar", returns 9 | |
1621 | 10366 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
|
10367 < The first column is 1. 0 is returned for an error. |
1156 | 10368 A more advanced example that echoes the maximum length of |
10369 all lines: > | |
10370 echo max(map(range(1, line('$')), "virtcol([v:val, '$'])")) | |
10371 | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10372 < Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10373 GetPos()->virtcol() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10374 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10375 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10376 visualmode([{expr}]) *visualmode()* |
7 | 10377 The result is a String, which describes the last Visual mode |
856 | 10378 used in the current buffer. Initially it returns an empty |
10379 string, but once Visual mode has been used, it returns "v", | |
10380 "V", or "<CTRL-V>" (a single CTRL-V character) for | |
10381 character-wise, line-wise, or block-wise Visual mode | |
10382 respectively. | |
7 | 10383 Example: > |
10384 :exe "normal " . visualmode() | |
10385 < This enters the same Visual mode as before. It is also useful | |
10386 in scripts if you wish to act differently depending on the | |
10387 Visual mode that was used. | |
1621 | 10388 If Visual mode is active, use |mode()| to get the Visual mode |
10389 (e.g., in a |:vmap|). | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10390 If {expr} is supplied and it evaluates to a non-zero Number or |
1661 | 10391 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
|
10392 the old value is returned. See |non-zero-arg|. |
7 | 10393 |
4151 | 10394 wildmenumode() *wildmenumode()* |
9422
f93704b11e43
commit https://github.com/vim/vim/commit/e381d3d5e098546854b008e01ca1d28ba1a4a057
Christian Brabandt <cb@256bit.org>
parents:
9416
diff
changeset
|
10395 Returns |TRUE| when the wildmenu is active and |FALSE| |
4151 | 10396 otherwise. See 'wildmenu' and 'wildmode'. |
10397 This can be used in mappings to handle the 'wildcharm' option | |
10398 gracefully. (Makes only sense with |mapmode-c| mappings). | |
10399 | |
10400 For example to make <c-j> work like <down> in wildmode, use: > | |
10401 :cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>" | |
10402 < | |
10403 (Note, this needs the 'wildcharm' option set appropriately). | |
10404 | |
16833
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
10405 win_execute({id}, {command} [, {silent}]) *win_execute()* |
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
10406 Like `execute()` but in the context of window {id}. |
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
10407 The window will temporarily be made the current window, |
16849
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
10408 without triggering autocommands. When executing {command} |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
10409 autocommands will be triggered, this may have unexpected side |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
10410 effects. Use |:noautocmd| if needed. |
16833
6699c03347d2
patch 8.1.1418: win_execute() is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
16808
diff
changeset
|
10411 Example: > |
16849
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
10412 call win_execute(winid, 'set syntax=python') |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
10413 < Doing the same with `setwinvar()` would not trigger |
629f3d3b6886
patch 8.1.1426: no test for syntax highlight in popup window
Bram Moolenaar <Bram@vim.org>
parents:
16833
diff
changeset
|
10414 autocommands and not actually show syntax highlighting. |
16944 | 10415 *E994* |
10416 Not all commands are allowed in popup windows. | |
17758 | 10417 When window {id} does not exist then no error is given. |
4151 | 10418 |
18343 | 10419 Can also be used as a |method|, the base is passed as the |
10420 second argument: > | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10421 GetCommand()->win_execute(winid) |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10422 |
8536
09041d2fd7d0
commit https://github.com/vim/vim/commit/9cdf86b86f5fdb5a45b682f336846f9d9a9c6f1f
Christian Brabandt <cb@256bit.org>
parents:
8534
diff
changeset
|
10423 win_findbuf({bufnr}) *win_findbuf()* |
9908
2b6654519a7c
commit https://github.com/vim/vim/commit/7571d55f7dcc009a375b2124cce2c8b21f361234
Christian Brabandt <cb@256bit.org>
parents:
9904
diff
changeset
|
10424 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
|
10425 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
|
10426 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10427 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10428 GetBufnr()->win_findbuf() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10429 |
8534
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10430 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
|
10431 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
|
10432 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
|
10433 With {win} this is the window number. The top window has |
14999 | 10434 number 1. |
8534
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10435 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
|
10436 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
|
10437 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
|
10438 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10439 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10440 GetWinnr()->win_getid() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10441 |
19398
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10442 |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10443 win_gettype([{nr}]) *win_gettype()* |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10444 Return the type of the window: |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10445 "popup" popup window |popup| |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10446 "command" command-line window |cmdwin| |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10447 (empty) normal window |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10448 "unknown" window {nr} not found |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10449 |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10450 When {nr} is omitted return the type of the current window. |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10451 When {nr} is given return the type of this window by number or |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10452 |window-ID|. |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10453 |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10454 Also see the 'buftype' option. When running a terminal in a |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10455 popup window then 'buftype' is "terminal" and win_gettype() |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10456 returns "popup". |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10457 |
f0033a10b613
patch 8.2.0257: cannot recognize a terminal in a popup window
Bram Moolenaar <Bram@vim.org>
parents:
19384
diff
changeset
|
10458 |
8534
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10459 win_gotoid({expr}) *win_gotoid()* |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10460 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
|
10461 tabpage. |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10462 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
|
10463 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10464 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10465 GetWinid()->win_gotoid() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10466 |
8876
47f17f66da3d
commit https://github.com/vim/vim/commit/03413f44167c4b5cd0012def9bb331e2518c83cf
Christian Brabandt <cb@256bit.org>
parents:
8831
diff
changeset
|
10467 win_id2tabwin({expr}) *win_id2tabwin()* |
8534
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10468 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
|
10469 with ID {expr}: [tabnr, winnr]. |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10470 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
|
10471 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10472 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10473 GetWinid()->win_id2tabwin() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10474 |
8534
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10475 win_id2win({expr}) *win_id2win()* |
485d4d8a97f6
commit https://github.com/vim/vim/commit/86edef664efccbfe685906c854b9cdd04e56f2d5
Christian Brabandt <cb@256bit.org>
parents:
8512
diff
changeset
|
10476 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
|
10477 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
|
10478 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10479 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10480 GetWinid()->win_id2win() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10481 |
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
|
10482 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
|
10483 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
|
10484 numbers: [row, col]. The first window always has position |
14343
7589f103ec11
patch 8.1.0187: getwininfo() and win_screenpos() return different numbers
Christian Brabandt <cb@256bit.org>
parents:
14337
diff
changeset
|
10485 [1, 1], unless there is a tabline, then it is [2, 1]. |
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
|
10486 {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
|
10487 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
|
10488 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
|
10489 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10490 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10491 GetWinid()->win_screenpos() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10492 < |
18049
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10493 win_splitmove({nr}, {target} [, {options}]) *win_splitmove()* |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10494 Move the window {nr} to a new split of the window {target}. |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10495 This is similar to moving to {target}, creating a new window |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10496 using |:split| but having the same contents as window {nr}, and |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10497 then closing {nr}. |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10498 |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10499 Both {nr} and {target} can be window numbers or |window-ID|s. |
19099 | 10500 Both must be in the current tab page. |
18049
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10501 |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10502 Returns zero for success, non-zero for failure. |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10503 |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10504 {options} is a Dictionary with the following optional entries: |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10505 "vertical" When TRUE, the split is created vertically, |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10506 like with |:vsplit|. |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10507 "rightbelow" When TRUE, the split is made below or to the |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10508 right (if vertical). When FALSE, it is done |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10509 above or to the left (if vertical). When not |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10510 present, the values of 'splitbelow' and |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10511 'splitright' are used. |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10512 |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10513 Can also be used as a |method|: > |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10514 GetWinid()->win_splitmove(target) |
a9f1656f13c9
patch 8.1.2020: it is not easy to change the window layout
Bram Moolenaar <Bram@vim.org>
parents:
18035
diff
changeset
|
10515 < |
19400
bd9069d21c5d
patch 8.2.0258: modifyOtherKeys cannot be temporarily disabled
Bram Moolenaar <Bram@vim.org>
parents:
19398
diff
changeset
|
10516 |
7 | 10517 *winbufnr()* |
10518 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
|
10519 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
|
10520 the |window-ID|. |
9223
6c4d610fce0a
commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents:
9221
diff
changeset
|
10521 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
|
10522 window is returned. |
6c4d610fce0a
commit https://github.com/vim/vim/commit/888ccac8902cee186fbd47e971881f6d9b19c068
Christian Brabandt <cb@256bit.org>
parents:
9221
diff
changeset
|
10523 When window {nr} doesn't exist, -1 is returned. |
7 | 10524 Example: > |
10525 :echo "The file in the current window is " . bufname(winbufnr(0)) | |
10526 < | |
17825
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
10527 Can also be used as a |method|: > |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
10528 FindWindow()->winbufnr()->bufname() |
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
10529 < |
7 | 10530 *wincol()* |
10531 wincol() The result is a Number, which is the virtual column of the | |
10532 cursor in the window. This is counting screen cells from the | |
10533 left side of the window. The leftmost column is one. | |
10534 | |
18973
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10535 *windowsversion()* |
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10536 windowsversion() |
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10537 The result is a String. For MS-Windows it indicates the OS |
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10538 version. E.g, Windows 10 is "10.0", Windows 8 is "6.2", |
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10539 Windows XP is "5.1". For non-MS-Windows systems the result is |
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10540 an empty string. |
bf8eb950df61
patch 8.2.0047: cannot skip tests for specific MS-Windows platform
Bram Moolenaar <Bram@vim.org>
parents:
18972
diff
changeset
|
10541 |
7 | 10542 winheight({nr}) *winheight()* |
10543 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
|
10544 {nr} can be the window number or the |window-ID|. |
7 | 10545 When {nr} is zero, the height of the current window is |
10546 returned. When window {nr} doesn't exist, -1 is returned. | |
10547 An existing window always has a height of zero or more. | |
12499 | 10548 This excludes any window toolbar line. |
7 | 10549 Examples: > |
10550 :echo "The current window has " . winheight(0) . " lines." | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10551 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10552 < Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10553 GetWinid()->winheight() |
7 | 10554 < |
14587
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10555 winlayout([{tabnr}]) *winlayout()* |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10556 The result is a nested List containing the layout of windows |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10557 in a tabpage. |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10558 |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10559 Without {tabnr} use the current tabpage, otherwise the tabpage |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10560 with number {tabnr}. If the tabpage {tabnr} is not found, |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10561 returns an empty list. |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10562 |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10563 For a leaf window, it returns: |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10564 ['leaf', {winid}] |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10565 For horizontally split windows, which form a column, it |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10566 returns: |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10567 ['col', [{nested list of windows}]] |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10568 For vertically split windows, which form a row, it returns: |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10569 ['row', [{nested list of windows}]] |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10570 |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10571 Example: > |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10572 " Only one window in the tab page |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10573 :echo winlayout() |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10574 ['leaf', 1000] |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10575 " Two horizontally split windows |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10576 :echo winlayout() |
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10577 ['col', [['leaf', 1000], ['leaf', 1001]]] |
19646 | 10578 " The second tab page, with three horizontally split |
10579 " windows, with two vertically split windows in the | |
10580 " middle window | |
14587
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10581 :echo winlayout(2) |
19646 | 10582 ['col', [['leaf', 1002], ['row', [['leaf', 1003], |
10583 ['leaf', 1001]]], ['leaf', 1000]]] | |
14587
d33220d3bc27
patch 8.1.0307: there is no good way to get the window layout
Christian Brabandt <cb@256bit.org>
parents:
14519
diff
changeset
|
10584 < |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10585 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10586 GetTabnr()->winlayout() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10587 < |
7 | 10588 *winline()* |
10589 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
|
10590 in the window. This is counting screen lines from the top of |
7 | 10591 the window. The first line is one. |
531 | 10592 If the cursor was moved the view on the file will be updated |
10593 first, this may cause a scroll. | |
7 | 10594 |
10595 *winnr()* | |
20 | 10596 winnr([{arg}]) The result is a Number, which is the number of the current |
10597 window. The top window has number 1. | |
19303 | 10598 Returns zero for a popup window. |
16271
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10599 |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10600 The optional argument {arg} supports the following values: |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10601 $ the number of the last window (the window |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10602 count). |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10603 # the number of the last accessed window (where |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10604 |CTRL-W_p| goes to). If there is no previous |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10605 window or it is in another tab page 0 is |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10606 returned. |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10607 {N}j the number of the Nth window below the |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10608 current window (where |CTRL-W_j| goes to). |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10609 {N}k the number of the Nth window above the current |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10610 window (where |CTRL-W_k| goes to). |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10611 {N}h the number of the Nth window left of the |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10612 current window (where |CTRL-W_h| goes to). |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10613 {N}l the number of the Nth window right of the |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10614 current window (where |CTRL-W_l| goes to). |
20 | 10615 The number can be used with |CTRL-W_w| and ":wincmd w" |
10616 |:wincmd|. | |
10734 | 10617 Also see |tabpagewinnr()| and |win_getid()|. |
16271
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10618 Examples: > |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10619 let window_count = winnr('$') |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10620 let prev_window = winnr('#') |
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10621 let wnum = winnr('3k') |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10622 |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10623 < Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10624 GetWinval()->winnr() |
16271
243cdc183ec9
patch 8.1.1140: not easy to find out what neighbors a window has
Bram Moolenaar <Bram@vim.org>
parents:
16267
diff
changeset
|
10625 < |
7 | 10626 *winrestcmd()* |
10627 winrestcmd() Returns a sequence of |:resize| commands that should restore | |
10628 the current window sizes. Only works properly when no windows | |
712 | 10629 are opened or closed and the current window and tab page is |
10630 unchanged. | |
7 | 10631 Example: > |
10632 :let cmd = winrestcmd() | |
10633 :call MessWithWindowSizes() | |
10634 :exe cmd | |
712 | 10635 < |
10636 *winrestview()* | |
10637 winrestview({dict}) | |
10638 Uses the |Dictionary| returned by |winsaveview()| to restore | |
10639 the view of the current window. | |
5940 | 10640 Note: The {dict} does not have to contain all values, that are |
10641 returned by |winsaveview()|. If values are missing, those | |
10642 settings won't be restored. So you can use: > | |
10643 :call winrestview({'curswant': 4}) | |
10644 < | |
10645 This will only set the curswant value (the column the cursor | |
10646 wants to move on vertical movements) of the cursor to column 5 | |
10647 (yes, that is 5), while all other settings will remain the | |
10648 same. This is useful, if you set the cursor position manually. | |
10649 | |
712 | 10650 If you have changed the values the result is unpredictable. |
10651 If the window size changed the result won't be the same. | |
10652 | |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10653 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10654 GetView()->winrestview() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10655 < |
712 | 10656 *winsaveview()* |
10657 winsaveview() Returns a |Dictionary| that contains information to restore | |
10658 the view of the current window. Use |winrestview()| to | |
10659 restore the view. | |
10660 This is useful if you have a mapping that jumps around in the | |
10661 buffer and you want to go back to the original view. | |
10662 This does not save fold information. Use the 'foldenable' | |
798 | 10663 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
|
10664 not opened when moving around. This may have side effects. |
712 | 10665 The return value includes: |
10666 lnum cursor line number | |
5940 | 10667 col cursor column (Note: the first column |
10668 zero, as opposed to what getpos() | |
10669 returns) | |
712 | 10670 coladd cursor column offset for 'virtualedit' |
10671 curswant column for vertical movement | |
10672 topline first line in the window | |
10673 topfill filler lines, only in diff mode | |
10674 leftcol first column displayed | |
10675 skipcol columns skipped | |
10676 Note that no option values are saved. | |
10677 | |
7 | 10678 |
10679 winwidth({nr}) *winwidth()* | |
10680 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
|
10681 {nr} can be the window number or the |window-ID|. |
7 | 10682 When {nr} is zero, the width of the current window is |
10683 returned. When window {nr} doesn't exist, -1 is returned. | |
10684 An existing window always has a width of zero or more. | |
10685 Examples: > | |
10686 :echo "The current window has " . winwidth(0) . " columns." | |
10687 :if winwidth(0) <= 50 | |
12857
ffdf2e4b5d9a
patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents:
12837
diff
changeset
|
10688 : 50 wincmd | |
7 | 10689 :endif |
11561
7ad79766365a
patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents:
11553
diff
changeset
|
10690 < 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
|
10691 option. |
9389
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
10692 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10693 Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10694 GetWinid()->winwidth() |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10695 |
9389
32e34e574716
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Christian Brabandt <cb@256bit.org>
parents:
9344
diff
changeset
|
10696 |
7480
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10697 wordcount() *wordcount()* |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10698 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
|
10699 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
|
10700 |g_CTRL-G| |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10701 The return value includes: |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10702 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
|
10703 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
|
10704 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
|
10705 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
|
10706 (not in Visual mode) |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10707 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
|
10708 (not in Visual mode) |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10709 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
|
10710 (not in Visual mode) |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10711 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
|
10712 (only in Visual mode) |
7480
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10713 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
|
10714 (only in Visual mode) |
12254 | 10715 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
|
10716 (only in Visual mode) |
7480
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10717 |
a49163681559
commit https://github.com/vim/vim/commit/ed767a2073ef150971b0439a58e7ee582af6984e
Christian Brabandt <cb@256bit.org>
parents:
7477
diff
changeset
|
10718 |
158 | 10719 *writefile()* |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10720 writefile({object}, {fname} [, {flags}]) |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10721 When {object} is a |List| write it to file {fname}. Each list |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10722 item is separated with a NL. Each list item must be a String |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10723 or Number. |
6341 | 10724 When {flags} contains "b" then binary mode is used: There will |
158 | 10725 not be a NL after the last list item. An empty item at the |
10726 end does cause the last line in the file to end in a NL. | |
6341 | 10727 |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10728 When {object} is a |Blob| write the bytes to file {fname} |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10729 unmodified. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
10730 |
6341 | 10731 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
|
10732 appended to the file: > |
6341 | 10733 :call writefile(["foo"], "event.log", "a") |
10734 :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
|
10735 < |
ffdf2e4b5d9a
patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents:
12837
diff
changeset
|
10736 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
|
10737 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
|
10738 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
|
10739 crashes. |
13016
e47e70300f30
patch 8.0.1384: not enough quickfix help; confusing winid
Christian Brabandt <cb@256bit.org>
parents:
12977
diff
changeset
|
10740 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
|
10741 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
|
10742 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
|
10743 when 'fsync' is set. |
ffdf2e4b5d9a
patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents:
12837
diff
changeset
|
10744 |
ffdf2e4b5d9a
patch 8.0.1305: writefile() never calls fsync()
Christian Brabandt <cb@256bit.org>
parents:
12837
diff
changeset
|
10745 All NL characters are replaced with a NUL character. |
158 | 10746 Inserting CR characters needs to be done before passing {list} |
10747 to writefile(). | |
10748 An existing file is overwritten, if possible. | |
10749 When the write fails -1 is returned, otherwise 0. There is an | |
10750 error message if the file can't be created or when writing | |
10751 fails. | |
10752 Also see |readfile()|. | |
10753 To copy a file byte for byte: > | |
10754 :let fl = readfile("foo", "b") | |
10755 :call writefile(fl, "foocopy", "b") | |
3214 | 10756 |
18035
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10757 < Can also be used as a |method|: > |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10758 GetText()->writefile("thefile") |
11dca9732a48
patch 8.1.2013: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
18031
diff
changeset
|
10759 |
3214 | 10760 |
10761 xor({expr}, {expr}) *xor()* | |
10762 Bitwise XOR on the two arguments. The arguments are converted | |
10763 to a number. A List, Dict or Float argument causes an error. | |
10764 Example: > | |
10765 :let bits = xor(bits, 0x80) | |
18343 | 10766 < |
10767 Can also be used as a |method|: > | |
17783
45eca7143d7c
patch 8.1.1888: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17765
diff
changeset
|
10768 :let bits = bits->xor(0x80) |
3256 | 10769 < |
3214 | 10770 |
7 | 10771 *feature-list* |
19163 | 10772 There are three types of features: |
7 | 10773 1. Features that are only supported when they have been enabled when Vim |
10774 was compiled |+feature-list|. Example: > | |
10775 :if has("cindent") | |
10776 2. Features that are only supported when certain conditions have been met. | |
10777 Example: > | |
10778 :if has("gui_running") | |
10779 < *has-patch* | |
13967
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10780 3. Beyond a certain version or at a certain version and including a specific |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10781 patch. The "patch-7.4.248" feature means that the Vim version is 7.5 or |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10782 later, or it is version 7.4 and patch 248 was included. Example: > |
5862 | 10783 :if has("patch-7.4.248") |
13967
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10784 < Note that it's possible for patch 248 to be omitted even though 249 is |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10785 included. Only happens when cherry-picking patches. |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10786 Note that this form only works for patch 7.4.237 and later, before that |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10787 you need to check for the patch and the v:version. Example (checking |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10788 version 6.2.148 or later): > |
acc62d455f90
Runtime file and translation updates.
Christian Brabandt <cb@256bit.org>
parents:
13963
diff
changeset
|
10789 :if v:version > 602 || (v:version == 602 && has("patch148")) |
7 | 10790 |
9850
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
10791 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
|
10792 use: `if exists('+shellslash')` |
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
10793 |
67781bb0a61a
commit https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640
Christian Brabandt <cb@256bit.org>
parents:
9810
diff
changeset
|
10794 |
5340 | 10795 acl Compiled with |ACL| support. |
7 | 10796 all_builtin_terms Compiled with all builtin terminals enabled. |
10797 amiga Amiga version of Vim. | |
10798 arabic Compiled with Arabic support |Arabic|. | |
10799 arp Compiled with ARP support (Amiga). | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10800 autocmd Compiled with autocommand support. (always true) |
14421 | 10801 autochdir Compiled with support for 'autochdir' |
12837
963cdeb42c41
patch 8.0.1295: cannot automatically get a server name in a terminal
Christian Brabandt <cb@256bit.org>
parents:
12785
diff
changeset
|
10802 autoservername Automatically enable |clientserver| |
7 | 10803 balloon_eval Compiled with |balloon-eval| support. |
435 | 10804 balloon_multiline GUI supports multiline balloons. |
7 | 10805 beos BeOS version of Vim. |
10806 browse Compiled with |:browse| support, and browse() will | |
10807 work. | |
3682 | 10808 browsefilter Compiled with support for |browsefilter|. |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10809 bsd Compiled on an OS in the BSD family (excluding macOS). |
7 | 10810 builtin_terms Compiled with some builtin terminals. |
10811 byte_offset Compiled with support for 'o' in 'statusline' | |
19523 | 10812 channel Compiled with support for |channel| and |job| |
7 | 10813 cindent Compiled with 'cindent' support. |
10814 clientserver Compiled with remote invocation support |clientserver|. | |
10815 clipboard Compiled with 'clipboard' support. | |
17680
55704f587945
patch 8.1.1837: popup test fails if clipboard is supported but not working
Bram Moolenaar <Bram@vim.org>
parents:
17676
diff
changeset
|
10816 clipboard_working Compiled with 'clipboard' support and it can be used. |
7 | 10817 cmdline_compl Compiled with |cmdline-completion| support. |
10818 cmdline_hist Compiled with |cmdline-history| support. | |
10819 cmdline_info Compiled with 'showcmd' and 'ruler' support. | |
10820 comments Compiled with |'comments'| support. | |
2681 | 10821 compatible Compiled to be very Vi compatible. |
15725
a3e2e7948ee4
patch 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
Bram Moolenaar <Bram@vim.org>
parents:
15711
diff
changeset
|
10822 conpty Platform where |ConPTY| can be used. |
7 | 10823 cryptv Compiled with encryption support |encryption|. |
10824 cscope Compiled with |cscope| support. | |
15729 | 10825 cursorbind Compiled with |'cursorbind'| (always true) |
7 | 10826 debug Compiled with "DEBUG" defined. |
10827 dialog_con Compiled with console dialog support. | |
10828 dialog_gui Compiled with GUI dialog support. | |
10829 diff Compiled with |vimdiff| and 'diff' support. | |
10830 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
|
10831 directx Compiled with support for DirectX and 'renderoptions'. |
7 | 10832 dnd Compiled with support for the "~ register |quote_~|. |
10833 ebcdic Compiled on a machine with ebcdic character set. | |
10834 emacs_tags Compiled with support for Emacs tags. | |
10835 eval Compiled with expression evaluation support. Always | |
10836 true, of course! | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10837 ex_extra |+ex_extra| (always true) |
7 | 10838 extra_search Compiled with support for |'incsearch'| and |
10839 |'hlsearch'| | |
18790 | 10840 farsi Support for Farsi was removed |farsi|. |
7 | 10841 file_in_path Compiled with support for |gf| and |<cfile>| |
168 | 10842 filterpipe When 'shelltemp' is off pipes are used for shell |
10843 read/write/filter commands | |
7 | 10844 find_in_path Compiled with support for include file searches |
10845 |+find_in_path|. | |
1621 | 10846 float Compiled with support for |Float|. |
18972 | 10847 fname_case Case in file names matters (for Amiga and MS-Windows |
10848 this is not present). | |
7 | 10849 folding Compiled with |folding| support. |
10850 footer Compiled with GUI footer support. |gui-footer| | |
10851 fork Compiled to use fork()/exec() instead of system(). | |
10852 gettext Compiled with message translation |multi-lang| | |
10853 gui Compiled with GUI enabled. | |
10854 gui_athena Compiled with Athena GUI. | |
2681 | 10855 gui_gnome Compiled with Gnome support (gui_gtk is also defined). |
7 | 10856 gui_gtk Compiled with GTK+ GUI (any version). |
10857 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
|
10858 gui_gtk3 Compiled with GTK+ 3 GUI (gui_gtk is also defined). |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
19523
diff
changeset
|
10859 gui_haiku Compiled with Haiku GUI. |
7 | 10860 gui_mac Compiled with Macintosh GUI. |
10861 gui_motif Compiled with Motif GUI. | |
10862 gui_photon Compiled with Photon GUI. | |
2681 | 10863 gui_running Vim is running in the GUI, or it will start soon. |
7 | 10864 gui_win32 Compiled with MS Windows Win32 GUI. |
10865 gui_win32s idem, and Win32s system being used (Windows 3.1) | |
19526
22f0dda71638
patch 8.2.0320: no Haiku support
Bram Moolenaar <Bram@vim.org>
parents:
19523
diff
changeset
|
10866 haiku Haiku version of Vim. |
7 | 10867 hangul_input Compiled with Hangul input support. |hangul| |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10868 hpux HP-UX version of Vim. |
7 | 10869 iconv Can use iconv() for conversion. |
10870 insert_expand Compiled with support for CTRL-X expansion commands in | |
17825
ce993ba17adb
patch 8.1.1909: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17783
diff
changeset
|
10871 Insert mode. (always true) |
19968 | 10872 job Compiled with support for |channel| and |job| |
20037
f36f10d90378
patch 8.2.0574: ipv6 feature not shown in :version output
Bram Moolenaar <Bram@vim.org>
parents:
19968
diff
changeset
|
10873 ipv6 Compiled with support for IPv6 networking in |channel|. |
7 | 10874 jumplist Compiled with |jumplist| support. |
10875 keymap Compiled with 'keymap' support. | |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
10876 lambda Compiled with |lambda| support. |
7 | 10877 langmap Compiled with 'langmap' support. |
10878 libcall Compiled with |libcall()| support. | |
5995 | 10879 linebreak Compiled with 'linebreak', 'breakat', 'showbreak' and |
10880 'breakindent' support. | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10881 linux Linux version of Vim. |
7 | 10882 lispindent Compiled with support for lisp indenting. |
10883 listcmds Compiled with commands for the buffer list |:files| | |
10884 and the argument list |arglist|. | |
10885 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
|
10886 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
|
10887 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
|
10888 macunix Synonym for osxdarwin |
7 | 10889 menu Compiled with support for |:menu|. |
10890 mksession Compiled with support for |:mksession|. | |
10891 modify_fname Compiled with file name modifiers. |filename-modifiers| | |
17982
2029737e6a22
patch 8.1.1987: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents:
17976
diff
changeset
|
10892 (always true) |
7 | 10893 mouse Compiled with support mouse. |
10894 mouse_dec Compiled with support for Dec terminal mouse. | |
10895 mouse_gpm Compiled with support for gpm (Linux console mouse) | |
16527
5412fcd03ecb
patch 8.1.1267: cannot check if GPM mouse support is working
Bram Moolenaar <Bram@vim.org>
parents:
16517
diff
changeset
|
10896 mouse_gpm_enabled GPM mouse is working |
7 | 10897 mouse_netterm Compiled with support for netterm mouse. |
10898 mouse_pterm Compiled with support for qnx pterm mouse. | |
1621 | 10899 mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse) |
3750 | 10900 mouse_sgr Compiled with support for sgr mouse. |
3224 | 10901 mouse_urxvt Compiled with support for urxvt mouse. |
7 | 10902 mouse_xterm Compiled with support for xterm mouse. |
2681 | 10903 mouseshape Compiled with support for 'mouseshape'. |
15878 | 10904 multi_byte Compiled with support for 'encoding' (always true) |
1768 | 10905 multi_byte_encoding 'encoding' is set to a multi-byte encoding. |
7 | 10906 multi_byte_ime Compiled with support for IME input method. |
10907 multi_lang Compiled with support for multiple languages. | |
14 | 10908 mzscheme Compiled with MzScheme interface |mzscheme|. |
2681 | 10909 netbeans_enabled Compiled with support for |netbeans| and connected. |
7 | 10910 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
|
10911 num64 Compiled with 64-bit |Number| support. |
7 | 10912 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
|
10913 osx Compiled for macOS cf. mac |
351cf7c67bbe
patch 8.0.1236: Mac features are confusing
Christian Brabandt <cb@256bit.org>
parents:
12632
diff
changeset
|
10914 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
|
10915 packages Compiled with |packages| support. |
7 | 10916 path_extra Compiled with up/downwards search in 'path' and 'tags' |
10917 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
|
10918 persistent_undo Compiled with support for persistent undo history. |
7 | 10919 postscript Compiled with PostScript file printing. |
10920 printer Compiled with |:hardcopy| support. | |
170 | 10921 profile Compiled with |:profile| support. |
13123
aaead5b4d77d
patch 8.0.1436: not enough information about what Python version may work
Christian Brabandt <cb@256bit.org>
parents:
13070
diff
changeset
|
10922 python Python 2.x interface available. |has-python| |
aaead5b4d77d
patch 8.0.1436: not enough information about what Python version may work
Christian Brabandt <cb@256bit.org>
parents:
13070
diff
changeset
|
10923 python_compiled Compiled with Python 2.x interface. |has-python| |
aaead5b4d77d
patch 8.0.1436: not enough information about what Python version may work
Christian Brabandt <cb@256bit.org>
parents:
13070
diff
changeset
|
10924 python_dynamic Python 2.x interface is dynamically loaded. |has-python| |
aaead5b4d77d
patch 8.0.1436: not enough information about what Python version may work
Christian Brabandt <cb@256bit.org>
parents:
13070
diff
changeset
|
10925 python3 Python 3.x interface available. |has-python| |
aaead5b4d77d
patch 8.0.1436: not enough information about what Python version may work
Christian Brabandt <cb@256bit.org>
parents:
13070
diff
changeset
|
10926 python3_compiled Compiled with Python 3.x interface. |has-python| |
aaead5b4d77d
patch 8.0.1436: not enough information about what Python version may work
Christian Brabandt <cb@256bit.org>
parents:
13070
diff
changeset
|
10927 python3_dynamic Python 3.x interface is dynamically loaded. |has-python| |
19523 | 10928 pythonx Python 2.x and/or 3.x interface available. |python_x| |
7 | 10929 qnx QNX version of Vim. |
10930 quickfix Compiled with |quickfix| support. | |
857 | 10931 reltime Compiled with |reltime()| support. |
7 | 10932 rightleft Compiled with 'rightleft' support. |
10933 ruby Compiled with Ruby interface |ruby|. | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10934 scrollbind Compiled with 'scrollbind' support. (always true) |
7 | 10935 showcmd Compiled with 'showcmd' support. |
10936 signs Compiled with |:sign| support. | |
10937 smartindent Compiled with 'smartindent' support. | |
17004
353ed7ef78df
patch 8.1.1502: cannot play any sound
Bram Moolenaar <Bram@vim.org>
parents:
16996
diff
changeset
|
10938 sound Compiled with sound support, e.g. `sound_playevent()` |
2681 | 10939 spell Compiled with spell checking support |spell|. |
1989 | 10940 startuptime Compiled with |--startuptime| support. |
7 | 10941 statusline Compiled with support for 'statusline', 'rulerformat' |
10942 and special formats of 'titlestring' and 'iconstring'. | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10943 sun SunOS version of Vim. |
15512 | 10944 sun_workshop Support for Sun |workshop| has been removed. |
314 | 10945 syntax Compiled with syntax highlighting support |syntax|. |
7 | 10946 syntax_items There are active syntax highlighting items for the |
10947 current buffer. | |
10948 system Compiled to use system() instead of fork()/exec(). | |
10949 tag_binary Compiled with binary searching in tags files | |
10950 |tag-binary-search|. | |
16208 | 10951 tag_old_static Support for old static tags was removed, see |
7 | 10952 |tag-old-static|. |
10953 tcl Compiled with Tcl interface. | |
9076
9305a1251e51
commit https://github.com/vim/vim/commit/91c4937be15b0b743b6bc495df602c1abbff6b87
Christian Brabandt <cb@256bit.org>
parents:
9041
diff
changeset
|
10954 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
|
10955 terminal Compiled with |terminal| support. |
7 | 10956 terminfo Compiled with terminfo instead of termcap. |
10957 termresponse Compiled with support for |t_RV| and |v:termresponse|. | |
10958 textobjects Compiled with support for |text-objects|. | |
15138
9df130fd5e0d
patch 8.1.0579: cannot attach properties to text
Bram Moolenaar <Bram@vim.org>
parents:
15131
diff
changeset
|
10959 textprop Compiled with support for |text-properties|. |
7 | 10960 tgetent Compiled with tgetent support, able to use a termcap |
10961 or terminfo file. | |
8577
63dc856bd13d
commit https://github.com/vim/vim/commit/975b5271eed4fa0500c24a8f37be0b1797cb9db7
Christian Brabandt <cb@256bit.org>
parents:
8538
diff
changeset
|
10962 timers Compiled with |timer_start()| support. |
7 | 10963 title Compiled with window title support |'title'|. |
10964 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
|
10965 ttyin input is a terminal (tty) |
65e0537a4560
commit https://github.com/vim/vim/commit/2cab0e191055a8145ccd46cd52869fbb9798b971
Christian Brabandt <cb@256bit.org>
parents:
10348
diff
changeset
|
10966 ttyout output is a terminal (tty) |
12499 | 10967 unix Unix version of Vim. *+unix* |
10895
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
10968 unnamedplus Compiled with support for "unnamedplus" in 'clipboard' |
16411
5b5c5daf57de
patch 8.1.1210: support for user commands is spread out
Bram Moolenaar <Bram@vim.org>
parents:
16380
diff
changeset
|
10969 user_commands User-defined commands. (always true) |
18790 | 10970 vartabs Compiled with variable tabstop support |'vartabstop'|. |
13341
acd7eaa13d2b
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
13329
diff
changeset
|
10971 vcon Win32: Virtual console support is working, can use |
acd7eaa13d2b
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
13329
diff
changeset
|
10972 'termguicolors'. Also see |+vtp|. |
2681 | 10973 vertsplit Compiled with vertically split windows |:vsplit|. |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10974 (always true) |
2581 | 10975 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
|
10976 *vim_starting* |
2681 | 10977 viminfo Compiled with viminfo support. |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
10978 vimscript-1 Compiled Vim script version 1 support |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
10979 vimscript-2 Compiled Vim script version 2 support |
16380 | 10980 vimscript-3 Compiled Vim script version 3 support |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10981 virtualedit Compiled with 'virtualedit' option. (always true) |
15424
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
10982 visual Compiled with Visual mode. (always true) |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
10983 visualextra Compiled with extra Visual mode commands. (always |
90c8ff9c19ee
patch 8.1.0720: cannot easily change the current quickfx list index
Bram Moolenaar <Bram@vim.org>
parents:
15418
diff
changeset
|
10984 true) |blockwise-operators|. |
7 | 10985 vms VMS version of Vim. |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10986 vreplace Compiled with |gR| and |gr| commands. (always true) |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
10987 vtp Compiled for vcon support |+vtp| (check vcon to find |
13501
a4a559e08798
patch 8.0.1624: options for term_dumpdiff() and term_dumpload() not implemented
Christian Brabandt <cb@256bit.org>
parents:
13482
diff
changeset
|
10988 out if it works in the current console). |
7 | 10989 wildignore Compiled with 'wildignore' option. |
10990 wildmenu Compiled with 'wildmenu' option. | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10991 win16 old version for MS-Windows 3.1 (always false) |
2698
b6471224d2af
Updated runtime files and translations.
Bram Moolenaar <bram@vim.org>
parents:
2681
diff
changeset
|
10992 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
|
10993 64 bits) |
2681 | 10994 win32unix Win32 version of Vim, using Unix files (Cygwin) |
7 | 10995 win64 Win64 version of Vim (MS-Windows 64 bit). |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10996 win95 Win32 version for MS-Windows 95/98/ME (always false) |
2681 | 10997 winaltkeys Compiled with 'winaltkeys' option. |
10998 windows Compiled with support for more than one window. | |
15677
772e72b046a3
patch 8.1.0846: not easy to recognize the system Vim runs on
Bram Moolenaar <Bram@vim.org>
parents:
15615
diff
changeset
|
10999 (always true) |
7 | 11000 writebackup Compiled with 'writebackup' default on. |
11001 xfontset Compiled with X fontset support |xfontset|. | |
11002 xim Compiled with X input method support |xim|. | |
5340 | 11003 xpm Compiled with pixmap support. |
11004 xpm_w32 Compiled with pixmap support for Win32. (Only for | |
11005 backward compatibility. Use "xpm" instead.) | |
7 | 11006 xsmp Compiled with X session management support. |
11007 xsmp_interact Compiled with interactive X session management support. | |
11008 xterm_clipboard Compiled with support for xterm clipboard. | |
11009 xterm_save Compiled with support for saving and restoring the | |
11010 xterm screen. | |
11011 x11 Compiled with X11 support. | |
11012 | |
11013 *string-match* | |
11014 Matching a pattern in a String | |
11015 | |
11016 A regexp pattern as explained at |pattern| is normally used to find a match in | |
11017 the buffer lines. When a pattern is used to find a match in a String, almost | |
11018 everything works in the same way. The difference is that a String is handled | |
11019 like it is one line. When it contains a "\n" character, this is not seen as a | |
11020 line break for the pattern. It can be matched with a "\n" in the pattern, or | |
11021 with ".". Example: > | |
11022 :let a = "aaaa\nxxxx" | |
11023 :echo matchstr(a, "..\n..") | |
11024 aa | |
11025 xx | |
11026 :echo matchstr(a, "a.x") | |
11027 a | |
11028 x | |
11029 | |
11030 Don't forget that "^" will only match at the first character of the String and | |
11031 "$" at the last character of the string. They don't match after or before a | |
11032 "\n". | |
11033 | |
11034 ============================================================================== | |
11035 5. Defining functions *user-functions* | |
11036 | |
11037 New functions can be defined. These can be called just like builtin | |
11038 functions. The function executes a sequence of Ex commands. Normal mode | |
11039 commands can be executed with the |:normal| command. | |
11040 | |
19181
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
11041 This section is about the legacy functions. For the Vim9 functions, which |
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
11042 execute much faster, support type checking and more, see |vim9.txt|. |
94eda51ba9ba
patch 8.2.0149: maintaining a Vim9 branch separately is more work
Bram Moolenaar <Bram@vim.org>
parents:
19163
diff
changeset
|
11043 |
7 | 11044 The function name must start with an uppercase letter, to avoid confusion with |
11045 builtin functions. To prevent from using the same name in different scripts | |
11046 avoid obvious, short names. A good habit is to start the function name with | |
11047 the name of the script, e.g., "HTMLcolor()". | |
11048 | |
504 | 11049 It's also possible to use curly braces, see |curly-braces-names|. And the |
11050 |autoload| facility is useful to define a function only when it's called. | |
7 | 11051 |
11052 *local-function* | |
11053 A function local to a script must start with "s:". A local script function | |
11054 can only be called from within the script and from functions, user commands | |
11055 and autocommands defined in the script. It is also possible to call the | |
1698 | 11056 function from a mapping defined in the script, but then |<SID>| must be used |
7 | 11057 instead of "s:" when the mapping is expanded outside of the script. |
5862 | 11058 There are only script-local functions, no buffer-local or window-local |
11059 functions. | |
7 | 11060 |
11061 *:fu* *:function* *E128* *E129* *E123* | |
11062 :fu[nction] List all functions and their arguments. | |
11063 | |
11064 :fu[nction] {name} List function {name}. | |
685 | 11065 {name} can also be a |Dictionary| entry that is a |
11066 |Funcref|: > | |
114 | 11067 :function dict.init |
504 | 11068 |
11069 :fu[nction] /{pattern} List functions with a name matching {pattern}. | |
11070 Example that lists all functions ending with "File": > | |
11071 :function /File$ | |
482 | 11072 < |
11073 *:function-verbose* | |
11074 When 'verbose' is non-zero, listing a function will also display where it was | |
11075 last defined. Example: > | |
11076 | |
11077 :verbose function SetFileTypeSH | |
11078 function SetFileTypeSH(name) | |
11079 Last set from /usr/share/vim/vim-7.0/filetype.vim | |
11080 < | |
484 | 11081 See |:verbose-cmd| for more information. |
482 | 11082 |
5862 | 11083 *E124* *E125* *E853* *E884* |
9688
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11084 :fu[nction][!] {name}([arguments]) [range] [abort] [dict] [closure] |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11085 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
|
11086 the function follows in the next lines, until the |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11087 matching |:endfunction|. |
12785 | 11088 |
12756
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11089 The name must be made of alphanumeric characters and |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11090 '_', and must start with a capital or "s:" (see |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11091 above). Note that using "b:" or "g:" is not allowed. |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11092 (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
|
11093 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
|
11094 Before that patch no error was given). |
114 | 11095 |
685 | 11096 {name} can also be a |Dictionary| entry that is a |
11097 |Funcref|: > | |
114 | 11098 :function dict.init(arg) |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
11099 < "dict" must be an existing dictionary. The entry |
114 | 11100 "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
|
11101 is required to overwrite an existing function. The |
114 | 11102 result is a |Funcref| to a numbered function. The |
11103 function can only be used with a |Funcref| and will be | |
11104 deleted if there are no more references to it. | |
7 | 11105 *E127* *E122* |
11106 When a function by this name already exists and [!] is | |
15008
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11107 not used an error message is given. There is one |
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11108 exception: When sourcing a script again, a function |
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11109 that was previously defined in that script will be |
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11110 silently replaced. |
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11111 When [!] is used, an existing function is silently |
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11112 replaced. Unless it is currently being executed, that |
67e3103d6e18
patch 8.1.0515: reloading a script gives errors for existing functions
Bram Moolenaar <Bram@vim.org>
parents:
14999
diff
changeset
|
11113 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
|
11114 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
|
11115 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
|
11116 which is hard to debug. |
133 | 11117 |
11118 For the {arguments} see |function-argument|. | |
11119 | |
5618 | 11120 *:func-range* *a:firstline* *a:lastline* |
7 | 11121 When the [range] argument is added, the function is |
11122 expected to take care of a range itself. The range is | |
11123 passed as "a:firstline" and "a:lastline". If [range] | |
11124 is excluded, ":{range}call" will call the function for | |
11125 each line in the range, with the cursor on the start | |
11126 of each line. See |function-range-example|. | |
3967 | 11127 The cursor is still moved to the first line of the |
11128 range, as is the case with all Ex commands. | |
5618 | 11129 *:func-abort* |
7 | 11130 When the [abort] argument is added, the function will |
11131 abort as soon as an error is detected. | |
5618 | 11132 *:func-dict* |
102 | 11133 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
|
11134 be invoked through an entry in a |Dictionary|. The |
102 | 11135 local variable "self" will then be set to the |
11136 dictionary. See |Dictionary-function|. | |
9688
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11137 *:func-closure* *E932* |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11138 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
|
11139 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
|
11140 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
|
11141 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
|
11142 remains referenced even after Foo() returns: > |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11143 :function! Foo() |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11144 : let x = 0 |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11145 : function! Bar() closure |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11146 : let x += 1 |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11147 : return x |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11148 : endfunction |
9737
35ce559b8553
commit https://github.com/vim/vim/commit/bc8801c9317eb721a2ee91322669f2dd5d136380
Christian Brabandt <cb@256bit.org>
parents:
9723
diff
changeset
|
11149 : return funcref('Bar') |
9688
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11150 :endfunction |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11151 |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11152 :let F = Foo() |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11153 :echo F() |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11154 < 1 > |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11155 :echo F() |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11156 < 2 > |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11157 :echo F() |
2ea935bdd1a1
commit https://github.com/vim/vim/commit/10ce39a0d52272a3dfff2feb8c631529f29e6740
Christian Brabandt <cb@256bit.org>
parents:
9686
diff
changeset
|
11158 < 3 |
7 | 11159 |
1621 | 11160 *function-search-undo* |
653 | 11161 The last used search pattern and the redo command "." |
1621 | 11162 will not be changed by the function. This also |
11163 implies that the effect of |:nohlsearch| is undone | |
11164 when the function returns. | |
653 | 11165 |
11561
7ad79766365a
patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents:
11553
diff
changeset
|
11166 *: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
|
11167 :endf[unction] [argument] |
57c452316da1
patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents:
11518
diff
changeset
|
11168 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
|
11169 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
|
11170 |
57c452316da1
patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents:
11518
diff
changeset
|
11171 [argument] can be: |
57c452316da1
patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents:
11518
diff
changeset
|
11172 | 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
|
11173 \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
|
11174 " 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
|
11175 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
|
11176 '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
|
11177 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
|
11178 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
|
11179 ignored. |
7 | 11180 |
11561
7ad79766365a
patch 8.0.0663: unexpected error message only when 'verbose' is set
Christian Brabandt <cb@256bit.org>
parents:
11553
diff
changeset
|
11181 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
|
11182 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
|
11183 :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
|
11184 < |
9723
80ac9cf77c9b
commit https://github.com/vim/vim/commit/437bafe4c8a83ed71ee006eda7f54b65a90f0d4c
Christian Brabandt <cb@256bit.org>
parents:
9688
diff
changeset
|
11185 *: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
|
11186 :delf[unction][!] {name} |
57c452316da1
patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents:
11518
diff
changeset
|
11187 Delete function {name}. |
685 | 11188 {name} can also be a |Dictionary| entry that is a |
11189 |Funcref|: > | |
114 | 11190 :delfunc dict.init |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
11191 < This will remove the "init" entry from "dict". The |
114 | 11192 function is deleted if there are no more references to |
11193 it. | |
11543
57c452316da1
patch 8.0.0654: no warning for text after :endfunction
Christian Brabandt <cb@256bit.org>
parents:
11518
diff
changeset
|
11194 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
|
11195 exist. |
7 | 11196 *:retu* *:return* *E133* |
11197 :retu[rn] [expr] Return from a function. When "[expr]" is given, it is | |
11198 evaluated and returned as the result of the function. | |
11199 If "[expr]" is not given, the number 0 is returned. | |
11200 When a function ends without an explicit ":return", | |
11201 the number 0 is returned. | |
11202 Note that there is no check for unreachable lines, | |
11203 thus there is no warning if commands follow ":return". | |
11204 | |
11205 If the ":return" is used after a |:try| but before the | |
11206 matching |:finally| (if present), the commands | |
11207 following the ":finally" up to the matching |:endtry| | |
11208 are executed first. This process applies to all | |
11209 nested ":try"s inside the function. The function | |
11210 returns at the outermost ":endtry". | |
11211 | |
133 | 11212 *function-argument* *a:var* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
11213 An argument can be defined by giving its name. In the function this can then |
133 | 11214 be used as "a:name" ("a:" for argument). |
1156 | 11215 *a:0* *a:1* *a:000* *E740* *...* |
133 | 11216 Up to 20 arguments can be given, separated by commas. After the named |
11217 arguments an argument "..." can be specified, which means that more arguments | |
11218 may optionally be following. In the function the extra arguments can be used | |
11219 as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which | |
685 | 11220 can be 0). "a:000" is set to a |List| that contains these arguments. Note |
11221 that "a:1" is the same as "a:000[0]". | |
148 | 11222 *E742* |
11223 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
|
11224 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
|
11225 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
|
11226 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
|
11227 change a |List| or |Dictionary| use |:lockvar|. |
133 | 11228 |
11229 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
|
11230 still supply the () then. |
3b26420fc639
Long overdue runtime update.
Christian Brabandt <cb@256bit.org>
parents:
12722
diff
changeset
|
11231 |
13482
9eebe457eb3c
Update runtime files. Convert a couple of help files to utf-8.
Christian Brabandt <cb@256bit.org>
parents:
13438
diff
changeset
|
11232 It is allowed to define another function inside a function body. |
133 | 11233 |
16615
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11234 *optional-function-argument* |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11235 You can provide default values for positional named arguments. This makes |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11236 them optional for function calls. When a positional argument is not |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11237 specified at a call, the default expression is used to initialize it. |
19968 | 11238 This only works for functions declared with `:function` or `:def`, not for |
11239 lambda expressions |expr-lambda|. | |
16615
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11240 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11241 Example: > |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11242 function Something(key, value = 10) |
16648
a7f06505ad39
patch 8.1.1326: no test for listener with partial
Bram Moolenaar <Bram@vim.org>
parents:
16638
diff
changeset
|
11243 echo a:key .. ": " .. a:value |
16615
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11244 endfunction |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11245 call Something('empty') "empty: 10" |
16648
a7f06505ad39
patch 8.1.1326: no test for listener with partial
Bram Moolenaar <Bram@vim.org>
parents:
16638
diff
changeset
|
11246 call Something('key', 20) "key: 20" |
16615
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11247 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11248 The argument default expressions are evaluated at the time of the function |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11249 call, not definition. Thus it is possible to use an expression which is |
16808 | 11250 invalid the moment the function is defined. The expressions are also only |
16615
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11251 evaluated when arguments are not specified during a call. |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11252 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11253 You can pass |v:none| to use the default expression. Note that this means you |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11254 cannot pass v:none as an ordinary value when an argument has a default |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11255 expression. |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11256 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11257 Example: > |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11258 function Something(a = 10, b = 20, c = 30) |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11259 endfunction |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11260 call Something(1, v:none, 3) " b = 20 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11261 < |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11262 *E989* |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11263 Optional arguments with default expressions must occur after any mandatory |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11264 arguments. You can use "..." after all optional named arguments. |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11265 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11266 It is possible for later argument defaults to refer to prior arguments, |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11267 but not the other way around. They must be prefixed with "a:", as with all |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11268 arguments. |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11269 |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11270 Example that works: > |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11271 :function Okay(mandatory, optional = a:mandatory) |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11272 :endfunction |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11273 Example that does NOT work: > |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11274 :function NoGood(first = a:second, second = 10) |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11275 :endfunction |
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11276 < |
19968 | 11277 When not using "...", the number of arguments in a function call must be at |
11278 least equal to the number of mandatory named arguments. When using "...", the | |
11279 number of arguments may be larger than the total of mandatory and optional | |
11280 arguments. | |
16615
1a911bd57f11
patch 8.1.1310: named function arguments are never optional
Bram Moolenaar <Bram@vim.org>
parents:
16610
diff
changeset
|
11281 |
133 | 11282 *local-variables* |
9527
e8b3db8e2d30
commit https://github.com/vim/vim/commit/069c1e7fa9f45a665064f7f2c17da84d6a48f544
Christian Brabandt <cb@256bit.org>
parents:
9464
diff
changeset
|
11283 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
|
11284 function returns. Global variables need to be accessed with "g:". |
7 | 11285 |
11286 Example: > | |
11287 :function Table(title, ...) | |
11288 : echohl Title | |
11289 : echo a:title | |
11290 : echohl None | |
140 | 11291 : echo a:0 . " items:" |
11292 : for s in a:000 | |
11293 : echon ' ' . s | |
11294 : endfor | |
7 | 11295 :endfunction |
11296 | |
11297 This function can then be called with: > | |
140 | 11298 call Table("Table", "line1", "line2") |
11299 call Table("Empty Table") | |
7 | 11300 |
1156 | 11301 To return more than one value, return a |List|: > |
11302 :function Compute(n1, n2) | |
7 | 11303 : if a:n2 == 0 |
1156 | 11304 : return ["fail", 0] |
7 | 11305 : endif |
1156 | 11306 : return ["ok", a:n1 / a:n2] |
7 | 11307 :endfunction |
11308 | |
11309 This function can then be called with: > | |
1156 | 11310 :let [success, div] = Compute(102, 6) |
7 | 11311 :if success == "ok" |
11312 : echo div | |
11313 :endif | |
1156 | 11314 < |
786 | 11315 *:cal* *:call* *E107* *E117* |
7 | 11316 :[range]cal[l] {name}([arguments]) |
11317 Call a function. The name of the function and its arguments | |
16808 | 11318 are as specified with `:function`. Up to 20 arguments can be |
1156 | 11319 used. The returned value is discarded. |
7 | 11320 Without a range and for functions that accept a range, the |
11321 function is called once. When a range is given the cursor is | |
11322 positioned at the start of the first line before executing the | |
11323 function. | |
11324 When a range is given and the function doesn't handle it | |
11325 itself, the function is executed for each line in the range, | |
11326 with the cursor in the first column of that line. The cursor | |
11327 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
|
11328 call). The arguments are re-evaluated for each line. Thus |
7 | 11329 this works: |
11330 *function-range-example* > | |
11331 :function Mynumber(arg) | |
11332 : echo line(".") . " " . a:arg | |
11333 :endfunction | |
11334 :1,5call Mynumber(getline(".")) | |
11335 < | |
11336 The "a:firstline" and "a:lastline" are defined anyway, they | |
11337 can be used to do something different at the start or end of | |
11338 the range. | |
11339 | |
11340 Example of a function that handles the range itself: > | |
11341 | |
11342 :function Cont() range | |
11343 : execute (a:firstline + 1) . "," . a:lastline . 's/^/\t\\ ' | |
11344 :endfunction | |
11345 :4,8call Cont() | |
11346 < | |
11347 This function inserts the continuation character "\" in front | |
11348 of all the lines in the range, except the first one. | |
11349 | |
1156 | 11350 When the function returns a composite value it can be further |
11351 dereferenced, but the range will not be used then. Example: > | |
11352 :4,8call GetDict().method() | |
11353 < Here GetDict() gets the range but method() does not. | |
11354 | |
7 | 11355 *E132* |
11356 The recursiveness of user functions is restricted with the |'maxfuncdepth'| | |
11357 option. | |
11358 | |
17620
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
11359 It is also possible to use `:eval`. It does not support a range, but does |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
11360 allow for method chaining, e.g.: > |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
11361 eval GetList()->Filter()->append('$') |
072efa9ca875
patch 8.1.1807: more functions can be used as a method
Bram Moolenaar <Bram@vim.org>
parents:
17612
diff
changeset
|
11362 |
17667 | 11363 A function can also be called as part of evaluating an expression or when it |
11364 is used as a method: > | |
11365 let x = GetList() | |
11366 let y = GetList()->Filter() | |
11367 | |
161 | 11368 |
11369 AUTOMATICALLY LOADING FUNCTIONS ~ | |
7 | 11370 *autoload-functions* |
11371 When using many or large functions, it's possible to automatically define them | |
161 | 11372 only when they are used. There are two methods: with an autocommand and with |
11373 the "autoload" directory in 'runtimepath'. | |
11374 | |
11375 | |
11376 Using an autocommand ~ | |
11377 | |
170 | 11378 This is introduced in the user manual, section |41.14|. |
11379 | |
161 | 11380 The autocommand is useful if you have a plugin that is a long Vim script file. |
16808 | 11381 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
|
11382 That makes Vim startup faster. The autocommand should then load the same file |
16808 | 11383 again, setting a variable to skip the `:finish` command. |
161 | 11384 |
11385 Use the FuncUndefined autocommand event with a pattern that matches the | |
11386 function(s) to be defined. Example: > | |
7 | 11387 |
11388 :au FuncUndefined BufNet* source ~/vim/bufnetfuncs.vim | |
11389 | |
11390 The file "~/vim/bufnetfuncs.vim" should then define functions that start with | |
11391 "BufNet". Also see |FuncUndefined|. | |
11392 | |
161 | 11393 |
11394 Using an autoload script ~ | |
168 | 11395 *autoload* *E746* |
170 | 11396 This is introduced in the user manual, section |41.15|. |
11397 | |
161 | 11398 Using a script in the "autoload" directory is simpler, but requires using |
11399 exactly the right file name. A function that can be autoloaded has a name | |
11400 like this: > | |
11401 | |
270 | 11402 :call filename#funcname() |
161 | 11403 |
11404 When such a function is called, and it is not defined yet, Vim will search the | |
11405 "autoload" directories in 'runtimepath' for a script file called | |
11406 "filename.vim". For example "~/.vim/autoload/filename.vim". That file should | |
11407 then define the function like this: > | |
11408 | |
270 | 11409 function filename#funcname() |
161 | 11410 echo "Done!" |
11411 endfunction | |
11412 | |
530 | 11413 The file name and the name used before the # in the function must match |
161 | 11414 exactly, and the defined function must have the name exactly as it will be |
11415 called. | |
11416 | |
270 | 11417 It is possible to use subdirectories. Every # in the function name works like |
11418 a path separator. Thus when calling a function: > | |
11419 | |
11420 :call foo#bar#func() | |
161 | 11421 |
11422 Vim will look for the file "autoload/foo/bar.vim" in 'runtimepath'. | |
11423 | |
168 | 11424 This also works when reading a variable that has not been set yet: > |
11425 | |
270 | 11426 :let l = foo#bar#lvar |
168 | 11427 |
557 | 11428 However, when the autoload script was already loaded it won't be loaded again |
11429 for an unknown variable. | |
11430 | |
168 | 11431 When assigning a value to such a variable nothing special happens. This can |
11432 be used to pass settings to the autoload script before it's loaded: > | |
11433 | |
270 | 11434 :let foo#bar#toggle = 1 |
11435 :call foo#bar#func() | |
168 | 11436 |
164 | 11437 Note that when you make a mistake and call a function that is supposed to be |
11438 defined in an autoload script, but the script doesn't actually define the | |
11439 function, the script will be sourced every time you try to call the function. | |
168 | 11440 And you will get an error message every time. |
11441 | |
11442 Also note that if you have two script files, and one calls a function in the | |
1621 | 11443 other and vice versa, before the used function is defined, it won't work. |
168 | 11444 Avoid using the autoload functionality at the toplevel. |
161 | 11445 |
794 | 11446 Hint: If you distribute a bunch of scripts you can pack them together with the |
11447 |vimball| utility. Also read the user manual |distribute-script|. | |
11448 | |
7 | 11449 ============================================================================== |
11450 6. Curly braces names *curly-braces-names* | |
11451 | |
3410
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
11452 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
|
11453 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
|
11454 wrapped in braces {} like this: > |
7 | 11455 my_{adjective}_variable |
11456 | |
11457 When Vim encounters this, it evaluates the expression inside the braces, puts | |
11458 that in place of the expression, and re-interprets the whole as a variable | |
11459 name. So in the above example, if the variable "adjective" was set to | |
11460 "noisy", then the reference would be to "my_noisy_variable", whereas if | |
11461 "adjective" was set to "quiet", then it would be to "my_quiet_variable". | |
11462 | |
11463 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
|
11464 value. For example, the statement > |
7 | 11465 echo my_{&background}_message |
11466 | |
11467 would output the contents of "my_dark_message" or "my_light_message" depending | |
11468 on the current value of 'background'. | |
11469 | |
11470 You can use multiple brace pairs: > | |
11471 echo my_{adverb}_{adjective}_message | |
11472 ..or even nest them: > | |
11473 echo my_{ad{end_of_word}}_message | |
11474 where "end_of_word" is either "verb" or "jective". | |
11475 | |
11476 However, the expression inside the braces must evaluate to a valid single | |
236 | 11477 variable name, e.g. this is invalid: > |
7 | 11478 :let foo='a + b' |
11479 :echo c{foo}d | |
11480 .. since the result of expansion is "ca + bd", which is not a variable name. | |
11481 | |
11482 *curly-braces-function-names* | |
11483 You can call and define functions by an evaluated name in a similar way. | |
11484 Example: > | |
11485 :let func_end='whizz' | |
11486 :call my_func_{func_end}(parameter) | |
11487 | |
11488 This would call the function "my_func_whizz(parameter)". | |
11489 | |
3410
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
11490 This does NOT work: > |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
11491 :let i = 3 |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
11492 :let @{i} = '' " error |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
11493 :echo @{i} " error |
94601b379f38
Updated runtime files. Add Dutch translations.
Bram Moolenaar <bram@vim.org>
parents:
3398
diff
changeset
|
11494 |
7 | 11495 ============================================================================== |
11496 7. Commands *expression-commands* | |
11497 | |
11498 :let {var-name} = {expr1} *:let* *E18* | |
11499 Set internal variable {var-name} to the result of the | |
11500 expression {expr1}. The variable will get the type | |
11501 from the {expr}. If {var-name} didn't exist yet, it | |
11502 is created. | |
11503 | |
85 | 11504 :let {var-name}[{idx}] = {expr1} *E689* |
11505 Set a list item to the result of the expression | |
11506 {expr1}. {var-name} must refer to a list and {idx} | |
11507 must be a valid index in that list. For nested list | |
11508 the index can be repeated. | |
1621 | 11509 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
|
11510 This cannot be used to set a byte in a String. You |
1621 | 11511 can do that like this: > |
11512 :let var = var[0:2] . 'X' . var[4:] | |
15454
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
11513 < When {var-name} is a |Blob| then {idx} can be the |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
11514 length of the blob, in which case one byte is |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
11515 appended. |
1d2b5c016f17
patch 8.1.0735: cannot handle binary data
Bram Moolenaar <Bram@vim.org>
parents:
15446
diff
changeset
|
11516 |
114 | 11517 *E711* *E719* |
11518 :let {var-name}[{idx1}:{idx2}] = {expr1} *E708* *E709* *E710* | |
685 | 11519 Set a sequence of items in a |List| to the result of |
11520 the expression {expr1}, which must be a list with the | |
87 | 11521 correct number of items. |
11522 {idx1} can be omitted, zero is used instead. | |
11523 {idx2} can be omitted, meaning the end of the list. | |
11524 When the selected range of items is partly past the | |
11525 end of the list, items will be added. | |
11526 | |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
11527 *:let+=* *:let-=* *:letstar=* |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
11528 *:let/=* *:let%=* *:let.=* *:let..=* *E734* *E985* |
114 | 11529 :let {var} += {expr1} Like ":let {var} = {var} + {expr1}". |
11530 :let {var} -= {expr1} Like ":let {var} = {var} - {expr1}". | |
15790
05d836c8f1c4
patch 8.1.0902: incomplete set of assignment operators
Bram Moolenaar <Bram@vim.org>
parents:
15774
diff
changeset
|
11531 :let {var} *= {expr1} Like ":let {var} = {var} * {expr1}". |
05d836c8f1c4
patch 8.1.0902: incomplete set of assignment operators
Bram Moolenaar <Bram@vim.org>
parents:
15774
diff
changeset
|
11532 :let {var} /= {expr1} Like ":let {var} = {var} / {expr1}". |
05d836c8f1c4
patch 8.1.0902: incomplete set of assignment operators
Bram Moolenaar <Bram@vim.org>
parents:
15774
diff
changeset
|
11533 :let {var} %= {expr1} Like ":let {var} = {var} % {expr1}". |
114 | 11534 :let {var} .= {expr1} Like ":let {var} = {var} . {expr1}". |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
11535 :let {var} ..= {expr1} Like ":let {var} = {var} .. {expr1}". |
114 | 11536 These fail if {var} was not set yet and when the type |
11537 of {var} and {expr1} don't fit the operator. | |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
11538 `.=` is not supported with Vim script version 2 and |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
11539 later, see |vimscript-version|. |
114 | 11540 |
11541 | |
7 | 11542 :let ${env-name} = {expr1} *:let-environment* *:let-$* |
11543 Set environment variable {env-name} to the result of | |
11544 the expression {expr1}. The type is always String. | |
17758 | 11545 |
11546 On some systems making an environment variable empty | |
11547 causes it to be deleted. Many systems do not make a | |
11548 difference between an environment variable that is not | |
11549 set and an environment variable that is empty. | |
11550 | |
114 | 11551 :let ${env-name} .= {expr1} |
11552 Append {expr1} to the environment variable {env-name}. | |
11553 If the environment variable didn't exist yet this | |
11554 works like "=". | |
7 | 11555 |
11556 :let @{reg-name} = {expr1} *:let-register* *:let-@* | |
11557 Write the result of the expression {expr1} in register | |
11558 {reg-name}. {reg-name} must be a single letter, and | |
11559 must be the name of a writable register (see | |
11560 |registers|). "@@" can be used for the unnamed | |
11561 register, "@/" for the search pattern. | |
11562 If the result of {expr1} ends in a <CR> or <NL>, the | |
11563 register will be linewise, otherwise it will be set to | |
11564 characterwise. | |
11565 This can be used to clear the last search pattern: > | |
11566 :let @/ = "" | |
11567 < This is different from searching for an empty string, | |
11568 that would match everywhere. | |
11569 | |
114 | 11570 :let @{reg-name} .= {expr1} |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
11571 Append {expr1} to register {reg-name}. If the |
114 | 11572 register was empty it's like setting it to {expr1}. |
11573 | |
1156 | 11574 :let &{option-name} = {expr1} *:let-option* *:let-&* |
7 | 11575 Set option {option-name} to the result of the |
68 | 11576 expression {expr1}. A String or Number value is |
11577 always converted to the type of the option. | |
7 | 11578 For an option local to a window or buffer the effect |
11579 is just like using the |:set| command: both the local | |
555 | 11580 value and the global value are changed. |
68 | 11581 Example: > |
11582 :let &path = &path . ',/usr/local/include' | |
10895
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
11583 < This also works for terminal codes in the form t_xx. |
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
11584 But only for alphanumerical names. Example: > |
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
11585 :let &t_k1 = "\<Esc>[234;" |
c391bfbdb452
Updated runtime files.
Christian Brabandt <cb@256bit.org>
parents:
10787
diff
changeset
|
11586 < 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
|
11587 a terminal key code, there is no error. |
7 | 11588 |
114 | 11589 :let &{option-name} .= {expr1} |
11590 For a string option: Append {expr1} to the value. | |
11591 Does not insert a comma like |:set+=|. | |
11592 | |
11593 :let &{option-name} += {expr1} | |
11594 :let &{option-name} -= {expr1} | |
11595 For a number or boolean option: Add or subtract | |
11596 {expr1}. | |
11597 | |
7 | 11598 :let &l:{option-name} = {expr1} |
114 | 11599 :let &l:{option-name} .= {expr1} |
11600 :let &l:{option-name} += {expr1} | |
11601 :let &l:{option-name} -= {expr1} | |
7 | 11602 Like above, but only set the local value of an option |
11603 (if there is one). Works like |:setlocal|. | |
11604 | |
11605 :let &g:{option-name} = {expr1} | |
114 | 11606 :let &g:{option-name} .= {expr1} |
11607 :let &g:{option-name} += {expr1} | |
11608 :let &g:{option-name} -= {expr1} | |
7 | 11609 Like above, but only set the global value of an option |
11610 (if there is one). Works like |:setglobal|. | |
11611 | |
85 | 11612 :let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688* |
685 | 11613 {expr1} must evaluate to a |List|. The first item in |
68 | 11614 the list is assigned to {name1}, the second item to |
11615 {name2}, etc. | |
11616 The number of names must match the number of items in | |
685 | 11617 the |List|. |
68 | 11618 Each name can be one of the items of the ":let" |
11619 command as mentioned above. | |
11620 Example: > | |
11621 :let [s, item] = GetItem(s) | |
114 | 11622 < Detail: {expr1} is evaluated first, then the |
11623 assignments are done in sequence. This matters if | |
11624 {name2} depends on {name1}. Example: > | |
11625 :let x = [0, 1] | |
11626 :let i = 0 | |
11627 :let [i, x[i]] = [1, 2] | |
11628 :echo x | |
11629 < The result is [0, 2]. | |
11630 | |
11631 :let [{name1}, {name2}, ...] .= {expr1} | |
11632 :let [{name1}, {name2}, ...] += {expr1} | |
11633 :let [{name1}, {name2}, ...] -= {expr1} | |
11634 Like above, but append/add/subtract the value for each | |
685 | 11635 |List| item. |
68 | 11636 |
19968 | 11637 :let [{name}, ..., ; {lastname}] = {expr1} *E452* |
685 | 11638 Like |:let-unpack| above, but the |List| may have more |
114 | 11639 items than there are names. A list of the remaining |
11640 items is assigned to {lastname}. If there are no | |
11641 remaining items {lastname} is set to an empty list. | |
68 | 11642 Example: > |
11643 :let [a, b; rest] = ["aval", "bval", 3, 4] | |
11644 < | |
114 | 11645 :let [{name}, ..., ; {lastname}] .= {expr1} |
11646 :let [{name}, ..., ; {lastname}] += {expr1} | |
11647 :let [{name}, ..., ; {lastname}] -= {expr1} | |
11648 Like above, but append/add/subtract the value for each | |
685 | 11649 |List| item. |
2596 | 11650 |
17450
509542f1fffb
patch 8.1.1723: heredoc assignment has no room for new features
Bram Moolenaar <Bram@vim.org>
parents:
17433
diff
changeset
|
11651 *:let=<<* *:let-heredoc* |
509542f1fffb
patch 8.1.1723: heredoc assignment has no room for new features
Bram Moolenaar <Bram@vim.org>
parents:
17433
diff
changeset
|
11652 *E990* *E991* *E172* *E221* |
18343 | 11653 :let {var-name} =<< [trim] {endmarker} |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11654 text... |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11655 text... |
18343 | 11656 {endmarker} |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11657 Set internal variable {var-name} to a List containing |
18343 | 11658 the lines of text bounded by the string {endmarker}. |
11659 {endmarker} must not contain white space. | |
11660 {endmarker} cannot start with a lower case character. | |
11661 The last line should end only with the {endmarker} | |
11662 string without any other character. Watch out for | |
11663 white space after {endmarker}! | |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11664 |
17172
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11665 Without "trim" any white space characters in the lines |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11666 of text are preserved. If "trim" is specified before |
18343 | 11667 {endmarker}, then indentation is stripped so you can |
11668 do: > | |
17172
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11669 let text =<< trim END |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11670 if ok |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11671 echo 'done' |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11672 endif |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11673 END |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11674 < Results in: ["if ok", " echo 'done'", "endif"] |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11675 The marker must line up with "let" and the indentation |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11676 of the first line is removed from all the text lines. |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11677 Specifically: all the leading indentation exactly |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11678 matching the leading indentation of the first |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11679 non-empty text line is stripped from the input lines. |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11680 All leading indentation exactly matching the leading |
6990c1160ea5
patch 8.1.1585: :let-heredoc does not trim enough
Bram Moolenaar <Bram@vim.org>
parents:
17161
diff
changeset
|
11681 indentation before `let` is stripped from the line |
18343 | 11682 containing {endmarker}. Note that the difference |
11683 between space and tab matters here. | |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11684 |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11685 If {var-name} didn't exist yet, it is created. |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11686 Cannot be followed by another command, but can be |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11687 followed by a comment. |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11688 |
18343 | 11689 To avoid line continuation to be applied, consider |
11690 adding 'C' to 'cpoptions': > | |
11691 set cpo+=C | |
11692 let var =<< END | |
11693 \ leading backslash | |
11694 END | |
11695 set cpo-=C | |
11696 < | |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11697 Examples: > |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11698 let var1 =<< END |
18343 | 11699 Sample text 1 |
11700 Sample text 2 | |
11701 Sample text 3 | |
11702 END | |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11703 |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11704 let data =<< trim DATA |
18343 | 11705 1 2 3 4 |
11706 5 6 7 8 | |
16704
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11707 DATA |
a927fdf9a4b0
patch 8.1.1354: getting a list of text lines is clumsy
Bram Moolenaar <Bram@vim.org>
parents:
16664
diff
changeset
|
11708 < |
2596 | 11709 *E121* |
9877
7da89d9c744b
commit https://github.com/vim/vim/commit/58b853460add42098ab08017df9e030fb14fd34b
Christian Brabandt <cb@256bit.org>
parents:
9861
diff
changeset
|
11710 :let {var-name} .. List the value of variable {var-name}. Multiple |
123 | 11711 variable names may be given. Special names recognized |
11712 here: *E738* | |
777 | 11713 g: global variables |
11714 b: local buffer variables | |
11715 w: local window variables | |
819 | 11716 t: local tab page variables |
777 | 11717 s: script-local variables |
11718 l: local function variables | |
123 | 11719 v: Vim variables. |
7 | 11720 |
55 | 11721 :let List the values of all variables. The type of the |
11722 variable is indicated before the value: | |
11723 <nothing> String | |
11724 # Number | |
856 | 11725 * Funcref |
7 | 11726 |
1156 | 11727 :unl[et][!] {name} ... *:unlet* *:unl* *E108* *E795* |
148 | 11728 Remove the internal variable {name}. Several variable |
11729 names can be given, they are all removed. The name | |
685 | 11730 may also be a |List| or |Dictionary| item. |
7 | 11731 With [!] no error message is given for non-existing |
11732 variables. | |
685 | 11733 One or more items from a |List| can be removed: > |
108 | 11734 :unlet list[3] " remove fourth item |
11735 :unlet list[3:] " remove fourth item to last | |
685 | 11736 < One item from a |Dictionary| can be removed at a time: > |
108 | 11737 :unlet dict['two'] |
11738 :unlet dict.two | |
1668 | 11739 < This is especially useful to clean up used global |
11740 variables and script-local variables (these are not | |
11741 deleted when the script ends). Function-local | |
11742 variables are automatically deleted when the function | |
11743 ends. | |
7 | 11744 |
13923
e4d5726e1678
patch 8.0.1832: cannot use :unlet for an environment variable
Christian Brabandt <cb@256bit.org>
parents:
13821
diff
changeset
|
11745 :unl[et] ${env-name} ... *:unlet-environment* *:unlet-$* |
e4d5726e1678
patch 8.0.1832: cannot use :unlet for an environment variable
Christian Brabandt <cb@256bit.org>
parents:
13821
diff
changeset
|
11746 Remove environment variable {env-name}. |
e4d5726e1678
patch 8.0.1832: cannot use :unlet for an environment variable
Christian Brabandt <cb@256bit.org>
parents:
13821
diff
changeset
|
11747 Can mix {name} and ${env-name} in one :unlet command. |
e4d5726e1678
patch 8.0.1832: cannot use :unlet for an environment variable
Christian Brabandt <cb@256bit.org>
parents:
13821
diff
changeset
|
11748 No error message is given for a non-existing |
e4d5726e1678
patch 8.0.1832: cannot use :unlet for an environment variable
Christian Brabandt <cb@256bit.org>
parents:
13821
diff
changeset
|
11749 variable, also without !. |
e4d5726e1678
patch 8.0.1832: cannot use :unlet for an environment variable
Christian Brabandt <cb@256bit.org>
parents:
13821
diff
changeset
|
11750 If the system does not support deleting an environment |
17079
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11751 variable, it is made empty. |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11752 |
17109
cc5d4b4bae83
patch 8.1.1554: docs and tests for :const can be improved
Bram Moolenaar <Bram@vim.org>
parents:
17085
diff
changeset
|
11753 *:cons* *:const* |
17079
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11754 :cons[t] {var-name} = {expr1} |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11755 :cons[t] [{name1}, {name2}, ...] = {expr1} |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11756 :cons[t] [{name}, ..., ; {lastname}] = {expr1} |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11757 :cons[t] {var-name} =<< [trim] {marker} |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11758 text... |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11759 text... |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11760 {marker} |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11761 Similar to |:let|, but additionally lock the variable |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11762 after setting the value. This is the same as locking |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11763 the variable with |:lockvar| just after |:let|, thus: > |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11764 :const x = 1 |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11765 < is equivalent to: > |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11766 :let x = 1 |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11767 :lockvar 1 x |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11768 < This is useful if you want to make sure the variable |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11769 is not modified. |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11770 *E995* |
17131
be5a5cfc991a
patch 8.1.1565: MS-Windows: no sound support
Bram Moolenaar <Bram@vim.org>
parents:
17109
diff
changeset
|
11771 |:const| does not allow to for changing a variable: > |
17079
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11772 :let x = 1 |
00ffed9bbb65
patch 8.1.1539: not easy to define a variable and lock it
Bram Moolenaar <Bram@vim.org>
parents:
17053
diff
changeset
|
11773 :const x = 2 " Error! |
17109
cc5d4b4bae83
patch 8.1.1554: docs and tests for :const can be improved
Bram Moolenaar <Bram@vim.org>
parents:
17085
diff
changeset
|
11774 < *E996* |
cc5d4b4bae83
patch 8.1.1554: docs and tests for :const can be improved
Bram Moolenaar <Bram@vim.org>
parents:
17085
diff
changeset
|
11775 Note that environment variables, option values and |
cc5d4b4bae83
patch 8.1.1554: docs and tests for :const can be improved
Bram Moolenaar <Bram@vim.org>
parents:
17085
diff
changeset
|
11776 register values cannot be used here, since they cannot |
cc5d4b4bae83
patch 8.1.1554: docs and tests for :const can be improved
Bram Moolenaar <Bram@vim.org>
parents:
17085
diff
changeset
|
11777 be locked. |
cc5d4b4bae83
patch 8.1.1554: docs and tests for :const can be improved
Bram Moolenaar <Bram@vim.org>
parents:
17085
diff
changeset
|
11778 |
17433 | 11779 :cons[t] |
11780 :cons[t] {var-name} | |
11781 If no argument is given or only {var-name} is given, | |
11782 the behavior is the same as |:let|. | |
11783 | |
148 | 11784 :lockv[ar][!] [depth] {name} ... *:lockvar* *:lockv* |
11785 Lock the internal variable {name}. Locking means that | |
11786 it can no longer be changed (until it is unlocked). | |
11787 A locked variable can be deleted: > | |
11788 :lockvar v | |
11789 :let v = 'asdf' " fails! | |
11790 :unlet v | |
10908
6b6abffbdf59
patch 8.0.0343: b:changedtick can be unlocked
Christian Brabandt <cb@256bit.org>
parents:
10895
diff
changeset
|
11791 < *E741* *E940* |
148 | 11792 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
|
11793 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
|
11794 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
|
11795 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
|
11796 variable {name}". |
148 | 11797 |
685 | 11798 [depth] is relevant when locking a |List| or |
11799 |Dictionary|. It specifies how deep the locking goes: | |
11800 1 Lock the |List| or |Dictionary| itself, | |
148 | 11801 cannot add or remove items, but can |
11802 still change their values. | |
11803 2 Also lock the values, cannot change | |
685 | 11804 the items. If an item is a |List| or |
11805 |Dictionary|, cannot add or remove | |
148 | 11806 items, but can still change the |
11807 values. | |
685 | 11808 3 Like 2 but for the |List| / |
11809 |Dictionary| in the |List| / | |
11810 |Dictionary|, one level deeper. | |
11811 The default [depth] is 2, thus when {name} is a |List| | |
11812 or |Dictionary| the values cannot be changed. | |
148 | 11813 *E743* |
11814 For unlimited depth use [!] and omit [depth]. | |
11815 However, there is a maximum depth of 100 to catch | |
11816 loops. | |
11817 | |
685 | 11818 Note that when two variables refer to the same |List| |
11819 and you lock one of them, the |List| will also be | |
819 | 11820 locked when used through the other variable. |
11821 Example: > | |
148 | 11822 :let l = [0, 1, 2, 3] |
11823 :let cl = l | |
11824 :lockvar l | |
11825 :let cl[1] = 99 " won't work! | |
11826 < You may want to make a copy of a list to avoid this. | |
11827 See |deepcopy()|. | |
11828 | |
11829 | |
11830 :unlo[ckvar][!] [depth] {name} ... *:unlockvar* *:unlo* | |
11831 Unlock the internal variable {name}. Does the | |
11832 opposite of |:lockvar|. | |
11833 | |
16944 | 11834 :if {expr1} *:if* *:end* *:endif* *:en* *E171* *E579* *E580* |
7 | 11835 :en[dif] Execute the commands until the next matching ":else" |
11836 or ":endif" if {expr1} evaluates to non-zero. | |
11837 | |
11838 From Vim version 4.5 until 5.0, every Ex command in | |
11839 between the ":if" and ":endif" is ignored. These two | |
11840 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
|
11841 backward compatible way. Nesting was allowed. Note |
7 | 11842 that any ":else" or ":elseif" was ignored, the "else" |
11843 part was not executed either. | |
11844 | |
11845 You can use this to remain compatible with older | |
11846 versions: > | |
11847 :if version >= 500 | |
11848 : version-5-specific-commands | |
11849 :endif | |
11850 < The commands still need to be parsed to find the | |
11851 "endif". Sometimes an older Vim has a problem with a | |
11852 new command. For example, ":silent" is recognized as | |
11853 a ":substitute" command. In that case ":execute" can | |
11854 avoid problems: > | |
11855 :if version >= 600 | |
11856 : execute "silent 1,$delete" | |
11857 :endif | |
11858 < | |
11859 NOTE: The ":append" and ":insert" commands don't work | |
11860 properly in between ":if" and ":endif". | |
11861 | |
11862 *:else* *:el* *E581* *E583* | |
11863 :el[se] Execute the commands until the next matching ":else" | |
11864 or ":endif" if they previously were not being | |
11865 executed. | |
11866 | |
11867 *:elseif* *:elsei* *E582* *E584* | |
11868 :elsei[f] {expr1} Short for ":else" ":if", with the addition that there | |
11869 is no extra ":endif". | |
11870 | |
11871 :wh[ile] {expr1} *:while* *:endwhile* *:wh* *:endw* | |
114 | 11872 *E170* *E585* *E588* *E733* |
7 | 11873 :endw[hile] Repeat the commands between ":while" and ":endwhile", |
11874 as long as {expr1} evaluates to non-zero. | |
11875 When an error is detected from a command inside the | |
11876 loop, execution continues after the "endwhile". | |
75 | 11877 Example: > |
11878 :let lnum = 1 | |
11879 :while lnum <= line("$") | |
11880 :call FixLine(lnum) | |
11881 :let lnum = lnum + 1 | |
11882 :endwhile | |
11883 < | |
7 | 11884 NOTE: The ":append" and ":insert" commands don't work |
99 | 11885 properly inside a ":while" and ":for" loop. |
75 | 11886 |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11887 :for {var} in {object} *:for* *E690* *E732* |
75 | 11888 :endfo[r] *:endfo* *:endfor* |
11889 Repeat the commands between ":for" and ":endfor" for | |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11890 each item in {object}. {object} can be a |List| or |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11891 a |Blob|. Variable {var} is set to the value of each |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11892 item. When an error is detected for a command inside |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11893 the loop, execution continues after the "endfor". |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11894 Changing {object} inside the loop affects what items |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11895 are used. Make a copy if this is unwanted: > |
79 | 11896 :for item in copy(mylist) |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11897 < |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11898 When {object} is a |List| and not making a copy, Vim |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11899 stores a reference to the next item in the |List| |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11900 before executing the commands with the current item. |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11901 Thus the current item can be removed without effect. |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11902 Removing any later item means it will not be found. |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11903 Thus the following example works (an inefficient way |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11904 to make a |List| empty): > |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
11905 for item in mylist |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
11906 call remove(mylist, 0) |
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
11907 endfor |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11908 < Note that reordering the |List| (e.g., with sort() or |
87 | 11909 reverse()) may have unexpected effects. |
75 | 11910 |
15615
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11911 When {object} is a |Blob|, Vim always makes a copy to |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11912 iterate over. Unlike with |List|, modifying the |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11913 |Blob| does not affect the iteration. |
536fca2cee19
patch 8.1.0815: dialog for file changed outside of Vim not tested
Bram Moolenaar <Bram@vim.org>
parents:
15579
diff
changeset
|
11914 |
75 | 11915 :for [{var1}, {var2}, ...] in {listlist} |
11916 :endfo[r] | |
11917 Like ":for" above, but each item in {listlist} must be | |
11918 a list, of which each item is assigned to {var1}, | |
11919 {var2}, etc. Example: > | |
11920 :for [lnum, col] in [[1, 3], [2, 5], [3, 8]] | |
11921 :echo getline(lnum)[col] | |
11922 :endfor | |
11923 < | |
7 | 11924 *:continue* *:con* *E586* |
75 | 11925 :con[tinue] When used inside a ":while" or ":for" loop, jumps back |
11926 to the start of the loop. | |
11927 If it is used after a |:try| inside the loop but | |
11928 before the matching |:finally| (if present), the | |
11929 commands following the ":finally" up to the matching | |
11930 |:endtry| are executed first. This process applies to | |
11931 all nested ":try"s inside the loop. The outermost | |
11932 ":endtry" then jumps back to the start of the loop. | |
7 | 11933 |
11934 *:break* *:brea* *E587* | |
75 | 11935 :brea[k] When used inside a ":while" or ":for" loop, skips to |
11936 the command after the matching ":endwhile" or | |
11937 ":endfor". | |
11938 If it is used after a |:try| inside the loop but | |
11939 before the matching |:finally| (if present), the | |
11940 commands following the ":finally" up to the matching | |
11941 |:endtry| are executed first. This process applies to | |
11942 all nested ":try"s inside the loop. The outermost | |
11943 ":endtry" then jumps to the command after the loop. | |
7 | 11944 |
11945 :try *:try* *:endt* *:endtry* *E600* *E601* *E602* | |
11946 :endt[ry] Change the error handling for the commands between | |
11947 ":try" and ":endtry" including everything being | |
11948 executed across ":source" commands, function calls, | |
11949 or autocommand invocations. | |
11950 | |
11951 When an error or interrupt is detected and there is | |
11952 a |:finally| command following, execution continues | |
11953 after the ":finally". Otherwise, or when the | |
11954 ":endtry" is reached thereafter, the next | |
11955 (dynamically) surrounding ":try" is checked for | |
11956 a corresponding ":finally" etc. Then the script | |
19523 | 11957 processing is terminated. Whether a function |
11958 definition has an "abort" argument does not matter. | |
7 | 11959 Example: > |
19523 | 11960 try | call Unknown() | finally | echomsg "cleanup" | endtry |
11961 echomsg "not reached" | |
7 | 11962 < |
11963 Moreover, an error or interrupt (dynamically) inside | |
11964 ":try" and ":endtry" is converted to an exception. It | |
11965 can be caught as if it were thrown by a |:throw| | |
11966 command (see |:catch|). In this case, the script | |
11967 processing is not terminated. | |
11968 | |
11969 The value "Vim:Interrupt" is used for an interrupt | |
11970 exception. An error in a Vim command is converted | |
11971 to a value of the form "Vim({command}):{errmsg}", | |
11972 other errors are converted to a value of the form | |
11973 "Vim:{errmsg}". {command} is the full command name, | |
11974 and {errmsg} is the message that is displayed if the | |
11975 error exception is not caught, always beginning with | |
11976 the error number. | |
11977 Examples: > | |
19523 | 11978 try | sleep 100 | catch /^Vim:Interrupt$/ | endtry |
11979 try | edit | catch /^Vim(edit):E\d\+/ | echo "error" | endtry | |
7 | 11980 < |
11981 *:cat* *:catch* *E603* *E604* *E605* | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
11982 :cat[ch] /{pattern}/ The following commands until the next |:catch|, |
7 | 11983 |:finally|, or |:endtry| that belongs to the same |
11984 |:try| as the ":catch" are executed when an exception | |
11985 matching {pattern} is being thrown and has not yet | |
11986 been caught by a previous ":catch". Otherwise, these | |
11987 commands are skipped. | |
11988 When {pattern} is omitted all errors are caught. | |
11989 Examples: > | |
16019
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11990 :catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C) |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11991 :catch /^Vim\%((\a\+)\)\=:E/ " catch all Vim errors |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11992 :catch /^Vim\%((\a\+)\)\=:/ " catch errors and interrupts |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11993 :catch /^Vim(write):/ " catch all errors in :write |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11994 :catch /^Vim\%((\a\+)\)\=:E123:/ " catch error E123 |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11995 :catch /my-exception/ " catch user exception |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11996 :catch /.*/ " catch everything |
096b8ccd855e
patch 8.1.1015: quickfix buffer shows up in list, can't get buffer number
Bram Moolenaar <Bram@vim.org>
parents:
15977
diff
changeset
|
11997 :catch " same as /.*/ |
7 | 11998 < |
11999 Another character can be used instead of / around the | |
12000 {pattern}, so long as it does not have a special | |
12001 meaning (e.g., '|' or '"') and doesn't occur inside | |
12002 {pattern}. | |
5814 | 12003 Information about the exception is available in |
12004 |v:exception|. Also see |throw-variables|. | |
7 | 12005 NOTE: It is not reliable to ":catch" the TEXT of |
12006 an error message because it may vary in different | |
12007 locales. | |
12008 | |
12009 *:fina* *:finally* *E606* *E607* | |
12010 :fina[lly] The following commands until the matching |:endtry| | |
12011 are executed whenever the part between the matching | |
12012 |:try| and the ":finally" is left: either by falling | |
12013 through to the ":finally" or by a |:continue|, | |
12014 |:break|, |:finish|, or |:return|, or by an error or | |
12015 interrupt or exception (see |:throw|). | |
12016 | |
12017 *:th* *:throw* *E608* | |
12018 :th[row] {expr1} The {expr1} is evaluated and thrown as an exception. | |
12019 If the ":throw" is used after a |:try| but before the | |
12020 first corresponding |:catch|, commands are skipped | |
12021 until the first ":catch" matching {expr1} is reached. | |
12022 If there is no such ":catch" or if the ":throw" is | |
12023 used after a ":catch" but before the |:finally|, the | |
12024 commands following the ":finally" (if present) up to | |
12025 the matching |:endtry| are executed. If the ":throw" | |
12026 is after the ":finally", commands up to the ":endtry" | |
12027 are skipped. At the ":endtry", this process applies | |
12028 again for the next dynamically surrounding ":try" | |
12029 (which may be found in a calling function or sourcing | |
12030 script), until a matching ":catch" has been found. | |
12031 If the exception is not caught, the command processing | |
12032 is terminated. | |
12033 Example: > | |
12034 :try | throw "oops" | catch /^oo/ | echo "caught" | endtry | |
2725 | 12035 < Note that "catch" may need to be on a separate line |
12036 for when an error causes the parsing to skip the whole | |
12037 line and not see the "|" that separates the commands. | |
7 | 12038 |
12039 *:ec* *:echo* | |
12040 :ec[ho] {expr1} .. Echoes each {expr1}, with a space in between. The | |
12041 first {expr1} starts on a new line. | |
12042 Also see |:comment|. | |
12043 Use "\n" to start a new line. Use "\r" to move the | |
12044 cursor to the first column. | |
12045 Uses the highlighting set by the |:echohl| command. | |
12046 Cannot be followed by a comment. | |
12047 Example: > | |
12048 :echo "the value of 'shell' is" &shell | |
1156 | 12049 < *:echo-redraw* |
12050 A later redraw may make the message disappear again. | |
12051 And since Vim mostly postpones redrawing until it's | |
12052 finished with a sequence of commands this happens | |
12053 quite often. To avoid that a command from before the | |
12054 ":echo" causes a redraw afterwards (redraws are often | |
12055 postponed until you type something), force a redraw | |
12056 with the |:redraw| command. Example: > | |
7 | 12057 :new | redraw | echo "there is a new window" |
12058 < | |
12059 *:echon* | |
12060 :echon {expr1} .. Echoes each {expr1}, without anything added. Also see | |
12061 |:comment|. | |
12062 Uses the highlighting set by the |:echohl| command. | |
12063 Cannot be followed by a comment. | |
12064 Example: > | |
12065 :echon "the value of 'shell' is " &shell | |
12066 < | |
12067 Note the difference between using ":echo", which is a | |
12068 Vim command, and ":!echo", which is an external shell | |
12069 command: > | |
12070 :!echo % --> filename | |
12071 < The arguments of ":!" are expanded, see |:_%|. > | |
12072 :!echo "%" --> filename or "filename" | |
12073 < Like the previous example. Whether you see the double | |
12074 quotes or not depends on your 'shell'. > | |
12075 :echo % --> nothing | |
12076 < The '%' is an illegal character in an expression. > | |
12077 :echo "%" --> % | |
12078 < This just echoes the '%' character. > | |
12079 :echo expand("%") --> filename | |
12080 < This calls the expand() function to expand the '%'. | |
12081 | |
12082 *:echoh* *:echohl* | |
12083 :echoh[l] {name} Use the highlight group {name} for the following | |
12084 |:echo|, |:echon| and |:echomsg| commands. Also used | |
12085 for the |input()| prompt. Example: > | |
12086 :echohl WarningMsg | echo "Don't panic!" | echohl None | |
12087 < Don't forget to set the group back to "None", | |
12088 otherwise all following echo's will be highlighted. | |
12089 | |
12090 *:echom* *:echomsg* | |
12091 :echom[sg] {expr1} .. Echo the expression(s) as a true message, saving the | |
12092 message in the |message-history|. | |
12093 Spaces are placed between the arguments as with the | |
12094 |:echo| command. But unprintable characters are | |
12095 displayed, not interpreted. | |
1156 | 12096 The parsing works slightly different from |:echo|, |
12097 more like |:execute|. All the expressions are first | |
12098 evaluated and concatenated before echoing anything. | |
15219
dada0b389d4f
patch 8.1.0619: :echomsg and :echoerr do not handle List and Dict
Bram Moolenaar <Bram@vim.org>
parents:
15209
diff
changeset
|
12099 If expressions does not evaluate to a Number or |
dada0b389d4f
patch 8.1.0619: :echomsg and :echoerr do not handle List and Dict
Bram Moolenaar <Bram@vim.org>
parents:
15209
diff
changeset
|
12100 String, string() is used to turn it into a string. |
7 | 12101 Uses the highlighting set by the |:echohl| command. |
12102 Example: > | |
12103 :echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see." | |
1156 | 12104 < See |:echo-redraw| to avoid the message disappearing |
12105 when the screen is redrawn. | |
7 | 12106 *:echoe* *:echoerr* |
12107 :echoe[rr] {expr1} .. Echo the expression(s) as an error message, saving the | |
12108 message in the |message-history|. When used in a | |
12109 script or function the line number will be added. | |
12110 Spaces are placed between the arguments as with the | |
15219
dada0b389d4f
patch 8.1.0619: :echomsg and :echoerr do not handle List and Dict
Bram Moolenaar <Bram@vim.org>
parents:
15209
diff
changeset
|
12111 |:echomsg| command. When used inside a try conditional, |
7 | 12112 the message is raised as an error exception instead |
12113 (see |try-echoerr|). | |
12114 Example: > | |
12115 :echoerr "This script just failed!" | |
12116 < If you just want a highlighted message use |:echohl|. | |
12117 And to get a beep: > | |
12118 :exe "normal \<Esc>" | |
12119 < | |
18639 | 12120 *:eval* |
12121 :eval {expr} Evaluate {expr} and discard the result. Example: > | |
12122 :eval Getlist()->Filter()->append('$') | |
12123 | |
12124 < The expression is supposed to have a side effect, | |
12125 since the resulting value is not used. In the example | |
12126 the `append()` call appends the List with text to the | |
12127 buffer. This is similar to `:call` but works with any | |
12128 expression. | |
12129 | |
12130 The command can be shortened to `:ev` or `:eva`, but | |
12131 these are hard to recognize and therefore not to be | |
12132 used. | |
12133 | |
19523 | 12134 The command cannot be followed by "|" and another |
12135 command, since "|" is seen as part of the expression. | |
12136 | |
18639 | 12137 |
7 | 12138 *:exe* *:execute* |
12139 :exe[cute] {expr1} .. Executes the string that results from the evaluation | |
2152 | 12140 of {expr1} as an Ex command. |
12141 Multiple arguments are concatenated, with a space in | |
12142 between. To avoid the extra space use the "." | |
12143 operator to concatenate strings into one argument. | |
12144 {expr1} is used as the processed command, command line | |
12145 editing keys are not recognized. | |
7 | 12146 Cannot be followed by a comment. |
12147 Examples: > | |
2152 | 12148 :execute "buffer" nextbuf |
12149 :execute "normal" count . "w" | |
7 | 12150 < |
12151 ":execute" can be used to append a command to commands | |
12152 that don't accept a '|'. Example: > | |
12153 :execute '!ls' | echo "theend" | |
12154 | |
12155 < ":execute" is also a nice way to avoid having to type | |
12156 control characters in a Vim script for a ":normal" | |
12157 command: > | |
12158 :execute "normal ixxx\<Esc>" | |
12159 < This has an <Esc> character, see |expr-string|. | |
12160 | |
1621 | 12161 Be careful to correctly escape special characters in |
12162 file names. The |fnameescape()| function can be used | |
1661 | 12163 for Vim commands, |shellescape()| for |:!| commands. |
12164 Examples: > | |
1621 | 12165 :execute "e " . fnameescape(filename) |
5692
80e5f9584b02
Update runtime files. Add Euphoria syntax files.
Bram Moolenaar <bram@vim.org>
parents:
5690
diff
changeset
|
12166 :execute "!ls " . shellescape(filename, 1) |
1621 | 12167 < |
7 | 12168 Note: The executed string may be any command-line, but |
5763 | 12169 starting or ending "if", "while" and "for" does not |
12170 always work, because when commands are skipped the | |
12171 ":execute" is not evaluated and Vim loses track of | |
12172 where blocks start and end. Also "break" and | |
12173 "continue" should not be inside ":execute". | |
12174 This example does not work, because the ":execute" is | |
12175 not evaluated and Vim does not see the "while", and | |
12176 gives an error for finding an ":endwhile": > | |
12177 :if 0 | |
12178 : execute 'while i > 5' | |
12179 : echo "test" | |
12180 : endwhile | |
12181 :endif | |
7 | 12182 < |
12183 It is allowed to have a "while" or "if" command | |
12184 completely in the executed string: > | |
12185 :execute 'while i < 5 | echo i | let i = i + 1 | endwhile' | |
12186 < | |
12187 | |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
12188 *:exe-comment* |
7 | 12189 ":execute", ":echo" and ":echon" cannot be followed by |
12190 a comment directly, because they see the '"' as the | |
12191 start of a string. But, you can use '|' followed by a | |
12192 comment. Example: > | |
12193 :echo "foo" | "this is a comment | |
12194 | |
12195 ============================================================================== | |
12196 8. Exception handling *exception-handling* | |
12197 | |
12198 The Vim script language comprises an exception handling feature. This section | |
12199 explains how it can be used in a Vim script. | |
12200 | |
12201 Exceptions may be raised by Vim on an error or on interrupt, see | |
12202 |catch-errors| and |catch-interrupt|. You can also explicitly throw an | |
12203 exception by using the ":throw" command, see |throw-catch|. | |
12204 | |
12205 | |
12206 TRY CONDITIONALS *try-conditionals* | |
12207 | |
12208 Exceptions can be caught or can cause cleanup code to be executed. You can | |
12209 use a try conditional to specify catch clauses (that catch exceptions) and/or | |
12210 a finally clause (to be executed for cleanup). | |
12211 A try conditional begins with a |:try| command and ends at the matching | |
12212 |:endtry| command. In between, you can use a |:catch| command to start | |
12213 a catch clause, or a |:finally| command to start a finally clause. There may | |
12214 be none or multiple catch clauses, but there is at most one finally clause, | |
12215 which must not be followed by any catch clauses. The lines before the catch | |
12216 clauses and the finally clause is called a try block. > | |
12217 | |
12218 :try | |
1621 | 12219 : ... |
12220 : ... TRY BLOCK | |
12221 : ... | |
7 | 12222 :catch /{pattern}/ |
1621 | 12223 : ... |
12224 : ... CATCH CLAUSE | |
12225 : ... | |
7 | 12226 :catch /{pattern}/ |
1621 | 12227 : ... |
12228 : ... CATCH CLAUSE | |
12229 : ... | |
7 | 12230 :finally |
1621 | 12231 : ... |
12232 : ... FINALLY CLAUSE | |
12233 : ... | |
7 | 12234 :endtry |
12235 | |
12236 The try conditional allows to watch code for exceptions and to take the | |
12237 appropriate actions. Exceptions from the try block may be caught. Exceptions | |
12238 from the try block and also the catch clauses may cause cleanup actions. | |
12239 When no exception is thrown during execution of the try block, the control | |
12240 is transferred to the finally clause, if present. After its execution, the | |
12241 script continues with the line following the ":endtry". | |
12242 When an exception occurs during execution of the try block, the remaining | |
12243 lines in the try block are skipped. The exception is matched against the | |
12244 patterns specified as arguments to the ":catch" commands. The catch clause | |
12245 after the first matching ":catch" is taken, other catch clauses are not | |
12246 executed. The catch clause ends when the next ":catch", ":finally", or | |
12247 ":endtry" command is reached - whatever is first. Then, the finally clause | |
12248 (if present) is executed. When the ":endtry" is reached, the script execution | |
12249 continues in the following line as usual. | |
12250 When an exception that does not match any of the patterns specified by the | |
12251 ":catch" commands is thrown in the try block, the exception is not caught by | |
12252 that try conditional and none of the catch clauses is executed. Only the | |
12253 finally clause, if present, is taken. The exception pends during execution of | |
12254 the finally clause. It is resumed at the ":endtry", so that commands after | |
12255 the ":endtry" are not executed and the exception might be caught elsewhere, | |
12256 see |try-nesting|. | |
12257 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
|
12258 remaining lines in that catch clause are not executed. The new exception is |
7 | 12259 not matched against the patterns in any of the ":catch" commands of the same |
12260 try conditional and none of its catch clauses is taken. If there is, however, | |
12261 a finally clause, it is executed, and the exception pends during its | |
12262 execution. The commands following the ":endtry" are not executed. The new | |
12263 exception might, however, be caught elsewhere, see |try-nesting|. | |
12264 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
|
12265 thrown, the remaining lines in the finally clause are skipped. If the finally |
7 | 12266 clause has been taken because of an exception from the try block or one of the |
12267 catch clauses, the original (pending) exception is discarded. The commands | |
12268 following the ":endtry" are not executed, and the exception from the finally | |
12269 clause is propagated and can be caught elsewhere, see |try-nesting|. | |
12270 | |
12271 The finally clause is also executed, when a ":break" or ":continue" for | |
12272 a ":while" loop enclosing the complete try conditional is executed from the | |
12273 try block or a catch clause. Or when a ":return" or ":finish" is executed | |
12274 from the try block or a catch clause of a try conditional in a function or | |
12275 sourced script, respectively. The ":break", ":continue", ":return", or | |
12276 ":finish" pends during execution of the finally clause and is resumed when the | |
12277 ":endtry" is reached. It is, however, discarded when an exception is thrown | |
12278 from the finally clause. | |
12279 When a ":break" or ":continue" for a ":while" loop enclosing the complete | |
12280 try conditional or when a ":return" or ":finish" is encountered in the finally | |
12281 clause, the rest of the finally clause is skipped, and the ":break", | |
12282 ":continue", ":return" or ":finish" is executed as usual. If the finally | |
12283 clause has been taken because of an exception or an earlier ":break", | |
12284 ":continue", ":return", or ":finish" from the try block or a catch clause, | |
12285 this pending exception or command is discarded. | |
12286 | |
12287 For examples see |throw-catch| and |try-finally|. | |
12288 | |
12289 | |
12290 NESTING OF TRY CONDITIONALS *try-nesting* | |
12291 | |
12292 Try conditionals can be nested arbitrarily. That is, a complete try | |
12293 conditional can be put into the try block, a catch clause, or the finally | |
12294 clause of another try conditional. If the inner try conditional does not | |
12295 catch an exception thrown in its try block or throws a new exception from one | |
12296 of its catch clauses or its finally clause, the outer try conditional is | |
12297 checked according to the rules above. If the inner try conditional is in the | |
12298 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
|
12299 otherwise only the finally clause is executed. It does not matter for |
7 | 12300 nesting, whether the inner try conditional is directly contained in the outer |
12301 one, or whether the outer one sources a script or calls a function containing | |
12302 the inner try conditional. | |
12303 | |
12304 When none of the active try conditionals catches an exception, just their | |
12305 finally clauses are executed. Thereafter, the script processing terminates. | |
12306 An error message is displayed in case of an uncaught exception explicitly | |
12307 thrown by a ":throw" command. For uncaught error and interrupt exceptions | |
12308 implicitly raised by Vim, the error message(s) or interrupt message are shown | |
12309 as usual. | |
12310 | |
12311 For examples see |throw-catch|. | |
12312 | |
12313 | |
12314 EXAMINING EXCEPTION HANDLING CODE *except-examine* | |
12315 | |
12316 Exception handling code can get tricky. If you are in doubt what happens, set | |
12317 'verbose' to 13 or use the ":13verbose" command modifier when sourcing your | |
12318 script file. Then you see when an exception is thrown, discarded, caught, or | |
12319 finished. When using a verbosity level of at least 14, things pending in | |
12320 a finally clause are also shown. This information is also given in debug mode | |
12321 (see |debug-scripts|). | |
12322 | |
12323 | |
12324 THROWING AND CATCHING EXCEPTIONS *throw-catch* | |
12325 | |
12326 You can throw any number or string as an exception. Use the |:throw| command | |
12327 and pass the value to be thrown as argument: > | |
12328 :throw 4711 | |
12329 :throw "string" | |
12330 < *throw-expression* | |
12331 You can also specify an expression argument. The expression is then evaluated | |
12332 first, and the result is thrown: > | |
12333 :throw 4705 + strlen("string") | |
12334 :throw strpart("strings", 0, 6) | |
12335 | |
12336 An exception might be thrown during evaluation of the argument of the ":throw" | |
12337 command. Unless it is caught there, the expression evaluation is abandoned. | |
12338 The ":throw" command then does not throw a new exception. | |
12339 Example: > | |
12340 | |
12341 :function! Foo(arg) | |
12342 : try | |
12343 : throw a:arg | |
12344 : catch /foo/ | |
12345 : endtry | |
12346 : return 1 | |
12347 :endfunction | |
12348 : | |
12349 :function! Bar() | |
12350 : echo "in Bar" | |
12351 : return 4710 | |
12352 :endfunction | |
12353 : | |
12354 :throw Foo("arrgh") + Bar() | |
12355 | |
12356 This throws "arrgh", and "in Bar" is not displayed since Bar() is not | |
12357 executed. > | |
12358 :throw Foo("foo") + Bar() | |
12359 however displays "in Bar" and throws 4711. | |
12360 | |
12361 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
|
12362 abandoned by an (uncaught) exception during the expression evaluation. The |
7 | 12363 exception is then propagated to the caller of the command. |
12364 Example: > | |
12365 | |
12366 :if Foo("arrgh") | |
12367 : echo "then" | |
12368 :else | |
12369 : echo "else" | |
12370 :endif | |
12371 | |
12372 Here neither of "then" or "else" is displayed. | |
12373 | |
12374 *catch-order* | |
12375 Exceptions can be caught by a try conditional with one or more |:catch| | |
12376 commands, see |try-conditionals|. The values to be caught by each ":catch" | |
12377 command can be specified as a pattern argument. The subsequent catch clause | |
12378 gets executed when a matching exception is caught. | |
12379 Example: > | |
12380 | |
12381 :function! Foo(value) | |
12382 : try | |
12383 : throw a:value | |
12384 : catch /^\d\+$/ | |
12385 : echo "Number thrown" | |
12386 : catch /.*/ | |
12387 : echo "String thrown" | |
12388 : endtry | |
12389 :endfunction | |
12390 : | |
12391 :call Foo(0x1267) | |
12392 :call Foo('string') | |
12393 | |
12394 The first call to Foo() displays "Number thrown", the second "String thrown". | |
12395 An exception is matched against the ":catch" commands in the order they are | |
12396 specified. Only the first match counts. So you should place the more | |
12397 specific ":catch" first. The following order does not make sense: > | |
12398 | |
12399 : catch /.*/ | |
12400 : echo "String thrown" | |
12401 : catch /^\d\+$/ | |
12402 : echo "Number thrown" | |
12403 | |
12404 The first ":catch" here matches always, so that the second catch clause is | |
12405 never taken. | |
12406 | |
12407 *throw-variables* | |
12408 If you catch an exception by a general pattern, you may access the exact value | |
12409 in the variable |v:exception|: > | |
12410 | |
12411 : catch /^\d\+$/ | |
12412 : echo "Number thrown. Value is" v:exception | |
12413 | |
12414 You may also be interested where an exception was thrown. This is stored in | |
12415 |v:throwpoint|. Note that "v:exception" and "v:throwpoint" are valid for the | |
12416 exception most recently caught as long it is not finished. | |
12417 Example: > | |
12418 | |
12419 :function! Caught() | |
12420 : if v:exception != "" | |
12421 : echo 'Caught "' . v:exception . '" in ' . v:throwpoint | |
12422 : else | |
12423 : echo 'Nothing caught' | |
12424 : endif | |
12425 :endfunction | |
12426 : | |
12427 :function! Foo() | |
12428 : try | |
12429 : try | |
12430 : try | |
12431 : throw 4711 | |
12432 : finally | |
12433 : call Caught() | |
12434 : endtry | |
12435 : catch /.*/ | |
12436 : call Caught() | |
12437 : throw "oops" | |
12438 : endtry | |
12439 : catch /.*/ | |
12440 : call Caught() | |
12441 : finally | |
12442 : call Caught() | |
12443 : endtry | |
12444 :endfunction | |
12445 : | |
12446 :call Foo() | |
12447 | |
12448 This displays > | |
12449 | |
12450 Nothing caught | |
12451 Caught "4711" in function Foo, line 4 | |
12452 Caught "oops" in function Foo, line 10 | |
12453 Nothing caught | |
12454 | |
12455 A practical example: The following command ":LineNumber" displays the line | |
12456 number in the script or function where it has been used: > | |
12457 | |
12458 :function! LineNumber() | |
12459 : return substitute(v:throwpoint, '.*\D\(\d\+\).*', '\1', "") | |
12460 :endfunction | |
12461 :command! LineNumber try | throw "" | catch | echo LineNumber() | endtry | |
12462 < | |
12463 *try-nested* | |
12464 An exception that is not caught by a try conditional can be caught by | |
12465 a surrounding try conditional: > | |
12466 | |
12467 :try | |
12468 : try | |
12469 : throw "foo" | |
12470 : catch /foobar/ | |
12471 : echo "foobar" | |
12472 : finally | |
12473 : echo "inner finally" | |
12474 : endtry | |
12475 :catch /foo/ | |
12476 : echo "foo" | |
12477 :endtry | |
12478 | |
12479 The inner try conditional does not catch the exception, just its finally | |
12480 clause is executed. The exception is then caught by the outer try | |
12481 conditional. The example displays "inner finally" and then "foo". | |
12482 | |
12483 *throw-from-catch* | |
12484 You can catch an exception and throw a new one to be caught elsewhere from the | |
12485 catch clause: > | |
12486 | |
12487 :function! Foo() | |
12488 : throw "foo" | |
12489 :endfunction | |
12490 : | |
12491 :function! Bar() | |
12492 : try | |
12493 : call Foo() | |
12494 : catch /foo/ | |
12495 : echo "Caught foo, throw bar" | |
12496 : throw "bar" | |
12497 : endtry | |
12498 :endfunction | |
12499 : | |
12500 :try | |
12501 : call Bar() | |
12502 :catch /.*/ | |
12503 : echo "Caught" v:exception | |
12504 :endtry | |
12505 | |
12506 This displays "Caught foo, throw bar" and then "Caught bar". | |
12507 | |
12508 *rethrow* | |
12509 There is no real rethrow in the Vim script language, but you may throw | |
12510 "v:exception" instead: > | |
12511 | |
12512 :function! Bar() | |
12513 : try | |
12514 : call Foo() | |
12515 : catch /.*/ | |
12516 : echo "Rethrow" v:exception | |
12517 : throw v:exception | |
12518 : endtry | |
12519 :endfunction | |
12520 < *try-echoerr* | |
12521 Note that this method cannot be used to "rethrow" Vim error or interrupt | |
12522 exceptions, because it is not possible to fake Vim internal exceptions. | |
12523 Trying so causes an error exception. You should throw your own exception | |
12524 denoting the situation. If you want to cause a Vim error exception containing | |
12525 the original error exception value, you can use the |:echoerr| command: > | |
12526 | |
12527 :try | |
12528 : try | |
12529 : asdf | |
12530 : catch /.*/ | |
12531 : echoerr v:exception | |
12532 : endtry | |
12533 :catch /.*/ | |
12534 : echo v:exception | |
12535 :endtry | |
12536 | |
12537 This code displays | |
12538 | |
1621 | 12539 Vim(echoerr):Vim:E492: Not an editor command: asdf ~ |
7 | 12540 |
12541 | |
12542 CLEANUP CODE *try-finally* | |
12543 | |
12544 Scripts often change global settings and restore them at their end. If the | |
12545 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
|
12546 an inconsistent state. The same may happen to you in the development phase of |
7 | 12547 a script when an error occurs or you explicitly throw an exception without |
12548 catching it. You can solve these problems by using a try conditional with | |
12549 a finally clause for restoring the settings. Its execution is guaranteed on | |
12550 normal control flow, on error, on an explicit ":throw", and on interrupt. | |
12551 (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
|
12552 to exceptions. When not caught, they terminate the script after the finally |
7 | 12553 clause has been executed.) |
12554 Example: > | |
12555 | |
12556 :try | |
12557 : let s:saved_ts = &ts | |
12558 : set ts=17 | |
12559 : | |
12560 : " Do the hard work here. | |
12561 : | |
12562 :finally | |
12563 : let &ts = s:saved_ts | |
12564 : unlet s:saved_ts | |
12565 :endtry | |
12566 | |
12567 This method should be used locally whenever a function or part of a script | |
12568 changes global settings which need to be restored on failure or normal exit of | |
12569 that function or script part. | |
12570 | |
12571 *break-finally* | |
12572 Cleanup code works also when the try block or a catch clause is left by | |
12573 a ":continue", ":break", ":return", or ":finish". | |
12574 Example: > | |
12575 | |
12576 :let first = 1 | |
12577 :while 1 | |
12578 : try | |
12579 : if first | |
12580 : echo "first" | |
12581 : let first = 0 | |
12582 : continue | |
12583 : else | |
12584 : throw "second" | |
12585 : endif | |
12586 : catch /.*/ | |
12587 : echo v:exception | |
12588 : break | |
12589 : finally | |
12590 : echo "cleanup" | |
12591 : endtry | |
12592 : echo "still in while" | |
12593 :endwhile | |
12594 :echo "end" | |
12595 | |
12596 This displays "first", "cleanup", "second", "cleanup", and "end". > | |
12597 | |
12598 :function! Foo() | |
12599 : try | |
12600 : return 4711 | |
12601 : finally | |
12602 : echo "cleanup\n" | |
12603 : endtry | |
12604 : echo "Foo still active" | |
12605 :endfunction | |
12606 : | |
12607 :echo Foo() "returned by Foo" | |
12608 | |
12609 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
|
12610 extra ":return" in the finally clause. (Above all, this would override the |
7 | 12611 return value.) |
12612 | |
12613 *except-from-finally* | |
12614 Using either of ":continue", ":break", ":return", ":finish", or ":throw" in | |
12615 a finally clause is possible, but not recommended since it abandons the | |
12616 cleanup actions for the try conditional. But, of course, interrupt and error | |
12617 exceptions might get raised from a finally clause. | |
12618 Example where an error in the finally clause stops an interrupt from | |
12619 working correctly: > | |
12620 | |
12621 :try | |
12622 : try | |
12623 : echo "Press CTRL-C for interrupt" | |
12624 : while 1 | |
12625 : endwhile | |
12626 : finally | |
12627 : unlet novar | |
12628 : endtry | |
12629 :catch /novar/ | |
12630 :endtry | |
12631 :echo "Script still running" | |
12632 :sleep 1 | |
12633 | |
12634 If you need to put commands that could fail into a finally clause, you should | |
12635 think about catching or ignoring the errors in these commands, see | |
12636 |catch-errors| and |ignore-errors|. | |
12637 | |
12638 | |
12639 CATCHING ERRORS *catch-errors* | |
12640 | |
12641 If you want to catch specific errors, you just have to put the code to be | |
12642 watched in a try block and add a catch clause for the error message. The | |
12643 presence of the try conditional causes all errors to be converted to an | |
12644 exception. No message is displayed and |v:errmsg| is not set then. To find | |
12645 the right pattern for the ":catch" command, you have to know how the format of | |
12646 the error exception is. | |
12647 Error exceptions have the following format: > | |
12648 | |
12649 Vim({cmdname}):{errmsg} | |
12650 or > | |
12651 Vim:{errmsg} | |
12652 | |
12653 {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
|
12654 the command name is not known. {errmsg} is the error message usually produced |
7 | 12655 when the error occurs outside try conditionals. It always begins with |
12656 a capital "E", followed by a two or three-digit error number, a colon, and | |
12657 a space. | |
12658 | |
12659 Examples: | |
12660 | |
12661 The command > | |
12662 :unlet novar | |
12663 normally produces the error message > | |
12664 E108: No such variable: "novar" | |
12665 which is converted inside try conditionals to an exception > | |
12666 Vim(unlet):E108: No such variable: "novar" | |
12667 | |
12668 The command > | |
12669 :dwim | |
12670 normally produces the error message > | |
12671 E492: Not an editor command: dwim | |
12672 which is converted inside try conditionals to an exception > | |
12673 Vim:E492: Not an editor command: dwim | |
12674 | |
12675 You can catch all ":unlet" errors by a > | |
12676 :catch /^Vim(unlet):/ | |
12677 or all errors for misspelled command names by a > | |
12678 :catch /^Vim:E492:/ | |
12679 | |
12680 Some error messages may be produced by different commands: > | |
12681 :function nofunc | |
12682 and > | |
12683 :delfunction nofunc | |
12684 both produce the error message > | |
12685 E128: Function name must start with a capital: nofunc | |
12686 which is converted inside try conditionals to an exception > | |
12687 Vim(function):E128: Function name must start with a capital: nofunc | |
12688 or > | |
12689 Vim(delfunction):E128: Function name must start with a capital: nofunc | |
12690 respectively. You can catch the error by its number independently on the | |
12691 command that caused it if you use the following pattern: > | |
12692 :catch /^Vim(\a\+):E128:/ | |
12693 | |
12694 Some commands like > | |
12695 :let x = novar | |
12696 produce multiple error messages, here: > | |
12697 E121: Undefined variable: novar | |
12698 E15: Invalid expression: novar | |
12699 Only the first is used for the exception value, since it is the most specific | |
12700 one (see |except-several-errors|). So you can catch it by > | |
12701 :catch /^Vim(\a\+):E121:/ | |
12702 | |
12703 You can catch all errors related to the name "nofunc" by > | |
12704 :catch /\<nofunc\>/ | |
12705 | |
12706 You can catch all Vim errors in the ":write" and ":read" commands by > | |
12707 :catch /^Vim(\(write\|read\)):E\d\+:/ | |
12708 | |
12709 You can catch all Vim errors by the pattern > | |
12710 :catch /^Vim\((\a\+)\)\=:E\d\+:/ | |
12711 < | |
12712 *catch-text* | |
12713 NOTE: You should never catch the error message text itself: > | |
12714 :catch /No such variable/ | |
6647 | 12715 only works in the English locale, but not when the user has selected |
7 | 12716 a different language by the |:language| command. It is however helpful to |
12717 cite the message text in a comment: > | |
12718 :catch /^Vim(\a\+):E108:/ " No such variable | |
12719 | |
12720 | |
12721 IGNORING ERRORS *ignore-errors* | |
12722 | |
12723 You can ignore errors in a specific Vim command by catching them locally: > | |
12724 | |
12725 :try | |
12726 : write | |
12727 :catch | |
12728 :endtry | |
12729 | |
12730 But you are strongly recommended NOT to use this simple form, since it could | |
12731 catch more than you want. With the ":write" command, some autocommands could | |
12732 be executed and cause errors not related to writing, for instance: > | |
12733 | |
12734 :au BufWritePre * unlet novar | |
12735 | |
12736 There could even be such errors you are not responsible for as a script | |
12737 writer: a user of your script might have defined such autocommands. You would | |
12738 then hide the error from the user. | |
12739 It is much better to use > | |
12740 | |
12741 :try | |
12742 : write | |
12743 :catch /^Vim(write):/ | |
12744 :endtry | |
12745 | |
12746 which only catches real write errors. So catch only what you'd like to ignore | |
12747 intentionally. | |
12748 | |
12749 For a single command that does not cause execution of autocommands, you could | |
12750 even suppress the conversion of errors to exceptions by the ":silent!" | |
12751 command: > | |
12752 :silent! nunmap k | |
12753 This works also when a try conditional is active. | |
12754 | |
12755 | |
12756 CATCHING INTERRUPTS *catch-interrupt* | |
12757 | |
12758 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
|
12759 the exception "Vim:Interrupt". You can catch it like every exception. The |
7 | 12760 script is not terminated, then. |
12761 Example: > | |
12762 | |
12763 :function! TASK1() | |
12764 : sleep 10 | |
12765 :endfunction | |
12766 | |
12767 :function! TASK2() | |
12768 : sleep 20 | |
12769 :endfunction | |
12770 | |
12771 :while 1 | |
12772 : let command = input("Type a command: ") | |
12773 : try | |
12774 : if command == "" | |
12775 : continue | |
12776 : elseif command == "END" | |
12777 : break | |
12778 : elseif command == "TASK1" | |
12779 : call TASK1() | |
12780 : elseif command == "TASK2" | |
12781 : call TASK2() | |
12782 : else | |
12783 : echo "\nIllegal command:" command | |
12784 : continue | |
12785 : endif | |
12786 : catch /^Vim:Interrupt$/ | |
12787 : echo "\nCommand interrupted" | |
12788 : " Caught the interrupt. Continue with next prompt. | |
12789 : endtry | |
12790 :endwhile | |
12791 | |
12792 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
|
12793 a new command. If you press CTRL-C at the prompt, the script is terminated. |
7 | 12794 |
12795 For testing what happens when CTRL-C would be pressed on a specific line in | |
12796 your script, use the debug mode and execute the |>quit| or |>interrupt| | |
12797 command on that line. See |debug-scripts|. | |
12798 | |
12799 | |
12800 CATCHING ALL *catch-all* | |
12801 | |
12802 The commands > | |
12803 | |
12804 :catch /.*/ | |
12805 :catch // | |
12806 :catch | |
12807 | |
12808 catch everything, error exceptions, interrupt exceptions and exceptions | |
12809 explicitly thrown by the |:throw| command. This is useful at the top level of | |
12810 a script in order to catch unexpected things. | |
12811 Example: > | |
12812 | |
12813 :try | |
12814 : | |
12815 : " do the hard work here | |
12816 : | |
12817 :catch /MyException/ | |
12818 : | |
12819 : " handle known problem | |
12820 : | |
12821 :catch /^Vim:Interrupt$/ | |
12822 : echo "Script interrupted" | |
12823 :catch /.*/ | |
12824 : echo "Internal error (" . v:exception . ")" | |
12825 : echo " - occurred at " . v:throwpoint | |
12826 :endtry | |
12827 :" end of script | |
12828 | |
12829 Note: Catching all might catch more things than you want. Thus, you are | |
12830 strongly encouraged to catch only for problems that you can really handle by | |
12831 specifying a pattern argument to the ":catch". | |
12832 Example: Catching all could make it nearly impossible to interrupt a script | |
12833 by pressing CTRL-C: > | |
12834 | |
12835 :while 1 | |
12836 : try | |
12837 : sleep 1 | |
12838 : catch | |
12839 : endtry | |
12840 :endwhile | |
12841 | |
12842 | |
12843 EXCEPTIONS AND AUTOCOMMANDS *except-autocmd* | |
12844 | |
12845 Exceptions may be used during execution of autocommands. Example: > | |
12846 | |
12847 :autocmd User x try | |
12848 :autocmd User x throw "Oops!" | |
12849 :autocmd User x catch | |
12850 :autocmd User x echo v:exception | |
12851 :autocmd User x endtry | |
12852 :autocmd User x throw "Arrgh!" | |
12853 :autocmd User x echo "Should not be displayed" | |
12854 : | |
12855 :try | |
12856 : doautocmd User x | |
12857 :catch | |
12858 : echo v:exception | |
12859 :endtry | |
12860 | |
12861 This displays "Oops!" and "Arrgh!". | |
12862 | |
12863 *except-autocmd-Pre* | |
12864 For some commands, autocommands get executed before the main action of the | |
12865 command takes place. If an exception is thrown and not caught in the sequence | |
12866 of autocommands, the sequence and the command that caused its execution are | |
12867 abandoned and the exception is propagated to the caller of the command. | |
12868 Example: > | |
12869 | |
12870 :autocmd BufWritePre * throw "FAIL" | |
12871 :autocmd BufWritePre * echo "Should not be displayed" | |
12872 : | |
12873 :try | |
12874 : write | |
12875 :catch | |
12876 : echo "Caught:" v:exception "from" v:throwpoint | |
12877 :endtry | |
12878 | |
12879 Here, the ":write" command does not write the file currently being edited (as | |
12880 you can see by checking 'modified'), since the exception from the BufWritePre | |
12881 autocommand abandons the ":write". The exception is then caught and the | |
12882 script displays: > | |
12883 | |
12884 Caught: FAIL from BufWrite Auto commands for "*" | |
12885 < | |
12886 *except-autocmd-Post* | |
12887 For some commands, autocommands get executed after the main action of the | |
12888 command has taken place. If this main action fails and the command is inside | |
12889 an active try conditional, the autocommands are skipped and an error exception | |
12890 is thrown that can be caught by the caller of the command. | |
12891 Example: > | |
12892 | |
12893 :autocmd BufWritePost * echo "File successfully written!" | |
12894 : | |
12895 :try | |
12896 : write /i/m/p/o/s/s/i/b/l/e | |
12897 :catch | |
12898 : echo v:exception | |
12899 :endtry | |
12900 | |
12901 This just displays: > | |
12902 | |
12903 Vim(write):E212: Can't open file for writing (/i/m/p/o/s/s/i/b/l/e) | |
12904 | |
12905 If you really need to execute the autocommands even when the main action | |
12906 fails, trigger the event from the catch clause. | |
12907 Example: > | |
12908 | |
12909 :autocmd BufWritePre * set noreadonly | |
12910 :autocmd BufWritePost * set readonly | |
12911 : | |
12912 :try | |
12913 : write /i/m/p/o/s/s/i/b/l/e | |
12914 :catch | |
12915 : doautocmd BufWritePost /i/m/p/o/s/s/i/b/l/e | |
12916 :endtry | |
12917 < | |
12918 You can also use ":silent!": > | |
12919 | |
12920 :let x = "ok" | |
12921 :let v:errmsg = "" | |
12922 :autocmd BufWritePost * if v:errmsg != "" | |
12923 :autocmd BufWritePost * let x = "after fail" | |
12924 :autocmd BufWritePost * endif | |
12925 :try | |
12926 : silent! write /i/m/p/o/s/s/i/b/l/e | |
12927 :catch | |
12928 :endtry | |
12929 :echo x | |
12930 | |
12931 This displays "after fail". | |
12932 | |
12933 If the main action of the command does not fail, exceptions from the | |
12934 autocommands will be catchable by the caller of the command: > | |
12935 | |
12936 :autocmd BufWritePost * throw ":-(" | |
12937 :autocmd BufWritePost * echo "Should not be displayed" | |
12938 : | |
12939 :try | |
12940 : write | |
12941 :catch | |
12942 : echo v:exception | |
12943 :endtry | |
12944 < | |
12945 *except-autocmd-Cmd* | |
12946 For some commands, the normal action can be replaced by a sequence of | |
12947 autocommands. Exceptions from that sequence will be catchable by the caller | |
12948 of the command. | |
12949 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
|
12950 had actually been written when the exception occurred. You need to tell it in |
7 | 12951 some way. > |
12952 | |
12953 :if !exists("cnt") | |
12954 : let cnt = 0 | |
12955 : | |
12956 : autocmd BufWriteCmd * if &modified | |
12957 : autocmd BufWriteCmd * let cnt = cnt + 1 | |
12958 : autocmd BufWriteCmd * if cnt % 3 == 2 | |
12959 : autocmd BufWriteCmd * throw "BufWriteCmdError" | |
12960 : autocmd BufWriteCmd * endif | |
12961 : autocmd BufWriteCmd * write | set nomodified | |
12962 : autocmd BufWriteCmd * if cnt % 3 == 0 | |
12963 : autocmd BufWriteCmd * throw "BufWriteCmdError" | |
12964 : autocmd BufWriteCmd * endif | |
12965 : autocmd BufWriteCmd * echo "File successfully written!" | |
12966 : autocmd BufWriteCmd * endif | |
12967 :endif | |
12968 : | |
12969 :try | |
12970 : write | |
12971 :catch /^BufWriteCmdError$/ | |
12972 : if &modified | |
12973 : echo "Error on writing (file contents not changed)" | |
12974 : else | |
12975 : echo "Error after writing" | |
12976 : endif | |
12977 :catch /^Vim(write):/ | |
12978 : echo "Error on writing" | |
12979 :endtry | |
12980 | |
12981 When this script is sourced several times after making changes, it displays | |
12982 first > | |
12983 File successfully written! | |
12984 then > | |
12985 Error on writing (file contents not changed) | |
12986 then > | |
12987 Error after writing | |
12988 etc. | |
12989 | |
12990 *except-autocmd-ill* | |
12991 You cannot spread a try conditional over autocommands for different events. | |
12992 The following code is ill-formed: > | |
12993 | |
12994 :autocmd BufWritePre * try | |
12995 : | |
12996 :autocmd BufWritePost * catch | |
12997 :autocmd BufWritePost * echo v:exception | |
12998 :autocmd BufWritePost * endtry | |
12999 : | |
13000 :write | |
13001 | |
13002 | |
13003 EXCEPTION HIERARCHIES AND PARAMETERIZED EXCEPTIONS *except-hier-param* | |
13004 | |
13005 Some programming languages allow to use hierarchies of exception classes or to | |
13006 pass additional information with the object of an exception class. You can do | |
13007 similar things in Vim. | |
13008 In order to throw an exception from a hierarchy, just throw the complete | |
13009 class name with the components separated by a colon, for instance throw the | |
13010 string "EXCEPT:MATHERR:OVERFLOW" for an overflow in a mathematical library. | |
13011 When you want to pass additional information with your exception class, add | |
13012 it in parentheses, for instance throw the string "EXCEPT:IO:WRITEERR(myfile)" | |
13013 for an error when writing "myfile". | |
13014 With the appropriate patterns in the ":catch" command, you can catch for | |
13015 base classes or derived classes of your hierarchy. Additional information in | |
13016 parentheses can be cut out from |v:exception| with the ":substitute" command. | |
13017 Example: > | |
13018 | |
13019 :function! CheckRange(a, func) | |
13020 : if a:a < 0 | |
13021 : throw "EXCEPT:MATHERR:RANGE(" . a:func . ")" | |
13022 : endif | |
13023 :endfunction | |
13024 : | |
13025 :function! Add(a, b) | |
13026 : call CheckRange(a:a, "Add") | |
13027 : call CheckRange(a:b, "Add") | |
13028 : let c = a:a + a:b | |
13029 : if c < 0 | |
13030 : throw "EXCEPT:MATHERR:OVERFLOW" | |
13031 : endif | |
13032 : return c | |
13033 :endfunction | |
13034 : | |
13035 :function! Div(a, b) | |
13036 : call CheckRange(a:a, "Div") | |
13037 : call CheckRange(a:b, "Div") | |
13038 : if (a:b == 0) | |
13039 : throw "EXCEPT:MATHERR:ZERODIV" | |
13040 : endif | |
13041 : return a:a / a:b | |
13042 :endfunction | |
13043 : | |
13044 :function! Write(file) | |
13045 : try | |
1621 | 13046 : execute "write" fnameescape(a:file) |
7 | 13047 : catch /^Vim(write):/ |
13048 : throw "EXCEPT:IO(" . getcwd() . ", " . a:file . "):WRITEERR" | |
13049 : endtry | |
13050 :endfunction | |
13051 : | |
13052 :try | |
13053 : | |
13054 : " something with arithmetics and I/O | |
13055 : | |
13056 :catch /^EXCEPT:MATHERR:RANGE/ | |
13057 : let function = substitute(v:exception, '.*(\(\a\+\)).*', '\1', "") | |
13058 : echo "Range error in" function | |
13059 : | |
13060 :catch /^EXCEPT:MATHERR/ " catches OVERFLOW and ZERODIV | |
13061 : echo "Math error" | |
13062 : | |
13063 :catch /^EXCEPT:IO/ | |
13064 : let dir = substitute(v:exception, '.*(\(.\+\),\s*.\+).*', '\1', "") | |
13065 : let file = substitute(v:exception, '.*(.\+,\s*\(.\+\)).*', '\1', "") | |
13066 : if file !~ '^/' | |
13067 : let file = dir . "/" . file | |
13068 : endif | |
13069 : echo 'I/O error for "' . file . '"' | |
13070 : | |
13071 :catch /^EXCEPT/ | |
13072 : echo "Unspecified error" | |
13073 : | |
13074 :endtry | |
13075 | |
13076 The exceptions raised by Vim itself (on error or when pressing CTRL-C) use | |
13077 a flat hierarchy: they are all in the "Vim" class. You cannot throw yourself | |
13078 exceptions with the "Vim" prefix; they are reserved for Vim. | |
13079 Vim error exceptions are parameterized with the name of the command that | |
13080 failed, if known. See |catch-errors|. | |
13081 | |
13082 | |
13083 PECULIARITIES | |
13084 *except-compat* | |
13085 The exception handling concept requires that the command sequence causing the | |
13086 exception is aborted immediately and control is transferred to finally clauses | |
13087 and/or a catch clause. | |
13088 | |
13089 In the Vim script language there are cases where scripts and functions | |
13090 continue after an error: in functions without the "abort" flag or in a command | |
13091 after ":silent!", control flow goes to the following line, and outside | |
13092 functions, control flow goes to the line following the outermost ":endwhile" | |
13093 or ":endif". On the other hand, errors should be catchable as exceptions | |
13094 (thus, requiring the immediate abortion). | |
13095 | |
13096 This problem has been solved by converting errors to exceptions and using | |
13097 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
|
13098 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
|
13099 be caught only from an active try conditional. If you want an immediate |
7 | 13100 termination without catching the error, just use a try conditional without |
13101 catch clause. (You can cause cleanup code being executed before termination | |
13102 by specifying a finally clause.) | |
13103 | |
13104 When no try conditional is active, the usual abortion and continuation | |
13105 behavior is used instead of immediate abortion. This ensures compatibility of | |
13106 scripts written for Vim 6.1 and earlier. | |
13107 | |
13108 However, when sourcing an existing script that does not use exception handling | |
13109 commands (or when calling one of its functions) from inside an active try | |
13110 conditional of a new script, you might change the control flow of the existing | |
13111 script on error. You get the immediate abortion on error and can catch the | |
13112 error in the new script. If however the sourced script suppresses error | |
13113 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
|
13114 |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
|
13115 not converted to an exception. (See |:silent|.) So the only remaining cause |
7 | 13116 where this happens is for scripts that don't care about errors and produce |
13117 error messages. You probably won't want to use such code from your new | |
13118 scripts. | |
13119 | |
13120 *except-syntax-err* | |
13121 Syntax errors in the exception handling commands are never caught by any of | |
13122 the ":catch" commands of the try conditional they belong to. Its finally | |
13123 clauses, however, is executed. | |
13124 Example: > | |
13125 | |
13126 :try | |
13127 : try | |
13128 : throw 4711 | |
13129 : catch /\(/ | |
13130 : echo "in catch with syntax error" | |
13131 : catch | |
13132 : echo "inner catch-all" | |
13133 : finally | |
13134 : echo "inner finally" | |
13135 : endtry | |
13136 :catch | |
13137 : echo 'outer catch-all caught "' . v:exception . '"' | |
13138 : finally | |
13139 : echo "outer finally" | |
13140 :endtry | |
13141 | |
13142 This displays: > | |
13143 inner finally | |
13144 outer catch-all caught "Vim(catch):E54: Unmatched \(" | |
13145 outer finally | |
13146 The original exception is discarded and an error exception is raised, instead. | |
13147 | |
13148 *except-single-line* | |
13149 The ":try", ":catch", ":finally", and ":endtry" commands can be put on | |
13150 a single line, but then syntax errors may make it difficult to recognize the | |
13151 "catch" line, thus you better avoid this. | |
13152 Example: > | |
13153 :try | unlet! foo # | catch | endtry | |
13154 raises an error exception for the trailing characters after the ":unlet!" | |
13155 argument, but does not see the ":catch" and ":endtry" commands, so that the | |
13156 error exception is discarded and the "E488: Trailing characters" message gets | |
13157 displayed. | |
13158 | |
13159 *except-several-errors* | |
13160 When several errors appear in a single command, the first error message is | |
13161 usually the most specific one and therefor converted to the error exception. | |
13162 Example: > | |
13163 echo novar | |
13164 causes > | |
13165 E121: Undefined variable: novar | |
13166 E15: Invalid expression: novar | |
13167 The value of the error exception inside try conditionals is: > | |
13168 Vim(echo):E121: Undefined variable: novar | |
13169 < *except-syntax-error* | |
13170 But when a syntax error is detected after a normal error in the same command, | |
13171 the syntax error is used for the exception being thrown. | |
13172 Example: > | |
13173 unlet novar # | |
13174 causes > | |
13175 E108: No such variable: "novar" | |
13176 E488: Trailing characters | |
13177 The value of the error exception inside try conditionals is: > | |
13178 Vim(unlet):E488: Trailing characters | |
13179 This is done because the syntax error might change the execution path in a way | |
13180 not intended by the user. Example: > | |
13181 try | |
13182 try | unlet novar # | catch | echo v:exception | endtry | |
13183 catch /.*/ | |
13184 echo "outer catch:" v:exception | |
13185 endtry | |
13186 This displays "outer catch: Vim(unlet):E488: Trailing characters", and then | |
13187 a "E600: Missing :endtry" error message is given, see |except-single-line|. | |
13188 | |
13189 ============================================================================== | |
13190 9. Examples *eval-examples* | |
13191 | |
1156 | 13192 Printing in Binary ~ |
7 | 13193 > |
2033
de5a43c5eedc
Update documentation files.
Bram Moolenaar <bram@zimbu.org>
parents:
1998
diff
changeset
|
13194 :" The function Nr2Bin() returns the binary string representation of a number. |
1156 | 13195 :func Nr2Bin(nr) |
7 | 13196 : let n = a:nr |
13197 : let r = "" | |
13198 : while n | |
1156 | 13199 : let r = '01'[n % 2] . r |
13200 : let n = n / 2 | |
7 | 13201 : endwhile |
13202 : return r | |
13203 :endfunc | |
13204 | |
1156 | 13205 :" The function String2Bin() converts each character in a string to a |
13206 :" binary string, separated with dashes. | |
13207 :func String2Bin(str) | |
7 | 13208 : let out = '' |
1156 | 13209 : for ix in range(strlen(a:str)) |
13210 : let out = out . '-' . Nr2Bin(char2nr(a:str[ix])) | |
13211 : endfor | |
13212 : return out[1:] | |
7 | 13213 :endfunc |
13214 | |
13215 Example of its use: > | |
1156 | 13216 :echo Nr2Bin(32) |
13217 result: "100000" > | |
13218 :echo String2Bin("32") | |
13219 result: "110011-110010" | |
13220 | |
13221 | |
13222 Sorting lines ~ | |
13223 | |
13224 This example sorts lines with a specific compare function. > | |
13225 | |
13226 :func SortBuffer() | |
13227 : let lines = getline(1, '$') | |
13228 : call sort(lines, function("Strcmp")) | |
13229 : call setline(1, lines) | |
7 | 13230 :endfunction |
13231 | |
1156 | 13232 As a one-liner: > |
13233 :call setline(1, sort(getline(1, '$'), function("Strcmp"))) | |
13234 | |
13235 | |
13236 scanf() replacement ~ | |
7 | 13237 *sscanf* |
13238 There is no sscanf() function in Vim. If you need to extract parts from a | |
13239 line, you can use matchstr() and substitute() to do it. This example shows | |
13240 how to get the file name, line number and column number out of a line like | |
13241 "foobar.txt, 123, 45". > | |
13242 :" Set up the match bit | |
13243 :let mx='\(\f\+\),\s*\(\d\+\),\s*\(\d\+\)' | |
13244 :"get the part matching the whole expression | |
13245 :let l = matchstr(line, mx) | |
13246 :"get each item out of the match | |
13247 :let file = substitute(l, mx, '\1', '') | |
13248 :let lnum = substitute(l, mx, '\2', '') | |
13249 :let col = substitute(l, mx, '\3', '') | |
13250 | |
13251 The input is in the variable "line", the results in the variables "file", | |
13252 "lnum" and "col". (idea from Michael Geddes) | |
13253 | |
1156 | 13254 |
13255 getting the scriptnames in a Dictionary ~ | |
13256 *scriptnames-dictionary* | |
13257 The |:scriptnames| command can be used to get a list of all script files that | |
13258 have been sourced. There is no equivalent function or variable for this | |
13259 (because it's rarely needed). In case you need to manipulate the list this | |
13260 code can be used: > | |
13261 " Get the output of ":scriptnames" in the scriptnames_output variable. | |
13262 let scriptnames_output = '' | |
13263 redir => scriptnames_output | |
13264 silent scriptnames | |
13265 redir END | |
12785 | 13266 |
1621 | 13267 " Split the output into lines and parse each line. Add an entry to the |
1156 | 13268 " "scripts" dictionary. |
13269 let scripts = {} | |
13270 for line in split(scriptnames_output, "\n") | |
13271 " Only do non-blank lines. | |
13272 if line =~ '\S' | |
13273 " Get the first number in the line. | |
1621 | 13274 let nr = matchstr(line, '\d\+') |
1156 | 13275 " Get the file name, remove the script number " 123: ". |
1621 | 13276 let name = substitute(line, '.\+:\s*', '', '') |
1156 | 13277 " Add an item to the Dictionary |
1621 | 13278 let scripts[nr] = name |
1156 | 13279 endif |
13280 endfor | |
13281 unlet scriptnames_output | |
13282 | |
7 | 13283 ============================================================================== |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13284 10. Vim script versions *vimscript-version* *vimscript-versions* |
16380 | 13285 *scriptversion* |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13286 Over time many features have been added to Vim script. This includes Ex |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13287 commands, functions, variable types, etc. Each individual feature can be |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13288 checked with the |has()| and |exists()| functions. |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13289 |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13290 Sometimes old syntax of functionality gets in the way of making Vim better. |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13291 When support is taken away this will break older Vim scripts. To make this |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13292 explicit the |:scriptversion| command can be used. When a Vim script is not |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13293 compatible with older versions of Vim this will give an explicit error, |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
13294 instead of failing in mysterious ways. |
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
13295 |
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
13296 *scriptversion-1* > |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13297 :scriptversion 1 |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13298 < This is the original Vim script, same as not using a |:scriptversion| |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13299 command. Can be used to go back to old syntax for a range of lines. |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13300 Test for support with: > |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13301 has('vimscript-1') |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13302 |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
13303 < *scriptversion-2* > |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13304 :scriptversion 2 |
16808 | 13305 < String concatenation with "." is not supported, use ".." instead. |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13306 This avoids the ambiguity using "." for Dict member access and |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13307 floating point numbers. Now ".5" means the number 0.5. |
17026
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
13308 |
905e1b154058
patch 8.1.1513: all popup functionality is in functions, except :popupclear
Bram Moolenaar <Bram@vim.org>
parents:
17020
diff
changeset
|
13309 *scriptversion-3* > |
16380 | 13310 :scriptversion 3 |
13311 < All |vim-variable|s must be prefixed by "v:". E.g. "version" doesn't | |
13312 work as |v:version| anymore, it can be used as a normal variable. | |
13313 Same for some obvious names as "count" and others. | |
13314 | |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13315 Test for support with: > |
16380 | 13316 has('vimscript-3') |
18080
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13317 < |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13318 *scriptversion-4* > |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13319 :scriptversion 4 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13320 < Numbers with a leading zero are not recognized as octal. With the |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13321 previous version you get: > |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13322 echo 017 " displays 15 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13323 echo 018 " displays 18 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13324 < with script version 4: > |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13325 echo 017 " displays 17 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13326 echo 018 " displays 18 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13327 < Also, it is possible to use single quotes inside numbers to make them |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13328 easier to read: > |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13329 echo 1'000'000 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13330 < The quotes must be surrounded by digits. |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13331 |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13332 Test for support with: > |
a6d218f99ff7
patch 8.1.2035: recognizing octal numbers is confusing
Bram Moolenaar <Bram@vim.org>
parents:
18053
diff
changeset
|
13333 has('vimscript-4') |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13334 |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13335 ============================================================================== |
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13336 11. No +eval feature *no-eval-feature* |
7 | 13337 |
13338 When the |+eval| feature was disabled at compile time, none of the expression | |
13339 evaluation commands are available. To prevent this from causing Vim scripts | |
13340 to generate all kinds of errors, the ":if" and ":endif" commands are still | |
13341 recognized, though the argument of the ":if" and everything between the ":if" | |
13342 and the matching ":endif" is ignored. Nesting of ":if" blocks is allowed, but | |
13343 only if the commands are at the start of the line. The ":else" command is not | |
13344 recognized. | |
13345 | |
13346 Example of how to avoid executing commands when the |+eval| feature is | |
13347 missing: > | |
13348 | |
13349 :if 1 | |
13350 : echo "Expression evaluation is compiled in" | |
13351 :else | |
13352 : echo "You will _never_ see this message" | |
13353 :endif | |
13354 | |
16971
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13355 To execute a command only when the |+eval| feature is disabled can be done in |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13356 two ways. The simplest is to exit the script (or Vim) prematurely: > |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13357 if 1 |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13358 echo "commands executed with +eval" |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13359 finish |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13360 endif |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13361 args " command executed without +eval |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13362 |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13363 If you do not want to abort loading the script you can use a trick, as this |
e18b1c654d09
Update runtime files - Add typescript syntax and indent.
Bram Moolenaar <Bram@vim.org>
parents:
16944
diff
changeset
|
13364 example shows: > |
11414
c95c5ddc3b0d
patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents:
11407
diff
changeset
|
13365 |
c95c5ddc3b0d
patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents:
11407
diff
changeset
|
13366 silent! while 0 |
c95c5ddc3b0d
patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents:
11407
diff
changeset
|
13367 set history=111 |
c95c5ddc3b0d
patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents:
11407
diff
changeset
|
13368 silent! endwhile |
c95c5ddc3b0d
patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents:
11407
diff
changeset
|
13369 |
c95c5ddc3b0d
patch 8.0.0591: changes to eval functionality not documented
Christian Brabandt <cb@256bit.org>
parents:
11407
diff
changeset
|
13370 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
|
13371 "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
|
13372 silently ignored, and the command is executed. |
11347 | 13373 |
7 | 13374 ============================================================================== |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13375 12. The sandbox *eval-sandbox* *sandbox* *E48* |
7 | 13376 |
2350
06feaf4fe36a
Rename some "python3" symbols to "py3", as the command name.
Bram Moolenaar <bram@vim.org>
parents:
2345
diff
changeset
|
13377 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
|
13378 '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
|
13379 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
|
13380 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
|
13381 the command from a tags file is executed and for CTRL-R = in the command line. |
29 | 13382 The sandbox is also used for the |:sandbox| command. |
7 | 13383 |
13384 These items are not allowed in the sandbox: | |
13385 - changing the buffer text | |
14347 | 13386 - defining or changing mapping, autocommands, user commands |
7 | 13387 - setting certain options (see |option-summary|) |
1156 | 13388 - setting certain v: variables (see |v:var|) *E794* |
7 | 13389 - executing a shell command |
13390 - reading or writing a file | |
13391 - jumping to another buffer or editing a file | |
625 | 13392 - executing Python, Perl, etc. commands |
29 | 13393 This is not guaranteed 100% secure, but it should block most attacks. |
13394 | |
13395 *:san* *:sandbox* | |
401 | 13396 :san[dbox] {cmd} Execute {cmd} in the sandbox. Useful to evaluate an |
29 | 13397 option that may have been set from a modeline, e.g. |
13398 'foldexpr'. | |
13399 | |
634 | 13400 *sandbox-option* |
13401 A few options contain an expression. When this expression is evaluated it may | |
790 | 13402 have to be done in the sandbox to avoid a security risk. But the sandbox is |
634 | 13403 restrictive, thus this only happens when the option was set from an insecure |
13404 location. Insecure in this context are: | |
843 | 13405 - sourcing a .vimrc or .exrc in the current directory |
634 | 13406 - while executing in the sandbox |
13407 - value coming from a modeline | |
14347 | 13408 - executing a function that was defined in the sandbox |
634 | 13409 |
13410 Note that when in the sandbox and saving an option value and restoring it, the | |
13411 option will still be marked as it was set in the sandbox. | |
13412 | |
13413 ============================================================================== | |
16223
abb67309c1ca
patch 8.1.1116: cannot enforce a Vim script style
Bram Moolenaar <Bram@vim.org>
parents:
16219
diff
changeset
|
13414 13. Textlock *textlock* |
634 | 13415 |
13416 In a few situations it is not allowed to change the text in the buffer, jump | |
13417 to another window and some other things that might confuse or break what Vim | |
13418 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
|
13419 actually doing something else. For example, evaluating the 'balloonexpr' may |
634 | 13420 happen any moment the mouse cursor is resting at some position. |
13421 | |
13422 This is not allowed when the textlock is active: | |
13423 - changing the buffer text | |
13424 - jumping to another buffer or window | |
13425 - editing another file | |
13426 - closing a window or quitting Vim | |
13427 - etc. | |
13428 | |
7 | 13429 |
14421 | 13430 vim:tw=78:ts=8:noet:ft=help:norl: |