mirror of
https://github.com/vim/vim
synced 2025-07-16 17:22:00 +00:00
Compare commits
694 Commits
Author | SHA1 | Date | |
---|---|---|---|
2bede173a1 | |||
ee8b787bcd | |||
79cdf80bed | |||
d92cc130fb | |||
9950280d37 | |||
8e02faf4e9 | |||
382319211a | |||
032f40afb8 | |||
17ab28daa0 | |||
88774a30c0 | |||
c77534c303 | |||
b3a01946b3 | |||
1efefda623 | |||
52bf81c2d5 | |||
0ba48e8c27 | |||
fc74d03e76 | |||
e6329e4c55 | |||
27f4f6baee | |||
8adc8d9b73 | |||
193f6201b4 | |||
714cbe5b21 | |||
c4390fe6c0 | |||
50dc3ecc64 | |||
4792a679f9 | |||
ca359cbedd | |||
6a07644db3 | |||
2dfae04f37 | |||
e41decc892 | |||
6453cc8078 | |||
a065a14115 | |||
02764713a7 | |||
33aecb1f2c | |||
f4d61bc559 | |||
2ce7790348 | |||
8496c9eadb | |||
659bb2275e | |||
47c5ea44b9 | |||
957cf67d50 | |||
ea2d407f9c | |||
6f6244855f | |||
bbf9f344af | |||
29b281ba8d | |||
232f4612e2 | |||
5e1f22ff61 | |||
c56936e2ba | |||
f883508e36 | |||
ea696852e7 | |||
8cebd43e97 | |||
59d8e56e04 | |||
cbcd9cbd77 | |||
46f479c756 | |||
faebda8cc1 | |||
927495b1fe | |||
32e5ec0b01 | |||
85d9b03f84 | |||
22286895fc | |||
0fd797eacd | |||
3132cddd20 | |||
00806bceb6 | |||
b885b435d1 | |||
fabc3ca896 | |||
b4d16cb11d | |||
66669fc664 | |||
f65b35b446 | |||
631e8f9345 | |||
c7f7f6db3e | |||
64ffa9b5fb | |||
9c13f76275 | |||
348be7ed07 | |||
4778b4d0e1 | |||
c136a3528b | |||
35efa22ff2 | |||
0d90e728fe | |||
6fd3a4ba23 | |||
36113e46b4 | |||
dbfa795d8b | |||
399db046ed | |||
97a19005e1 | |||
3b6d57f2ce | |||
a46765a797 | |||
645cd3eb1f | |||
388908352f | |||
578f4cc7d0 | |||
e88c8e802c | |||
55e29611d2 | |||
963734e316 | |||
fbcbffe1ad | |||
749bc9521d | |||
0289065e41 | |||
cd030c4b60 | |||
d66960bf57 | |||
b2620202c7 | |||
6d967125ad | |||
086fc9a585 | |||
4f6b6ed208 | |||
185577e47e | |||
dcdd42a8cc | |||
cf4d454df0 | |||
28ee892ac4 | |||
3e2534ed1a | |||
159563b439 | |||
171fb923b8 | |||
6cf7e3b026 | |||
b4bcea474d | |||
70cf45810c | |||
68a48ee55e | |||
977fd0b327 | |||
caf73dcfad | |||
cb80aa2d53 | |||
8133cc6bf4 | |||
c8970b9464 | |||
f9d51354de | |||
a360dbe3b6 | |||
4882d98339 | |||
89b693e562 | |||
37e4e03c67 | |||
e974fa7b2b | |||
4ff2f2fb6b | |||
02194d2bd5 | |||
67def64a4e | |||
e100440158 | |||
5661ed6c83 | |||
e1be11864d | |||
210681c509 | |||
f4c6e1e75c | |||
8ded5b647a | |||
9c24cd11e2 | |||
683581eb49 | |||
081db1a66d | |||
b07a39de48 | |||
e6e70a10f1 | |||
15ab48f088 | |||
371806e164 | |||
2733779a1a | |||
a1224cb706 | |||
4ce5fe4c87 | |||
c58f5456e5 | |||
692d1a51e7 | |||
af7a9066a9 | |||
ca17453e73 | |||
8a99e66b4f | |||
b8f519e538 | |||
94738d8fab | |||
3da855c8e2 | |||
b53e13a91a | |||
20d89e0ac6 | |||
e9f9f16387 | |||
c95940c06a | |||
39ca4127a0 | |||
955347cc7e | |||
9a13e185e5 | |||
80b0e5ea11 | |||
66fa5fd54f | |||
1dcae59957 | |||
334a8b4bde | |||
e3c65ce4e5 | |||
2ea79ad835 | |||
a2c026d0fd | |||
335e671322 | |||
352134bbfb | |||
403dc31f5a | |||
218450ad5e | |||
9668cc57a1 | |||
e13bdec6b9 | |||
1e021e63c5 | |||
7a66a17190 | |||
ffdf8adfa8 | |||
27491cd3ef | |||
a604ccc959 | |||
ed234f24f3 | |||
74f8eece5e | |||
209f0208f7 | |||
fbbcd00367 | |||
8d739de43b | |||
3d30af8783 | |||
b9616af23f | |||
21cbe175ee | |||
2b9b17ea5d | |||
f4e8cdd3d2 | |||
fc8aa6d02d | |||
93be1644db | |||
c07b7f701f | |||
62cd26a229 | |||
6eb36ade98 | |||
efc0d94afc | |||
204ade6bcb | |||
aab9fada4a | |||
ef16c90423 | |||
4f4d51a942 | |||
c6ed254d9f | |||
bd6428b9e7 | |||
1b1e9df78b | |||
10a1a534d1 | |||
9becdf2b98 | |||
d747548c66 | |||
fcdc5d83fb | |||
28f224b2c1 | |||
f57497276b | |||
1a73923705 | |||
820d55a50b | |||
85d5e2b723 | |||
8956023920 | |||
e8211a33dc | |||
11416321ff | |||
6a61421f64 | |||
922acbda3d | |||
10c65860f8 | |||
0876c78527 | |||
9a033d7b18 | |||
d7e5e9430a | |||
4e2114e988 | |||
f12f0022e6 | |||
349f609f89 | |||
253b16a4ab | |||
80361a5f2b | |||
50c4e9e08f | |||
afe8cf6170 | |||
44aefffaad | |||
55b419b871 | |||
dda749ce85 | |||
d1ad99b654 | |||
1310660557 | |||
6abd3dc257 | |||
7b5d544269 | |||
2bb2658bef | |||
92f26c256e | |||
c8fe645c19 | |||
588d241d44 | |||
1bdae40323 | |||
794771cfd8 | |||
c1f0066b64 | |||
016faaa1b2 | |||
795aaa1e84 | |||
8a9bc95eae | |||
3f974ff45e | |||
fa79be6b10 | |||
bdf931c25b | |||
74273e6691 | |||
4537bcc889 | |||
668008be66 | |||
0022675aa3 | |||
5366e1aecf | |||
55759b5228 | |||
17bb4d4607 | |||
8ec92c9779 | |||
32fbc4f247 | |||
1b9129809d | |||
f43e7ac4ee | |||
391c362794 | |||
d569a9e746 | |||
4934ad0e44 | |||
d58a3bf7da | |||
b45cd36bd9 | |||
727345ebea | |||
7a9cbca00a | |||
9830938e77 | |||
06f9c6940a | |||
6c542f77eb | |||
d0e1b7103c | |||
ac564082f1 | |||
2914a20abc | |||
37ce6d3a6a | |||
5597ba0467 | |||
a5fe91e6dc | |||
cfcd011fcd | |||
c0e29010f6 | |||
8c7ad3631a | |||
f6a44f714a | |||
daff0fb738 | |||
bade44e5ca | |||
3697c9bbae | |||
c70bdab0b8 | |||
f3c51bbff1 | |||
8f187fc630 | |||
373863ed48 | |||
d47f50b331 | |||
30fd8204ce | |||
273af497ca | |||
7e9210ea53 | |||
6a33ef0deb | |||
58dbef330c | |||
9c4f55204f | |||
509f8031b2 | |||
10476521f5 | |||
531be47ac5 | |||
851d108313 | |||
148ce7ae62 | |||
4ee711f213 | |||
6bf1b52ba2 | |||
81ed496048 | |||
04bdd573d0 | |||
189832bf66 | |||
c53e9c57a9 | |||
99ca9c4868 | |||
4f73b8e9cc | |||
44aaf5416e | |||
971caf53b8 | |||
280227270c | |||
dbd759309b | |||
7f9c9c51a3 | |||
078269bdce | |||
10e4f12bf4 | |||
b816dae16d | |||
809fcecddc | |||
b5cfff0b34 | |||
26cd3063b2 | |||
8902b31f1b | |||
7795bfea6d | |||
1d59aa1fdf | |||
a05e524f3a | |||
fdeab65db6 | |||
77b20977dc | |||
dec07510bb | |||
b185a40745 | |||
2bbada8116 | |||
7cbfaa51de | |||
e8df010498 | |||
77e5dcc36a | |||
213da551de | |||
da697645d5 | |||
08e51f446b | |||
9939f57b7f | |||
916911f598 | |||
a187c43cfe | |||
7707228aac | |||
2c12f89055 | |||
2f8cbc4b22 | |||
573545a55a | |||
05eb5b9cae | |||
fb489af2ec | |||
5e65423077 | |||
8b51b7f0f1 | |||
ad5e5631c5 | |||
c8f12c9856 | |||
9b123d8590 | |||
71abe48289 | |||
0b4c66c67a | |||
efd5d8a967 | |||
2b22b113c6 | |||
dbeecb2b6b | |||
08052228a7 | |||
eb26f4331f | |||
3bd8de40b4 | |||
d1f76afaf9 | |||
4d170af0a9 | |||
a4224860a4 | |||
05c1acd5e1 | |||
f0afd9e182 | |||
b806aa5bd9 | |||
4a091b9978 | |||
c6e57b74fa | |||
8f13d82fa6 | |||
b0fa5e17c5 | |||
dadaddd59f | |||
0f769815c8 | |||
b00ef0508b | |||
635414dd2f | |||
c2c8205634 | |||
14944c04bd | |||
0e655111e9 | |||
c6a67c92bc | |||
c0c71e9d98 | |||
96fdf4348a | |||
a810db3f17 | |||
8b848cafb0 | |||
dfa3d5524e | |||
895a7a472d | |||
ad9ec5e799 | |||
4f25b1aba0 | |||
a953b5cf4f | |||
64e2db6dc6 | |||
c1ec0422e4 | |||
3e4cc9671c | |||
a62372be1f | |||
4ed124cc6c | |||
33e3346322 | |||
81a4cf469a | |||
ba7c0d7b4c | |||
96f8f499ce | |||
4507f6ada5 | |||
29a86ffee7 | |||
f842cd9e28 | |||
64075b0ab1 | |||
8e9be208ea | |||
c3516f7e45 | |||
6defa7bf0a | |||
57ad94c5a9 | |||
1c6737b20a | |||
9c929713b7 | |||
e83cca2911 | |||
44d6652d56 | |||
9bd5d879c2 | |||
c98cdb3bc9 | |||
63969ef07e | |||
418155def2 | |||
ad30470610 | |||
707be5f352 | |||
30d6413782 | |||
3986b94b09 | |||
d2c617055a | |||
2f3cd2e4ec | |||
8a0dcf4330 | |||
4140c4f3ff | |||
7c27f337bf | |||
401f0c0798 | |||
4b9bd692bd | |||
fcb6d7082d | |||
30788d3d37 | |||
597aaac9d2 | |||
fa2e38df76 | |||
a5a40c5696 | |||
ed6a430fae | |||
a48f786787 | |||
7918238528 | |||
15183b41c4 | |||
636c5d5399 | |||
04637e243d | |||
b02628b8a2 | |||
d217a87755 | |||
c08cc72947 | |||
036c2cf719 | |||
2df4731042 | |||
44b4a246b6 | |||
59941cbd80 | |||
2ce14589f2 | |||
8b5866ded6 | |||
7dfc5ce7cf | |||
86394aa972 | |||
cf8aa6448b | |||
e2e4075fad | |||
24f7750ffa | |||
c05d1c043a | |||
fe136c9a85 | |||
b936b79424 | |||
077cc7aa0e | |||
eadee486c7 | |||
fe6dce8739 | |||
fa57335e53 | |||
eb24556df3 | |||
18eedfa40b | |||
7ca86fe8dc | |||
1f42f5a675 | |||
a60053b8f4 | |||
5b5aa11801 | |||
62f93f4ec9 | |||
04d594b9c1 | |||
6c553f9c04 | |||
f966ce5ea2 | |||
5892ea1511 | |||
67ff97ded7 | |||
551d25e765 | |||
119f557230 | |||
9d8bfae50f | |||
a5d3841177 | |||
4da7a259f6 | |||
6efa46f4ef | |||
4488f5a545 | |||
e90d63ea90 | |||
4ad739fc05 | |||
6f84b6db10 | |||
3767e3a330 | |||
81fcb67fb3 | |||
9c2b06637b | |||
ca563b9b94 | |||
2f1228463a | |||
997cd1a17f | |||
39f7aa3c31 | |||
7d6979608e | |||
07e87e9eb5 | |||
2c93c685e3 | |||
64f37d3090 | |||
8b565c2c15 | |||
02aaad9109 | |||
ca774f6753 | |||
0b8cf278ec | |||
02c037a4be | |||
cd80006ecb | |||
76603baac5 | |||
207f009326 | |||
0b39c3fd4c | |||
25859dd74c | |||
a5639848cc | |||
95006e3dca | |||
98945560c1 | |||
e3d4685f1f | |||
423a85a11a | |||
b06a6d59d1 | |||
4e4473c927 | |||
08aac3c619 | |||
ee8580e52e | |||
6a950581da | |||
2566054a7f | |||
7a3330fc57 | |||
5163fcce79 | |||
749639ec72 | |||
3988f64f9d | |||
601e76ac3c | |||
228e62975e | |||
6e3aeec846 | |||
2e0866128b | |||
b9fc192f92 | |||
c8ec5fe56f | |||
07399e7f07 | |||
b3ea36c5bc | |||
c2af0afff5 | |||
2e80095501 | |||
6c53fca023 | |||
430deb1945 | |||
8436773fad | |||
dc0cf1db3e | |||
0981c8729e | |||
69e44552c5 | |||
cd94277f72 | |||
5390099a97 | |||
9943b3d979 | |||
c63b72b6dc | |||
51b6eb47b3 | |||
d70840ed68 | |||
1b04ce2d40 | |||
7cb6fc29d0 | |||
81e17fbe00 | |||
122616d9c1 | |||
3fc71285d5 | |||
5d72ce69c8 | |||
ec65d77fa2 | |||
733d259a83 | |||
17f67547f3 | |||
b8a9296ced | |||
df2524bbb4 | |||
825b54415f | |||
fc2a47ffc4 | |||
20b23c6358 | |||
66250c932e | |||
93ad14710b | |||
191929b182 | |||
9dc1917f42 | |||
a7c4e74763 | |||
f8abbf37d6 | |||
af8822ce08 | |||
9b02d64cff | |||
165036ddba | |||
aeb2bdd0de | |||
3affe7a6c6 | |||
e15eebd202 | |||
1d634542cf | |||
558813314d | |||
f39397e515 | |||
aa9675a61d | |||
36967b32fd | |||
624b6eaf20 | |||
021bda5671 | |||
7b22117c4e | |||
241572794f | |||
c0f8823ee4 | |||
0aae4809fd | |||
f923571ec1 | |||
e5abf7af08 | |||
cc673e746a | |||
56acb0943e | |||
829ac868b7 | |||
ed5918771f | |||
11107bab7e | |||
3d1cde8a2f | |||
e3c37d8ebf | |||
451c2e3536 | |||
53b29e4845 | |||
9a5c553f79 | |||
793dcc540d | |||
1623619119 | |||
d1103587cf | |||
79e8db9a21 | |||
8de2f44ac6 | |||
8d56622944 | |||
41fab3eac8 | |||
7d6997015d | |||
32a23ac615 | |||
4ac97f4761 | |||
32f335f75c | |||
7517ffdbb5 | |||
c4ce36d486 | |||
bc4c505166 | |||
cdd70f09a5 | |||
be7529e889 | |||
c771908681 | |||
16c6232cad | |||
b96a32ef1a | |||
7ac616cb0a | |||
c9edd6b582 | |||
66e0014ba6 | |||
418f1df547 | |||
fd77748df2 | |||
ba60cc45e7 | |||
6d91bcb4d2 | |||
c3d6e8a46a | |||
db199216e8 | |||
17a836cbee | |||
ed677f5587 | |||
7c5ad34878 | |||
a177344dc0 | |||
575f24b3f3 | |||
040f975fc1 | |||
035d6e91bd | |||
097148e849 | |||
4301a729ea | |||
f7c4d83609 | |||
59eccb92e3 | |||
8294d49937 | |||
efb6482949 | |||
3e06a1e2a8 | |||
6f8f7337c1 | |||
bf61fdd008 | |||
94f4ffa770 | |||
6e4cfffe80 | |||
a9a47d157a | |||
7f7a888869 | |||
1e91eafc2e | |||
64d662d5fc | |||
127542bceb | |||
a1b9b0cc01 | |||
a7cc9e697b | |||
b3ca982407 | |||
3896a105eb | |||
94f6c06ac5 | |||
62a232506d | |||
730b248339 | |||
efa94447e8 | |||
daa2f36573 | |||
4a6d1b660f | |||
5a849da57c | |||
98b4f145eb | |||
2dd0a2c39a | |||
b7f4fa5177 | |||
bf8feb5aeb | |||
fa211f3c6d | |||
1c199f9c70 | |||
74d95b5b58 | |||
dd29f1b056 | |||
e7b1ea0276 | |||
95dd9f2571 | |||
994b89d28d | |||
de6804d871 | |||
8ce4b7ed85 | |||
9470a4d88a | |||
8e1986e389 | |||
56b8dc331d | |||
3d945cc925 | |||
ae95a3946b | |||
bbd3e3c357 | |||
b8d732e93e | |||
803af686e2 | |||
c5da1fb7ea | |||
a71e263320 | |||
f9b2b49663 | |||
fdac71c507 | |||
3c1c9fd94b | |||
c753478b82 | |||
14ddd226da | |||
ff1cd39cfe | |||
b4caa163ff | |||
a6296200bd | |||
bb1b5e24ec | |||
282f9c64e5 | |||
e46a2ed0d8 | |||
ecd34bf55d | |||
6a25026262 | |||
f96e9dec63 | |||
8314454648 | |||
434d72cbf2 | |||
658217276f | |||
7226e5b19b | |||
c2ee44cc38 | |||
aa970abd0a | |||
8b89614e69 | |||
ad486a0f0d | |||
bcbf41395f | |||
b9a2cac3ef | |||
eef2102e20 | |||
e4218b9416 | |||
909443028b | |||
491799be50 | |||
f8992d47cd | |||
2c79e9d14d | |||
333894b195 | |||
f5a48010ef | |||
2ec208172c | |||
b86abadf87 | |||
2caa1594e7 | |||
8e4c8c853e | |||
586268721d | |||
af50e899e7 | |||
4e1d8bd79b | |||
b53da7918c | |||
af8edbb8dc | |||
ce6583568f |
@ -11,6 +11,9 @@ freebsd_12_task:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- ./configure --with-features=${FEATURES}
|
||||
- make -j${NPROC}
|
||||
- src/vim --version
|
||||
test_script:
|
||||
- make test
|
||||
- src/vim --version
|
||||
# run tests as user "cirrus" instead of root
|
||||
- pw useradd cirrus -m
|
||||
- chown -R cirrus:cirrus .
|
||||
- sudo -u cirrus make test
|
||||
|
158
.github/CODEOWNERS
vendored
Normal file
158
.github/CODEOWNERS
vendored
Normal file
@ -0,0 +1,158 @@
|
||||
# Lines starting with '#' are comments.
|
||||
# Each line is a file pattern followed by one or more owners.
|
||||
# You can use github users with @user or email addresses
|
||||
|
||||
# These owners will be the default owners for everything in the repo.
|
||||
#* @brammool
|
||||
|
||||
# Order is important. The last matching pattern has the most precedence.
|
||||
# So if a pull request only touches javascript files, only these owners
|
||||
# will be requested to review.
|
||||
|
||||
src/iscygpty.* @k-takata
|
||||
src/libvterm/ @leonerd
|
||||
|
||||
runtime/autoload/getscript.vim @cecamp
|
||||
runtime/autoload/netrw.vim @cecamp
|
||||
runtime/autoload/netrwFileHandlers.vim @cecamp
|
||||
runtime/autoload/netrwSettings.vim @cecamp
|
||||
runtime/autoload/rubycomplete.vim @segfault @dkearns
|
||||
runtime/autoload/tar.vim @cecamp
|
||||
runtime/autoload/vimball.vim @cecamp
|
||||
runtime/autoload/zip.vim @cecamp
|
||||
runtime/compiler/checkstyle.vim @dkearns
|
||||
runtime/compiler/cucumber.vim @tpope
|
||||
runtime/compiler/dart.vim @dkearns
|
||||
runtime/compiler/dart2js.vim @dkearns
|
||||
runtime/compiler/dart2native.vim @dkearns
|
||||
runtime/compiler/dartanalyser.vim @dkearns
|
||||
runtime/compiler/dartdevc.vim @dkearns
|
||||
runtime/compiler/dartdoc.vim @dkearns
|
||||
runtime/compiler/dartfmt.vim @dkearns
|
||||
runtime/compiler/eruby.vim @dkearns
|
||||
runtime/compiler/gawk.vim @dkearns
|
||||
runtime/compiler/gjs.vim @dkearns
|
||||
runtime/compiler/haml.vim @tpope
|
||||
runtime/compiler/javac.vim @dkearns
|
||||
runtime/compiler/jest.vim @dkearns
|
||||
runtime/compiler/jjs.vim @dkearns
|
||||
runtime/compiler/jshint.vim @dkearns
|
||||
runtime/compiler/jsonlint.vim @dkearns
|
||||
runtime/compiler/lazbuild.vim @dkearns
|
||||
runtime/compiler/php.vim @dkearns
|
||||
runtime/compiler/rake.vim @tpope @dkearns
|
||||
runtime/compiler/rhino.vim @dkearns
|
||||
runtime/compiler/rspec.vim @tpope @dkearns
|
||||
runtime/compiler/rubocop.vim @dkearns
|
||||
runtime/compiler/ruby.vim @tpope @dkearns
|
||||
runtime/compiler/rubyunit.vim @dkearns
|
||||
runtime/compiler/sass.vim @tpope
|
||||
runtime/compiler/se.vim @dkearns
|
||||
runtime/compiler/shellcheck.vim @dkearns
|
||||
runtime/compiler/stylelint.vim @dkearns
|
||||
runtime/compiler/tcl.vim @dkearns
|
||||
runtime/compiler/tidy.vim @dkearns
|
||||
runtime/compiler/ts-node.vim @dkearns
|
||||
runtime/compiler/tsc.vim @dkearns
|
||||
runtime/compiler/typedoc.vim @dkearns
|
||||
runtime/compiler/xmllint.vim @dkearns
|
||||
runtime/compiler/xo.vim @dkearns
|
||||
runtime/doc/pi_getscript.txt @cecamp
|
||||
runtime/doc/pi_logipat.txt @cecamp
|
||||
runtime/doc/pi_netrw.txt @cecamp
|
||||
runtime/doc/pi_tar.txt @cecamp
|
||||
runtime/doc/pi_vimball.txt @cecamp
|
||||
runtime/doc/pi_zip.txt @cecamp
|
||||
runtime/ftplugin/awk.vim @dkearns
|
||||
runtime/ftplugin/bst.vim @tpope
|
||||
runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
runtime/ftplugin/eruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/git.vim @tpope
|
||||
runtime/ftplugin/gitcommit.vim @tpope
|
||||
runtime/ftplugin/gitconfig.vim @tpope
|
||||
runtime/ftplugin/gitrebase.vim @tpope
|
||||
runtime/ftplugin/gitsendemail.vim @tpope
|
||||
runtime/ftplugin/haml.vim @tpope
|
||||
runtime/ftplugin/hgcommit.vim @k-takata
|
||||
runtime/ftplugin/javascript.vim @dkearns
|
||||
runtime/ftplugin/javascriptreact.vim @dkearns
|
||||
runtime/ftplugin/liquid.vim @tpope
|
||||
runtime/ftplugin/markdown.vim @tpope
|
||||
runtime/ftplugin/matlab.vim @cecamp
|
||||
runtime/ftplugin/nsis.vim @k-takata
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/ruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/sass.vim @tpope
|
||||
runtime/ftplugin/scss.vim @tpope
|
||||
runtime/ftplugin/tmux.vim @ericpruitt
|
||||
runtime/ftplugin/typescript.vim @dkearns
|
||||
runtime/ftplugin/typescriptreact.vim @dkearns
|
||||
runtime/indent/bst.vim @tpope
|
||||
runtime/indent/cucumber.vim @tpope
|
||||
runtime/indent/dosbatch.vim @k-takata
|
||||
runtime/indent/eruby.vim @tpope @dkearns
|
||||
runtime/indent/gitconfig.vim @tpope
|
||||
runtime/indent/haml.vim @tpope
|
||||
runtime/indent/liquid.vim @tpope
|
||||
runtime/indent/nsis.vim @k-takata
|
||||
runtime/indent/ruby.vim @AndrewRadev @dkearns
|
||||
runtime/indent/sass.vim @tpope
|
||||
runtime/indent/scss.vim @tpope
|
||||
runtime/indent/teraterm.vim @k-takata
|
||||
runtime/plugin/getscriptPlugin.vim @cecamp
|
||||
runtime/plugin/logiPat.vim @cecamp
|
||||
runtime/plugin/netrwPlugin.vim @cecamp
|
||||
runtime/plugin/tarPlugin.vim @cecamp
|
||||
runtime/plugin/vimballPlugin.vim @cecamp
|
||||
runtime/plugin/zipPlugin.vim @cecamp
|
||||
runtime/syntax/amiga.vim @cecamp
|
||||
runtime/syntax/asm.vim @dkearns
|
||||
runtime/syntax/asmh8300.vim @dkearns
|
||||
runtime/syntax/awk.vim @dkearns
|
||||
runtime/syntax/bst.vim @tpope
|
||||
runtime/syntax/csh.vim @cecamp
|
||||
runtime/syntax/cucumber.vim @tpope
|
||||
runtime/syntax/dcl.vim @cecamp
|
||||
runtime/syntax/elmfilt.vim @cecamp
|
||||
runtime/syntax/eruby.vim @tpope @dkearns
|
||||
runtime/syntax/exports.vim @cecamp
|
||||
runtime/syntax/git.vim @tpope
|
||||
runtime/syntax/gitcommit.vim @tpope
|
||||
runtime/syntax/gitconfig.vim @tpope
|
||||
runtime/syntax/gitrebase.vim @tpope
|
||||
runtime/syntax/haml.vim @tpope
|
||||
runtime/syntax/hgcommit.vim @k-takata
|
||||
runtime/syntax/lex.vim @cecamp
|
||||
runtime/syntax/liquid.vim @tpope
|
||||
runtime/syntax/lisp.vim @cecamp
|
||||
runtime/syntax/lynx.vim @dkearns
|
||||
runtime/syntax/mailcap.vim @dkearns
|
||||
runtime/syntax/make.vim @rohieb
|
||||
runtime/syntax/make.vim @rohieb
|
||||
runtime/syntax/maple.vim @cecamp
|
||||
runtime/syntax/markdown.vim @tpope
|
||||
runtime/syntax/netrw.vim @cecamp
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/pdf.vim @tpope
|
||||
runtime/syntax/php.vim @TysonAndre
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
runtime/syntax/rpcgen.vim @cecamp
|
||||
runtime/syntax/ruby.vim @dkearns
|
||||
runtime/syntax/sass.vim @tpope
|
||||
runtime/syntax/scss.vim @tpope
|
||||
runtime/syntax/sh.vim @cecamp
|
||||
runtime/syntax/sm.vim @cecamp
|
||||
runtime/syntax/tags.vim @cecamp
|
||||
runtime/syntax/teraterm.vim @k-takata
|
||||
runtime/syntax/tex.vim @cecamp
|
||||
runtime/syntax/tidy.vim @dkearns
|
||||
runtime/syntax/tmux.vim @ericpruitt
|
||||
runtime/syntax/vim.vim @cecamp
|
||||
runtime/syntax/wget.vim @dkearns
|
||||
runtime/syntax/xbl.vim @dkearns
|
||||
runtime/syntax/xmath.vim @cecamp
|
||||
runtime/syntax/xslt.vim @Boobies
|
||||
runtime/syntax/xxd.vim @cecamp
|
||||
runtime/syntax/yacc.vim @cecamp
|
28
.github/workflows/ci-windows.yaml
vendored
28
.github/workflows/ci-windows.yaml
vendored
@ -3,7 +3,7 @@ name: GitHub CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
- '**'
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
@ -39,6 +39,7 @@ jobs:
|
||||
runs-on: windows-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
toolchain: [msvc, mingw]
|
||||
arch: [x64, x86]
|
||||
@ -74,8 +75,8 @@ jobs:
|
||||
git config --global core.autocrlf input
|
||||
python_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON_VER_DOT}/InstallPath/@")
|
||||
python3_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ matrix.pyreg }}/InstallPath/@")
|
||||
echo "::set-env name=PYTHON_DIR::$python_dir"
|
||||
echo "::set-env name=PYTHON3_DIR::$python3_dir"
|
||||
echo "PYTHON_DIR=$python_dir" >> $GITHUB_ENV
|
||||
echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
|
||||
|
||||
- uses: msys2/setup-msys2@v2
|
||||
if: matrix.toolchain == 'mingw'
|
||||
@ -127,6 +128,11 @@ jobs:
|
||||
)
|
||||
goto :eof
|
||||
|
||||
- name: Copy src directory to src2
|
||||
shell: cmd
|
||||
run: |
|
||||
xcopy src src2\ /E > nul
|
||||
|
||||
- name: Build (MSVC)
|
||||
if: matrix.toolchain == 'msvc'
|
||||
shell: cmd
|
||||
@ -196,10 +202,6 @@ jobs:
|
||||
echo %COL_GREEN%vim version:%COL_RESET%
|
||||
.\vim --version || exit 1
|
||||
|
||||
mkdir ..\src2
|
||||
xcopy testdir ..\src2\testdir\ /E > nul || exit 1
|
||||
copy evalfunc.c ..\src2 > nul
|
||||
|
||||
echo %COL_GREEN%Start testing vim in background.%COL_RESET%
|
||||
start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak VIMPROG=..\..\src\vim > nul & echo done>done.txt"
|
||||
|
||||
@ -210,14 +212,18 @@ jobs:
|
||||
|
||||
echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
|
||||
cd ..\src2\testdir
|
||||
:: Wait about 5 minutes.
|
||||
for /L %%i in (1,1,300) do (
|
||||
:: Wait about 10 minutes.
|
||||
for /L %%i in (1,1,60) do (
|
||||
if exist done.txt goto exitloop
|
||||
ping -n 2 localhost > nul
|
||||
timeout 10
|
||||
)
|
||||
echo %COL_RED%Timed out.%COL_RESET%
|
||||
set timeout=1
|
||||
:exitloop
|
||||
|
||||
echo %COL_GREEN%Test results of vim:%COL_RESET%
|
||||
if exist messages type messages
|
||||
nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1
|
||||
if "%timeout%"=="1" (
|
||||
echo %COL_RED%Timed out.%COL_RESET%
|
||||
exit 1
|
||||
)
|
||||
|
71
.github/workflows/codeql-analysis.yml
vendored
Normal file
71
.github/workflows/codeql-analysis.yml
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [master]
|
||||
schedule:
|
||||
- cron: '0 18 * * 1'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Override automatic language detection by changing the below list
|
||||
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
|
||||
language: ['cpp', 'python']
|
||||
# Learn more...
|
||||
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
fetch-depth: 2
|
||||
|
||||
# If this run was triggered by a pull request event, then checkout
|
||||
# the head of the pull request instead of the merge commit.
|
||||
- run: git checkout HEAD^2
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
86
.travis.yml
86
.travis.yml
@ -1,26 +1,32 @@
|
||||
language: c
|
||||
|
||||
env:
|
||||
global:
|
||||
- BUILD=yes TEST=test CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no LOG_DIR="$TRAVIS_BUILD_DIR/logs"
|
||||
|
||||
_anchors:
|
||||
envs:
|
||||
- &tiny-nogui
|
||||
BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=tiny TEST=testtiny CONFOPT="--disable-gui"
|
||||
- &tiny
|
||||
BUILD=yes TEST=test FEATURES=tiny CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=tiny TEST=testtiny
|
||||
- &small
|
||||
BUILD=yes TEST=test FEATURES=small CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=small TEST=testtiny
|
||||
- &normal
|
||||
BUILD=yes TEST=test FEATURES=normal CONFOPT= LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=normal
|
||||
- &linux-huge
|
||||
BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
FEATURES=huge TEST="scripttests test_libvterm"
|
||||
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
- &osx-huge # macOS build
|
||||
BUILD=yes TEST=test FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
FEATURES=huge
|
||||
CONFOPT="--enable-perlinterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
- &unittests
|
||||
BUILD=no TEST=unittests CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge LEAK_CFLAGS="-DEXITFREE" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
BUILD=no TEST=unittests FEATURES=huge CHECK_AUTOCONF=yes
|
||||
- &coverage
|
||||
CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage
|
||||
- &asan # ASAN build
|
||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize-recover=all -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer"
|
||||
ASAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/asan" UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
- &shadowopt
|
||||
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
|
||||
|
||||
@ -29,7 +35,7 @@ _anchors:
|
||||
dist: bionic
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
packages: &apt-packages
|
||||
- autoconf
|
||||
- clang
|
||||
- lcov
|
||||
@ -63,7 +69,11 @@ _anchors:
|
||||
fi
|
||||
before_script:
|
||||
- sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
- sudo bash ci/load-snd-dummy.sh || true
|
||||
# It appears we can load "snd-dummy" on only amd64.
|
||||
- |
|
||||
if [[ "${TRAVIS_CPU_ARCH}" = amd64 ]]; then
|
||||
sudo bash ci/load-snd-dummy.sh || true
|
||||
fi
|
||||
- sudo usermod -a -G audio $USER
|
||||
- do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||
|
||||
@ -87,7 +97,7 @@ _anchors:
|
||||
# Lua is not installed on macOS
|
||||
- export LUA_PREFIX=/usr/local
|
||||
|
||||
coverage: &coverage
|
||||
coverage: &eval-coverage
|
||||
# needed for https support for coveralls building cffi only works with gcc,
|
||||
# not with clang
|
||||
- CC=gcc pip install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
|
||||
@ -98,13 +108,14 @@ _anchors:
|
||||
# Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
|
||||
# https://github.com/pyenv/pyenv/issues/580
|
||||
- (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
|
||||
- find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
|
||||
- for f in $(grep -l '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "$LOG_DIR"/*); do asan_symbolize-11 -l "$f"; done
|
||||
|
||||
branches:
|
||||
except:
|
||||
- /^v[0-9]/
|
||||
|
||||
script:
|
||||
- mkdir -p "$LOG_DIR"
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- set -o errexit
|
||||
- echo -e "\\033[33;1mConfiguring Vim\\033[0m" && echo -en "travis_fold:start:configure\\r\\033[0K"
|
||||
@ -125,7 +136,7 @@ script:
|
||||
# Append various warning flags to CFLAGS.
|
||||
# BSD sed needs backup extension specified.
|
||||
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||
if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
|
||||
if [[ "${TRAVIS_OS_NAME}" = "osx" ]] || [[ "${CC}" = "clang-11" ]]; then
|
||||
# On macOS, the entity of gcc is clang.
|
||||
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
|
||||
else
|
||||
@ -145,6 +156,15 @@ script:
|
||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
|
||||
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
|
||||
- |
|
||||
# Not all sanitizers will cause the tests to fail. This helps since we can
|
||||
# see all the failures instead of just the first one, but we still want the
|
||||
# test phase to fail if any sanitizer issues are detected.
|
||||
if [[ -n "${ASAN_OPTIONS}" ]]; then
|
||||
if grep -q '#[[:digit:]]* *0x[[:digit:]a-fA-F]*' "$LOG_DIR"/*; then
|
||||
false
|
||||
fi
|
||||
fi
|
||||
|
||||
# Instead of using all environments with both compilers on both systems,
|
||||
# exclude some builds on mac os x and linux.
|
||||
@ -208,22 +228,39 @@ jobs:
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
services: []
|
||||
- <<: *linux
|
||||
arch: arm64
|
||||
name: huge/gcc-arm64
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
services: []
|
||||
- <<: *linux
|
||||
name: huge+coverage/clang
|
||||
compiler: clang
|
||||
env:
|
||||
- *linux-huge
|
||||
- *coverage
|
||||
# Clang cannot compile test_libvterm with "--coverage" flag.
|
||||
- TEST=scripttests
|
||||
after_success: *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux
|
||||
name: huge+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
after_success: *coverage
|
||||
env:
|
||||
- *linux-huge
|
||||
- *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux # ASAN
|
||||
name: huge+asan/gcc
|
||||
compiler: gcc
|
||||
name: huge+asan/clang
|
||||
compiler: clang-11
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main'
|
||||
key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
|
||||
packages:
|
||||
- *apt-packages
|
||||
- clang-11
|
||||
env:
|
||||
- *linux-huge
|
||||
- *asan
|
||||
@ -233,13 +270,16 @@ jobs:
|
||||
compiler: gcc
|
||||
env:
|
||||
- *linux-huge
|
||||
- *coverage
|
||||
- TEST="-C src testgui"
|
||||
after_success: *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux
|
||||
name: unittests+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *unittests
|
||||
after_success: *coverage
|
||||
env:
|
||||
- *unittests
|
||||
- *coverage
|
||||
after_success: *eval-coverage
|
||||
- <<: *linux
|
||||
name: vimtags/gcc
|
||||
compiler: gcc
|
||||
|
17
Filelist
17
Filelist
@ -10,6 +10,8 @@ SRC_ALL = \
|
||||
.travis.yml \
|
||||
.cirrus.yml \
|
||||
.github/workflows/ci-windows.yaml \
|
||||
.github/workflows/codeql-analysis.yml \
|
||||
.github/CODEOWNERS \
|
||||
appveyor.yml \
|
||||
ci/appveyor.bat \
|
||||
ci/if_ver*.vim \
|
||||
@ -45,6 +47,7 @@ SRC_ALL = \
|
||||
src/drawline.c \
|
||||
src/drawscreen.c \
|
||||
src/edit.c \
|
||||
src/errors.h \
|
||||
src/eval.c \
|
||||
src/evalbuffer.c \
|
||||
src/evalfunc.c \
|
||||
@ -73,6 +76,7 @@ SRC_ALL = \
|
||||
src/highlight.c \
|
||||
src/indent.c \
|
||||
src/insexpand.c \
|
||||
src/job.c \
|
||||
src/json.c \
|
||||
src/json_test.c \
|
||||
src/kword_test.c \
|
||||
@ -149,6 +153,7 @@ SRC_ALL = \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
src/vim9script.c \
|
||||
src/vim9type.c \
|
||||
src/viminfo.c \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
@ -172,12 +177,12 @@ SRC_ALL = \
|
||||
src/testdir/setup_gui.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/vim9.vim \
|
||||
src/testdir/script_util.vim \
|
||||
src/testdir/summarize.vim \
|
||||
src/testdir/term_util.vim \
|
||||
src/testdir/view_util.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test[0-9]*a.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test77a.ok \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
@ -247,6 +252,7 @@ SRC_ALL = \
|
||||
src/proto/highlight.pro \
|
||||
src/proto/indent.pro \
|
||||
src/proto/insexpand.pro \
|
||||
src/proto/job.pro \
|
||||
src/proto/json.pro \
|
||||
src/proto/list.pro \
|
||||
src/proto/locale.pro \
|
||||
@ -303,6 +309,7 @@ SRC_ALL = \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
src/proto/vim9script.pro \
|
||||
src/proto/vim9type.pro \
|
||||
src/proto/viminfo.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
@ -617,7 +624,7 @@ SRC_AMI = \
|
||||
README_amisrc.txt.info \
|
||||
src.info \
|
||||
src/INSTALLami.txt \
|
||||
src/Make_morph.mak \
|
||||
src/Make_ami.mak \
|
||||
src/os_amiga.c \
|
||||
src/os_amiga.h \
|
||||
src/proto/os_amiga.pro \
|
||||
@ -638,13 +645,11 @@ SRC_HAIKU = \
|
||||
SRC_MAC = \
|
||||
src/INSTALLmac.txt \
|
||||
src/dehqx.py \
|
||||
src/gui_mac.c \
|
||||
src/os_mac_rsrc/*.icns \
|
||||
src/os_mac.h \
|
||||
src/os_mac.rsr.hqx \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.m \
|
||||
src/proto/gui_mac.pro \
|
||||
src/proto/os_mac_conv.pro \
|
||||
|
||||
# source files for VMS (in the extra archive)
|
||||
@ -1027,6 +1032,8 @@ LANG_SRC = \
|
||||
src/po/README_mvc.txt \
|
||||
src/po/check.vim \
|
||||
src/po/cleanup.vim \
|
||||
src/po/tojavascript.vim \
|
||||
src/po/fixfilenames.vim \
|
||||
src/po/Makefile \
|
||||
src/po/Make_all.mak \
|
||||
src/po/Make_cyg.mak \
|
||||
|
2
Makefile
2
Makefile
@ -32,7 +32,7 @@ first:
|
||||
|
||||
# Some make programs use the last target for the $@ default; put the other
|
||||
# targets separately to always let $@ expand to "first" by default.
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test scripttests test_libvterm unittests testclean clean distclean:
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test scripttests testtiny test_libvterm unittests testclean clean distclean:
|
||||
@if test ! -f src/auto/config.mk; then \
|
||||
cp src/config.mk.dist src/auto/config.mk; \
|
||||
fi
|
||||
|
@ -5,8 +5,8 @@
|
||||
This is an experimental side of [Vim](https://github.com/vim/vim).
|
||||
It explores ways of making Vim script faster and better.
|
||||
|
||||
WARNING: The Vim9 script features are in the early stages of development,
|
||||
anything can break!
|
||||
WARNING: The Vim9 script features are still under development, anything can
|
||||
break!
|
||||
|
||||
# Why Vim9?
|
||||
|
||||
@ -52,7 +52,7 @@ we can gain, and also that Vim script can be faster than builtin
|
||||
interfaces.
|
||||
|
||||
In practice the script would not do something useless as counting but change
|
||||
the text. For example, re-indent all the lines:
|
||||
the text. For example, reindent all the lines:
|
||||
|
||||
``` vim
|
||||
let totallen = 0
|
||||
@ -80,7 +80,7 @@ e.g. each stack item is a typeval_T. And one of the instructions is
|
||||
"execute Ex command", for commands that are not compiled.
|
||||
|
||||
|
||||
## 2. PHASING OUT INTERFACES
|
||||
## 2. DEPRIORITIZE INTERFACES
|
||||
|
||||
Attempts have been made to implement functionality with built-in script
|
||||
languages such as Python, Perl, Lua, Tcl and Ruby. This never gained much
|
||||
@ -91,14 +91,14 @@ Instead of using script language support in Vim:
|
||||
with them. The job and channel support already makes this possible.
|
||||
Really any language can be used, also Java and Go, which are not
|
||||
available built-in.
|
||||
* Phase out the built-in language interfaces, make maintenance a bit easier
|
||||
and executables easier to build. They will be kept for backwards
|
||||
compatibility, no new features.
|
||||
* No priority for the built-in language interfaces. They will have to be kept
|
||||
for backwards compatibility, but many users won't need a Vim build with these
|
||||
interfaces.
|
||||
* Improve the Vim script language, it is used to communicate with the external
|
||||
tool and implements the Vim side of the interface. Also, it can be used when
|
||||
an external tool is undesired.
|
||||
|
||||
All together this creates a clear situation: Vim with the +eval feature
|
||||
Altogether this creates a clear situation: Vim with the +eval feature
|
||||
will be sufficient for most plugins, while some plugins require
|
||||
installing a tool that can be written in any language. No confusion
|
||||
about having Vim but the plugin not working because some specific
|
||||
@ -140,6 +140,9 @@ Taking this one step further is also dropping "s:" for script-local variables;
|
||||
everything at the script level is script-local by default. Since this is not
|
||||
backwards compatible it requires a new script style: Vim9 script!
|
||||
|
||||
To avoid having more variations, the syntax inside a compiled function is the
|
||||
same as in Vim9 script. Thus you have legacy syntax and Vim9 syntax.
|
||||
|
||||
It should be possible to convert code from other languages to Vim
|
||||
script. We can add functionality to make this easier. This still needs
|
||||
to be discussed, but we can consider adding type checking and a simple
|
||||
|
@ -16,7 +16,6 @@ src/os_amiga.* Files for the Amiga port.
|
||||
src/os_msdos.*
|
||||
src/os_dos.* Files for the MS-DOS port.
|
||||
|
||||
src/gui_mac.*
|
||||
src/os_mac.* Files for the Mac port.
|
||||
|
||||
src/os_vms* Files for the VMS port.
|
||||
|
@ -3,6 +3,6 @@ set -e
|
||||
|
||||
if ! modprobe snd-dummy; then
|
||||
# snd-dummy is contained in linux-modules-extra (if exists)
|
||||
apt install -y "linux-modules-extra-$(uname -r)"
|
||||
apt-get install -yq --no-install-suggests --no-install-recommends "linux-modules-extra-$(uname -r)"
|
||||
modprobe snd-dummy
|
||||
fi
|
||||
|
@ -174,6 +174,7 @@ Page custom SetCustom ValidateCustom
|
||||
!include "lang\german.nsi"
|
||||
!include "lang\italian.nsi"
|
||||
!include "lang\japanese.nsi"
|
||||
!include "lang\russian.nsi"
|
||||
!include "lang\simpchinese.nsi"
|
||||
!include "lang\tradchinese.nsi"
|
||||
!include "lang\turkish.nsi"
|
||||
|
@ -58,10 +58,10 @@ LangString str_desc_console ${LANG_ITALIAN} \
|
||||
"Versione console di Vim (vim.exe)."
|
||||
|
||||
LangString str_section_batch ${LANG_ITALIAN} \
|
||||
"Crea file di invocazione (MS-DOS) .bat"
|
||||
"Crea file .bat"
|
||||
LangString str_desc_batch ${LANG_ITALIAN} \
|
||||
"Crea file di invocazione .bat per varianti di Vim nella directory \
|
||||
di Windows, per utilizzo da linea di comando (MS-DOS)."
|
||||
"Crea file .bat per varianti di Vim nella directory \
|
||||
di Windows, per utilizzo da riga di comando."
|
||||
|
||||
LangString str_group_icons ${LANG_ITALIAN} \
|
||||
"Crea icone per Vim"
|
||||
|
287
nsis/lang/russian.nsi
Normal file
287
nsis/lang/russian.nsi
Normal file
@ -0,0 +1,287 @@
|
||||
# vi:set ts=8 sts=4 sw=4 et fdm=marker:
|
||||
#
|
||||
# russian.nsi: Russian language strings for gvim NSIS installer.
|
||||
#
|
||||
# Locale ID : 1049
|
||||
# Locale name : ru-RU
|
||||
# fileencoding : UTF-8
|
||||
# Author : Restorer
|
||||
|
||||
!insertmacro MUI_LANGUAGE "Russian"
|
||||
|
||||
|
||||
# Overwrite the default translation.
|
||||
# These strings should be always English. Otherwise dosinst.c fails.
|
||||
LangString ^SetupCaption ${LANG_RUSSIAN} \
|
||||
"$(^Name) Setup"
|
||||
LangString ^UninstallCaption ${LANG_RUSSIAN} \
|
||||
"$(^Name) Uninstall"
|
||||
|
||||
##############################################################################
|
||||
# MUI Configuration Strings {{{1
|
||||
##############################################################################
|
||||
|
||||
#LangString str_dest_folder ${LANG_RUSSIAN} \
|
||||
# "Маршрут к каталогу установки (должен оканчиваться каталогом $\"vim$\")"
|
||||
|
||||
LangString str_show_readme ${LANG_RUSSIAN} \
|
||||
"После окончания установки ознакомиться с кратким описанием"
|
||||
|
||||
# Install types:
|
||||
LangString str_type_typical ${LANG_RUSSIAN} \
|
||||
"Стандартная"
|
||||
|
||||
LangString str_type_minimal ${LANG_RUSSIAN} \
|
||||
"Минимальная"
|
||||
|
||||
LangString str_type_full ${LANG_RUSSIAN} \
|
||||
"Полная"
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Section Titles & Description {{{1
|
||||
##############################################################################
|
||||
|
||||
LangString str_section_old_ver ${LANG_RUSSIAN} \
|
||||
"Удаление предыдущих версий"
|
||||
LangString str_desc_old_ver ${LANG_RUSSIAN} \
|
||||
"Будут удалены предыдущие установленные версии программы"
|
||||
|
||||
LangString str_section_exe ${LANG_RUSSIAN} \
|
||||
"Графический интерфейс и вспомогательные файлы"
|
||||
LangString str_desc_exe ${LANG_RUSSIAN} \
|
||||
"Графический интерфейс программы Vim и все необходимые для этого файлы. \
|
||||
Это обязательный компонент"
|
||||
|
||||
LangString str_section_console ${LANG_RUSSIAN} \
|
||||
"Консольная программа Vim"
|
||||
LangString str_desc_console ${LANG_RUSSIAN} \
|
||||
"Вариант редактора Vim (vim.exe), используемый в командной оболочке"
|
||||
|
||||
LangString str_section_batch ${LANG_RUSSIAN} \
|
||||
"Создать командные файлы"
|
||||
LangString str_desc_batch ${LANG_RUSSIAN} \
|
||||
"Создание командных bat-файлов позволяющих работать с редактором \
|
||||
Vim из командной строки Windows"
|
||||
|
||||
LangString str_group_icons ${LANG_RUSSIAN} \
|
||||
"Создать ярлыки для редактора Vim"
|
||||
LangString str_desc_icons ${LANG_RUSSIAN} \
|
||||
"Создание ярлыков редактора Vim для облегчения запуска программы"
|
||||
|
||||
LangString str_section_desktop ${LANG_RUSSIAN} \
|
||||
"На Рабочем столе"
|
||||
LangString str_desc_desktop ${LANG_RUSSIAN} \
|
||||
"Создание ярлыков программы Gvim на Рабочем столе"
|
||||
|
||||
LangString str_section_start_menu ${LANG_RUSSIAN} \
|
||||
"В меню кнопки Пуск"
|
||||
LangString str_desc_start_menu ${LANG_RUSSIAN} \
|
||||
"Создание ярлыков программы Gvim в меню кнопки Пуск"
|
||||
|
||||
#LangString str_section_quick_launch ${LANG_RUSSIAN} \
|
||||
# "На панели быстрого запуска"
|
||||
#LangString str_desc_quick_launch ${LANG_RUSSIAN} \
|
||||
# "Создание ярлыков программы GVim на панели быстрого запуска"
|
||||
|
||||
LangString str_section_edit_with ${LANG_RUSSIAN} \
|
||||
"В контекстном меню"
|
||||
LangString str_desc_edit_with ${LANG_RUSSIAN} \
|
||||
"Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню"
|
||||
|
||||
#LangString str_section_edit_with32 ${LANG_RUSSIAN} \
|
||||
# "32-разрядная версия программы"
|
||||
#LangString str_desc_edit_with32 ${LANG_RUSSIAN} \
|
||||
# "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню \
|
||||
# для 32-разрядных приложений"
|
||||
|
||||
#LangString str_section_edit_with64 ${LANG_RUSSIAN} \
|
||||
# "64-разрядная версия программы"
|
||||
#LangString str_desc_edit_with64 ${LANG_RUSSIAN} \
|
||||
# "Добавление вызова программы Gvim в пункт $\"Открыть с помощью...$\" контекстного меню \
|
||||
# для 64-разрядных приложений"
|
||||
|
||||
LangString str_section_vim_rc ${LANG_RUSSIAN} \
|
||||
"Настройки программы по умолчанию"
|
||||
LangString str_desc_vim_rc ${LANG_RUSSIAN} \
|
||||
"Создание файла _vimrc с предустановленными настройками, если нет других \
|
||||
файлов настроек"
|
||||
|
||||
LangString str_group_plugin ${LANG_RUSSIAN} \
|
||||
"Создать каталог для подключаемых модулей"
|
||||
LangString str_desc_plugin ${LANG_RUSSIAN} \
|
||||
"Создание каталога для размещения подключаемых модулей, которые расширяют \
|
||||
возможности редактора Vim"
|
||||
|
||||
LangString str_section_plugin_home ${LANG_RUSSIAN} \
|
||||
"Личный каталог"
|
||||
LangString str_desc_plugin_home ${LANG_RUSSIAN} \
|
||||
"Создание каталога для подключаемых модулей в домашнем каталоге пользователя"
|
||||
|
||||
LangString str_section_plugin_vim ${LANG_RUSSIAN} \
|
||||
"Общий каталог"
|
||||
LangString str_desc_plugin_vim ${LANG_RUSSIAN} \
|
||||
"Создание каталога для подключаемых модулей в каталоге установки редактора Vim. \
|
||||
Модули в этом каталоге будут доступны для любого пользователя \
|
||||
зарегистрировавшегося в системе"
|
||||
|
||||
LangString str_section_vis_vim ${LANG_RUSSIAN} \
|
||||
"Подключаемый модуль VisVim"
|
||||
LangString str_desc_vis_vim ${LANG_RUSSIAN} \
|
||||
"Подключаемый модуль VisVim используется для интеграции с Microsoft Visual Studio"
|
||||
|
||||
LangString str_section_nls ${LANG_RUSSIAN} \
|
||||
"Поддержка региональных языков"
|
||||
LangString str_desc_nls ${LANG_RUSSIAN} \
|
||||
"Установка файлов для поддержки региональных языков операционной системы"
|
||||
|
||||
LangString str_unsection_register ${LANG_RUSSIAN} \
|
||||
"Отменить регистрацию компонентов программы Vim"
|
||||
LangString str_desc_unregister ${LANG_RUSSIAN} \
|
||||
"Отмена регистрации компонентов программы Vim в операционной системе"
|
||||
|
||||
LangString str_unsection_exe ${LANG_RUSSIAN} \
|
||||
"Удалить файлы редактора Vim"
|
||||
LangString str_desc_rm_exe ${LANG_RUSSIAN} \
|
||||
"Удаление всех исполняемых и вспомогательных файлов редактора Vim"
|
||||
|
||||
LangString str_ungroup_plugin ${LANG_RUSSIAN} \
|
||||
"Удалить каталог подключаемых модулей"
|
||||
LangString str_desc_rm_plugin ${LANG_RUSSIAN} \
|
||||
"Удаление каталога подключаемых модулей, если в нём нет файлов"
|
||||
|
||||
LangString str_unsection_plugin_home ${LANG_RUSSIAN} \
|
||||
"Личный каталог"
|
||||
LangString str_desc_rm_plugin_home ${LANG_RUSSIAN} \
|
||||
"Удаление каталога подключаемых модулей из домашнего каталога пользователя"
|
||||
|
||||
LangString str_unsection_plugin_vim ${LANG_RUSSIAN} \
|
||||
"Общий каталог"
|
||||
LangString str_desc_rm_plugin_vim ${LANG_RUSSIAN} \
|
||||
"Удаление каталога подключаемых модулей из каталога установки редактора Vim"
|
||||
|
||||
LangString str_unsection_rootdir ${LANG_RUSSIAN} \
|
||||
"Удалить основной каталог программы Vim"
|
||||
LangString str_desc_rm_rootdir ${LANG_RUSSIAN} \
|
||||
"Удаление основного каталога программы Vim. В этом каталоге находятся файлы \
|
||||
настроек!"
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Messages {{{1
|
||||
##############################################################################
|
||||
|
||||
#LangString str_msg_too_many_ver ${LANG_RUSSIAN} \
|
||||
# "Обнаружено предыдущих версий программы Vim: $vim_old_ver_count.$\r$\n\
|
||||
# Данная программа установки может удалить не более ${VIM_MAX_OLD_VER}.$\r$\n\
|
||||
# Удалить лишние версии программы Vim и повторите установку"
|
||||
|
||||
#LangString str_msg_invalid_root ${LANG_RUSSIAN} \
|
||||
# "Недопустимый каталог установки программы Vim $vim_install_root!$\r$\n\
|
||||
# Маршрут установки должен оканчиваться каталогом $\"vim$\""
|
||||
|
||||
#LangString str_msg_bin_mismatch ${LANG_RUSSIAN} \
|
||||
# "Недопустимый маршрут к каталогу с исполняемыми файлами!$\r$\n$\r$\n\
|
||||
# Маршрут к каталогу с исполняемыми файлами должен быть $\"$vim_bin_path$\",$\r$\n\
|
||||
# но от операционной системы получен как $\"$INSTDIR$\"."
|
||||
|
||||
#LangString str_msg_vim_running ${LANG_RUSSIAN} \
|
||||
# "Программа Vim сейчас работает.$\r$\n\
|
||||
# Прежде чем продолжить, закройте все работающие редакторы Vim"
|
||||
|
||||
#LangString str_msg_register_ole ${LANG_RUSSIAN} \
|
||||
# "Попытка зарегистрировать компоненты программы Vim в пространстве OLE. \
|
||||
# Но не получено уведомление об успешности данной операции"
|
||||
|
||||
#LangString str_msg_unreg_ole ${LANG_RUSSIAN} \
|
||||
# "Попытка отменить регистрацию компонентов программы Vim в пространстве OLE. \
|
||||
# Но не получено уведомление об успешности данной операции"
|
||||
|
||||
#LangString str_msg_rm_start ${LANG_RUSSIAN} \
|
||||
# "Выполняется удаление следующих версий программы:"
|
||||
|
||||
#LangString str_msg_rm_fail ${LANG_RUSSIAN} \
|
||||
# "Произошёл сбой при выполнении удаления следующих версий программы:"
|
||||
|
||||
#LangString str_msg_no_rm_key ${LANG_RUSSIAN} \
|
||||
# "Не удалось найти раздел реестра, содержащий информацию об удалении программы"
|
||||
|
||||
#LangString str_msg_no_rm_reg ${LANG_RUSSIAN} \
|
||||
# "Не удалось найти программу выполняющую удаление, указанную в разделе реестра"
|
||||
|
||||
#LangString str_msg_no_rm_exe ${LANG_RUSSIAN} \
|
||||
# "Отсутствуют права на доступ к программе, выполняющей удаление"
|
||||
|
||||
#LangString str_msg_rm_copy_fail ${LANG_RUSSIAN} \
|
||||
# "Произошла ошибка при копировании программы удаления во временный каталог"
|
||||
|
||||
#LangString str_msg_rm_run_fail ${LANG_RUSSIAN} \
|
||||
# "Произошёл сбой при запуске программы, выполняющей удаление"
|
||||
|
||||
#LangString str_msg_abort_install ${LANG_RUSSIAN} \
|
||||
# "Установка программы была отменена"
|
||||
|
||||
LangString str_msg_install_fail ${LANG_RUSSIAN} \
|
||||
"Произошла ошибка при установке программы. Попробуйте повторить установку \
|
||||
немного попозже"
|
||||
# когда луна будет в другой фазе и ветер должен дуть с юго‐запада
|
||||
|
||||
LangString str_msg_rm_exe_fail ${LANG_RUSSIAN} \
|
||||
"Некоторые файлы не были удалены из каталога $0 $\r$\n\
|
||||
Необходимо выполнить их удаление самостоятельно"
|
||||
|
||||
#LangString str_msg_rm_root_fail ${LANG_RUSSIAN} \
|
||||
# "Внимание! В каталоге $\"$vim_install_root$\" содержатся файлы. Удаление каталога не выполнено"
|
||||
|
||||
LangString str_msg_uninstalling ${LANG_RUSSIAN} \
|
||||
"Удаление предыдущих версий программ..."
|
||||
|
||||
LangString str_msg_registering ${LANG_RUSSIAN} \
|
||||
"Регистрация компонентов программы в системе..."
|
||||
|
||||
LangString str_msg_unregistering ${LANG_RUSSIAN} \
|
||||
"Отмена регистрации компонентов программы в системе..."
|
||||
|
||||
|
||||
##############################################################################
|
||||
# Dialog Box {{{1
|
||||
##############################################################################
|
||||
|
||||
LangString str_vimrc_page_title ${LANG_RUSSIAN} \
|
||||
"Установка параметров программы"
|
||||
LangString str_vimrc_page_subtitle ${LANG_RUSSIAN} \
|
||||
"Параметры, используемые для клавиатуры, «мыши» и функциональности программы"
|
||||
|
||||
LangString str_msg_compat_title ${LANG_RUSSIAN} \
|
||||
" Варианты использования программы "
|
||||
LangString str_msg_compat_desc ${LANG_RUSSIAN} \
|
||||
"Совместимость и функциональность программы"
|
||||
LangString str_msg_compat_vi ${LANG_RUSSIAN} \
|
||||
"Работа в варианте совместимости с редактором Vi"
|
||||
LangString str_msg_compat_vim ${LANG_RUSSIAN} \
|
||||
"Работа в варианте функциональности редактора Vim"
|
||||
LangString str_msg_compat_defaults ${LANG_RUSSIAN} \
|
||||
"Работа редактора Vim с некоторыми улучшениями (файл defaults.vim)"
|
||||
LangString str_msg_compat_all ${LANG_RUSSIAN} \
|
||||
"Работа редактора Vim со всеми улучшениями (файл vimrc_example.vim). \
|
||||
Используется по умолчанию"
|
||||
|
||||
LangString str_msg_keymap_title ${LANG_RUSSIAN} \
|
||||
" Клавиатурные команды "
|
||||
LangString str_msg_keymap_desc ${LANG_RUSSIAN} \
|
||||
"Клавиатурные команды используемые в ОС Windows (CTRL+V, CTRL+C, CTRL+S, CTRL+F и т. п.)"
|
||||
LangString str_msg_keymap_default ${LANG_RUSSIAN} \
|
||||
"Не изменять клавиатурные команды. Использовать принятые в редакторе Vim"
|
||||
LangString str_msg_keymap_windows ${LANG_RUSSIAN} \
|
||||
"Изменить указанные клавиатурные команды"
|
||||
|
||||
LangString str_msg_mouse_title ${LANG_RUSSIAN} \
|
||||
" Манипулятор «мышь» "
|
||||
LangString str_msg_mouse_desc ${LANG_RUSSIAN} \
|
||||
"Действий правой и левой кнопки манипулятора «мышь»"
|
||||
LangString str_msg_mouse_default ${LANG_RUSSIAN} \
|
||||
"Правая кнопка — всплывающее меню, левая кнопка — режим визуальный"
|
||||
LangString str_msg_mouse_windows ${LANG_RUSSIAN} \
|
||||
"Правая кнопка — всплывающее меню, левая кнопка — режим выборки (как в ОС Windows)"
|
||||
LangString str_msg_mouse_unix ${LANG_RUSSIAN} \
|
||||
"Правая кнопка — расширяемый режим выбора, левая кнопка — режим визуальный (как в UNIX‐подобных ОС)"
|
4
runtime/autoload/dist/ft.vim
vendored
4
runtime/autoload/dist/ft.vim
vendored
@ -1,7 +1,7 @@
|
||||
" Vim functions for file type detection
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2020 Mar 30
|
||||
" Last Change: 2020 Aug 17
|
||||
|
||||
" These functions are moved here from runtime/filetype.vim to make startup
|
||||
" faster.
|
||||
@ -575,7 +575,7 @@ endfunc
|
||||
let s:ft_rules_udev_rules_pattern = '^\s*\cudev_rules\s*=\s*"\([^"]\{-1,}\)/*".*'
|
||||
func dist#ft#FTRules()
|
||||
let path = expand('<amatch>:p')
|
||||
if path =~ '^/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
|
||||
if path =~ '/\(etc/udev/\%(rules\.d/\)\=.*\.rules\|\%(usr/\)\=lib/udev/\%(rules\.d/\)\=.*\.rules\)$'
|
||||
setf udevrules
|
||||
return
|
||||
endif
|
||||
|
@ -1,7 +1,9 @@
|
||||
" Vim completion script
|
||||
" Language: Java Script
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2017 Mar 04
|
||||
" Maintainer: Jay Sitter (jay@jaysitter.com)
|
||||
" URL: https://github.com/jsit/javascriptcomplete.vim/
|
||||
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2020 Jul 30
|
||||
|
||||
function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
if a:findstart
|
||||
@ -154,12 +156,30 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
\ 'text', 'vLink']
|
||||
let bodys = bodyprop
|
||||
" Document - document.
|
||||
let docuprop = ['anchors', 'applets', 'childNodes', 'embeds', 'forms', 'images', 'links', 'stylesheets',
|
||||
\ 'body', 'cookie', 'documentElement', 'domain', 'lastModified', 'referrer', 'title', 'URL']
|
||||
let documeth = ['close', 'createAttribute', 'createElement', 'createTextNode', 'focus', 'getElementById',
|
||||
\ 'getElementsByName', 'getElementsByTagName', 'open', 'write', 'writeln',
|
||||
\ 'onClick', 'onDblClick', 'onFocus', 'onKeyDown', 'onKeyPress', 'onKeyUp',
|
||||
\ 'onMouseDown', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp', 'onResize']
|
||||
let docuprop = ['anchors', 'body', 'characterSet', 'doctype',
|
||||
\ 'documentElement', 'documentURI', 'embeds', 'fonts', 'forms',
|
||||
\ 'head', 'hidden', 'images', 'implementation', 'lastStyleSheetSet',
|
||||
\ 'links', 'plugins', 'preferredStyleSheetSet', 'scripts',
|
||||
\ 'scrollingElement', 'selectedStyleSheetSet', 'styleSheetSets',
|
||||
\ 'timeline', 'visibilityState', 'cookie', 'defaultView',
|
||||
\ 'designMode', 'dir', 'domain', 'lastModified', 'location',
|
||||
\ 'readyState', 'referrer', 'title', 'URL', 'activeElement',
|
||||
\ 'fullscreenElement', 'styleSheets']
|
||||
let documeth = ['adoptNode', 'close', 'createAttribute',
|
||||
\ 'createAttributeNS', 'createCDATASection', 'createComment',
|
||||
\ 'createDocumentFragment', 'createElement', 'createElementNS',
|
||||
\ 'createEvent', 'createExpression', 'createNSResolver',
|
||||
\ 'createNodeIterator', 'createProcessingInstruction', 'createRange',
|
||||
\ 'createTextNode', 'createTouchList', 'createTreeWalker',
|
||||
\ 'enableStyleSheetsForSet', 'evaluate', 'focus', 'getElementById',
|
||||
\ 'getElementById', 'getElementsByClassName', 'getElementsByName',
|
||||
\ 'getElementsByTagName', 'getElementsByTagNameNS',
|
||||
\ 'hasStorageAccess', 'importNode', 'onClick', 'onDblClick',
|
||||
\ 'onFocus', 'onKeyDown', 'onKeyPress', 'onKeyUp', 'onMouseDown',
|
||||
\ 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp',
|
||||
\ 'onResize', 'open', 'querySelector', 'querySelectorAll',
|
||||
\ 'requestStorageAccess', 'write', 'writeln']
|
||||
|
||||
call map(documeth, 'v:val."("')
|
||||
let docuxprop = ['attributes', 'childNodes', 'doctype', 'documentElement', 'firstChild',
|
||||
\ 'implementation', 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType',
|
||||
@ -368,9 +388,11 @@ function! javascriptcomplete#CompleteJS(findstart, base)
|
||||
let xdomelemprop = ['attributes', 'childNodes', 'firstChild', 'lastChild',
|
||||
\ 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue',
|
||||
\ 'ownerDocument', 'parentNode', 'prefix', 'previousSibling', 'tagName']
|
||||
let xdomelemmeth = ['appendChild', 'cloneNode', 'getAttribute', 'getAttributeNode',
|
||||
\ 'getElementsByTagName', 'hasChildNodes', 'insertBefore', 'normalize',
|
||||
\ 'removeAttribute', 'removeAttributeNode', 'removeChild', 'replaceChild',
|
||||
let xdomelemmeth = ['appendChild', 'addEventListener', 'cloneNode',
|
||||
\ 'dispatchEvent', 'getAttribute', 'getAttributeNode',
|
||||
\ 'getElementsByTagName', 'hasChildNodes', 'insertBefore',
|
||||
\ 'normalize', 'removeAttribute', 'removeAttributeNode',
|
||||
\ 'removeChild', 'removeEventListener', 'replaceChild',
|
||||
\ 'setAttribute', 'setAttributeNode']
|
||||
call map(xdomelemmeth, 'v:val."("')
|
||||
let xdomelems = xdomelemprop + xdomelemmeth
|
||||
|
@ -1,7 +1,7 @@
|
||||
" netrw.vim: Handles file transfer and remote directory listing across
|
||||
" AUTOLOAD SECTION
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 168
|
||||
" Date: Sep 18, 2020
|
||||
" Version: 170
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
@ -43,7 +43,7 @@ if exists("s:needspatches")
|
||||
endfor
|
||||
endif
|
||||
|
||||
let g:loaded_netrw = "v168"
|
||||
let g:loaded_netrw = "v170"
|
||||
if !exists("s:NOTE")
|
||||
let s:NOTE = 0
|
||||
let s:WARNING = 1
|
||||
@ -86,7 +86,16 @@ fun! netrw#ErrorMsg(level,msg,errnum)
|
||||
endif
|
||||
" call Decho("level=".level,'~'.expand("<slnum>"))
|
||||
|
||||
if g:netrw_use_errorwindow
|
||||
if g:netrw_use_errorwindow == 2 && (v:version > 802 || (v:version == 802 && has("patch486")))
|
||||
" use popup window
|
||||
if type(a:msg) == 3
|
||||
let msg = [level]+a:msg
|
||||
else
|
||||
let msg= level.a:msg
|
||||
endif
|
||||
let s:popuperr_id = popup_beval(msg,{})
|
||||
let s:popuperr_text= ""
|
||||
elseif g:netrw_use_errorwindow
|
||||
" (default) netrw creates a one-line window to show error/warning
|
||||
" messages (reliably displayed)
|
||||
|
||||
@ -203,7 +212,11 @@ let g:netrw_localrmdiropt = ""
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default values for netrw's global protocol variables {{{2
|
||||
call s:NetrwInit("g:netrw_use_errorwindow",1)
|
||||
if (v:version > 802 || (v:version == 802 && has("patch486"))) && has("balloon_eval") && !exists("s:initbeval") && !exists("g:netrw_nobeval") && has("syntax") && exists("g:syntax_on") && has("mouse")
|
||||
call s:NetrwInit("g:netrw_use_errorwindow",2)
|
||||
else
|
||||
call s:NetrwInit("g:netrw_use_errorwindow",1)
|
||||
endif
|
||||
|
||||
if !exists("g:netrw_dav_cmd")
|
||||
if executable("cadaver")
|
||||
@ -559,6 +572,7 @@ call s:NetrwInit("s:netrw_posn",'{}')
|
||||
if v:version >= 700 && has("balloon_eval") && !exists("s:initbeval") && !exists("g:netrw_nobeval") && has("syntax") && exists("g:syntax_on")
|
||||
" call Decho("installed beval events",'~'.expand("<slnum>"))
|
||||
let &l:bexpr = "netrw#BalloonHelp()"
|
||||
" call Decho("&l:bexpr<".&l:bexpr."> buf#".bufnr())
|
||||
au FileType netrw setl beval
|
||||
au WinLeave * if &ft == "netrw" && exists("s:initbeval")|let &beval= s:initbeval|endif
|
||||
au VimEnter * let s:initbeval= &beval
|
||||
@ -591,7 +605,18 @@ if v:version >= 700 && has("balloon_eval") && has("syntax") && exists("g:syntax_
|
||||
if &ft != "netrw"
|
||||
return ""
|
||||
endif
|
||||
if !exists("w:netrw_bannercnt") || v:beval_lnum >= w:netrw_bannercnt || (exists("g:netrw_nobeval") && g:netrw_nobeval)
|
||||
if exists("s:popuperr_id") && popup_getpos(s:popuperr_id) != {}
|
||||
" popup error window is still showing
|
||||
" s:pouperr_id and s:popuperr_text are set up in netrw#ErrorMsg()
|
||||
if exists("s:popuperr_text") && s:popuperr_text != "" && v:beval_text != s:popuperr_text
|
||||
" text under mouse hasn't changed; only close window when it changes
|
||||
call popup_close(s:popuperr_id)
|
||||
unlet s:popuperr_text
|
||||
else
|
||||
let s:popuperr_text= v:beval_text
|
||||
endif
|
||||
let mesg= ""
|
||||
elseif !exists("w:netrw_bannercnt") || v:beval_lnum >= w:netrw_bannercnt || (exists("g:netrw_nobeval") && g:netrw_nobeval)
|
||||
let mesg= ""
|
||||
elseif v:beval_text == "Netrw" || v:beval_text == "Directory" || v:beval_text == "Listing"
|
||||
let mesg = "i: thin-long-wide-tree gh: quick hide/unhide of dot-files qf: quick file info %:open new file"
|
||||
@ -1247,6 +1272,10 @@ fun! netrw#Lexplore(count,rightside,...)
|
||||
setlocal winfixwidth
|
||||
let g:netrw_altv = keep_altv
|
||||
let t:netrw_lexbufnr = bufnr("%")
|
||||
" done to prevent build-up of hidden buffers due to quitting and re-invocation of :Lexplore.
|
||||
" Since the intended use of :Lexplore is to have an always-present explorer window, the extra
|
||||
" effort to mis-use :Lex is warranted.
|
||||
set bh=wipe
|
||||
" call Decho("let t:netrw_lexbufnr=".t:netrw_lexbufnr)
|
||||
" call Decho("t:netrw_lexposn".(exists("t:netrw_lexposn")? string(t:netrw_lexposn) : " n/a"))
|
||||
if exists("t:netrw_lexposn")
|
||||
@ -1908,7 +1937,7 @@ fun! s:NetrwRestoreSetting(keepvar,setting)
|
||||
if type(a:setting) == 0
|
||||
exe "let ".a:setting."= ".keepvarval
|
||||
elseif type(a:setting) == 1
|
||||
exe "let ".a:setting."= '".keepvarval."'"
|
||||
exe "let ".a:setting."= '".substitute(keepvarval,"'","''","g")."'"
|
||||
else
|
||||
call netrw#ErrorMsg(s:ERROR,"(s:NetrwRestoreSetting) doesn't know how to restore ".a:keepvar." with a setting of type#".type(a:setting),105)
|
||||
endif
|
||||
@ -3640,6 +3669,8 @@ fun! s:NetrwBookHistSave()
|
||||
let savefile= s:NetrwHome()."/.netrwhist"
|
||||
" call Decho("savefile<".savefile.">",'~'.expand("<slnum>"))
|
||||
1split
|
||||
|
||||
" setting up a new buffer which will become .netrwhist
|
||||
call s:NetrwEnew()
|
||||
" call Decho("case g:netrw_use_noswf=".g:netrw_use_noswf.(exists("+acd")? " +acd" : " -acd"),'~'.expand("<slnum>"))
|
||||
if g:netrw_use_noswf
|
||||
@ -4722,7 +4753,7 @@ endfun
|
||||
" "new directory name" is actually a file,
|
||||
" NetrwBrowseChgDir() edits the file.
|
||||
fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
" call Dfunc("s:NetrwBrowseChgDir(islocal=".a:islocal."> newdir<".a:newdir.">) a:0=".a:0." curpos<".string(getpos("."))."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "").">")
|
||||
" call Dfunc("s:NetrwBrowseChgDir(islocal=".a:islocal."> newdir<".a:newdir.">) a:0=".a:0." win#".winnr()." curpos<".string(getpos("."))."> b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "").">")
|
||||
" call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>"))
|
||||
|
||||
let ykeep= @@
|
||||
@ -4751,13 +4782,14 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
let newdir = a:newdir
|
||||
let dolockout = 0
|
||||
let dorestore = 1
|
||||
" call Decho("win#".winnr(),'~'.expand("<slnum>"))
|
||||
" call Decho("dirname<".dirname.">",'~'.expand("<slnum>"))
|
||||
" call Decho("newdir<".newdir.">",'~'.expand("<slnum>"))
|
||||
|
||||
" ignore <cr>s when done in the banner
|
||||
" call Decho('(s:NetrwBrowseChgDir) ignore [return]s when done in banner (g:netrw_banner='.g:netrw_banner.")",'~'.expand("<slnum>"))
|
||||
if g:netrw_banner
|
||||
" call Decho("w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'n/a')." line(.)#".line('.')." line($)#".line("#"),'~'.expand("<slnum>"))
|
||||
" call Decho("win#".winnr()." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'n/a')." line(.)#".line('.')." line($)#".line("#"),'~'.expand("<slnum>"))
|
||||
if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt && line("$") >= w:netrw_bannercnt
|
||||
if getline(".") =~# 'Quick Help'
|
||||
" call Decho("#1: quickhelp=".g:netrw_quickhelp." ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
||||
@ -4794,7 +4826,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
" ------------------------------
|
||||
" NetrwBrowseChgDir: edit a file {{{3
|
||||
" ------------------------------
|
||||
" call Decho('(s:NetrwBrowseChgDir) edit-a-file: case "handling a file": newdir<'.newdir.'> !~ dirpat<'.dirpat.">",'~'.expand("<slnum>"))
|
||||
" call Decho('edit-a-file: case "handling a file": win#'.winnr().' newdir<'.newdir.'> !~ dirpat<'.dirpat.">",'~'.expand("<slnum>"))
|
||||
|
||||
" save position for benefit of Rexplore
|
||||
let s:rexposn_{bufnr("%")}= winsaveview()
|
||||
@ -4829,7 +4861,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
NetrwKeepj call s:NetrwOptionsRestore("s:")
|
||||
let curdir= b:netrw_curdir
|
||||
if !exists("s:didsplit")
|
||||
" call Decho("edit-a-file: s:didsplit does not exist; g:netrw_browse_split=".string(g:netrw_browse_split)." win#".winnr(),'~'.expand("<slnum>"))
|
||||
" " call Decho("edit-a-file: s:didsplit does not exist; g:netrw_browse_split=".string(g:netrw_browse_split)." win#".winnr()." g:netrw_chgwin=".g:netrw_chgwin",'~'.expand("<slnum>"))
|
||||
if type(g:netrw_browse_split) == 3
|
||||
" open file in server
|
||||
" Note that g:netrw_browse_split is a List: [servername,tabnr,winnr]
|
||||
@ -4837,22 +4869,27 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
call s:NetrwServerEdit(a:islocal,dirname)
|
||||
" call Dret("s:NetrwBrowseChgDir")
|
||||
return
|
||||
|
||||
elseif g:netrw_browse_split == 1
|
||||
" horizontally splitting the window first
|
||||
" call Decho("edit-a-file: horizontally splitting window prior to edit",'~'.expand("<slnum>"))
|
||||
keepalt new
|
||||
let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winheight(0))/100 : -g:netrw_winsize
|
||||
exe "keepalt ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s"
|
||||
if !&ea
|
||||
keepalt wincmd _
|
||||
endif
|
||||
call s:SetRexDir(a:islocal,curdir)
|
||||
|
||||
elseif g:netrw_browse_split == 2
|
||||
" vertically splitting the window first
|
||||
" call Decho("edit-a-file: vertically splitting window prior to edit",'~'.expand("<slnum>"))
|
||||
keepalt rightb vert new
|
||||
let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize
|
||||
exe "keepalt ".(g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s"
|
||||
if !&ea
|
||||
keepalt wincmd |
|
||||
endif
|
||||
call s:SetRexDir(a:islocal,curdir)
|
||||
|
||||
elseif g:netrw_browse_split == 3
|
||||
" open file in new tab
|
||||
" call Decho("edit-a-file: opening new tab prior to edit",'~'.expand("<slnum>"))
|
||||
@ -4861,6 +4898,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
let b:netrw_curdir= getcwd()
|
||||
endif
|
||||
call s:SetRexDir(a:islocal,curdir)
|
||||
|
||||
elseif g:netrw_browse_split == 4
|
||||
" act like "P" (ie. open previous window)
|
||||
" call Decho("edit-a-file: use previous window for edit",'~'.expand("<slnum>"))
|
||||
@ -4870,13 +4908,14 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
return
|
||||
endif
|
||||
call s:SetRexDir(a:islocal,curdir)
|
||||
|
||||
else
|
||||
" handling a file, didn't split, so remove menu
|
||||
" call Decho("edit-a-file: handling a file+didn't split, so remove menu",'~'.expand("<slnum>"))
|
||||
call s:NetrwMenu(0)
|
||||
" optional change to window
|
||||
if g:netrw_chgwin >= 1
|
||||
" call Decho("edit-a-file: changing window to #".g:netrw_chgwin,'~'.expand("<slnum>"))
|
||||
" call Decho("edit-a-file: changing window to #".g:netrw_chgwin.": (due to g:netrw_chgwin)",'~'.expand("<slnum>"))
|
||||
if winnr("$")+1 == g:netrw_chgwin
|
||||
" if g:netrw_chgwin is set to one more than the last window, then
|
||||
" vertically split the last window to make that window available.
|
||||
@ -4889,19 +4928,26 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
endif
|
||||
call s:SetRexDir(a:islocal,curdir)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
" the point where netrw actually edits the (local) file
|
||||
" if its local only: LocalBrowseCheck() doesn't edit a file, but NetrwBrowse() will
|
||||
" no keepalt to support :e # to return to a directory listing
|
||||
if !&mod
|
||||
" if e the new file would fail due to &mod, then don't change any of the flags
|
||||
let dolockout= 1
|
||||
endif
|
||||
if a:islocal
|
||||
" call Decho("edit-a-file: edit local file: exe e! ".fnameescape(dirname),'~'.expand("<slnum>"))
|
||||
" some like c-^ to return to the last edited file
|
||||
" others like c-^ to return to the netrw buffer
|
||||
" Apr 30, 2020: used to have e! here. That can cause loss of a modified file,
|
||||
" so emit error E37 instead.
|
||||
if exists("g:netrw_altfile") && g:netrw_altfile
|
||||
exe "NetrwKeepj keepalt e! ".fnameescape(dirname)
|
||||
exe "NetrwKeepj keepalt e ".fnameescape(dirname)
|
||||
else
|
||||
exe "NetrwKeepj e! ".fnameescape(dirname)
|
||||
exe "NetrwKeepj e ".fnameescape(dirname)
|
||||
endif
|
||||
" call Decho("edit-a-file: after e! ".dirname.": hidden=".&hidden." bufhidden<".&bufhidden."> mod=".&mod,'~'.expand("<slnum>"))
|
||||
call s:NetrwCursor()
|
||||
@ -4912,7 +4958,6 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
|
||||
else
|
||||
" call Decho("edit-a-file: remote file: NetrwBrowse will edit it",'~'.expand("<slnum>"))
|
||||
endif
|
||||
let dolockout= 1
|
||||
|
||||
" handle g:Netrw_funcref -- call external-to-netrw functions
|
||||
" This code will handle g:Netrw_funcref as an individual function reference
|
||||
@ -5376,16 +5421,6 @@ fun! netrw#BrowseX(fname,remote)
|
||||
endif
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
|
||||
" call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>"))
|
||||
call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
|
||||
" call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>"))
|
||||
call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir)
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril")
|
||||
" call Decho("(netrw#BrowseX) unix and atril",'~'.expand("<slnum>"))
|
||||
if a:fname =~ '^https\=://'
|
||||
@ -5400,9 +5435,19 @@ fun! netrw#BrowseX(fname,remote)
|
||||
endif
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
|
||||
" call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>"))
|
||||
call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
|
||||
" call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>"))
|
||||
call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir.'&')
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("unix") && executable("xdg-open")
|
||||
" call Decho("(netrw#BrowseX) unix and xdg-open",'~'.expand("<slnum>"))
|
||||
call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir)
|
||||
call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir.'&')
|
||||
let ret= v:shell_error
|
||||
|
||||
elseif has("macunix") && executable("open")
|
||||
@ -6107,10 +6152,10 @@ fun! s:NetrwListHide()
|
||||
" Duplicate characters don't matter.
|
||||
" Remove all such characters from the '/~@#...890' string.
|
||||
" Use the first character left as a separator character.
|
||||
" call Decho("find a character not in the hide string to use as a separator")
|
||||
" call Decho("find a character not in the hide string to use as a separator",'~'.expand("<slnum>"))
|
||||
let listhide= g:netrw_list_hide
|
||||
let sep = strpart(substitute('~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
|
||||
" call Decho("sep=".sep," (sep not in hide string)'~'.expand("<slnum>"))
|
||||
" call Decho("sep<".sep."> (sep not in hide string)",'~'.expand("<slnum>"))
|
||||
|
||||
while listhide != ""
|
||||
if listhide =~ ','
|
||||
@ -6120,7 +6165,7 @@ fun! s:NetrwListHide()
|
||||
let hide = listhide
|
||||
let listhide = ""
|
||||
endif
|
||||
" call Decho("..extracted from listhide: hide<".hide."> g:netrw_sort_by<".g:netrw_sort_by.'>','~'.expand("<slnum>"))
|
||||
" call Decho("..extracted pattern from listhide: hide<".hide."> g:netrw_sort_by<".g:netrw_sort_by.'>','~'.expand("<slnum>"))
|
||||
if g:netrw_sort_by =~ '^[ts]'
|
||||
if hide =~ '^\^'
|
||||
" call Decho("..modify hide to handle a \"^...\" pattern",'~'.expand("<slnum>"))
|
||||
@ -6132,7 +6177,7 @@ fun! s:NetrwListHide()
|
||||
endif
|
||||
|
||||
" Prune the list by hiding any files which match
|
||||
" call Decho("..prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">")
|
||||
" call Decho("..prune the list by hiding any files which ".((g:netrw_hide == 1)? "" : "don't")."match hide<".hide.">")
|
||||
if g:netrw_hide == 1
|
||||
" call Decho("..hiding<".hide.">",'~'.expand("<slnum>"))
|
||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d'
|
||||
@ -9215,6 +9260,7 @@ endfun
|
||||
" (full path directory with trailing slash returned)
|
||||
fun! s:NetrwTreeDir(islocal)
|
||||
" call Dfunc("s:NetrwTreeDir(islocal=".a:islocal.") getline(".line(".").")"."<".getline('.')."> b:netrw_curdir<".b:netrw_curdir."> tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> ft=".&ft)
|
||||
" call Decho("Determine tree directory given current cursor position")
|
||||
" call Decho("g:netrw_keepdir =".(exists("g:netrw_keepdir")? g:netrw_keepdir : 'n/a'),'~'.expand("<slnum>"))
|
||||
" call Decho("w:netrw_liststyle=".(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a'),'~'.expand("<slnum>"))
|
||||
" call Decho("w:netrw_treetop =".(exists("w:netrw_treetop")? w:netrw_treetop : 'n/a'),'~'.expand("<slnum>"))
|
||||
@ -9320,7 +9366,6 @@ fun! s:NetrwTreeDisplay(dir,depth)
|
||||
call setline(line("$")+1,a:depth.shortdir.'/')
|
||||
endif
|
||||
" call Decho("setline#".line("$")." shortdir<".a:depth.shortdir.">",'~'.expand("<slnum>"))
|
||||
|
||||
" append a / to dir if its missing one
|
||||
let dir= a:dir
|
||||
|
||||
@ -9334,7 +9379,7 @@ fun! s:NetrwTreeDisplay(dir,depth)
|
||||
let listhide= split(g:netrw_list_hide,',')
|
||||
" call Decho("listhide=".string(listhide))
|
||||
for pat in listhide
|
||||
call filter(w:netrw_treedict[dir],'v:val !~ "'.pat.'"')
|
||||
call filter(w:netrw_treedict[dir],'v:val !~ "'.escape(pat,'\\').'"')
|
||||
endfor
|
||||
|
||||
elseif g:netrw_hide == 2
|
||||
@ -9472,6 +9517,7 @@ fun! s:NetrwTreeListing(dirname)
|
||||
" call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
|
||||
|
||||
" display from treetop on down
|
||||
" call Decho("(s:NetrwTreeListing) w:netrw_treetop<".w:netrw_treetop.">")
|
||||
NetrwKeepj call s:NetrwTreeDisplay(w:netrw_treetop,"")
|
||||
" call Decho("s:NetrwTreeDisplay) setl noma nomod ro",'~'.expand("<slnum>"))
|
||||
|
||||
@ -9742,7 +9788,7 @@ fun! s:PerformListing(islocal)
|
||||
|
||||
" Hiding... -or- Showing... {{{3
|
||||
if g:netrw_banner
|
||||
" call Decho("--handle hiding/showing (g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">)",'~'.expand("<slnum>"))
|
||||
" call Decho("--handle hiding/showing in banner (g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">)",'~'.expand("<slnum>"))
|
||||
if g:netrw_list_hide != "" && g:netrw_hide
|
||||
if g:netrw_hide == 1
|
||||
NetrwKeepj put ='\" Hiding: '.g:netrw_list_hide
|
||||
@ -9795,7 +9841,7 @@ fun! s:PerformListing(islocal)
|
||||
" call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>"))
|
||||
|
||||
if !g:netrw_banner || line("$") >= w:netrw_bannercnt
|
||||
" call Decho("manipulate directory listing (hide)",'~'.expand("<slnum>"))
|
||||
" call Decho("manipulate directory listing (support hide)",'~'.expand("<slnum>"))
|
||||
" call Decho("g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">",'~'.expand("<slnum>"))
|
||||
if g:netrw_hide && g:netrw_list_hide != ""
|
||||
NetrwKeepj call s:NetrwListHide()
|
||||
@ -11808,7 +11854,7 @@ endfun
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2
|
||||
fun! s:NetrwEnew(...)
|
||||
" call Dfunc("s:NetrwEnew() a:0=".a:0." bufnr($)=".bufnr("$")." expand(%)<".expand("%").">")
|
||||
" call Dfunc("s:NetrwEnew() a:0=".a:0." win#".winnr()." winnr($)=".winnr("$")." bufnr($)=".bufnr("$")." expand(%)<".expand("%").">")
|
||||
" call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>"))
|
||||
|
||||
" grab a function-local-variable copy of buffer variables
|
||||
@ -11875,6 +11921,9 @@ fun! s:NetrwEnew(...)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if v:version >= 700 && has("balloon_eval") && !exists("s:initbeval") && !exists("g:netrw_nobeval") && has("syntax") && exists("g:syntax_on")
|
||||
let &l:bexpr = "netrw#BalloonHelp()"
|
||||
endif
|
||||
|
||||
" call Dret("s:NetrwEnew : buf#".bufnr("%")."<".bufname("%")."> expand(%)<".expand("%")."> expand(#)<".expand("#")."> bh=".&bh." win#".winnr()." winnr($)#".winnr("$"))
|
||||
endfun
|
||||
@ -11934,6 +11983,7 @@ endfun
|
||||
" -1=failed
|
||||
fun! s:NetrwLcd(newdir)
|
||||
" call Dfunc("s:NetrwLcd(newdir<".a:newdir.">)")
|
||||
" call Decho("changing local directory",'~'.expand("<slnum>"))
|
||||
|
||||
let err472= 0
|
||||
try
|
||||
@ -11969,6 +12019,8 @@ fun! s:NetrwLcd(newdir)
|
||||
return -1
|
||||
endif
|
||||
|
||||
" call Decho("getcwd <".getcwd().">")
|
||||
" call Decho("b:netrw_curdir<".b:netrw_curdir.">")
|
||||
" call Dret("s:NetrwLcd 0")
|
||||
return 0
|
||||
endfun
|
||||
|
@ -1,8 +1,8 @@
|
||||
" netrwFileHandlers: contains various extension-based file handlers for
|
||||
" netrw's browsers' x command ("eXecute launcher")
|
||||
" Author: Charles E. Campbell
|
||||
" Date: May 03, 2013
|
||||
" Version: 11b ASTRO-ONLY
|
||||
" Date: Sep 18, 2020
|
||||
" Version: 11
|
||||
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
@ -20,7 +20,7 @@
|
||||
if exists("g:loaded_netrwFileHandlers") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwFileHandlers= "v11b"
|
||||
let g:loaded_netrwFileHandlers= "v11"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
|
||||
|
@ -1,7 +1,8 @@
|
||||
"python3complete.vim - Omni Completion for python
|
||||
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||
" Maintainer: <vacancy>
|
||||
" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||
" Version: 0.9
|
||||
" Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian)
|
||||
" Last Updated: 2020 Oct 9
|
||||
"
|
||||
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
|
||||
"
|
||||
@ -83,7 +84,7 @@ function! python3complete#Complete(findstart, base)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
|
||||
execute "py3 vimpy3complete('" . escape(cword, "'") . "', '" . escape(a:base, "'") . "')"
|
||||
return g:python3complete_completions
|
||||
endif
|
||||
endfunction
|
||||
|
@ -1,7 +1,8 @@
|
||||
"pythoncomplete.vim - Omni Completion for python
|
||||
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||
" Maintainer: <vacancy>
|
||||
" Previous Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||
" Version: 0.9
|
||||
" Last Updated: 18 Jun 2009
|
||||
" Last Updated: 2020 Oct 9
|
||||
"
|
||||
" Changes
|
||||
" TODO:
|
||||
@ -81,7 +82,7 @@ function! pythoncomplete#Complete(findstart, base)
|
||||
break
|
||||
endif
|
||||
endwhile
|
||||
execute "python vimcomplete('" . cword . "', '" . a:base . "')"
|
||||
execute "python vimcomplete('" . escape(cword, "'") . "', '" . escape(a:base, "'") . "')"
|
||||
return g:pythoncomplete_completions
|
||||
endif
|
||||
endfunction
|
||||
|
@ -1,7 +1,7 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 30
|
||||
" Version: 31
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||
@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v30"
|
||||
let g:loaded_zip= "v31"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of zip needs vim 7.2 or later"
|
||||
@ -65,7 +65,7 @@ endif
|
||||
" zip#Browse: {{{2
|
||||
fun! zip#Browse(zipfile)
|
||||
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
|
||||
" sanity check: ensure that the zipfile has "PK" as its first two letters
|
||||
" sanity check: insure that the zipfile has "PK" as its first two letters
|
||||
" (zipped files have a leading PK as a "magic cookie")
|
||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
||||
exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
|
||||
|
@ -67,7 +67,7 @@ You can use ":highlight" to find out the current colors. Exception: the
|
||||
ctermfg and ctermbg values are numbers, which are only valid for the current
|
||||
terminal. Use the color names instead. See ":help cterm-colors".
|
||||
|
||||
The default color settings can be found in the source file src/syntax.c.
|
||||
The default color settings can be found in the source file src/highlight.c.
|
||||
Search for "highlight_init".
|
||||
|
||||
If you think you have a color scheme that is good enough to be used by others,
|
||||
|
@ -185,7 +185,7 @@ func! Test_check_colors()
|
||||
|
||||
" 9) Normal should be defined first, not use reverse, fg or bg
|
||||
call cursor(1,1)
|
||||
let pat = 'hi\%[light] \+\%(link\|clear\)\@!\w\+\>'
|
||||
let pat = 'hi\%[ghlight] \+\%(link\|clear\)\@!\w\+\>'
|
||||
call search(pat, 'cW') " Look for the first hi def, skipping `hi link` and `hi clear`
|
||||
if getline('.') !~# '\m\<Normal\>'
|
||||
let err['highlight']['Normal'] = 'Should be defined first'
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Checkstyle
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jun 26
|
||||
" Last Change: 2020 Aug 2
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -12,8 +12,18 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" sample error: WebTable.java:282: '+=' is not preceeded with whitespace.
|
||||
" WebTable.java:201:1: '{' should be on the previous line.
|
||||
CompilerSet errorformat=%f:%l:%v:\ %m,%f:%l:\ %m,%-G%.%#
|
||||
" CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain\ -c\ /sun_checks.xml
|
||||
" CompilerSet makeprg=java\ -jar\ checkstyle-X.XX-all.jar\ -f\ plain\ -c\ /sun_checks.xml
|
||||
|
||||
CompilerSet makeprg=checkstyle\ -f\ plain
|
||||
CompilerSet errorformat=[%tRROR]\ %f:%l:%v:\ %m,
|
||||
\[%tARN]\ %f:%l:%v:\ %m,
|
||||
\[%tRROR]\ %f:%l:\ %m,
|
||||
\[%tARN]\ %f:%l:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
26
runtime/compiler/dart.vim
Normal file
26
runtime/compiler/dart.vim
Normal file
@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart VM
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dart"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dart
|
||||
CompilerSet errorformat=%E%f:%l:%c:\ Error:\ %m,
|
||||
\%CTry\ %.%#,
|
||||
\%Z\ %#^%\\+,
|
||||
\%C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
28
runtime/compiler/dart2js.vim
Normal file
28
runtime/compiler/dart2js.vim
Normal file
@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart to JavaScript Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dart2js"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dart2js
|
||||
CompilerSet errorformat=%E%f:%l:%c:,
|
||||
\%-GError:\ Compilation\ failed.,
|
||||
\%CError:\ %m,
|
||||
\%Z\ %#^%\\+,
|
||||
\%C%.%#,
|
||||
\%trror:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
28
runtime/compiler/dart2native.vim
Normal file
28
runtime/compiler/dart2native.vim
Normal file
@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart to Native Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dart2native"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dart2native
|
||||
CompilerSet errorformat=%E%f:%l:%c:\ Error:\ %m,
|
||||
\%CTry\ %.%#,
|
||||
\%Z\ %#^%\\+,
|
||||
\%Z%$,
|
||||
\%C%.%#,
|
||||
\%E%f:\ %trror:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
23
runtime/compiler/dartanalyser.vim
Normal file
23
runtime/compiler/dartanalyser.vim
Normal file
@ -0,0 +1,23 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Analyzer
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartanalyzer"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartanalyzer\ --format\ machine
|
||||
CompilerSet errorformat=%t%\\w%\\+\|%\\w%\\+\|%\\w%\\+\|%f\|%l\|%c\|%\\d%\\+\|%m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
28
runtime/compiler/dartdevc.vim
Normal file
28
runtime/compiler/dartdevc.vim
Normal file
@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Development Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartdevc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartdevc
|
||||
CompilerSet errorformat=%E%f:%l:%c:\ Error:\ %m,
|
||||
\%CTry\ %.%#,
|
||||
\%Z\ %#^%\\+,
|
||||
\%Z%$,
|
||||
\%C%.%#,
|
||||
\%E%f:\ %trror:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
26
runtime/compiler/dartdoc.vim
Normal file
26
runtime/compiler/dartdoc.vim
Normal file
@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Documentation Generator
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartdoc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartdoc
|
||||
CompilerSet errorformat=\ \ %tarning:\ %m,
|
||||
\\ \ %trror:\ %m,
|
||||
\%+EGeneration\ failed:\ %m,
|
||||
\%+ISuccess!\ Docs\ generated\ into\ %f,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
25
runtime/compiler/dartfmt.vim
Normal file
25
runtime/compiler/dartfmt.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Dart Formatter
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 May 08
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "dartfmt"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=dartfmt
|
||||
CompilerSet errorformat=%Eline\ %l\\,\ column\ %c\ of\ %f:\ %m,
|
||||
\%Z\ %\\{3}│\ %\\+^%\\+,
|
||||
\%C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: ESLint for JavaScript
|
||||
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
|
||||
" Last Change: 2020 May 17
|
||||
" Last Change: 2020 August 20
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -12,5 +12,5 @@ if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=eslint\ --format\ compact
|
||||
CompilerSet makeprg=npx\ eslint\ --format\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#
|
||||
|
34
runtime/compiler/gawk.vim
Normal file
34
runtime/compiler/gawk.vim
Normal file
@ -0,0 +1,34 @@
|
||||
" Vim compiler file
|
||||
" Compiler: GNU Awk
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "gawk"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=gawk
|
||||
CompilerSet errorformat=%Z%.awk:\ %f:%l:\ %p^\ %m,
|
||||
\%Eg%\\=awk:\ %f:%l:\ fatal:\ %m,
|
||||
\%Egawk:\ %f:%l:\ error:\ %m,
|
||||
\%Wgawk:\ %f:%l:\ warning:\ %m,
|
||||
\%Egawk:\ %f:%l:\ %.%#,
|
||||
\gawk:\ %f:%l:\ %tatal:\ %m,
|
||||
\gawk:\ %f:%l:\ %trror:\ %m,
|
||||
\gawk:\ %f:%l:\ %tarning:\ %m,
|
||||
\gawk:\ %tatal:\ %m,
|
||||
\gawk:\ %trror:\ %m,
|
||||
\gawk:\ %tarning:\ %m,
|
||||
\%+C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
25
runtime/compiler/gjs.vim
Normal file
25
runtime/compiler/gjs.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: GJS (Gnome JavaScript Bindings)
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "gjs"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=gjs
|
||||
CompilerSet errorformat=%.%#JS\ %tRROR:\ %m\ @\ %f:%c,
|
||||
\%E%.%#JS\ ERROR:\ %m,
|
||||
\%Z@%f:%l:%c,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: javac
|
||||
" Compiler: Java Development Kit Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2004 Nov 27
|
||||
" Last Change: 2019 Oct 21
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -12,6 +12,15 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=javac
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet errorformat=%E%f:%l:\ %m,%-Z%p^,%-C%.%#,%-G%.%#
|
||||
CompilerSet makeprg=javac
|
||||
CompilerSet errorformat=%E%f:%l:\ error:\ %m,
|
||||
\%W%f:%l:\ warning:\ %m,
|
||||
\%-Z%p^,
|
||||
\%-C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
30
runtime/compiler/jest.vim
Normal file
30
runtime/compiler/jest.vim
Normal file
@ -0,0 +1,30 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Jest
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2018 May 15
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jest"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ jest\ --no-colors
|
||||
|
||||
CompilerSet makeprg=jest\ --no-colors
|
||||
CompilerSet errorformat=%E\ \ ●\ %m,
|
||||
\%Z\ %\\{4}%.%#Error:\ %f:\ %m\ (%l:%c):%\\=,
|
||||
\%Z\ %\\{6}at\ %\\S%#\ (%f:%l:%c),
|
||||
\%+C\ %\\{4}%\\w%.%#,
|
||||
\%+C\ %\\{4}%[-+]%.%#,
|
||||
\%-C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
24
runtime/compiler/jjs.vim
Normal file
24
runtime/compiler/jjs.vim
Normal file
@ -0,0 +1,24 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Nashorn Shell
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2018 Jan 9
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jjs"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=jjs
|
||||
CompilerSet errorformat=%f:%l:%c\ %m,
|
||||
\%f:%l\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
25
runtime/compiler/jshint.vim
Normal file
25
runtime/compiler/jshint.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: JSHint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jshint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ jshint\ --verbose
|
||||
|
||||
CompilerSet makeprg=jshint\ --verbose
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m\ (%t%n),
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
25
runtime/compiler/jsonlint.vim
Normal file
25
runtime/compiler/jsonlint.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: JSON Lint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "jsonlint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ jsonlint\ --compact\ --quiet
|
||||
|
||||
CompilerSet makeprg=jsonlint\ --compact\ --quiet
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ found:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
30
runtime/compiler/rhino.vim
Normal file
30
runtime/compiler/rhino.vim
Normal file
@ -0,0 +1,30 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Rhino Shell (JavaScript in Java)
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "rhino"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=java\ -jar\ lib/rhino-X.X.XX.jar\ -w\ -strict
|
||||
|
||||
CompilerSet makeprg=rhino
|
||||
CompilerSet errorformat=%-Gjs:\ %.%#Compilation\ produced%.%#,
|
||||
\%Ejs:\ \"%f\"\\,\ line\ %l:\ %m,
|
||||
\%Ejs:\ uncaught\ JavaScript\ runtime\ exception:\ %m,
|
||||
\%Wjs:\ warning:\ \"%f\"\\,\ line\ %l:\ %m,
|
||||
\%Zjs:\ %p^,
|
||||
\%Cjs:\ %.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
23
runtime/compiler/rubocop.vim
Normal file
23
runtime/compiler/rubocop.vim
Normal file
@ -0,0 +1,23 @@
|
||||
" Vim compiler file
|
||||
" Compiler: RuboCop
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "rubocop"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=rubocop\ --format\ emacs
|
||||
CompilerSet errorformat=%f:%l:%c:\ %t:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
25
runtime/compiler/shellcheck.vim
Normal file
25
runtime/compiler/shellcheck.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Vim compiler file
|
||||
" Compiler: ShellCheck
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Sep 4
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "shellcheck"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=shellcheck\ -f\ gcc
|
||||
CompilerSet errorformat=%f:%l:%c:\ %trror:\ %m\ [SC%n],
|
||||
\%f:%l:%c:\ %tarning:\ %m\ [SC%n],
|
||||
\%f:%l:%c:\ %tote:\ %m\ [SC%n],
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Standard for JavaScript
|
||||
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
|
||||
" Last Change: 2020 May 17
|
||||
" Last Change: 2020 August 20
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -12,5 +12,5 @@ if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=standard
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#
|
||||
CompilerSet makeprg=npx\ standard
|
||||
CompilerSet errorformat=%f:%l:%c:\ %m,%-G%.%#
|
||||
|
26
runtime/compiler/stylelint.vim
Normal file
26
runtime/compiler/stylelint.vim
Normal file
@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Stylelint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Jun 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "stylelint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ stylelint\ --formatter\ compact
|
||||
|
||||
CompilerSet makeprg=stylelint\ --formatter\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,
|
||||
\%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
29
runtime/compiler/ts-node.vim
Normal file
29
runtime/compiler/ts-node.vim
Normal file
@ -0,0 +1,29 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TypeScript Runner
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "node"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ ts-node
|
||||
|
||||
CompilerSet makeprg=ts-node
|
||||
CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m,
|
||||
\%E%f:%l,
|
||||
\%+Z%\\w%\\+Error:\ %.%#,
|
||||
\%C%p^%\\+,
|
||||
\%C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
26
runtime/compiler/tsc.vim
Normal file
26
runtime/compiler/tsc.vim
Normal file
@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TypeScript Compiler
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "tsc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ tsc
|
||||
|
||||
CompilerSet makeprg=tsc
|
||||
CompilerSet errorformat=%f\ %#(%l\\,%c):\ %trror\ TS%n:\ %m,
|
||||
\%trror\ TS%n:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
28
runtime/compiler/typedoc.vim
Normal file
28
runtime/compiler/typedoc.vim
Normal file
@ -0,0 +1,28 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TypeDoc
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2020 Feb 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "typedoc"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ typedoc
|
||||
|
||||
CompilerSet makeprg=typedoc
|
||||
CompilerSet errorformat=%EError:\ %f(%l),
|
||||
\%WWarning:\ %f(%l),
|
||||
\%+IDocumentation\ generated\ at\ %f,
|
||||
\%Z\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: xmllint
|
||||
" Compiler: Libxml2 Command-Line Tool
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jul 8
|
||||
" Last Change: 2020 Jul 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -13,14 +13,16 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet makeprg=xmllint\ --valid\ --noout
|
||||
|
||||
CompilerSet errorformat=%+E%f:%l:\ %.%#\ error\ :\ %m,
|
||||
\%+W%f:%l:\ %.%#\ warning\ :\ %m,
|
||||
\%-Z%p^,
|
||||
\%-G%.%#
|
||||
CompilerSet errorformat=%E%f:%l:\ %.%#\ error\ :\ %m,
|
||||
\%W%f:%l:\ %.%#\ warning\ :\ %m,
|
||||
\%-Z%p^,
|
||||
\%C%.%#,
|
||||
\%terror:\ %m,
|
||||
\%tarning:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
26
runtime/compiler/xo.vim
Normal file
26
runtime/compiler/xo.vim
Normal file
@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: XO
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2019 Jul 10
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "xo"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" CompilerSet makeprg=npx\ xo\ --reporter\ compact
|
||||
|
||||
CompilerSet makeprg=xo\ --reporter\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ %m,
|
||||
\%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,7 +1,7 @@
|
||||
" The default vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2019 Oct 27
|
||||
" Last change: 2020 Sep 30
|
||||
"
|
||||
" This is loaded if no vimrc file was found.
|
||||
" Except when Vim is run with "-u NONE" or "-C".
|
||||
@ -85,17 +85,6 @@ if has('mouse')
|
||||
endif
|
||||
endif
|
||||
|
||||
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||
" GUI (which always has colors).
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
" Revert with ":syntax off".
|
||||
syntax on
|
||||
|
||||
" I like highlighting strings inside C comments.
|
||||
" Revert with ":unlet c_comment_strings".
|
||||
let c_comment_strings=1
|
||||
endif
|
||||
|
||||
" Only do this part when Vim was compiled with the +eval feature.
|
||||
if 1
|
||||
|
||||
@ -124,6 +113,17 @@ if 1
|
||||
|
||||
endif
|
||||
|
||||
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||
" GUI (which always has colors).
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
" Revert with ":syntax off".
|
||||
syntax on
|
||||
|
||||
" I like highlighting strings inside C comments.
|
||||
" Revert with ":unlet c_comment_strings".
|
||||
let c_comment_strings=1
|
||||
endif
|
||||
|
||||
" Convenient command to see the difference between the current buffer and the
|
||||
" file it was loaded from, thus the changes you made.
|
||||
" Only define it when not defined already.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Oct 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -278,7 +278,7 @@ Name triggered by ~
|
||||
|BufWinLeave| before a buffer is removed from a window
|
||||
|
||||
|BufUnload| before unloading a buffer
|
||||
|BufHidden| just after a buffer has become hidden
|
||||
|BufHidden| just before a buffer becomes hidden
|
||||
|BufNew| just after creating a new buffer
|
||||
|
||||
|SwapExists| detected an existing swap file
|
||||
@ -551,12 +551,15 @@ CmdlineChanged After a change was made to the text in the
|
||||
*CmdlineEnter*
|
||||
CmdlineEnter After moving the cursor to the command line,
|
||||
where the user can type a command or search
|
||||
string.
|
||||
string; including non-interactive use of ":"
|
||||
in a mapping, but not when using |<Cmd>|.
|
||||
<afile> is set to a single character,
|
||||
indicating the type of command-line.
|
||||
|cmdwin-char|
|
||||
*CmdlineLeave*
|
||||
CmdlineLeave Before leaving the command line.
|
||||
CmdlineLeave Before leaving the command line; including
|
||||
non-interactive use of ":" in a mapping, but
|
||||
not when using |<Cmd>|.
|
||||
Also when abandoning the command line, after
|
||||
typing CTRL-C or <Esc>.
|
||||
When the commands result in an error the
|
||||
@ -631,7 +634,7 @@ CompleteDone After Insert mode completion is done. Either
|
||||
|
||||
*CursorHold*
|
||||
CursorHold When the user doesn't press a key for the time
|
||||
specified with 'updatetime'. Not re-triggered
|
||||
specified with 'updatetime'. Not triggered
|
||||
until the user has pressed a key (i.e. doesn't
|
||||
fire every 'updatetime' ms if you leave Vim to
|
||||
make some coffee. :) See |CursorHold-example|
|
||||
@ -881,9 +884,14 @@ InsertEnter Just before starting Insert mode. Also for
|
||||
The cursor is restored afterwards. If you do
|
||||
not want that set |v:char| to a non-empty
|
||||
string.
|
||||
*InsertLeavePre*
|
||||
InsertLeavePre Just before leaving Insert mode. Also when
|
||||
using CTRL-O |i_CTRL-O|. Be careful not to
|
||||
change mode or use `:normal`, it will likely
|
||||
cause trouble.
|
||||
*InsertLeave*
|
||||
InsertLeave When leaving Insert mode. Also when using
|
||||
CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.
|
||||
InsertLeave Just after leaving Insert mode. Also when
|
||||
using CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.
|
||||
*MenuPopup*
|
||||
MenuPopup Just before showing the popup menu (under the
|
||||
right mouse button). Useful for adjusting the
|
||||
@ -1425,8 +1433,8 @@ name!
|
||||
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
|
||||
this if there is still an autocommand using
|
||||
this group! You will get a warning if doing
|
||||
it anyway. when the group is the current group
|
||||
you will get error E936.
|
||||
it anyway. When the group is the current
|
||||
group you will get error E936.
|
||||
|
||||
To enter autocommands for a specific group, use this method:
|
||||
1. Select the group with ":augroup {name}".
|
||||
|
@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.2. Last change: 2020 Jun 04
|
||||
*change.txt* For Vim version 8.2. Last change: 2020 Nov 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -153,7 +153,7 @@ the 'joinspaces' option is on, these commands insert two spaces after a '.',
|
||||
'!' or '?' (but if 'cpoptions' includes the 'j' flag, they insert two spaces
|
||||
only after a '.').
|
||||
The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting
|
||||
spaces before and after a multi-byte character |fo-table|.
|
||||
spaces before and after a multibyte character |fo-table|.
|
||||
|
||||
The '[ mark is set at the end of the first line that was joined, '] at the end
|
||||
of the resulting line.
|
||||
@ -1680,11 +1680,11 @@ b Like 'v', but only auto-wrap if you enter a blank at or before
|
||||
l Long lines are not broken in insert mode: When a line was longer than
|
||||
'textwidth' when the insert command started, Vim does not
|
||||
automatically format it.
|
||||
m Also break at a multi-byte character above 255. This is useful for
|
||||
m Also break at a multibyte character above 255. This is useful for
|
||||
Asian text where every character is a word on its own.
|
||||
M When joining lines, don't insert a space before or after a multi-byte
|
||||
M When joining lines, don't insert a space before or after a multibyte
|
||||
character. Overrules the 'B' flag.
|
||||
B When joining lines, don't insert a space between two multi-byte
|
||||
B When joining lines, don't insert a space between two multibyte
|
||||
characters. Overruled by the 'M' flag.
|
||||
1 Don't break a line after a one-letter word. It's broken before it
|
||||
instead (if possible).
|
||||
@ -1801,7 +1801,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
|
||||
found here: |sort()|, |uniq()|.
|
||||
|
||||
*:sor* *:sort*
|
||||
:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
|
||||
:[range]sor[t][!] [b][f][i][l][n][o][r][u][x] [/{pattern}/]
|
||||
Sort lines in [range]. When no range is given all
|
||||
lines are sorted.
|
||||
|
||||
@ -1809,6 +1809,16 @@ found here: |sort()|, |uniq()|.
|
||||
|
||||
With [i] case is ignored.
|
||||
|
||||
With [l] sort uses the current collation locale.
|
||||
Implementation details: strcoll() is used to compare
|
||||
strings. See |:language| to check or set the collation
|
||||
locale. Example: >
|
||||
:language collate en_US.UTF-8
|
||||
:%sort l
|
||||
< |v:collate| can also used to check the current locale.
|
||||
Sorting using the locale typically ignores case.
|
||||
This does not work properly on Mac.
|
||||
|
||||
Options [n][f][x][o][b] are mutually exclusive.
|
||||
|
||||
With [n] sorting is done on the first decimal number
|
||||
@ -1875,8 +1885,7 @@ found here: |sort()|, |uniq()|.
|
||||
Note that using `:sort` with `:global` doesn't sort the matching lines, it's
|
||||
quite useless.
|
||||
|
||||
The details about sorting depend on the library function used. There is no
|
||||
guarantee that sorting obeys the current locale. You will have to try it out.
|
||||
`:sort` does not use the current locale unless the l flag is used.
|
||||
Vim does do a "stable" sort.
|
||||
|
||||
The sorting can be interrupted, but if you interrupt it too late in the
|
||||
|
@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*channel.txt* For Vim version 8.2. Last change: 2020 Oct 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -608,6 +608,10 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
|
||||
after every message, on Unix you can use "tail -f" to see what
|
||||
is going on in real time.
|
||||
|
||||
To enable the log very early, to see what is received from a
|
||||
terminal during startup, use |--cmd|: >
|
||||
vim --cmd "call ch_logfile('logfile', 'w')"
|
||||
<
|
||||
This function is not available in the |sandbox|.
|
||||
NOTE: the channel communication is stored in the file, be
|
||||
aware that this may contain confidential and privacy sensitive
|
||||
@ -961,6 +965,10 @@ job_status({job}) *job_status()* *E916*
|
||||
"fail", because a fork happens before the failure can be
|
||||
detected.
|
||||
|
||||
If in Vim9 script a variable is declared with type "job" but
|
||||
never assigned to, passing that variable to job_status()
|
||||
returns "fail".
|
||||
|
||||
If an exit callback was set with the "exit_cb" option and the
|
||||
job is now detected to be "dead" the callback will be invoked.
|
||||
|
||||
@ -1256,7 +1264,9 @@ After setting 'buftype' to "prompt" Vim does not automatically start Insert
|
||||
mode, use `:startinsert` if you want to enter Insert mode, so that the user
|
||||
can start typing a line.
|
||||
|
||||
The text of the prompt can be set with the |prompt_setprompt()| function.
|
||||
The text of the prompt can be set with the |prompt_setprompt()| function. If
|
||||
no prompt is set with |prompt_setprompt()|, "% " is used. You can get the
|
||||
effective prompt text for a buffer, with |prompt_getprompt()|.
|
||||
|
||||
The user can go to Normal mode and navigate through the buffer. This can be
|
||||
useful to see older output or copy text.
|
||||
@ -1282,7 +1292,7 @@ prompt. >
|
||||
" Send the text to a shell with Enter appended.
|
||||
call ch_sendraw(g:shell_job, a:text .. "\n")
|
||||
endfunc
|
||||
|
||||
|
||||
" Function handling output from the shell: Added above the prompt.
|
||||
func GotOutput(channel, msg)
|
||||
call append(line("$") - 1, "- " . a:msg)
|
||||
|
@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2020 Jul 26
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2020 Sep 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -797,7 +797,7 @@ three lines: >
|
||||
<
|
||||
|
||||
Visual Mode and Range *v_:*
|
||||
|
||||
*:star-visual-range*
|
||||
{Visual}: Starts a command-line with the Visual selected lines as a
|
||||
range. The code `:'<,'>` is used for this range, which makes
|
||||
it possible to select a similar line from the command-line
|
||||
@ -873,34 +873,37 @@ it, no matter how many backslashes.
|
||||
\\# \#
|
||||
Also see |`=|.
|
||||
|
||||
*:<cword>* *<cword>* *:<cWORD>* *<cWORD>*
|
||||
*:<cexpr>* *<cexpr>* *:<cfile>* *<cfile>*
|
||||
*:<afile>* *<afile>* *:<abuf>* *<abuf>*
|
||||
*:<amatch>* *<amatch>* *:<stack>* *<stack>*
|
||||
*:<sfile>* *<sfile>* *:<slnum>* *<slnum>*
|
||||
*:<sflnum>* *<sflnum>* *E499* *E500*
|
||||
*E499* *E500*
|
||||
Note: these are typed literally, they are not special keys!
|
||||
*:<cword>* *<cword>*
|
||||
<cword> is replaced with the word under the cursor (like |star|)
|
||||
*:<cWORD>* *<cWORD>*
|
||||
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
||||
*:<cexpr>* *<cexpr>*
|
||||
<cexpr> is replaced with the word under the cursor, including more
|
||||
to form a C expression. E.g., when the cursor is on "arg"
|
||||
of "ptr->arg" then the result is "ptr->arg"; when the
|
||||
cursor is on "]" of "list[idx]" then the result is
|
||||
"list[idx]". This is used for |v:beval_text|.
|
||||
*:<cfile>* *<cfile>*
|
||||
<cfile> is replaced with the path name under the cursor (like what
|
||||
|gf| uses)
|
||||
*:<afile>* *<afile>*
|
||||
<afile> When executing autocommands, is replaced with the file name
|
||||
of the buffer being manipulated, or the file for a read or
|
||||
write. *E495*
|
||||
*:<abuf>* *<abuf>*
|
||||
<abuf> When executing autocommands, is replaced with the currently
|
||||
effective buffer number (for ":r file" and ":so file" it is
|
||||
the current buffer, the file being read/sourced is not in a
|
||||
buffer). *E496*
|
||||
*:<amatch>* *<amatch>*
|
||||
<amatch> When executing autocommands, is replaced with the match for
|
||||
which this autocommand was executed. *E497*
|
||||
It differs from <afile> only when the file name isn't used
|
||||
to match with (for FileType, Syntax and SpellFileMissing
|
||||
events).
|
||||
*:<sfile>* *<sfile>*
|
||||
<sfile> When executing a ":source" command, is replaced with the
|
||||
file name of the sourced file. *E498*
|
||||
When executing a function, is replaced with the call stack,
|
||||
@ -908,18 +911,24 @@ Note: these are typed literally, they are not special keys!
|
||||
<stack> is preferred).
|
||||
Note that filename-modifiers are useless when <sfile> is
|
||||
not used inside a script.
|
||||
*:<stack>* *<stack>*
|
||||
<stack> is replaced with the call stack, using
|
||||
"function {function-name}[{lnum}]" for a function line
|
||||
and "script {file-name}[{lnum}]" for a script line, and
|
||||
".." in between items. E.g.:
|
||||
"function {function-name1}[{lnum}]..{function-name2}[{lnum}]"
|
||||
*:<slnum>* *<slnum>*
|
||||
<slnum> When executing a ":source" command, is replaced with the
|
||||
line number. *E842*
|
||||
When executing a function it's the line number relative to
|
||||
the start of the function.
|
||||
*:<sflnum>* *<sflnum>*
|
||||
<sflnum> When executing a script, is replaced with the line number.
|
||||
It differs from <slnum> in that <sflnum> is replaced with
|
||||
the script line number in any situation. *E961*
|
||||
*:<client>* *<client>*
|
||||
<client> is replaced with the {clinetid} of the last received
|
||||
message in |server2client()|
|
||||
|
||||
*filename-modifiers*
|
||||
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
|
||||
@ -1130,7 +1139,8 @@ CTRL-C Continue in Command-line mode. The command-line under the
|
||||
in Normal mode. There is no redraw, thus the window will
|
||||
remain visible.
|
||||
:quit Discard the command line and go back to Normal mode.
|
||||
":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
|
||||
":close", CTRL-W c, ":exit", ":xit" and CTRL-\ CTRL-N also
|
||||
work.
|
||||
:qall Quit Vim, unless there are changes in some buffer.
|
||||
:qall! Quit Vim, discarding changes to any buffer.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 8.2. Last change: 2020 Apr 13
|
||||
*develop.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -34,8 +34,8 @@ balance must be found between them.
|
||||
VIM IS... VI COMPATIBLE *design-compatible*
|
||||
|
||||
First of all, it should be possible to use Vim as a drop-in replacement for
|
||||
Vi. When the user wants to, he can use Vim in compatible mode and hardly
|
||||
notice any difference with the original Vi.
|
||||
Vi. When the user wants to, Vim can be used in compatible mode and hardly
|
||||
any differences with the original Vi will be noticed.
|
||||
|
||||
Exceptions:
|
||||
- We don't reproduce obvious Vi bugs in Vim.
|
||||
@ -473,7 +473,7 @@ available spell checking libraries and programs. Unfortunately, the result
|
||||
was that none of them provided sufficient capabilities to be used as the spell
|
||||
checking engine in Vim, for various reasons:
|
||||
|
||||
- Missing support for multi-byte encodings. At least UTF-8 must be supported,
|
||||
- Missing support for multibyte encodings. At least UTF-8 must be supported,
|
||||
so that more than one language can be used in the same file.
|
||||
Doing on-the-fly conversion is not always possible (would require iconv
|
||||
support).
|
||||
|
@ -921,6 +921,7 @@ char digraph hex dec official name ~
|
||||
‟ 9" 201F 8223 DOUBLE HIGH-REVERSED-9 QUOTATION MARK
|
||||
† /- 2020 8224 DAGGER
|
||||
‡ /= 2021 8225 DOUBLE DAGGER
|
||||
• oo 2022 8226 BULLET
|
||||
‥ .. 2025 8229 TWO DOT LEADER
|
||||
… ,. 2026 8230 HORIZONTAL ELLIPSIS
|
||||
‰ %0 2030 8240 PER MILLE SIGN
|
||||
|
@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 8.2. Last change: 2020 Jul 05
|
||||
*editing.txt* For Vim version 8.2. Last change: 2020 Oct 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -73,10 +73,14 @@ g CTRL-G Prints the current position of the cursor in five
|
||||
ways: Column, Line, Word, Character and Byte. If the
|
||||
number of Characters and Bytes is the same then the
|
||||
Character position is omitted.
|
||||
|
||||
If there are characters in the line that take more
|
||||
than one position on the screen (<Tab> or special
|
||||
character), both the "real" column and the screen
|
||||
column are shown, separated with a dash.
|
||||
character), or characters using more than one byte per
|
||||
column (characters above 0x7F when 'encoding' is
|
||||
utf-8), both the byte column and the screen column are
|
||||
shown, separated by a dash.
|
||||
|
||||
Also see the 'ruler' option and the |wordcount()|
|
||||
function.
|
||||
|
||||
@ -652,7 +656,7 @@ list of the current window.
|
||||
:args ## x
|
||||
< This will add the "x" item and sort the new list.
|
||||
|
||||
:argd[elete] {pattern} .. *:argd* *:argdelete* *E480*
|
||||
:argd[elete] {pattern} .. *:argd* *:argdelete* *E480* *E610*
|
||||
Delete files from the argument list that match the
|
||||
{pattern}s. {pattern} is used like a file pattern,
|
||||
see |file-pattern|. "%" can be used to delete the
|
||||
@ -662,7 +666,7 @@ list of the current window.
|
||||
Example: >
|
||||
:argdel *.obj
|
||||
|
||||
:[range]argd[elete] Delete the {range} files from the argument list.
|
||||
:[range]argd[elete] Delete the [range] files from the argument list.
|
||||
Example: >
|
||||
:10,$argdel
|
||||
< Deletes arguments 10 and further, keeping 1-9. >
|
||||
|
@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.2. Last change: 2020 Jul 21
|
||||
*eval.txt* For Vim version 8.2. Last change: 2020 Nov 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -120,8 +120,9 @@ base, use |str2nr()|.
|
||||
|
||||
*TRUE* *FALSE* *Boolean*
|
||||
For boolean operators Numbers are used. Zero is FALSE, non-zero is TRUE.
|
||||
You can also use |v:false| and |v:true|. When TRUE is returned from a
|
||||
function it is the Number one, FALSE is the number zero.
|
||||
You can also use |v:false| and |v:true|. In Vim9 script |false| and |true|.
|
||||
When TRUE is returned from a function it is the Number one, FALSE is the
|
||||
number zero.
|
||||
|
||||
Note that in the command: >
|
||||
:if "foo"
|
||||
@ -132,7 +133,27 @@ non-zero number it means TRUE: >
|
||||
:" executed
|
||||
To test for a non-empty string, use empty(): >
|
||||
:if !empty("foo")
|
||||
<
|
||||
|
||||
< *falsy* *truthy*
|
||||
An expression can be used as a condition, ignoring the type and only using
|
||||
whether the value is "sort of true" or "sort of false". Falsy is:
|
||||
the number zero
|
||||
empty string, blob, list or dictionary
|
||||
Other values are truthy. Examples:
|
||||
0 falsy
|
||||
1 truthy
|
||||
-1 truthy
|
||||
0.0 falsy
|
||||
0.1 truthy
|
||||
'' falsy
|
||||
'x' truthy
|
||||
[] falsy
|
||||
[0] truthy
|
||||
{} falsy
|
||||
#{x: 1} truthy
|
||||
0z falsy
|
||||
0z00 truthy
|
||||
|
||||
*non-zero-arg*
|
||||
Function arguments often behave slightly different from |TRUE|: If the
|
||||
argument is present and it evaluates to a non-zero Number, |v:true| or a
|
||||
@ -876,10 +897,13 @@ Example: >
|
||||
All expressions within one level are parsed from left to right.
|
||||
|
||||
|
||||
expr1 *expr1* *E109*
|
||||
expr1 *expr1* *trinary* *falsy-operator* *??* *E109*
|
||||
-----
|
||||
|
||||
expr2 ? expr1 : expr1
|
||||
The trinary operator: expr2 ? expr1 : expr1
|
||||
The falsy operator: expr2 ?? expr1
|
||||
|
||||
Trinary operator ~
|
||||
|
||||
The expression before the '?' is evaluated to a number. If it evaluates to
|
||||
|TRUE|, the result is the value of the expression between the '?' and ':',
|
||||
@ -902,6 +926,23 @@ To keep this readable, using |line-continuation| is suggested: >
|
||||
You should always put a space before the ':', otherwise it can be mistaken for
|
||||
use in a variable such as "a:1".
|
||||
|
||||
Falsy operator ~
|
||||
|
||||
This is also known as the "null coalescing operator", but that's too
|
||||
complicated, thus we just call it the falsy operator.
|
||||
|
||||
The expression before the '??' is evaluated. If it evaluates to
|
||||
|truthy|, this is used as the result. Otherwise the expression after the '??'
|
||||
is evaluated and used as the result. This is most useful to have a default
|
||||
value for an expression that may result in zero or empty: >
|
||||
echo theList ?? 'list is empty'
|
||||
echo GetName() ?? 'unknown'
|
||||
|
||||
These are similar, but not equal: >
|
||||
expr2 ?? expr1
|
||||
expr2 ? expr2 : expr1
|
||||
In the second line "expr2" is evaluated twice.
|
||||
|
||||
|
||||
expr2 and expr3 *expr2* *expr3*
|
||||
---------------
|
||||
@ -1131,19 +1172,25 @@ Evaluation is always from left to right.
|
||||
|
||||
expr8[expr1] item of String or |List| *expr-[]* *E111*
|
||||
*E909* *subscript*
|
||||
In legacy Vim script:
|
||||
If expr8 is a Number or String this results in a String that contains the
|
||||
expr1'th single byte from expr8. expr8 is used as a String, expr1 as a
|
||||
Number. This doesn't recognize multi-byte encodings, see `byteidx()` for
|
||||
an alternative, or use `split()` to turn the string into a list of characters.
|
||||
|
||||
Index zero gives the first byte. This is like it works in C. Careful:
|
||||
text column numbers start with one! Example, to get the byte under the
|
||||
cursor: >
|
||||
expr1'th single byte from expr8. expr8 is used as a String (a number is
|
||||
automatically converted to a String), expr1 as a Number. This doesn't
|
||||
recognize multibyte encodings, see `byteidx()` for an alternative, or use
|
||||
`split()` to turn the string into a list of characters. Example, to get the
|
||||
byte under the cursor: >
|
||||
:let c = getline(".")[col(".") - 1]
|
||||
|
||||
In Vim9 script:
|
||||
If expr8 is a String this results in a String that contains the expr1'th
|
||||
single character from expr8. To use byte indexes use |strpart()|.
|
||||
|
||||
Index zero gives the first byte or character. Careful: text column numbers
|
||||
start with one!
|
||||
|
||||
If the length of the String is less than the index, the result is an empty
|
||||
String. A negative index always results in an empty string (reason: backward
|
||||
compatibility). Use [-1:] to get the last byte.
|
||||
compatibility). Use [-1:] to get the last byte or character.
|
||||
|
||||
If expr8 is a |List| then it results the item at index expr1. See |list-index|
|
||||
for possible index values. If the index is out of range this results in an
|
||||
@ -1157,10 +1204,16 @@ error.
|
||||
|
||||
expr8[expr1a : expr1b] substring or sublist *expr-[:]*
|
||||
|
||||
If expr8 is a Number or String this results in the substring with the bytes
|
||||
from expr1a to and including expr1b. expr8 is used as a String, expr1a and
|
||||
expr1b are used as a Number. This doesn't recognize multi-byte encodings, see
|
||||
|byteidx()| for computing the indexes.
|
||||
If expr8 is a String this results in the substring with the bytes or
|
||||
characters from expr1a to and including expr1b. expr8 is used as a String,
|
||||
expr1a and expr1b are used as a Number.
|
||||
|
||||
In legacy Vim script the indexes are byte indexes. This doesn't recognize
|
||||
multibyte encodings, see |byteidx()| for computing the indexes. If expr8 is
|
||||
a Number it is first converted to a String.
|
||||
|
||||
In Vim9 script the indexes are character indexes. To use byte indexes use
|
||||
|strpart()|.
|
||||
|
||||
If expr1a is omitted zero is used. If expr1b is omitted the length of the
|
||||
string minus one is used.
|
||||
@ -1173,6 +1226,7 @@ expr1b is smaller than expr1a the result is an empty string.
|
||||
|
||||
Examples: >
|
||||
:let c = name[-1:] " last byte of a string
|
||||
:let c = name[0:-1] " the whole string
|
||||
:let c = name[-2:-2] " last but one byte of a string
|
||||
:let s = line(".")[4:] " from the fifth byte to the end
|
||||
:let s = s[:-3] " remove last two bytes
|
||||
@ -2347,7 +2401,7 @@ assert_equalfile({fname-one}, {fname-two} [, {msg}])
|
||||
Number assert file contents are equal
|
||||
assert_exception({error} [, {msg}])
|
||||
Number assert {error} is in v:exception
|
||||
assert_fails({cmd} [, {error} [, {msg}]])
|
||||
assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
||||
Number assert {cmd} fails
|
||||
assert_false({actual} [, {msg}])
|
||||
Number assert {actual} is false
|
||||
@ -2413,6 +2467,7 @@ ch_status({handle} [, {options}])
|
||||
String status of channel {handle}
|
||||
changenr() Number current change number
|
||||
char2nr({expr} [, {utf8}]) Number ASCII/UTF8 value of first char in {expr}
|
||||
charclass({string}) Number character class of {string}
|
||||
chdir({dir}) String change current working directory
|
||||
cindent({lnum}) Number C indent for line {lnum}
|
||||
clearmatches([{win}]) none clear all matches
|
||||
@ -2501,7 +2556,7 @@ getcmdtype() String return current command-line type
|
||||
getcmdwintype() String return current command-line window type
|
||||
getcompletion({pat}, {type} [, {filtered}])
|
||||
List list of cmdline completion matches
|
||||
getcurpos() List position of the cursor
|
||||
getcurpos([{winnr}]) List position of the cursor
|
||||
getcwd([{winnr} [, {tabnr}]]) String get the current working directory
|
||||
getenv({name}) String return environment variable
|
||||
getfontname([{name}]) String name of font being used
|
||||
@ -2533,6 +2588,7 @@ gettabvar({nr}, {varname} [, {def}])
|
||||
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
|
||||
any {name} in {winnr} in tab page {tabnr}
|
||||
gettagstack([{nr}]) Dict get the tag stack of window {nr}
|
||||
gettext({text}) String lookup translation of {text}
|
||||
getwininfo([{winid}]) List list of info about each window
|
||||
getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window
|
||||
getwinposx() Number X coord in pixels of the Vim window
|
||||
@ -2613,8 +2669,9 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]])
|
||||
rhs of mapping {name} in mode {mode}
|
||||
mapcheck({name} [, {mode} [, {abbr}]])
|
||||
String check for mappings matching {name}
|
||||
mapset({mode}, {abbr}, {dict})
|
||||
none restore mapping from |maparg()| result
|
||||
mapnew({expr1}, {expr2}) List/Dict like |map()| but creates a new List
|
||||
or Dictionary
|
||||
mapset({mode}, {abbr}, {dict}) none restore mapping from |maparg()| result
|
||||
match({expr}, {pat} [, {start} [, {count}]])
|
||||
Number position where {pat} matches in {expr}
|
||||
matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
|
||||
@ -2625,6 +2682,10 @@ matcharg({nr}) List arguments of |:match|
|
||||
matchdelete({id} [, {win}]) Number delete match identified by {id}
|
||||
matchend({expr}, {pat} [, {start} [, {count}]])
|
||||
Number position where {pat} ends in {expr}
|
||||
matchfuzzy({list}, {str} [, {dict}])
|
||||
List fuzzy match {str} in {list}
|
||||
matchfuzzypos({list}, {str} [, {dict}])
|
||||
List fuzzy match {str} in {list}
|
||||
matchlist({expr}, {pat} [, {start} [, {count}]])
|
||||
List match and submatches of {pat} in {expr}
|
||||
matchstr({expr}, {pat} [, {start} [, {count}]])
|
||||
@ -2641,7 +2702,7 @@ mzeval({expr}) any evaluate |MzScheme| expression
|
||||
nextnonblank({lnum}) Number line nr of non-blank line >= {lnum}
|
||||
nr2char({expr} [, {utf8}]) String single char with ASCII/UTF8 value {expr}
|
||||
or({expr}, {expr}) Number bitwise OR
|
||||
pathshorten({expr}) String shorten directory names in a path
|
||||
pathshorten({expr} [, {len}]) String shorten directory names in a path
|
||||
perleval({expr}) any evaluate |Perl| expression
|
||||
popup_atcursor({what}, {options}) Number create popup window near the cursor
|
||||
popup_beval({what}, {options}) Number create popup window for 'ballooneval'
|
||||
@ -2669,6 +2730,7 @@ popup_show({id}) none unhide popup window {id}
|
||||
pow({x}, {y}) Float {x} to the power of {y}
|
||||
prevnonblank({lnum}) Number line nr of non-blank line <= {lnum}
|
||||
printf({fmt}, {expr1}...) String format text
|
||||
prompt_getprompt({buf}) String get prompt text
|
||||
prompt_setcallback({buf}, {expr}) none set prompt callback function
|
||||
prompt_setinterrupt({buf}, {text}) none set prompt interrupt function
|
||||
prompt_setprompt({buf}, {text}) none set prompt text
|
||||
@ -2685,7 +2747,7 @@ prop_type_change({name}, {props})
|
||||
none change an existing property type
|
||||
prop_type_delete({name} [, {props}])
|
||||
none delete a property type
|
||||
prop_type_get([{name} [, {props}]])
|
||||
prop_type_get({name} [, {props}])
|
||||
Dict get property type values
|
||||
prop_type_list([{props}]) List get list of property types
|
||||
pum_getpos() Dict position and size of pum if visible
|
||||
@ -2756,6 +2818,7 @@ setbufline({expr}, {lnum}, {text})
|
||||
{expr}
|
||||
setbufvar({expr}, {varname}, {val})
|
||||
none set {varname} in buffer {expr} to {val}
|
||||
setcellwidths({list}) none set character cell width overrides
|
||||
setcharsearch({dict}) Dict set character search from {dict}
|
||||
setcmdpos({pos}) Number set cursor position in command-line
|
||||
setenv({name}, {val}) none set environment variable
|
||||
@ -2824,7 +2887,8 @@ str2list({expr} [, {utf8}]) List convert each character of {expr} to
|
||||
str2nr({expr} [, {base} [, {quoted}]])
|
||||
Number convert String to Number
|
||||
strcharpart({str}, {start} [, {len}])
|
||||
String {len} characters of {str} at {start}
|
||||
String {len} characters of {str} at
|
||||
character {start}
|
||||
strchars({expr} [, {skipcc}]) Number character length of the String {expr}
|
||||
strdisplaywidth({expr} [, {col}]) Number display length of the String {expr}
|
||||
strftime({format} [, {time}]) String format time with a specified format
|
||||
@ -2833,8 +2897,9 @@ stridx({haystack}, {needle} [, {start}])
|
||||
Number index of {needle} in {haystack}
|
||||
string({expr}) String String representation of {expr} value
|
||||
strlen({expr}) Number length of the String {expr}
|
||||
strpart({str}, {start} [, {len}])
|
||||
String {len} bytes of {str} at byte {start}
|
||||
strpart({str}, {start} [, {len} [, {chars}]])
|
||||
String {len} bytes/chars of {str} at
|
||||
byte {start}
|
||||
strptime({format}, {timestring})
|
||||
Number Convert {timestring} to unix timestamp
|
||||
strridx({haystack}, {needle} [, {start}])
|
||||
@ -3062,7 +3127,7 @@ appendbufline({expr}, {lnum}, {text}) *appendbufline()*
|
||||
error message is given. Example: >
|
||||
:let failed = appendbufline(13, 0, "# THE START")
|
||||
<
|
||||
< Can also be used as a |method| after a List, the base is
|
||||
Can also be used as a |method| after a List, the base is
|
||||
passed as the second argument: >
|
||||
mylist->appendbufline(buf, lnum)
|
||||
|
||||
@ -3343,7 +3408,7 @@ bufnr([{expr} [, {create}]])
|
||||
above.
|
||||
|
||||
If the buffer doesn't exist, -1 is returned. Or, if the
|
||||
{create} argument is present and not zero, a new, unlisted,
|
||||
{create} argument is present and TRUE, a new, unlisted,
|
||||
buffer is created and its number is returned. Example: >
|
||||
let newbuf = bufnr('Scratch001', 1)
|
||||
< Using an empty name uses the current buffer. To create a new
|
||||
@ -3406,7 +3471,8 @@ byte2line({byte}) *byte2line()*
|
||||
|
||||
byteidx({expr}, {nr}) *byteidx()*
|
||||
Return byte index of the {nr}'th character in the string
|
||||
{expr}. Use zero for the first character, it returns zero.
|
||||
{expr}. Use zero for the first character, it then returns
|
||||
zero.
|
||||
This function is only useful when there are multibyte
|
||||
characters, otherwise the returned value is equal to {nr}.
|
||||
Composing characters are not counted separately, their byte
|
||||
@ -3438,7 +3504,7 @@ byteidxcomp({expr}, {nr}) *byteidxcomp()*
|
||||
< The first and third echo result in 3 ('e' plus composing
|
||||
character is 3 bytes), the second echo results in 1 ('e' is
|
||||
one byte).
|
||||
Only works different from byteidx() when 'encoding' is set to
|
||||
Only works differently from byteidx() when 'encoding' is set to
|
||||
a Unicode encoding.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@ -3493,7 +3559,7 @@ char2nr({expr} [, {utf8}]) *char2nr()*
|
||||
Example for "utf-8": >
|
||||
char2nr("á") returns 225
|
||||
char2nr("á"[0]) returns 195
|
||||
< With {utf8} set to 1, always treat as utf-8 characters.
|
||||
< With {utf8} set to TRUE, always treat as utf-8 characters.
|
||||
A combining character is a separate character.
|
||||
|nr2char()| does the opposite.
|
||||
To turn a string into a list of character numbers: >
|
||||
@ -3504,6 +3570,18 @@ char2nr({expr} [, {utf8}]) *char2nr()*
|
||||
Can also be used as a |method|: >
|
||||
GetChar()->char2nr()
|
||||
|
||||
|
||||
charclass({string}) *charclass()*
|
||||
Return the character class of the first character in {string}.
|
||||
The character class is one of:
|
||||
0 blank
|
||||
1 punctuation
|
||||
2 word character
|
||||
3 emoji
|
||||
other specific Unicode class
|
||||
The class is used in patterns and word motions.
|
||||
|
||||
|
||||
chdir({dir}) *chdir()*
|
||||
Change the current working directory to {dir}. The scope of
|
||||
the directory change depends on the directory of the current
|
||||
@ -3721,7 +3799,7 @@ confirm({msg} [, {choices} [, {default} [, {type}]]])
|
||||
not need to be the first letter: >
|
||||
confirm("file has been modified", "&Save\nSave &All")
|
||||
< For the console, the first letter of each choice is used as
|
||||
the default shortcut key.
|
||||
the default shortcut key. Case is ignored.
|
||||
|
||||
The optional {default} argument is the number of the choice
|
||||
that is made if the user hits <CR>. Use 1 to make the first
|
||||
@ -4268,11 +4346,15 @@ expand({expr} [, {nosuf} [, {list}]]) *expand()*
|
||||
<afile> autocmd file name
|
||||
<abuf> autocmd buffer number (as a String!)
|
||||
<amatch> autocmd matched name
|
||||
<cexpr> C expression under the cursor
|
||||
<sfile> sourced script file or function name
|
||||
<slnum> sourced script line number or function
|
||||
line number
|
||||
<sflnum> script file line number, also when in
|
||||
a function
|
||||
<SID> "<SNR>123_" where "123" is the
|
||||
current script ID |<SID>|
|
||||
<stack> call stack
|
||||
<cword> word under the cursor
|
||||
<cWORD> WORD under the cursor
|
||||
<client> the {clientid} of the last received
|
||||
@ -4346,10 +4428,10 @@ extend({expr1}, {expr2} [, {expr3}]) *extend()*
|
||||
|Dictionaries|.
|
||||
|
||||
If they are |Lists|: Append {expr2} to {expr1}.
|
||||
If {expr3} is given insert the items of {expr2} before item
|
||||
{expr3} in {expr1}. When {expr3} is zero insert before the
|
||||
first item. When {expr3} is equal to len({expr1}) then
|
||||
{expr2} is appended.
|
||||
If {expr3} is given insert the items of {expr2} before the
|
||||
item with index {expr3} in {expr1}. When {expr3} is zero
|
||||
insert before the first item. When {expr3} is equal to
|
||||
len({expr1}) then {expr2} is appended.
|
||||
Examples: >
|
||||
:echo sort(extend(mylist, [7, 5]))
|
||||
:call extend(mylist, [2, 3], 1)
|
||||
@ -4893,31 +4975,32 @@ getbufinfo([{dict}])
|
||||
|
||||
Each returned List item is a dictionary with the following
|
||||
entries:
|
||||
bufnr buffer number.
|
||||
bufnr Buffer number.
|
||||
changed TRUE if the buffer is modified.
|
||||
changedtick number of changes made to the buffer.
|
||||
changedtick Number of changes made to the buffer.
|
||||
hidden TRUE if the buffer is hidden.
|
||||
lastused timestamp in seconds, like
|
||||
lastused Timestamp in seconds, like
|
||||
|localtime()|, when the buffer was
|
||||
last used.
|
||||
{only with the |+viminfo| feature}
|
||||
listed TRUE if the buffer is listed.
|
||||
lnum current line number in buffer.
|
||||
linecount number of lines in the buffer (only
|
||||
lnum Line number used for the buffer when
|
||||
opened in the current window.
|
||||
linecount Number of lines in the buffer (only
|
||||
valid when loaded)
|
||||
loaded TRUE if the buffer is loaded.
|
||||
name full path to the file in the buffer.
|
||||
signs list of signs placed in the buffer.
|
||||
name Full path to the file in the buffer.
|
||||
signs List of signs placed in the buffer.
|
||||
Each list item is a dictionary with
|
||||
the following fields:
|
||||
id sign identifier
|
||||
lnum line number
|
||||
name sign name
|
||||
variables a reference to the dictionary with
|
||||
variables A reference to the dictionary with
|
||||
buffer-local variables.
|
||||
windows list of |window-ID|s that display this
|
||||
windows List of |window-ID|s that display this
|
||||
buffer
|
||||
popups list of popup |window-ID|s that
|
||||
popups List of popup |window-ID|s that
|
||||
display this buffer
|
||||
|
||||
Examples: >
|
||||
@ -5219,13 +5302,20 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
||||
GetPattern()->getcompletion('color')
|
||||
<
|
||||
*getcurpos()*
|
||||
getcurpos() Get the position of the cursor. This is like getpos('.'), but
|
||||
getcurpos([{winid}])
|
||||
Get the position of the cursor. This is like getpos('.'), but
|
||||
includes an extra "curswant" item in the list:
|
||||
[0, lnum, col, off, curswant] ~
|
||||
The "curswant" number is the preferred column when moving the
|
||||
cursor vertically. Also see |getpos()|.
|
||||
The first "bufnum" item is always zero.
|
||||
|
||||
The optional {winid} argument can specify the window. It can
|
||||
be the window number or the |window-ID|. The last known
|
||||
cursor position is returned, this may be invalid for the
|
||||
current value of the buffer if it is not the current window.
|
||||
If {winid} is invalid a list with zeroes is returned.
|
||||
|
||||
This can be used to save and restore the cursor position: >
|
||||
let save_cursor = getcurpos()
|
||||
MoveTheCursorAround
|
||||
@ -5436,15 +5526,16 @@ getloclist({nr} [, {what}]) *getloclist()*
|
||||
|location-list-file-window| for more
|
||||
details.
|
||||
|
||||
Returns an empty Dictionary if there is no location list for
|
||||
the window {nr} or the window is not present.
|
||||
Returns a Dictionary with default values if there is no location
|
||||
list for the window {nr}.
|
||||
Returns an empty Dictionary if window {nr} does not exist.
|
||||
|
||||
Examples (See also |getqflist-examples|): >
|
||||
:echo getloclist(3, {'all': 0})
|
||||
:echo getloclist(5, {'filewinid': 0})
|
||||
|
||||
|
||||
getmarklist([{expr}] *getmarklist()*
|
||||
getmarklist([{expr}]) *getmarklist()*
|
||||
Without the {expr} argument returns a |List| with information
|
||||
about all the global marks. |mark|
|
||||
|
||||
@ -5452,7 +5543,7 @@ getmarklist([{expr}] *getmarklist()*
|
||||
local marks defined in buffer {expr}. For the use of {expr},
|
||||
see |bufname()|.
|
||||
|
||||
Each item in the retuned List is a |Dict| with the following:
|
||||
Each item in the returned List is a |Dict| with the following:
|
||||
name - name of the mark prefixed by "'"
|
||||
pos - a |List| with the position of the mark:
|
||||
[bufnum, lnum, col, off]
|
||||
@ -5689,6 +5780,7 @@ getreginfo([{regname}]) *getreginfo()*
|
||||
If {regname} is invalid or not set, an empty Dictionary
|
||||
will be returned.
|
||||
If {regname} is not specified, |v:register| is used.
|
||||
The returned Dictionary can be passed to |setreg()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetRegname()->getreginfo()
|
||||
@ -5795,6 +5887,19 @@ gettagstack([{nr}]) *gettagstack()*
|
||||
Can also be used as a |method|: >
|
||||
GetWinnr()->gettagstack()
|
||||
|
||||
|
||||
gettext({text}) *gettext()*
|
||||
Translate {text} if possible.
|
||||
This is mainly for use in the distributed Vim scripts. When
|
||||
generating message translations the {text} is extracted by
|
||||
xgettext, the translator can add the translated message in the
|
||||
.po file and Vim will lookup the translation when gettext() is
|
||||
called.
|
||||
For {text} double quoted strings are preferred, because
|
||||
xgettext does not understand escaping in single quoted
|
||||
strings.
|
||||
|
||||
|
||||
getwininfo([{winid}]) *getwininfo()*
|
||||
Returns information about windows as a |List| with Dictionaries.
|
||||
|
||||
@ -5983,7 +6088,7 @@ has({feature} [, {check}])
|
||||
zero otherwise. This is useful to check for a typo in
|
||||
{feature} and to detect dead code. Keep in mind that an older
|
||||
Vim version will not know about a feature added later and
|
||||
features that have been abandoned will not be know by the
|
||||
features that have been abandoned will not be known by the
|
||||
current Vim version.
|
||||
|
||||
Also see |exists()|.
|
||||
@ -6883,9 +6988,14 @@ luaeval({expr} [, {expr}]) *luaeval()*
|
||||
< {only available when compiled with the |+lua| feature}
|
||||
|
||||
map({expr1}, {expr2}) *map()*
|
||||
{expr1} must be a |List| or a |Dictionary|.
|
||||
{expr1} must be a |List|, |Blob| or |Dictionary|.
|
||||
Replace each item in {expr1} with the result of evaluating
|
||||
{expr2}. {expr2} must be a |string| or |Funcref|.
|
||||
{expr2}. For a |Blob| each byte is replaced.
|
||||
If the item type changes you may want to use |mapnew()| to
|
||||
create a new List or Dictionary. This is required when using
|
||||
Vim9 script.
|
||||
|
||||
{expr2} must be a |string| or |Funcref|.
|
||||
|
||||
If {expr2} is a |string|, inside {expr2} |v:val| has the value
|
||||
of the current item. For a |Dictionary| |v:key| has the key
|
||||
@ -6920,11 +7030,11 @@ map({expr1}, {expr2}) *map()*
|
||||
|Dictionary| to remain unmodified make a copy first: >
|
||||
:let tlist = map(copy(mylist), ' v:val . "\t"')
|
||||
|
||||
< Returns {expr1}, the |List| or |Dictionary| that was filtered.
|
||||
When an error is encountered while evaluating {expr2} no
|
||||
further items in {expr1} are processed. When {expr2} is a
|
||||
Funcref errors inside a function are ignored, unless it was
|
||||
defined with the "abort" flag.
|
||||
< Returns {expr1}, the |List|, |Blob| or |Dictionary| that was
|
||||
filtered. When an error is encountered while evaluating
|
||||
{expr2} no further items in {expr1} are processed. When
|
||||
{expr2} is a Funcref errors inside a function are ignored,
|
||||
unless it was defined with the "abort" flag.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
mylist->map(expr2)
|
||||
@ -7033,7 +7143,13 @@ mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()*
|
||||
GetKey()->mapcheck('n')
|
||||
|
||||
|
||||
mapset({mode}, {abbr}, {dict}) *mapset()*
|
||||
mapnew({expr1}, {expr2}) *mapnew()*
|
||||
Like |map()| but instead of replacing items in {expr1} a new
|
||||
List or Dictionary is created and returned. {expr1} remains
|
||||
unchanged.
|
||||
|
||||
|
||||
mapset({mode}, {abbr}, {dict}) *mapset()*
|
||||
Restore a mapping from a dictionary returned by |maparg()|.
|
||||
{mode} and {abbr} should be the same as for the call to
|
||||
|maparg()|. *E460*
|
||||
@ -7257,6 +7373,82 @@ matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
|
||||
Can also be used as a |method|: >
|
||||
GetText()->matchend('word')
|
||||
|
||||
|
||||
matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
||||
If {list} is a list of strings, then returns a list with all
|
||||
the strings in {list} that fuzzy match {str}. The strings in
|
||||
the returned list are sorted based on the matching score.
|
||||
|
||||
The optional {dict} argument always supports the following
|
||||
items:
|
||||
matchseq When this item is present and {str} contains
|
||||
multiple words separated by white space, then
|
||||
returns only matches that contain the words in
|
||||
the given sequence.
|
||||
|
||||
If {list} is a list of dictionaries, then the optional {dict}
|
||||
argument supports the following additional items:
|
||||
key key of the item which is fuzzy matched against
|
||||
{str}. The value of this item should be a
|
||||
string.
|
||||
text_cb |Funcref| that will be called for every item
|
||||
in {list} to get the text for fuzzy matching.
|
||||
This should accept a dictionary item as the
|
||||
argument and return the text for that item to
|
||||
use for fuzzy matching.
|
||||
|
||||
{str} is treated as a literal string and regular expression
|
||||
matching is NOT supported. The maximum supported {str} length
|
||||
is 256.
|
||||
|
||||
When {str} has multiple words each separated by white space,
|
||||
then the list of strings that have all the words is returned.
|
||||
|
||||
If there are no matching strings or there is an error, then an
|
||||
empty list is returned. If length of {str} is greater than
|
||||
256, then returns an empty list.
|
||||
|
||||
Example: >
|
||||
:echo matchfuzzy(["clay", "crow"], "cay")
|
||||
< results in ["clay"]. >
|
||||
:echo getbufinfo()->map({_, v -> v.name})->matchfuzzy("ndl")
|
||||
< results in a list of buffer names fuzzy matching "ndl". >
|
||||
:echo getbufinfo()->matchfuzzy("ndl", {'key' : 'name'})
|
||||
< results in a list of buffer information dicts with buffer
|
||||
names fuzzy matching "ndl". >
|
||||
:echo getbufinfo()->matchfuzzy("spl",
|
||||
\ {'text_cb' : {v -> v.name}})
|
||||
< results in a list of buffer information dicts with buffer
|
||||
names fuzzy matching "spl". >
|
||||
:echo v:oldfiles->matchfuzzy("test")
|
||||
< results in a list of file names fuzzy matching "test". >
|
||||
:let l = readfile("buffer.c")->matchfuzzy("str")
|
||||
< results in a list of lines in "buffer.c" fuzzy matching "str". >
|
||||
:echo ['one two', 'two one']->matchfuzzy('two one')
|
||||
< results in ['two one', 'one two']. >
|
||||
:echo ['one two', 'two one']->matchfuzzy('two one',
|
||||
\ {'matchseq': 1})
|
||||
< results in ['two one'].
|
||||
|
||||
matchfuzzypos({list}, {str} [, {dict}]) *matchfuzzypos()*
|
||||
Same as |matchfuzzy()|, but returns the list of matched
|
||||
strings and the list of character positions where characters
|
||||
in {str} matches.
|
||||
|
||||
If {str} matches multiple times in a string, then only the
|
||||
positions for the best match is returned.
|
||||
|
||||
If there are no matching strings or there is an error, then a
|
||||
list with two empty list items is returned.
|
||||
|
||||
Example: >
|
||||
:echo matchfuzzypos(['testing'], 'tsg')
|
||||
< results in [['testing'], [[0, 2, 6]]] >
|
||||
:echo matchfuzzypos(['clay', 'lacy'], 'la')
|
||||
< results in [['lacy', 'clay'], [[0, 1], [1, 2]]] >
|
||||
:echo [{'text': 'hello', 'id' : 10}]->matchfuzzypos('ll', {'key' : 'text'})
|
||||
< results in [{'id': 10, 'text': 'hello'}] [[2, 3]]
|
||||
|
||||
matchlist({expr}, {pat} [, {start} [, {count}]]) *matchlist()*
|
||||
Same as |match()|, but return a |List|. The first item in the
|
||||
list is the matched string, same as what matchstr() would
|
||||
@ -7531,13 +7723,17 @@ or({expr}, {expr}) *or()*
|
||||
:let bits = bits->or(0x80)
|
||||
|
||||
|
||||
pathshorten({expr}) *pathshorten()*
|
||||
pathshorten({expr} [, {len}]) *pathshorten()*
|
||||
Shorten directory names in the path {expr} and return the
|
||||
result. The tail, the file name, is kept as-is. The other
|
||||
components in the path are reduced to single letters. Leading
|
||||
'~' and '.' characters are kept. Example: >
|
||||
components in the path are reduced to {len} letters in length.
|
||||
If {len} is omitted or smaller than 1 then 1 is used (single
|
||||
letters). Leading '~' and '.' characters are kept. Examples: >
|
||||
:echo pathshorten('~/.vim/autoload/myfile.vim')
|
||||
< ~/.v/a/myfile.vim ~
|
||||
>
|
||||
:echo pathshorten('~/.vim/autoload/myfile.vim', 2)
|
||||
< ~/.vi/au/myfile.vim ~
|
||||
It doesn't matter if the path exists or not.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@ -7559,7 +7755,7 @@ perleval({expr}) *perleval()*
|
||||
< {only available when compiled with the |+perl| feature}
|
||||
|
||||
|
||||
popup_ functions are documented here: |popup-functions|.
|
||||
popup_ functions are documented here: |popup-functions|
|
||||
|
||||
|
||||
pow({x}, {y}) *pow()*
|
||||
@ -7787,6 +7983,17 @@ printf({fmt}, {expr1} ...) *printf()*
|
||||
arguments an error is given. Up to 18 arguments can be used.
|
||||
|
||||
|
||||
prompt_getprompt({buf}) *prompt_getprompt()*
|
||||
Returns the effective prompt text for buffer {buf}. {buf} can
|
||||
be a buffer name or number. See |prompt-buffer|.
|
||||
|
||||
If the buffer doesn't exist or isn't a prompt buffer, an empty
|
||||
string is returned.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_getprompt()
|
||||
|
||||
|
||||
prompt_setcallback({buf}, {expr}) *prompt_setcallback()*
|
||||
Set prompt callback for buffer {buf} to {expr}. When {expr}
|
||||
is an empty string the callback is removed. This has only
|
||||
@ -7842,7 +8049,7 @@ prompt_setprompt({buf}, {text}) *prompt_setprompt()*
|
||||
Can also be used as a |method|: >
|
||||
GetBuffer()->prompt_setprompt('command: ')
|
||||
|
||||
prop_ functions are documented here: |text-prop-functions|.
|
||||
prop_ functions are documented here: |text-prop-functions|
|
||||
|
||||
pum_getpos() *pum_getpos()*
|
||||
If the popup menu (see |ins-completion-menu|) is not visible,
|
||||
@ -8124,15 +8331,18 @@ reg_recording() *reg_recording()*
|
||||
Returns an empty string when not recording. See |q|.
|
||||
|
||||
reltime([{start} [, {end}]]) *reltime()*
|
||||
Return an item that represents a time value. The format of
|
||||
the item depends on the system. It can be passed to
|
||||
|reltimestr()| to convert it to a string or |reltimefloat()|
|
||||
to convert to a Float.
|
||||
Without an argument it returns the current time.
|
||||
Return an item that represents a time value. The item is a
|
||||
list with items that depend on the system. In Vim 9 script
|
||||
list<any> can be used.
|
||||
The item can be passed to |reltimestr()| to convert it to a
|
||||
string or |reltimefloat()| to convert to a Float.
|
||||
|
||||
Without an argument reltime() returns the current time.
|
||||
With one argument is returns the time passed since the time
|
||||
specified in the argument.
|
||||
With two arguments it returns the time passed between {start}
|
||||
and {end}.
|
||||
|
||||
The {start} and {end} arguments must be values returned by
|
||||
reltime().
|
||||
|
||||
@ -8450,6 +8660,7 @@ screencol() *screencol()*
|
||||
the following mappings: >
|
||||
nnoremap <expr> GG ":echom ".screencol()."\n"
|
||||
nnoremap <silent> GG :echom screencol()<CR>
|
||||
nnoremap GG <Cmd>echom screencol()<CR>
|
||||
<
|
||||
screenpos({winid}, {lnum}, {col}) *screenpos()*
|
||||
The result is a Dict with the screen position of the text
|
||||
@ -8707,7 +8918,8 @@ searchcount([{options}]) *searchcount()*
|
||||
pos |List| `[lnum, col, off]` value
|
||||
when recomputing the result.
|
||||
this changes "current" result
|
||||
value. see |cursor()|, |getpos()
|
||||
value. see |cursor()|,
|
||||
|getpos()|
|
||||
(default: cursor's position)
|
||||
|
||||
|
||||
@ -8918,6 +9130,31 @@ setbufvar({expr}, {varname}, {val}) *setbufvar()*
|
||||
third argument: >
|
||||
GetValue()->setbufvar(buf, varname)
|
||||
|
||||
|
||||
setcellwidths({list}) *setcellwidths()*
|
||||
Specify overrides for cell widths of character ranges. This
|
||||
tells Vim how wide characters are, counted in screen cells.
|
||||
This overrides 'ambiwidth'. Example: >
|
||||
setcellwidths([[0xad, 0xad, 1],
|
||||
\ [0x2194, 0x2199, 2]])
|
||||
|
||||
< *E1109* *E1110* *E1111* *E1112* *E1113*
|
||||
The {list} argument is a list of lists with each three
|
||||
numbers. These three numbers are [low, high, width]. "low"
|
||||
and "high" can be the same, in which case this refers to one
|
||||
character. Otherwise it is the range of characters from "low"
|
||||
to "high" (inclusive). "width" is either 1 or 2, indicating
|
||||
the character width in screen cells.
|
||||
An error is given if the argument is invalid, also when a
|
||||
range overlaps with another.
|
||||
Only characters with value 0x100 and higher can be used.
|
||||
|
||||
To clear the overrides pass an empty list: >
|
||||
setcellwidths([]);
|
||||
< You can use the script $VIMRUNTIME/tools/emoji_list.vim to see
|
||||
the effect for known emoji characters.
|
||||
|
||||
|
||||
setcharsearch({dict}) *setcharsearch()*
|
||||
Set the current character search information to {dict},
|
||||
which contains one or more of the following entries:
|
||||
@ -9109,7 +9346,7 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
||||
argument is ignored. See below for the supported items in
|
||||
{what}.
|
||||
*setqflist-what*
|
||||
When {what} is not present, the items in {list} or used. Each
|
||||
When {what} is not present, the items in {list} are used. Each
|
||||
item must be a dictionary. Non-dictionary items in {list} are
|
||||
ignored. Each dictionary item can contain the following
|
||||
entries:
|
||||
@ -9330,7 +9567,7 @@ settagstack({nr}, {dict} [, {action}]) *settagstack()*
|
||||
|
||||
Returns zero for success, -1 for failure.
|
||||
|
||||
Examples (for more examples see |tagstack-examples||):
|
||||
Examples (for more examples see |tagstack-examples|):
|
||||
Empty the tag stack of window 3: >
|
||||
call settagstack(3, {'items' : []})
|
||||
|
||||
@ -9479,8 +9716,25 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
|
||||
When {func} is given and it is '1' or 'i' then case is
|
||||
ignored.
|
||||
|
||||
When {func} is given and it is 'l' then the current collation
|
||||
locale is used for ordering. Implementation details: strcoll()
|
||||
is used to compare strings. See |:language| check or set the
|
||||
collation locale. |v:collate| can also be used to check the
|
||||
current locale. Sorting using the locale typically ignores
|
||||
case. Example: >
|
||||
" ö is sorted similarly to o with English locale.
|
||||
:language collate en_US.UTF8
|
||||
:echo sort(['n', 'o', 'O', 'ö', 'p', 'z'], 'l')
|
||||
< ['n', 'o', 'O', 'ö', 'p', 'z'] ~
|
||||
>
|
||||
" ö is sorted after z with Swedish locale.
|
||||
:language collate sv_SE.UTF8
|
||||
:echo sort(['n', 'o', 'O', 'ö', 'p', 'z'], 'l')
|
||||
< ['n', 'o', 'O', 'p', 'z', 'ö'] ~
|
||||
This does not work properly on Mac.
|
||||
|
||||
When {func} is given and it is 'n' then all items will be
|
||||
sorted numerical (Implementation detail: This uses the
|
||||
sorted numerical (Implementation detail: this uses the
|
||||
strtod() function to parse numbers, Strings, Lists, Dicts and
|
||||
Funcrefs will be considered as being 0).
|
||||
|
||||
@ -9932,17 +10186,22 @@ strlen({expr}) The result is a Number, which is the length of the String
|
||||
{expr} in bytes.
|
||||
If the argument is a Number it is first converted to a String.
|
||||
For other types an error is given.
|
||||
If you want to count the number of multi-byte characters use
|
||||
If you want to count the number of multibyte characters use
|
||||
|strchars()|.
|
||||
Also see |len()|, |strdisplaywidth()| and |strwidth()|.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetString()->strlen()
|
||||
|
||||
strpart({src}, {start} [, {len}]) *strpart()*
|
||||
strpart({src}, {start} [, {len} [, {chars}]]) *strpart()*
|
||||
The result is a String, which is part of {src}, starting from
|
||||
byte {start}, with the byte length {len}.
|
||||
To count characters instead of bytes use |strcharpart()|.
|
||||
When {chars} is present and TRUE then {len} is the number of
|
||||
characters positions (composing characters are not counted
|
||||
separately, thus "1" means one base character and any
|
||||
following composing characters).
|
||||
To count {start} as characters instead of bytes use
|
||||
|strcharpart()|.
|
||||
|
||||
When bytes are selected which do not exist, this doesn't
|
||||
result in an error, the bytes are simply omitted.
|
||||
@ -9954,8 +10213,8 @@ strpart({src}, {start} [, {len}]) *strpart()*
|
||||
strpart("abcdefg", 3) == "defg"
|
||||
|
||||
< Note: To get the first character, {start} must be 0. For
|
||||
example, to get three bytes under and after the cursor: >
|
||||
strpart(getline("."), col(".") - 1, 3)
|
||||
example, to get the character under the cursor: >
|
||||
strpart(getline("."), col(".") - 1, 1, v:true)
|
||||
<
|
||||
Can also be used as a |method|: >
|
||||
GetText()->strpart(5)
|
||||
@ -10130,7 +10389,7 @@ swapname({expr}) *swapname()*
|
||||
The result is the swap file path of the buffer {expr}.
|
||||
For the use of {expr}, see |bufname()| above.
|
||||
If buffer {expr} is the current buffer, the result is equal to
|
||||
|:swapname| (unless no swap file).
|
||||
|:swapname| (unless there is no swap file).
|
||||
If buffer {expr} has no swap file, returns an empty string.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
@ -10177,7 +10436,9 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
|
||||
"bg" background color (as with "fg")
|
||||
"font" font name (only available in the GUI)
|
||||
|highlight-font|
|
||||
"sp" special color (as with "fg") |highlight-guisp|
|
||||
"sp" special color for the GUI (as with "fg")
|
||||
|highlight-guisp|
|
||||
"ul" underline color for cterm: number as a string
|
||||
"fg#" like "fg", but for the GUI and the GUI is
|
||||
running the name in "#RRGGBB" form
|
||||
"bg#" like "fg#" for "bg"
|
||||
@ -10353,8 +10614,13 @@ tabpagebuflist([{arg}]) *tabpagebuflist()*
|
||||
tabpagenr([{arg}]) *tabpagenr()*
|
||||
The result is a Number, which is the number of the current
|
||||
tab page. The first tab page has number 1.
|
||||
When the optional argument is "$", the number of the last tab
|
||||
page is returned (the tab page count).
|
||||
|
||||
The optional argument {arg} supports the following values:
|
||||
$ the number of the last tab page (the tab page
|
||||
count).
|
||||
# the number of the last accessed tab page
|
||||
(where |g<Tab>| goes to). if there is no
|
||||
previous tab page 0 is returned.
|
||||
The number can be used with the |:tab| command.
|
||||
|
||||
|
||||
@ -10476,8 +10742,8 @@ terminalprops() *terminalprops()*
|
||||
detected from the response to |t_RV| request. See
|
||||
|v:termresponse| for the response itself. If |v:termresponse|
|
||||
is empty most values here will be 'u' for unknown.
|
||||
cursor_style wether sending |t_RS| works **
|
||||
cursor_blink_mode wether sending |t_RC| works **
|
||||
cursor_style whether sending |t_RS| works **
|
||||
cursor_blink_mode whether sending |t_RC| works **
|
||||
underline_rgb whether |t_8u| works **
|
||||
mouse mouse type supported
|
||||
|
||||
@ -10944,7 +11210,8 @@ win_screenpos({nr}) *win_screenpos()*
|
||||
Return the screen position of window {nr} as a list with two
|
||||
numbers: [row, col]. The first window always has position
|
||||
[1, 1], unless there is a tabline, then it is [2, 1].
|
||||
{nr} can be the window number or the |window-ID|.
|
||||
{nr} can be the window number or the |window-ID|. Use zero
|
||||
for the current window.
|
||||
Return [0, 0] if the window cannot be found in the current
|
||||
tabpage.
|
||||
|
||||
@ -11132,7 +11399,8 @@ winsaveview() Returns a |Dictionary| that contains information to restore
|
||||
curswant column for vertical movement
|
||||
topline first line in the window
|
||||
topfill filler lines, only in diff mode
|
||||
leftcol first column displayed
|
||||
leftcol first column displayed; only used when
|
||||
'wrap' is off
|
||||
skipcol columns skipped
|
||||
Note that no option values are saved.
|
||||
|
||||
@ -11351,7 +11619,7 @@ menu Compiled with support for |:menu|.
|
||||
mksession Compiled with support for |:mksession|.
|
||||
modify_fname Compiled with file name modifiers. |filename-modifiers|
|
||||
(always true)
|
||||
mouse Compiled with support mouse.
|
||||
mouse Compiled with support for mouse.
|
||||
mouse_dec Compiled with support for Dec terminal mouse.
|
||||
mouse_gpm Compiled with support for gpm (Linux console mouse)
|
||||
mouse_gpm_enabled GPM mouse is working
|
||||
@ -11363,7 +11631,7 @@ mouse_urxvt Compiled with support for urxvt mouse.
|
||||
mouse_xterm Compiled with support for xterm mouse.
|
||||
mouseshape Compiled with support for 'mouseshape'.
|
||||
multi_byte Compiled with support for 'encoding' (always true)
|
||||
multi_byte_encoding 'encoding' is set to a multi-byte encoding.
|
||||
multi_byte_encoding 'encoding' is set to a multibyte encoding.
|
||||
multi_byte_ime Compiled with support for IME input method.
|
||||
multi_lang Compiled with support for multiple languages.
|
||||
mzscheme Compiled with MzScheme interface |mzscheme|.
|
||||
@ -11906,8 +12174,9 @@ be used to pass settings to the autoload script before it's loaded: >
|
||||
|
||||
Note that when you make a mistake and call a function that is supposed to be
|
||||
defined in an autoload script, but the script doesn't actually define the
|
||||
function, the script will be sourced every time you try to call the function.
|
||||
And you will get an error message every time.
|
||||
function, you will get an error message for the missing function. If you fix
|
||||
the autoload script it won't be automatically loaded again. Either restart
|
||||
Vim or manually source the script.
|
||||
|
||||
Also note that if you have two script files, and one calls a function in the
|
||||
other and vice versa, before the used function is defined, it won't work.
|
||||
@ -12129,7 +12398,8 @@ text...
|
||||
{endmarker}
|
||||
Set internal variable {var-name} to a |List|
|
||||
containing the lines of text bounded by the string
|
||||
{endmarker}.
|
||||
{endmarker}. The lines of text is used as a
|
||||
|literal-string|.
|
||||
{endmarker} must not contain white space.
|
||||
{endmarker} cannot start with a lower case character.
|
||||
The last line should end only with the {endmarker}
|
||||
@ -12240,10 +12510,20 @@ text...
|
||||
:const x = 1
|
||||
< is equivalent to: >
|
||||
:let x = 1
|
||||
:lockvar 1 x
|
||||
< This is useful if you want to make sure the variable
|
||||
is not modified.
|
||||
*E995*
|
||||
:lockvar! x
|
||||
< NOTE: in Vim9 script `:const` works differently, see
|
||||
|vim9-const|
|
||||
This is useful if you want to make sure the variable
|
||||
is not modified. If the value is a List or Dictionary
|
||||
literal then the items also cannot be changed: >
|
||||
const ll = [1, 2, 3]
|
||||
let ll[1] = 5 " Error!
|
||||
< Nested references are not locked: >
|
||||
let lvar = ['a']
|
||||
const lconst = [0, lvar]
|
||||
let lconst[0] = 2 " Error!
|
||||
let lconst[1][0] = 'b' " OK
|
||||
< *E995*
|
||||
|:const| does not allow to for changing a variable: >
|
||||
:let x = 1
|
||||
:const x = 2 " Error!
|
||||
@ -12273,6 +12553,8 @@ text...
|
||||
|
||||
[depth] is relevant when locking a |List| or
|
||||
|Dictionary|. It specifies how deep the locking goes:
|
||||
0 Lock the variable {name} but not its
|
||||
value.
|
||||
1 Lock the |List| or |Dictionary| itself,
|
||||
cannot add or remove items, but can
|
||||
still change their values.
|
||||
@ -12286,7 +12568,14 @@ text...
|
||||
|Dictionary|, one level deeper.
|
||||
The default [depth] is 2, thus when {name} is a |List|
|
||||
or |Dictionary| the values cannot be changed.
|
||||
*E743*
|
||||
|
||||
Example with [depth] 0: >
|
||||
let mylist = [1, 2, 3]
|
||||
lockvar 0 mylist
|
||||
let mylist[0] = 77 " OK
|
||||
call add(mylist, 4] " OK
|
||||
let mylist = [7, 8, 9] " Error!
|
||||
< *E743*
|
||||
For unlimited depth use [!] and omit [depth].
|
||||
However, there is a maximum depth of 100 to catch
|
||||
loops.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 8.2. Last change: 2019 Jul 16
|
||||
*filetype.txt* For Vim version 8.2. Last change: 2020 Sep 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -163,8 +163,8 @@ file. It will be overwritten when installing a new version of Vim.
|
||||
|
||||
A. If you want to overrule all default file type checks.
|
||||
This works by writing one file for each filetype. The disadvantage is that
|
||||
means there can be many files. The advantage is that you can simply drop
|
||||
this file in the right directory to make it work.
|
||||
there can be many files. The advantage is that you can simply drop this
|
||||
file in the right directory to make it work.
|
||||
*ftdetect*
|
||||
1. Create your user runtime directory. You would normally use the first
|
||||
item of the 'runtimepath' option. Then create the directory "ftdetect"
|
||||
@ -397,6 +397,13 @@ ways to change this:
|
||||
3. Docs for the default filetype plugins. *ftplugin-docs*
|
||||
|
||||
|
||||
AWK *ft-awk-plugin*
|
||||
|
||||
Support for features specific to GNU Awk, like @include, can be enabled by
|
||||
setting: >
|
||||
let g:awk_is_gawk = 1
|
||||
|
||||
|
||||
CHANGELOG *ft-changelog-plugin*
|
||||
|
||||
Allows for easy entrance of Changelog entries in Changelog files. There are
|
||||
|
@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 8.2. Last change: 2020 Mar 16
|
||||
*gui.txt* For Vim version 8.2. Last change: 2020 Sep 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -547,15 +547,6 @@ floating menus that do not appear on the main menu bar.
|
||||
5.2 Creating New Menus *creating-menus*
|
||||
|
||||
*:me* *:menu* *:noreme* *:noremenu*
|
||||
*:am* *:amenu* *:an* *:anoremenu*
|
||||
*:nme* *:nmenu* *:nnoreme* *:nnoremenu*
|
||||
*:ome* *:omenu* *:onoreme* *:onoremenu*
|
||||
*:vme* *:vmenu* *:vnoreme* *:vnoremenu*
|
||||
*:xme* *:xmenu* *:xnoreme* *:xnoremenu*
|
||||
*:sme* *:smenu* *:snoreme* *:snoremenu*
|
||||
*:ime* *:imenu* *:inoreme* *:inoremenu*
|
||||
*:cme* *:cmenu* *:cnoreme* *:cnoremenu*
|
||||
*:tlm* *:tlmenu* *:tln* *:tlnoremenu*
|
||||
*E330* *E327* *E331* *E336* *E333*
|
||||
*E328* *E329* *E337* *E792*
|
||||
To create a new menu item, use the ":menu" commands. They are mostly like
|
||||
@ -596,6 +587,7 @@ With the shortcut "F" (while keeping the <Alt> key pressed), and then "O",
|
||||
this menu can be used. The second part is shown as "Open :e". The ":e"
|
||||
is right aligned, and the "O" is underlined, to indicate it is the shortcut.
|
||||
|
||||
*:am* *:amenu* *:an* *:anoremenu*
|
||||
The ":amenu" command can be used to define menu entries for all modes at once,
|
||||
except for Terminal mode. To make the command work correctly, a character is
|
||||
automatically inserted for some modes:
|
||||
@ -634,6 +626,30 @@ included they make the <> form and raw key codes not being recognized).
|
||||
Note that <Esc> in Cmdline mode executes the command, like in a mapping. This
|
||||
is Vi compatible. Use CTRL-C to quit Cmdline mode.
|
||||
|
||||
*:nme* *:nmenu* *:nnoreme* *:nnoremenu* *:nunme* *:nunmenu*
|
||||
Menu commands starting with "n" work in Normal mode. |mapmode-n|
|
||||
|
||||
*:ome* *:omenu* *:onoreme* *:onoremenu* *:ounme* *:ounmenu*
|
||||
Menu commands starting with "o" work in Operator-pending mode. |mapmode-o|
|
||||
|
||||
*:vme* *:vmenu* *:vnoreme* *:vnoremenu* *:vunme* *:vunmenu*
|
||||
Menu commands starting with "v" work in Visual mode. |mapmode-v|
|
||||
|
||||
*:xme* *:xmenu* *:xnoreme* *:xnoremenu* *:xunme* *:xunmenu*
|
||||
Menu commands starting with "x" work in Visual and Select mode. |mapmode-x|
|
||||
|
||||
*:sme* *:smenu* *:snoreme* *:snoremenu* *:sunme* *:sunmenu*
|
||||
Menu commands starting with "s" work in Select mode. |mapmode-s|
|
||||
|
||||
*:ime* *:imenu* *:inoreme* *:inoremenu* *:iunme* *:iunmenu*
|
||||
Menu commands starting with "i" work in Insert mode. |mapmode-i|
|
||||
|
||||
*:cme* *:cmenu* *:cnoreme* *:cnoremenu* *:cunme* *:cunmenu*
|
||||
Menu commands starting with "c" work in Cmdline mode. |mapmode-c|
|
||||
|
||||
*:tlm* *:tlmenu* *:tln* *:tlnoremenu* *:tlu* *:tlunmenu*
|
||||
Menu commands starting with "tl" work in Terminal mode. |mapmode-t|
|
||||
|
||||
*:menu-<silent>* *:menu-silent*
|
||||
To define a menu which will not be echoed on the command line, add
|
||||
"<silent>" as the first argument. Example: >
|
||||
@ -897,14 +913,6 @@ using the last visual selection.
|
||||
|
||||
*:unme* *:unmenu*
|
||||
*:aun* *:aunmenu*
|
||||
*:nunme* *:nunmenu*
|
||||
*:ounme* *:ounmenu*
|
||||
*:vunme* *:vunmenu*
|
||||
*:xunme* *:xunmenu*
|
||||
*:sunme* *:sunmenu*
|
||||
*:iunme* *:iunmenu*
|
||||
*:cunme* *:cunmenu*
|
||||
*:tlu* *:tlunmenu*
|
||||
To delete a menu item or a whole submenu, use the unmenu commands, which are
|
||||
analogous to the unmap commands. Eg: >
|
||||
:unmenu! Edit.Paste
|
||||
@ -1096,8 +1104,9 @@ That's all. XLFDs are not used. For Chinese this is reported to work well: >
|
||||
|
||||
For Mac OSX you can use something like this: >
|
||||
:set guifont=Monaco:h10
|
||||
Also see 'macatsui', it can help fix display problems.
|
||||
*E236*
|
||||
|
||||
Mono-spaced fonts *E236*
|
||||
|
||||
Note that the fonts must be mono-spaced (all characters have the same width).
|
||||
An exception is GTK: all fonts are accepted, but mono-spaced fonts look best.
|
||||
|
||||
|
@ -451,7 +451,7 @@ with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.
|
||||
|
||||
XPM support *w32-xpm-support*
|
||||
|
||||
GVim can be build on MS-Windows with support for XPM files. |+xpm_w32|
|
||||
GVim can be built on MS-Windows with support for XPM files. |+xpm_w32|
|
||||
See the Make_mvc.mak file for instructions, search for XPM.
|
||||
|
||||
To try out if XPM support works do this: >
|
||||
|
@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 8.2. Last change: 2020 Apr 05
|
||||
*help.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@ -158,7 +158,7 @@ Programming language support ~
|
||||
|
||||
Language support ~
|
||||
|digraph.txt| list of available digraphs
|
||||
|mbyte.txt| multi-byte text support
|
||||
|mbyte.txt| multibyte text support
|
||||
|mlang.txt| non-English language support
|
||||
|rileft.txt| right-to-left editing mode
|
||||
|arabic.txt| Arabic language support and editing
|
||||
|
@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2020 Mar 01
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2020 Jul 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -369,14 +369,16 @@ highlighting. So do these:
|
||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
|
||||
*inclusion*
|
||||
Some people make a big deal about using "his" when referring to the user,
|
||||
thinking it means we assume the user is male. That is of course not the case,
|
||||
it's just a habit of writing help text, which quite often is many years old.
|
||||
Also, a lot of the text is written by contributors for who English is not
|
||||
their first language. We do not make any assumptions about the gender of the
|
||||
user, no matter how the text is phrased. And we do not want to waste time on
|
||||
this discussion. The goal is that the reader understands how Vim works, the
|
||||
exact wording is secondary.
|
||||
Vim is for everybody, no matter race, gender or anything. Some people make a
|
||||
big deal about using "he" or "his" when referring to the user, thinking it
|
||||
means we assume the user is male. That is not the case, it's just a habit of
|
||||
writing help text, which quite often is many years old. Also, a lot of the
|
||||
text is written by contributors for whom English is not their first language.
|
||||
We do not make any assumptions about the gender of the user, no matter how the
|
||||
text is phrased. Some people have suggested using "they", but that is not
|
||||
regular English. We do not want to spend much time on this discussion. The
|
||||
goal is that the reader understands how Vim works, the exact wording is
|
||||
secondary.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
@ -199,8 +199,8 @@ Vim evaluation and command execution, and others.
|
||||
returns it. Note that the buffer is not set as
|
||||
current.
|
||||
|
||||
vim.call({name} [,{args}])
|
||||
Proxy to call Vim function named {name} with
|
||||
vim.call({name} [, {args}])
|
||||
Proxy to call Vim function named {name} with
|
||||
arguments {args}. Example: >
|
||||
:lua print(vim.call('has', 'timers'))
|
||||
<
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_mzsch.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*if_mzsch.txt* For Vim version 8.2. Last change: 2020 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sergey Khorev
|
||||
@ -43,7 +43,7 @@ To speed up the process, you might also want to use --disable-gracket and
|
||||
{script}
|
||||
{endmarker}
|
||||
Execute inlined MzScheme script {script}.
|
||||
Note: This command doesn't work if the MzScheme
|
||||
Note: This command doesn't work when the MzScheme
|
||||
feature wasn't compiled in. To avoid errors, see
|
||||
|script-here|.
|
||||
|
||||
|
@ -275,7 +275,7 @@ Options:
|
||||
$win delcmd {cmd} *tcl-window-delcmd*
|
||||
Registers the Tcl command {cmd} as a deletion callback for the window.
|
||||
This command is executed (in the global scope) just before the window
|
||||
is closed. Complex commands should be build with "list": >
|
||||
is closed. Complex commands should be built with "list": >
|
||||
$win delcmd [list puts vimerr "window deleted"]
|
||||
< See also |tcl-buffer-delcmd|.
|
||||
|
||||
@ -357,7 +357,7 @@ Options:
|
||||
$buf delcmd {cmd} *tcl-buffer-delcmd*
|
||||
Registers the Tcl command {cmd} as a deletion callback for the buffer.
|
||||
This command is executed (in the global scope) just before the buffer
|
||||
is deleted. Complex commands should be build with "list": >
|
||||
is deleted. Complex commands should be built with "list": >
|
||||
$buf delcmd [list puts vimerr "buffer [$buf number] gone"]
|
||||
< See also |tcl-window-delcmd|.
|
||||
|
||||
|
@ -414,11 +414,11 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-(*
|
||||
(N When in unclosed parentheses, indent N characters from the line
|
||||
with the unclosed parentheses. Add a 'shiftwidth' for every
|
||||
with the unclosed parenthesis. Add a 'shiftwidth' for every
|
||||
extra unclosed parentheses. When N is 0 or the unclosed
|
||||
parentheses is the first non-white character in its line, line
|
||||
parenthesis is the first non-white character in its line, line
|
||||
up with the next non-white character after the unclosed
|
||||
parentheses. (default 'shiftwidth' * 2).
|
||||
parenthesis. (default 'shiftwidth' * 2).
|
||||
|
||||
cino= cino=(0 >
|
||||
if (c1 && (c2 || if (c1 && (c2 ||
|
||||
@ -439,7 +439,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-U*
|
||||
UN When N is non-zero, do not ignore the indenting specified by
|
||||
( or u in case that the unclosed parentheses is the first
|
||||
( or u in case that the unclosed parenthesis is the first
|
||||
non-white character in its line. (default 0).
|
||||
|
||||
cino= or cino=(s cino=(s,U1 >
|
||||
@ -452,8 +452,8 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
*cino-w*
|
||||
wN When in unclosed parentheses and N is non-zero and either
|
||||
using "(0" or "u0", respectively, or using "U0" and the unclosed
|
||||
parentheses is the first non-white character in its line, line
|
||||
up with the character immediately after the unclosed parentheses
|
||||
parenthesis is the first non-white character in its line, line
|
||||
up with the character immediately after the unclosed parenthesis
|
||||
rather than the first non-white character. (default 0).
|
||||
|
||||
cino=(0 cino=(0,w1 >
|
||||
@ -464,11 +464,11 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-W*
|
||||
WN When in unclosed parentheses and N is non-zero and either
|
||||
using "(0" or "u0", respectively and the unclosed parentheses is
|
||||
using "(0" or "u0", respectively and the unclosed parenthesis is
|
||||
the last non-white character in its line and it is not the
|
||||
closing parentheses, indent the following line N characters
|
||||
closing parenthesis, indent the following line N characters
|
||||
relative to the outer context (i.e. start of the line or the
|
||||
next unclosed parentheses). (default: 0).
|
||||
next unclosed parenthesis). (default: 0).
|
||||
|
||||
cino=(0 cino=(0,W4 >
|
||||
a_long_line( a_long_line(
|
||||
@ -495,8 +495,8 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-m*
|
||||
mN When N is non-zero, line up a line starting with a closing
|
||||
parentheses with the first character of the line with the
|
||||
matching opening parentheses. (default 0).
|
||||
parenthesis with the first character of the line with the
|
||||
matching opening parenthesis. (default 0).
|
||||
|
||||
cino=(s cino=(s,m1 >
|
||||
c = c1 && ( c = c1 && (
|
||||
@ -510,7 +510,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*cino-M*
|
||||
MN When N is non-zero, line up a line starting with a closing
|
||||
parentheses with the first character of the previous line.
|
||||
parenthesis with the first character of the previous line.
|
||||
(default 0).
|
||||
|
||||
cino= cino=M1 >
|
||||
@ -569,7 +569,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
recognize preprocessor lines; right-shifting lines that start
|
||||
with "#" does not work.
|
||||
|
||||
|
||||
*cino-P*
|
||||
PN When N is non-zero recognize C pragmas, and indent them like any
|
||||
other code; does not concern other preprocessor directives.
|
||||
When N is zero (default): don't recognize C pragmas, treating
|
||||
@ -996,7 +996,7 @@ Indent after a nested paren: >
|
||||
Indent for a continuation line: >
|
||||
let g:pyindent_continue = 'shiftwidth() * 2'
|
||||
|
||||
The method uses |searchpair()| to look back for unclosed parenthesis. This
|
||||
The method uses |searchpair()| to look back for unclosed parentheses. This
|
||||
can sometimes be slow, thus it timeouts after 150 msec. If you notice the
|
||||
indenting isn't correct, you can set a larger timeout in msec: >
|
||||
let g:pyindent_searchpair_timeout = 500
|
||||
|
@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.2. Last change: 2020 May 31
|
||||
*index.txt* For Vim version 8.2. Last change: 2020 Oct 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -440,6 +440,7 @@ tag char note action in Normal mode ~
|
||||
|<C-LeftMouse>| <C-LeftMouse> ":ta" to the keyword at the mouse click
|
||||
|<C-Right>| <C-Right> 1 same as "w"
|
||||
|<C-RightMouse>| <C-RightMouse> same as "CTRL-T"
|
||||
|<C-Tab>| <C-Tab> same as "g<Tab>"
|
||||
|<Del>| ["x]<Del> 2 same as "x"
|
||||
|N<Del>| {count}<Del> remove the last digit from {count}
|
||||
|<Down>| <Down> 1 same as "j"
|
||||
@ -587,6 +588,8 @@ tag command action in Normal mode ~
|
||||
following the file name.
|
||||
|CTRL-W_gt| CTRL-W g t same as `gt`: go to next tab page
|
||||
|CTRL-W_gT| CTRL-W g T same as `gT`: go to previous tab page
|
||||
|CTRL-W_g<Tab>| CTRL-W g <Tab> same as |g<Tab>|: go to last accessed tab
|
||||
page.
|
||||
|CTRL-W_h| CTRL-W h go to Nth left window (stop at first window)
|
||||
|CTRL-W_i| CTRL-W i split window and jump to declaration of
|
||||
identifier under the cursor
|
||||
@ -781,10 +784,10 @@ tag char note action in Normal mode ~
|
||||
lines down
|
||||
|gk| gk 1 like "k", but when 'wrap' on go N screen
|
||||
lines up
|
||||
|gn| gn 1,2 find the next match with the last used
|
||||
search pattern and Visually select it
|
||||
|gm| gm 1 go to character at middle of the screenline
|
||||
|gM| gM 1 go to character at middle of the text line
|
||||
|gn| gn 1,2 find the next match with the last used
|
||||
search pattern and Visually select it
|
||||
|go| go 1 cursor to byte N in the buffer
|
||||
|gp| ["x]gp 2 put the text [from register x] after the
|
||||
cursor N times, leave the cursor after it
|
||||
@ -805,6 +808,7 @@ tag char note action in Normal mode ~
|
||||
|g<LeftMouse>| g<LeftMouse> same as <C-LeftMouse>
|
||||
g<MiddleMouse> same as <C-MiddleMouse>
|
||||
|g<RightMouse>| g<RightMouse> same as <C-RightMouse>
|
||||
|g<Tab>| g<Tab> go to the last accessed tab page.
|
||||
|g<Up>| g<Up> 1 same as "gk"
|
||||
|
||||
==============================================================================
|
||||
@ -1313,6 +1317,7 @@ tag command action ~
|
||||
|:filetype| :filet[ype] switch file type detection on/off
|
||||
|:filter| :filt[er] filter output of following command
|
||||
|:find| :fin[d] find file in 'path' and edit it
|
||||
|:final| :final declare an immutable variable in Vim9
|
||||
|:finally| :fina[lly] part of a :try command
|
||||
|:finish| :fini[sh] quit sourcing a Vim script
|
||||
|:first| :fir[st] go to the first file in the argument list
|
||||
@ -1687,6 +1692,7 @@ tag command action ~
|
||||
|:unsilent| :uns[ilent] run a command not silently
|
||||
|:update| :up[date] write buffer if modified
|
||||
|:vglobal| :v[global] execute commands for not matching lines
|
||||
|:var| :var variable declaration in Vim9
|
||||
|:version| :ve[rsion] print version number and other info
|
||||
|:verbose| :verb[ose] execute command with 'verbose' set
|
||||
|:vertical| :vert[ical] make following command split vertically
|
||||
|
@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.2. Last change: 2020 Apr 30
|
||||
*insert.txt* For Vim version 8.2. Last change: 2020 Oct 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -312,6 +312,7 @@ If you enter a value of 10, it will end up in the file as a 0. The 10 is a
|
||||
the buffer to a file, the <NL> character is translated into <Nul>. The <NL>
|
||||
character is written at the end of each line. Thus if you want to insert a
|
||||
<NL> character in a file you will have to make a line break.
|
||||
Also see 'fileformat'.
|
||||
|
||||
*i_CTRL-X* *insert_expand*
|
||||
CTRL-X enters a sub-mode where several commands can be used. Most of these
|
||||
@ -1843,6 +1844,7 @@ a Append text after the cursor [count] times. If the
|
||||
|
||||
*A*
|
||||
A Append text at the end of the line [count] times.
|
||||
For using "A" in Visual block mode see |v_b_A|.
|
||||
|
||||
<insert> or *i* *insert* *<Insert>*
|
||||
i Insert text before the cursor [count] times.
|
||||
@ -1855,6 +1857,7 @@ I Insert text before the first non-blank in the line
|
||||
When the 'H' flag is present in 'cpoptions' and the
|
||||
line only contains blanks, insert start just before
|
||||
the last blank.
|
||||
For using "I" in Visual block mode see |v_b_I|.
|
||||
|
||||
*gI*
|
||||
gI Insert text in column 1 [count] times.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.2. Last change: 2020 May 30
|
||||
*intro.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -232,8 +232,8 @@ Vim would never have become what it is now, without the help of these people!
|
||||
Flemming Madsen X11 client-server, various features and patches
|
||||
Tony Mechelynck answers many user questions
|
||||
Paul Moore Python interface extensions, many patches
|
||||
Katsuhito Nagano Work on multi-byte versions
|
||||
Sung-Hyun Nam Work on multi-byte versions
|
||||
Katsuhito Nagano Work on multibyte versions
|
||||
Sung-Hyun Nam Work on multibyte versions
|
||||
Vince Negri Win32 GUI and generic console enhancements
|
||||
Steve Oualline Author of the first Vim book |frombook|
|
||||
Dominique Pelle Valgrind reports and many fixes
|
||||
@ -510,7 +510,7 @@ the ":map" command. The rules are:
|
||||
<M-a> Meta- a ('a' with bit 8 set)
|
||||
<M-A> Meta- A ('A' with bit 8 set)
|
||||
<t_kd> "kd" termcap entry (cursor down key)
|
||||
Although you can specify <M-{char}> with {char} being a multi-byte
|
||||
Although you can specify <M-{char}> with {char} being a multibyte
|
||||
character, Vim may not be able to know what byte sequence that is and then
|
||||
it won't work.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.2. Last change: 2020 Apr 23
|
||||
*map.txt* For Vim version 8.2. Last change: 2020 Nov 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -191,6 +191,12 @@ whether to use the "," mapping or the longer one. To avoid this add the
|
||||
<nowait> argument. Then the mapping will be used when it matches, Vim does
|
||||
not wait for more characters to be typed. However, if the characters were
|
||||
already typed they are used.
|
||||
Note that this works when the <nowait> mapping fully matches and is found
|
||||
before any partial matches. This works when:
|
||||
- There is only one matching buffer-local mapping, since these are always
|
||||
found before global mappings.
|
||||
- There is another buffer-local mapping that partly matches, but it is
|
||||
defined earlier (last defined mapping is found first).
|
||||
|
||||
*:map-<silent>* *:map-silent*
|
||||
To define a mapping which will not be echoed on the command line, add
|
||||
@ -246,6 +252,17 @@ For abbreviations |v:char| is set to the character that was typed to trigger
|
||||
the abbreviation. You can use this to decide how to expand the {lhs}. You
|
||||
should not either insert or change the v:char.
|
||||
|
||||
In case you want the mapping to not do anything, you can have the expression
|
||||
evaluate to an empty string. If something changed that requires Vim to
|
||||
go through the main loop (e.g. to update the display), return "\<Ignore>".
|
||||
This is similar to "nothing" but makes Vim return from the loop that waits for
|
||||
input. Example: >
|
||||
func s:OpenPopup()
|
||||
call popup_create(... arguments ...)
|
||||
return "\<Ignore>"
|
||||
endfunc
|
||||
nnoremap <expr> <F3> <Sid>OpenPopup()
|
||||
|
||||
Be very careful about side effects! The expression is evaluated while
|
||||
obtaining characters, you may very well make the command dysfunctional.
|
||||
For this reason the following is blocked:
|
||||
@ -254,7 +271,7 @@ For this reason the following is blocked:
|
||||
- The |:normal| command.
|
||||
- Moving the cursor is allowed, but it is restored afterwards.
|
||||
If you want the mapping to do any of these let the returned characters do
|
||||
that.
|
||||
that, or use a |<Cmd>| mapping instead.
|
||||
|
||||
You can use getchar(), it consumes typeahead if there is any. E.g., if you
|
||||
have these mappings: >
|
||||
@ -283,15 +300,42 @@ Here is an example that inserts a list number that increases: >
|
||||
CTRL-L inserts the next number, CTRL-R resets the count. CTRL-R returns an
|
||||
empty string, so that nothing is inserted.
|
||||
|
||||
Note that there are some tricks to make special keys work and escape CSI bytes
|
||||
in the text. The |:map| command also does this, thus you must avoid that it
|
||||
is done twice. This does not work: >
|
||||
:imap <expr> <F3> "<Char-0x611B>"
|
||||
Because the <Char- sequence is escaped for being a |:imap| argument and then
|
||||
again for using <expr>. This does work: >
|
||||
:imap <expr> <F3> "\u611B"
|
||||
Using 0x80 as a single byte before other text does not work, it will be seen
|
||||
as a special key.
|
||||
Note that using 0x80 as a single byte before other text does not work, it will
|
||||
be seen as a special key.
|
||||
|
||||
*<Cmd>* *:map-cmd*
|
||||
The special text <Cmd> begins a "command mapping", it executes the command
|
||||
directly without changing modes. Where you might use ":...<CR>" in the
|
||||
{rhs} of a mapping, you can instead use "<Cmd>...<CR>".
|
||||
Example: >
|
||||
noremap x <Cmd>echo mode(1)<CR>
|
||||
<
|
||||
This is more flexible than `:<C-U>` in Visual and Operator-pending mode, or
|
||||
`<C-O>:` in Insert mode, because the commands are executed directly in the
|
||||
current mode, instead of always going to Normal mode. Visual mode is
|
||||
preserved, so tricks with |gv| are not needed. Commands can be invoked
|
||||
directly in Command-line mode (which would otherwise require timer hacks).
|
||||
Example of using <Cmd> halfway Insert mode: >
|
||||
nnoremap <F3> aText <Cmd>echo mode(1)<CR> Added<Esc>
|
||||
|
||||
Unlike <expr> mappings, there are no special restrictions on the <Cmd>
|
||||
command: it is executed as if an (unrestricted) |autocmd| was invoked.
|
||||
|
||||
Note:
|
||||
- Because <Cmd> avoids mode-changes it does not trigger |CmdlineEnter| and
|
||||
|CmdlineLeave| events, because no user interaction is expected.
|
||||
- For the same reason, |keycodes| like <C-R><C-W> are interpreted as plain,
|
||||
unmapped keys.
|
||||
- In Select mode, |:map| and |:vmap| command mappings are executed in
|
||||
Visual mode. Use |:smap| to handle Select mode differently.
|
||||
|
||||
*E1135* *E1136*
|
||||
<Cmd> commands must terminate, that is, they must be followed by <CR> in the
|
||||
{rhs} of the mapping definition. |Command-line| mode is never entered.
|
||||
|
||||
*E1137*
|
||||
<Cmd> commands can have only normal characters and cannot contain special
|
||||
characters like function keys.
|
||||
|
||||
|
||||
1.3 MAPPING AND MODES *:map-modes*
|
||||
@ -595,7 +639,7 @@ construct can be used:
|
||||
<Char-033> character 27
|
||||
<Char-0x7f> character 127
|
||||
<S-Char-114> character 114 ('r') shifted ('R')
|
||||
This is useful to specify a (multi-byte) character in a 'keymap' file.
|
||||
This is useful to specify a (multibyte) character in a 'keymap' file.
|
||||
Upper and lowercase differences are ignored.
|
||||
|
||||
*map-comments*
|
||||
@ -840,8 +884,15 @@ execute a shell command, e.g.: `!ls` Or put the lines in your |vimrc|.
|
||||
|
||||
When modifyOtherKeys is enabled you can map <C-[> and <C-S-{>: >
|
||||
imap <C-[> [[[
|
||||
imap <C-S-{> {{{
|
||||
Without modifyOtherKeys <C-[> and <C-S-{> are indistinguishable from Esc.
|
||||
imap <C-{> {{{
|
||||
Without modifyOtherKeys <C-[> and <C-{> are indistinguishable from Esc.
|
||||
Note that <C-{> is used and not <C-S-[> or <C-S-{>. This works on most
|
||||
keyboards. Similarly, <C-}> is used instead of <C-S-]> or <C-S-}> and
|
||||
<C-|> instead of <C-S-\> or <C-S-|>. Note that '|' has a special meaning in a
|
||||
mapping, see |map-bar|.
|
||||
|
||||
WARNING: if you map <C-[> you may very well break any key codes that start
|
||||
with Esc. Make sure it comes AFTER other mappings.
|
||||
|
||||
A known side effect is that in Insert mode the raw escape sequence is inserted
|
||||
after the CTRL-V key. This can be used to check whether modifyOtherKeys is
|
||||
@ -875,35 +926,47 @@ g@{motion} Call the function set by the 'operatorfunc' option.
|
||||
|
||||
Here is an example that counts the number of spaces with <F4>: >
|
||||
|
||||
nmap <silent> <F4> :set opfunc=CountSpaces<CR>g@
|
||||
vmap <silent> <F4> :<C-U>call CountSpaces(visualmode(), 1)<CR>
|
||||
nnoremap <expr> <F4> CountSpaces()
|
||||
xnoremap <expr> <F4> CountSpaces()
|
||||
" doubling <F4> works on a line
|
||||
nnoremap <expr> <F4><F4> CountSpaces() .. '_'
|
||||
|
||||
function CountSpaces(type = '') abort
|
||||
if a:type == ''
|
||||
set opfunc=CountSpaces
|
||||
return 'g@'
|
||||
endif
|
||||
|
||||
function! CountSpaces(type, ...)
|
||||
let sel_save = &selection
|
||||
let &selection = "inclusive"
|
||||
let reg_save = @@
|
||||
let reg_save = getreginfo('"')
|
||||
let cb_save = &clipboard
|
||||
let visual_marks_save = [getpos("'<"), getpos("'>")]
|
||||
|
||||
if a:0 " Invoked from Visual mode, use gv command.
|
||||
silent exe "normal! gvy"
|
||||
elseif a:type == 'line'
|
||||
silent exe "normal! '[V']y"
|
||||
else
|
||||
silent exe "normal! `[v`]y"
|
||||
endif
|
||||
|
||||
echomsg strlen(substitute(@@, '[^ ]', '', 'g'))
|
||||
|
||||
let &selection = sel_save
|
||||
let @@ = reg_save
|
||||
try
|
||||
set clipboard= selection=inclusive
|
||||
let commands = #{line: "'[V']y", char: "`[v`]y", block: "`[\<c-v>`]y"}
|
||||
silent exe 'noautocmd keepjumps normal! ' .. get(commands, a:type, '')
|
||||
echom getreg('"')->count(' ')
|
||||
finally
|
||||
call setreg('"', reg_save)
|
||||
call setpos("'<", visual_marks_save[0])
|
||||
call setpos("'>", visual_marks_save[1])
|
||||
let &clipboard = cb_save
|
||||
let &selection = sel_save
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
An <expr> mapping is used to be able to fetch any prefixed count and register.
|
||||
This also avoids using a command line, which would trigger CmdlineEnter and
|
||||
CmdlineLeave autocommands.
|
||||
|
||||
Note that the 'selection' option is temporarily set to "inclusive" to be able
|
||||
to yank exactly the right text by using Visual mode from the '[ to the ']
|
||||
mark.
|
||||
|
||||
Also note that there is a separate mapping for Visual mode. It removes the
|
||||
"'<,'>" range that ":" inserts in Visual mode and invokes the function with
|
||||
visualmode() and an extra argument.
|
||||
Also note that the 'clipboard' option is temporarily emptied to avoid
|
||||
clobbering the `"*` or `"+` registers, if its value contains the item `unnamed`
|
||||
or `unnamedplus`.
|
||||
|
||||
==============================================================================
|
||||
2. Abbreviations *abbreviations* *Abbreviations*
|
||||
@ -1167,6 +1230,10 @@ When executing an autocommand or a user command, it will run in the context of
|
||||
the script it was defined in. This makes it possible that the command calls a
|
||||
local function or uses a local mapping.
|
||||
|
||||
In case the value is used in a context where <SID> cannot be correctly
|
||||
expanded, use the expand() function: >
|
||||
let &includexpr = expand('<SID>') .. 'My_includeexpr()'
|
||||
|
||||
Otherwise, using "<SID>" outside of a script context is an error.
|
||||
|
||||
If you need to get the script number to use in a complicated script, you can
|
||||
@ -1491,7 +1558,7 @@ The valid escape sequences are
|
||||
<bang> (See the '-bang' attribute) Expands to a ! if the
|
||||
command was executed with a ! modifier, otherwise
|
||||
expands to nothing.
|
||||
*<mods>* *:command-modifiers*
|
||||
*<mods>* *<q-mods>* *:command-modifiers*
|
||||
<mods> The command modifiers, if specified. Otherwise, expands to
|
||||
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|
||||
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|
||||
|
@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.2. Last change: 2019 Jul 04
|
||||
*mbyte.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@ -36,7 +36,7 @@ characters or boxes when using another encoding.
|
||||
This is a summary of the multibyte features in Vim. If you are lucky it works
|
||||
as described and you can start using Vim without much trouble. If something
|
||||
doesn't work you will have to read the rest. Don't be surprised if it takes
|
||||
quite a bit of work and experimenting to make Vim use all the multi-byte
|
||||
quite a bit of work and experimenting to make Vim use all the multibyte
|
||||
features. Unfortunately, every system has its own way to deal with multibyte
|
||||
languages and it is quite complicated.
|
||||
|
||||
@ -123,7 +123,7 @@ You can also set 'guifont' alone, Vim will try to find a matching
|
||||
|
||||
INPUT
|
||||
|
||||
There are several ways to enter multi-byte characters:
|
||||
There are several ways to enter multibyte characters:
|
||||
- For X11 XIM can be used. See |XIM|.
|
||||
- For MS-Windows IME can be used. See |IME|.
|
||||
- For all systems keymaps can be used. See |mbyte-keymap|.
|
||||
@ -237,11 +237,11 @@ encoded with one byte, we call this a single-byte encoding. The most often
|
||||
used one is called "latin1". This limits the number of characters to 256.
|
||||
Some of these are control characters, thus even fewer can be used for text.
|
||||
|
||||
When some characters use two or more bytes, we call this a multi-byte
|
||||
When some characters use two or more bytes, we call this a multibyte
|
||||
encoding. This allows using much more than 256 characters, which is required
|
||||
for most East Asian languages.
|
||||
|
||||
Most multi-byte encodings use one byte for the first 127 characters. These
|
||||
Most multibyte encodings use one byte for the first 127 characters. These
|
||||
are equal to ASCII, which makes it easy to exchange plain-ASCII text, no
|
||||
matter what language is used. Thus you might see the right text even when the
|
||||
encoding was set wrong.
|
||||
@ -488,11 +488,11 @@ possible.
|
||||
==============================================================================
|
||||
4. Using a terminal *mbyte-terminal*
|
||||
|
||||
The GUI fully supports multi-byte characters. It is also possible in a
|
||||
The GUI fully supports multibyte characters. It is also possible in a
|
||||
terminal, if the terminal supports the same encoding that Vim uses. Thus this
|
||||
is less flexible.
|
||||
|
||||
For example, you can run Vim in a xterm with added multi-byte support and/or
|
||||
For example, you can run Vim in a xterm with added multibyte support and/or
|
||||
|XIM|. Examples are kterm (Kanji term) and hanterm (for Korean), Eterm
|
||||
(Enlightened terminal) and rxvt.
|
||||
|
||||
@ -544,7 +544,7 @@ For Vim you may need to set 'encoding' to "utf-8".
|
||||
5. Fonts on X11 *mbyte-fonts-X11*
|
||||
|
||||
Unfortunately, using fonts in X11 is complicated. The name of a single-byte
|
||||
font is a long string. For multi-byte fonts we need several of these...
|
||||
font is a long string. For multibyte fonts we need several of these...
|
||||
|
||||
Note: Most of this is no longer relevant for GTK+ 2. Selecting a font via
|
||||
its XLFD is not supported; see 'guifont' for an example of how to
|
||||
@ -610,7 +610,7 @@ written like:
|
||||
|
||||
X FONTSET
|
||||
*fontset* *xfontset*
|
||||
A single-byte charset is typically associated with one font. For multi-byte
|
||||
A single-byte charset is typically associated with one font. For multibyte
|
||||
charsets a combination of fonts is often used. This means that one group of
|
||||
characters are used from one font and another group from another font (which
|
||||
might be double wide). This collection of fonts is called a fontset.
|
||||
@ -1436,7 +1436,7 @@ not everybody is able to type a composing character.
|
||||
==============================================================================
|
||||
12. Overview of options *mbyte-options*
|
||||
|
||||
These options are relevant for editing multi-byte files. Check the help in
|
||||
These options are relevant for editing multibyte files. Check the help in
|
||||
options.txt for detailed information.
|
||||
|
||||
'encoding' Encoding used for the keyboard and display. It is also the
|
||||
@ -1456,14 +1456,14 @@ options.txt for detailed information.
|
||||
languages where a sequence of characters can be broken
|
||||
anywhere.
|
||||
|
||||
'guifontset' The list of font names used for a multi-byte encoding. When
|
||||
'guifontset' The list of font names used for a multibyte encoding. When
|
||||
this option is not empty, it replaces 'guifont'.
|
||||
|
||||
'keymap' Specify the name of a keyboard mapping.
|
||||
|
||||
==============================================================================
|
||||
|
||||
Contributions specifically for the multi-byte features by:
|
||||
Contributions specifically for the multibyte features by:
|
||||
Chi-Deok Hwang <hwang@mizi.co.kr>
|
||||
SungHyun Nam <goweol@gmail.com>
|
||||
K.Nagano <nagano@atese.advantest.co.jp>
|
||||
|
@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 8.2. Last change: 2020 Jan 01
|
||||
*message.txt* For Vim version 8.2. Last change: 2020 Sep 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -19,13 +19,14 @@ The ":messages" command can be used to view previously given messages. This
|
||||
is especially useful when messages have been overwritten or truncated. This
|
||||
depends on the 'shortmess' option.
|
||||
|
||||
:messages Show all messages.
|
||||
:mes[sages] Show all messages.
|
||||
|
||||
:{count}messages Show the {count} most recent messages.
|
||||
:{count}mes[sages] Show the {count} most recent messages.
|
||||
|
||||
:messages clear Clear all messages.
|
||||
:mes[sages] clear Clear all messages.
|
||||
|
||||
:{count}messages clear Clear messages, keeping only the {count} most
|
||||
:{count}mes[sages] clear
|
||||
Clear messages, keeping only the {count} most
|
||||
recent ones.
|
||||
|
||||
The number of remembered messages is fixed at 20 for the tiny version and 200
|
||||
@ -74,7 +75,7 @@ See `:messages` above.
|
||||
|
||||
|
||||
LIST OF MESSAGES
|
||||
*E222* *E228* *E232* *E256* *E293* *E298* *E304* *E317*
|
||||
*E222* *E228* *E232* *E293* *E298* *E304* *E317*
|
||||
*E318* *E356* *E438* *E439* *E440* *E316* *E320* *E322*
|
||||
*E323* *E341* *E473* *E570* *E685* *E292* >
|
||||
Add to read buffer
|
||||
|
@ -1,4 +1,4 @@
|
||||
*mlang.txt* For Vim version 8.2. Last change: 2020 Jun 16
|
||||
*mlang.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -7,7 +7,7 @@
|
||||
Multi-language features *multilang* *multi-lang*
|
||||
|
||||
This is about using messages and menus in various languages. For editing
|
||||
multi-byte text see |multibyte|.
|
||||
multibyte text see |multibyte|.
|
||||
|
||||
The basics are explained in the user manual: |usr_45.txt|.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 8.2. Last change: 2019 Nov 16
|
||||
*motion.txt* For Vim version 8.2. Last change: 2020 Oct 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -190,11 +190,14 @@ l or *l*
|
||||
|
||||
*^*
|
||||
^ To the first non-blank character of the line.
|
||||
|exclusive| motion.
|
||||
|exclusive| motion. Any count is ignored.
|
||||
|
||||
*$* *<End>* *<kEnd>*
|
||||
$ or <End> To the end of the line. When a count is given also go
|
||||
[count - 1] lines downward. |inclusive| motion.
|
||||
[count - 1] lines downward, or as far is possible.
|
||||
|inclusive| motion. If a count of 2 of larger is
|
||||
given and the cursor is on the last line, that is an
|
||||
error an the cursor doesn't move.
|
||||
In Visual mode the cursor goes to just after the last
|
||||
character in the line.
|
||||
When 'virtualedit' is active, "$" may move the cursor
|
||||
@ -495,10 +498,11 @@ a set of section macros, specified by the pairs of characters in the
|
||||
'sections' option. The default is "SHNHH HUnhsh", which defines a section to
|
||||
start at the nroff macros ".SH", ".NH", ".H", ".HU", ".nh" and ".sh".
|
||||
|
||||
The "]" and "[" commands stop at the '{' or '}' in the first column. This is
|
||||
useful to find the start or end of a function in a C program. Note that the
|
||||
first character of the command determines the search direction and the
|
||||
second character the type of brace found.
|
||||
The "]]" and "[[" commands stop at the '{' in the first column. This is
|
||||
useful to find the start of a function in a C program. To search for a '}' in
|
||||
the first column, the end of a C function, use "][" (forward) or "[]"
|
||||
(backward). Note that the first character of the command determines the
|
||||
search direction.
|
||||
|
||||
If your '{' or '}' are not in the first column, and you would like to use "[["
|
||||
and "]]" anyway, try these mappings: >
|
||||
@ -1142,7 +1146,7 @@ sequence of small changes in a line, for example "xxxxx", adds many positions
|
||||
to the change list. When 'textwidth' is zero 'wrapmargin' is used. When that
|
||||
also isn't set a fixed number of 79 is used. Detail: For the computations
|
||||
bytes are used, not characters, to avoid a speed penalty (this only matters
|
||||
for multi-byte encodings).
|
||||
for multibyte encodings).
|
||||
|
||||
Note that when text has been inserted or deleted the cursor position might be
|
||||
a bit different from the position of the change. Especially when lines have
|
||||
|
@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 8.2. Last change: 2020 Apr 19
|
||||
*netbeans.txt* For Vim version 8.2. Last change: 2020 Nov 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
@ -362,12 +362,12 @@ color Argument with either a decimal number, "none" (without the
|
||||
offset A number argument that indicates a byte position in a buffer.
|
||||
The first byte has offset zero. Line breaks are counted for
|
||||
how they appear in the file (CR/LF counts for two bytes).
|
||||
Note that a multi-byte character is counted for the number of
|
||||
Note that a multibyte character is counted for the number of
|
||||
bytes it takes.
|
||||
|
||||
lnum/col Argument with a line number and column number position. The
|
||||
line number starts with one, the column is the byte position,
|
||||
starting with zero. Note that a multi-byte character counts
|
||||
starting with zero. Note that a multibyte character counts
|
||||
for several columns.
|
||||
|
||||
pathname String argument: file name with full path.
|
||||
@ -562,9 +562,10 @@ setModtime time
|
||||
saved directly by the Vim Controller.
|
||||
New in version 2.3.
|
||||
|
||||
setReadOnly
|
||||
Set a file as readonly
|
||||
Implemented in version 2.3.
|
||||
setReadOnly readonly
|
||||
When the boolean argument "readonly" is "T" for True, mark the
|
||||
buffer as readonly, when it is "F" for False, mark it as not
|
||||
readonly. Implemented in version 2.3.
|
||||
|
||||
setStyle Not implemented.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2020 Jul 18
|
||||
*options.txt* For Vim version 8.2. Last change: 2020 Oct 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -703,6 +703,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The value "double" cannot be used if 'listchars' or 'fillchars'
|
||||
contains a character that would be double width.
|
||||
|
||||
The values are overruled for characters specified with
|
||||
|setcellwidths()|.
|
||||
|
||||
There are a number of CJK fonts for which the width of glyphs for
|
||||
those characters are solely based on how many octets they take in
|
||||
legacy/traditional CJK encodings. In those encodings, Euro,
|
||||
@ -727,8 +730,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'antialias' 'anti' boolean (default: off)
|
||||
global
|
||||
{only available when compiled with GUI enabled
|
||||
on Mac OS X}
|
||||
This option only has an effect in the GUI version of Vim on Mac OS X
|
||||
on macOS}
|
||||
This option only has an effect in the GUI version of Vim on macOS
|
||||
v10.2 or later. When on, Vim will use smooth ("antialiased") fonts,
|
||||
which can be easier to read at certain sizes on certain displays.
|
||||
Setting this option can sometimes cause problems if 'guifont' is set
|
||||
@ -2551,7 +2554,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"x" delete each combining character on its own. When it is off (the
|
||||
default) the character along with its combining characters are
|
||||
deleted.
|
||||
Note: When 'delcombine' is set "xx" may work different from "2x"!
|
||||
Note: When 'delcombine' is set "xx" may work differently from "2x"!
|
||||
|
||||
This is useful for Arabic, Hebrew and many other languages where one
|
||||
may have combining characters overtop of base characters, and want
|
||||
@ -2715,6 +2718,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
for Unix: ".,~/tmp,/var/tmp,/tmp")
|
||||
global
|
||||
List of directory names for the swap file, separated with commas.
|
||||
Recommended value: ".,~/vimswap//" - this will put the swap file next
|
||||
to the edited file if possible, and in your personal swap directory
|
||||
otherwise. Make sure "~/vimswap//" is only readable for you.
|
||||
|
||||
Possible items:
|
||||
- The swap file will be created in the first directory where this is
|
||||
possible.
|
||||
- Empty means that no swap file will be used (recovery is
|
||||
@ -2728,8 +2736,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
is replaced with the path name of the edited file.
|
||||
- For Unix and Win32, if a directory ends in two path separators "//",
|
||||
the swap file name will be built from the complete path to the file
|
||||
with all path separators substituted to percent '%' signs. This will
|
||||
ensure file name uniqueness in the preserve directory.
|
||||
with all path separators replaced by percent '%' signs (including
|
||||
the colon following the drive letter on Win32). This will ensure
|
||||
file name uniqueness in the preserve directory.
|
||||
On Win32, it is also possible to end with "\\". However, When a
|
||||
separating comma is following, you must use "//", since "\\" will
|
||||
include the comma in the file name. Therefore it is recommended to
|
||||
@ -2749,9 +2758,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
the same file twice will result in a warning. Using "/tmp" on Unix is
|
||||
discouraged: When the system crashes you lose the swap file.
|
||||
"/var/tmp" is often not cleared when rebooting, thus is a better
|
||||
choice than "/tmp". But it can contain a lot of files, your swap
|
||||
files get lost in the crowd. That is why a "tmp" directory in your
|
||||
home directory is tried first.
|
||||
choice than "/tmp". But others on the computer may be able to see the
|
||||
files, and it can contain a lot of files, your swap files get lost in
|
||||
the crowd. That is why a "tmp" directory in your home directory is
|
||||
tried first.
|
||||
The use of |:set+=| and |:set-=| is preferred when adding or removing
|
||||
directories from the list. This avoids problems when a future version
|
||||
uses another default.
|
||||
@ -2796,7 +2806,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'emoji' 'emo' boolean (default: on)
|
||||
global
|
||||
When on all Unicode emoji characters are considered to be full width.
|
||||
|
||||
This excludes "text emoji" characters, which are normally displayed as
|
||||
single width. Unfortunately there is no good specification for this
|
||||
and it has been determined on trial-and-error basis. Use the
|
||||
|setcellwidths()| function to change the behavior.
|
||||
|
||||
*'encoding'* *'enc'* *E543*
|
||||
'encoding' 'enc' string (default: "latin1" or value from $LANG)
|
||||
@ -2826,7 +2839,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This is specified with 'fileencoding'. The conversion is done with
|
||||
iconv() or as specified with 'charconvert'.
|
||||
|
||||
If you need to know whether 'encoding' is a multi-byte encoding, you
|
||||
If you need to know whether 'encoding' is a multibyte encoding, you
|
||||
can use: >
|
||||
if has("multi_byte_encoding")
|
||||
<
|
||||
@ -4540,7 +4553,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
*'isprint'* *'isp'*
|
||||
'isprint' 'isp' string (default for Win32 and Macintosh:
|
||||
'isprint' 'isp' string (default for Win32 and macOS:
|
||||
"@,~-255"; otherwise: "@,161-255")
|
||||
global
|
||||
The characters given by this option are displayed directly on the
|
||||
@ -4669,7 +4682,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
characters. Example: "abc;ABC"
|
||||
Example: "aA,fgh;FGH,cCdDeE"
|
||||
Special characters need to be preceded with a backslash. These are
|
||||
";", ',' and backslash itself.
|
||||
";", ',', '"', '|' and backslash itself.
|
||||
|
||||
This will allow you to activate vim actions without having to switch
|
||||
back and forth between the languages. Your language characters will
|
||||
@ -4917,18 +4930,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'macatsui'* *'nomacatsui'*
|
||||
'macatsui' boolean (default on)
|
||||
global
|
||||
{only available in Mac GUI version}
|
||||
This is a workaround for when drawing doesn't work properly. When set
|
||||
and compiled with multi-byte support ATSUI text drawing is used. When
|
||||
not set ATSUI text drawing is not used. Switch this option off when
|
||||
you experience drawing problems. In a future version the problems may
|
||||
be solved and this option becomes obsolete. Therefore use this method
|
||||
to unset it: >
|
||||
if exists('&macatsui')
|
||||
set nomacatsui
|
||||
endif
|
||||
< Another option to check if you have drawing problems is
|
||||
'termencoding'.
|
||||
{not supported}
|
||||
No longer supported, as the Mac OS X GUI code was removed.
|
||||
|
||||
*'magic'* *'nomagic'*
|
||||
'magic' boolean (default on)
|
||||
@ -6191,7 +6194,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
screen. If the statusline is given by 'statusline' (i.e. not empty),
|
||||
this option takes precedence over 'ruler' and 'rulerformat'
|
||||
If the number of characters displayed is different from the number of
|
||||
bytes in the text (e.g., for a TAB or a multi-byte character), both
|
||||
bytes in the text (e.g., for a TAB or a multibyte character), both
|
||||
the text column (byte number) and the screen column are shown,
|
||||
separated with a dash.
|
||||
For an empty line "0-1" is shown.
|
||||
@ -6234,7 +6237,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
$VIMRUNTIME,
|
||||
$VIM/vimfiles/after,
|
||||
$HOME/vimfiles/after"
|
||||
Macintosh: "$VIM:vimfiles,
|
||||
macOS: "$VIM:vimfiles,
|
||||
$VIMRUNTIME,
|
||||
$VIM:vimfiles:after"
|
||||
Haiku: "$BE_USER_SETTINGS/vim,
|
||||
@ -6564,7 +6567,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
For the Amiga the default is ">". For MS-Windows the default is
|
||||
">%s 2>&1". The output is directly saved in a file and not echoed to
|
||||
the screen.
|
||||
For Unix the default it "| tee". The stdout of the compiler is saved
|
||||
For Unix the default is "| tee". The stdout of the compiler is saved
|
||||
in a file and echoed to the screen. If the 'shell' option is "csh" or
|
||||
"tcsh" after initializations, the default becomes "|& tee". If the
|
||||
'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh", "zsh-beta",
|
||||
@ -7222,7 +7225,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
normal text. Each status line item is of the form:
|
||||
%-0{minwid}.{maxwid}{item}
|
||||
All fields except the {item} are optional. A single percent sign can
|
||||
be given as "%%". Up to 80 items can be specified. *E541*
|
||||
be given as "%%".
|
||||
|
||||
When the option starts with "%!" then it is used as an expression,
|
||||
evaluated and the result is used as the option value. Example: >
|
||||
@ -7288,8 +7291,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
N N Printer page number. (Only works in the 'printheader' option.)
|
||||
l N Line number.
|
||||
L N Number of lines in buffer.
|
||||
c N Column number.
|
||||
v N Virtual column number.
|
||||
c N Column number (byte index).
|
||||
v N Virtual column number (screen column).
|
||||
V N Virtual column number as -{num}. Not displayed if equal to 'c'.
|
||||
p N Percentage through file in lines as in |CTRL-G|.
|
||||
P S Percentage through file of displayed window. This is like the
|
||||
@ -7738,14 +7741,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
For further details see |arabic.txt|.
|
||||
|
||||
*'termencoding'* *'tenc'*
|
||||
'termencoding' 'tenc' string (default ""; with GTK+ GUI: "utf-8"; with
|
||||
Macintosh GUI: "macroman")
|
||||
'termencoding' 'tenc' string (default ""; with GTK+ GUI: "utf-8")
|
||||
global
|
||||
Encoding used for the terminal. This specifies what character
|
||||
encoding the keyboard produces and the display will understand. For
|
||||
the GUI it only applies to the keyboard ('encoding' is used for the
|
||||
display). Except for the Mac when 'macatsui' is off, then
|
||||
'termencoding' should be "macroman".
|
||||
display).
|
||||
*E617* *E950*
|
||||
Note: This does not apply to the GTK+ GUI. After the GUI has been
|
||||
successfully initialized, 'termencoding' is forcibly set to "utf-8".
|
||||
@ -7810,8 +7811,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
*'termwinsize'* *'tws'*
|
||||
'termwinsize' 'tws' string (default "")
|
||||
local to window
|
||||
Size of the |terminal| window. Format: {rows}x{columns} or
|
||||
{rows}*{columns}.
|
||||
Size used when opening the |terminal| window. Format:
|
||||
{rows}x{columns} or {rows}*{columns}.
|
||||
- When empty the terminal gets the size from the window.
|
||||
- When set with a "x" (e.g., "24x80") the terminal size is not
|
||||
adjusted to the window size. If the window is smaller only the
|
||||
@ -7822,6 +7823,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
- When rows is zero then use the height of the window.
|
||||
- When columns is zero then use the width of the window.
|
||||
- Using "0x0" or "0*0" is the same as empty.
|
||||
- Can be overruled in the |term_start()| options with "term_rows" and
|
||||
"term_cols".
|
||||
|
||||
Examples:
|
||||
"30x0" uses 30 rows and the current window width.
|
||||
@ -8368,7 +8371,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
>= 14 Anything pending in a ":finally" clause.
|
||||
>= 15 Every executed Ex command from a script (truncated at 200
|
||||
characters).
|
||||
>= 16 Every executed Ex command
|
||||
>= 16 Every executed Ex command.
|
||||
|
||||
This option can also be set with the "-V" argument. See |-V|.
|
||||
This option is also set by the |:verbose| command.
|
||||
@ -8391,7 +8394,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'viewdir' 'vdir' string (default for Amiga and Win32:
|
||||
"$VIM/vimfiles/view",
|
||||
for Unix: "~/.vim/view",
|
||||
for Macintosh: "$VIM:vimfiles:view"
|
||||
for macOS: "$VIM:vimfiles:view"
|
||||
for VMS: "sys$login:vimfiles/view")
|
||||
global
|
||||
{not available when compiled without the |+mksession|
|
||||
@ -8907,7 +8910,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{only available when compiled with the |terminal|
|
||||
feature on MS-Windows}
|
||||
Specifies the name of the winpty shared library, used for the
|
||||
|:terminal| command. The default depends on whether was build as a
|
||||
|:terminal| command. The default depends on whether Vim was built as a
|
||||
32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
|
||||
a fallback.
|
||||
Environment variables are expanded |:set_env|.
|
||||
|
@ -88,7 +88,7 @@ VAX C compiler is not fully ANSI C compatible in pre-processor directives
|
||||
semantics, therefore you have to use a converter program that will do the lion
|
||||
part of the job. For detailed instructions read file INSTALLvms.txt
|
||||
|
||||
MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
|
||||
MMS_VIM.EXE is built together with VIM.EXE, but for XXD.EXE you should
|
||||
change to a subdirectory and build it separately.
|
||||
|
||||
CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
|
||||
|
@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*pattern.txt* For Vim version 8.2. Last change: 2020 Sep 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -797,11 +797,12 @@ An ordinary atom can be:
|
||||
^beep( the start of the C function "beep" (probably).
|
||||
|
||||
*/\^*
|
||||
\^ Matches literal '^'. Can be used at any position in the pattern.
|
||||
\^ Matches literal '^'. Can be used at any position in the pattern, but
|
||||
not inside [].
|
||||
|
||||
*/\_^*
|
||||
\_^ Matches start-of-line. |/zero-width| Can be used at any position in
|
||||
the pattern.
|
||||
the pattern, but not inside [].
|
||||
Example matches ~
|
||||
\_s*\_^foo white space and blank lines and then "foo" at
|
||||
start-of-line
|
||||
@ -812,12 +813,13 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
|/zero-width|
|
||||
|
||||
*/\$*
|
||||
\$ Matches literal '$'. Can be used at any position in the pattern.
|
||||
\$ Matches literal '$'. Can be used at any position in the pattern, but
|
||||
not inside [].
|
||||
|
||||
*/\_$*
|
||||
\_$ Matches end-of-line. |/zero-width| Can be used at any position in the
|
||||
pattern. Note that "a\_$b" never matches, since "b" cannot match an
|
||||
end-of-line. Use "a\nb" instead |/\n|.
|
||||
pattern, but not inside []. Note that "a\_$b" never matches, since
|
||||
"b" cannot match an end-of-line. Use "a\nb" instead |/\n|.
|
||||
Example matches ~
|
||||
foo\_$\_s* "foo" at end-of-line and following white space and
|
||||
blank lines
|
||||
@ -840,8 +842,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
|/zero-width|
|
||||
|
||||
*/\zs*
|
||||
\zs Matches at any position, and sets the start of the match there: The
|
||||
next char is the first char of the whole match. |/zero-width|
|
||||
\zs Matches at any position, but not inside [], and sets the start of the
|
||||
match there: The next char is the first char of the whole match.
|
||||
|/zero-width|
|
||||
Example: >
|
||||
/^\s*\zsif
|
||||
< matches an "if" at the start of a line, ignoring white space.
|
||||
@ -852,8 +855,9 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
This cannot be followed by a multi. *E888*
|
||||
{not available when compiled without the |+syntax| feature}
|
||||
*/\ze*
|
||||
\ze Matches at any position, and sets the end of the match there: The
|
||||
previous char is the last char of the whole match. |/zero-width|
|
||||
\ze Matches at any position, but not inside [], and sets the end of the
|
||||
match there: The previous char is the last char of the whole match.
|
||||
|/zero-width|
|
||||
Can be used multiple times, the last one encountered in a matching
|
||||
branch is used.
|
||||
Example: "end\ze\(if\|for\)" matches the "end" in "endif" and
|
||||
@ -939,7 +943,7 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
These three can be used to match specific columns in a buffer or
|
||||
string. The "23" can be any column number. The first column is 1.
|
||||
Actually, the column is the byte number (thus it's not exactly right
|
||||
for multi-byte characters).
|
||||
for multibyte characters).
|
||||
WARNING: When inserting or deleting text Vim does not automatically
|
||||
update the matches. This means Syntax highlighting quickly becomes
|
||||
wrong.
|
||||
@ -994,7 +998,7 @@ Character classes:
|
||||
\p printable character (see 'isprint' option) */\p*
|
||||
\P like "\p", but excluding digits */\P*
|
||||
|
||||
NOTE: the above also work for multi-byte characters. The ones below only
|
||||
NOTE: the above also work for multibyte characters. The ones below only
|
||||
match ASCII characters, as indicated by the range.
|
||||
|
||||
*whitespace* *white-space*
|
||||
@ -1131,9 +1135,9 @@ x A single character, with no special meaning, matches itself
|
||||
a list of at least one character, each of which is either '-', '.',
|
||||
'/', alphabetic, numeric, '_' or '~'.
|
||||
These items only work for 8-bit characters, except [:lower:] and
|
||||
[:upper:] also work for multi-byte characters when using the new
|
||||
[:upper:] also work for multibyte characters when using the new
|
||||
regexp engine. See |two-engines|. In the future these items may
|
||||
work for multi-byte characters. For now, to get all "alpha"
|
||||
work for multibyte characters. For now, to get all "alpha"
|
||||
characters you can use: [[:lower:][:upper:]].
|
||||
|
||||
The "Func" column shows what library function is used. The
|
||||
@ -1257,8 +1261,8 @@ When working with expression evaluation, a <NL> character in the pattern
|
||||
matches a <NL> in the string. The use of "\n" (backslash n) to match a <NL>
|
||||
doesn't work there, it only works to match text in the buffer.
|
||||
|
||||
*pattern-multi-byte*
|
||||
Patterns will also work with multi-byte characters, mostly as you would
|
||||
*pattern-multi-byte* *pattern-multibyte*
|
||||
Patterns will also work with multibyte characters, mostly as you would
|
||||
expect. But invalid bytes may cause trouble, a pattern with an invalid byte
|
||||
will probably never match.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*pi_netrw.txt* For Vim version 8.2. Last change: 2020 Jan 14
|
||||
*pi_netrw.txt* For Vim version 8.2. Last change: 2020 Sep 19
|
||||
|
||||
------------------------------------------------
|
||||
NETRW REFERENCE MANUAL by Charles E. Campbell
|
||||
@ -437,9 +437,13 @@ settings are described below, in |netrw-browser-options|, and in
|
||||
*g:netrw_silent* =0 : transfers done normally
|
||||
=1 : transfers done silently
|
||||
|
||||
*g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one
|
||||
*g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
|
||||
Move the mouse and pause to remove the popup window.
|
||||
(default value if popup windows are availble)
|
||||
=1 : messages from netrw will use a separate one
|
||||
line window. This window provides reliable
|
||||
delivery of messages. (default)
|
||||
delivery of messages.
|
||||
(default value if popup windows are not availble)
|
||||
=0 : messages from netrw will use echoerr ;
|
||||
messages don't always seem to show up this
|
||||
way, but one doesn't have to quit the window.
|
||||
@ -725,6 +729,8 @@ just as easily as if they were local files! >
|
||||
See |netrw-activate| for more on how to encourage your vim to use plugins
|
||||
such as netrw.
|
||||
|
||||
For password-free use of scp:, see |netrw-ssh-hack|.
|
||||
|
||||
|
||||
==============================================================================
|
||||
7. Ex Commands *netrw-ex* {{{1
|
||||
@ -1063,7 +1069,7 @@ QUICK HELP *netrw-quickhelp* {{{2
|
||||
Reverse sorting order.........................|netrw-r|
|
||||
|
||||
|
||||
*netrw-quickmap* *netrw-quickmaps*
|
||||
*netrw-quickmap* *netrw-quickmaps*
|
||||
QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
>
|
||||
--- ----------------- ----
|
||||
@ -1080,7 +1086,7 @@ QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
|
||||
a Cycles between normal display, |netrw-a|
|
||||
hiding (suppress display of files matching g:netrw_list_hide)
|
||||
and showing (display only files which match g:netrw_list_hide)
|
||||
c Make browsing directory the current directory |netrw-c|
|
||||
cd Make browsing directory the current directory |netrw-cd|
|
||||
C Setting the editing window |netrw-C|
|
||||
d Make a directory |netrw-d|
|
||||
D Attempt to remove the file(s)/directory(ies) |netrw-D|
|
||||
@ -2098,7 +2104,7 @@ the two directories the same, use the "cd" map (type cd). That map will
|
||||
set Vim's notion of the current directory to netrw's current browsing
|
||||
directory.
|
||||
|
||||
*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
|
||||
|netrw-cd|: This map's name was changed from "c" to cd (see |netrw-cd|).
|
||||
This change was done to allow for |netrw-cb| and |netrw-cB| maps.
|
||||
|
||||
Associated setting variable: |g:netrw_keepdir|
|
||||
@ -2753,7 +2759,7 @@ your browsing preferences. (see also: |netrw-settings|)
|
||||
=0 keep the current directory the same as the
|
||||
browsing directory.
|
||||
The current browsing directory is contained in
|
||||
b:netrw_curdir (also see |netrw-c|)
|
||||
b:netrw_curdir (also see |netrw-cd|)
|
||||
|
||||
*g:netrw_keepj* ="keepj" (default) netrw attempts to keep the
|
||||
|:jumps| table unaffected.
|
||||
@ -3124,7 +3130,8 @@ a file using the local browser (by putting the cursor on it) and pressing
|
||||
|
||||
Related topics:
|
||||
* To see what the current directory is, use |:pwd|
|
||||
* To make the currently browsed directory the current directory, see |netrw-c|
|
||||
* To make the currently browsed directory the current directory, see
|
||||
|netrw-cd|
|
||||
* To automatically make the currently browsed directory the current
|
||||
directory, see |g:netrw_keepdir|.
|
||||
|
||||
@ -3799,9 +3806,15 @@ netrw:
|
||||
or
|
||||
http://vim.sourceforge.net/scripts/script.php?script_id=120
|
||||
|
||||
Decho.vim is provided as a "vimball"; see |vimball-intro|.
|
||||
Decho.vim is provided as a "vimball"; see |vimball-intro|. You
|
||||
should edit the Decho.vba.gz file and source it in: >
|
||||
|
||||
2. Edit the <netrw.vim> file by typing: >
|
||||
vim Decho.vba.gz
|
||||
:so %
|
||||
:q
|
||||
<
|
||||
2. To turn on debug tracing in netrw, then edit the <netrw.vim>
|
||||
file by typing: >
|
||||
|
||||
vim netrw.vim
|
||||
:DechoOn
|
||||
@ -3823,14 +3836,34 @@ netrw:
|
||||
read/write your file over the network in a separate tab or
|
||||
server vim window.
|
||||
|
||||
To save the file, use >
|
||||
Change the netrw.vimrc file to include the Decho plugin: >
|
||||
|
||||
set nocp
|
||||
so $HOME/.vim/plugin/Decho.vim
|
||||
so $HOME/.vim/plugin/netrwPlugin.vim
|
||||
<
|
||||
You should continue to run vim with >
|
||||
|
||||
vim -u netrw.vimrc --noplugins -i NONE [some path here]
|
||||
<
|
||||
to avoid entanglements with options and other plugins.
|
||||
|
||||
To save the file: under linux, the output will be in a separate
|
||||
remote server window; in it, just save the file with >
|
||||
|
||||
:w! DBG
|
||||
|
||||
< Under a vim that doesn't support clientserver, your debugging
|
||||
output will appear in another tab: >
|
||||
|
||||
:tabnext
|
||||
:set bt=
|
||||
:w! DBG
|
||||
<
|
||||
Furthermore, it'd be helpful if you would type >
|
||||
|
||||
< Furthermore, it'd be helpful if you would type >
|
||||
:Dsep <command>
|
||||
|
||||
< where <command> is the command you're about to type next,
|
||||
thereby making it easier to associate which part of the
|
||||
debugging trace is due to which command.
|
||||
@ -3838,17 +3871,34 @@ netrw:
|
||||
Please send that information to <netrw.vim>'s maintainer along
|
||||
with the o/s you're using and the vim version that you're using
|
||||
(see |:version|) (remove the embedded NOSPAM first) >
|
||||
|
||||
NcampObell@SdrPchip.AorgM-NOSPAM
|
||||
<
|
||||
==============================================================================
|
||||
12. History *netrw-history* {{{1
|
||||
|
||||
v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree
|
||||
would not hide with the ^\..* pattern
|
||||
correctly.
|
||||
* (Marcin Szamotulski) NetrwOptionRestore
|
||||
did not restore options correctly that
|
||||
had a single quote in the option string.
|
||||
Apr 13, 2020 * implemented error handling via popup
|
||||
windows (see |popup_beval()|)
|
||||
Apr 30, 2020 * (reported by Manatsu Takahashi) while
|
||||
using Lexplore, a modified file could
|
||||
be overwritten. Sol'n: will not overwrite,
|
||||
but will emit an |E37| (although one cannot
|
||||
add an ! to override)
|
||||
Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking
|
||||
:Lexplore and quitting it left unused
|
||||
hidden buffers. Netrw will now set netrw
|
||||
buffers created by :Lexplore to |bh|=wipe.
|
||||
v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x
|
||||
(|netrw-x|) would throw an error when
|
||||
attempting to open a local directory.
|
||||
v168: Dec 12, 2019 * scp timeout error message not reported,
|
||||
hopefully now fixed (Shane Xb Qian)
|
||||
|
||||
v167: Nov 29, 2019 * netrw does a save&restore on @* and @+.
|
||||
That causes problems with the clipboard.
|
||||
Now restores occurs only if @* or @+ have
|
||||
@ -4306,4 +4356,4 @@ netrw:
|
||||
|
||||
==============================================================================
|
||||
Modelines: {{{1
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker
|
||||
vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker
|
||||
|
@ -154,4 +154,4 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
|
||||
v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:noet:ft=help:fdm=marker
|
||||
vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker
|
||||
|
@ -1,4 +1,4 @@
|
||||
*popup.txt* For Vim version 8.2. Last change: 2020 May 18
|
||||
*popup.txt* For Vim version 8.2. Last change: 2020 Oct 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -74,9 +74,9 @@ wrapping, lines in the buffer. It can be limited with the "maxheight"
|
||||
property. You can use empty lines to increase the height or the "minheight"
|
||||
property.
|
||||
|
||||
The width of the window is normally equal to the longest line in the buffer.
|
||||
It can be limited with the "maxwidth" property. You can use spaces to
|
||||
increase the width or use the "minwidth" property.
|
||||
The width of the window is normally equal to the longest visible line in the
|
||||
buffer. It can be limited with the "maxwidth" property. You can use spaces
|
||||
to increase the width or use the "minwidth" property.
|
||||
|
||||
By default the 'wrap' option is set, so that no text disappears. Otherwise,
|
||||
if there is not enough space then the window is shifted left in order to
|
||||
@ -314,6 +314,7 @@ popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
||||
<Space> <Enter> accept current selection
|
||||
x Esc CTRL-C cancel the menu
|
||||
Other keys are ignored.
|
||||
Always returns |v:true|.
|
||||
|
||||
A match is set on that line to highlight it, see
|
||||
|popup_menu()|.
|
||||
@ -711,7 +712,7 @@ The second argument of |popup_create()| is a dictionary with options:
|
||||
By default a double line is used all around when
|
||||
'encoding' is "utf-8" and 'ambiwidth' is "single",
|
||||
otherwise ASCII characters are used.
|
||||
scrollbar non-zero: show a scrollbar when the text doesn't fit.
|
||||
scrollbar 1 or true: show a scrollbar when the text doesn't fit.
|
||||
zero: do not show a scrollbar. Default is non-zero.
|
||||
Also see |popup-scrollbar|.
|
||||
scrollbarhighlight Highlight group name for the scrollbar. The
|
||||
@ -910,11 +911,22 @@ A mouse click arrives as <LeftMouse>. The coordinates can be obtained with
|
||||
Vim provides standard filters |popup_filter_menu()| and
|
||||
|popup_filter_yesno()|.
|
||||
|
||||
Keys coming from a `:normal` command do not pass through the filter. This can
|
||||
be used to move the cursor in a popup where the "cursorline" option is set: >
|
||||
call win_execute(winid, 'normal! 10Gzz')
|
||||
Keys coming from `feedkeys()` are passed through the filter.
|
||||
|
||||
Note that "x" is the normal way to close a popup. You may want to use Esc,
|
||||
but since many keys start with an Esc character, there may be a delay before
|
||||
Vim recognizes the Esc key. If you do use Esc, it is recommended to set the
|
||||
'ttimeoutlen' option to 100 and set 'timeout' and/or 'ttimeout'.
|
||||
|
||||
*popup-filter-errors*
|
||||
If the filter function can't be called, e.g. because the name is wrong, then
|
||||
the popup is closed. If the filter causes an error then it is assumed to
|
||||
return zero. If this happens three times in a row the popup is closed. If
|
||||
the popup gives errors fewer than 10% of the calls then it won't be closed.
|
||||
|
||||
|
||||
POPUP CALLBACK *popup-callback*
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*print.txt* For Vim version 8.2. Last change: 2019 Dec 17
|
||||
*print.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -114,7 +114,7 @@ If 'printencoding' is empty or Vim cannot find the file then it will use
|
||||
encoding file. If Vim is unable to find a character encoding file then it
|
||||
will use the "latin1" print character encoding file.
|
||||
|
||||
When 'encoding' is set to a multi-byte encoding, Vim will try to convert
|
||||
When 'encoding' is set to a multibyte encoding, Vim will try to convert
|
||||
characters to the printing encoding for printing (if 'printencoding' is empty
|
||||
then the conversion will be to latin1). Conversion to a printing encoding
|
||||
other than latin1 will require Vim to be compiled with the |+iconv| feature.
|
||||
@ -269,7 +269,7 @@ Japanese text you would do the following; >
|
||||
:set printmbcharset=JIS_X_1983
|
||||
|
||||
If 'printmbcharset' is not one of the above values then it is assumed to
|
||||
specify a custom multi-byte character set and no check will be made that it is
|
||||
specify a custom multibyte character set and no check will be made that it is
|
||||
compatible with the value for 'printencoding'. Vim will look for a file
|
||||
defining the character set in the "print" directory in 'runtimepath'.
|
||||
|
||||
@ -304,7 +304,7 @@ printing of characters in the ASCII code range.
|
||||
a:yes Use ASCII character set for codes in the ASCII
|
||||
a:no (default) code range.
|
||||
|
||||
The following is an example of specifying two multi-byte fonts, one for normal
|
||||
The following is an example of specifying two multibyte fonts, one for normal
|
||||
and italic printing and one for bold and bold-italic printing, and using
|
||||
Courier to print codes in the ASCII code range but using the national
|
||||
character set: >
|
||||
@ -420,10 +420,10 @@ There are currently a number of limitations with PostScript printing:
|
||||
possible to get all the characters in an encoding to print by installing a
|
||||
new version of the Courier font family.
|
||||
|
||||
- Multi-byte support - Currently Vim will try to convert multi-byte characters
|
||||
- Multi-byte support - Currently Vim will try to convert multibyte characters
|
||||
to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
|
||||
empty). Any characters that are not successfully converted are shown as
|
||||
unknown characters. Printing will fail if Vim cannot convert the multi-byte
|
||||
unknown characters. Printing will fail if Vim cannot convert the multibyte
|
||||
to the 8-bit encoding.
|
||||
|
||||
==============================================================================
|
||||
@ -508,7 +508,7 @@ print ASCII text using the national character set you may see some unexpected
|
||||
characters. If you want true ASCII code printing then you need to configure
|
||||
Vim to output ASCII characters for the ASCII code range with 'printmbfont'.
|
||||
|
||||
It is possible to define your own multi-byte character set although this
|
||||
It is possible to define your own multibyte character set although this
|
||||
should not be attempted lightly. A discussion on the process if beyond the
|
||||
scope of these help files. You can find details on CMap (character map) files
|
||||
in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
|
||||
|
@ -1705,7 +1705,7 @@ special problem here is that it doesn't print information on leaving the
|
||||
directory and that it doesn't print the absolute path.
|
||||
|
||||
To solve the problem with relative paths and missing "leave directory"
|
||||
messages Vim uses following algorithm:
|
||||
messages Vim uses the following algorithm:
|
||||
|
||||
1) Check if the given directory is a subdirectory of the current directory.
|
||||
If this is true, store it as the current directory.
|
||||
@ -1938,7 +1938,7 @@ list window is:
|
||||
The values displayed in each line correspond to the "bufnr", "lnum", "col" and
|
||||
"text" fields returned by the |getqflist()| function.
|
||||
|
||||
For some quickfix/location lists, the displayed text need to be customized.
|
||||
For some quickfix/location lists, the displayed text needs to be customized.
|
||||
For example, if only the filename is present for a quickfix entry, then the
|
||||
two "|" field separator characters after the filename are not needed. Another
|
||||
use case is to customize the path displayed for a filename. By default, the
|
||||
|
@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||
*quickref.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -696,7 +696,7 @@ Short explanation of each option: *option-list*
|
||||
'eventignore' 'ei' autocommand events that are ignored
|
||||
'expandtab' 'et' use spaces when <Tab> is inserted
|
||||
'exrc' 'ex' read .vimrc and .exrc in the current directory
|
||||
'fileencoding' 'fenc' file encoding for multi-byte text
|
||||
'fileencoding' 'fenc' file encoding for multibyte text
|
||||
'fileencodings' 'fencs' automatically detected character encodings
|
||||
'fileformat' 'ff' file format used for file I/O
|
||||
'fileformats' 'ffs' automatically detected values for 'fileformat'
|
||||
@ -728,7 +728,7 @@ Short explanation of each option: *option-list*
|
||||
'grepprg' 'gp' program to use for ":grep"
|
||||
'guicursor' 'gcr' GUI: settings for cursor shape and blinking
|
||||
'guifont' 'gfn' GUI: Name(s) of font(s) to be used
|
||||
'guifontset' 'gfs' GUI: Names of multi-byte fonts to be used
|
||||
'guifontset' 'gfs' GUI: Names of multibyte fonts to be used
|
||||
'guifontwide' 'gfw' list of font names for double-wide characters
|
||||
'guiheadroom' 'ghr' GUI: pixels room for window decorations
|
||||
'guioptions' 'go' GUI: Which components and options are used
|
||||
|
@ -1,4 +1,4 @@
|
||||
*recover.txt* For Vim version 8.2. Last change: 2020 May 09
|
||||
*recover.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -64,8 +64,8 @@ Disadvantages:
|
||||
directories (although Vim tries to avoid that by comparing the path name).
|
||||
This will result in bogus ATTENTION warning messages.
|
||||
- When you use your home directory, and somebody else tries to edit the same
|
||||
file, he will not see your swap file and will not get the ATTENTION warning
|
||||
message.
|
||||
file, that user will not see your swap file and will not get the ATTENTION
|
||||
warning message.
|
||||
On the Amiga you can also use a recoverable ram disk, but there is no 100%
|
||||
guarantee that this works. Putting swap files in a normal ram disk (like RAM:
|
||||
on the Amiga) or in a place that is cleared when rebooting (like /tmp on Unix)
|
||||
|
@ -179,7 +179,7 @@ name on the 'VimRegistry' property on the root window.
|
||||
|
||||
A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
|
||||
also act as a command server if a server name is explicitly given with the
|
||||
--servername argument, or when Vim was build with the |+autoservername|
|
||||
--servername argument, or when Vim was built with the |+autoservername|
|
||||
feature.
|
||||
|
||||
An empty --servername argument will cause the command server to be disabled.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2020 May 14
|
||||
*repeat.txt* For Vim version 8.2. Last change: 2020 Oct 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -271,6 +271,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
directories are added to 'runtimepath'. This is
|
||||
useful in your .vimrc. The plugins will then be
|
||||
loaded during initialization, see |load-plugins|.
|
||||
Note that for ftdetect scripts to be loaded
|
||||
you will need to write `filetype plugin indent on`
|
||||
AFTER all `packadd!` commands.
|
||||
|
||||
Also see |pack-add|.
|
||||
{only available when compiled with |+eval|}
|
||||
@ -643,7 +646,7 @@ This assumes you write one or more plugins that you distribute as a package.
|
||||
|
||||
If you have two unrelated plugins you would use two packages, so that Vim
|
||||
users can choose what they include or not. Or you can decide to use one
|
||||
package with optional plugins, and tell the user to add the ones he wants with
|
||||
package with optional plugins, and tell the user to add the preferred ones with
|
||||
`:packadd`.
|
||||
|
||||
Decide how you want to distribute the package. You can create an archive or
|
||||
@ -679,7 +682,7 @@ You could add this packadd command in one of your plugins, to be executed when
|
||||
the optional plugin is needed.
|
||||
|
||||
Run the `:helptags` command to generate the doc/tags file. Including this
|
||||
generated file in the package means that the user can drop the package in his
|
||||
generated file in the package means that the user can drop the package in the
|
||||
pack directory and the help command works right away. Don't forget to re-run
|
||||
the command after changing the plugin help: >
|
||||
:helptags path/start/foobar/doc
|
||||
|
@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 8.2. Last change: 2019 Nov 30
|
||||
*sign.txt* For Vim version 8.2. Last change: 2020 Oct 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@ -81,10 +81,18 @@ on the same line, the attributes of the sign with the highest priority is used
|
||||
independently of the sign group. The default priority for a sign is 10. The
|
||||
priority is assigned at the time of placing a sign.
|
||||
|
||||
When two signs with the same priority are present, and one has an icon or text
|
||||
in the signcolumn while the other has line highlighting, then both are
|
||||
displayed.
|
||||
|
||||
When the line on which the sign is placed is deleted, the sign is moved to the
|
||||
next line (or the last line of the buffer, if there is no next line). When
|
||||
the delete is undone the sign does not move back.
|
||||
|
||||
When a sign with line highlighting and 'cursorline' highlighting are both
|
||||
present, if the priority is 100 or more then the sign highlighting takes
|
||||
precedence, otherwise the 'cursorline' highlighting.
|
||||
|
||||
==============================================================================
|
||||
2. Commands *sign-commands* *:sig* *:sign*
|
||||
|
||||
@ -454,11 +462,11 @@ sign_getplaced([{expr} [, {dict}]]) *sign_getplaced()*
|
||||
entries
|
||||
|
||||
The dictionary for each sign contains the following entries:
|
||||
group sign group. Set to '' for the global group.
|
||||
id identifier of the sign
|
||||
lnum line number where the sign is placed
|
||||
name name of the defined sign
|
||||
priority sign priority
|
||||
group sign group. Set to '' for the global group.
|
||||
id identifier of the sign
|
||||
lnum line number where the sign is placed
|
||||
name name of the defined sign
|
||||
priority sign priority
|
||||
|
||||
The returned signs in a buffer are ordered by their line
|
||||
number and priority.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*spell.txt* For Vim version 8.2. Last change: 2020 Jul 10
|
||||
*spell.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -887,7 +887,7 @@ time ":mkspell" is used. Vim will then convert everything to 'encoding' and
|
||||
generate a spell file for 'encoding'. If some of the used characters to not
|
||||
fit in 'encoding' you will get an error message.
|
||||
*spell-affix-mbyte*
|
||||
When using a multi-byte encoding it's possible to use more different affix
|
||||
When using a multibyte encoding it's possible to use more different affix
|
||||
flags. But Myspell doesn't support that, thus you may not want to use it
|
||||
anyway. For compatibility use an 8-bit encoding.
|
||||
|
||||
@ -1445,7 +1445,7 @@ are spelling mistakes this may not be quite right.
|
||||
Common words can be specified with the COMMON item. This will give better
|
||||
suggestions when editing a short file. Example:
|
||||
|
||||
COMMON the of to and a in is it you that he was for on are ~
|
||||
COMMON the of to and a in is it you that he she was for on are ~
|
||||
|
||||
The words must be separated by white space, up to 25 per line.
|
||||
When multiple regions are specified in a ":mkspell" command the common words
|
||||
|
@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 8.2. Last change: 2020 Feb 04
|
||||
*starting.txt* For Vim version 8.2. Last change: 2020 Sep 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -513,6 +513,8 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
||||
'nocompatible': use Vim defaults
|
||||
- no |gvimrc| script is loaded
|
||||
- no viminfo file is read or written
|
||||
Note that a following "-u" argument overrules the effect of
|
||||
"-u DEFAULTS".
|
||||
|
||||
*-x*
|
||||
-x Use encryption to read/write files. Will prompt for a key,
|
||||
|
@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2020 Jul 08
|
||||
*syntax.txt* For Vim version 8.2. Last change: 2020 Aug 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -3648,7 +3648,7 @@ DEFINING FOLDLEVEL *:syn-foldlevel*
|
||||
start: Use level of item containing start of line.
|
||||
minimum: Use lowest local-minimum level of items on line.
|
||||
|
||||
The default is 'start'. Use 'minimum' to search a line horizontally
|
||||
The default is "start". Use "minimum" to search a line horizontally
|
||||
for the lowest level contained on the line that is followed by a
|
||||
higher level. This produces more natural folds when syntax items
|
||||
may close and open horizontally within a line.
|
||||
@ -3795,9 +3795,9 @@ DEFINING REGIONS *:syn-region* *:syn-start* *:syn-skip* *:syn-end*
|
||||
[keepend]
|
||||
[extend]
|
||||
[excludenl]
|
||||
start={start_pattern} ..
|
||||
[skip={skip_pattern}]
|
||||
end={end_pattern} ..
|
||||
start={start-pattern} ..
|
||||
[skip={skip-pattern}]
|
||||
end={end-pattern} ..
|
||||
[{options}]
|
||||
|
||||
This defines one region. It may span several lines.
|
||||
@ -3819,12 +3819,12 @@ DEFINING REGIONS *:syn-region* *:syn-start* *:syn-skip* *:syn-end*
|
||||
extend a containing match or item. Only
|
||||
useful for end patterns. Must be given before
|
||||
the patterns it applies to. |:syn-excludenl|
|
||||
start={start_pattern} The search pattern that defines the start of
|
||||
start={start-pattern} The search pattern that defines the start of
|
||||
the region. See |:syn-pattern| below.
|
||||
skip={skip_pattern} The search pattern that defines text inside
|
||||
skip={skip-pattern} The search pattern that defines text inside
|
||||
the region where not to look for the end
|
||||
pattern. See |:syn-pattern| below.
|
||||
end={end_pattern} The search pattern that defines the end of
|
||||
end={end-pattern} The search pattern that defines the end of
|
||||
the region. See |:syn-pattern| below.
|
||||
|
||||
Example: >
|
||||
@ -4348,7 +4348,7 @@ Notes:
|
||||
- A negative offset for an end pattern may not always work, because the end
|
||||
pattern may be detected when the highlighting should already have stopped.
|
||||
- Before Vim 7.2 the offsets were counted in bytes instead of characters.
|
||||
This didn't work well for multi-byte characters, so it was changed with the
|
||||
This didn't work well for multibyte characters, so it was changed with the
|
||||
Vim 7.2 release.
|
||||
- The start of a match cannot be in a line other than where the pattern
|
||||
matched. This doesn't work: "a\nb"ms=e. You can make the highlighting
|
||||
@ -4809,6 +4809,7 @@ in their own color.
|
||||
highlighting for groups added by the user!
|
||||
Uses the current value of 'background' to decide which
|
||||
default colors to use.
|
||||
If there was a default link, restore it. |:hi-link|
|
||||
|
||||
:hi[ghlight] clear {group-name}
|
||||
:hi[ghlight] {group-name} NONE
|
||||
|
@ -1,4 +1,4 @@
|
||||
*tabpage.txt* For Vim version 8.2. Last change: 2020 Feb 06
|
||||
*tabpage.txt* For Vim version 8.2. Last change: 2020 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -142,6 +142,7 @@ something else.
|
||||
:tabclose + " close the next tab page
|
||||
:tabclose 3 " close the third tab page
|
||||
:tabclose $ " close the last tab page
|
||||
:tabclose # " close the last accessed tab page
|
||||
<
|
||||
*:tabo* *:tabonly*
|
||||
:tabo[nly][!] Close all other tab pages.
|
||||
@ -170,6 +171,8 @@ something else.
|
||||
" one
|
||||
:tabonly 1 " close all tab pages except the first one
|
||||
:tabonly $ " close all tab pages except the last one
|
||||
:tabonly # " close all tab pages except the last
|
||||
" accessed one
|
||||
|
||||
|
||||
SWITCHING TO ANOTHER TAB PAGE:
|
||||
@ -193,6 +196,7 @@ gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
|
||||
:1tabnext " go to the first tab page
|
||||
:$tabnext " go to the last tab page
|
||||
:tabnext $ " as above
|
||||
:tabnext # " go to the last accessed tab page
|
||||
:tabnext - " go to the previous tab page
|
||||
:tabnext -1 " as above
|
||||
:tabnext + " go to the next tab page
|
||||
@ -221,6 +225,8 @@ gT Go to the previous tab page. Wraps around from the first one
|
||||
*:tabl* *:tablast*
|
||||
:tabl[ast] Go to the last tab page.
|
||||
|
||||
*g<Tab>* *CTRL-W_g<Tab>* *<C-Tab>*
|
||||
g<Tab> Go to the last accessed tab page.
|
||||
|
||||
Other commands:
|
||||
*:tabs*
|
||||
@ -253,6 +259,8 @@ REORDERING TAB PAGES:
|
||||
:tabmove " move the tab page to the last
|
||||
:$tabmove " as above
|
||||
:tabmove $ " as above
|
||||
:tabmove # " move the tab page after the last accessed
|
||||
" tab page
|
||||
|
||||
:tabm[ove] +[N]
|
||||
:tabm[ove] -[N]
|
||||
|
@ -1975,6 +1975,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:<cWORD> cmdline.txt /*:<cWORD>*
|
||||
:<cexpr> cmdline.txt /*:<cexpr>*
|
||||
:<cfile> cmdline.txt /*:<cfile>*
|
||||
:<client> cmdline.txt /*:<client>*
|
||||
:<cword> cmdline.txt /*:<cword>*
|
||||
:<sfile> cmdline.txt /*:<sfile>*
|
||||
:<sflnum> cmdline.txt /*:<sflnum>*
|
||||
@ -2446,6 +2447,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:filter various.txt /*:filter*
|
||||
:fin editing.txt /*:fin*
|
||||
:fina eval.txt /*:fina*
|
||||
:final vim9.txt /*:final*
|
||||
:finally eval.txt /*:finally*
|
||||
:find editing.txt /*:find*
|
||||
:fini repeat.txt /*:fini*
|
||||
@ -3160,6 +3162,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:sta windows.txt /*:sta*
|
||||
:stag windows.txt /*:stag*
|
||||
:star repeat.txt /*:star*
|
||||
:star-visual-range cmdline.txt /*:star-visual-range*
|
||||
:start insert.txt /*:start*
|
||||
:startgreplace insert.txt /*:startgreplace*
|
||||
:startinsert insert.txt /*:startinsert*
|
||||
@ -3369,6 +3372,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:up editing.txt /*:up*
|
||||
:update editing.txt /*:update*
|
||||
:v repeat.txt /*:v*
|
||||
:var vim9.txt /*:var*
|
||||
:ve various.txt /*:ve*
|
||||
:ver various.txt /*:ver*
|
||||
:verb various.txt /*:verb*
|
||||
@ -3497,6 +3501,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<C-ScrollWheelLeft> scroll.txt /*<C-ScrollWheelLeft>*
|
||||
<C-ScrollWheelRight> scroll.txt /*<C-ScrollWheelRight>*
|
||||
<C-ScrollWheelUp> scroll.txt /*<C-ScrollWheelUp>*
|
||||
<C-Tab> tabpage.txt /*<C-Tab>*
|
||||
<CR> motion.txt /*<CR>*
|
||||
<CSI> intro.txt /*<CSI>*
|
||||
<Char-> map.txt /*<Char->*
|
||||
@ -3613,6 +3618,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<cexpr> cmdline.txt /*<cexpr>*
|
||||
<cfile> cmdline.txt /*<cfile>*
|
||||
<character> intro.txt /*<character>*
|
||||
<client> cmdline.txt /*<client>*
|
||||
<count> map.txt /*<count>*
|
||||
<cword> cmdline.txt /*<cword>*
|
||||
<f-args> map.txt /*<f-args>*
|
||||
@ -3642,6 +3648,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<mods> map.txt /*<mods>*
|
||||
<nomodeline> autocmd.txt /*<nomodeline>*
|
||||
<q-args> map.txt /*<q-args>*
|
||||
<q-mods> map.txt /*<q-mods>*
|
||||
<range> map.txt /*<range>*
|
||||
<reg> map.txt /*<reg>*
|
||||
<register> map.txt /*<register>*
|
||||
@ -3684,6 +3691,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
>where repeat.txt /*>where*
|
||||
? pattern.txt /*?*
|
||||
?<CR> pattern.txt /*?<CR>*
|
||||
?? eval.txt /*??*
|
||||
@ repeat.txt /*@*
|
||||
@/ change.txt /*@\/*
|
||||
@: repeat.txt /*@:*
|
||||
@ -3816,6 +3824,7 @@ CTRL-W_bar windows.txt /*CTRL-W_bar*
|
||||
CTRL-W_c windows.txt /*CTRL-W_c*
|
||||
CTRL-W_d tagsrch.txt /*CTRL-W_d*
|
||||
CTRL-W_f windows.txt /*CTRL-W_f*
|
||||
CTRL-W_g<Tab> tabpage.txt /*CTRL-W_g<Tab>*
|
||||
CTRL-W_gF windows.txt /*CTRL-W_gF*
|
||||
CTRL-W_gT windows.txt /*CTRL-W_gT*
|
||||
CTRL-W_g] windows.txt /*CTRL-W_g]*
|
||||
@ -3892,6 +3901,8 @@ E10 message.txt /*E10*
|
||||
E100 diff.txt /*E100*
|
||||
E101 diff.txt /*E101*
|
||||
E102 diff.txt /*E102*
|
||||
E1023 vim9.txt /*E1023*
|
||||
E1024 vim9.txt /*E1024*
|
||||
E103 diff.txt /*E103*
|
||||
E104 digraph.txt /*E104*
|
||||
E1042 vim9.txt /*E1042*
|
||||
@ -3904,7 +3915,12 @@ E1092 vim9.txt /*E1092*
|
||||
E1094 vim9.txt /*E1094*
|
||||
E11 cmdline.txt /*E11*
|
||||
E110 eval.txt /*E110*
|
||||
E1109 eval.txt /*E1109*
|
||||
E111 eval.txt /*E111*
|
||||
E1110 eval.txt /*E1110*
|
||||
E1111 eval.txt /*E1111*
|
||||
E1112 eval.txt /*E1112*
|
||||
E1113 eval.txt /*E1113*
|
||||
E112 eval.txt /*E112*
|
||||
E113 eval.txt /*E113*
|
||||
E114 eval.txt /*E114*
|
||||
@ -4062,7 +4078,6 @@ E252 options.txt /*E252*
|
||||
E253 mbyte.txt /*E253*
|
||||
E254 message.txt /*E254*
|
||||
E255 sign.txt /*E255*
|
||||
E256 message.txt /*E256*
|
||||
E257 if_cscop.txt /*E257*
|
||||
E258 remote.txt /*E258*
|
||||
E259 if_cscop.txt /*E259*
|
||||
@ -4363,7 +4378,6 @@ E538 options.txt /*E538*
|
||||
E539 options.txt /*E539*
|
||||
E54 pattern.txt /*E54*
|
||||
E540 options.txt /*E540*
|
||||
E541 options.txt /*E541*
|
||||
E542 options.txt /*E542*
|
||||
E543 options.txt /*E543*
|
||||
E544 options.txt /*E544*
|
||||
@ -4435,6 +4449,7 @@ E607 eval.txt /*E607*
|
||||
E608 eval.txt /*E608*
|
||||
E609 if_cscop.txt /*E609*
|
||||
E61 pattern.txt /*E61*
|
||||
E610 editing.txt /*E610*
|
||||
E612 sign.txt /*E612*
|
||||
E613 print.txt /*E613*
|
||||
E614 editing.txt /*E614*
|
||||
@ -4916,6 +4931,7 @@ InsertChange autocmd.txt /*InsertChange*
|
||||
InsertCharPre autocmd.txt /*InsertCharPre*
|
||||
InsertEnter autocmd.txt /*InsertEnter*
|
||||
InsertLeave autocmd.txt /*InsertLeave*
|
||||
InsertLeavePre autocmd.txt /*InsertLeavePre*
|
||||
Integer eval.txt /*Integer*
|
||||
J change.txt /*J*
|
||||
Japanese mbyte.txt /*Japanese*
|
||||
@ -5720,6 +5736,7 @@ char2nr() eval.txt /*char2nr()*
|
||||
characterwise motion.txt /*characterwise*
|
||||
characterwise-register change.txt /*characterwise-register*
|
||||
characterwise-visual visual.txt /*characterwise-visual*
|
||||
charclass() eval.txt /*charclass()*
|
||||
charconvert_from-variable eval.txt /*charconvert_from-variable*
|
||||
charconvert_to-variable eval.txt /*charconvert_to-variable*
|
||||
charity uganda.txt /*charity*
|
||||
@ -5744,6 +5761,7 @@ cino-J indent.txt /*cino-J*
|
||||
cino-L indent.txt /*cino-L*
|
||||
cino-M indent.txt /*cino-M*
|
||||
cino-N indent.txt /*cino-N*
|
||||
cino-P indent.txt /*cino-P*
|
||||
cino-U indent.txt /*cino-U*
|
||||
cino-W indent.txt /*cino-W*
|
||||
cino-^ indent.txt /*cino-^*
|
||||
@ -6311,7 +6329,10 @@ extend() eval.txt /*extend()*
|
||||
extension-removal cmdline.txt /*extension-removal*
|
||||
extensions-improvements todo.txt /*extensions-improvements*
|
||||
f motion.txt /*f*
|
||||
false vim9.txt /*false*
|
||||
false-variable eval.txt /*false-variable*
|
||||
falsy eval.txt /*falsy*
|
||||
falsy-operator eval.txt /*falsy-operator*
|
||||
faq intro.txt /*faq*
|
||||
farsi farsi.txt /*farsi*
|
||||
farsi.txt farsi.txt /*farsi.txt*
|
||||
@ -6445,6 +6466,7 @@ ft-asm68k-syntax syntax.txt /*ft-asm68k-syntax*
|
||||
ft-asmh8300-syntax syntax.txt /*ft-asmh8300-syntax*
|
||||
ft-aspperl-syntax syntax.txt /*ft-aspperl-syntax*
|
||||
ft-aspvbs-syntax syntax.txt /*ft-aspvbs-syntax*
|
||||
ft-awk-plugin filetype.txt /*ft-awk-plugin*
|
||||
ft-bash-syntax syntax.txt /*ft-bash-syntax*
|
||||
ft-basic-syntax syntax.txt /*ft-basic-syntax*
|
||||
ft-c-omni insert.txt /*ft-c-omni*
|
||||
@ -6862,6 +6884,7 @@ g<End> motion.txt /*g<End>*
|
||||
g<Home> motion.txt /*g<Home>*
|
||||
g<LeftMouse> tagsrch.txt /*g<LeftMouse>*
|
||||
g<RightMouse> tagsrch.txt /*g<RightMouse>*
|
||||
g<Tab> tabpage.txt /*g<Tab>*
|
||||
g<Up> motion.txt /*g<Up>*
|
||||
g? change.txt /*g?*
|
||||
g?? change.txt /*g??*
|
||||
@ -6945,6 +6968,7 @@ gettabinfo() eval.txt /*gettabinfo()*
|
||||
gettabvar() eval.txt /*gettabvar()*
|
||||
gettabwinvar() eval.txt /*gettabwinvar()*
|
||||
gettagstack() eval.txt /*gettagstack()*
|
||||
gettext() eval.txt /*gettext()*
|
||||
getwininfo() eval.txt /*getwininfo()*
|
||||
getwinpos() eval.txt /*getwinpos()*
|
||||
getwinposx() eval.txt /*getwinposx()*
|
||||
@ -7737,6 +7761,8 @@ matchaddpos() eval.txt /*matchaddpos()*
|
||||
matcharg() eval.txt /*matcharg()*
|
||||
matchdelete() eval.txt /*matchdelete()*
|
||||
matchend() eval.txt /*matchend()*
|
||||
matchfuzzy() eval.txt /*matchfuzzy()*
|
||||
matchfuzzypos() eval.txt /*matchfuzzypos()*
|
||||
matchit-install usr_05.txt /*matchit-install*
|
||||
matchlist() eval.txt /*matchlist()*
|
||||
matchparen pi_paren.txt /*matchparen*
|
||||
@ -7915,7 +7941,6 @@ netrw-browser-options pi_netrw.txt /*netrw-browser-options*
|
||||
netrw-browser-settings pi_netrw.txt /*netrw-browser-settings*
|
||||
netrw-browser-var pi_netrw.txt /*netrw-browser-var*
|
||||
netrw-browsing pi_netrw.txt /*netrw-browsing*
|
||||
netrw-c pi_netrw.txt /*netrw-c*
|
||||
netrw-c-tab pi_netrw.txt /*netrw-c-tab*
|
||||
netrw-cB pi_netrw.txt /*netrw-cB*
|
||||
netrw-cadaver pi_netrw.txt /*netrw-cadaver*
|
||||
@ -8150,6 +8175,7 @@ new-more-highlighting version7.txt /*new-more-highlighting*
|
||||
new-more-unicode version7.txt /*new-more-unicode*
|
||||
new-multi-byte version5.txt /*new-multi-byte*
|
||||
new-multi-lang version6.txt /*new-multi-lang*
|
||||
new-multibyte version5.txt /*new-multibyte*
|
||||
new-netrw-explore version7.txt /*new-netrw-explore*
|
||||
new-network-files version6.txt /*new-network-files*
|
||||
new-omni-completion version7.txt /*new-omni-completion*
|
||||
@ -8163,7 +8189,7 @@ new-persistent-undo version7.txt /*new-persistent-undo*
|
||||
new-plugins version6.txt /*new-plugins*
|
||||
new-popup-window version8.txt /*new-popup-window*
|
||||
new-posix version7.txt /*new-posix*
|
||||
new-print-multi-byte version7.txt /*new-print-multi-byte*
|
||||
new-print-multibyte version7.txt /*new-print-multibyte*
|
||||
new-printing version6.txt /*new-printing*
|
||||
new-python3 version7.txt /*new-python3*
|
||||
new-regexp-engine version7.txt /*new-regexp-engine*
|
||||
@ -8299,12 +8325,14 @@ pascal.vim syntax.txt /*pascal.vim*
|
||||
patches-8 version8.txt /*patches-8*
|
||||
patches-8.1 version8.txt /*patches-8.1*
|
||||
patches-8.2 version8.txt /*patches-8.2*
|
||||
patches-after-8.2 version8.txt /*patches-after-8.2*
|
||||
pathshorten() eval.txt /*pathshorten()*
|
||||
pattern pattern.txt /*pattern*
|
||||
pattern-atoms pattern.txt /*pattern-atoms*
|
||||
pattern-delimiter change.txt /*pattern-delimiter*
|
||||
pattern-multi-byte pattern.txt /*pattern-multi-byte*
|
||||
pattern-multi-items pattern.txt /*pattern-multi-items*
|
||||
pattern-multibyte pattern.txt /*pattern-multibyte*
|
||||
pattern-overview pattern.txt /*pattern-overview*
|
||||
pattern-searches pattern.txt /*pattern-searches*
|
||||
pattern.txt pattern.txt /*pattern.txt*
|
||||
@ -8375,6 +8403,7 @@ popup-callback popup.txt /*popup-callback*
|
||||
popup-close popup.txt /*popup-close*
|
||||
popup-examples popup.txt /*popup-examples*
|
||||
popup-filter popup.txt /*popup-filter*
|
||||
popup-filter-errors popup.txt /*popup-filter-errors*
|
||||
popup-filter-mode popup.txt /*popup-filter-mode*
|
||||
popup-function-details popup.txt /*popup-function-details*
|
||||
popup-functions popup.txt /*popup-functions*
|
||||
@ -8468,6 +8497,7 @@ progname-variable eval.txt /*progname-variable*
|
||||
progpath-variable eval.txt /*progpath-variable*
|
||||
progress.vim syntax.txt /*progress.vim*
|
||||
prompt-buffer channel.txt /*prompt-buffer*
|
||||
prompt_getprompt() eval.txt /*prompt_getprompt()*
|
||||
prompt_setcallback() eval.txt /*prompt_setcallback()*
|
||||
prompt_setinterrupt() eval.txt /*prompt_setinterrupt()*
|
||||
prompt_setprompt() eval.txt /*prompt_setprompt()*
|
||||
@ -8816,6 +8846,7 @@ set-option options.txt /*set-option*
|
||||
set-spc-auto spell.txt /*set-spc-auto*
|
||||
setbufline() eval.txt /*setbufline()*
|
||||
setbufvar() eval.txt /*setbufvar()*
|
||||
setcellwidths() eval.txt /*setcellwidths()*
|
||||
setcharsearch() eval.txt /*setcharsearch()*
|
||||
setcmdpos() eval.txt /*setcmdpos()*
|
||||
setenv() eval.txt /*setenv()*
|
||||
@ -9625,9 +9656,12 @@ tooltips gui.txt /*tooltips*
|
||||
toupper() eval.txt /*toupper()*
|
||||
tr() eval.txt /*tr()*
|
||||
trim() eval.txt /*trim()*
|
||||
trinary eval.txt /*trinary*
|
||||
trojan-horse starting.txt /*trojan-horse*
|
||||
true vim9.txt /*true*
|
||||
true-variable eval.txt /*true-variable*
|
||||
trunc() eval.txt /*trunc()*
|
||||
truthy eval.txt /*truthy*
|
||||
try-conditionals eval.txt /*try-conditionals*
|
||||
try-echoerr eval.txt /*try-echoerr*
|
||||
try-finally eval.txt /*try-finally*
|
||||
@ -9637,6 +9671,8 @@ tutor usr_01.txt /*tutor*
|
||||
twice if_cscop.txt /*twice*
|
||||
two-engines pattern.txt /*two-engines*
|
||||
type() eval.txt /*type()*
|
||||
type-casting vim9.txt /*type-casting*
|
||||
type-checking vim9.txt /*type-checking*
|
||||
type-inference vim9.txt /*type-inference*
|
||||
type-mistakes tips.txt /*type-mistakes*
|
||||
typecorr-settings usr_41.txt /*typecorr-settings*
|
||||
@ -9933,6 +9969,7 @@ valgrind debug.txt /*valgrind*
|
||||
values() eval.txt /*values()*
|
||||
var-functions usr_41.txt /*var-functions*
|
||||
variable-scope eval.txt /*variable-scope*
|
||||
variable-types vim9.txt /*variable-types*
|
||||
variables eval.txt /*variables*
|
||||
various various.txt /*various*
|
||||
various-cmds various.txt /*various-cmds*
|
||||
@ -10006,10 +10043,13 @@ vim.vim syntax.txt /*vim.vim*
|
||||
vim7 version7.txt /*vim7*
|
||||
vim8 version8.txt /*vim8*
|
||||
vim9 vim9.txt /*vim9*
|
||||
vim9-classes vim9.txt /*vim9-classes*
|
||||
vim9-const vim9.txt /*vim9-const*
|
||||
vim9-declaration vim9.txt /*vim9-declaration*
|
||||
vim9-declarations usr_46.txt /*vim9-declarations*
|
||||
vim9-differences vim9.txt /*vim9-differences*
|
||||
vim9-export vim9.txt /*vim9-export*
|
||||
vim9-final vim9.txt /*vim9-final*
|
||||
vim9-gotchas vim9.txt /*vim9-gotchas*
|
||||
vim9-import vim9.txt /*vim9-import*
|
||||
vim9-rationale vim9.txt /*vim9-rationale*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2020 Jun 06
|
||||
*terminal.txt* For Vim version 8.2. Last change: 2020 Sep 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -476,9 +476,11 @@ term_dumpdiff({filename}, {filename} [, {options}])
|
||||
"term_name" name to use for the buffer name, instead
|
||||
of the first file name.
|
||||
"term_rows" vertical size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
instead of using 'termwinsize', but
|
||||
respecting the minimal size
|
||||
"term_cols" horizontal size to use for the terminal,
|
||||
instead of using 'termwinsize'
|
||||
instead of using 'termwinsize', but
|
||||
respecting the minimal size
|
||||
"vertical" split the window vertically
|
||||
"curwin" use the current window, do not split the
|
||||
window; fails if the current buffer
|
||||
|
@ -1,4 +1,4 @@
|
||||
*testing.txt* For Vim version 8.2. Last change: 2020 Jul 11
|
||||
*testing.txt* For Vim version 8.2. Last change: 2020 Sep 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -20,18 +20,17 @@ and for testing plugins.
|
||||
Vim can be tested after building it, usually with "make test".
|
||||
The tests are located in the directory "src/testdir".
|
||||
|
||||
There are several types of tests added over time:
|
||||
test33.in oldest, don't add any of these
|
||||
test_something.in old style tests
|
||||
There are two types of tests added over time:
|
||||
test20.in oldest, only for tiny and small builds
|
||||
test_something.vim new style tests
|
||||
|
||||
*new-style-testing*
|
||||
New tests should be added as new style tests. These use functions such as
|
||||
|assert_equal()| to keep the test commands and the expected result in one
|
||||
place.
|
||||
New tests should be added as new style tests. The test scripts are named
|
||||
test_<feature>.vim (replace <feature> with the feature under test). These use
|
||||
functions such as |assert_equal()| to keep the test commands and the expected
|
||||
result in one place.
|
||||
*old-style-testing*
|
||||
In some cases an old style test needs to be used. E.g. when testing Vim
|
||||
without the |+eval| feature.
|
||||
These tests are used only for testing Vim without the |+eval| feature.
|
||||
|
||||
Find more information in the file src/testdir/README.txt.
|
||||
|
||||
@ -292,8 +291,9 @@ assert_exception({error} [, {msg}]) *assert_exception()*
|
||||
catch
|
||||
call assert_exception('E492:')
|
||||
endtry
|
||||
|
||||
assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
|
||||
<
|
||||
*assert_fails()*
|
||||
assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
||||
Run {cmd} and add an error message to |v:errors| if it does
|
||||
NOT produce an error or when {error} is not found in the
|
||||
error message. Also see |assert-return|.
|
||||
@ -312,13 +312,25 @@ assert_fails({cmd} [, {error} [, {msg}]]) *assert_fails()*
|
||||
string for the first error: >
|
||||
assert_fails('cmd', ['', 'E987:'])
|
||||
<
|
||||
If {msg} is empty then it is not used. Do this to get the
|
||||
default message when passing the {lnum} argument.
|
||||
|
||||
When {lnum} is present and not negative, and the {error}
|
||||
argument is present and matches, then this is compared with
|
||||
the line number at which the error was reported. That can be
|
||||
the line number in a function or in a script.
|
||||
|
||||
When {context} is present it is used as a pattern and matched
|
||||
against the context (script name or function name) where
|
||||
{lnum} is located in.
|
||||
|
||||
Note that beeping is not considered an error, and some failing
|
||||
commands only beep. Use |assert_beeps()| for those.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetCmd()->assert_fails('E99:')
|
||||
|
||||
assert_false({actual} [, {msg}]) *assert_false()*
|
||||
assert_false({actual} [, {msg}]) *assert_false()*
|
||||
When {actual} is not false an error message is added to
|
||||
|v:errors|, like with |assert_equal()|.
|
||||
Also see |assert-return|.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*textprop.txt* For Vim version 8.2. Last change: 2020 Mar 05
|
||||
*textprop.txt* For Vim version 8.2. Last change: 2020 Oct 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -101,7 +101,7 @@ Manipulating text property types:
|
||||
prop_type_add({name}, {props}) define a new property type
|
||||
prop_type_change({name}, {props}) change an existing property type
|
||||
prop_type_delete({name} [, {props}]) delete a property type
|
||||
prop_type_get([{name} [, {props}]]) get property type values
|
||||
prop_type_get({name} [, {props}]) get property type values
|
||||
prop_type_list([{props}]) get list of property types
|
||||
|
||||
|
||||
@ -291,7 +291,7 @@ prop_type_delete({name} [, {props}]) *prop_type_delete()*
|
||||
Can also be used as a |method|: >
|
||||
GetPropName()->prop_type_delete()
|
||||
|
||||
prop_type_get([{name} [, {props}]]) *prop_type_get()*
|
||||
prop_type_get({name} [, {props}]) *prop_type_get()*
|
||||
Returns the properties of property type {name}. This is a
|
||||
dictionary with the same fields as was given to
|
||||
prop_type_add().
|
||||
|
@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Jul 26
|
||||
*todo.txt* For Vim version 8.2. Last change: 2020 Nov 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -38,36 +38,54 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
test_vim9_func fails: type from default value not used.
|
||||
|
||||
Without extra sleeps netbeans test has valgrind errors.
|
||||
PR #7248 from Yegappan - test doesn't fail without code changes
|
||||
|
||||
Making everything work:
|
||||
- more items in https://github.com/vim/vim/issues/6507
|
||||
- More "goto failed" with check for trylevel.
|
||||
- memory leak in test_vim9_script
|
||||
- Check that when sourcing a Vim9 script, only the global items can be used.
|
||||
- :put with a "=" register argument doesn't work, need to find the expression
|
||||
and compile it. (#6397)
|
||||
- At the script level, keep script variables local to the block they are
|
||||
declared in? Need to remember what variables were declared and delete them
|
||||
when leaving the block.
|
||||
- Implement { } block at the script level.
|
||||
- Closure argument call should not always set varargs, like any function call?
|
||||
- Invoke user command in a :def function
|
||||
- Make map() give an error if the resulting type is wrong.
|
||||
Add mapnew() or mapcopy() to create a new List/Dict for the result, which
|
||||
can have a different value type.
|
||||
- Error message for "'yes && 0" is "using String as a Number", should be "using
|
||||
String as a Bool".
|
||||
- Run the same tests in :def and Vim9 script, like in Test_expr7_not()
|
||||
- In autocmd: use legacy syntax, not whatever the current script uses?
|
||||
- need to check type when a declaration specifies a type: #6507
|
||||
let nr: number = 'asdf'
|
||||
- Make map() give an error if the resulting type is wrong.
|
||||
Add mapnew() to create a new List/Dict for the result, which can have a
|
||||
different value type.
|
||||
- Check many more builtin function arguments at compile time.
|
||||
- Make sure that in vim9script a function call without namespace only finds
|
||||
the script-local function, not a global one.
|
||||
- Make sure that where a callback is expected a function can be used (without
|
||||
quotes). E.g. sort() and map(). Also at the script level.
|
||||
- assignment to more complex lval: list[1][2][3] = 8
|
||||
Also "list[0] += value". test in Test_assign_dict_unknown_type().
|
||||
- ":put" with ISN_PUT does not handle range correctly, e.g. ":$-2put".
|
||||
Add command to parse range at runtime?
|
||||
- When defining an :autocmd or :command, how to specify using Vim9 syntax?
|
||||
- always do this when defined in a Vim9 script
|
||||
- add some command modifier.
|
||||
- For an :autocmd and :command argument, if a following line starts with "|"
|
||||
append it. It's like line continuation. (#6702)
|
||||
- Implement "export {one, two three}".
|
||||
- ISN_CHECKTYPE could use check_argtype()
|
||||
- Slice of list: [1, 2, 3][1:2].
|
||||
- give error for variable name:
|
||||
let p = function('NoSuchFunc')
|
||||
- Give runtime error if function argument is wrong.
|
||||
def Increment(nr: number)
|
||||
range(3)->Increment()
|
||||
- If a :def function is called with a function reference, compile it to get
|
||||
the function type.
|
||||
def Filter(x: string, Cond: func(string): bool)
|
||||
Filter(x, { v -> v =~ '^b' })
|
||||
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
|
||||
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
|
||||
- Expand `=expr` in :mkspell
|
||||
- Test that a function defined inside a :def function is local to that
|
||||
function, g: functions can be defined and script-local functions cannot be
|
||||
defined.
|
||||
- Does this work already: can use func as reference:
|
||||
def SomeFunc() ...
|
||||
map(list, SomeFunc)
|
||||
- Support passing v:none to use the default argument value. (#6504)
|
||||
- make 0 == 'string' fail on the script level, like inside :def.
|
||||
- Check that when using a user function name without prefix, it does not find
|
||||
@ -78,32 +96,29 @@ Making everything work:
|
||||
ret[i] = string(i)
|
||||
- Appending to dict item doesn't work:
|
||||
let d[i] ..= value
|
||||
- Using ".." at script level doesn't convert arguments to a string.
|
||||
- Compile replacement of :s command: s/pat/\=expr/
|
||||
- Compile redir to local variable: var_redir_start().
|
||||
- Compile builtin functions that access local variables:
|
||||
islocked()
|
||||
- possible memory leak in test_vim9_func through compile_nested_function.
|
||||
- memory leaks in test_vim9_expr
|
||||
- memory leaks in test_vim9_script
|
||||
- memory leaks in test_vim9_cmd
|
||||
- When evaluating constants for script variables, some functions could work:
|
||||
has('asdf'), len('string')
|
||||
- Implement "as Name" in "import Item as Name from ..."
|
||||
- Implement using imported items at script level from "import * as X" in
|
||||
eval_variable(). Should pass the ".xxx" that follows and return that.
|
||||
- Disallow unlet for local/script/imported vars
|
||||
- Make "++nr" work.
|
||||
- Make closures work:
|
||||
- Create closure in a loop. Need to make a list of them.
|
||||
- nested closure only uses one context, not all (#7150)
|
||||
- expandcmd() with `=expr` in filename uses legacy expression.
|
||||
- eval_expr() in ex_cexpr()
|
||||
- eval_expr() call in dbg_parsearg() and debuggy_find()
|
||||
- has() is compiled as a constant, but some checks are dynamic.
|
||||
Check for dynamic values, such as "gui_running".
|
||||
- Implement command modifiers, such as "silent". (#6530)
|
||||
New syntax and functionality:
|
||||
Improve error checking:
|
||||
- "echo Func()" is an error if Func() does not return anything.
|
||||
Test:
|
||||
- Using a Vim9 autoload script (functions must be global).
|
||||
Also:
|
||||
- For range: make table of first ASCII character with flag to quickly check if
|
||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||
@ -112,26 +127,23 @@ Also:
|
||||
- Make Foo.Bar() work to call the dict function. (#5676)
|
||||
- Error in any command in "vim9script" aborts sourcing.
|
||||
- Find a way to test expressions in legacy and Vim9 script without duplication
|
||||
- Fix memory leaks for test_vim9_disassemble, test_vim9_expr, test_vim9_script
|
||||
- Test each level of expressions properly, with type checking
|
||||
- Test try/catch and throw better, also nested.
|
||||
Test return inside try/finally jumps to finally and then returns.
|
||||
- call autoload function.
|
||||
- Implement more expressions, e.g. [a:b]
|
||||
- can use func as reference:
|
||||
def SomeFunc() ...
|
||||
map(list, SomeFunc)
|
||||
- Test: Function declared inside a :def function is local, disappears at the
|
||||
end of the function. Unless g: is used, just like with variables.
|
||||
- implement :type
|
||||
- import type declaration?
|
||||
- implement class
|
||||
- implement interface
|
||||
- predefined class: Promise<T>
|
||||
- Future work: See |vim9-classes|
|
||||
- implement enum
|
||||
- Make accessing varargs faster: arg[expr]
|
||||
EVAL expr
|
||||
LOADVARARG (varags idx)
|
||||
- Make debugging work - at least per function. Need to recompile a function
|
||||
to step through it line-by-line? Evaluate the stack and variables on the
|
||||
stack?
|
||||
- Make profiling work - Add ISN_PROFILE instructions after every line?
|
||||
- List commands when 'verbose' is set or :verbose is used.
|
||||
Further improvements:
|
||||
- compile options that are an expression, e.g. "expr:" in 'spellsuggest',
|
||||
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
|
||||
@ -146,6 +158,11 @@ Further improvements:
|
||||
- compile "expr" and "call" expression of a channel in channel_exe_cmd()?
|
||||
|
||||
Popup windows:
|
||||
- Add a flag to make a popup window focusable?
|
||||
CTRL-W P cycle over any preview window or focusable popup, end up back in
|
||||
current window.
|
||||
? - switch between current window and all popup windows
|
||||
Esc in popup window goes back to previous current window
|
||||
- Cursor not updated before a redraw, making it jump. (#5943)
|
||||
- Add a termcap entry for changing the cursor when it goes under the popup and
|
||||
back. like t_SI and t_EI (t_SU and t_EU, where "U" means under?)
|
||||
@ -154,6 +171,8 @@ Popup windows:
|
||||
positioned? PopupNew? Could be used to set some options or move it out of
|
||||
the way. (#5737)
|
||||
However, it may also cause trouble, changing the popup of another plugin.
|
||||
- Width is not computed correctly when minwidth and maxwidth are &columns
|
||||
and padding and a scrollbar are used. (#6676)
|
||||
- Add a way to use popup_menu() synchronously: instead of invoking the
|
||||
callback, return the choice. (Ben Jackson, #6534)
|
||||
- Use popup (or popup menu) for command line completion
|
||||
@ -169,13 +188,11 @@ Popup windows:
|
||||
- Figure out the size and position better if wrapping inserts indent
|
||||
|
||||
Text properties:
|
||||
- :goto does not go to the right place when test properties are present.
|
||||
- :goto does not go to the right place when text properties are present.
|
||||
(#5930)
|
||||
- "cc" does not call inserted_bytes(). (Axel Forsman, #5763)
|
||||
- Get E685 with a sequence of commands. (#5674)
|
||||
- Combining text property with 'cursorline' does not always work (Billie
|
||||
Cleek, #5533)
|
||||
- Text properties spanning more than one line. #5683
|
||||
- See remarks at top of src/textprop.c
|
||||
|
||||
'incsearch' with :s:
|
||||
@ -200,7 +217,7 @@ Terminal debugger:
|
||||
an already running program. (M. Kelly)
|
||||
- When only gdb window exists, on "quit" edit another buffer.
|
||||
- Use a sign group
|
||||
- Termdebug does not work when Vim was build with mzscheme: gdb hangs just
|
||||
- Termdebug does not work when Vim was built with mzscheme: gdb hangs just
|
||||
after "run". Everything else works, including communication channel. Not
|
||||
initializing mzscheme avoid the problem, thus it's not some #ifdef.
|
||||
- Add support for lldb? issue #3565
|
||||
@ -252,18 +269,43 @@ Terminal emulator window:
|
||||
- When 'encoding' is not utf-8, or the job is using another encoding, setup
|
||||
conversions.
|
||||
|
||||
Error numbers available:
|
||||
E610, E611, E653
|
||||
Error numbers available: E653
|
||||
|
||||
Mapping with partial match not executed properly in GTK. (Ingo Karkat, #7082)
|
||||
|
||||
Patch for Template string: #4634
|
||||
Have another look at the implementation.
|
||||
|
||||
Patch to implement the vimtutor with a plugin: #6414
|
||||
Was originally written by Felipe Morales.
|
||||
|
||||
Remove SPACE_IN_FILENAME ? It is only used for completion.
|
||||
|
||||
Patch to use collaction based sorting. (Christian Brabandt, #6229)
|
||||
Add 'termguiattr' option, use "gui=" attributes in the terminal? Would work
|
||||
with 'termguicolors'. #1740
|
||||
|
||||
Patch for blockwise paste reporting changes: #6660.
|
||||
|
||||
Missing filetype test for bashrc, PKGBUILD, etc.
|
||||
|
||||
Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
|
||||
changes.
|
||||
|
||||
Add an option to start_timer() to return from the input loop with K_IGNORE.
|
||||
This is useful e.g. when a popup was created that disables mappings, we need
|
||||
to return from vgetc() to make this happen. #7011
|
||||
|
||||
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
|
||||
Scroll doesn't work correctly, why?
|
||||
|
||||
Expanding <mods> should put the tab number from cmdmod.tab before "tab".
|
||||
Any way to convert "$" back by using a special value? (#6901)
|
||||
|
||||
Can we detect true color support? https://gist.github.com/XVilka/8346728
|
||||
Try setting a color then request the current color, like using t_u7.
|
||||
|
||||
Check out PR #543 (Roland Puntaier).
|
||||
Patch for multi-byte characters in langmap and applying a mapping on them.
|
||||
Patch for multibyte characters in langmap and applying a mapping on them.
|
||||
(Christian Brabandt, 2015 Jun 12, update July 25)
|
||||
Is this the right solution? Need to cleanup langmap behavior:
|
||||
- in vgetorpeek() apply langmap to the typeahead buffer and put the result in
|
||||
@ -284,15 +326,16 @@ autocommands for the buffer lifecycle:
|
||||
BufIsRenamed (after buffer ID gets another name)
|
||||
The buffer list and windows are locked, no changes possible
|
||||
|
||||
Make it possible to map (console and GUI): #6457
|
||||
<C-[> 0x27 or is this <Esc> ?
|
||||
<C-\> 0x28
|
||||
<C-]> 0x29
|
||||
<C-^> 0x30
|
||||
<C-_> 0x31
|
||||
Matchparen doesn't remove highlight after undo. (#7054)
|
||||
Is OK when syntax HL is active.
|
||||
|
||||
Patch for Template string: #4634
|
||||
Have another look at the implementation.
|
||||
Currently Del can be used to delete the last character of a typed count.
|
||||
Can it also be used to delete an incomplete Normal mode command? (#7096)
|
||||
After an operator: should work. After "a" or "i" for text objects: should
|
||||
work.
|
||||
|
||||
Using "au!" after "filetype on" is a bit slow. Can the matching of
|
||||
autocommands be made faster? (#7056)
|
||||
|
||||
Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
|
||||
replace this:
|
||||
@ -303,6 +346,8 @@ Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
|
||||
let res = GetLeftFunc() <=> GetRightFunc() ?< lower ?= equal ?> upper
|
||||
Patch to make :q work with local arglist. (Christian Brabandt, #6286)
|
||||
|
||||
Why does Test_invalid_sid() not work in the GUI?
|
||||
|
||||
Lua: updating wrong buffer when using newly created, unloaded buffer.
|
||||
(#6539)
|
||||
|
||||
@ -333,6 +378,9 @@ character. (#6154)
|
||||
|
||||
undo result wrong: Masato Nishihata, #4798
|
||||
|
||||
After recovering from a swap file the undofile should not be used, it causes
|
||||
corruption. (#6631)
|
||||
|
||||
When 'lazyredraw' is set sometimes the title is not updated.
|
||||
(Jason Franklin, 2020 Feb 3) Looks like a race condition.
|
||||
|
||||
@ -350,13 +398,13 @@ When 'fileignorecase' is set ":e testfile.c" works to edit TestFile.c, but
|
||||
":find testfile.c" does not ignore case.
|
||||
Might be related to #6088.
|
||||
|
||||
Error for reverse range when using :vimgrep in file "[id-01] file.txt".
|
||||
(#6919)
|
||||
|
||||
When changing the crypt key the buffer should be considered modified.
|
||||
Like when changing 'fileformat'. Save the old key in save_file_ff().
|
||||
(Ninu-Ciprian Marginean)
|
||||
|
||||
Patch to implement the vimtutor with a plugin: #6414
|
||||
Was originally writtten by Felipe Morales.
|
||||
|
||||
Strange sequence of BufWipeout and BufNew events while doing omni-complete.
|
||||
(Paul Jolly, #5656)
|
||||
Get BufDelete without preceding BufNew. (Paul Jolly, #5694)
|
||||
@ -379,6 +427,7 @@ Undo puts cursor in wrong line after "cG<Esc>" undo.
|
||||
Implement completion for "breakadd". Should expand the second argument, e.g.
|
||||
"func", and then function names after ":breakadd func". Including
|
||||
script-local functions.
|
||||
Also for ":profile".
|
||||
|
||||
:unmap <c-n> gives error but does remove the mapping. (Antony Scriven, 2019
|
||||
Dec 19)
|
||||
@ -390,9 +439,11 @@ Patch to fix session file when using multiple tab pages. (Jason Franklin, 2019
|
||||
May 20)
|
||||
Also put :argadd commands at the start for all buffers, so that their order
|
||||
remains equal? Then %argdel to clean it up. Do try this with 'hidden' set.
|
||||
Also #4994: window-local options not always restored, related to using :badd.
|
||||
Also #5326: netrw buffers are not restored.
|
||||
|
||||
Alternate file is not set in the session file. Use setwintabvar("@#") ?
|
||||
(#6714)
|
||||
|
||||
When 'backupdir' has a path ending in double slash (meaning: use full path of
|
||||
the file) combined with 'patchmode' the file name is wrong. (#5791)
|
||||
|
||||
@ -404,6 +455,7 @@ Should do current file first and not split it up when more results are found.
|
||||
|
||||
Undo history wrong when ":next file" re-uses a buffer. (#5426)
|
||||
ex_next() should pass flag to do_argfile(), then to do_ecmd().
|
||||
Is there a test for this?
|
||||
|
||||
Help for ":argadd fname" says that if "fname" is already in the argument list
|
||||
that entry is used. But instead it's always added. (#6210)
|
||||
@ -465,7 +517,7 @@ Better: use the "z" prefix. or ]t) and [t(.
|
||||
Modeless selection doesn't work in gvim. (#4783)
|
||||
Caused by patch 8.1.1534.
|
||||
|
||||
Visual highlight not removed when 'dipslay' is "lastline" and line doesn't
|
||||
Visual highlight not removed when 'display' is "lastline" and line doesn't
|
||||
fit. (Kevin Lawler, #4457)
|
||||
|
||||
Current position in the changelist should be local to the buffer. (#2173)
|
||||
@ -479,6 +531,7 @@ Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
|
||||
13, #2910) Can't reproduce?
|
||||
|
||||
Display messed up with matchparen, wrapping and scrolling. (#5638)
|
||||
Screen update bug related to matchparen. (Chris Heath, 2017 Mar 4, #1532)
|
||||
|
||||
When getting a focus event halfway a mapping this aborts the mapping. E.g.
|
||||
when "qq" is mapped and after the first "q" the mouse is moved outside of the
|
||||
@ -525,10 +578,6 @@ Patch to have text objects defined by arbitrary single characters. (Daniel
|
||||
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
|
||||
Added tests (James McCoy, 2016 Aug 3, #958). Still needs more work.
|
||||
|
||||
":2resize +10" uses size of the current window, adds 10 and applies it to
|
||||
window 2. User expects 10 to be added to size of window 2. (Daniel Steinberg,
|
||||
#5443)
|
||||
|
||||
Would be nice to set tab-local values for 'diffexpr' and 'diffopt'. Use
|
||||
t:diffexpr_option t:diffopt_option? (#4782)
|
||||
|
||||
@ -1200,18 +1249,14 @@ Suggestion to improve pt-br spell checking. (Marcelo D Montu, 2016 Dec 15,
|
||||
|
||||
Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
|
||||
|
||||
Completion for :!cmd shows each match twice. #1435
|
||||
|
||||
GTK: When adding a timer from 'balloonexpr' it won't fire, because
|
||||
g_main_context_iteration() doesn't return. Need to trigger an event when the
|
||||
timer expires.
|
||||
|
||||
Screen update bug related to matchparen. (Chris Heath, 2017 Mar 4, #1532)
|
||||
|
||||
Rule to use "^" for statusline does not work if a space is defined with
|
||||
highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)
|
||||
|
||||
8 "stl" and "stlnc" in 'fillchars' don't work for multi-byte characters.
|
||||
8 "stl" and "stlnc" in 'fillchars' don't work for multibyte characters.
|
||||
Patch by Christian Wellenbrock, 2013 Jul 5.
|
||||
|
||||
Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca
|
||||
@ -1362,7 +1407,7 @@ Regexp problems:
|
||||
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
|
||||
(Lech Lorens, 2014 Feb 3)
|
||||
- Issue 164: freeze on regexp search.
|
||||
- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
|
||||
- Ignorecase not handled properly for multibyte characters. (Axel Bender,
|
||||
2013 Dec 11)
|
||||
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin
|
||||
Szamotulski; Remark from Brett 2014 Jan 6 and 7.
|
||||
@ -1400,9 +1445,6 @@ Undo message is not always properly displayed. Patch by Ken Takata, 2013 oct
|
||||
3. Doesn't work properly according to Yukihiro Nakadaira.
|
||||
Also see #1635.
|
||||
|
||||
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
||||
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
||||
|
||||
Idea from Sven: record sequence of keys. Useful to show others what they are
|
||||
doing (look over the shoulder), and also to see what happened.
|
||||
Probably list of keystrokes, with some annotations for mode changes.
|
||||
@ -1443,8 +1485,6 @@ Have a way to get the call stack, in a function and from an exception.
|
||||
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
|
||||
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
|
||||
|
||||
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
||||
|
||||
Patch to improve map documentation. Issue #799.
|
||||
|
||||
We can use '. to go to the last change in the current buffer, but how about
|
||||
@ -1471,7 +1511,7 @@ Zero-out krypt key information when no longer in use. (Ben Fritz, 2017 May 15)
|
||||
|
||||
Add stronger encryption. Could use libsodium (NaCl).
|
||||
https://github.com/jedisct1/libsodium/
|
||||
Possibly include the needed code so that it can be build everywhere.
|
||||
Possibly include the needed code so that it can be built everywhere.
|
||||
|
||||
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
|
||||
but the reference remains valid.
|
||||
@ -1577,7 +1617,7 @@ Patch to add :mapgroup, put mappings in a group like augroup.
|
||||
Value returned by virtcol() changes depending on how lines wrap. This is
|
||||
inconsistent with the documentation.
|
||||
|
||||
Value of virtcol() for '[ and '] depend on multi-byte character.
|
||||
Value of virtcol() for '[ and '] depend on multibyte character.
|
||||
(Luchr, #277)
|
||||
|
||||
Can we cache the syntax attributes, so that updates for 'relativenumber' and
|
||||
@ -1664,8 +1704,6 @@ Extended file attributes lost on write (backupcopy=no). Issue 306.
|
||||
Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
|
||||
OK to not block marks?
|
||||
|
||||
Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
|
||||
|
||||
Patch on Issue 72: 'autochdir' causes problems for :vimgrep.
|
||||
|
||||
When two SIGWINCH arrive very quickly, the second one may be lost.
|
||||
@ -1732,14 +1770,6 @@ arguments.
|
||||
|
||||
Problem with transparent and matchgroup. Issue #475
|
||||
|
||||
Spell files use a latin single quote. Unicode also has another single quote:
|
||||
0x2019. (Ron Aaron, 2014 Apr 4)
|
||||
New OpenOffice spell files support this with ICONV. But they are not
|
||||
compatible with Vim spell files. The old files can no longer be downloaded.
|
||||
|
||||
Spell checking: Add a feature to only consider two spaces after a dot to start
|
||||
a new sentence. Don't give the capitalization error when there is one space.
|
||||
|
||||
Idea: For a window in the middle (has window above and below it), use
|
||||
right-mouse-drag on the status line to move a window up/down without changing
|
||||
its height? It's like dragging the status bar above it at the same time.
|
||||
@ -2109,7 +2139,7 @@ Also for another example (ZyX, 2011 Jan 24)
|
||||
|
||||
Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
|
||||
|
||||
"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
|
||||
"0g@$" puts '] on last byte of multibyte. (ZyX, 2011 Jan 22)
|
||||
|
||||
Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
|
||||
|
||||
@ -2414,9 +2444,6 @@ Don't load macmap.vim on startup, turn it into a plugin. (Ron Aaron,
|
||||
|
||||
Add "no_hlsearch" to winsaveview().
|
||||
|
||||
Cursorline highlighting combines with Search ('hlsearch') but not with
|
||||
SpellBad. (Jim Karsten, 2009 Mar 18)
|
||||
|
||||
When 'foldmethod' is "indent", adding an empty line below a fold and then
|
||||
indented text, creates a new fold instead of joining it with the previous one.
|
||||
(Evan Laforge, 2009 Oct 17)
|
||||
@ -2616,7 +2643,7 @@ work, the backslash is removed, assuming that it escapes the (. (Valery
|
||||
Kondakoff, 2009 May 13)
|
||||
|
||||
Win32: Using "gvim --remote-tab-silent elŝuti.txt" doesn't work, the
|
||||
multi-byte character isn't passed and edits elsuti.txt.
|
||||
multibyte character isn't passed and edits elsuti.txt.
|
||||
(Raúl Núñez de Arenas Coronado, 2015 Dec 18)
|
||||
|
||||
Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
|
||||
@ -2854,9 +2881,6 @@ Jun 18)
|
||||
|
||||
If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
|
||||
|
||||
Feature request: Command to go to previous tab, like what CTRL-W p does for
|
||||
windows. (Adam George)
|
||||
|
||||
In debug mode, using CTRL-R = to evaluate a function causes stepping through
|
||||
the function. (Hari Krishna Dara, 2006 Jun 28)
|
||||
|
||||
@ -2926,12 +2950,6 @@ the Visual area. Can this be fixed? (James Vega, 2006 Sept 15)
|
||||
|
||||
GUI: When combining fg en bg make sure they are not equal.
|
||||
|
||||
Spell checking: Add a way to specify punctuation characters. Add the
|
||||
superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
|
||||
|
||||
Spell checking in popup menu: If the only problem is the case of the first
|
||||
character, don't offer "ignore" and "add to word list".
|
||||
|
||||
Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
|
||||
Jun 5)
|
||||
|
||||
@ -2945,10 +2963,6 @@ Jul 22)
|
||||
|
||||
There should be something about spell checking in the user manual.
|
||||
|
||||
Spell menu: When using the Popup menu to select a replacement word,
|
||||
":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use "z="
|
||||
somehow? Or use a new function.
|
||||
|
||||
Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
|
||||
|
||||
Add an option to specify the character to use when a double-width character is
|
||||
@ -3180,7 +3194,7 @@ Awaiting updated patches:
|
||||
7 ATTENTION dialog choices are more logical when "Delete it" appears
|
||||
before "Quit". Patch by Robert Webb, 2004 May 3.
|
||||
- Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work
|
||||
for multi-byte characters.
|
||||
for multibyte characters.
|
||||
- Win32: add options to print dialog. Patch from Vipin Aravind.
|
||||
- Patch to add highlighting for whitespace. (Tom Schumm, 2003 Jul 5)
|
||||
use the patch that keeps using HLF_8 if HLF_WS has not
|
||||
@ -3232,6 +3246,29 @@ Better 'rightleft' or BIDI support:
|
||||
- Minimal Vi with bidi support: https://github.com/aligrudi/neatvi
|
||||
By Ali Gholami Rudi, also worked on arabic.c
|
||||
|
||||
|
||||
Spell checking:
|
||||
- When 'cursorline' is set and the first word should have SpellCap
|
||||
highlighting, redrawing the line removes it when moving the cursor away
|
||||
from the line. (#7085) Would need to inspect the end of the previous line
|
||||
and update "capcol_lnum" and "cap_col".
|
||||
- Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
|
||||
- Spell files use a latin single quote. Unicode also has another single
|
||||
quote: 0x2019. (Ron Aaron, 2014 Apr 4)
|
||||
New OpenOffice spell files support this with ICONV. But they are not
|
||||
compatible with Vim spell files. The old files can no longer be
|
||||
downloaded.
|
||||
- Add a feature to only consider two spaces after a dot to start a new
|
||||
sentence. Don't give the capitalization error when there is one space.
|
||||
- Add a way to specify punctuation characters. Add the superscript numbers
|
||||
by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
|
||||
- In popup menu: If the only problem is the case of the first character,
|
||||
don't offer "ignore" and "add to word list".
|
||||
- Spell menu: When using the Popup menu to select a replacement word,
|
||||
":spellrepeat" doesn't work. SpellReplace() uses setline(). Can it use
|
||||
"z=" somehow? Or use a new function.
|
||||
|
||||
|
||||
Quickfix/Location List:
|
||||
- Window size is wrong when using quickfix window. (Lifepillar, 2018 Aug 24,
|
||||
#2999)
|
||||
@ -3676,8 +3713,8 @@ Macintosh:
|
||||
8 'hkmap' should probably be global-local.
|
||||
8 Using ":s" in a function changes the previous replacement string. Save
|
||||
"old_sub" in save_search_patterns()?
|
||||
8 Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
|
||||
is a multi-byte character.
|
||||
8 Should allow multibyte characters for the delimiter: ":s+a+b+" where "+"
|
||||
is a multibyte character.
|
||||
8 When appending to a file and 'patchmode' isn't empty, a backup file is
|
||||
always written, even when the original file already exists.
|
||||
9 When getting focus while writing a large file, could warn for this file
|
||||
@ -3800,10 +3837,6 @@ Macintosh:
|
||||
on the status line (caused by 'winheight'). Select window on button up,
|
||||
instead of on button down.
|
||||
8 Dragging the status line doesn't scroll but redraw.
|
||||
9 Evaluating 'statusline' in build_stl_str_hl() does not properly check for
|
||||
reaching the end of the available buffer.
|
||||
Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
|
||||
May 14)
|
||||
8 When performing incremental search, should abort searching as soon as a
|
||||
character is typed.
|
||||
8 When the value of $MAKE contains a path, configure can't handle this.
|
||||
@ -3832,9 +3865,7 @@ Macintosh:
|
||||
two lines at a time. "k" doesn't do this. (Cory T. Echols)
|
||||
8 When write_viminfo() is used while there are many orphaned viminfo
|
||||
tempfiles writing the viminfo file fails. Give a clear error message so
|
||||
that the user knows he has to delete the files.
|
||||
7 It's possible to redefine a script-local function with ":func
|
||||
<SNR>123_Test()". (Krishna) Disallow this.
|
||||
that the user knows the files have to be deleted.
|
||||
|
||||
|
||||
I can't reproduce these (if you can, let me know how!):
|
||||
@ -3982,7 +4013,7 @@ Documentation:
|
||||
- change to cursor position and curswant
|
||||
- if it can be undone (u/CTRL-R) and redone (.)
|
||||
- how it works for folded lines
|
||||
- how it works with multi-byte characters
|
||||
- how it works with multibyte characters
|
||||
9 In change.txt, remark about Javadoc isn't right. Right alignment would
|
||||
work too.
|
||||
8 Spread the windows commands over the other files. For example, ":stag"
|
||||
@ -4005,7 +4036,7 @@ Help:
|
||||
- Support a way to view (and edit) .info files.
|
||||
- Implement a "sticky" help window, some help text lines that are always
|
||||
displayed in a window with fixed height. (Guckes) Use "~/.vimhelp" file,
|
||||
user can edit it to insert his favorite commands, new account can contain a
|
||||
user can edit it to insert favorite commands, new account can contain a
|
||||
default contents.
|
||||
- Make 'winminheight' a local option, so that the user can set a minimal
|
||||
height for the help window (and other windows).
|
||||
@ -4218,8 +4249,8 @@ Multi-byte characters:
|
||||
8 Add configure option to be able to disable using the iconv library. (Udo
|
||||
Schweigert)
|
||||
9 'aleph' should be set to 1488 for Unicode. (Zvi Har'El)
|
||||
8 Should add test for using various commands with multi-byte characters.
|
||||
8 'infercase' doesn't work with multi-byte characters.
|
||||
8 Should add test for using various commands with multibyte characters.
|
||||
8 'infercase' doesn't work with multibyte characters.
|
||||
8 toupper() function doesn't handle byte count changes.
|
||||
7 Searching and composing characters:
|
||||
When searching, should order of composing characters be ignored?
|
||||
@ -4227,7 +4258,7 @@ Multi-byte characters:
|
||||
characters can be manipulated.
|
||||
8 Should implement 'delcombine' for command line editing.
|
||||
8 Detect overlong UTF-8 sequences and handle them like illegal bytes.
|
||||
8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte
|
||||
8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multibyte
|
||||
characters.
|
||||
8 UTF-8: "r" in Visual mode doesn't take composing characters.
|
||||
8 UTF-8: When there is a precomposed character in the font, use it instead
|
||||
@ -4251,14 +4282,14 @@ Multi-byte characters:
|
||||
convert_input() for Mac GUI.
|
||||
- Add mnemonics from RFC1345 longer than two characters.
|
||||
Support CTRL-K _{mnemonic}_
|
||||
- Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
|
||||
- Make 'breakat' accept multibyte characters. Problem: can't use a lookup
|
||||
table anymore (breakat_flags[]).
|
||||
Simplistic solution: when 'formatoptions' contains "m" also break a line
|
||||
at a multi-byte character >= 0x100.
|
||||
at a multibyte character >= 0x100.
|
||||
- Add the possibility to enter mappings which are used whenever normal text
|
||||
could be entered. E.g., for "f" command. But not in Normal mode. Sort
|
||||
of opposite of 'langmap'. Use ":amap" command?
|
||||
- When breaking a line, take properties of multi-byte characters into
|
||||
- When breaking a line, take properties of multibyte characters into
|
||||
account. The "linebreak" program from Bruno Haible can do it:
|
||||
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
||||
But it's very complicated...
|
||||
@ -5323,11 +5354,11 @@ Text objects:
|
||||
8 Add test script for text object commands "aw", "iW", etc.
|
||||
8 Add text object for part of a CamelHumpedWord and under_scored_word.
|
||||
(Scott Graham) "ac" and "au"?
|
||||
8 Add a text object for any kind of quoting, also with multi-byte
|
||||
8 Add a text object for any kind of quoting, also with multibyte
|
||||
characters. Option to specify what quotes are recognized (default: all)
|
||||
use "aq" and "iq". Use 'quotepairs' to define pairs of quotes, like
|
||||
'matchpairs'?
|
||||
8 Add text object for any kind of parens, also multi-byte ones.
|
||||
8 Add text object for any kind of parens, also multibyte ones.
|
||||
8 Add a way to make an ":omap" for a user-defined text object. Requires
|
||||
changing the starting position in oap->start.
|
||||
8 Add "gp" and "gP" commands: insert text and make sure there is a single
|
||||
@ -5673,7 +5704,7 @@ Buffer list:
|
||||
Also for other windows: ":inwin {winnr} {cmd}". How to make sure that
|
||||
this works properly for all commands, and still be able to return to the
|
||||
current buffer/window? E.g.: ":inbuf xxx only".
|
||||
8 Add File.{recent_files} menu entries: Recently edited files.
|
||||
8 Add File.{recent-files} menu entries: Recently edited files.
|
||||
Ron Aaron has a plugin for this: mru.vim.
|
||||
8 Unix: Check all uses of fnamecmp() and fnamencmp() if they should check
|
||||
inode too.
|
||||
@ -5772,7 +5803,7 @@ Modelines:
|
||||
.cpp files.
|
||||
- Support the "abbreviate" command in modelines (Kearns). Careful for
|
||||
characters after <Esc>, that is a security leak.
|
||||
- Add option setting to ask user if he wants to have the modelines executed
|
||||
- Add an option setting to ask the user if the modelines are to be executed
|
||||
or not. Same for .exrc in local dir.
|
||||
|
||||
|
||||
@ -6103,7 +6134,7 @@ Various improvements:
|
||||
regexp which triggers auto-formatting (for one line).
|
||||
":set autoformat=\\s$".
|
||||
- Be able to redefine where a sentence stops. Use a regexp pattern?
|
||||
- Support multi-byte characters for sentences. Example from Ben Peterson.
|
||||
- Support multibyte characters for sentences. Example from Ben Peterson.
|
||||
7 Add command "g)" to go to the end of a sentence, "g(" to go back to the
|
||||
end of a sentence. (Servatius Brandt)
|
||||
- Be able to redefine where a paragraph starts. For "[[" where the '{' is
|
||||
|
@ -1,4 +1,4 @@
|
||||
*undo.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||
*undo.txt* For Vim version 8.2. Last change: 2020 Oct 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -392,7 +392,7 @@ back the text of three deletes ago with '"3P'.
|
||||
*redo-register*
|
||||
If you want to get back more than one part of deleted text, you can use a
|
||||
special feature of the repeat command ".". It will increase the number of the
|
||||
register used. So if you first do ""1P", the following "." will result in a
|
||||
register used. So if you first do '"1P', the following "." will result in a
|
||||
'"2P'. Repeating this will result in all numbered registers being inserted.
|
||||
|
||||
Example: If you deleted text with 'dd....' it can be restored with
|
||||
|
@ -1,4 +1,4 @@
|
||||
*usr_03.txt* For Vim version 8.2. Last change: 2020 Feb 29
|
||||
*usr_03.txt* For Vim version 8.2. Last change: 2020 Sep 03
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@ -30,10 +30,11 @@ Table of contents: |usr_toc.txt|
|
||||
|
||||
To move the cursor forward one word, use the "w" command. Like most Vim
|
||||
commands, you can use a numeric prefix to move past multiple words. For
|
||||
example, "3w" moves three words. This figure shows how it works:
|
||||
example, "3w" moves three words. This figure shows how it works (starting at
|
||||
the position marked with "x"):
|
||||
|
||||
This is a line with example text ~
|
||||
--->-->->----------------->
|
||||
x-->-->->----------------->
|
||||
w w w 3w
|
||||
|
||||
Notice that "w" moves to the start of the next word if it already is at the
|
||||
@ -41,15 +42,15 @@ start of a word.
|
||||
The "b" command moves backward to the start of the previous word:
|
||||
|
||||
This is a line with example text ~
|
||||
<----<--<-<---------<---
|
||||
<----<--<-<---------<--x
|
||||
b b b 2b b
|
||||
|
||||
There is also the "e" command that moves to the next end of a word and "ge",
|
||||
which moves to the previous end of a word:
|
||||
|
||||
This is a line with example text ~
|
||||
<- <--- -----> ---->
|
||||
ge ge e e
|
||||
<----<----x---->------------>
|
||||
2ge ge e we
|
||||
|
||||
If you are at the last word of a line, the "w" command will take you to the
|
||||
first word in the next line. Thus you can use this to move through a
|
||||
@ -82,12 +83,12 @@ an <End> key it will do the same thing.
|
||||
|
||||
The "^" command moves to the first non-blank character of the line. The "0"
|
||||
command (zero) moves to the very first character of the line, and the <Home>
|
||||
key does the same thing. In a picture:
|
||||
key does the same thing. In a picture ("." indicates a space):
|
||||
|
||||
^
|
||||
<------------
|
||||
<-----------x
|
||||
.....This is a line with example text ~
|
||||
<----------------- --------------->
|
||||
<----------------x x-------------->
|
||||
0 $
|
||||
|
||||
(the "....." indicates blanks here)
|
||||
|
@ -161,7 +161,7 @@ line break.
|
||||
==============================================================================
|
||||
*04.3* Repeating a change
|
||||
|
||||
The "." command is one of the most simple yet powerful commands in Vim. It
|
||||
The "." command is one of the simplest yet powerful commands in Vim. It
|
||||
repeats the last change. For instance, suppose you are editing an HTML file
|
||||
and want to delete all the <B> tags. You position the cursor on the first <
|
||||
and delete the <B> with the command "df>". You then go to the < of the next
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user