mirror of
https://github.com/zoriya/vim.git
synced 2025-12-11 17:56:17 +00:00
Compare commits
585 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9377df3ecd | ||
|
|
65e4c4f686 | ||
|
|
b2c8750c4e | ||
|
|
ac8069bb63 | ||
|
|
6199d43f4b | ||
|
|
2c33d7bb69 | ||
|
|
6047e2c722 | ||
|
|
1d68d9b2bd | ||
|
|
8065cf2bfb | ||
|
|
4a6fcf8047 | ||
|
|
9202162c5c | ||
|
|
9b69f22e66 | ||
|
|
18cfa940e2 | ||
|
|
0ab35b279f | ||
|
|
4635e11c6b | ||
|
|
75f69e5a18 | ||
|
|
631820536e | ||
|
|
73f4439ca6 | ||
|
|
54e5dbf58e | ||
|
|
d78f03f860 | ||
|
|
c902609f69 | ||
|
|
a0a6f2776e | ||
|
|
19a3d68b2c | ||
|
|
2a6a6c3014 | ||
|
|
712549e04e | ||
|
|
f33606112a | ||
|
|
5ece3e359c | ||
|
|
0aa398f55a | ||
|
|
3a497e1a41 | ||
|
|
c958b31638 | ||
|
|
f52c383156 | ||
|
|
65ed136844 | ||
|
|
c79977a437 | ||
|
|
660b85e39a | ||
|
|
a5e6621aad | ||
|
|
816968defc | ||
|
|
d371bbe0ab | ||
|
|
db51007108 | ||
|
|
24a98a0eb7 | ||
|
|
9cf39cc57f | ||
|
|
1ec96c9269 | ||
|
|
d1bc96ce24 | ||
|
|
1b38344e00 | ||
|
|
97fbc404fc | ||
|
|
2a02745709 | ||
|
|
09ca932f8e | ||
|
|
6edeaf387c | ||
|
|
a8fc0d3817 | ||
|
|
22ab547dc2 | ||
|
|
7c456a4511 | ||
|
|
452030e530 | ||
|
|
0c6a32963d | ||
|
|
0b05e491b4 | ||
|
|
e0de17d84e | ||
|
|
378daf87d3 | ||
|
|
96e7a6ee45 | ||
|
|
bb3e6416f1 | ||
|
|
a21a6a9ade | ||
|
|
eb163d73b1 | ||
|
|
e745d75c3e | ||
|
|
0263146b5d | ||
|
|
53f8174eae | ||
|
|
76301956f0 | ||
|
|
f3d769a585 | ||
|
|
8b21de33bb | ||
|
|
fc7649f8b8 | ||
|
|
b00fdf6eed | ||
|
|
9cb03716c9 | ||
|
|
2e6ab18729 | ||
|
|
a5a2be26fe | ||
|
|
37c64c78fd | ||
|
|
e22bbf6508 | ||
|
|
a8e93d63e3 | ||
|
|
71b2964066 | ||
|
|
d326ad6e93 | ||
|
|
f16c71b669 | ||
|
|
1b9645de3c | ||
|
|
dde403c2d8 | ||
|
|
49150a41f8 | ||
|
|
63c4e8a198 | ||
|
|
8adb0d03ca | ||
|
|
4033c55eca | ||
|
|
e738a1a033 | ||
|
|
1514e8f427 | ||
|
|
495b7dd213 | ||
|
|
4cf56bbc85 | ||
|
|
eef9adddab | ||
|
|
fc2b270cfd | ||
|
|
b5e79ef5a9 | ||
|
|
e8ff56b28e | ||
|
|
f5291f301e | ||
|
|
69fbc9e1da | ||
|
|
38baa3e634 | ||
|
|
69e8aa7511 | ||
|
|
1190cf68e2 | ||
|
|
ef6b8de42f | ||
|
|
478e3a78c3 | ||
|
|
c71053c611 | ||
|
|
71eeb74a60 | ||
|
|
072412ed45 | ||
|
|
518d699699 | ||
|
|
b984b80cd8 | ||
|
|
49a613f84a | ||
|
|
238d43b328 | ||
|
|
a038cb5eab | ||
|
|
c212798333 | ||
|
|
b4d5fbabc9 | ||
|
|
45d5f26d11 | ||
|
|
95c83c64be | ||
|
|
65f084749b | ||
|
|
c168bd4bd3 | ||
|
|
414168d97f | ||
|
|
e9f6fd27d0 | ||
|
|
8696bbaf52 | ||
|
|
e09ba7bae5 | ||
|
|
7be9b50fd7 | ||
|
|
5b5adf5b9c | ||
|
|
9d18961323 | ||
|
|
aba680a851 | ||
|
|
74121231be | ||
|
|
09d6c3818d | ||
|
|
b4ea1914b8 | ||
|
|
fe386641b0 | ||
|
|
3c518400d1 | ||
|
|
1a735d6c9b | ||
|
|
2dc9d26c14 | ||
|
|
ba2929b6af | ||
|
|
99433291b1 | ||
|
|
c6da01a5b8 | ||
|
|
75a60f74ce | ||
|
|
37b53270e1 | ||
|
|
618d6d277e | ||
|
|
e723c42836 | ||
|
|
2e49b6b20c | ||
|
|
c35e4cb4fe | ||
|
|
1b9f9d315f | ||
|
|
28550b74bb | ||
|
|
c3f81394ef | ||
|
|
6756c7037f | ||
|
|
3971905bac | ||
|
|
3d8d2c7ca5 | ||
|
|
8b53b79ea5 | ||
|
|
1bfdc07a49 | ||
|
|
6e32f615eb | ||
|
|
11aa62f8f9 | ||
|
|
178333783f | ||
|
|
9d954207e2 | ||
|
|
e88fc7a574 | ||
|
|
9d654a8d8c | ||
|
|
595a40226e | ||
|
|
d8d85bfb7d | ||
|
|
5e80de3f3e | ||
|
|
00ccf54630 | ||
|
|
ae96b8d058 | ||
|
|
6a8691d483 | ||
|
|
2254a8ad0c | ||
|
|
4ec86ddd77 | ||
|
|
9f45ccd1bf | ||
|
|
e2e69e4813 | ||
|
|
3653822546 | ||
|
|
b31cf2bb0b | ||
|
|
cf4b00c856 | ||
|
|
da22b8cc8b | ||
|
|
dada6d2a8e | ||
|
|
ef68e4fa52 | ||
|
|
3346cc4ffb | ||
|
|
995e4afcfe | ||
|
|
9ac9dfa9e2 | ||
|
|
2c809b7c7d | ||
|
|
9e8dcf9d6f | ||
|
|
da73253a0b | ||
|
|
3d593c2dc9 | ||
|
|
2db0ec4b2e | ||
|
|
5c6dbcb03f | ||
|
|
4e83961985 | ||
|
|
4bebc9a056 | ||
|
|
a539f4f1ae | ||
|
|
1a333bc44a | ||
|
|
dc5471d482 | ||
|
|
0f0f230012 | ||
|
|
d41babef89 | ||
|
|
4ad3b2b588 | ||
|
|
dde6034111 | ||
|
|
f3af54eeb1 | ||
|
|
97a80e440a | ||
|
|
b47a2597e6 | ||
|
|
e561a7e2fa | ||
|
|
48340b62e8 | ||
|
|
97f65fafdb | ||
|
|
3c37a8e660 | ||
|
|
4db2554954 | ||
|
|
1dccf6351d | ||
|
|
cbe6944956 | ||
|
|
c572da5f67 | ||
|
|
7adf06f4e2 | ||
|
|
4ab7968aa9 | ||
|
|
8d9f0ef5c6 | ||
|
|
e85928a324 | ||
|
|
02e177d3e8 | ||
|
|
0903d56f5c | ||
|
|
13ebb03e75 | ||
|
|
dde81312b0 | ||
|
|
a4f99f5a8b | ||
|
|
e922460394 | ||
|
|
833e0e3c8c | ||
|
|
753289f9bf | ||
|
|
be0b72977f | ||
|
|
f6d9f96b2d | ||
|
|
33d66bd9fa | ||
|
|
6c4d12c527 | ||
|
|
285f243e50 | ||
|
|
77f7474d08 | ||
|
|
829aa64cf5 | ||
|
|
d2c45a1964 | ||
|
|
ec0e07a324 | ||
|
|
6d0826dfbb | ||
|
|
5830232c02 | ||
|
|
3f9a1ff141 | ||
|
|
740c433c59 | ||
|
|
0cbba82359 | ||
|
|
b109bb4e12 | ||
|
|
eef0531621 | ||
|
|
37819ed540 | ||
|
|
5983d50247 | ||
|
|
b241208a13 | ||
|
|
edbc0d46cf | ||
|
|
8efa026a25 | ||
|
|
ce1c32780a | ||
|
|
37b9b81997 | ||
|
|
0aed9a2e2e | ||
|
|
d6a7b3e6bb | ||
|
|
dc926dd0dd | ||
|
|
77ac9b5c62 | ||
|
|
93c92eff26 | ||
|
|
fc8bec0be4 | ||
|
|
3eee06e7d4 | ||
|
|
683b796725 | ||
|
|
d21f8b54b2 | ||
|
|
9aa1569128 | ||
|
|
98ebd2bbec | ||
|
|
8e539c51c3 | ||
|
|
f66a2cda2c | ||
|
|
ea5d6fadbb | ||
|
|
97bd5e6527 | ||
|
|
cfce71710b | ||
|
|
82de3c2c03 | ||
|
|
bc906e445c | ||
|
|
f5be7cd016 | ||
|
|
a83e3962ac | ||
|
|
84ed4ad084 | ||
|
|
ade59630c7 | ||
|
|
9e13aa7729 | ||
|
|
989a70c590 | ||
|
|
6fe15bbc87 | ||
|
|
a9f8ee05f4 | ||
|
|
60104f183c | ||
|
|
d21b16f3c0 | ||
|
|
3678393baa | ||
|
|
4fa1019f80 | ||
|
|
05fbfdcda4 | ||
|
|
c08706135d | ||
|
|
51c23687a9 | ||
|
|
6bb18a878c | ||
|
|
bce4f62d30 | ||
|
|
2bb7b6b0e4 | ||
|
|
304b64c9e6 | ||
|
|
6b93b0e838 | ||
|
|
9f0139a2a8 | ||
|
|
4f44b88684 | ||
|
|
69905d108b | ||
|
|
e62780543f | ||
|
|
2438ae3d67 | ||
|
|
dcaa61384c | ||
|
|
274a52fd58 | ||
|
|
e0f314aa8d | ||
|
|
62426e168e | ||
|
|
5cc1f2c477 | ||
|
|
679653e59c | ||
|
|
55b6926450 | ||
|
|
3d9bdfebf1 | ||
|
|
893029ab20 | ||
|
|
c977092053 | ||
|
|
3cd43ccccb | ||
|
|
589b1109c5 | ||
|
|
37c4583594 | ||
|
|
7eedd4398a | ||
|
|
0cd2a94a40 | ||
|
|
9698ad7201 | ||
|
|
8cad930a25 | ||
|
|
b81bc77ae7 | ||
|
|
da43b61ddd | ||
|
|
8ed5400739 | ||
|
|
08d384ff3a | ||
|
|
89e06c807a | ||
|
|
d9bc8a801a | ||
|
|
444fda2084 | ||
|
|
ae33833850 | ||
|
|
cf8d840ce9 | ||
|
|
1ccd8fff8a | ||
|
|
05aafed54b | ||
|
|
76ca1b4041 | ||
|
|
ab6c8587ba | ||
|
|
2d33e90f81 | ||
|
|
e41e3b41f9 | ||
|
|
f1237f1814 | ||
|
|
dd693ce28b | ||
|
|
8ab3c1dc6b | ||
|
|
0a0217abfa | ||
|
|
82b9ca05f4 | ||
|
|
292d569935 | ||
|
|
7fadbf8325 | ||
|
|
75373f3808 | ||
|
|
e20b3eba73 | ||
|
|
116a0f800c | ||
|
|
6d87e9e1c6 | ||
|
|
f8d57a5049 | ||
|
|
33a43bee9c | ||
|
|
f3402b1b7f | ||
|
|
1c864093f9 | ||
|
|
4535654246 | ||
|
|
e16b00a158 | ||
|
|
02113ed4df | ||
|
|
bae5a17a73 | ||
|
|
cae92dc3d5 | ||
|
|
6d8197485d | ||
|
|
39d21e3c30 | ||
|
|
0af2d32c21 | ||
|
|
22aa23fd8c | ||
|
|
aaa8a35fbd | ||
|
|
98fd66d311 | ||
|
|
086d535f77 | ||
|
|
b9279e73ae | ||
|
|
a9f028103f | ||
|
|
cfcc022c54 | ||
|
|
35422f45ba | ||
|
|
d53109886b | ||
|
|
8456ea8050 | ||
|
|
78712a7733 | ||
|
|
69198197fd | ||
|
|
07c043af5f | ||
|
|
4a137b4586 | ||
|
|
6b7355a30d | ||
|
|
8e5eece8c5 | ||
|
|
eb44a68b42 | ||
|
|
620d064b0b | ||
|
|
102dc7f891 | ||
|
|
5be8dd087f | ||
|
|
e9c21aed62 | ||
|
|
b4a6721a28 | ||
|
|
1b66c00aec | ||
|
|
69a76feda9 | ||
|
|
01efafad12 | ||
|
|
3c3a80dc59 | ||
|
|
2f3a90a3bd | ||
|
|
398ee7326b | ||
|
|
7c9aec4ac8 | ||
|
|
d8dc179937 | ||
|
|
e0ab979fa7 | ||
|
|
66cd19fef1 | ||
|
|
223896d3e9 | ||
|
|
5c838a3e71 | ||
|
|
b6843a007d | ||
|
|
fae4283542 | ||
|
|
94053a5125 | ||
|
|
0792048842 | ||
|
|
f55e4c867f | ||
|
|
20e6cd07ba | ||
|
|
65cedb2074 | ||
|
|
2a4f06f370 | ||
|
|
9c8448472f | ||
|
|
c2ce52c011 | ||
|
|
12d853fae1 | ||
|
|
aaef1bae3c | ||
|
|
7da346035b | ||
|
|
983b3a5bc4 | ||
|
|
979e8c5346 | ||
|
|
662d938666 | ||
|
|
3633cf5201 | ||
|
|
392d1bfa5e | ||
|
|
c9456cec0c | ||
|
|
d09be32142 | ||
|
|
b000e328ef | ||
|
|
12d93ee26d | ||
|
|
0e23e9c5e7 | ||
|
|
97870002d3 | ||
|
|
22aad2f880 | ||
|
|
f144a3fb73 | ||
|
|
43c007ff22 | ||
|
|
0e7885e67d | ||
|
|
423802d1a2 | ||
|
|
68c4bdd53c | ||
|
|
5449f7c6fc | ||
|
|
d0b6c6c54e | ||
|
|
30fe88677d | ||
|
|
d507a685ad | ||
|
|
6e1ef28057 | ||
|
|
f98246d484 | ||
|
|
d1ee0043c0 | ||
|
|
91d348abfc | ||
|
|
c6df10e5d3 | ||
|
|
70229f951f | ||
|
|
1e8340bbbf | ||
|
|
696d00f488 | ||
|
|
dcbfa33fa1 | ||
|
|
63ecddab6d | ||
|
|
d85f271bf8 | ||
|
|
d973bcb483 | ||
|
|
607985a95f | ||
|
|
9966b21a57 | ||
|
|
93723a4ef1 | ||
|
|
1a0f200500 | ||
|
|
b41bf8e6b4 | ||
|
|
fa228f716a | ||
|
|
96ad8c9ac1 | ||
|
|
f86eea9f01 | ||
|
|
1f28b4c6a3 | ||
|
|
8bcc99b821 | ||
|
|
38ed1f5bea | ||
|
|
d243a2a5ef | ||
|
|
bb543088a5 | ||
|
|
59ee05b2f5 | ||
|
|
67883b4909 | ||
|
|
a2c45a17c1 | ||
|
|
0e83f02d80 | ||
|
|
d28cc3f55d | ||
|
|
ab6eec3887 | ||
|
|
cb25d18220 | ||
|
|
293424c199 | ||
|
|
4cc93dc85a | ||
|
|
a1b5b09281 | ||
|
|
f0a521f4f7 | ||
|
|
fc716d7256 | ||
|
|
8f14bb58cb | ||
|
|
f80451e6fe | ||
|
|
b2a76ec06b | ||
|
|
1c84493bbe | ||
|
|
86067eb05e | ||
|
|
8a77306fa1 | ||
|
|
2155441460 | ||
|
|
d60547bf80 | ||
|
|
c4f43bce7c | ||
|
|
81bdd6a025 | ||
|
|
dbe948d6c3 | ||
|
|
b6e0ec6b71 | ||
|
|
9cc5f75932 | ||
|
|
c31f9ae4f1 | ||
|
|
1f2903c431 | ||
|
|
065f41c814 | ||
|
|
43da3e36b2 | ||
|
|
cdeae99b4e | ||
|
|
9c5589c7ce | ||
|
|
2aeaf3fc01 | ||
|
|
26af85d97b | ||
|
|
eeac677886 | ||
|
|
b13501f7da | ||
|
|
d7d3cbedb3 | ||
|
|
613fe7ad2b | ||
|
|
6ed8069c79 | ||
|
|
816e7660e1 | ||
|
|
b7a8dfeb49 | ||
|
|
e173fd0972 | ||
|
|
61a6605ea1 | ||
|
|
9f1f49b839 | ||
|
|
5a1feb8091 | ||
|
|
825680f5f4 | ||
|
|
8f84c3a866 | ||
|
|
5f7e7bdcf8 | ||
|
|
e906ae85b2 | ||
|
|
58556cd0e5 | ||
|
|
e825d8b0a4 | ||
|
|
cdb7e1b7f9 | ||
|
|
04f62f881c | ||
|
|
a8788f4d0b | ||
|
|
bf92e3a371 | ||
|
|
7f93703149 | ||
|
|
a7df8c70c8 | ||
|
|
80dd3f9d41 | ||
|
|
4fc63505d3 | ||
|
|
8c0095c59a | ||
|
|
8008b6318d | ||
|
|
96ca27a0ee | ||
|
|
60d0e97497 | ||
|
|
4d2ba822fd | ||
|
|
938783d0ab | ||
|
|
e45deb7997 | ||
|
|
9b50bba643 | ||
|
|
c9041079a1 | ||
|
|
90305c66a8 | ||
|
|
6a77d2667e | ||
|
|
c0aa482a5a | ||
|
|
cb8bbe9bf3 | ||
|
|
26e8558e74 | ||
|
|
c4da113ef9 | ||
|
|
a92522fbf3 | ||
|
|
0daf843b4c | ||
|
|
1b0675caec | ||
|
|
74675a666b | ||
|
|
85dad2c815 | ||
|
|
8603356bf4 | ||
|
|
8327d1df17 | ||
|
|
292eff0c5a | ||
|
|
f1d13478e3 | ||
|
|
5a15b6aa0a | ||
|
|
cae24be4a8 | ||
|
|
163095f088 | ||
|
|
faf29d7f91 | ||
|
|
c577d813b7 | ||
|
|
11e79bb04e | ||
|
|
0ea5070d79 | ||
|
|
710b4a1646 | ||
|
|
c4f833808a | ||
|
|
8858498516 | ||
|
|
cce1cf12eb | ||
|
|
e5ae108ab8 | ||
|
|
a34293ae0a | ||
|
|
e4f25e4a8d | ||
|
|
da5116da45 | ||
|
|
a83fe75ca7 | ||
|
|
c2226845eb | ||
|
|
a693d0584b | ||
|
|
9c4fefffb6 | ||
|
|
86f100dc09 | ||
|
|
9f5f7bf4d5 | ||
|
|
e6bf655bc4 | ||
|
|
28b238225a | ||
|
|
2e147caa14 | ||
|
|
0b2eef24bc | ||
|
|
18d90b95c4 | ||
|
|
07ecfa64a1 | ||
|
|
41cc038ff8 | ||
|
|
8eeeba8c02 | ||
|
|
1814183b86 | ||
|
|
182a17b1e8 | ||
|
|
774e5a9673 | ||
|
|
5d7be4f0fa | ||
|
|
ea20de8146 | ||
|
|
cc0750dc6e | ||
|
|
4eb6531b03 | ||
|
|
1e8e14552e | ||
|
|
24a9e348aa | ||
|
|
a1bd86e0f2 | ||
|
|
53564f7c1a | ||
|
|
5fe691240b | ||
|
|
090209bfbd | ||
|
|
6d006f9e95 | ||
|
|
f8be461d02 | ||
|
|
4670490673 | ||
|
|
a529ce068b | ||
|
|
a1fed064d1 | ||
|
|
4d785895d1 | ||
|
|
d2c061d24c | ||
|
|
6a8958db25 | ||
|
|
6f9a476b2f | ||
|
|
d6abcd154c | ||
|
|
663bb23316 | ||
|
|
c768a208ca | ||
|
|
383aa84c0d | ||
|
|
157069b04e | ||
|
|
868831f122 | ||
|
|
9049298f8d | ||
|
|
fadacf01d0 | ||
|
|
06f1ed2f78 | ||
|
|
0946326580 | ||
|
|
1ef9bbe215 | ||
|
|
5b1affefd0 | ||
|
|
fbd0b0af68 | ||
|
|
8cf91286ca | ||
|
|
3ec574f2b5 | ||
|
|
2102035488 | ||
|
|
83064068ea | ||
|
|
9a48961d8b | ||
|
|
d7383881c8 | ||
|
|
21b34b63b3 | ||
|
|
56f2db562d | ||
|
|
3a429efb62 | ||
|
|
875feea6ce | ||
|
|
60964f6874 | ||
|
|
1c13c0fe3e | ||
|
|
fa4161cb0c | ||
|
|
f84b122a99 | ||
|
|
6b1da3312e | ||
|
|
f085f4266e | ||
|
|
add8dce38d | ||
|
|
e21d69eec1 | ||
|
|
206155280d |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -38,6 +38,7 @@ src/pathdef.c
|
|||||||
src/Obj*/pathdef.c
|
src/Obj*/pathdef.c
|
||||||
gvimext.dll
|
gvimext.dll
|
||||||
gvimext.lib
|
gvimext.lib
|
||||||
|
gvim.lib
|
||||||
runtime/doc/uganda.nsis.txt
|
runtime/doc/uganda.nsis.txt
|
||||||
|
|
||||||
# Borland C++
|
# Borland C++
|
||||||
|
|||||||
26
.travis.yml
26
.travis.yml
@@ -1,4 +1,5 @@
|
|||||||
language: c
|
language: c
|
||||||
|
dist: trusty
|
||||||
|
|
||||||
os:
|
os:
|
||||||
- osx
|
- osx
|
||||||
@@ -20,7 +21,7 @@ env:
|
|||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||||
# ASAN build
|
# ASAN build
|
||||||
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
|
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||||
|
|
||||||
sudo: false
|
sudo: false
|
||||||
@@ -41,12 +42,12 @@ matrix:
|
|||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
|
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
|
||||||
- os: osx
|
- os: osx
|
||||||
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
|
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc
|
compiler: clang
|
||||||
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||||
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan"
|
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: clang
|
compiler: clang
|
||||||
@@ -70,17 +71,25 @@ addons:
|
|||||||
- libperl-dev
|
- libperl-dev
|
||||||
- python-dev
|
- python-dev
|
||||||
- python3-dev
|
- python3-dev
|
||||||
- liblua5.1-0-dev
|
- liblua5.2-dev
|
||||||
- lua5.1
|
- lua5.2
|
||||||
|
- ruby-dev
|
||||||
- cscope
|
- cscope
|
||||||
|
- libgtk2.0-dev
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
|
- rvm reset
|
||||||
|
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
|
||||||
|
# ("pyenv global system" doesn't seem to work.)
|
||||||
|
- if [ "$TRAVIS_OS_NAME" = "linux" ] && which python3 | grep '/opt/python/' > /dev/null; then export PATH=$(echo $PATH | sed -e "s#$(echo $(which python3) | sed -e 's#/python3$##'):##"); fi
|
||||||
- if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
|
- if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
|
||||||
# needed for https support for coveralls
|
# needed for https support for coveralls
|
||||||
# building cffi only works with gcc, not with clang
|
# building cffi only works with gcc, not with clang
|
||||||
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
|
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
|
||||||
# Lua is not installed on Travis OSX
|
# Lua is not installed on Travis OSX
|
||||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
|
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then export HOMEBREW_NO_AUTO_UPDATE=1; brew update; brew install lua; export LUA_PREFIX=/usr/local; fi
|
||||||
|
# Use llvm-cov instead of gcov when compiler is clang.
|
||||||
|
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CC" = "clang" ]; then ln -sf $(which llvm-cov) /home/travis/bin/gcov; fi
|
||||||
|
|
||||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
||||||
before_script:
|
before_script:
|
||||||
@@ -91,7 +100,8 @@ script:
|
|||||||
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
|
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
|
||||||
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
|
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi
|
||||||
- (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
|
- (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && if [ "$BUILD" = "yes" ]; then make -j$NPROC; fi)
|
||||||
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
|
# Show Vim version and also if_xx versions.
|
||||||
|
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-1.vim -c quit > /dev/null; ${SRCDIR}/vim --not-a-term -u NONE -S ${SRCDIR}/testdir/if_ver-2.vim -c quit > /dev/null; cat if_ver.txt; fi
|
||||||
- if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
|
- if [ -n "$ASAN_OPTIONS" ]; then export PATH=/usr/lib/llvm-$(clang -v 2>&1 | sed -n 's/.*version \([1-9]\.[0-9][0-9]*\).*/\1/p')/bin:$PATH; fi
|
||||||
- make $SHADOWOPT $TEST
|
- make $SHADOWOPT $TEST
|
||||||
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
|
- if [ -n "$ASAN_OPTIONS" ]; then for log in $(find -type f -name 'asan.*' -size +0); do cat "$log"; err=1; done; fi
|
||||||
|
|||||||
77
Filelist
77
Filelist
@@ -85,6 +85,7 @@ SRC_ALL = \
|
|||||||
src/syntax.c \
|
src/syntax.c \
|
||||||
src/tag.c \
|
src/tag.c \
|
||||||
src/term.c \
|
src/term.c \
|
||||||
|
src/terminal.c \
|
||||||
src/term.h \
|
src/term.h \
|
||||||
src/termlib.c \
|
src/termlib.c \
|
||||||
src/ui.c \
|
src/ui.c \
|
||||||
@@ -104,6 +105,7 @@ SRC_ALL = \
|
|||||||
src/testdir/Make_all.mak \
|
src/testdir/Make_all.mak \
|
||||||
src/testdir/*.in \
|
src/testdir/*.in \
|
||||||
src/testdir/*.py \
|
src/testdir/*.py \
|
||||||
|
src/testdir/lsan-suppress.txt \
|
||||||
src/testdir/sautest/autoload/*.vim \
|
src/testdir/sautest/autoload/*.vim \
|
||||||
src/testdir/runtest.vim \
|
src/testdir/runtest.vim \
|
||||||
src/testdir/shared.vim \
|
src/testdir/shared.vim \
|
||||||
@@ -133,6 +135,8 @@ SRC_ALL = \
|
|||||||
src/testdir/bench*.in \
|
src/testdir/bench*.in \
|
||||||
src/testdir/bench*.vim \
|
src/testdir/bench*.vim \
|
||||||
src/testdir/samples/*.txt \
|
src/testdir/samples/*.txt \
|
||||||
|
src/testdir/if_ver*.vim \
|
||||||
|
src/testdir/xterm_ramp.vim \
|
||||||
src/proto.h \
|
src/proto.h \
|
||||||
src/proto/arabic.pro \
|
src/proto/arabic.pro \
|
||||||
src/proto/blowfish.pro \
|
src/proto/blowfish.pro \
|
||||||
@@ -187,6 +191,7 @@ SRC_ALL = \
|
|||||||
src/proto/syntax.pro \
|
src/proto/syntax.pro \
|
||||||
src/proto/tag.pro \
|
src/proto/tag.pro \
|
||||||
src/proto/term.pro \
|
src/proto/term.pro \
|
||||||
|
src/proto/terminal.pro \
|
||||||
src/proto/termlib.pro \
|
src/proto/termlib.pro \
|
||||||
src/proto/ui.pro \
|
src/proto/ui.pro \
|
||||||
src/proto/undo.pro \
|
src/proto/undo.pro \
|
||||||
@@ -194,6 +199,76 @@ SRC_ALL = \
|
|||||||
src/proto/version.pro \
|
src/proto/version.pro \
|
||||||
src/proto/winclip.pro \
|
src/proto/winclip.pro \
|
||||||
src/proto/window.pro \
|
src/proto/window.pro \
|
||||||
|
src/libvterm/.bzrignore \
|
||||||
|
src/libvterm/.gitignore \
|
||||||
|
src/libvterm/LICENSE \
|
||||||
|
src/libvterm/Makefile \
|
||||||
|
src/libvterm/README \
|
||||||
|
src/libvterm/tbl2inc_c.pl \
|
||||||
|
src/libvterm/vterm.pc.in \
|
||||||
|
src/libvterm/bin/unterm.c \
|
||||||
|
src/libvterm/bin/vterm-ctrl.c \
|
||||||
|
src/libvterm/bin/vterm-dump.c \
|
||||||
|
src/libvterm/doc/URLs \
|
||||||
|
src/libvterm/doc/seqs.txt \
|
||||||
|
src/libvterm/include/vterm.h \
|
||||||
|
src/libvterm/include/vterm_keycodes.h \
|
||||||
|
src/libvterm/src/encoding.c \
|
||||||
|
src/libvterm/src/encoding/DECdrawing.inc \
|
||||||
|
src/libvterm/src/encoding/DECdrawing.tbl \
|
||||||
|
src/libvterm/src/encoding/uk.inc \
|
||||||
|
src/libvterm/src/encoding/uk.tbl \
|
||||||
|
src/libvterm/src/keyboard.c \
|
||||||
|
src/libvterm/src/mouse.c \
|
||||||
|
src/libvterm/src/parser.c \
|
||||||
|
src/libvterm/src/pen.c \
|
||||||
|
src/libvterm/src/rect.h \
|
||||||
|
src/libvterm/src/screen.c \
|
||||||
|
src/libvterm/src/state.c \
|
||||||
|
src/libvterm/src/unicode.c \
|
||||||
|
src/libvterm/src/utf8.h \
|
||||||
|
src/libvterm/src/vterm.c \
|
||||||
|
src/libvterm/src/vterm_internal.h \
|
||||||
|
src/libvterm/t/02parser.test \
|
||||||
|
src/libvterm/t/03encoding_utf8.test \
|
||||||
|
src/libvterm/t/10state_putglyph.test \
|
||||||
|
src/libvterm/t/11state_movecursor.test \
|
||||||
|
src/libvterm/t/12state_scroll.test \
|
||||||
|
src/libvterm/t/13state_edit.test \
|
||||||
|
src/libvterm/t/14state_encoding.test \
|
||||||
|
src/libvterm/t/15state_mode.test \
|
||||||
|
src/libvterm/t/16state_resize.test \
|
||||||
|
src/libvterm/t/17state_mouse.test \
|
||||||
|
src/libvterm/t/18state_termprops.test \
|
||||||
|
src/libvterm/t/20state_wrapping.test \
|
||||||
|
src/libvterm/t/21state_tabstops.test \
|
||||||
|
src/libvterm/t/22state_save.test \
|
||||||
|
src/libvterm/t/25state_input.test \
|
||||||
|
src/libvterm/t/26state_query.test \
|
||||||
|
src/libvterm/t/27state_reset.test \
|
||||||
|
src/libvterm/t/28state_dbl_wh.test \
|
||||||
|
src/libvterm/t/29state_fallback.test \
|
||||||
|
src/libvterm/t/30pen.test \
|
||||||
|
src/libvterm/t/40screen_ascii.test \
|
||||||
|
src/libvterm/t/41screen_unicode.test \
|
||||||
|
src/libvterm/t/42screen_damage.test \
|
||||||
|
src/libvterm/t/43screen_resize.test \
|
||||||
|
src/libvterm/t/44screen_pen.test \
|
||||||
|
src/libvterm/t/45screen_protect.test \
|
||||||
|
src/libvterm/t/46screen_extent.test \
|
||||||
|
src/libvterm/t/47screen_dbl_wh.test \
|
||||||
|
src/libvterm/t/48screen_termprops.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-1.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-2.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-3.test \
|
||||||
|
src/libvterm/t/90vttest_01-movement-4.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-1.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-2.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-3.test \
|
||||||
|
src/libvterm/t/90vttest_02-screen-4.test \
|
||||||
|
src/libvterm/t/92lp1640917.test \
|
||||||
|
src/libvterm/t/harness.c \
|
||||||
|
src/libvterm/t/run-test.pl \
|
||||||
|
|
||||||
|
|
||||||
# source files for Unix only
|
# source files for Unix only
|
||||||
@@ -331,6 +406,7 @@ SRC_DOS = \
|
|||||||
src/msvcsetup.bat \
|
src/msvcsetup.bat \
|
||||||
src/msvc2008.bat \
|
src/msvc2008.bat \
|
||||||
src/msvc2010.bat \
|
src/msvc2010.bat \
|
||||||
|
src/msvc2015.bat \
|
||||||
src/dimm.idl \
|
src/dimm.idl \
|
||||||
src/dlldata.c \
|
src/dlldata.c \
|
||||||
src/dosinst.c \
|
src/dosinst.c \
|
||||||
@@ -564,6 +640,7 @@ RT_ALL = \
|
|||||||
runtime/pack/dist/opt/matchit/doc/tags \
|
runtime/pack/dist/opt/matchit/doc/tags \
|
||||||
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
|
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
|
||||||
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
|
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
|
||||||
|
runtime/pack/dist/opt/termdebug/plugin/termdebug.vim \
|
||||||
|
|
||||||
# runtime files for all distributions without CR-NL translation
|
# runtime files for all distributions without CR-NL translation
|
||||||
RT_ALL_BIN = \
|
RT_ALL_BIN = \
|
||||||
|
|||||||
47
Makefile
47
Makefile
@@ -120,28 +120,27 @@ MINOR = 0
|
|||||||
#
|
#
|
||||||
# MS-Windows:
|
# MS-Windows:
|
||||||
# - Run make on Unix to update the ".mo" files.
|
# - Run make on Unix to update the ".mo" files.
|
||||||
# - Get libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
# - Get 32 bit libintl-8.dll, libiconv-2.dll and libgcc_s_sjlj-1.dll. E.g. from
|
||||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||||
# Use the "shared-32.zip file and extract the archive to get the files.
|
# Use the "shared-32.zip file and extract the archive to get the files.
|
||||||
# Put them in the top directory, "make dosrt" uses them.
|
# Put them in the gettext32 directory, "make dosrt" uses them.
|
||||||
|
# - Get 64 bit libintl-8.dll and libiconv-2.dll. E.g. from
|
||||||
|
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||||
|
# Use the "shared-64.zip file and extract the archive to get the files.
|
||||||
|
# Put them in the gettext64 directory, "make dosrt" uses them.
|
||||||
# - > make dossrc
|
# - > make dossrc
|
||||||
# > make dosrt
|
# > make dosrt
|
||||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||||
# Win32 console version build:
|
# Win32 console version build:
|
||||||
# - Set environment for Visual C++ 2008, e.g.:
|
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
||||||
# > src/msvc2008.bat
|
# - Set environment for Visual C++ 2015:
|
||||||
# Or:
|
# > cd src
|
||||||
# > C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
|
# > msvc2015.bat
|
||||||
# Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
|
# - Build the console binary:
|
||||||
# paths when necessary).
|
|
||||||
# For Windows 98/ME the 2003 version is required, but then the executable
|
|
||||||
# won't work on Windows 7 and 64 bit systems.
|
|
||||||
# - > cd src
|
|
||||||
# > nmake -f Make_mvc.mak
|
# > nmake -f Make_mvc.mak
|
||||||
# - Run the tests:
|
# - Run the tests and check the ouput:
|
||||||
# > nmake -f Make_mvc.mak testclean
|
# > nmake -f Make_mvc.mak testclean
|
||||||
# > nmake -f Make_mvc.mak test
|
# > nmake -f Make_mvc.mak test
|
||||||
# - check the output.
|
|
||||||
# - Rename (using ../tools/rename.bat):
|
# - Rename (using ../tools/rename.bat):
|
||||||
# vim.exe to vimw32.exe
|
# vim.exe to vimw32.exe
|
||||||
# tee/tee.exe to teew32.exe
|
# tee/tee.exe to teew32.exe
|
||||||
@@ -152,19 +151,18 @@ MINOR = 0
|
|||||||
# Win32 GUI version build:
|
# Win32 GUI version build:
|
||||||
# - > cd src
|
# - > cd src
|
||||||
# > nmake -f Make_mvc.mak GUI=yes
|
# > nmake -f Make_mvc.mak GUI=yes
|
||||||
# - Run the tests:
|
# - Run the tests and check the output:
|
||||||
# > nmake -f Make_mvc.mak testclean
|
# > nmake -f Make_mvc.mak testclean
|
||||||
# > nmake -f Make_mvc.mak testgvim
|
# > nmake -f Make_mvc.mak testgvim
|
||||||
# - check the output.
|
|
||||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||||
# - Move gvim.pdb to here.
|
# - Move gvim.pdb to here.
|
||||||
# - Copy "GvimExt/gvimext.dll" to here.
|
# - Copy "GvimExt/gvimext.dll" to here.
|
||||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||||
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
||||||
# - Install the interfaces you want, see src/INSTALLpc.txt
|
# - Install the interfaces you want, see src/INSTALLpc.txt
|
||||||
|
# Adjust bigvim.bat to match the version of each interface you want.
|
||||||
# - Build:
|
# - Build:
|
||||||
# > cd src
|
# > cd src
|
||||||
# Adjust bigvim.bat to match the version of each interface you want.
|
|
||||||
# > bigvim.bat
|
# > bigvim.bat
|
||||||
# - Run the tests:
|
# - Run the tests:
|
||||||
# > nmake -f Make_mvc.mak testclean
|
# > nmake -f Make_mvc.mak testclean
|
||||||
@@ -191,7 +189,7 @@ MINOR = 0
|
|||||||
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
|
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
|
||||||
# It is part of vim72.zip as vim72/gvimext.dll.
|
# It is part of vim72.zip as vim72/gvimext.dll.
|
||||||
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
||||||
# version).
|
# version). Also put winpty32.dll and winpty-agent.exe there.
|
||||||
# - go to ../nsis and do:
|
# - go to ../nsis and do:
|
||||||
# > makensis gvim.nsi (takes a few minutes).
|
# > makensis gvim.nsi (takes a few minutes).
|
||||||
# ignore warning for libwinpthread-1.dll
|
# ignore warning for libwinpthread-1.dll
|
||||||
@@ -467,9 +465,13 @@ dosrt_files: dist prepare no_title.vim
|
|||||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||||
fi \
|
fi \
|
||||||
done
|
done
|
||||||
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
|
mkdir dist/vim/$(VIMRTDIR)/gettext32
|
||||||
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
|
cp gettext32/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||||
cp libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/
|
cp gettext32/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||||
|
cp gettext32/libgcc_s_sjlj-1.dll dist/vim/$(VIMRTDIR)/gettext32/
|
||||||
|
mkdir dist/vim/$(VIMRTDIR)/gettext64
|
||||||
|
cp gettext64/libintl-8.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||||
|
cp gettext64/libiconv-2.dll dist/vim/$(VIMRTDIR)/gettext64/
|
||||||
|
|
||||||
|
|
||||||
# Used before uploading. Don't delete the AAPDIR/sign files!
|
# Used before uploading. Don't delete the AAPDIR/sign files!
|
||||||
@@ -496,7 +498,10 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
|||||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
|
||||||
|
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
|
||||||
|
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
|
||||||
|
cp gvimext64.dll dist/vim/$(VIMRTDIR)/GvimExt64/gvimext.dll
|
||||||
cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
|
cd dist && zip -9 -rD -z gvim$(VERSION).zip vim <$(COMMENT_GVIM)
|
||||||
cp gvim.pdb dist/gvim$(VERSION).pdb
|
cp gvim.pdb dist/gvim$(VERSION).pdb
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
This builds a one-click install for Vim for Win32 using the Nullsoft
|
This builds a one-click install for Vim for Win32 using the Nullsoft
|
||||||
Installation System (NSIS), available at http://www.nullsoft.com/free/nsis/
|
Installation System (NSIS), available at http://nsis.sourceforge.net/
|
||||||
|
|
||||||
To build the installable .exe:
|
To build the installable .exe:
|
||||||
|
|
||||||
@@ -17,8 +17,14 @@ To build the installable .exe:
|
|||||||
uninstal.exe,
|
uninstal.exe,
|
||||||
xxd/xxd.exe,
|
xxd/xxd.exe,
|
||||||
|
|
||||||
|
Then execute tools/rename.bat to rename the executables. (mv command is
|
||||||
|
required.)
|
||||||
|
|
||||||
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
|
3. Go to the GvimExt directory and build gvimext.dll (or get it from a binary
|
||||||
archive).
|
archive). Both 64- and 32-bit versions are needed and should be placed
|
||||||
|
as follows:
|
||||||
|
64-bit: src/GvimExt/gvimext64.dll
|
||||||
|
32-bit: src/GvimExt/gvimext.dll
|
||||||
|
|
||||||
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
|
4. Go to the VisVim directory and build VisVim.dll (or get it from a binary
|
||||||
archive).
|
archive).
|
||||||
@@ -27,13 +33,35 @@ To build the installable .exe:
|
|||||||
get them from a binary archive).
|
get them from a binary archive).
|
||||||
|
|
||||||
6. Get a "diff.exe" program and put it in the "../.." directory (above the
|
6. Get a "diff.exe" program and put it in the "../.." directory (above the
|
||||||
"vim61" directory, it's the same for all Vim versions).
|
"vim80" directory, it's the same for all Vim versions).
|
||||||
You can find one in previous Vim versions or in this archive:
|
You can find one in previous Vim versions or in this archive:
|
||||||
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
||||||
|
Also put winpty32.dll and winpty-agent.exe there.
|
||||||
|
|
||||||
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
||||||
to do this on Unix. Make sure the file is in DOS file format!
|
to do this on Unix. Make sure the file is in DOS file format!
|
||||||
|
|
||||||
|
8. Get gettext and iconv DLLs from the following site:
|
||||||
|
https://github.com/mlocati/gettext-iconv-windows/releases
|
||||||
|
Both 64- and 32-bit versions are needed.
|
||||||
|
Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
|
||||||
|
DLLs and place them as follows:
|
||||||
|
|
||||||
|
<GETTEXT directory>
|
||||||
|
|
|
||||||
|
+ gettext32/
|
||||||
|
| libintl-8.dll
|
||||||
|
| libiconv-2.dll
|
||||||
|
| libgcc_s_sjlj-1.dll
|
||||||
|
|
|
||||||
|
` gettext64/
|
||||||
|
libintl-8.dll
|
||||||
|
libiconv-2.dll
|
||||||
|
|
||||||
|
The default <GETTEXT directory> is "..", however, you can change it by
|
||||||
|
passing /DGETTEXT=... option to the makensis command.
|
||||||
|
|
||||||
|
|
||||||
Install NSIS if you didn't do that already.
|
Install NSIS if you didn't do that already.
|
||||||
Also install UPX, if you want a compressed file.
|
Also install UPX, if you want a compressed file.
|
||||||
|
|
||||||
|
|||||||
103
nsis/gvim.nsi
103
nsis/gvim.nsi
@@ -20,8 +20,15 @@
|
|||||||
!define VIMTOOLS ..\..
|
!define VIMTOOLS ..\..
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
# Location of gettext.
|
||||||
|
# It must contain two directories: gettext32 and gettext64.
|
||||||
|
# See README.txt for detail.
|
||||||
|
!ifndef GETTEXT
|
||||||
|
!define GETTEXT ${VIMRT}
|
||||||
|
!endif
|
||||||
|
|
||||||
# Comment the next line if you don't have UPX.
|
# Comment the next line if you don't have UPX.
|
||||||
# Get it at http://upx.sourceforge.net
|
# Get it at https://upx.github.io/
|
||||||
!define HAVE_UPX
|
!define HAVE_UPX
|
||||||
|
|
||||||
# comment the next line if you do not want to add Native Language Support
|
# comment the next line if you do not want to add Native Language Support
|
||||||
@@ -87,6 +94,7 @@ UninstPage instfiles
|
|||||||
Function .onInit
|
Function .onInit
|
||||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||||
"This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \
|
"This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \
|
||||||
|
/SD IDYES \
|
||||||
IDYES NoAbort
|
IDYES NoAbort
|
||||||
Abort ; causes installer to quit.
|
Abort ; causes installer to quit.
|
||||||
NoAbort:
|
NoAbort:
|
||||||
@@ -178,7 +186,7 @@ FunctionEnd
|
|||||||
|
|
||||||
##########################################################
|
##########################################################
|
||||||
Section "Vim executables and runtime files"
|
Section "Vim executables and runtime files"
|
||||||
SectionIn 1 2 3
|
SectionIn 1 2 3 RO
|
||||||
|
|
||||||
# we need also this here if the user changes the instdir
|
# we need also this here if the user changes the instdir
|
||||||
StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
|
StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}"
|
||||||
@@ -190,13 +198,16 @@ Section "Vim executables and runtime files"
|
|||||||
File ${VIMSRC}\vimrun.exe
|
File ${VIMSRC}\vimrun.exe
|
||||||
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
||||||
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
||||||
File ${VIMTOOLS}\diff.exe
|
|
||||||
File ${VIMRT}\vimtutor.bat
|
File ${VIMRT}\vimtutor.bat
|
||||||
File ${VIMRT}\README.txt
|
File ${VIMRT}\README.txt
|
||||||
File ..\uninstal.txt
|
File ..\uninstal.txt
|
||||||
File ${VIMRT}\*.vim
|
File ${VIMRT}\*.vim
|
||||||
File ${VIMRT}\rgb.txt
|
File ${VIMRT}\rgb.txt
|
||||||
|
|
||||||
|
File ${VIMTOOLS}\diff.exe
|
||||||
|
File ${VIMTOOLS}\winpty32.dll
|
||||||
|
File ${VIMTOOLS}\winpty-agent.exe
|
||||||
|
|
||||||
SetOutPath $0\colors
|
SetOutPath $0\colors
|
||||||
File ${VIMRT}\colors\*.*
|
File ${VIMRT}\colors\*.*
|
||||||
|
|
||||||
@@ -215,6 +226,14 @@ Section "Vim executables and runtime files"
|
|||||||
|
|
||||||
SetOutPath $0\macros
|
SetOutPath $0\macros
|
||||||
File ${VIMRT}\macros\*.*
|
File ${VIMRT}\macros\*.*
|
||||||
|
SetOutPath $0\macros\hanoi
|
||||||
|
File ${VIMRT}\macros\hanoi\*.*
|
||||||
|
SetOutPath $0\macros\life
|
||||||
|
File ${VIMRT}\macros\life\*.*
|
||||||
|
SetOutPath $0\macros\maze
|
||||||
|
File ${VIMRT}\macros\maze\*.*
|
||||||
|
SetOutPath $0\macros\urm
|
||||||
|
File ${VIMRT}\macros\urm\*.*
|
||||||
|
|
||||||
SetOutPath $0\pack\dist\opt\dvorak\dvorak
|
SetOutPath $0\pack\dist\opt\dvorak\dvorak
|
||||||
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
|
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
|
||||||
@@ -316,24 +335,67 @@ Section "Add an Edit-with-Vim context menu entry"
|
|||||||
SetOutPath $0
|
SetOutPath $0
|
||||||
ClearErrors
|
ClearErrors
|
||||||
SetOverwrite try
|
SetOverwrite try
|
||||||
|
|
||||||
${If} ${RunningX64}
|
${If} ${RunningX64}
|
||||||
|
# Install 64-bit gvimext.dll into the GvimExt64 directory.
|
||||||
|
SetOutPath $0\GvimExt64
|
||||||
|
ClearErrors
|
||||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||||
${Else}
|
!ifdef HAVE_NLS
|
||||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
File ${GETTEXT}\gettext64\libintl-8.dll
|
||||||
|
File ${GETTEXT}\gettext64\libiconv-2.dll
|
||||||
|
!endif
|
||||||
|
|
||||||
|
IfErrors 0 GvimExt64Done
|
||||||
|
|
||||||
|
# Can't copy gvimext.dll, create it under another name and rename it
|
||||||
|
# on next reboot.
|
||||||
|
GetTempFileName $3 $0\GvimExt64
|
||||||
|
File /oname=$3 ${VIMSRC}\GvimExt64\gvimext.dll
|
||||||
|
Rename /REBOOTOK $3 $0\GvimExt64\gvimext.dll
|
||||||
|
!ifdef HAVE_NLS
|
||||||
|
GetTempFileName $3 $0\GvimExt64
|
||||||
|
File /oname=$3 ${GETTEXT}\gettext64\libintl-8.dll
|
||||||
|
Rename /REBOOTOK $3 $0\GvimExt64\libintl-8.dll
|
||||||
|
GetTempFileName $3 $0\GvimExt64
|
||||||
|
File /oname=$3 ${GETTEXT}\gettext64\libiconv-2.dll
|
||||||
|
Rename /REBOOTOK $3 $0\GvimExt64\libiconv-2.dll
|
||||||
|
!endif
|
||||||
${EndIf}
|
${EndIf}
|
||||||
IfErrors 0 GvimExtDone
|
|
||||||
|
GvimExt64Done:
|
||||||
|
|
||||||
|
# Install 32-bit gvimext.dll into the GvimExt32 directory.
|
||||||
|
SetOutPath $0\GvimExt32
|
||||||
|
ClearErrors
|
||||||
|
|
||||||
|
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||||
|
!ifdef HAVE_NLS
|
||||||
|
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||||
|
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||||
|
File ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||||
|
!endif
|
||||||
|
|
||||||
|
IfErrors 0 GvimExt32Done
|
||||||
|
|
||||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||||
# next reboot.
|
# next reboot.
|
||||||
GetTempFileName $3 $0
|
GetTempFileName $3 $0\GvimExt32
|
||||||
${If} ${RunningX64}
|
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
Rename /REBOOTOK $3 $0\GvimExt32\gvimext.dll
|
||||||
${Else}
|
!ifdef HAVE_NLS
|
||||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
GetTempFileName $3 $0\GvimExt32
|
||||||
${EndIf}
|
File /oname=$3 ${GETTEXT}\gettext32\libintl-8.dll
|
||||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
Rename /REBOOTOK $3 $0\GvimExt32\libintl-8.dll
|
||||||
|
GetTempFileName $3 $0\GvimExt32
|
||||||
|
File /oname=$3 ${GETTEXT}\gettext32\libiconv-2.dll
|
||||||
|
Rename /REBOOTOK $3 $0\GvimExt32\libiconv-2.dll
|
||||||
|
GetTempFileName $3 $0\GvimExt32
|
||||||
|
File /oname=$3 ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||||
|
Rename /REBOOTOK $3 $0\GvimExt32\libgcc_s_sjlj-1.dll
|
||||||
|
!endif
|
||||||
|
|
||||||
GvimExtDone:
|
GvimExt32Done:
|
||||||
SetOverwrite lastused
|
SetOverwrite lastused
|
||||||
|
|
||||||
# We don't have a separate entry for the "Open With..." menu, assume
|
# We don't have a separate entry for the "Open With..." menu, assume
|
||||||
@@ -382,10 +444,10 @@ SectionEnd
|
|||||||
File ${VIMRT}\keymap\README.txt
|
File ${VIMRT}\keymap\README.txt
|
||||||
File ${VIMRT}\keymap\*.vim
|
File ${VIMRT}\keymap\*.vim
|
||||||
SetOutPath $0
|
SetOutPath $0
|
||||||
File ${VIMRT}\libintl-8.dll
|
File ${GETTEXT}\gettext32\libintl-8.dll
|
||||||
File ${VIMRT}\libiconv-2.dll
|
File ${GETTEXT}\gettext32\libiconv-2.dll
|
||||||
File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
#File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||||
File /nonfatal ${VIMRT}\libgcc_s_sjlj-1.dll
|
File /nonfatal ${GETTEXT}\gettext32\libgcc_s_sjlj-1.dll
|
||||||
SectionEnd
|
SectionEnd
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
@@ -425,6 +487,11 @@ Section Uninstall
|
|||||||
$\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
|
$\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes
|
||||||
|
|
||||||
Delete /REBOOTOK $0\*.dll
|
Delete /REBOOTOK $0\*.dll
|
||||||
|
Delete /REBOOTOK $0\GvimExt32\*.dll
|
||||||
|
${If} ${RunningX64}
|
||||||
|
Delete /REBOOTOK $0\GvimExt64\*.dll
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
ClearErrors
|
ClearErrors
|
||||||
# Remove everything but *.dll files. Avoids that
|
# Remove everything but *.dll files. Avoids that
|
||||||
# a lot remains when gvimext.dll cannot be deleted.
|
# a lot remains when gvimext.dll cannot be deleted.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim support file to help with paste mappings and menus
|
" Vim support file to help with paste mappings and menus
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2006 Jun 23
|
" Last Change: 2017 Aug 30
|
||||||
|
|
||||||
" Define the string to use for items that are present both in Edit, Popup and
|
" Define the string to use for items that are present both in Edit, Popup and
|
||||||
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
" Toolbar menu. Also used in mswin.vim and macmap.vim.
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
if has("virtualedit")
|
if has("virtualedit")
|
||||||
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
|
let paste#paste_cmd = {'n': ":call paste#Paste()<CR>"}
|
||||||
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
|
let paste#paste_cmd['v'] = '"-c<Esc>' . paste#paste_cmd['n']
|
||||||
let paste#paste_cmd['i'] = 'x<BS><Esc>' . paste#paste_cmd['n'] . 'gi'
|
let paste#paste_cmd['i'] = "\<c-\>\<c-o>\"+gP"
|
||||||
|
|
||||||
func! paste#Paste()
|
func! paste#Paste()
|
||||||
let ove = &ve
|
let ove = &ve
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" The default vimrc file.
|
" The default vimrc file.
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last change: 2017 Apr 12
|
" Last change: 2017 Jun 13
|
||||||
"
|
"
|
||||||
" This is loaded if no vimrc file was found.
|
" This is loaded if no vimrc file was found.
|
||||||
" Except when Vim is run with "-u NONE" or "-C".
|
" Except when Vim is run with "-u NONE" or "-C".
|
||||||
@@ -106,12 +106,13 @@ if has("autocmd")
|
|||||||
au!
|
au!
|
||||||
|
|
||||||
" When editing a file, always jump to the last known cursor position.
|
" When editing a file, always jump to the last known cursor position.
|
||||||
" Don't do it when the position is invalid or when inside an event handler
|
" Don't do it when the position is invalid, when inside an event handler
|
||||||
" (happens when dropping a file on gvim).
|
" (happens when dropping a file on gvim) and for a commit message (it's
|
||||||
|
" likely a different one than last time).
|
||||||
autocmd BufReadPost *
|
autocmd BufReadPost *
|
||||||
\ if line("'\"") >= 1 && line("'\"") <= line("$") |
|
\ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||||
\ exe "normal! g`\"" |
|
\ | exe "normal! g`\""
|
||||||
\ endif
|
\ | endif
|
||||||
|
|
||||||
augroup END
|
augroup END
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ DOCS = \
|
|||||||
tabpage.txt \
|
tabpage.txt \
|
||||||
tagsrch.txt \
|
tagsrch.txt \
|
||||||
term.txt \
|
term.txt \
|
||||||
|
terminal.txt \
|
||||||
tips.txt \
|
tips.txt \
|
||||||
todo.txt \
|
todo.txt \
|
||||||
uganda.txt \
|
uganda.txt \
|
||||||
@@ -236,6 +237,7 @@ HTMLS = \
|
|||||||
tabpage.html \
|
tabpage.html \
|
||||||
tagsrch.html \
|
tagsrch.html \
|
||||||
term.html \
|
term.html \
|
||||||
|
terminal.html \
|
||||||
tips.html \
|
tips.html \
|
||||||
todo.html \
|
todo.html \
|
||||||
uganda.html \
|
uganda.html \
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Apr 07
|
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jul 14
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -651,7 +651,8 @@ FileType When the 'filetype' option has been set. The
|
|||||||
pattern is matched against the filetype.
|
pattern is matched against the filetype.
|
||||||
<afile> can be used for the name of the file
|
<afile> can be used for the name of the file
|
||||||
where this option was set, and <amatch> for
|
where this option was set, and <amatch> for
|
||||||
the new value of 'filetype'.
|
the new value of 'filetype'. Navigating to
|
||||||
|
another window or buffer is not allowed.
|
||||||
See |filetypes|.
|
See |filetypes|.
|
||||||
*FileWriteCmd*
|
*FileWriteCmd*
|
||||||
FileWriteCmd Before writing to a file, when not writing the
|
FileWriteCmd Before writing to a file, when not writing the
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*channel.txt* For Vim version 8.0. Last change: 2016 Dec 02
|
*channel.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -427,8 +427,8 @@ When no message was available then the result is v:none for a JSON or JS mode
|
|||||||
channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
|
channels, an empty string for a RAW or NL channel. You can use |ch_canread()|
|
||||||
to check if there is something to read.
|
to check if there is something to read.
|
||||||
|
|
||||||
Note that when there is no callback message are dropped. To avoid that add a
|
Note that when there is no callback, messages are dropped. To avoid that add
|
||||||
close callback to the channel.
|
a close callback to the channel.
|
||||||
|
|
||||||
To read all output from a RAW channel that is available: >
|
To read all output from a RAW channel that is available: >
|
||||||
let output = ch_readraw(channel)
|
let output = ch_readraw(channel)
|
||||||
@@ -489,6 +489,11 @@ If you want to handle both stderr and stdout with one handler use the
|
|||||||
"callback" option: >
|
"callback" option: >
|
||||||
let job = job_start(command, {"callback": "MyHandler"})
|
let job = job_start(command, {"callback": "MyHandler"})
|
||||||
|
|
||||||
|
Depending on the system, starting a job can put Vim in the background, the
|
||||||
|
started job gets the focus. To avoid that, use the `foreground()` function.
|
||||||
|
This might not always work when called early, put in the callback handler or
|
||||||
|
use a timer to call it after the job has started.
|
||||||
|
|
||||||
You can send a message to the command with ch_evalraw(). If the channel is in
|
You can send a message to the command with ch_evalraw(). If the channel is in
|
||||||
JSON or JS mode you can use ch_evalexpr().
|
JSON or JS mode you can use ch_evalexpr().
|
||||||
|
|
||||||
@@ -513,7 +518,7 @@ By default this reads the whole buffer. This can be changed with the "in_top"
|
|||||||
and "in_bot" options.
|
and "in_bot" options.
|
||||||
|
|
||||||
A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
|
A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
|
||||||
time a line is added to the buffer, the last-but-one line will be send to the
|
time a line is added to the buffer, the last-but-one line will be sent to the
|
||||||
job stdin. This allows for editing the last line and sending it when pressing
|
job stdin. This allows for editing the last line and sending it when pressing
|
||||||
Enter.
|
Enter.
|
||||||
*channel-close-in*
|
*channel-close-in*
|
||||||
@@ -606,7 +611,7 @@ See |job_setoptions()| and |ch_setoptions()|.
|
|||||||
"close_cb": handler Callback for when the channel is closed. Same as
|
"close_cb": handler Callback for when the channel is closed. Same as
|
||||||
"close_cb" on |ch_open()|, see |close_cb|.
|
"close_cb" on |ch_open()|, see |close_cb|.
|
||||||
*job-drop*
|
*job-drop*
|
||||||
"drop" Specifies when to drop messages. Same as "drop" on
|
"drop": when Specifies when to drop messages. Same as "drop" on
|
||||||
|ch_open()|, see |channel-drop|. For "auto" the
|
|ch_open()|, see |channel-drop|. For "auto" the
|
||||||
exit_cb is not considered.
|
exit_cb is not considered.
|
||||||
*job-exit_cb*
|
*job-exit_cb*
|
||||||
@@ -619,12 +624,12 @@ See |job_setoptions()| and |ch_setoptions()|.
|
|||||||
Note that data can be buffered, callbacks may still be
|
Note that data can be buffered, callbacks may still be
|
||||||
called after the process ends.
|
called after the process ends.
|
||||||
*job-timeout*
|
*job-timeout*
|
||||||
"timeout" The time to wait for a request when blocking, E.g.
|
"timeout": time The time to wait for a request when blocking, E.g.
|
||||||
when using ch_evalexpr(). In milliseconds. The
|
when using ch_evalexpr(). In milliseconds. The
|
||||||
default is 2000 (2 seconds).
|
default is 2000 (2 seconds).
|
||||||
*out_timeout* *err_timeout*
|
*out_timeout* *err_timeout*
|
||||||
"out_timeout" Timeout for stdout. Only when using pipes.
|
"out_timeout": time Timeout for stdout. Only when using pipes.
|
||||||
"err_timeout" Timeout for stderr. Only when using pipes.
|
"err_timeout": time Timeout for stderr. Only when using pipes.
|
||||||
Note: when setting "timeout" the part specific mode is
|
Note: when setting "timeout" the part specific mode is
|
||||||
overwritten. Therefore set "timeout" first and the
|
overwritten. Therefore set "timeout" first and the
|
||||||
part specific mode later.
|
part specific mode later.
|
||||||
@@ -636,8 +641,9 @@ See |job_setoptions()| and |ch_setoptions()|.
|
|||||||
The default is "term".
|
The default is "term".
|
||||||
|
|
||||||
*job-term*
|
*job-term*
|
||||||
"term": "open" Start a terminal and connect the job
|
"term": "open" Start a terminal in a new window and connect the job
|
||||||
stdin/stdout/stderr to it.
|
stdin/stdout/stderr to it. Similar to using
|
||||||
|
`:terminal`.
|
||||||
NOTE: Not implemented yet!
|
NOTE: Not implemented yet!
|
||||||
|
|
||||||
"channel": {channel} Use an existing channel instead of creating a new one.
|
"channel": {channel} Use an existing channel instead of creating a new one.
|
||||||
@@ -647,6 +653,11 @@ See |job_setoptions()| and |ch_setoptions()|.
|
|||||||
cause I/O errors.
|
cause I/O errors.
|
||||||
Existing callbacks and other settings remain.
|
Existing callbacks and other settings remain.
|
||||||
|
|
||||||
|
"pty": 1 Use a pty (pseudo-tty) instead of a pipe when
|
||||||
|
possible. This is most useful in combination with a
|
||||||
|
terminal window, see |terminal|.
|
||||||
|
{only on Unix and Unix-like systems}
|
||||||
|
|
||||||
*job-in_io* *in_top* *in_bot* *in_name* *in_buf*
|
*job-in_io* *in_top* *in_bot* *in_name* *in_buf*
|
||||||
"in_io": "null" disconnect stdin (read from /dev/null)
|
"in_io": "null" disconnect stdin (read from /dev/null)
|
||||||
"in_io": "pipe" stdin is connected to the channel (default)
|
"in_io": "pipe" stdin is connected to the channel (default)
|
||||||
@@ -685,6 +696,10 @@ See |job_setoptions()| and |ch_setoptions()|.
|
|||||||
"block_write": number only for testing: pretend every other write to stdin
|
"block_write": number only for testing: pretend every other write to stdin
|
||||||
will block
|
will block
|
||||||
|
|
||||||
|
"env": dict environment variables for the new process
|
||||||
|
"cwd": "/path/to/dir" current working directory for the new process;
|
||||||
|
if the directory does not exist an error is given
|
||||||
|
|
||||||
|
|
||||||
Writing to a buffer ~
|
Writing to a buffer ~
|
||||||
*out_io-buffer*
|
*out_io-buffer*
|
||||||
@@ -720,10 +735,6 @@ The "out_msg" option can be used to specify whether a new buffer will have the
|
|||||||
first line set to "Reading from channel output...". The default is to add the
|
first line set to "Reading from channel output...". The default is to add the
|
||||||
message. "err_msg" does the same for channel error.
|
message. "err_msg" does the same for channel error.
|
||||||
|
|
||||||
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
|
|
||||||
means that lines will be appended to the buffer, but the user can't easily
|
|
||||||
change the buffer.
|
|
||||||
|
|
||||||
When an existing buffer is to be written where 'modifiable' is off and the
|
When an existing buffer is to be written where 'modifiable' is off and the
|
||||||
"out_modifiable" or "err_modifiable" options is not zero, an error is given
|
"out_modifiable" or "err_modifiable" options is not zero, an error is given
|
||||||
and the buffer will not be written to.
|
and the buffer will not be written to.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27
|
*cmdline.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -455,6 +455,9 @@ matches exactly one character.
|
|||||||
|
|
||||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||||
|
|
||||||
|
The 'wildmenu' option can be set to show the matches just above the command
|
||||||
|
line.
|
||||||
|
|
||||||
If you like tcsh's autolist completion, you can use this mapping:
|
If you like tcsh's autolist completion, you can use this mapping:
|
||||||
:cnoremap X <C-L><C-D>
|
:cnoremap X <C-L><C-D>
|
||||||
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
|
(Where X is the command key to use, <C-L> is CTRL-L and <C-D> is CTRL-D)
|
||||||
@@ -823,10 +826,16 @@ Also see |`=|.
|
|||||||
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
||||||
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
||||||
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
||||||
|
*:<cexpr>* *<cexpr>*
|
||||||
*<slnum>* *E495* *E496* *E497* *E499* *E500*
|
*<slnum>* *E495* *E496* *E497* *E499* *E500*
|
||||||
Note: these are typed literally, they are not special keys!
|
Note: these are typed literally, they are not special keys!
|
||||||
<cword> is replaced with the word under the cursor (like |star|)
|
<cword> is replaced with the word under the cursor (like |star|)
|
||||||
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
||||||
|
<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> is replaced with the path name under the cursor (like what
|
<cfile> is replaced with the path name under the cursor (like what
|
||||||
|gf| uses)
|
|gf| uses)
|
||||||
<afile> When executing autocommands, is replaced with the file name
|
<afile> When executing autocommands, is replaced with the file name
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*debug.txt* For Vim version 8.0. Last change: 2012 Feb 11
|
*debug.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -53,7 +53,7 @@ Use this command to start Vim:
|
|||||||
valgrind --log-file=valgrind.log --leak-check=full ./vim
|
valgrind --log-file=valgrind.log --leak-check=full ./vim
|
||||||
|
|
||||||
Note: Vim will run much slower. If your .vimrc is big or you have several
|
Note: Vim will run much slower. If your .vimrc is big or you have several
|
||||||
plugins you need to be patient for startup, or run with the "-u NONE"
|
plugins you need to be patient for startup, or run with the "--clean"
|
||||||
argument.
|
argument.
|
||||||
|
|
||||||
There are often a few leaks from libraries, such as getpwuid() and
|
There are often a few leaks from libraries, such as getpwuid() and
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*develop.txt* For Vim version 8.0. Last change: 2017 Jan 05
|
*develop.txt* For Vim version 8.0. Last change: 2017 Jul 31
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -143,9 +143,10 @@ and its environment.
|
|||||||
|
|
||||||
VIM IS... NOT *design-not*
|
VIM IS... NOT *design-not*
|
||||||
|
|
||||||
- Vim is not a shell or an Operating System. You will not be able to run a
|
- Vim is not a shell or an Operating System. It does provide a terminal
|
||||||
shell inside Vim or use it to control a debugger. This should work the
|
window, in which you can run a shell or debugger. E.g. to be able to do
|
||||||
other way around: Use Vim as a component from a shell or in an IDE.
|
this over an ssh connection. But if you don't need a text editor with that
|
||||||
|
it is out of scope (use something like screen or tmux instead).
|
||||||
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
|
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
|
||||||
everything but the kitchen sink, but some people say that you can clean one
|
everything but the kitchen sink, but some people say that you can clean one
|
||||||
with it. ;-)"
|
with it. ;-)"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*diff.txt* For Vim version 8.0. Last change: 2017 Feb 03
|
*diff.txt* For Vim version 8.0. Last change: 2017 Sep 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -10,7 +10,7 @@ eight versions of the same file.
|
|||||||
|
|
||||||
The basics are explained in section |08.7| of the user manual.
|
The basics are explained in section |08.7| of the user manual.
|
||||||
|
|
||||||
1. Starting diff mode |vimdiff|
|
1. Starting diff mode |start-vimdiff|
|
||||||
2. Viewing diffs |view-diffs|
|
2. Viewing diffs |view-diffs|
|
||||||
3. Jumping to diffs |jumpto-diffs|
|
3. Jumping to diffs |jumpto-diffs|
|
||||||
4. Copying diffs |copy-diffs|
|
4. Copying diffs |copy-diffs|
|
||||||
@@ -19,7 +19,7 @@ The basics are explained in section |08.7| of the user manual.
|
|||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
1. Starting diff mode
|
1. Starting diff mode *start-vimdiff*
|
||||||
|
|
||||||
The easiest way to start editing in diff mode is with the "vimdiff" command.
|
The easiest way to start editing in diff mode is with the "vimdiff" command.
|
||||||
This starts Vim as usual, and additionally sets up for viewing the differences
|
This starts Vim as usual, and additionally sets up for viewing the differences
|
||||||
@@ -226,8 +226,8 @@ The diffs are highlighted with these groups:
|
|||||||
(searching from the end of the line). The
|
(searching from the end of the line). The
|
||||||
text in between is highlighted. This means
|
text in between is highlighted. This means
|
||||||
that parts in the middle that are still the
|
that parts in the middle that are still the
|
||||||
same are highlighted anyway. Only "iwhite" of
|
same are highlighted anyway. The 'diffopt'
|
||||||
'diffopt' is used here.
|
flags "iwhite" and "icase" are used here.
|
||||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||||
because they don't really exist in this
|
because they don't really exist in this
|
||||||
buffer.
|
buffer.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*editing.txt* For Vim version 8.0. Last change: 2017 Apr 10
|
*editing.txt* For Vim version 8.0. Last change: 2017 Aug 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -617,16 +617,16 @@ list of the current window.
|
|||||||
Also see |++opt| and |+cmd|.
|
Also see |++opt| and |+cmd|.
|
||||||
{Vi: no ++opt}
|
{Vi: no ++opt}
|
||||||
|
|
||||||
:[count]arge[dit][!] [++opt] [+cmd] {name} *:arge* *:argedit*
|
:[count]arge[dit][!] [++opt] [+cmd] {name} .. *:arge* *:argedit*
|
||||||
Add {name} to the argument list and edit it.
|
Add {name}s to the argument list and edit it.
|
||||||
When {name} already exists in the argument list, this
|
When {name} already exists in the argument list, this
|
||||||
entry is edited.
|
entry is edited.
|
||||||
This is like using |:argadd| and then |:edit|.
|
This is like using |:argadd| and then |:edit|.
|
||||||
Note that only one file name is allowed, and spaces
|
Spaces in filenames have to be escaped with "\".
|
||||||
inside the file name are allowed, like with |:edit|.
|
|
||||||
[count] is used like with |:argadd|.
|
[count] is used like with |:argadd|.
|
||||||
[!] is required if the current file cannot be
|
If the current file cannot be |abandon|ed {name}s will
|
||||||
|abandon|ed.
|
still be added to the argument list, but won't be
|
||||||
|
edited. No check for duplicates is done.
|
||||||
Also see |++opt| and |+cmd|.
|
Also see |++opt| and |+cmd|.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
@@ -1109,6 +1109,7 @@ The names can be in upper- or lowercase.
|
|||||||
window in the current tab page the current tab page is
|
window in the current tab page the current tab page is
|
||||||
closed |tab-page|.
|
closed |tab-page|.
|
||||||
Triggers the |QuitPre| autocommand event.
|
Triggers the |QuitPre| autocommand event.
|
||||||
|
See |CTRL-W_q| for quitting another window.
|
||||||
|
|
||||||
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
|
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
|
||||||
the last file in the argument list has not been
|
the last file in the argument list has not been
|
||||||
@@ -1328,9 +1329,11 @@ present in 'cpoptions' and "!" is not used in the command.
|
|||||||
:chd[ir][!] [path] Same as |:cd|.
|
:chd[ir][!] [path] Same as |:cd|.
|
||||||
|
|
||||||
*:lc* *:lcd*
|
*:lc* *:lcd*
|
||||||
:lc[d][!] {path} Like |:cd|, but only set the current directory for the
|
:lc[d][!] {path} Like |:cd|, but only set the current directory when
|
||||||
current window. The current directory for other
|
the cursor is in the current window. The current
|
||||||
windows is not changed. {not in Vi}
|
directory for other windows is not changed, switching
|
||||||
|
to another window will stop using {path}.
|
||||||
|
{not in Vi}
|
||||||
|
|
||||||
*:lch* *:lchdir*
|
*:lch* *:lchdir*
|
||||||
:lch[dir][!] Same as |:lcd|. {not in Vi}
|
:lch[dir][!] Same as |:lcd|. {not in Vi}
|
||||||
@@ -1735,7 +1738,7 @@ There are three different types of searching:
|
|||||||
This searches the same directories, but in a different order.
|
This searches the same directories, but in a different order.
|
||||||
|
|
||||||
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
|
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
|
||||||
currently work with 'path' items that contain a url or use the double star
|
currently work with 'path' items that contain a URL or use the double star
|
||||||
with depth limiter (/usr/**2) or upward search (;) notations.
|
with depth limiter (/usr/**2) or upward search (;) notations.
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*eval.txt* For Vim version 8.0. Last change: 2017 Jun 04
|
*eval.txt* For Vim version 8.0. Last change: 2017 Sep 17
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1449,7 +1449,7 @@ v:beval_text The text under or after the mouse pointer. Usually a word as
|
|||||||
but a dot and "->" before the position is included. When on a
|
but a dot and "->" before the position is included. When on a
|
||||||
']' the text before it is used, including the matching '[' and
|
']' the text before it is used, including the matching '[' and
|
||||||
word before it. When on a Visual area within one line the
|
word before it. When on a Visual area within one line the
|
||||||
highlighted text is used.
|
highlighted text is used. Also see |<cexpr>|.
|
||||||
Only valid while evaluating the 'balloonexpr' option.
|
Only valid while evaluating the 'balloonexpr' option.
|
||||||
|
|
||||||
*v:beval_winnr* *beval_winnr-variable*
|
*v:beval_winnr* *beval_winnr-variable*
|
||||||
@@ -1815,7 +1815,7 @@ v:scrollstart String describing the script or function that caused the
|
|||||||
hit-enter prompt.
|
hit-enter prompt.
|
||||||
|
|
||||||
*v:servername* *servername-variable*
|
*v:servername* *servername-variable*
|
||||||
v:servername The resulting registered |x11-clientserver| name if any.
|
v:servername The resulting registered |client-server-name| if any.
|
||||||
Read-only.
|
Read-only.
|
||||||
|
|
||||||
|
|
||||||
@@ -1902,6 +1902,31 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
|
|||||||
always 95 or bigger). Pc is always zero.
|
always 95 or bigger). Pc is always zero.
|
||||||
{only when compiled with |+termresponse| feature}
|
{only when compiled with |+termresponse| feature}
|
||||||
|
|
||||||
|
*v:termblinkresp*
|
||||||
|
v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
|
||||||
|
termcap entry. This is used to find out whether the terminal
|
||||||
|
cursor is blinking. This is used by |term_getcursor()|.
|
||||||
|
|
||||||
|
*v:termstyleresp*
|
||||||
|
v:termstyleresp The escape sequence returned by the terminal for the |t_RS|
|
||||||
|
termcap entry. This is used to find out what the shape of the
|
||||||
|
cursor is. This is used by |term_getcursor()|.
|
||||||
|
|
||||||
|
*v:termrbgresp*
|
||||||
|
v:termrbgresp The escape sequence returned by the terminal for the |t_RB|
|
||||||
|
termcap entry. This is used to find out what the terminal
|
||||||
|
background color is, see 'background'.
|
||||||
|
|
||||||
|
*v:termrfgresp*
|
||||||
|
v:termrfgresp The escape sequence returned by the terminal for the |t_RF|
|
||||||
|
termcap entry. This is used to find out what the terminal
|
||||||
|
foreground color is.
|
||||||
|
|
||||||
|
*v:termu7resp*
|
||||||
|
v:termu7resp The escape sequence returned by the terminal for the |t_u7|
|
||||||
|
termcap entry. This is used to find out what the terminal
|
||||||
|
does with ambiguous width characters, see 'ambiwidth'.
|
||||||
|
|
||||||
*v:testing* *testing-variable*
|
*v:testing* *testing-variable*
|
||||||
v:testing Must be set before using `test_garbagecollect_now()`.
|
v:testing Must be set before using `test_garbagecollect_now()`.
|
||||||
Also, when set certain error messages won't be shown for 2
|
Also, when set certain error messages won't be shown for 2
|
||||||
@@ -2179,7 +2204,7 @@ index({list}, {expr} [, {start} [, {ic}]])
|
|||||||
Number index in {list} where {expr} appears
|
Number index in {list} where {expr} appears
|
||||||
input({prompt} [, {text} [, {completion}]])
|
input({prompt} [, {text} [, {completion}]])
|
||||||
String get input from the user
|
String get input from the user
|
||||||
inputdialog({prompt} [, {text} [, {completion}]]])
|
inputdialog({prompt} [, {text} [, {completion}]])
|
||||||
String like input() but in a GUI dialog
|
String like input() but in a GUI dialog
|
||||||
inputlist({textlist}) Number let the user pick from a choice list
|
inputlist({textlist}) Number let the user pick from a choice list
|
||||||
inputrestore() Number restore typeahead
|
inputrestore() Number restore typeahead
|
||||||
@@ -2296,6 +2321,9 @@ searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]])
|
|||||||
server2client({clientid}, {string})
|
server2client({clientid}, {string})
|
||||||
Number send reply string
|
Number send reply string
|
||||||
serverlist() String get a list of available servers
|
serverlist() String get a list of available servers
|
||||||
|
setbufline( {expr}, {lnum}, {line})
|
||||||
|
Number set line {lnum} to {line} in buffer
|
||||||
|
{expr}
|
||||||
setbufvar({expr}, {varname}, {val})
|
setbufvar({expr}, {varname}, {val})
|
||||||
none set {varname} in buffer {expr} to {val}
|
none set {varname} in buffer {expr} to {val}
|
||||||
setcharsearch({dict}) Dict set character search from {dict}
|
setcharsearch({dict}) Dict set character search from {dict}
|
||||||
@@ -2369,9 +2397,25 @@ tagfiles() List tags files used
|
|||||||
tan({expr}) Float tangent of {expr}
|
tan({expr}) Float tangent of {expr}
|
||||||
tanh({expr}) Float hyperbolic tangent of {expr}
|
tanh({expr}) Float hyperbolic tangent of {expr}
|
||||||
tempname() String name for a temporary file
|
tempname() String name for a temporary file
|
||||||
|
term_getaltscreen({buf}) Number get the alternate screen flag
|
||||||
|
term_getattr({attr}, {what}) Number get the value of attribute {what}
|
||||||
|
term_getcursor({buf}) List get the cursor position of a terminal
|
||||||
|
term_getjob({buf}) Job get the job associated with a terminal
|
||||||
|
term_getline({buf}, {row}) String get a line of text from a terminal
|
||||||
|
term_getscrolled({buf}) Number get the scroll count of a terminal
|
||||||
|
term_getsize({buf}) List get the size of a terminal
|
||||||
|
term_getstatus({buf}) String get the status of a terminal
|
||||||
|
term_gettitle({buf}) String get the title of a terminal
|
||||||
|
term_getttty({buf}, [{input}]) String get the tty name of a terminal
|
||||||
|
term_list() List get the list of terminal buffers
|
||||||
|
term_scrape({buf}, {row}) List get row of a terminal screen
|
||||||
|
term_sendkeys({buf}, {keys}) none send keystrokes to a terminal
|
||||||
|
term_start({cmd}, {options}) Job open a terminal window and run a job
|
||||||
|
term_wait({buf} [, {time}]) Number wait for screen to be updated
|
||||||
test_alloc_fail({id}, {countdown}, {repeat})
|
test_alloc_fail({id}, {countdown}, {repeat})
|
||||||
none make memory allocation fail
|
none make memory allocation fail
|
||||||
test_autochdir() none enable 'autochdir' during startup
|
test_autochdir() none enable 'autochdir' during startup
|
||||||
|
test_feedinput() none add key sequence to input buffer
|
||||||
test_garbagecollect_now() none free memory right now for testing
|
test_garbagecollect_now() none free memory right now for testing
|
||||||
test_ignore_error({expr}) none ignore a specific error
|
test_ignore_error({expr}) none ignore a specific error
|
||||||
test_null_channel() Channel null value for testing
|
test_null_channel() Channel null value for testing
|
||||||
@@ -2971,6 +3015,11 @@ ch_logfile({fname} [, {mode}]) *ch_logfile()*
|
|||||||
The file is flushed after every message, on Unix you can use
|
The file is flushed after every message, on Unix you can use
|
||||||
"tail -f" to see what is going on in real time.
|
"tail -f" to see what is going on in real time.
|
||||||
|
|
||||||
|
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
|
||||||
|
information, e.g. a password you type in a terminal window.
|
||||||
|
|
||||||
|
|
||||||
ch_open({address} [, {options}]) *ch_open()*
|
ch_open({address} [, {options}]) *ch_open()*
|
||||||
Open a channel to {address}. See |channel|.
|
Open a channel to {address}. See |channel|.
|
||||||
@@ -3249,11 +3298,16 @@ cosh({expr}) *cosh()*
|
|||||||
|
|
||||||
count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
count({comp}, {expr} [, {ic} [, {start}]]) *count()*
|
||||||
Return the number of times an item with value {expr} appears
|
Return the number of times an item with value {expr} appears
|
||||||
in |List| or |Dictionary| {comp}.
|
in |String|, |List| or |Dictionary| {comp}.
|
||||||
|
|
||||||
If {start} is given then start with the item with this index.
|
If {start} is given then start with the item with this index.
|
||||||
{start} can only be used with a |List|.
|
{start} can only be used with a |List|.
|
||||||
|
|
||||||
When {ic} is given and it's |TRUE| then case is ignored.
|
When {ic} is given and it's |TRUE| then case is ignored.
|
||||||
|
|
||||||
|
When {comp} is a string then the number of not overlapping
|
||||||
|
occurrences of {expr} is returned.
|
||||||
|
|
||||||
|
|
||||||
*cscope_connection()*
|
*cscope_connection()*
|
||||||
cscope_connection([{num} , {dbpath} [, {prepend}]])
|
cscope_connection([{num} , {dbpath} [, {prepend}]])
|
||||||
@@ -3418,7 +3472,7 @@ escape({string}, {chars}) *escape()*
|
|||||||
:echo escape('c:\program files\vim', ' \')
|
:echo escape('c:\program files\vim', ' \')
|
||||||
< results in: >
|
< results in: >
|
||||||
c:\\program\ files\\vim
|
c:\\program\ files\\vim
|
||||||
< Also see |shellescape()|.
|
< Also see |shellescape()| and |fnameescape()|.
|
||||||
|
|
||||||
*eval()*
|
*eval()*
|
||||||
eval({string}) Evaluate {string} and return the result. Especially useful to
|
eval({string}) Evaluate {string} and return the result. Especially useful to
|
||||||
@@ -3838,7 +3892,7 @@ float2nr({expr}) *float2nr()*
|
|||||||
When the value of {expr} is out of range for a |Number| the
|
When the value of {expr} is out of range for a |Number| the
|
||||||
result is truncated to 0x7fffffff or -0x7fffffff (or when
|
result is truncated to 0x7fffffff or -0x7fffffff (or when
|
||||||
64-bit Number support is enabled, 0x7fffffffffffffff or
|
64-bit Number support is enabled, 0x7fffffffffffffff or
|
||||||
-0x7fffffffffffffff. NaN results in -0x80000000 (or when
|
-0x7fffffffffffffff). NaN results in -0x80000000 (or when
|
||||||
64-bit Number support is enabled, -0x8000000000000000).
|
64-bit Number support is enabled, -0x8000000000000000).
|
||||||
Examples: >
|
Examples: >
|
||||||
echo float2nr(3.95)
|
echo float2nr(3.95)
|
||||||
@@ -4189,14 +4243,14 @@ getchar([expr]) *getchar()*
|
|||||||
not consumed. Return zero if no character available.
|
not consumed. Return zero if no character available.
|
||||||
|
|
||||||
Without [expr] and when [expr] is 0 a whole character or
|
Without [expr] and when [expr] is 0 a whole character or
|
||||||
special key is returned. If it is an 8-bit character, the
|
special key is returned. If it is a single character, the
|
||||||
result is a number. Use nr2char() to convert it to a String.
|
result is a number. Use nr2char() to convert it to a String.
|
||||||
Otherwise a String is returned with the encoded character.
|
Otherwise a String is returned with the encoded character.
|
||||||
For a special key it's a sequence of bytes starting with 0x80
|
For a special key it's a String with a sequence of bytes
|
||||||
(decimal: 128). This is the same value as the string
|
starting with 0x80 (decimal: 128). This is the same value as
|
||||||
"\<Key>", e.g., "\<Left>". The returned value is also a
|
the String "\<Key>", e.g., "\<Left>". The returned value is
|
||||||
String when a modifier (shift, control, alt) was used that is
|
also a String when a modifier (shift, control, alt) was used
|
||||||
not included in the character.
|
that is not included in the character.
|
||||||
|
|
||||||
When [expr] is 0 and Esc is typed, there will be a short delay
|
When [expr] is 0 and Esc is typed, there will be a short delay
|
||||||
while Vim waits to see if this is the start of an escape
|
while Vim waits to see if this is the start of an escape
|
||||||
@@ -4350,6 +4404,7 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
|||||||
highlight highlight groups
|
highlight highlight groups
|
||||||
history :history suboptions
|
history :history suboptions
|
||||||
locale locale names (as output of locale -a)
|
locale locale names (as output of locale -a)
|
||||||
|
mapclear buffer argument
|
||||||
mapping mapping name
|
mapping mapping name
|
||||||
menu menus
|
menu menus
|
||||||
messages |:messages| suboptions
|
messages |:messages| suboptions
|
||||||
@@ -4586,25 +4641,52 @@ getqflist([{what}]) *getqflist()*
|
|||||||
returns only the items listed in {what} as a dictionary. The
|
returns only the items listed in {what} as a dictionary. The
|
||||||
following string items are supported in {what}:
|
following string items are supported in {what}:
|
||||||
context get the context stored with |setqflist()|
|
context get the context stored with |setqflist()|
|
||||||
|
efm errorformat to use when parsing "lines". If
|
||||||
|
not present, then the 'erroformat' option
|
||||||
|
value is used.
|
||||||
|
id get information for the quickfix list with
|
||||||
|
|quickfix-ID|; zero means the id for the
|
||||||
|
current list or the list specifed by "nr"
|
||||||
|
idx index of the current entry in the list
|
||||||
|
items quickfix list entries
|
||||||
|
lines use 'errorformat' to extract items from a list
|
||||||
|
of lines and return the resulting entries.
|
||||||
|
Only a |List| type is accepted. The current
|
||||||
|
quickfix list is not modified.
|
||||||
nr get information for this quickfix list; zero
|
nr get information for this quickfix list; zero
|
||||||
means the current quickfix list
|
means the current quickfix list and "$" means
|
||||||
|
the last quickfix list
|
||||||
|
size number of entries in the quickfix list
|
||||||
title get the list title
|
title get the list title
|
||||||
winid get the |window-ID| (if opened)
|
winid get the |window-ID| (if opened)
|
||||||
all all of the above quickfix properties
|
all all of the above quickfix properties
|
||||||
Non-string items in {what} are ignored.
|
Non-string items in {what} are ignored.
|
||||||
If "nr" is not present then the current quickfix list is used.
|
If "nr" is not present then the current quickfix list is used.
|
||||||
|
If both "nr" and a non-zero "id" are specified, then the list
|
||||||
|
specified by "id" is used.
|
||||||
|
To get the number of lists in the quickfix stack, set "nr" to
|
||||||
|
"$" in {what}. The "nr" value in the returned dictionary
|
||||||
|
contains the quickfix stack size.
|
||||||
|
When "lines" is specified, all the other items except "efm"
|
||||||
|
are ignored. The returned dictionary contains the entry
|
||||||
|
"items" with the list of entries.
|
||||||
In case of error processing {what}, an empty dictionary is
|
In case of error processing {what}, an empty dictionary is
|
||||||
returned.
|
returned.
|
||||||
|
|
||||||
The returned dictionary contains the following entries:
|
The returned dictionary contains the following entries:
|
||||||
context context information stored with |setqflist()|
|
context context information stored with |setqflist()|
|
||||||
|
id quickfix list ID |quickfix-ID|
|
||||||
|
idx index of the current entry in the list
|
||||||
|
items quickfix list entries
|
||||||
nr quickfix list number
|
nr quickfix list number
|
||||||
|
size number of entries in the quickfix list
|
||||||
title quickfix list title text
|
title quickfix list title text
|
||||||
winid quickfix |window-ID| (if opened)
|
winid quickfix |window-ID| (if opened)
|
||||||
|
|
||||||
Examples: >
|
Examples: >
|
||||||
:echo getqflist({'all': 1})
|
:echo getqflist({'all': 1})
|
||||||
:echo getqflist({'nr': 2, 'title': 1})
|
:echo getqflist({'nr': 2, 'title': 1})
|
||||||
|
:echo getqflist({'lines' : ["F1:10:L10"]})
|
||||||
<
|
<
|
||||||
|
|
||||||
getreg([{regname} [, 1 [, {list}]]]) *getreg()*
|
getreg([{regname} [, 1 [, {list}]]]) *getreg()*
|
||||||
@@ -4710,11 +4792,15 @@ getwininfo([{winid}]) *getwininfo()*
|
|||||||
|
|
||||||
Each List item is a Dictionary with the following entries:
|
Each List item is a Dictionary with the following entries:
|
||||||
bufnr number of buffer in the window
|
bufnr number of buffer in the window
|
||||||
height window height
|
height window height (excluding winbar)
|
||||||
|
winbar 1 if the window has a toolbar, 0
|
||||||
|
otherwise
|
||||||
loclist 1 if showing a location list
|
loclist 1 if showing a location list
|
||||||
{only with the +quickfix feature}
|
{only with the +quickfix feature}
|
||||||
quickfix 1 if quickfix or location list window
|
quickfix 1 if quickfix or location list window
|
||||||
{only with the +quickfix feature}
|
{only with the +quickfix feature}
|
||||||
|
terminal 1 if a terminal window
|
||||||
|
{only with the +terminal feature}
|
||||||
tabnr tab page number
|
tabnr tab page number
|
||||||
variables a reference to the dictionary with
|
variables a reference to the dictionary with
|
||||||
window-local variables
|
window-local variables
|
||||||
@@ -5169,6 +5255,9 @@ job_info({job}) *job_info()*
|
|||||||
Returns a Dictionary with information about {job}:
|
Returns a Dictionary with information about {job}:
|
||||||
"status" what |job_status()| returns
|
"status" what |job_status()| returns
|
||||||
"channel" what |job_getchannel()| returns
|
"channel" what |job_getchannel()| returns
|
||||||
|
"process" process ID
|
||||||
|
"tty_in" terminal input name, empty when none
|
||||||
|
"tty_out" terminal output name, empty when none
|
||||||
"exitval" only valid when "status" is "dead"
|
"exitval" only valid when "status" is "dead"
|
||||||
"exit_cb" function to be called on exit
|
"exit_cb" function to be called on exit
|
||||||
"stoponexit" |job-stoponexit|
|
"stoponexit" |job-stoponexit|
|
||||||
@@ -5181,6 +5270,7 @@ job_setoptions({job}, {options}) *job_setoptions()*
|
|||||||
job_start({command} [, {options}]) *job_start()*
|
job_start({command} [, {options}]) *job_start()*
|
||||||
Start a job and return a Job object. Unlike |system()| and
|
Start a job and return a Job object. Unlike |system()| and
|
||||||
|:!cmd| this does not wait for the job to finish.
|
|:!cmd| this does not wait for the job to finish.
|
||||||
|
To start a job in a terminal window see |term_start()|.
|
||||||
|
|
||||||
{command} can be a String. This works best on MS-Windows. On
|
{command} can be a String. This works best on MS-Windows. On
|
||||||
Unix it is split up in white-separated parts to be passed to
|
Unix it is split up in white-separated parts to be passed to
|
||||||
@@ -5461,7 +5551,10 @@ line({expr}) The result is a Number, which is the line number of the file
|
|||||||
< *last-position-jump*
|
< *last-position-jump*
|
||||||
This autocommand jumps to the last known position in a file
|
This autocommand jumps to the last known position in a file
|
||||||
just after opening it, if the '" mark is set: >
|
just after opening it, if the '" mark is set: >
|
||||||
:au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
|
:au BufReadPost *
|
||||||
|
\ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit'
|
||||||
|
\ | exe "normal! g`\""
|
||||||
|
\ | endif
|
||||||
|
|
||||||
line2byte({lnum}) *line2byte()*
|
line2byte({lnum}) *line2byte()*
|
||||||
Return the byte count from the start of the buffer for line
|
Return the byte count from the start of the buffer for line
|
||||||
@@ -5590,6 +5683,7 @@ maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
|||||||
"s" Select
|
"s" Select
|
||||||
"x" Visual
|
"x" Visual
|
||||||
"l" langmap |language-mapping|
|
"l" langmap |language-mapping|
|
||||||
|
"t" Terminal-Job
|
||||||
"" Normal, Visual and Operator-pending
|
"" Normal, Visual and Operator-pending
|
||||||
When {mode} is omitted, the modes for "" are used.
|
When {mode} is omitted, the modes for "" are used.
|
||||||
|
|
||||||
@@ -5883,7 +5977,7 @@ max({expr}) Return the maximum value of all items in {expr}.
|
|||||||
it returns the maximum of all values in the dictionary.
|
it returns the maximum of all values in the dictionary.
|
||||||
If {expr} is neither a list nor a dictionary, or one of the
|
If {expr} is neither a list nor a dictionary, or one of the
|
||||||
items in {expr} cannot be used as a Number this results in
|
items in {expr} cannot be used as a Number this results in
|
||||||
an error. An empty |List| or |Dictionary| results in zero.
|
an error. An empty |List| or |Dictionary| results in zero.
|
||||||
|
|
||||||
*min()*
|
*min()*
|
||||||
min({expr}) Return the minimum value of all items in {expr}.
|
min({expr}) Return the minimum value of all items in {expr}.
|
||||||
@@ -5891,7 +5985,7 @@ min({expr}) Return the minimum value of all items in {expr}.
|
|||||||
it returns the minimum of all values in the dictionary.
|
it returns the minimum of all values in the dictionary.
|
||||||
If {expr} is neither a list nor a dictionary, or one of the
|
If {expr} is neither a list nor a dictionary, or one of the
|
||||||
items in {expr} cannot be used as a Number this results in
|
items in {expr} cannot be used as a Number this results in
|
||||||
an error. An empty |List| or |Dictionary| results in zero.
|
an error. An empty |List| or |Dictionary| results in zero.
|
||||||
|
|
||||||
*mkdir()* *E739*
|
*mkdir()* *E739*
|
||||||
mkdir({name} [, {path} [, {prot}]])
|
mkdir({name} [, {path} [, {prot}]])
|
||||||
@@ -5916,7 +6010,7 @@ mode([expr]) Return a string that indicates the current mode.
|
|||||||
a non-empty String (|non-zero-arg|), then the full mode is
|
a non-empty String (|non-zero-arg|), then the full mode is
|
||||||
returned, otherwise only the first letter is returned.
|
returned, otherwise only the first letter is returned.
|
||||||
|
|
||||||
n Normal
|
n Normal, Terminal-Normal
|
||||||
no Operator-pending
|
no Operator-pending
|
||||||
v Visual by character
|
v Visual by character
|
||||||
V Visual by line
|
V Visual by line
|
||||||
@@ -5938,6 +6032,7 @@ mode([expr]) Return a string that indicates the current mode.
|
|||||||
rm The -- more -- prompt
|
rm The -- more -- prompt
|
||||||
r? A |:confirm| query of some sort
|
r? A |:confirm| query of some sort
|
||||||
! Shell or external command is executing
|
! Shell or external command is executing
|
||||||
|
t Terminal-Job mode: keys go to the job
|
||||||
This is useful in the 'statusline' option or when used
|
This is useful in the 'statusline' option or when used
|
||||||
with |remote_expr()| In most other places it always returns
|
with |remote_expr()| In most other places it always returns
|
||||||
"c" or "n".
|
"c" or "n".
|
||||||
@@ -6186,8 +6281,8 @@ printf({fmt}, {expr1} ...) *printf()*
|
|||||||
zero the decimal point is omitted. When the precision
|
zero the decimal point is omitted. When the precision
|
||||||
is not specified 6 is used. A really big number
|
is not specified 6 is used. A really big number
|
||||||
(out of range or dividing by zero) results in "inf"
|
(out of range or dividing by zero) results in "inf"
|
||||||
or "-inf" with %f (INF or -INF with %F).
|
or "-inf" with %f (INF or -INF with %F).
|
||||||
"0.0 / 0.0" results in "nan" with %f (NAN with %F).
|
"0.0 / 0.0" results in "nan" with %f (NAN with %F).
|
||||||
Example: >
|
Example: >
|
||||||
echo printf("%.2f", 12.115)
|
echo printf("%.2f", 12.115)
|
||||||
< 12.12
|
< 12.12
|
||||||
@@ -6783,6 +6878,19 @@ serverlist() *serverlist()*
|
|||||||
Example: >
|
Example: >
|
||||||
:echo serverlist()
|
:echo serverlist()
|
||||||
<
|
<
|
||||||
|
setbufline({expr}, {lnum}, {text}) *setbufline()*
|
||||||
|
Set line {lnum} to {text} in buffer {expr}. To insert
|
||||||
|
lines use |append()|.
|
||||||
|
|
||||||
|
For the use of {expr}, see |bufname()| above.
|
||||||
|
|
||||||
|
{lnum} is used like with |setline()|.
|
||||||
|
This works like |setline()| for the specified buffer.
|
||||||
|
On success 0 is returned, on failure 1 is returned.
|
||||||
|
|
||||||
|
If {expr} is not a valid buffer or {lnum} is not valid, an
|
||||||
|
error message is given.
|
||||||
|
|
||||||
setbufvar({expr}, {varname}, {val}) *setbufvar()*
|
setbufvar({expr}, {varname}, {val}) *setbufvar()*
|
||||||
Set option or local variable {varname} in buffer {expr} to
|
Set option or local variable {varname} in buffer {expr} to
|
||||||
{val}.
|
{val}.
|
||||||
@@ -6851,13 +6959,19 @@ setfperm({fname}, {mode}) *setfperm()* *chmod*
|
|||||||
|
|
||||||
setline({lnum}, {text}) *setline()*
|
setline({lnum}, {text}) *setline()*
|
||||||
Set line {lnum} of the current buffer to {text}. To insert
|
Set line {lnum} of the current buffer to {text}. To insert
|
||||||
lines use |append()|.
|
lines use |append()|. To set lines in another buffer use
|
||||||
|
|setbufline()|.
|
||||||
|
|
||||||
{lnum} is used like with |getline()|.
|
{lnum} is used like with |getline()|.
|
||||||
When {lnum} is just below the last line the {text} will be
|
When {lnum} is just below the last line the {text} will be
|
||||||
added as a new line.
|
added as a new line.
|
||||||
|
|
||||||
If this succeeds, 0 is returned. If this fails (most likely
|
If this succeeds, 0 is returned. If this fails (most likely
|
||||||
because {lnum} is invalid) 1 is returned. Example: >
|
because {lnum} is invalid) 1 is returned.
|
||||||
|
|
||||||
|
Example: >
|
||||||
:call setline(5, strftime("%c"))
|
:call setline(5, strftime("%c"))
|
||||||
|
|
||||||
< When {text} is a |List| then line {lnum} and following lines
|
< When {text} is a |List| then line {lnum} and following lines
|
||||||
will be set to the items in the list. Example: >
|
will be set to the items in the list. Example: >
|
||||||
:call setline(5, ['aaa', 'bbb', 'ccc'])
|
:call setline(5, ['aaa', 'bbb', 'ccc'])
|
||||||
@@ -6865,6 +6979,7 @@ setline({lnum}, {text}) *setline()*
|
|||||||
:for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
|
:for [n, l] in [[5, 'aaa'], [6, 'bbb'], [7, 'ccc']]
|
||||||
: call setline(n, l)
|
: call setline(n, l)
|
||||||
:endfor
|
:endfor
|
||||||
|
|
||||||
< Note: The '[ and '] marks are not set.
|
< Note: The '[ and '] marks are not set.
|
||||||
|
|
||||||
setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()*
|
setloclist({nr}, {list}[, {action}[, {what}]]) *setloclist()*
|
||||||
@@ -6936,10 +7051,12 @@ setpos({expr}, {list})
|
|||||||
|winrestview()|.
|
|winrestview()|.
|
||||||
|
|
||||||
setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
||||||
Create or replace or add to the quickfix list using the items
|
Create or replace or add to the quickfix list.
|
||||||
in {list}. Each item in {list} is a dictionary.
|
|
||||||
Non-dictionary items in {list} are ignored. Each dictionary
|
When {what} is not present, use the items in {list}. Each
|
||||||
item can contain the following entries:
|
item must be a dictionary. Non-dictionary items in {list} are
|
||||||
|
ignored. Each dictionary item can contain the following
|
||||||
|
entries:
|
||||||
|
|
||||||
bufnr buffer number; must be the number of a valid
|
bufnr buffer number; must be the number of a valid
|
||||||
buffer
|
buffer
|
||||||
@@ -6984,22 +7101,41 @@ setqflist({list} [, {action}[, {what}]]) *setqflist()*
|
|||||||
freed.
|
freed.
|
||||||
|
|
||||||
If {action} is not present or is set to ' ', then a new list
|
If {action} is not present or is set to ' ', then a new list
|
||||||
is created.
|
is created. The new quickfix list is added after the current
|
||||||
|
quickfix list in the stack and all the following lists are
|
||||||
|
freed. To add a new quickfix list at the end of the stack,
|
||||||
|
set "nr" in {what} to "$".
|
||||||
|
|
||||||
If the optional {what} dictionary argument is supplied, then
|
If the optional {what} dictionary argument is supplied, then
|
||||||
only the items listed in {what} are set. The first {list}
|
only the items listed in {what} are set. The first {list}
|
||||||
argument is ignored. The following items can be specified in
|
argument is ignored. The following items can be specified in
|
||||||
{what}:
|
{what}:
|
||||||
context any Vim type can be stored as a context
|
context any Vim type can be stored as a context
|
||||||
nr list number in the quickfix stack
|
efm errorformat to use when parsing text from
|
||||||
|
"lines". If this is not present, then the
|
||||||
|
'errorformat' option value is used.
|
||||||
|
id quickfix list identifier |quickfix-ID|
|
||||||
|
items list of quickfix entries. Same as the {list}
|
||||||
|
argument.
|
||||||
|
lines use 'errorformat' to parse a list of lines and
|
||||||
|
add the resulting entries to the quickfix list
|
||||||
|
{nr} or {id}. Only a |List| value is supported.
|
||||||
|
nr list number in the quickfix stack; zero
|
||||||
|
means the current quickfix list and "$" means
|
||||||
|
the last quickfix list
|
||||||
title quickfix list title text
|
title quickfix list title text
|
||||||
Unsupported keys in {what} are ignored.
|
Unsupported keys in {what} are ignored.
|
||||||
If the "nr" item is not present, then the current quickfix list
|
If the "nr" item is not present, then the current quickfix list
|
||||||
is modified.
|
is modified. When creating a new quickfix list, "nr" can be
|
||||||
|
set to a value one greater than the quickfix stack size.
|
||||||
|
When modifying a quickfix list, to guarantee that the correct
|
||||||
|
list is modified, "id" should be used instead of "nr" to
|
||||||
|
specify the list.
|
||||||
|
|
||||||
Examples: >
|
Examples: >
|
||||||
:call setqflist([], 'r', {'title': 'My search'})
|
:call setqflist([], 'r', {'title': 'My search'})
|
||||||
:call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
|
:call setqflist([], 'r', {'nr': 2, 'title': 'Errors'})
|
||||||
|
:call setqflist([], 'a', {'id':myid, 'lines':["F1:10:L10"]})
|
||||||
<
|
<
|
||||||
Returns zero for success, -1 for failure.
|
Returns zero for success, -1 for failure.
|
||||||
|
|
||||||
@@ -7041,16 +7177,17 @@ setreg({regname}, {value} [, {options}])
|
|||||||
:call setreg('a', "1\n2\n3", 'b5')
|
:call setreg('a', "1\n2\n3", 'b5')
|
||||||
|
|
||||||
< This example shows using the functions to save and restore a
|
< This example shows using the functions to save and restore a
|
||||||
register (note: you may not reliably restore register value
|
register: >
|
||||||
without using the third argument to |getreg()| as without it
|
|
||||||
newlines are represented as newlines AND Nul bytes are
|
|
||||||
represented as newlines as well, see |NL-used-for-Nul|). >
|
|
||||||
:let var_a = getreg('a', 1, 1)
|
:let var_a = getreg('a', 1, 1)
|
||||||
:let var_amode = getregtype('a')
|
:let var_amode = getregtype('a')
|
||||||
....
|
....
|
||||||
:call setreg('a', var_a, var_amode)
|
:call setreg('a', var_a, var_amode)
|
||||||
|
< Note: you may not reliably restore register value
|
||||||
|
without using the third argument to |getreg()| as without it
|
||||||
|
newlines are represented as newlines AND Nul bytes are
|
||||||
|
represented as newlines as well, see |NL-used-for-Nul|.
|
||||||
|
|
||||||
< You can also change the type of a register by appending
|
You can also change the type of a register by appending
|
||||||
nothing: >
|
nothing: >
|
||||||
:call setreg('a', '', 'al')
|
:call setreg('a', '', 'al')
|
||||||
|
|
||||||
@@ -7095,18 +7232,22 @@ shellescape({string} [, {special}]) *shellescape()*
|
|||||||
quotes within {string}.
|
quotes within {string}.
|
||||||
Otherwise it will enclose {string} in single quotes and
|
Otherwise it will enclose {string} in single quotes and
|
||||||
replace all "'" with "'\''".
|
replace all "'" with "'\''".
|
||||||
|
|
||||||
When the {special} argument is present and it's a non-zero
|
When the {special} argument is present and it's a non-zero
|
||||||
Number or a non-empty String (|non-zero-arg|), then special
|
Number or a non-empty String (|non-zero-arg|), then special
|
||||||
items such as "!", "%", "#" and "<cword>" will be preceded by
|
items such as "!", "%", "#" and "<cword>" will be preceded by
|
||||||
a backslash. This backslash will be removed again by the |:!|
|
a backslash. This backslash will be removed again by the |:!|
|
||||||
command.
|
command.
|
||||||
|
|
||||||
The "!" character will be escaped (again with a |non-zero-arg|
|
The "!" character will be escaped (again with a |non-zero-arg|
|
||||||
{special}) when 'shell' contains "csh" in the tail. That is
|
{special}) when 'shell' contains "csh" in the tail. That is
|
||||||
because for csh and tcsh "!" is used for history replacement
|
because for csh and tcsh "!" is used for history replacement
|
||||||
even when inside single quotes.
|
even when inside single quotes.
|
||||||
The <NL> character is also escaped. With a |non-zero-arg|
|
|
||||||
{special} and 'shell' containing "csh" in the tail it's
|
With a |non-zero-arg| {special} the <NL> character is also
|
||||||
|
escaped. When 'shell' containing "csh" in the tail it's
|
||||||
escaped a second time.
|
escaped a second time.
|
||||||
|
|
||||||
Example of use with a |:!| command: >
|
Example of use with a |:!| command: >
|
||||||
:exe '!dir ' . shellescape(expand('<cfile>'), 1)
|
:exe '!dir ' . shellescape(expand('<cfile>'), 1)
|
||||||
< This results in a directory listing for the file under the
|
< This results in a directory listing for the file under the
|
||||||
@@ -7626,6 +7767,7 @@ synIDattr({synID}, {what} [, {mode}]) *synIDattr()*
|
|||||||
"standout" "1" if standout
|
"standout" "1" if standout
|
||||||
"underline" "1" if underlined
|
"underline" "1" if underlined
|
||||||
"undercurl" "1" if undercurled
|
"undercurl" "1" if undercurled
|
||||||
|
"strike" "1" if strikethrough
|
||||||
|
|
||||||
Example (echoes the color of the syntax item under the
|
Example (echoes the color of the syntax item under the
|
||||||
cursor): >
|
cursor): >
|
||||||
@@ -7638,17 +7780,29 @@ synIDtrans({synID}) *synIDtrans()*
|
|||||||
":highlight link" are followed.
|
":highlight link" are followed.
|
||||||
|
|
||||||
synconcealed({lnum}, {col}) *synconcealed()*
|
synconcealed({lnum}, {col}) *synconcealed()*
|
||||||
The result is a List. The first item in the list is 0 if the
|
The result is a List with currently three items:
|
||||||
character at the position {lnum} and {col} is not part of a
|
1. The first item in the list is 0 if the character at the
|
||||||
concealable region, 1 if it is. The second item in the list is
|
position {lnum} and {col} is not part of a concealable
|
||||||
a string. If the first item is 1, the second item contains the
|
region, 1 if it is.
|
||||||
text which will be displayed in place of the concealed text,
|
2. The second item in the list is a string. If the first item
|
||||||
depending on the current setting of 'conceallevel'. The third
|
is 1, the second item contains the text which will be
|
||||||
and final item in the list is a unique number representing the
|
displayed in place of the concealed text, depending on the
|
||||||
specific syntax region matched. This allows detection of the
|
current setting of 'conceallevel' and 'listchars'.
|
||||||
beginning of a new concealable region if there are two
|
3. The third and final item in the list is a number
|
||||||
consecutive regions with the same replacement character.
|
representing the specific syntax region matched in the
|
||||||
For an example use see $VIMRUNTIME/syntax/2html.vim .
|
line. When the character is not concealed the value is
|
||||||
|
zero. This allows detection of the beginning of a new
|
||||||
|
concealable region if there are two consecutive regions
|
||||||
|
with the same replacement character. For an example, if
|
||||||
|
the text is "123456" and both "23" and "45" are concealed
|
||||||
|
and replace by the character "X", then:
|
||||||
|
call returns ~
|
||||||
|
synconcealed(lnum, 1) [0, '', 0]
|
||||||
|
synconcealed(lnum, 2) [1, 'X', 1]
|
||||||
|
synconcealed(lnum, 3) [1, 'X', 1]
|
||||||
|
synconcealed(lnum, 4) [1, 'X', 2]
|
||||||
|
synconcealed(lnum, 5) [1, 'X', 2]
|
||||||
|
synconcealed(lnum, 6) [0, '', 0]
|
||||||
|
|
||||||
|
|
||||||
synstack({lnum}, {col}) *synstack()*
|
synstack({lnum}, {col}) *synstack()*
|
||||||
@@ -7857,6 +8011,203 @@ tempname() *tempname()* *temp-file-name*
|
|||||||
For MS-Windows forward slashes are used when the 'shellslash'
|
For MS-Windows forward slashes are used when the 'shellslash'
|
||||||
option is set or when 'shellcmdflag' starts with '-'.
|
option is set or when 'shellcmdflag' starts with '-'.
|
||||||
|
|
||||||
|
term_getaltscreen({buf}) *term_getaltscreen()*
|
||||||
|
Returns 1 if the terminal of {buf} is using the alternate
|
||||||
|
screen.
|
||||||
|
{buf} is used as with |term_getsize()|.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getattr({attr}, {what}) *term_getattr()*
|
||||||
|
Given {attr}, a value returned by term_scrape() in the "attr"
|
||||||
|
item, return whether {what} is on. {what} can be one of:
|
||||||
|
bold
|
||||||
|
italic
|
||||||
|
underline
|
||||||
|
strike
|
||||||
|
reverse
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getcursor({buf}) *term_getcursor()*
|
||||||
|
Get the cursor position of terminal {buf}. Returns a list with
|
||||||
|
two numbers and a dictionary: [row, col, dict].
|
||||||
|
|
||||||
|
"row" and "col" are one based, the first screen cell is row
|
||||||
|
1, column 1. This is the cursor position of the terminal
|
||||||
|
itself, not of the Vim window.
|
||||||
|
|
||||||
|
"dict" can have these members:
|
||||||
|
"visible" one when the cursor is visible, zero when it
|
||||||
|
is hidden.
|
||||||
|
"blink" one when the cursor is visible, zero when it
|
||||||
|
is hidden.
|
||||||
|
"shape" 1 for a block cursor, 2 for underline and 3
|
||||||
|
for a vertical bar.
|
||||||
|
|
||||||
|
{buf} must be the buffer number of a terminal window. If the
|
||||||
|
buffer does not exist or is not a terminal window, an empty
|
||||||
|
list is returned.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getjob({buf}) *term_getjob()*
|
||||||
|
Get the Job associated with terminal window {buf}.
|
||||||
|
{buf} is used as with |term_getsize()|.
|
||||||
|
Returns |v:null| when there is no job.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getline({buf}, {row}) *term_getline()*
|
||||||
|
Get a line of text from the terminal window of {buf}.
|
||||||
|
{buf} is used as with |term_getsize()|.
|
||||||
|
|
||||||
|
The first line has {row} one. When {row} is "." the cursor
|
||||||
|
line is used. When {row} is invalid an empty string is
|
||||||
|
returned.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getscrolled({buf}) *term_getscrolled()*
|
||||||
|
Return the number of lines that scrolled to above the top of
|
||||||
|
terminal {buf}. This is the offset between the row number
|
||||||
|
used for |term_getline()| and |getline()|, so that: >
|
||||||
|
term_getline(buf, N)
|
||||||
|
< is equal to: >
|
||||||
|
`getline(N + term_getscrolled(buf))
|
||||||
|
< (if that line exists).
|
||||||
|
|
||||||
|
{buf} is used as with |term_getsize()|.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getsize({buf}) *term_getsize()*
|
||||||
|
Get the size of terminal {buf}. Returns a list with two
|
||||||
|
numbers: [rows, cols]. This is the size of the terminal, not
|
||||||
|
the window containing the terminal.
|
||||||
|
|
||||||
|
{buf} must be the buffer number of a terminal window. Use an
|
||||||
|
empty string for the current buffer. If the buffer does not
|
||||||
|
exist or is not a terminal window, an empty list is returned.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_getstatus({buf}) *term_getstatus()*
|
||||||
|
Get the status of terminal {buf}. This returns a comma
|
||||||
|
separated list of these items:
|
||||||
|
running job is running
|
||||||
|
finished job has finished
|
||||||
|
normal in Terminal-Normal mode
|
||||||
|
One of "running" or "finished" is always present.
|
||||||
|
|
||||||
|
{buf} must be the buffer number of a terminal window. If the
|
||||||
|
buffer does not exist or is not a terminal window, an empty
|
||||||
|
string is returned.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_gettitle({buf}) *term_gettitle()*
|
||||||
|
Get the title of terminal {buf}. This is the title that the
|
||||||
|
job in the terminal has set.
|
||||||
|
|
||||||
|
{buf} must be the buffer number of a terminal window. If the
|
||||||
|
buffer does not exist or is not a terminal window, an empty
|
||||||
|
string is returned.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_gettty({buf} [, {input}]) *term_gettty()*
|
||||||
|
Get the name of the controlling terminal associated with
|
||||||
|
terminal window {buf}. {buf} is used as with |term_getsize()|.
|
||||||
|
|
||||||
|
When {input} is omitted or 0, return the name for writing
|
||||||
|
(stdout). When {input} is 1 return the name for reading
|
||||||
|
(stdin). On UNIX, both return same name.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_list() *term_list()*
|
||||||
|
Return a list with the buffer numbers of all buffers for
|
||||||
|
terminal windows.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_scrape({buf}, {row}) *term_scrape()*
|
||||||
|
Get the contents of {row} of terminal screen of {buf}.
|
||||||
|
For {buf} see |term_getsize()|.
|
||||||
|
|
||||||
|
The first line has {row} one. When {row} is "." the cursor
|
||||||
|
line is used. When {row} is invalid an empty string is
|
||||||
|
returned.
|
||||||
|
|
||||||
|
Return a List containing a Dict for each screen cell:
|
||||||
|
"chars" character(s) at the cell
|
||||||
|
"fg" foreground color as #rrggbb
|
||||||
|
"bg" background color as #rrggbb
|
||||||
|
"attr" attributes of the cell, use |term_getattr()|
|
||||||
|
to get the individual flags
|
||||||
|
"width" cell width: 1 or 2
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_sendkeys({buf}, {keys}) *term_sendkeys()*
|
||||||
|
Send keystrokes {keys} to terminal {buf}.
|
||||||
|
{buf} is used as with |term_getsize()|.
|
||||||
|
|
||||||
|
{keys} are translated as key sequences. For example, "\<c-x>"
|
||||||
|
means the character CTRL-X.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_setsize({buf}, {expr}) *term_setsize()*
|
||||||
|
Not implemented yet.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_start({cmd}, {options}) *term_start()*
|
||||||
|
Open a terminal window and run {cmd} in it.
|
||||||
|
|
||||||
|
Returns the buffer number of the terminal window. If {cmd}
|
||||||
|
cannot be executed the window does open and shows an error
|
||||||
|
message.
|
||||||
|
If opening the window fails zero is returned.
|
||||||
|
|
||||||
|
{options} are similar to what is used for |job_start()|, see
|
||||||
|
|job-options|. However, not all options can be used. These
|
||||||
|
are supported:
|
||||||
|
all timeout options
|
||||||
|
"stoponexit"
|
||||||
|
"callback", "out_cb", "err_cb"
|
||||||
|
"exit_cb", "close_cb"
|
||||||
|
"in_io", "in_top", "in_bot", "in_name", "in_buf"
|
||||||
|
"out_io", "out_name", "out_buf", "out_modifiable", "out_msg"
|
||||||
|
"err_io", "err_name", "err_buf", "err_modifiable", "err_msg"
|
||||||
|
However, at least one of stdin, stdout or stderr must be
|
||||||
|
connected to the terminal. When I/O is connected to the
|
||||||
|
terminal then the callback function for that part is not used.
|
||||||
|
|
||||||
|
There are extra options:
|
||||||
|
"term_name" name to use for the buffer name, instead
|
||||||
|
of the command name.
|
||||||
|
"term_rows" vertical size to use for the terminal,
|
||||||
|
instead of using 'termsize'
|
||||||
|
"term_cols" horizontal size to use for the terminal,
|
||||||
|
instead of using 'termsize'
|
||||||
|
"vertical" split the window vertically
|
||||||
|
"curwin" use the current window, do not split the
|
||||||
|
window; fails if the current buffer
|
||||||
|
cannot be |abandon|ed
|
||||||
|
"hidden" do not open a window
|
||||||
|
"term_finish" What to do when the job is finished:
|
||||||
|
"close": close any windows
|
||||||
|
"open": open window if needed
|
||||||
|
Note that "open" can be interruptive.
|
||||||
|
See |term++close| and |term++open|.
|
||||||
|
"term_opencmd" command to use for opening the window when
|
||||||
|
"open" is used for "term_finish"; must
|
||||||
|
have "%d" where the buffer number goes,
|
||||||
|
e.g. "10split|buffer %d"; when not
|
||||||
|
specified "botright sbuf %d" is used
|
||||||
|
"eof_chars" Text to send after all buffer lines were
|
||||||
|
written to the terminal. When not set
|
||||||
|
CTRL-D is used on MS-Windows. For Python
|
||||||
|
use CTRL-Z or "exit()". For a shell use
|
||||||
|
"exit". A CR is always added.
|
||||||
|
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
term_wait({buf} [, {time}]) *term_wait()*
|
||||||
|
Wait for pending updates of {buf} to be handled.
|
||||||
|
{buf} is used as with |term_getsize()|.
|
||||||
|
{time} is how long to wait for updates to arrive in msec. If
|
||||||
|
not set then 10 msec will be used.
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
|
test_alloc_fail({id}, {countdown}, {repeat}) *test_alloc_fail()*
|
||||||
This is for testing: If the memory allocation with {id} is
|
This is for testing: If the memory allocation with {id} is
|
||||||
@@ -7868,6 +8219,11 @@ test_autochdir() *test_autochdir()*
|
|||||||
Set a flag to enable the effect of 'autochdir' before Vim
|
Set a flag to enable the effect of 'autochdir' before Vim
|
||||||
startup has finished.
|
startup has finished.
|
||||||
|
|
||||||
|
test_feedinput({string}) *test_feedinput()*
|
||||||
|
Characters in {string} are queued for processing as if they
|
||||||
|
were typed by the user. This uses a low level input buffer.
|
||||||
|
This function works only when with |+unix| or GUI is running.
|
||||||
|
|
||||||
test_garbagecollect_now() *test_garbagecollect_now()*
|
test_garbagecollect_now() *test_garbagecollect_now()*
|
||||||
Like garbagecollect(), but executed right away. This must
|
Like garbagecollect(), but executed right away. This must
|
||||||
only be called directly to avoid any structure to exist
|
only be called directly to avoid any structure to exist
|
||||||
@@ -7913,8 +8269,19 @@ test_override({name}, {val}) *test_override()*
|
|||||||
name effect when {val} is non-zero ~
|
name effect when {val} is non-zero ~
|
||||||
redraw disable the redrawing() function
|
redraw disable the redrawing() function
|
||||||
char_avail disable the char_avail() function
|
char_avail disable the char_avail() function
|
||||||
|
starting reset the "starting" variable, see below
|
||||||
ALL clear all overrides ({val} is not used)
|
ALL clear all overrides ({val} is not used)
|
||||||
|
|
||||||
|
"starting" is to be used when a test should behave like
|
||||||
|
startup was done. Since the tests are run by sourcing a
|
||||||
|
script the "starting" variable is non-zero. This is usually a
|
||||||
|
good thing (tests run faster), but sometimes changes behavior
|
||||||
|
in a way that the test doesn't work properly.
|
||||||
|
When using: >
|
||||||
|
call test_override('starting', 1)
|
||||||
|
< The value of "starting" is saved. It is restored by: >
|
||||||
|
call test_override('starting', 0)
|
||||||
|
|
||||||
test_settime({expr}) *test_settime()*
|
test_settime({expr}) *test_settime()*
|
||||||
Set the time Vim uses internally. Currently only used for
|
Set the time Vim uses internally. Currently only used for
|
||||||
timestamps in the history, as they are used in viminfo, and
|
timestamps in the history, as they are used in viminfo, and
|
||||||
@@ -7976,6 +8343,10 @@ timer_start({time}, {callback} [, {options}])
|
|||||||
"repeat" Number of times to repeat calling the
|
"repeat" Number of times to repeat calling the
|
||||||
callback. -1 means forever. When not present
|
callback. -1 means forever. When not present
|
||||||
the callback will be called once.
|
the callback will be called once.
|
||||||
|
If the timer causes an error three times in a
|
||||||
|
row the repeat is cancelled. This avoids that
|
||||||
|
Vim becomes unusable because of all the error
|
||||||
|
messages.
|
||||||
|
|
||||||
Example: >
|
Example: >
|
||||||
func MyHandler(timer)
|
func MyHandler(timer)
|
||||||
@@ -8210,7 +8581,7 @@ win_getid([{win} [, {tab}]]) *win_getid()*
|
|||||||
Get the |window-ID| for the specified window.
|
Get the |window-ID| for the specified window.
|
||||||
When {win} is missing use the current window.
|
When {win} is missing use the current window.
|
||||||
With {win} this is the window number. The top window has
|
With {win} this is the window number. The top window has
|
||||||
number 1.
|
number 1. Use `win_getid(winnr())` for the current window.
|
||||||
Without {tab} use the current tab, otherwise the tab with
|
Without {tab} use the current tab, otherwise the tab with
|
||||||
number {tab}. The first tab has number one.
|
number {tab}. The first tab has number one.
|
||||||
Return zero if the window cannot be found.
|
Return zero if the window cannot be found.
|
||||||
@@ -8250,6 +8621,7 @@ winheight({nr}) *winheight()*
|
|||||||
When {nr} is zero, the height of the current window is
|
When {nr} is zero, the height of the current window is
|
||||||
returned. When window {nr} doesn't exist, -1 is returned.
|
returned. When window {nr} doesn't exist, -1 is returned.
|
||||||
An existing window always has a height of zero or more.
|
An existing window always has a height of zero or more.
|
||||||
|
This excludes any window toolbar line.
|
||||||
Examples: >
|
Examples: >
|
||||||
:echo "The current window has " . winheight(0) . " lines."
|
:echo "The current window has " . winheight(0) . " lines."
|
||||||
<
|
<
|
||||||
@@ -8335,8 +8707,8 @@ winwidth({nr}) *winwidth()*
|
|||||||
:if winwidth(0) <= 50
|
:if winwidth(0) <= 50
|
||||||
: exe "normal 50\<C-W>|"
|
: exe "normal 50\<C-W>|"
|
||||||
:endif
|
:endif
|
||||||
< For getting the terminal or screen size, see the 'columns'
|
< For getting the terminal or screen size, see the 'columns'
|
||||||
option.
|
option.
|
||||||
|
|
||||||
|
|
||||||
wordcount() *wordcount()*
|
wordcount() *wordcount()*
|
||||||
@@ -8354,11 +8726,11 @@ wordcount() *wordcount()*
|
|||||||
cursor_words Number of words before cursor position
|
cursor_words Number of words before cursor position
|
||||||
(not in Visual mode)
|
(not in Visual mode)
|
||||||
visual_bytes Number of bytes visually selected
|
visual_bytes Number of bytes visually selected
|
||||||
(only in Visual mode)
|
(only in Visual mode)
|
||||||
visual_chars Number of chars visually selected
|
visual_chars Number of chars visually selected
|
||||||
(only in Visual mode)
|
(only in Visual mode)
|
||||||
visual_words Number of chars visually selected
|
visual_words Number of words visually selected
|
||||||
(only in Visual mode)
|
(only in Visual mode)
|
||||||
|
|
||||||
|
|
||||||
*writefile()*
|
*writefile()*
|
||||||
@@ -8566,6 +8938,7 @@ tag_any_white Compiled with support for any white characters in tags
|
|||||||
files |tag-any-white|.
|
files |tag-any-white|.
|
||||||
tcl Compiled with Tcl interface.
|
tcl Compiled with Tcl interface.
|
||||||
termguicolors Compiled with true color in terminal support.
|
termguicolors Compiled with true color in terminal support.
|
||||||
|
terminal Compiled with |terminal| support.
|
||||||
terminfo Compiled with terminfo instead of termcap.
|
terminfo Compiled with terminfo instead of termcap.
|
||||||
termresponse Compiled with support for |t_RV| and |v:termresponse|.
|
termresponse Compiled with support for |t_RV| and |v:termresponse|.
|
||||||
textobjects Compiled with support for |text-objects|.
|
textobjects Compiled with support for |text-objects|.
|
||||||
@@ -8576,7 +8949,7 @@ title Compiled with window title support |'title'|.
|
|||||||
toolbar Compiled with support for |gui-toolbar|.
|
toolbar Compiled with support for |gui-toolbar|.
|
||||||
ttyin input is a terminal (tty)
|
ttyin input is a terminal (tty)
|
||||||
ttyout output is a terminal (tty)
|
ttyout output is a terminal (tty)
|
||||||
unix Unix version of Vim.
|
unix Unix version of Vim. *+unix*
|
||||||
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
|
unnamedplus Compiled with support for "unnamedplus" in 'clipboard'
|
||||||
user_commands User-defined commands.
|
user_commands User-defined commands.
|
||||||
vertsplit Compiled with vertically split windows |:vsplit|.
|
vertsplit Compiled with vertically split windows |:vsplit|.
|
||||||
@@ -8702,6 +9075,9 @@ See |:verbose-cmd| for more information.
|
|||||||
not used an error message is given. When [!] is used,
|
not used an error message is given. When [!] is used,
|
||||||
an existing function is silently replaced. Unless it
|
an existing function is silently replaced. Unless it
|
||||||
is currently being executed, that is an error.
|
is currently being executed, that is an error.
|
||||||
|
NOTE: Use ! wisely. If used without care it can cause
|
||||||
|
an existing function to be replaced unexpectedly,
|
||||||
|
which is hard to debug.
|
||||||
|
|
||||||
For the {arguments} see |function-argument|.
|
For the {arguments} see |function-argument|.
|
||||||
|
|
||||||
@@ -8751,18 +9127,36 @@ See |:verbose-cmd| for more information.
|
|||||||
implies that the effect of |:nohlsearch| is undone
|
implies that the effect of |:nohlsearch| is undone
|
||||||
when the function returns.
|
when the function returns.
|
||||||
|
|
||||||
*:endf* *:endfunction* *E126* *E193*
|
*:endf* *:endfunction* *E126* *E193* *W22*
|
||||||
:endf[unction] The end of a function definition. Must be on a line
|
:endf[unction] [argument]
|
||||||
by its own, without other commands.
|
The end of a function definition. Best is to put it
|
||||||
|
on a line by its own, without [argument].
|
||||||
|
|
||||||
|
[argument] can be:
|
||||||
|
| command command to execute next
|
||||||
|
\n command command to execute next
|
||||||
|
" comment always ignored
|
||||||
|
anything else ignored, warning given when
|
||||||
|
'verbose' is non-zero
|
||||||
|
The support for a following command was added in Vim
|
||||||
|
8.0.0654, before that any argument was silently
|
||||||
|
ignored.
|
||||||
|
|
||||||
|
To be able to define a function inside an `:execute`
|
||||||
|
command, use line breaks instead of |:bar|: >
|
||||||
|
:exe "func Foo()\necho 'foo'\nendfunc"
|
||||||
|
<
|
||||||
*:delf* *:delfunction* *E130* *E131* *E933*
|
*:delf* *:delfunction* *E130* *E131* *E933*
|
||||||
:delf[unction] {name} Delete function {name}.
|
:delf[unction][!] {name}
|
||||||
|
Delete function {name}.
|
||||||
{name} can also be a |Dictionary| entry that is a
|
{name} can also be a |Dictionary| entry that is a
|
||||||
|Funcref|: >
|
|Funcref|: >
|
||||||
:delfunc dict.init
|
:delfunc dict.init
|
||||||
< This will remove the "init" entry from "dict". The
|
< This will remove the "init" entry from "dict". The
|
||||||
function is deleted if there are no more references to
|
function is deleted if there are no more references to
|
||||||
it.
|
it.
|
||||||
|
With the ! there is no error if the function does not
|
||||||
|
exist.
|
||||||
*:retu* *:return* *E133*
|
*:retu* *:return* *E133*
|
||||||
:retu[rn] [expr] Return from a function. When "[expr]" is given, it is
|
:retu[rn] [expr] Return from a function. When "[expr]" is given, it is
|
||||||
evaluated and returned as the result of the function.
|
evaluated and returned as the result of the function.
|
||||||
|
|||||||
@@ -116,13 +116,13 @@ g:rustfmt_options~
|
|||||||
|
|
||||||
*g:rust_playpen_url*
|
*g:rust_playpen_url*
|
||||||
g:rust_playpen_url~
|
g:rust_playpen_url~
|
||||||
Set this option to override the url for the playpen to use: >
|
Set this option to override the URL for the playpen to use: >
|
||||||
let g:rust_playpen_url = 'https://play.rust-lang.org/'
|
let g:rust_playpen_url = 'https://play.rust-lang.org/'
|
||||||
<
|
<
|
||||||
|
|
||||||
*g:rust_shortener_url*
|
*g:rust_shortener_url*
|
||||||
g:rust_shortener_url~
|
g:rust_shortener_url~
|
||||||
Set this option to override the url for the url shortener: >
|
Set this option to override the URL for the URL shortener: >
|
||||||
let g:rust_shortener_url = 'https://is.gd/'
|
let g:rust_shortener_url = 'https://is.gd/'
|
||||||
<
|
<
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ COMMANDS *rust-commands*
|
|||||||
|g:rust_playpen_url| is the base URL to the playpen, by default
|
|g:rust_playpen_url| is the base URL to the playpen, by default
|
||||||
"https://play.rust-lang.org/".
|
"https://play.rust-lang.org/".
|
||||||
|
|
||||||
|g:rust_shortener_url| is the base url for the shorterner, by
|
|g:rust_shortener_url| is the base URL for the shorterner, by
|
||||||
default "https://is.gd/"
|
default "https://is.gd/"
|
||||||
|
|
||||||
:RustFmt *:RustFmt*
|
:RustFmt *:RustFmt*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui.txt* For Vim version 8.0. Last change: 2014 Mar 08
|
*gui.txt* For Vim version 8.0. Last change: 2017 Sep 23
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -67,7 +67,7 @@ When the GUI starts up initializations are carried out, in this order:
|
|||||||
executed as an Ex command.
|
executed as an Ex command.
|
||||||
- If the user gvimrc file exists, it is sourced. The name of this file is
|
- If the user gvimrc file exists, it is sourced. The name of this file is
|
||||||
normally "$HOME/.gvimrc". You can check this with ":version".
|
normally "$HOME/.gvimrc". You can check this with ":version".
|
||||||
- For Win32, when $HOME is not set, "$VIM\_gvimrc" is used.
|
- For Win32, $HOME is set by Vim if needed, see |$HOME-windows|.
|
||||||
- When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
|
- When a "_gvimrc" file is not found, ".gvimrc" is tried too. And vice
|
||||||
versa.
|
versa.
|
||||||
The name of the first file found is stored in $MYGVIMRC, unless it was
|
The name of the first file found is stored in $MYGVIMRC, unless it was
|
||||||
@@ -79,7 +79,8 @@ When the GUI starts up initializations are carried out, in this order:
|
|||||||
and DOS/Win32 "_gvimrc" is tried first.
|
and DOS/Win32 "_gvimrc" is tried first.
|
||||||
|
|
||||||
NOTE: All but the first one are not carried out if Vim was started with
|
NOTE: All but the first one are not carried out if Vim was started with
|
||||||
"-u NONE" and no "-U" argument was given, or when started with "-U NONE".
|
"-u NONE" or "-u DEFAULTS" and no "-U" argument was given, or when started
|
||||||
|
with "-U NONE".
|
||||||
|
|
||||||
All this happens AFTER the normal Vim initializations, like reading your
|
All this happens AFTER the normal Vim initializations, like reading your
|
||||||
.vimrc file. See |initialization|.
|
.vimrc file. See |initialization|.
|
||||||
@@ -783,10 +784,40 @@ In the Win32 and GTK+ GUI, starting a menu name with ']' excludes that menu
|
|||||||
from the main menu bar. You must then use the |:popup| or |:tearoff| command
|
from the main menu bar. You must then use the |:popup| or |:tearoff| command
|
||||||
to display it.
|
to display it.
|
||||||
|
|
||||||
|
*window-toolbar* *WinBar*
|
||||||
|
Each window can have a local toolbar. This uses the first line of the window,
|
||||||
|
thus reduces the space for the text by one line. The items in the toolbar
|
||||||
|
must start with "WinBar".
|
||||||
|
|
||||||
|
Only text can be used. When using Unicode, special characters can be used to
|
||||||
|
make the items look like icons.
|
||||||
|
|
||||||
|
If the items do not fit then the last ones cannot be used. The toolbar does
|
||||||
|
not wrap.
|
||||||
|
|
||||||
|
Note that Vim may be in any mode when executing these commands. The menu
|
||||||
|
should be defined for Normal mode and will be executed without changing the
|
||||||
|
current mode. Thus if the current window is in Visual mode and the menu
|
||||||
|
command does not intentionally change the mode, Vim will remain in Visual
|
||||||
|
mode. Best is to use `:nnoremenu` to avoid side effects.
|
||||||
|
|
||||||
|
Example for debugger tools: >
|
||||||
|
nnoremenu 1.10 WinBar.Step :Step<CR>
|
||||||
|
nnoremenu 1.20 WinBar.Next :Next<CR>
|
||||||
|
nnoremenu 1.30 WinBar.Finish :Finish<CR>
|
||||||
|
nnoremenu 1.40 WinBar.Cont :Continue<CR>
|
||||||
|
<
|
||||||
|
The window toolbar uses the ToolbarLine and ToolbarButton highlight groups.
|
||||||
|
|
||||||
|
When splitting the window the window toolbar is not copied to the new window.
|
||||||
|
|
||||||
*popup-menu*
|
*popup-menu*
|
||||||
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
|
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the
|
||||||
special menu "PopUp". This is the menu that is displayed when the right mouse
|
special menu "PopUp". This is the menu that is displayed when the right mouse
|
||||||
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
|
button is pressed, if 'mousemodel' is set to popup or popup_setpos.
|
||||||
|
Example: >
|
||||||
|
nnoremenu 1.40 PopUp.&Paste "+gP
|
||||||
|
menu PopUp
|
||||||
|
|
||||||
|
|
||||||
5.3 Showing What Menus Are Mapped To *showing-menus*
|
5.3 Showing What Menus Are Mapped To *showing-menus*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui_x11.txt* For Vim version 8.0. Last change: 2016 Sep 12
|
*gui_x11.txt* For Vim version 8.0. Last change: 2017 Jul 28
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -279,8 +279,9 @@ For CDE "dtwm" (a derivative of Motif) add this line in the .Xdefaults: >
|
|||||||
For "mwm" (Motif window manager) the line would be: >
|
For "mwm" (Motif window manager) the line would be: >
|
||||||
Mwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm
|
Mwm*Vim*iconImage: /usr/local/share/vim/vim32x32.xpm
|
||||||
|
|
||||||
Mouse Pointers Available in X11 *X11_mouse_shapes*
|
|
||||||
|
|
||||||
|
Mouse Pointers Available in X11 ~
|
||||||
|
*X11_mouse_shapes*
|
||||||
By using the |'mouseshape'| option, the mouse pointer can be automatically
|
By using the |'mouseshape'| option, the mouse pointer can be automatically
|
||||||
changed whenever Vim enters one of its various modes (e.g., Insert or
|
changed whenever Vim enters one of its various modes (e.g., Insert or
|
||||||
Command). Currently, the available pointers are:
|
Command). Currently, the available pointers are:
|
||||||
@@ -354,7 +355,9 @@ to the GTK documentation, however little there is, on how to do this.
|
|||||||
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
|
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
*gtk-tooltip-colors*
|
|
||||||
|
Tooltip Colors ~
|
||||||
|
*gtk-tooltip-colors*
|
||||||
Example, which sets the tooltip colors to black on light-yellow: >
|
Example, which sets the tooltip colors to black on light-yellow: >
|
||||||
|
|
||||||
style "tooltips"
|
style "tooltips"
|
||||||
@@ -372,15 +375,122 @@ distribution.
|
|||||||
For GTK+ 3, an effect similar to the above can be obtained by adding the
|
For GTK+ 3, an effect similar to the above can be obtained by adding the
|
||||||
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
|
following snippet of CSS code to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
|
||||||
$HOME/.config/gtk-3.0/gtk.css):
|
$HOME/.config/gtk-3.0/gtk.css):
|
||||||
>
|
|
||||||
|
For GTK+ 3 < 3.20: >
|
||||||
|
|
||||||
.tooltip {
|
.tooltip {
|
||||||
background-color: #ffffcc;
|
background-color: #ffffcc;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
<
|
<
|
||||||
|
For GTK+ 3 >= 3.20: >
|
||||||
|
|
||||||
Using Vim as a GTK+ plugin *gui-gtk-socketid*
|
tooltip {
|
||||||
|
background-color: #ffffcc;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: #2e3436;
|
||||||
|
}
|
||||||
|
<
|
||||||
|
|
||||||
|
A Quick Look at GTK+ CSS ~
|
||||||
|
*gtk-css*
|
||||||
|
The contents of this subsection apply to GTK+ 3.20 or later which provides
|
||||||
|
stable support for GTK+ CSS:
|
||||||
|
|
||||||
|
https://developer.gnome.org/gtk3/stable/theming.html
|
||||||
|
|
||||||
|
GTK+ uses CSS for styling and layout of widgets. In this subsection, we'll
|
||||||
|
have a quick look at GTK+ CSS through simple, illustrative examples.
|
||||||
|
|
||||||
|
Example 1. Empty Space Adjustment ~
|
||||||
|
|
||||||
|
By default, the toolbar and the tabline of the GTK+ 3 GUI are somewhat larger
|
||||||
|
than those of the GTK+ 2 GUI. Some people may want to make them look similar
|
||||||
|
to the GTK+ 2 GUI in size.
|
||||||
|
|
||||||
|
To do that, we'll try reducing empty space around icons and labels that looks
|
||||||
|
apparently superfluous.
|
||||||
|
|
||||||
|
Add the following lines to $XDG_HOME_DIR/gtk-3.0/gtk.css (usually,
|
||||||
|
$HOME/.config/gtk-3.0/gtk.css): >
|
||||||
|
|
||||||
|
toolbar button {
|
||||||
|
margin-top: -2px;
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-bottom: -2px;
|
||||||
|
margin-left: 0px;
|
||||||
|
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 0px
|
||||||
|
}
|
||||||
|
|
||||||
|
notebook tab {
|
||||||
|
margin-top: -1px;
|
||||||
|
margin-right: 3px;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
margin-left: 3px;
|
||||||
|
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-right: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 0px
|
||||||
|
}
|
||||||
|
<
|
||||||
|
Since it's a CSS, they can be rewritten using shorthand: >
|
||||||
|
|
||||||
|
toolbar button {
|
||||||
|
margin: -2px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
notebook tab {
|
||||||
|
margin: -1px 3px;
|
||||||
|
padding: 0px
|
||||||
|
}
|
||||||
|
<
|
||||||
|
Note: You might want to use 'toolbariconsize' to adjust the icon size, too.
|
||||||
|
|
||||||
|
Note: Depending on the icon theme and/or the font in use, some extra tweaks
|
||||||
|
may be needed for a satisfactory result.
|
||||||
|
|
||||||
|
Note: In addition to margin and padding, you can use border. For details,
|
||||||
|
refer to the box model of CSS, e.g.,
|
||||||
|
|
||||||
|
https://www.w3schools.com/css/css_boxmodel.asp
|
||||||
|
|
||||||
|
Example 2. More Than Just Colors ~
|
||||||
|
|
||||||
|
GTK+ CSS supports gradients as well: >
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background-image: -gtk-gradient(linear,
|
||||||
|
0 0, 0 1,
|
||||||
|
color-stop(0, #344752),
|
||||||
|
color-stop(0.5, #546772),
|
||||||
|
color-stop(1, #243742));
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: #f3f3f3;
|
||||||
|
}
|
||||||
|
<
|
||||||
|
Gradients can be used to make a GUI element visually distinguishable from
|
||||||
|
others without relying on high contrast. Accordingly, effective use of them is
|
||||||
|
a useful technique to give a theme a sense of unity in color and luminance.
|
||||||
|
|
||||||
|
Note: Theming can be difficult since it must make every application look
|
||||||
|
equally good; making a single application more charming often gets others
|
||||||
|
unexpectedly less attractive or even deteriorates their usability. Keep this
|
||||||
|
in mind always when you try improving a theme.
|
||||||
|
|
||||||
|
|
||||||
|
Using Vim as a GTK+ plugin ~
|
||||||
|
*gui-gtk-socketid*
|
||||||
When the GTK+ version of Vim starts up normally, it creates its own top level
|
When the GTK+ version of Vim starts up normally, it creates its own top level
|
||||||
window (technically, a 'GtkWindow'). GTK+ provides an embedding facility with
|
window (technically, a 'GtkWindow'). GTK+ provides an embedding facility with
|
||||||
its GtkSocket and GtkPlug widgets. If one GTK+ application creates a
|
its GtkSocket and GtkPlug widgets. If one GTK+ application creates a
|
||||||
@@ -425,8 +535,8 @@ Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build. The
|
|||||||
functionality mentioned above is consolidated in GTK+ 3.
|
functionality mentioned above is consolidated in GTK+ 3.
|
||||||
|
|
||||||
|
|
||||||
GNOME session support *gui-gnome-session* *gnome-session*
|
GNOME session support ~
|
||||||
|
*gui-gnome-session* *gnome-session*
|
||||||
On logout, Vim shows the well-known exit confirmation dialog if any buffers
|
On logout, Vim shows the well-known exit confirmation dialog if any buffers
|
||||||
are modified. Clicking [Cancel] will stop the logout process. Otherwise the
|
are modified. Clicking [Cancel] will stop the logout process. Otherwise the
|
||||||
current session is stored to disk by using the |:mksession| command, and
|
current session is stored to disk by using the |:mksession| command, and
|
||||||
@@ -563,7 +673,7 @@ Of these three, Vim uses PRIMARY when reading and writing the "* register
|
|||||||
register. Vim does not access the SECONDARY selection.
|
register. Vim does not access the SECONDARY selection.
|
||||||
|
|
||||||
Examples: (assuming the default option values)
|
Examples: (assuming the default option values)
|
||||||
- Select an URL in Visual mode in Vim. Go to your browser and click the
|
- Select a URL in Visual mode in Vim. Go to your browser and click the
|
||||||
middle mouse button in the URL text field. The selected text will be
|
middle mouse button in the URL text field. The selected text will be
|
||||||
inserted (hopefully!). Note: in Firefox you can set the
|
inserted (hopefully!). Note: in Firefox you can set the
|
||||||
middlemouse.contentLoadURL preference to true in about:config, then the
|
middlemouse.contentLoadURL preference to true in about:config, then the
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_cscop.txt* For Vim version 8.0. Last change: 2011 Jun 12
|
*if_cscop.txt* For Vim version 8.0. Last change: 2017 Jun 14
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Andy Kahn
|
VIM REFERENCE MANUAL by Andy Kahn
|
||||||
@@ -91,9 +91,10 @@ suggested use.)
|
|||||||
2. Cscope related commands *cscope-commands*
|
2. Cscope related commands *cscope-commands*
|
||||||
|
|
||||||
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
|
*:cscope* *:cs* *:scs* *:scscope* *E259* *E262* *E561* *E560*
|
||||||
All cscope commands are accessed through suboptions to the main cscope
|
All cscope commands are accessed through suboptions to the cscope commands.
|
||||||
command ":cscope". The shortest abbreviation is ":cs". The ":scscope"
|
`:cscope` or `:cs` is the main command
|
||||||
command does the same and also splits the window (short: "scs").
|
`:scscope` or `:scs` does the same and splits the window
|
||||||
|
`:lcscope` or `:lcs` uses the location list, see |:lcscope|
|
||||||
|
|
||||||
The available subcommands are:
|
The available subcommands are:
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
|
*if_mzsch.txt* For Vim version 8.0. Last change: 2017 Oct 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Sergey Khorev
|
VIM REFERENCE MANUAL by Sergey Khorev
|
||||||
@@ -278,12 +278,15 @@ When you don't use the MzScheme interface you don't need them, thus you can
|
|||||||
use Vim without these DLL files.
|
use Vim without these DLL files.
|
||||||
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||||
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
||||||
startup if possible.
|
startup if possible. This may make Vim startup slower.
|
||||||
|
|
||||||
To use the MzScheme interface the MzScheme DLLs must be in your search path.
|
To use the MzScheme interface the MzScheme DLLs must be in your search path.
|
||||||
In a console window type "path" to see what directories are used.
|
In a console window type "path" to see what directories are used.
|
||||||
|
|
||||||
The names of the DLLs must match the MzScheme version Vim was compiled with.
|
On MS-Windows the options 'mzschemedll' and 'mzschemegcdll' are used for the
|
||||||
|
name of the library to load. The initial value is specified at build time.
|
||||||
|
|
||||||
|
The version of the DLL must match the MzScheme version Vim was compiled with.
|
||||||
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
||||||
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
|
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
|
||||||
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
||||||
|
|||||||
@@ -894,10 +894,10 @@ On Ubuntu you will want to install these packages for Python 2:
|
|||||||
python-dev
|
python-dev
|
||||||
For Python 3:
|
For Python 3:
|
||||||
python3
|
python3
|
||||||
pytyon3-dev
|
python3-dev
|
||||||
For Python 3.6:
|
For Python 3.6:
|
||||||
python3.6
|
python3.6
|
||||||
pytyon3.6-dev
|
python3.6-dev
|
||||||
|
|
||||||
If you have more than one version of Python 3, you need to link python3 to the
|
If you have more than one version of Python 3, you need to link python3 to the
|
||||||
one you prefer, before running configure.
|
one you prefer, before running configure.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*index.txt* For Vim version 8.0. Last change: 2017 Apr 22
|
*index.txt* For Vim version 8.0. Last change: 2017 Aug 02
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -528,8 +528,11 @@ tag command action in Normal mode ~
|
|||||||
|CTRL-W_CTRL-]| CTRL-W CTRL-] same as "CTRL-W ]"
|
|CTRL-W_CTRL-]| CTRL-W CTRL-] same as "CTRL-W ]"
|
||||||
|CTRL-W_CTRL-^| CTRL-W CTRL-^ same as "CTRL-W ^"
|
|CTRL-W_CTRL-^| CTRL-W CTRL-^ same as "CTRL-W ^"
|
||||||
|CTRL-W_CTRL-_| CTRL-W CTRL-_ same as "CTRL-W _"
|
|CTRL-W_CTRL-_| CTRL-W CTRL-_ same as "CTRL-W _"
|
||||||
|
|CTRL-W_quote| CTRL-W " terminal window: paste register
|
||||||
|CTRL-W_+| CTRL-W + increase current window height N lines
|
|CTRL-W_+| CTRL-W + increase current window height N lines
|
||||||
|CTRL-W_-| CTRL-W - decrease current window height N lines
|
|CTRL-W_-| CTRL-W - decrease current window height N lines
|
||||||
|
|CTRL-W_.| CTRL-W . terminal window: type CTRL-W
|
||||||
|
|CTRL-W_:| CTRL-W : same as |:|, edit a command line
|
||||||
|CTRL-W_<| CTRL-W < decrease current window width N columns
|
|CTRL-W_<| CTRL-W < decrease current window width N columns
|
||||||
|CTRL-W_=| CTRL-W = make all windows the same height & width
|
|CTRL-W_=| CTRL-W = make all windows the same height & width
|
||||||
|CTRL-W_>| CTRL-W > increase current window width N columns
|
|CTRL-W_>| CTRL-W > increase current window width N columns
|
||||||
@@ -537,6 +540,7 @@ tag command action in Normal mode ~
|
|||||||
|CTRL-W_J| CTRL-W J move current window to the very bottom
|
|CTRL-W_J| CTRL-W J move current window to the very bottom
|
||||||
|CTRL-W_K| CTRL-W K move current window to the very top
|
|CTRL-W_K| CTRL-W K move current window to the very top
|
||||||
|CTRL-W_L| CTRL-W L move current window to the far right
|
|CTRL-W_L| CTRL-W L move current window to the far right
|
||||||
|
|CTRL-W_N| CTRL-W N terminal window: go to Terminal Normal mode
|
||||||
|CTRL-W_P| CTRL-W P go to preview window
|
|CTRL-W_P| CTRL-W P go to preview window
|
||||||
|CTRL-W_R| CTRL-W R rotate windows upwards N times
|
|CTRL-W_R| CTRL-W R rotate windows upwards N times
|
||||||
|CTRL-W_S| CTRL-W S same as "CTRL-W s"
|
|CTRL-W_S| CTRL-W S same as "CTRL-W s"
|
||||||
@@ -1573,18 +1577,23 @@ tag command action ~
|
|||||||
|:tcldo| :tcld[o] execute Tcl command for each line
|
|:tcldo| :tcld[o] execute Tcl command for each line
|
||||||
|:tclfile| :tclf[ile] execute Tcl script file
|
|:tclfile| :tclf[ile] execute Tcl script file
|
||||||
|:tearoff| :te[aroff] tear-off a menu
|
|:tearoff| :te[aroff] tear-off a menu
|
||||||
|
|:terminal| :ter[minal] open a terminal window
|
||||||
|:tfirst| :tf[irst] jump to first matching tag
|
|:tfirst| :tf[irst] jump to first matching tag
|
||||||
|:throw| :th[row] throw an exception
|
|:throw| :th[row] throw an exception
|
||||||
|:tjump| :tj[ump] like ":tselect", but jump directly when there
|
|:tjump| :tj[ump] like ":tselect", but jump directly when there
|
||||||
is only one match
|
is only one match
|
||||||
|:tlast| :tl[ast] jump to last matching tag
|
|:tlast| :tl[ast] jump to last matching tag
|
||||||
|
|:tmapclear| :tmapc[lear] remove all mappings for Terminal-Job mode
|
||||||
|
|:tmap| :tma[p] like ":map" but for Terminal-Job mode
|
||||||
|:tmenu| :tm[enu] define menu tooltip
|
|:tmenu| :tm[enu] define menu tooltip
|
||||||
|:tnext| :tn[ext] jump to next matching tag
|
|:tnext| :tn[ext] jump to next matching tag
|
||||||
|
|:tnoremap| :tno[remap] like ":noremap" but for Terminal-Job mode
|
||||||
|:topleft| :to[pleft] make split window appear at top or far left
|
|:topleft| :to[pleft] make split window appear at top or far left
|
||||||
|:tprevious| :tp[revious] jump to previous matching tag
|
|:tprevious| :tp[revious] jump to previous matching tag
|
||||||
|:trewind| :tr[ewind] jump to first matching tag
|
|:trewind| :tr[ewind] jump to first matching tag
|
||||||
|:try| :try execute commands, abort on error or exception
|
|:try| :try execute commands, abort on error or exception
|
||||||
|:tselect| :ts[elect] list matching tags and select one
|
|:tselect| :ts[elect] list matching tags and select one
|
||||||
|
|:tunmap| :tunma[p] like ":unmap" but for Terminal-Job mode
|
||||||
|:tunmenu| :tu[nmenu] remove menu tooltip
|
|:tunmenu| :tu[nmenu] remove menu tooltip
|
||||||
|:undo| :u[ndo] undo last change(s)
|
|:undo| :u[ndo] undo last change(s)
|
||||||
|:undojoin| :undoj[oin] join next change with previous undo block
|
|:undojoin| :undoj[oin] join next change with previous undo block
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*intro.txt* For Vim version 8.0. Last change: 2016 Sep 24
|
*intro.txt* For Vim version 8.0. Last change: 2017 Sep 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -143,9 +143,14 @@ There are two ways to report bugs, both work:
|
|||||||
|
|
||||||
Please be brief; all the time that is spent on answering mail is subtracted
|
Please be brief; all the time that is spent on answering mail is subtracted
|
||||||
from the time that is spent on improving Vim! Always give a reproducible
|
from the time that is spent on improving Vim! Always give a reproducible
|
||||||
example and try to find out which settings or other things influence the
|
example and try to find out which settings or other things trigger the bug.
|
||||||
appearance of the bug. Try different machines, if possible. Send me patches
|
|
||||||
if you can!
|
Preferably start Vim with: >
|
||||||
|
vim --clean -u reproduce.vim
|
||||||
|
Where reproduce.vim is a script that reproduces the problem. Try different
|
||||||
|
machines, if relevant (is this an MS-Windows specific bug perhaps?).
|
||||||
|
|
||||||
|
Send me patches if you can!
|
||||||
|
|
||||||
It will help to include information about the version of Vim you are using and
|
It will help to include information about the version of Vim you are using and
|
||||||
your setup. You can get the information with this command: >
|
your setup. You can get the information with this command: >
|
||||||
@@ -259,6 +264,10 @@ Vim would never have become what it is now, without the help of these people!
|
|||||||
Juergen Weigert Lattice version, AUX improvements, UNIX and
|
Juergen Weigert Lattice version, AUX improvements, UNIX and
|
||||||
MS-DOS ports, autoconf
|
MS-DOS ports, autoconf
|
||||||
Stefan 'Sec' Zehl Maintainer of vim.org
|
Stefan 'Sec' Zehl Maintainer of vim.org
|
||||||
|
Yasuhiro Matsumoto many MS-Windows improvements
|
||||||
|
Ken Takata fixes and features
|
||||||
|
Kazunobu Kuriyama GTK 3
|
||||||
|
Christian Brabandt many fixes, features, user support, etc.
|
||||||
|
|
||||||
I wish to thank all the people that sent me bug reports and suggestions. The
|
I wish to thank all the people that sent me bug reports and suggestions. The
|
||||||
list is too long to mention them all here. Vim would not be the same without
|
list is too long to mention them all here. Vim would not be the same without
|
||||||
@@ -525,7 +534,7 @@ examples and use them directly. Or type them literally, including the '<' and
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
5. Modes, introduction *vim-modes-intro* *vim-modes*
|
5. Modes, introduction *vim-modes-intro* *vim-modes*
|
||||||
|
|
||||||
Vim has six BASIC modes:
|
Vim has seven BASIC modes:
|
||||||
|
|
||||||
*Normal* *Normal-mode* *command-mode*
|
*Normal* *Normal-mode* *command-mode*
|
||||||
Normal mode In Normal mode you can enter all the normal editor
|
Normal mode In Normal mode you can enter all the normal editor
|
||||||
@@ -561,7 +570,12 @@ Ex mode Like Command-line mode, but after entering a command
|
|||||||
you remain in Ex mode. Very limited editing of the
|
you remain in Ex mode. Very limited editing of the
|
||||||
command line. |Ex-mode|
|
command line. |Ex-mode|
|
||||||
|
|
||||||
There are six ADDITIONAL modes. These are variants of the BASIC modes:
|
Terminal-Job mode Interacting with a job in a terminal window. Typed
|
||||||
|
keys go to the job and the job output is displayed in
|
||||||
|
the terminal window. See |terminal| about how to
|
||||||
|
switch to other modes.
|
||||||
|
|
||||||
|
There are seven ADDITIONAL modes. These are variants of the BASIC modes:
|
||||||
|
|
||||||
*Operator-pending* *Operator-pending-mode*
|
*Operator-pending* *Operator-pending-mode*
|
||||||
Operator-pending mode This is like Normal mode, but after an operator
|
Operator-pending mode This is like Normal mode, but after an operator
|
||||||
@@ -587,6 +601,10 @@ Insert Normal mode Entered when CTRL-O given in Insert mode. This is
|
|||||||
If the 'showmode' option is on "-- (insert) --" is
|
If the 'showmode' option is on "-- (insert) --" is
|
||||||
shown at the bottom of the window.
|
shown at the bottom of the window.
|
||||||
|
|
||||||
|
Terminal-Normal mode Using Normal mode in a terminal window. Making
|
||||||
|
changes is impossible. Use an insert command, such as
|
||||||
|
"a" or "i", to return to Terminal-Job mode.
|
||||||
|
|
||||||
Insert Visual mode Entered when starting a Visual selection from Insert
|
Insert Visual mode Entered when starting a Visual selection from Insert
|
||||||
mode, e.g., by using CTRL-O and then "v", "V" or
|
mode, e.g., by using CTRL-O and then "v", "V" or
|
||||||
CTRL-V. When the Visual selection ends, Vim returns
|
CTRL-V. When the Visual selection ends, Vim returns
|
||||||
@@ -661,6 +679,8 @@ Normal mode from any other mode. This can be used to make sure Vim is in
|
|||||||
Normal mode, without causing a beep like <Esc> would. However, this does not
|
Normal mode, without causing a beep like <Esc> would. However, this does not
|
||||||
work in Ex mode. When used after a command that takes an argument, such as
|
work in Ex mode. When used after a command that takes an argument, such as
|
||||||
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
|
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
|
||||||
|
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode for only
|
||||||
|
one command, see |t_CTRL-\_CTRL-N|.
|
||||||
|
|
||||||
*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
|
*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
|
||||||
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when
|
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when
|
||||||
@@ -823,10 +843,12 @@ by Vim. {Vi: not ok}
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
8. Definitions *definitions*
|
8. Definitions *definitions*
|
||||||
|
|
||||||
|
buffer Contains lines of text, usually read from a file.
|
||||||
screen The whole area that Vim uses to work in. This can be
|
screen The whole area that Vim uses to work in. This can be
|
||||||
a terminal emulator window. Also called "the Vim
|
a terminal emulator window. Also called "the Vim
|
||||||
window".
|
window".
|
||||||
window A view on a buffer.
|
window A view on a buffer. There can be multiple windows for
|
||||||
|
one buffer.
|
||||||
|
|
||||||
A screen contains one or more windows, separated by status lines and with the
|
A screen contains one or more windows, separated by status lines and with the
|
||||||
command line at the bottom.
|
command line at the bottom.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*map.txt* For Vim version 8.0. Last change: 2017 May 30
|
*map.txt* For Vim version 8.0. Last change: 2017 Sep 23
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -29,7 +29,7 @@ manual.
|
|||||||
1. Key mapping *key-mapping* *mapping* *macro*
|
1. Key mapping *key-mapping* *mapping* *macro*
|
||||||
|
|
||||||
Key mapping is used to change the meaning of typed keys. The most common use
|
Key mapping is used to change the meaning of typed keys. The most common use
|
||||||
is to define a sequence commands for a function key. Example: >
|
is to define a sequence of commands for a function key. Example: >
|
||||||
|
|
||||||
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
|
:map <F2> a<C-R>=strftime("%c")<CR><Esc>
|
||||||
|
|
||||||
@@ -55,6 +55,7 @@ modes.
|
|||||||
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
|
:im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap*
|
||||||
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
|
:lm[ap] {lhs} {rhs} |mapmode-l| *:lm* *:lmap*
|
||||||
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
|
:cm[ap] {lhs} {rhs} |mapmode-c| *:cm* *:cmap*
|
||||||
|
:tma[p] {lhs} {rhs} |mapmode-t| *:tma* *:tmap*
|
||||||
Map the key sequence {lhs} to {rhs} for the modes
|
Map the key sequence {lhs} to {rhs} for the modes
|
||||||
where the map command applies. The result, including
|
where the map command applies. The result, including
|
||||||
{rhs}, is then further scanned for mappings. This
|
{rhs}, is then further scanned for mappings. This
|
||||||
@@ -71,6 +72,7 @@ modes.
|
|||||||
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap*
|
:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap*
|
||||||
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
|
:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap*
|
||||||
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap*
|
:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap*
|
||||||
|
:tno[remap] {lhs} {rhs} |mapmode-t| *:tno* *:tnoremap*
|
||||||
Map the key sequence {lhs} to {rhs} for the modes
|
Map the key sequence {lhs} to {rhs} for the modes
|
||||||
where the map command applies. Disallow mapping of
|
where the map command applies. Disallow mapping of
|
||||||
{rhs}, to avoid nested and recursive mappings. Often
|
{rhs}, to avoid nested and recursive mappings. Often
|
||||||
@@ -87,6 +89,7 @@ modes.
|
|||||||
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
|
:iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap*
|
||||||
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
|
:lu[nmap] {lhs} |mapmode-l| *:lu* *:lunmap*
|
||||||
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
|
:cu[nmap] {lhs} |mapmode-c| *:cu* *:cunmap*
|
||||||
|
:tunma[p] {lhs} |mapmode-t| *:tunma* *:tunmap*
|
||||||
Remove the mapping of {lhs} for the modes where the
|
Remove the mapping of {lhs} for the modes where the
|
||||||
map command applies. The mapping may remain defined
|
map command applies. The mapping may remain defined
|
||||||
for other modes where it applies.
|
for other modes where it applies.
|
||||||
@@ -105,6 +108,7 @@ modes.
|
|||||||
:imapc[lear] |mapmode-i| *:imapc* *:imapclear*
|
:imapc[lear] |mapmode-i| *:imapc* *:imapclear*
|
||||||
:lmapc[lear] |mapmode-l| *:lmapc* *:lmapclear*
|
:lmapc[lear] |mapmode-l| *:lmapc* *:lmapclear*
|
||||||
:cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear*
|
:cmapc[lear] |mapmode-c| *:cmapc* *:cmapclear*
|
||||||
|
:tmapc[lear] |mapmode-t| *:tmapc* *:tmapclear*
|
||||||
Remove ALL mappings for the modes where the map
|
Remove ALL mappings for the modes where the map
|
||||||
command applies. {not in Vi}
|
command applies. {not in Vi}
|
||||||
Use the <buffer> argument to remove buffer-local
|
Use the <buffer> argument to remove buffer-local
|
||||||
@@ -121,6 +125,7 @@ modes.
|
|||||||
:im[ap] |mapmode-i|
|
:im[ap] |mapmode-i|
|
||||||
:lm[ap] |mapmode-l|
|
:lm[ap] |mapmode-l|
|
||||||
:cm[ap] |mapmode-c|
|
:cm[ap] |mapmode-c|
|
||||||
|
:tma[p] |mapmode-t|
|
||||||
List all key mappings for the modes where the map
|
List all key mappings for the modes where the map
|
||||||
command applies. Note that ":map" and ":map!" are
|
command applies. Note that ":map" and ":map!" are
|
||||||
used most often, because they include the other modes.
|
used most often, because they include the other modes.
|
||||||
@@ -135,6 +140,7 @@ modes.
|
|||||||
:im[ap] {lhs} |mapmode-i| *:imap_l*
|
:im[ap] {lhs} |mapmode-i| *:imap_l*
|
||||||
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
|
:lm[ap] {lhs} |mapmode-l| *:lmap_l*
|
||||||
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
|
:cm[ap] {lhs} |mapmode-c| *:cmap_l*
|
||||||
|
:tma[p] {lhs} |mapmode-t| *:tmap_l*
|
||||||
List the key mappings for the key sequences starting
|
List the key mappings for the key sequences starting
|
||||||
with {lhs} in the modes where the map command applies.
|
with {lhs} in the modes where the map command applies.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
@@ -318,6 +324,7 @@ Overview of which map command works in which mode. More details below.
|
|||||||
:imap :inoremap :iunmap Insert
|
:imap :inoremap :iunmap Insert
|
||||||
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
|
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
|
||||||
:cmap :cnoremap :cunmap Command-line
|
:cmap :cnoremap :cunmap Command-line
|
||||||
|
:tmap :tnoremap :tunmap Terminal-Job
|
||||||
|
|
||||||
|
|
||||||
COMMANDS MODES ~
|
COMMANDS MODES ~
|
||||||
@@ -358,6 +365,10 @@ Therefore the ":map" and ":map!" commands enter and display mappings for
|
|||||||
several modes. In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
|
several modes. In Vim you can use the ":nmap", ":vmap", ":omap", ":cmap" and
|
||||||
":imap" commands to enter mappings for each mode separately.
|
":imap" commands to enter mappings for each mode separately.
|
||||||
|
|
||||||
|
*mapmode-t*
|
||||||
|
The terminal mappings are used in a terminal window, when typing keys for the
|
||||||
|
job running in the terminal. See |terminal-typing|.
|
||||||
|
|
||||||
*omap-info*
|
*omap-info*
|
||||||
Operator-pending mappings can be used to define a movement command that can be
|
Operator-pending mappings can be used to define a movement command that can be
|
||||||
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
|
used with any operator. Simple example: ":omap { w" makes "y{" work like "yw"
|
||||||
@@ -418,6 +429,7 @@ When listing mappings the characters in the first two columns are:
|
|||||||
i Insert
|
i Insert
|
||||||
l ":lmap" mappings for Insert, Command-line and Lang-Arg
|
l ":lmap" mappings for Insert, Command-line and Lang-Arg
|
||||||
c Command-line
|
c Command-line
|
||||||
|
t Terminal-Job
|
||||||
|
|
||||||
Just before the {rhs} a special character can appear:
|
Just before the {rhs} a special character can appear:
|
||||||
* indicates that it is not remappable
|
* indicates that it is not remappable
|
||||||
@@ -682,7 +694,7 @@ option). After that it assumes that the 'q' is to be interpreted as such. If
|
|||||||
you type slowly, or your system is slow, reset the 'timeout' option. Then you
|
you type slowly, or your system is slow, reset the 'timeout' option. Then you
|
||||||
might want to set the 'ttimeout' option.
|
might want to set the 'ttimeout' option.
|
||||||
|
|
||||||
*map-precedence*
|
*map-precedence*
|
||||||
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
|
Buffer-local mappings (defined using |:map-<buffer>|) take precedence over
|
||||||
global mappings. When a buffer-local mapping is the same as a global mapping,
|
global mappings. When a buffer-local mapping is the same as a global mapping,
|
||||||
Vim will use the buffer-local mapping. In addition, Vim will use a complete
|
Vim will use the buffer-local mapping. In addition, Vim will use a complete
|
||||||
@@ -1279,6 +1291,7 @@ completion can be enabled:
|
|||||||
-complete=highlight highlight groups
|
-complete=highlight highlight groups
|
||||||
-complete=history :history suboptions
|
-complete=history :history suboptions
|
||||||
-complete=locale locale names (as output of locale -a)
|
-complete=locale locale names (as output of locale -a)
|
||||||
|
-complete=mapclear buffer argument
|
||||||
-complete=mapping mapping name
|
-complete=mapping mapping name
|
||||||
-complete=menu menus
|
-complete=menu menus
|
||||||
-complete=messages |:messages| suboptions
|
-complete=messages |:messages| suboptions
|
||||||
@@ -1414,6 +1427,8 @@ The valid escape sequences are
|
|||||||
<line1> The starting line of the command range.
|
<line1> The starting line of the command range.
|
||||||
*<line2>*
|
*<line2>*
|
||||||
<line2> The final line of the command range.
|
<line2> The final line of the command range.
|
||||||
|
*<range>*
|
||||||
|
<range> The number of items in the command range: 0, 1 or 2
|
||||||
*<count>*
|
*<count>*
|
||||||
<count> Any count supplied (as described for the '-range'
|
<count> Any count supplied (as described for the '-range'
|
||||||
and '-count' attributes).
|
and '-count' attributes).
|
||||||
|
|||||||
@@ -832,6 +832,9 @@ Use the RPM or port for your system.
|
|||||||
|
|
||||||
Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
|
Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and
|
||||||
|Root|.
|
|Root|.
|
||||||
|
When compiled with |+GUI_GTK| feature, GUI Vim supports two styles,
|
||||||
|
|OnTheSpot| and |OverTheSpot|. You can select the style with the 'imstyle'
|
||||||
|
option.
|
||||||
|
|
||||||
*. on-the-spot *OnTheSpot*
|
*. on-the-spot *OnTheSpot*
|
||||||
Preedit Area and Status Area are performed by the client application in
|
Preedit Area and Status Area are performed by the client application in
|
||||||
|
|||||||
@@ -463,12 +463,6 @@ changed. To avoid the message reset the 'warn' option.
|
|||||||
Something inside Vim went wrong and resulted in a NULL pointer. If you know
|
Something inside Vim went wrong and resulted in a NULL pointer. If you know
|
||||||
how to reproduce this problem, please report it. |bugs|
|
how to reproduce this problem, please report it. |bugs|
|
||||||
|
|
||||||
*E172* >
|
|
||||||
Only one file name allowed
|
|
||||||
|
|
||||||
The ":edit" command only accepts one file name. When you want to specify
|
|
||||||
several files for editing use ":next" |:next|.
|
|
||||||
|
|
||||||
*E41* *E82* *E83* *E342* >
|
*E41* *E82* *E83* *E342* >
|
||||||
Out of memory!
|
Out of memory!
|
||||||
Out of memory! (allocating {number} bytes)
|
Out of memory! (allocating {number} bytes)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*options.txt* For Vim version 8.0. Last change: 2017 Jun 04
|
*options.txt* For Vim version 8.0. Last change: 2017 Sep 24
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -417,12 +417,23 @@ On Unix systems the form "${HOME}" can be used too. The name between {} can
|
|||||||
contain non-id characters then. Note that if you want to use this for the
|
contain non-id characters then. Note that if you want to use this for the
|
||||||
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
|
"gf" command, you need to add the '{' and '}' characters to 'isfname'.
|
||||||
|
|
||||||
On MS-Windows, if $HOME is not defined as an environment variable, then
|
|
||||||
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
|
|
||||||
|
|
||||||
NOTE: expanding environment variables and "~/" is only done with the ":set"
|
NOTE: expanding environment variables and "~/" is only done with the ":set"
|
||||||
command, not when assigning a value to an option with ":let".
|
command, not when assigning a value to an option with ":let".
|
||||||
|
|
||||||
|
*$HOME-windows*
|
||||||
|
On MS-Windows, if $HOME is not defined as an environment variable, then
|
||||||
|
at runtime Vim will set it to the expansion of $HOMEDRIVE$HOMEPATH.
|
||||||
|
If $HOMEDRIVE is not set then $USERPROFILE is used.
|
||||||
|
|
||||||
|
This expanded value is not exported to the environment, this matters when
|
||||||
|
running an external command: >
|
||||||
|
:echo system('set | findstr ^HOME=')
|
||||||
|
and >
|
||||||
|
:echo luaeval('os.getenv("HOME")')
|
||||||
|
should echo nothing (an empty string) despite exists('$HOME') being true.
|
||||||
|
When setting $HOME to a non-empty string it will be exported to the
|
||||||
|
subprocesses.
|
||||||
|
|
||||||
|
|
||||||
Note the maximum length of an expanded option is limited. How much depends on
|
Note the maximum length of an expanded option is limited. How much depends on
|
||||||
the system, mostly it is something like 256 or 1024 characters.
|
the system, mostly it is something like 256 or 1024 characters.
|
||||||
@@ -721,7 +732,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
|
|
||||||
Vim may set this option automatically at startup time when Vim is
|
Vim may set this option automatically at startup time when Vim is
|
||||||
compiled with the |+termresponse| feature and if |t_u7| is set to the
|
compiled with the |+termresponse| feature and if |t_u7| is set to the
|
||||||
escape sequence to request cursor position report.
|
escape sequence to request cursor position report. The response can
|
||||||
|
be found in |v:termu7resp|.
|
||||||
|
|
||||||
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
|
*'antialias'* *'anti'* *'noantialias'* *'noanti'*
|
||||||
'antialias' 'anti' boolean (default: off)
|
'antialias' 'anti' boolean (default: off)
|
||||||
@@ -869,11 +881,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
< Vim will guess the value. In the GUI this should work correctly,
|
< Vim will guess the value. In the GUI this should work correctly,
|
||||||
in other cases Vim might not be able to guess the right value.
|
in other cases Vim might not be able to guess the right value.
|
||||||
|
|
||||||
When the t_BG option is set, Vim will use it to request the background
|
When the |t_RB| option is set, Vim will use it to request the background
|
||||||
color from the terminal. If the returned RGB value is dark/light and
|
color from the terminal. If the returned RGB value is dark/light and
|
||||||
'background' is not dark/light, 'background' will be set and the
|
'background' is not dark/light, 'background' will be set and the
|
||||||
screen is redrawn. This may have side effects, make t_BG empty in
|
screen is redrawn. This may have side effects, make t_BG empty in
|
||||||
your .vimrc if you suspect this problem.
|
your .vimrc if you suspect this problem. The response to |t_RB| can
|
||||||
|
be found in |v:termrgbresp|.
|
||||||
|
|
||||||
When starting the GUI, the default value for 'background' will be
|
When starting the GUI, the default value for 'background' will be
|
||||||
"light". When the value is not set in the .gvimrc, and Vim detects
|
"light". When the value is not set in the .gvimrc, and Vim detects
|
||||||
@@ -889,6 +902,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
|
"screen.linux", "cygwin" or "putty", or $COLORFGBG suggests a dark
|
||||||
background. Otherwise the default is "light".
|
background. Otherwise the default is "light".
|
||||||
|
|
||||||
|
The |:terminal| command and the |term_start()| function use the
|
||||||
|
'background' value to decide whether the terminal window will start
|
||||||
|
with a white or black background.
|
||||||
|
|
||||||
Normally this option would be set in the .vimrc file. Possibly
|
Normally this option would be set in the .vimrc file. Possibly
|
||||||
depending on the terminal name. Example: >
|
depending on the terminal name. Example: >
|
||||||
:if &term == "pcterm"
|
:if &term == "pcterm"
|
||||||
@@ -1319,8 +1336,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
'bufhidden' 'bh' string (default: "")
|
'bufhidden' 'bh' string (default: "")
|
||||||
local to buffer
|
local to buffer
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the |+quickfix|
|
|
||||||
feature}
|
|
||||||
This option specifies what happens when a buffer is no longer
|
This option specifies what happens when a buffer is no longer
|
||||||
displayed in a window:
|
displayed in a window:
|
||||||
<empty> follow the global 'hidden' option
|
<empty> follow the global 'hidden' option
|
||||||
@@ -1355,8 +1370,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
'buftype' 'bt' string (default: "")
|
'buftype' 'bt' string (default: "")
|
||||||
local to buffer
|
local to buffer
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the |+quickfix|
|
|
||||||
feature}
|
|
||||||
The value of this option specifies the type of a buffer:
|
The value of this option specifies the type of a buffer:
|
||||||
<empty> normal buffer
|
<empty> normal buffer
|
||||||
nofile buffer which is not related to a file and will not be
|
nofile buffer which is not related to a file and will not be
|
||||||
@@ -1369,6 +1382,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
or list of locations |:lwindow|
|
or list of locations |:lwindow|
|
||||||
help help buffer (you are not supposed to set this
|
help help buffer (you are not supposed to set this
|
||||||
manually)
|
manually)
|
||||||
|
terminal buffer for a |terminal| (you are not supposed to set
|
||||||
|
this manually)
|
||||||
|
|
||||||
This option is used together with 'bufhidden' and 'swapfile' to
|
This option is used together with 'bufhidden' and 'swapfile' to
|
||||||
specify special kinds of buffers. See |special-buffers|.
|
specify special kinds of buffers. See |special-buffers|.
|
||||||
@@ -3522,6 +3537,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
:s///gg subst. all subst. one
|
:s///gg subst. all subst. one
|
||||||
|
|
||||||
NOTE: This option is reset when 'compatible' is set.
|
NOTE: This option is reset when 'compatible' is set.
|
||||||
|
DEPRECATED: Setting this option may break plugins that are not aware
|
||||||
|
of this option. Also, many users get confused that adding the /g flag
|
||||||
|
has the opposite effect of that it normally does.
|
||||||
|
|
||||||
*'grepformat'* *'gfm'*
|
*'grepformat'* *'gfm'*
|
||||||
'grepformat' 'gfm' string (default "%f:%l:%m,%f:%l%m,%f %l%m")
|
'grepformat' 'gfm' string (default "%f:%l:%m,%f:%l%m,%f %l%m")
|
||||||
@@ -4037,7 +4055,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
D:DiffDelete,T:DiffText,>:SignColumn,
|
D:DiffDelete,T:DiffText,>:SignColumn,
|
||||||
B:SpellBad,P:SpellCap,R:SpellRare,
|
B:SpellBad,P:SpellCap,R:SpellRare,
|
||||||
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
||||||
x:PmenuSbar,X:PmenuThumb")
|
x:PmenuSbar,X:PmenuThumb,*:TabLine,
|
||||||
|
#:TabLineSel,_:TabLineFill,!:CursorColumn,
|
||||||
|
.:CursorLine,o:ColorColumn,q:QuickFixLine,
|
||||||
|
z:StatusLineTerm,Z:StatusLineTermNC")
|
||||||
global
|
global
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
This option can be used to set highlighting mode for various
|
This option can be used to set highlighting mode for various
|
||||||
@@ -4096,6 +4117,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
s standout (termcap entry "so" and "se")
|
s standout (termcap entry "so" and "se")
|
||||||
u underline (termcap entry "us" and "ue")
|
u underline (termcap entry "us" and "ue")
|
||||||
c undercurl (termcap entry "Cs" and "Ce")
|
c undercurl (termcap entry "Cs" and "Ce")
|
||||||
|
t strikethrough (termcap entry "Ts" and "Te")
|
||||||
n no highlighting
|
n no highlighting
|
||||||
- no highlighting
|
- no highlighting
|
||||||
: use a highlight group
|
: use a highlight group
|
||||||
@@ -4289,7 +4311,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
may change in later releases.
|
may change in later releases.
|
||||||
|
|
||||||
*'iminsert'* *'imi'*
|
*'iminsert'* *'imi'*
|
||||||
'iminsert' 'imi' number (default 0, 2 when an input method is supported)
|
'iminsert' 'imi' number (default 0)
|
||||||
local to buffer
|
local to buffer
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
Specifies whether :lmap or an Input Method (IM) is to be used in
|
Specifies whether :lmap or an Input Method (IM) is to be used in
|
||||||
@@ -4312,7 +4334,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
methods. Use 'imdisable' to disable XIM then.
|
methods. Use 'imdisable' to disable XIM then.
|
||||||
|
|
||||||
*'imsearch'* *'ims'*
|
*'imsearch'* *'ims'*
|
||||||
'imsearch' 'ims' number (default 0, 2 when an input method is supported)
|
'imsearch' 'ims' number (default -1)
|
||||||
local to buffer
|
local to buffer
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
Specifies whether :lmap or an Input Method (IM) is to be used when
|
Specifies whether :lmap or an Input Method (IM) is to be used when
|
||||||
@@ -4347,6 +4369,23 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
<
|
<
|
||||||
NOTE: This function is invoked very often. Keep it fast.
|
NOTE: This function is invoked very often. Keep it fast.
|
||||||
|
|
||||||
|
*'imstyle'* *'imst'*
|
||||||
|
'imstyle' 'imst' number (default 1)
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{only available when compiled with |+xim| and
|
||||||
|
|+GUI_GTK|}
|
||||||
|
This option specifies the input style of Input Method:
|
||||||
|
0 use on-the-spot style
|
||||||
|
1 over-the-spot style
|
||||||
|
See: |xim-input-style|
|
||||||
|
|
||||||
|
For a long time on-the-spot style had been used in the GTK version of
|
||||||
|
vim, however, it is known that it causes troubles when using mappings,
|
||||||
|
|single-repeat|, etc. Therefore over-the-spot style becomes the
|
||||||
|
default now. This should work fine for most people, however if you
|
||||||
|
have any problem with it, try using on-the-spot style.
|
||||||
|
|
||||||
*'include'* *'inc'*
|
*'include'* *'inc'*
|
||||||
'include' 'inc' string (default "^\s*#\s*include")
|
'include' 'inc' string (default "^\s*#\s*include")
|
||||||
global or local to buffer |global-local|
|
global or local to buffer |global-local|
|
||||||
@@ -4961,8 +5000,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
When on the plugin scripts are loaded when starting up |load-plugins|.
|
When on the plugin scripts are loaded when starting up |load-plugins|.
|
||||||
This option can be reset in your |vimrc| file to disable the loading
|
This option can be reset in your |vimrc| file to disable the loading
|
||||||
of plugins.
|
of plugins.
|
||||||
Note that using the "-u NONE" and "--noplugin" command line arguments
|
Note that using the "-u NONE", "-u DEFAULTS" and "--noplugin" command
|
||||||
reset this option. |-u| |--noplugin|
|
line arguments reset this option. See |-u| and |--noplugin|.
|
||||||
|
|
||||||
*'luadll'*
|
*'luadll'*
|
||||||
'luadll' string (default depends on the build)
|
'luadll' string (default depends on the build)
|
||||||
@@ -5429,6 +5468,31 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
time in msec between two mouse clicks for the second click to be
|
time in msec between two mouse clicks for the second click to be
|
||||||
recognized as a multi click.
|
recognized as a multi click.
|
||||||
|
|
||||||
|
*'mzschemedll'*
|
||||||
|
'mzschemedll' string (default depends on the build)
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{only available when compiled with the |+mzscheme/dyn|
|
||||||
|
feature}
|
||||||
|
Specifies the name of the MzScheme shared library. The default is
|
||||||
|
DYNAMIC_MZSCH_DLL which was specified at compile time.
|
||||||
|
Environment variables are expanded |:set_env|.
|
||||||
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
|
security reasons.
|
||||||
|
|
||||||
|
*'mzschemegcdll'*
|
||||||
|
'mzschemegcdll' string (default depends on the build)
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{only available when compiled with the |+mzscheme/dyn|
|
||||||
|
feature}
|
||||||
|
Specifies the name of the MzScheme GC shared library. The default is
|
||||||
|
DYNAMIC_MZGC_DLL which was specified at compile time.
|
||||||
|
The value can be equal to 'mzschemedll' if it includes the GC code.
|
||||||
|
Environment variables are expanded |:set_env|.
|
||||||
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
|
security reasons.
|
||||||
|
|
||||||
*'mzquantum'* *'mzq'*
|
*'mzquantum'* *'mzq'*
|
||||||
'mzquantum' 'mzq' number (default 100)
|
'mzquantum' 'mzq' number (default 100)
|
||||||
global
|
global
|
||||||
@@ -5940,10 +6004,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
{only available when compiled with the |+reltime|
|
{only available when compiled with the |+reltime|
|
||||||
feature}
|
feature}
|
||||||
The time in milliseconds for redrawing the display. This applies to
|
The time in milliseconds for redrawing the display. This applies to
|
||||||
searching for patterns for 'hlsearch' and |:match| highlighting.
|
searching for patterns for 'hlsearch', |:match| highlighting an syntax
|
||||||
|
highlighting.
|
||||||
When redrawing takes more than this many milliseconds no further
|
When redrawing takes more than this many milliseconds no further
|
||||||
matches will be highlighted. This is used to avoid that Vim hangs
|
matches will be highlighted.
|
||||||
when using a very complicated pattern.
|
For syntax highlighting the time applies per window. When over the
|
||||||
|
limit syntax highlighting is disabled until |CTRL-L| is used.
|
||||||
|
This is used to avoid that Vim hangs when using a very complicated
|
||||||
|
pattern.
|
||||||
|
|
||||||
*'regexpengine'* *'re'*
|
*'regexpengine'* *'re'*
|
||||||
'regexpengine' 're' number (default 0)
|
'regexpengine' 're' number (default 0)
|
||||||
@@ -7321,7 +7389,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
|
|
||||||
Watch out for errors in expressions. They may render Vim unusable!
|
Watch out for errors in expressions. They may render Vim unusable!
|
||||||
If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and
|
If you are stuck, hold down ':' or 'Q' to get a prompt, then quit and
|
||||||
edit your .vimrc or whatever with "vim -u NONE" to get it right.
|
edit your .vimrc or whatever with "vim --clean" to get it right.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
Emulate standard status line with 'ruler' set >
|
Emulate standard status line with 'ruler' set >
|
||||||
@@ -7745,6 +7813,36 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
Note that the "cterm" attributes are still used, not the "gui" ones.
|
Note that the "cterm" attributes are still used, not the "gui" ones.
|
||||||
NOTE: This option is reset when 'compatible' is set.
|
NOTE: This option is reset when 'compatible' is set.
|
||||||
|
|
||||||
|
*'termkey'* *'tk'*
|
||||||
|
'termkey' 'tk' string (default "")
|
||||||
|
local to window
|
||||||
|
{not in Vi}
|
||||||
|
The key that starts a CTRL-W command in a terminal window. Other keys
|
||||||
|
are sent to the job running in the window.
|
||||||
|
The <> notation can be used, e.g.: >
|
||||||
|
:set termkey=<C-L>
|
||||||
|
< The string must be one key stroke but can be multiple bytes.
|
||||||
|
When not set CTRL-W is used, so that CTRL-W : gets you to the command
|
||||||
|
line. If 'termkey' is set to CTRL-L then CTRL-L : gets you to the
|
||||||
|
command line.
|
||||||
|
|
||||||
|
*'termsize'* *'tms'*
|
||||||
|
'termsize' 'tms' string (default "")
|
||||||
|
local to window
|
||||||
|
{not in Vi}
|
||||||
|
Size of the |terminal| window. Format: {rows}x{columns}.
|
||||||
|
- When empty the terminal gets the size from the window.
|
||||||
|
- When set (e.g., "24x80") the terminal size is not adjusted to the
|
||||||
|
window size. If the window is smaller only the top-left part is
|
||||||
|
displayed.
|
||||||
|
When rows is zero then use the height of the window.
|
||||||
|
When columns is zero then use the width of the window.
|
||||||
|
For example: "30x0" uses 30 rows with the current window width.
|
||||||
|
Using "0x0" is the same as empty.
|
||||||
|
Note that the command running in the terminal window may still change
|
||||||
|
the size of the terminal. In that case the Vim window will be
|
||||||
|
adjusted to that size, if possible.
|
||||||
|
|
||||||
*'terse'* *'noterse'*
|
*'terse'* *'noterse'*
|
||||||
'terse' boolean (default off)
|
'terse' boolean (default off)
|
||||||
global
|
global
|
||||||
@@ -8186,7 +8284,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
Save the whole buffer for undo when reloading it. This applies to the
|
Save the whole buffer for undo when reloading it. This applies to the
|
||||||
":e!" command and reloading for when the buffer changed outside of
|
":e!" command and reloading for when the buffer changed outside of
|
||||||
Vim. |FileChangedShell|
|
Vim. |FileChangedShell|
|
||||||
The save only happens when this options is negative or when the number
|
The save only happens when this option is negative or when the number
|
||||||
of lines is smaller than the value of this option.
|
of lines is smaller than the value of this option.
|
||||||
Set this option to zero to disable undo for a reload.
|
Set this option to zero to disable undo for a reload.
|
||||||
|
|
||||||
@@ -8304,13 +8402,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
{not available when compiled without the |+viminfo|
|
{not available when compiled without the |+viminfo|
|
||||||
feature}
|
feature}
|
||||||
When non-empty, the viminfo file is read upon startup and written
|
When non-empty, the viminfo file is read upon startup and written
|
||||||
when exiting Vim (see |viminfo-file|). The string should be a comma
|
when exiting Vim (see |viminfo-file|). Except when 'viminfofile' is
|
||||||
separated list of parameters, each consisting of a single character
|
"NONE".
|
||||||
identifying the particular parameter, followed by a number or string
|
The string should be a comma separated list of parameters, each
|
||||||
which specifies the value of that parameter. If a particular
|
consisting of a single character identifying the particular parameter,
|
||||||
character is left out, then the default value is used for that
|
followed by a number or string which specifies the value of that
|
||||||
parameter. The following is a list of the identifying characters and
|
parameter. If a particular character is left out, then the default
|
||||||
the effect of their value.
|
value is used for that parameter. The following is a list of the
|
||||||
|
identifying characters and the effect of their value.
|
||||||
CHAR VALUE ~
|
CHAR VALUE ~
|
||||||
*viminfo-!*
|
*viminfo-!*
|
||||||
! When included, save and restore global variables that start
|
! When included, save and restore global variables that start
|
||||||
@@ -8370,9 +8469,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
has been used since the last search command.
|
has been used since the last search command.
|
||||||
*viminfo-n*
|
*viminfo-n*
|
||||||
n Name of the viminfo file. The name must immediately follow
|
n Name of the viminfo file. The name must immediately follow
|
||||||
the 'n'. Must be at the end of the option! If the "-i"
|
the 'n'. Must be at the end of the option! If the
|
||||||
argument was given when starting Vim, that file name overrides
|
'viminfofile' option is set, that file name overrides the one
|
||||||
the one given here with 'viminfo'. Environment variables are
|
given here with 'viminfo'. Environment variables are
|
||||||
expanded when opening the file, not when setting the option.
|
expanded when opening the file, not when setting the option.
|
||||||
*viminfo-r*
|
*viminfo-r*
|
||||||
r Removable media. The argument is a string (up to the next
|
r Removable media. The argument is a string (up to the next
|
||||||
@@ -8413,6 +8512,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
NOTE: This option is set to the Vim default value when 'compatible'
|
NOTE: This option is set to the Vim default value when 'compatible'
|
||||||
is reset.
|
is reset.
|
||||||
|
|
||||||
|
*'viminfofile'* *'vif'*
|
||||||
|
'viminfofile' 'vif' string (default: "")
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{not available when compiled without the |+viminfo|
|
||||||
|
feature}
|
||||||
|
When non-empty, overrides the file name used for viminfo.
|
||||||
|
When equal to "NONE" no viminfo file will be read or written.
|
||||||
|
This option can be set with the |-i| command line flag. The |--clean|
|
||||||
|
command line flag sets it to "NONE".
|
||||||
|
|
||||||
*'virtualedit'* *'ve'*
|
*'virtualedit'* *'ve'*
|
||||||
'virtualedit' 've' string (default "")
|
'virtualedit' 've' string (default "")
|
||||||
global
|
global
|
||||||
@@ -8446,14 +8556,27 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
'visualbell' 'vb' boolean (default off)
|
'visualbell' 'vb' boolean (default off)
|
||||||
global
|
global
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
Use visual bell instead of beeping. The terminal code to display the
|
Use a visual bell instead of beeping. The terminal code to display the
|
||||||
visual bell is given with 't_vb'. When no beep or flash is wanted,
|
visual bell is given with 't_vb'. When no beep or flash is wanted,
|
||||||
use ":set vb t_vb=".
|
use: >
|
||||||
Note: When the GUI starts, 't_vb' is reset to its default value. You
|
:set vb t_vb=
|
||||||
might want to set it again in your |gvimrc|.
|
< If you want a short flash, you can use this on many terminals: >
|
||||||
|
:set vb t_vb=[?5h$<100>[?5l
|
||||||
|
< Here $<100> specifies the time, you can use a smaller or bigger value
|
||||||
|
to get a shorter or longer flash.
|
||||||
|
|
||||||
|
Note: Vim will limit the bell to once per half a second. This avoids
|
||||||
|
having to wait for the flashing to finish when there are lots of
|
||||||
|
bells, e.g. on key repeat. This also happens without 'visualbell'
|
||||||
|
set.
|
||||||
|
|
||||||
In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
|
In the GUI, 't_vb' defaults to "<Esc>|f", which inverts the display
|
||||||
for 20 msec. If you want to use a different time, use "<Esc>|40f",
|
for 20 msec. If you want to use a different time, use "<Esc>|40f",
|
||||||
where 40 is the time in msec.
|
where 40 is the time in msec.
|
||||||
|
|
||||||
|
Note: When the GUI starts, 't_vb' is reset to its default value. You
|
||||||
|
might want to set it again in your |gvimrc|.
|
||||||
|
|
||||||
Does not work on the Amiga, you always get a screen flash.
|
Does not work on the Amiga, you always get a screen flash.
|
||||||
Also see 'errorbells'.
|
Also see 'errorbells'.
|
||||||
|
|
||||||
@@ -8768,6 +8891,20 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
large number, it will cause errors when opening more than a few
|
large number, it will cause errors when opening more than a few
|
||||||
windows. A value of 0 to 12 is reasonable.
|
windows. A value of 0 to 12 is reasonable.
|
||||||
|
|
||||||
|
*'winptydll'*
|
||||||
|
'winptydll' string (default "winpty32.dll" or "winpty64.dll")
|
||||||
|
global
|
||||||
|
{not in Vi}
|
||||||
|
{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
|
||||||
|
32-bit or 64-bit executable. If not found, "winpty.dll" is tried as
|
||||||
|
a fallback.
|
||||||
|
Environment variables are expanded |:set_env|.
|
||||||
|
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||||
|
security reasons.
|
||||||
|
|
||||||
*'winwidth'* *'wiw'* *E592*
|
*'winwidth'* *'wiw'* *E592*
|
||||||
'winwidth' 'wiw' number (default 20)
|
'winwidth' 'wiw' number (default 20)
|
||||||
global
|
global
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*pattern.txt* For Vim version 8.0. Last change: 2017 Mar 29
|
*pattern.txt* For Vim version 8.0. Last change: 2017 Jun 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -1076,12 +1076,16 @@ x A single character, with no special meaning, matches itself
|
|||||||
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
|
":s/[/x/" searches for "[/x" and replaces it with nothing. It does
|
||||||
not search for "[" and replaces it with "x"!
|
not search for "[" and replaces it with "x"!
|
||||||
|
|
||||||
|
*E944* *E945*
|
||||||
If the sequence begins with "^", it matches any single character NOT
|
If the sequence begins with "^", it matches any single character NOT
|
||||||
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
|
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
|
||||||
- If two characters in the sequence are separated by '-', this is
|
- If two characters in the sequence are separated by '-', this is
|
||||||
shorthand for the full list of ASCII characters between them. E.g.,
|
shorthand for the full list of ASCII characters between them. E.g.,
|
||||||
"[0-9]" matches any decimal digit. Non-ASCII characters can be
|
"[0-9]" matches any decimal digit. If the starting character exceeds
|
||||||
used, but the character values must not be more than 256 apart.
|
the ending character, e.g. [c-a], E944 occurs. Non-ASCII characters
|
||||||
|
can be used, but the character values must not be more than 256 apart
|
||||||
|
in the old regexp engine. For example, searching by [\u3000-\u4000]
|
||||||
|
after setting re=1 emits a E945 error. Prepending \%#=2 will fix it.
|
||||||
- A character class expression is evaluated to the set of characters
|
- A character class expression is evaluated to the set of characters
|
||||||
belonging to that character class. The following character classes
|
belonging to that character class. The following character classes
|
||||||
are supported:
|
are supported:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*pi_getscript.txt* For Vim version 7.0. Last change: 2013 Nov 29
|
*pi_getscript.txt* For Vim version 7.0. Last change: 2017 Aug 01
|
||||||
>
|
>
|
||||||
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
GETSCRIPT REFERENCE MANUAL by Charles E. Campbell
|
||||||
<
|
<
|
||||||
@@ -389,7 +389,7 @@ v36 Apr 22, 2013 : * (glts) suggested use of plugin/**/*.vim instead of
|
|||||||
plugin/*.vim in globpath() call.
|
plugin/*.vim in globpath() call.
|
||||||
* (Andy Wokula) got warning message when setting
|
* (Andy Wokula) got warning message when setting
|
||||||
g:loaded_getscriptPlugin
|
g:loaded_getscriptPlugin
|
||||||
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script url has
|
v35 Apr 07, 2012 : * (MengHuan Yu) pointed out that the script URL has
|
||||||
changed (somewhat). However, it doesn't work, and
|
changed (somewhat). However, it doesn't work, and
|
||||||
the original one does (under Linux). I'll make it
|
the original one does (under Linux). I'll make it
|
||||||
yet-another-option.
|
yet-another-option.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*quickfix.txt* For Vim version 8.0. Last change: 2017 Mar 06
|
*quickfix.txt* For Vim version 8.0. Last change: 2017 Sep 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -44,6 +44,13 @@ From inside Vim an easy way to run a command and handle the output is with the
|
|||||||
The 'errorformat' option should be set to match the error messages from your
|
The 'errorformat' option should be set to match the error messages from your
|
||||||
compiler (see |errorformat| below).
|
compiler (see |errorformat| below).
|
||||||
|
|
||||||
|
*quickfix-ID*
|
||||||
|
Each quickfix list has a unique identifier called the quickfix ID and this
|
||||||
|
number will not change within a Vim session. The getqflist() function can be
|
||||||
|
used to get the identifier assigned to a list. There is also a quickfix list
|
||||||
|
number which may change whenever more than ten lists are added to a quickfix
|
||||||
|
stack.
|
||||||
|
|
||||||
*location-list* *E776*
|
*location-list* *E776*
|
||||||
A location list is a window-local quickfix list. You get one after commands
|
A location list is a window-local quickfix list. You get one after commands
|
||||||
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
|
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
|
||||||
@@ -425,7 +432,9 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
|||||||
which will indicate the command that produced the
|
which will indicate the command that produced the
|
||||||
quickfix list. This can be used to compose a custom
|
quickfix list. This can be used to compose a custom
|
||||||
status line if the value of 'statusline' is adjusted
|
status line if the value of 'statusline' is adjusted
|
||||||
properly.
|
properly. Whenever this buffer is modified by a
|
||||||
|
quickfix command or function, the |b:changedtick|
|
||||||
|
variable is incremented.
|
||||||
|
|
||||||
*:lop* *:lopen*
|
*:lop* *:lopen*
|
||||||
:lop[en] [height] Open a window to show the location list for the
|
:lop[en] [height] Open a window to show the location list for the
|
||||||
@@ -472,7 +481,11 @@ keep its height, ignoring 'winheight' and 'equalalways'. You can change the
|
|||||||
height manually (e.g., by dragging the status line above it with the mouse).
|
height manually (e.g., by dragging the status line above it with the mouse).
|
||||||
|
|
||||||
In the quickfix window, each line is one error. The line number is equal to
|
In the quickfix window, each line is one error. The line number is equal to
|
||||||
the error number. You can use ":.cc" to jump to the error under the cursor.
|
the error number. The current entry is highlighted with the QuickFixLine
|
||||||
|
highlighting. You can change it to your liking, e.g.: >
|
||||||
|
:hi QuickFixLine ctermbg=Yellow guibg=Yellow
|
||||||
|
|
||||||
|
You can use ":.cc" to jump to the error under the cursor.
|
||||||
Hitting the <Enter> key or double-clicking the mouse on a line has the same
|
Hitting the <Enter> key or double-clicking the mouse on a line has the same
|
||||||
effect. The file containing the error is opened in the window above the
|
effect. The file containing the error is opened in the window above the
|
||||||
quickfix window. If there already is a window for that file, it is used
|
quickfix window. If there already is a window for that file, it is used
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*quickref.txt* For Vim version 8.0. Last change: 2016 Dec 16
|
*quickref.txt* For Vim version 8.0. Last change: 2017 Sep 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -749,6 +749,7 @@ Short explanation of each option: *option-list*
|
|||||||
'iminsert' 'imi' use :lmap or IM in Insert mode
|
'iminsert' 'imi' use :lmap or IM in Insert mode
|
||||||
'imsearch' 'ims' use :lmap or IM when typing a search pattern
|
'imsearch' 'ims' use :lmap or IM when typing a search pattern
|
||||||
'imstatusfunc' 'imsf' function to obtain X input method status
|
'imstatusfunc' 'imsf' function to obtain X input method status
|
||||||
|
'imstyle' 'imst' specifies the input style of the input method
|
||||||
'include' 'inc' pattern to be used to find an include file
|
'include' 'inc' pattern to be used to find an include file
|
||||||
'includeexpr' 'inex' expression used to process an include line
|
'includeexpr' 'inex' expression used to process an include line
|
||||||
'incsearch' 'is' highlight match while typing search pattern
|
'incsearch' 'is' highlight match while typing search pattern
|
||||||
@@ -920,6 +921,8 @@ Short explanation of each option: *option-list*
|
|||||||
'termbidi' 'tbidi' terminal takes care of bi-directionality
|
'termbidi' 'tbidi' terminal takes care of bi-directionality
|
||||||
'termencoding' 'tenc' character encoding used by the terminal
|
'termencoding' 'tenc' character encoding used by the terminal
|
||||||
'termguicolors' 'tgc' use GUI colors for the terminal
|
'termguicolors' 'tgc' use GUI colors for the terminal
|
||||||
|
'termkey' 'tk' key that precedes a Vim command in a terminal
|
||||||
|
'termsize' 'tms' size of a terminal window
|
||||||
'terse' shorten some messages
|
'terse' shorten some messages
|
||||||
'textauto' 'ta' obsolete, use 'fileformats'
|
'textauto' 'ta' obsolete, use 'fileformats'
|
||||||
'textmode' 'tx' obsolete, use 'fileformat'
|
'textmode' 'tx' obsolete, use 'fileformat'
|
||||||
@@ -952,6 +955,7 @@ Short explanation of each option: *option-list*
|
|||||||
'viewdir' 'vdir' directory where to store files with :mkview
|
'viewdir' 'vdir' directory where to store files with :mkview
|
||||||
'viewoptions' 'vop' specifies what to save for :mkview
|
'viewoptions' 'vop' specifies what to save for :mkview
|
||||||
'viminfo' 'vi' use .viminfo file upon startup and exiting
|
'viminfo' 'vi' use .viminfo file upon startup and exiting
|
||||||
|
'viminfofile' 'vif' file name used for the viminfo file
|
||||||
'virtualedit' 've' when to use virtual editing
|
'virtualedit' 've' when to use virtual editing
|
||||||
'visualbell' 'vb' use visual bell instead of beeping
|
'visualbell' 'vb' use visual bell instead of beeping
|
||||||
'warn' warn for shell command when buffer was changed
|
'warn' warn for shell command when buffer was changed
|
||||||
@@ -971,6 +975,7 @@ Short explanation of each option: *option-list*
|
|||||||
'winfixwidth' 'wfw' keep window width when opening/closing windows
|
'winfixwidth' 'wfw' keep window width when opening/closing windows
|
||||||
'winminheight' 'wmh' minimum number of lines for any window
|
'winminheight' 'wmh' minimum number of lines for any window
|
||||||
'winminwidth' 'wmw' minimal number of columns for any window
|
'winminwidth' 'wmw' minimal number of columns for any window
|
||||||
|
'winptydll' name of the winpty dynamic library
|
||||||
'winwidth' 'wiw' minimal number of columns for current window
|
'winwidth' 'wiw' minimal number of columns for current window
|
||||||
'wrap' long lines wrap and continue on the next line
|
'wrap' long lines wrap and continue on the next line
|
||||||
'wrapmargin' 'wm' chars from the right where wrapping starts
|
'wrapmargin' 'wm' chars from the right where wrapping starts
|
||||||
@@ -1309,6 +1314,7 @@ Context-sensitive completion on the command-line:
|
|||||||
|
|
||||||
|:sfind| :sf[ind] {file} split window, find {file} in 'path'
|
|:sfind| :sf[ind] {file} split window, find {file} in 'path'
|
||||||
and edit it
|
and edit it
|
||||||
|
|:terminal| :terminal {cmd} open a terminal window
|
||||||
|CTRL-W_]| CTRL-W ] split window and jump to tag under
|
|CTRL-W_]| CTRL-W ] split window and jump to tag under
|
||||||
cursor
|
cursor
|
||||||
|CTRL-W_f| CTRL-W f split window and edit file name under
|
|CTRL-W_f| CTRL-W f split window and edit file name under
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*remote.txt* For Vim version 8.0. Last change: 2017 Mar 18
|
*remote.txt* For Vim version 8.0. Last change: 2017 Aug 01
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -99,7 +99,7 @@ Tell the remote server "BLA" to write all files and exit: >
|
|||||||
vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'
|
vim --servername BLA --remote-send '<C-\><C-N>:wqa<CR>'
|
||||||
|
|
||||||
|
|
||||||
SERVER NAME
|
SERVER NAME *client-server-name*
|
||||||
|
|
||||||
By default Vim will try to register the name under which it was invoked (gvim,
|
By default Vim will try to register the name under which it was invoked (gvim,
|
||||||
egvim ...). This can be overridden with the --servername argument. If the
|
egvim ...). This can be overridden with the --servername argument. If the
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*repeat.txt* For Vim version 8.0. Last change: 2017 Feb 06
|
*repeat.txt* For Vim version 8.0. Last change: 2017 Jun 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -46,7 +46,7 @@ of area is used, see |visual-repeat|.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
2. Multiple repeats *multi-repeat*
|
2. Multiple repeats *multi-repeat*
|
||||||
|
|
||||||
*:g* *:global* *E147* *E148*
|
*:g* *:global* *E148*
|
||||||
:[range]g[lobal]/{pattern}/[cmd]
|
:[range]g[lobal]/{pattern}/[cmd]
|
||||||
Execute the Ex command [cmd] (default ":p") on the
|
Execute the Ex command [cmd] (default ":p") on the
|
||||||
lines within [range] where {pattern} matches.
|
lines within [range] where {pattern} matches.
|
||||||
@@ -79,8 +79,15 @@ The default for [range] is the whole buffer (1,$). Use "CTRL-C" to interrupt
|
|||||||
the command. If an error message is given for a line, the command for that
|
the command. If an error message is given for a line, the command for that
|
||||||
line is aborted and the global command continues with the next marked or
|
line is aborted and the global command continues with the next marked or
|
||||||
unmarked line.
|
unmarked line.
|
||||||
|
*E147*
|
||||||
|
When the command is used recursively, it only works on one line. Giving a
|
||||||
|
range is then not allowed. This is useful to find all lines that match a
|
||||||
|
pattern and do not match another pattern: >
|
||||||
|
:g/found/v/notfound/{cmd}
|
||||||
|
This first finds all lines containing "found", but only executes {cmd} when
|
||||||
|
there is no match for "notfound".
|
||||||
|
|
||||||
To repeat a non-Ex command, you can use the ":normal" command: >
|
To execute a non-Ex command, you can use the `:normal` command: >
|
||||||
:g/pat/normal {commands}
|
:g/pat/normal {commands}
|
||||||
Make sure that {commands} ends with a whole command, otherwise Vim will wait
|
Make sure that {commands} ends with a whole command, otherwise Vim will wait
|
||||||
for you to type the rest of the command for each match. The screen will not
|
for you to type the rest of the command for each match. The screen will not
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*starting.txt* For Vim version 8.0. Last change: 2017 Jan 15
|
*starting.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -140,11 +140,12 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|||||||
--noplugin Skip loading plugins. Resets the 'loadplugins' option.
|
--noplugin Skip loading plugins. Resets the 'loadplugins' option.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
Note that the |-u| argument may also disable loading plugins:
|
Note that the |-u| argument may also disable loading plugins:
|
||||||
argument load vimrc files load plugins ~
|
argument load: vimrc files plugins defaults.vim ~
|
||||||
(nothing) yes yes
|
(nothing) yes yes yes
|
||||||
-u NONE no no
|
-u NONE no no no
|
||||||
-u NORC no yes
|
-u DEFAULTS no no yes
|
||||||
--noplugin yes no
|
-u NORC no yes no
|
||||||
|
--noplugin yes no yes
|
||||||
|
|
||||||
--startuptime {fname} *--startuptime*
|
--startuptime {fname} *--startuptime*
|
||||||
During startup write timing messages to the file {fname}.
|
During startup write timing messages to the file {fname}.
|
||||||
@@ -465,21 +466,30 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|||||||
--nofork GUI: Do not fork. Same as |-f|.
|
--nofork GUI: Do not fork. Same as |-f|.
|
||||||
*-u* *E282*
|
*-u* *E282*
|
||||||
-u {vimrc} The file {vimrc} is read for initializations. Most other
|
-u {vimrc} The file {vimrc} is read for initializations. Most other
|
||||||
initializations are skipped; see |initialization|. This can
|
initializations are skipped; see |initialization|.
|
||||||
be used to start Vim in a special mode, with special
|
|
||||||
|
This can be used to start Vim in a special mode, with special
|
||||||
mappings and settings. A shell alias can be used to make
|
mappings and settings. A shell alias can be used to make
|
||||||
this easy to use. For example: >
|
this easy to use. For example: >
|
||||||
alias vimc vim -u ~/.c_vimrc !*
|
alias vimc vim -u ~/.c_vimrc !*
|
||||||
< Also consider using autocommands; see |autocommand|.
|
< Also consider using autocommands; see |autocommand|.
|
||||||
|
|
||||||
When {vimrc} is equal to "NONE" (all uppercase), all
|
When {vimrc} is equal to "NONE" (all uppercase), all
|
||||||
initializations from files and environment variables are
|
initializations from files and environment variables are
|
||||||
skipped, including reading the |gvimrc| file when the GUI
|
skipped, including reading the |gvimrc| file when the GUI
|
||||||
starts. Loading plugins is also skipped.
|
starts. Loading plugins is also skipped.
|
||||||
|
|
||||||
When {vimrc} is equal to "NORC" (all uppercase), this has the
|
When {vimrc} is equal to "NORC" (all uppercase), this has the
|
||||||
same effect as "NONE", but loading plugins is not skipped.
|
same effect as "NONE", but loading plugins is not skipped.
|
||||||
Using the "-u" argument has the side effect that the
|
|
||||||
'compatible' option will be on by default. This can have
|
When {vimrc} is equal to "DEFAULTS" (all uppercase), this has
|
||||||
unexpected effects. See |'compatible'|.
|
the same effect as "NONE", but the |defaults.vim| script is
|
||||||
|
loaded, which will also set 'nocompatible'.
|
||||||
|
|
||||||
|
Using the "-u" argument with another argument than DEFAULTS
|
||||||
|
has the side effect that the 'compatible' option will be on by
|
||||||
|
default. This can have unexpected effects. See
|
||||||
|
|'compatible'|.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
*-U* *E230*
|
*-U* *E230*
|
||||||
@@ -497,6 +507,13 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|||||||
":rv" or ":wv" are used. See also |viminfo-file|.
|
":rv" or ":wv" are used. See also |viminfo-file|.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
|
*--clean*
|
||||||
|
--clean Equal to "-u DEFAULTS -i NONE":
|
||||||
|
- initializations from files and environment variables is
|
||||||
|
skipped
|
||||||
|
- the |defaults.vim| script is loaded, which implies
|
||||||
|
'nocompatible': use Vim defaults
|
||||||
|
- no viminfo file is read or written
|
||||||
*-x*
|
*-x*
|
||||||
-x Use encryption to read/write files. Will prompt for a key,
|
-x Use encryption to read/write files. Will prompt for a key,
|
||||||
which is then stored in the 'key' option. All writes will
|
which is then stored in the 'key' option. All writes will
|
||||||
@@ -868,6 +885,7 @@ accordingly. Vim proceeds in this order:
|
|||||||
Loading plugins won't be done when:
|
Loading plugins won't be done when:
|
||||||
- The 'loadplugins' option was reset in a vimrc file.
|
- The 'loadplugins' option was reset in a vimrc file.
|
||||||
- The |--noplugin| command line argument is used.
|
- The |--noplugin| command line argument is used.
|
||||||
|
- The |--clean| command line argument is used.
|
||||||
- The "-u NONE" command line argument is used |-u|.
|
- The "-u NONE" command line argument is used |-u|.
|
||||||
- When Vim was compiled without the |+eval| feature.
|
- When Vim was compiled without the |+eval| feature.
|
||||||
Note that using "-c 'set noloadplugins'" doesn't work, because the
|
Note that using "-c 'set noloadplugins'" doesn't work, because the
|
||||||
@@ -990,6 +1008,7 @@ starts its initializations. But as soon as:
|
|||||||
- a vimrc file in the current directory, or
|
- a vimrc file in the current directory, or
|
||||||
- the "VIMINIT" environment variable is set, or
|
- the "VIMINIT" environment variable is set, or
|
||||||
- the "-N" command line argument is given, or
|
- the "-N" command line argument is given, or
|
||||||
|
- the "--clean" command line argument is given, or
|
||||||
even when no vimrc file exists.
|
even when no vimrc file exists.
|
||||||
- the |defaults.vim| script is loaded, or
|
- the |defaults.vim| script is loaded, or
|
||||||
- gvimrc file was found,
|
- gvimrc file was found,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*syntax.txt* For Vim version 8.0. Last change: 2017 Jun 04
|
*syntax.txt* For Vim version 8.0. Last change: 2017 Aug 12
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -2138,6 +2138,16 @@ set "msql_minlines" to the value you desire. Example: >
|
|||||||
:let msql_minlines = 200
|
:let msql_minlines = 200
|
||||||
|
|
||||||
|
|
||||||
|
N1QL *n1ql.vim* *ft-n1ql-syntax*
|
||||||
|
|
||||||
|
N1QL is a SQL-like declarative language for manipulating JSON documents in
|
||||||
|
Couchbase Server databases.
|
||||||
|
|
||||||
|
Vim syntax highlights N1QL statements, keywords, operators, types, comments,
|
||||||
|
and special values. Vim ignores syntactical elements specific to SQL or its
|
||||||
|
many dialects, like COLUMN or CHAR, that don't exist in N1QL.
|
||||||
|
|
||||||
|
|
||||||
NCF *ncf.vim* *ft-ncf-syntax*
|
NCF *ncf.vim* *ft-ncf-syntax*
|
||||||
|
|
||||||
There is one option for NCF syntax highlighting.
|
There is one option for NCF syntax highlighting.
|
||||||
@@ -4689,23 +4699,26 @@ the same syntax file on all terminals, and use the optimal highlighting.
|
|||||||
|
|
||||||
*bold* *underline* *undercurl*
|
*bold* *underline* *undercurl*
|
||||||
*inverse* *italic* *standout*
|
*inverse* *italic* *standout*
|
||||||
|
*nocombine* *strikethrough*
|
||||||
term={attr-list} *attr-list* *highlight-term* *E418*
|
term={attr-list} *attr-list* *highlight-term* *E418*
|
||||||
attr-list is a comma separated list (without spaces) of the
|
attr-list is a comma separated list (without spaces) of the
|
||||||
following items (in any order):
|
following items (in any order):
|
||||||
bold
|
bold
|
||||||
underline
|
underline
|
||||||
undercurl not always available
|
undercurl not always available
|
||||||
|
strikethrough not always available
|
||||||
reverse
|
reverse
|
||||||
inverse same as reverse
|
inverse same as reverse
|
||||||
italic
|
italic
|
||||||
standout
|
standout
|
||||||
|
nocombine override attributes instead of combining them
|
||||||
NONE no attributes used (used to reset it)
|
NONE no attributes used (used to reset it)
|
||||||
|
|
||||||
Note that "bold" can be used here and by using a bold font. They
|
Note that "bold" can be used here and by using a bold font. They
|
||||||
have the same effect.
|
have the same effect.
|
||||||
"undercurl" is a curly underline. When "undercurl" is not possible
|
"undercurl" is a curly underline. When "undercurl" is not possible
|
||||||
then "underline" is used. In general "undercurl" is only available in
|
then "underline" is used. In general "undercurl" and "strikethrough"
|
||||||
the GUI. The color is set with |highlight-guisp|.
|
is only available in the GUI. The color is set with |highlight-guisp|.
|
||||||
|
|
||||||
start={term-list} *highlight-start* *E422*
|
start={term-list} *highlight-start* *E422*
|
||||||
stop={term-list} *term-list* *highlight-stop*
|
stop={term-list} *term-list* *highlight-stop*
|
||||||
@@ -4870,7 +4883,8 @@ guifg={color-name} *highlight-guifg*
|
|||||||
guibg={color-name} *highlight-guibg*
|
guibg={color-name} *highlight-guibg*
|
||||||
guisp={color-name} *highlight-guisp*
|
guisp={color-name} *highlight-guisp*
|
||||||
These give the foreground (guifg), background (guibg) and special
|
These give the foreground (guifg), background (guibg) and special
|
||||||
(guisp) color to use in the GUI. "guisp" is used for undercurl.
|
(guisp) color to use in the GUI. "guisp" is used for undercurl and
|
||||||
|
strikethrough.
|
||||||
There are a few special names:
|
There are a few special names:
|
||||||
NONE no color (transparent)
|
NONE no color (transparent)
|
||||||
bg use normal background color
|
bg use normal background color
|
||||||
@@ -4982,10 +4996,11 @@ PmenuSbar Popup menu: scrollbar.
|
|||||||
PmenuThumb Popup menu: Thumb of the scrollbar.
|
PmenuThumb Popup menu: Thumb of the scrollbar.
|
||||||
*hl-Question*
|
*hl-Question*
|
||||||
Question |hit-enter| prompt and yes/no questions
|
Question |hit-enter| prompt and yes/no questions
|
||||||
|
*hl-QuickFixLine*
|
||||||
|
QuickFixLine Current |quickfix| item in the quickfix window.
|
||||||
*hl-Search*
|
*hl-Search*
|
||||||
Search Last search pattern highlighting (see 'hlsearch').
|
Search Last search pattern highlighting (see 'hlsearch').
|
||||||
Also used for highlighting the current line in the quickfix
|
Also used for similar items that need to stand out.
|
||||||
window and similar items that need to stand out.
|
|
||||||
*hl-SpecialKey*
|
*hl-SpecialKey*
|
||||||
SpecialKey Meta and special keys listed with ":map", also for text used
|
SpecialKey Meta and special keys listed with ":map", also for text used
|
||||||
to show unprintable characters in the text, 'listchars'.
|
to show unprintable characters in the text, 'listchars'.
|
||||||
|
|||||||
100
runtime/doc/tags
100
runtime/doc/tags
@@ -4,6 +4,7 @@
|
|||||||
$ motion.txt /*$*
|
$ motion.txt /*$*
|
||||||
$HOME options.txt /*$HOME*
|
$HOME options.txt /*$HOME*
|
||||||
$HOME-use version5.txt /*$HOME-use*
|
$HOME-use version5.txt /*$HOME-use*
|
||||||
|
$HOME-windows options.txt /*$HOME-windows*
|
||||||
$MYGVIMRC gui.txt /*$MYGVIMRC*
|
$MYGVIMRC gui.txt /*$MYGVIMRC*
|
||||||
$MYVIMRC starting.txt /*$MYVIMRC*
|
$MYVIMRC starting.txt /*$MYVIMRC*
|
||||||
$VIM starting.txt /*$VIM*
|
$VIM starting.txt /*$VIM*
|
||||||
@@ -366,7 +367,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'ims' options.txt /*'ims'*
|
'ims' options.txt /*'ims'*
|
||||||
'imsearch' options.txt /*'imsearch'*
|
'imsearch' options.txt /*'imsearch'*
|
||||||
'imsf' options.txt /*'imsf'*
|
'imsf' options.txt /*'imsf'*
|
||||||
|
'imst' options.txt /*'imst'*
|
||||||
'imstatusfunc' options.txt /*'imstatusfunc'*
|
'imstatusfunc' options.txt /*'imstatusfunc'*
|
||||||
|
'imstyle' options.txt /*'imstyle'*
|
||||||
'inc' options.txt /*'inc'*
|
'inc' options.txt /*'inc'*
|
||||||
'include' options.txt /*'include'*
|
'include' options.txt /*'include'*
|
||||||
'includeexpr' options.txt /*'includeexpr'*
|
'includeexpr' options.txt /*'includeexpr'*
|
||||||
@@ -935,6 +938,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
't_Co' term.txt /*'t_Co'*
|
't_Co' term.txt /*'t_Co'*
|
||||||
't_Cs' term.txt /*'t_Cs'*
|
't_Cs' term.txt /*'t_Cs'*
|
||||||
't_DL' term.txt /*'t_DL'*
|
't_DL' term.txt /*'t_DL'*
|
||||||
|
't_EC' term.txt /*'t_EC'*
|
||||||
't_EI' term.txt /*'t_EI'*
|
't_EI' term.txt /*'t_EI'*
|
||||||
't_F1' term.txt /*'t_F1'*
|
't_F1' term.txt /*'t_F1'*
|
||||||
't_F2' term.txt /*'t_F2'*
|
't_F2' term.txt /*'t_F2'*
|
||||||
@@ -971,12 +975,19 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
't_PE' term.txt /*'t_PE'*
|
't_PE' term.txt /*'t_PE'*
|
||||||
't_PS' term.txt /*'t_PS'*
|
't_PS' term.txt /*'t_PS'*
|
||||||
't_RB' term.txt /*'t_RB'*
|
't_RB' term.txt /*'t_RB'*
|
||||||
|
't_RC' term.txt /*'t_RC'*
|
||||||
't_RI' term.txt /*'t_RI'*
|
't_RI' term.txt /*'t_RI'*
|
||||||
|
't_RS' term.txt /*'t_RS'*
|
||||||
't_RV' term.txt /*'t_RV'*
|
't_RV' term.txt /*'t_RV'*
|
||||||
|
't_SC' term.txt /*'t_SC'*
|
||||||
|
't_SH' term.txt /*'t_SH'*
|
||||||
't_SI' term.txt /*'t_SI'*
|
't_SI' term.txt /*'t_SI'*
|
||||||
't_SR' term.txt /*'t_SR'*
|
't_SR' term.txt /*'t_SR'*
|
||||||
't_Sb' term.txt /*'t_Sb'*
|
't_Sb' term.txt /*'t_Sb'*
|
||||||
't_Sf' term.txt /*'t_Sf'*
|
't_Sf' term.txt /*'t_Sf'*
|
||||||
|
't_Te' term.txt /*'t_Te'*
|
||||||
|
't_Ts' term.txt /*'t_Ts'*
|
||||||
|
't_VS' term.txt /*'t_VS'*
|
||||||
't_WP' term.txt /*'t_WP'*
|
't_WP' term.txt /*'t_WP'*
|
||||||
't_WS' term.txt /*'t_WS'*
|
't_WS' term.txt /*'t_WS'*
|
||||||
't_ZH' term.txt /*'t_ZH'*
|
't_ZH' term.txt /*'t_ZH'*
|
||||||
@@ -1064,6 +1075,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'termbidi' options.txt /*'termbidi'*
|
'termbidi' options.txt /*'termbidi'*
|
||||||
'termencoding' options.txt /*'termencoding'*
|
'termencoding' options.txt /*'termencoding'*
|
||||||
'termguicolors' options.txt /*'termguicolors'*
|
'termguicolors' options.txt /*'termguicolors'*
|
||||||
|
'termkey' options.txt /*'termkey'*
|
||||||
|
'termsize' options.txt /*'termsize'*
|
||||||
'terse' options.txt /*'terse'*
|
'terse' options.txt /*'terse'*
|
||||||
'textauto' options.txt /*'textauto'*
|
'textauto' options.txt /*'textauto'*
|
||||||
'textmode' options.txt /*'textmode'*
|
'textmode' options.txt /*'textmode'*
|
||||||
@@ -1079,8 +1092,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'titlelen' options.txt /*'titlelen'*
|
'titlelen' options.txt /*'titlelen'*
|
||||||
'titleold' options.txt /*'titleold'*
|
'titleold' options.txt /*'titleold'*
|
||||||
'titlestring' options.txt /*'titlestring'*
|
'titlestring' options.txt /*'titlestring'*
|
||||||
|
'tk' options.txt /*'tk'*
|
||||||
'tl' options.txt /*'tl'*
|
'tl' options.txt /*'tl'*
|
||||||
'tm' options.txt /*'tm'*
|
'tm' options.txt /*'tm'*
|
||||||
|
'tms' options.txt /*'tms'*
|
||||||
'to' options.txt /*'to'*
|
'to' options.txt /*'to'*
|
||||||
'toolbar' options.txt /*'toolbar'*
|
'toolbar' options.txt /*'toolbar'*
|
||||||
'toolbariconsize' options.txt /*'toolbariconsize'*
|
'toolbariconsize' options.txt /*'toolbariconsize'*
|
||||||
@@ -1124,7 +1139,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'vi' options.txt /*'vi'*
|
'vi' options.txt /*'vi'*
|
||||||
'viewdir' options.txt /*'viewdir'*
|
'viewdir' options.txt /*'viewdir'*
|
||||||
'viewoptions' options.txt /*'viewoptions'*
|
'viewoptions' options.txt /*'viewoptions'*
|
||||||
|
'vif' options.txt /*'vif'*
|
||||||
'viminfo' options.txt /*'viminfo'*
|
'viminfo' options.txt /*'viminfo'*
|
||||||
|
'viminfofile' options.txt /*'viminfofile'*
|
||||||
'virtualedit' options.txt /*'virtualedit'*
|
'virtualedit' options.txt /*'virtualedit'*
|
||||||
'visualbell' options.txt /*'visualbell'*
|
'visualbell' options.txt /*'visualbell'*
|
||||||
'vop' options.txt /*'vop'*
|
'vop' options.txt /*'vop'*
|
||||||
@@ -1161,6 +1178,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
'winheight' options.txt /*'winheight'*
|
'winheight' options.txt /*'winheight'*
|
||||||
'winminheight' options.txt /*'winminheight'*
|
'winminheight' options.txt /*'winminheight'*
|
||||||
'winminwidth' options.txt /*'winminwidth'*
|
'winminwidth' options.txt /*'winminwidth'*
|
||||||
|
'winptydll' options.txt /*'winptydll'*
|
||||||
'winwidth' options.txt /*'winwidth'*
|
'winwidth' options.txt /*'winwidth'*
|
||||||
'wiv' options.txt /*'wiv'*
|
'wiv' options.txt /*'wiv'*
|
||||||
'wiw' options.txt /*'wiw'*
|
'wiw' options.txt /*'wiw'*
|
||||||
@@ -1309,6 +1327,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
+tcl various.txt /*+tcl*
|
+tcl various.txt /*+tcl*
|
||||||
+tcl/dyn various.txt /*+tcl\/dyn*
|
+tcl/dyn various.txt /*+tcl\/dyn*
|
||||||
+termguicolors various.txt /*+termguicolors*
|
+termguicolors various.txt /*+termguicolors*
|
||||||
|
+terminal various.txt /*+terminal*
|
||||||
+terminfo various.txt /*+terminfo*
|
+terminfo various.txt /*+terminfo*
|
||||||
+termresponse various.txt /*+termresponse*
|
+termresponse various.txt /*+termresponse*
|
||||||
+textobjects various.txt /*+textobjects*
|
+textobjects various.txt /*+textobjects*
|
||||||
@@ -1316,6 +1335,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
+timers various.txt /*+timers*
|
+timers various.txt /*+timers*
|
||||||
+title various.txt /*+title*
|
+title various.txt /*+title*
|
||||||
+toolbar various.txt /*+toolbar*
|
+toolbar various.txt /*+toolbar*
|
||||||
|
+unix eval.txt /*+unix*
|
||||||
+user_commands various.txt /*+user_commands*
|
+user_commands various.txt /*+user_commands*
|
||||||
+vertsplit various.txt /*+vertsplit*
|
+vertsplit various.txt /*+vertsplit*
|
||||||
+viminfo various.txt /*+viminfo*
|
+viminfo various.txt /*+viminfo*
|
||||||
@@ -1344,6 +1364,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
-+rv gui_x11.txt /*-+rv*
|
-+rv gui_x11.txt /*-+rv*
|
||||||
-- starting.txt /*--*
|
-- starting.txt /*--*
|
||||||
--- starting.txt /*---*
|
--- starting.txt /*---*
|
||||||
|
--clean starting.txt /*--clean*
|
||||||
--cmd starting.txt /*--cmd*
|
--cmd starting.txt /*--cmd*
|
||||||
--echo-wid starting.txt /*--echo-wid*
|
--echo-wid starting.txt /*--echo-wid*
|
||||||
--help starting.txt /*--help*
|
--help starting.txt /*--help*
|
||||||
@@ -1879,6 +1900,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:<afile> cmdline.txt /*:<afile>*
|
:<afile> cmdline.txt /*:<afile>*
|
||||||
:<amatch> cmdline.txt /*:<amatch>*
|
:<amatch> cmdline.txt /*:<amatch>*
|
||||||
:<cWORD> cmdline.txt /*:<cWORD>*
|
:<cWORD> cmdline.txt /*:<cWORD>*
|
||||||
|
:<cexpr> cmdline.txt /*:<cexpr>*
|
||||||
:<cfile> cmdline.txt /*:<cfile>*
|
:<cfile> cmdline.txt /*:<cfile>*
|
||||||
:<cword> cmdline.txt /*:<cword>*
|
:<cword> cmdline.txt /*:<cword>*
|
||||||
:<sfile> cmdline.txt /*:<sfile>*
|
:<sfile> cmdline.txt /*:<sfile>*
|
||||||
@@ -1938,6 +1960,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:Sexplore pi_netrw.txt /*:Sexplore*
|
:Sexplore pi_netrw.txt /*:Sexplore*
|
||||||
:TOhtml syntax.txt /*:TOhtml*
|
:TOhtml syntax.txt /*:TOhtml*
|
||||||
:TarDiff pi_tar.txt /*:TarDiff*
|
:TarDiff pi_tar.txt /*:TarDiff*
|
||||||
|
:Termdebug terminal.txt /*:Termdebug*
|
||||||
:Texplore pi_netrw.txt /*:Texplore*
|
:Texplore pi_netrw.txt /*:Texplore*
|
||||||
:UseVimball pi_vimball.txt /*:UseVimball*
|
:UseVimball pi_vimball.txt /*:UseVimball*
|
||||||
:Vexplore pi_netrw.txt /*:Vexplore*
|
:Vexplore pi_netrw.txt /*:Vexplore*
|
||||||
@@ -3098,6 +3121,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:tclfile if_tcl.txt /*:tclfile*
|
:tclfile if_tcl.txt /*:tclfile*
|
||||||
:te gui_w32.txt /*:te*
|
:te gui_w32.txt /*:te*
|
||||||
:tearoff gui_w32.txt /*:tearoff*
|
:tearoff gui_w32.txt /*:tearoff*
|
||||||
|
:ter terminal.txt /*:ter*
|
||||||
|
:terminal terminal.txt /*:terminal*
|
||||||
:tf tagsrch.txt /*:tf*
|
:tf tagsrch.txt /*:tf*
|
||||||
:tfirst tagsrch.txt /*:tfirst*
|
:tfirst tagsrch.txt /*:tfirst*
|
||||||
:th eval.txt /*:th*
|
:th eval.txt /*:th*
|
||||||
@@ -3107,9 +3132,16 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:tl tagsrch.txt /*:tl*
|
:tl tagsrch.txt /*:tl*
|
||||||
:tlast tagsrch.txt /*:tlast*
|
:tlast tagsrch.txt /*:tlast*
|
||||||
:tm gui.txt /*:tm*
|
:tm gui.txt /*:tm*
|
||||||
|
:tma map.txt /*:tma*
|
||||||
|
:tmap map.txt /*:tmap*
|
||||||
|
:tmap_l map.txt /*:tmap_l*
|
||||||
|
:tmapc map.txt /*:tmapc*
|
||||||
|
:tmapclear map.txt /*:tmapclear*
|
||||||
:tmenu gui.txt /*:tmenu*
|
:tmenu gui.txt /*:tmenu*
|
||||||
:tn tagsrch.txt /*:tn*
|
:tn tagsrch.txt /*:tn*
|
||||||
:tnext tagsrch.txt /*:tnext*
|
:tnext tagsrch.txt /*:tnext*
|
||||||
|
:tno map.txt /*:tno*
|
||||||
|
:tnoremap map.txt /*:tnoremap*
|
||||||
:topleft windows.txt /*:topleft*
|
:topleft windows.txt /*:topleft*
|
||||||
:tp tagsrch.txt /*:tp*
|
:tp tagsrch.txt /*:tp*
|
||||||
:tprevious tagsrch.txt /*:tprevious*
|
:tprevious tagsrch.txt /*:tprevious*
|
||||||
@@ -3119,6 +3151,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
:ts tagsrch.txt /*:ts*
|
:ts tagsrch.txt /*:ts*
|
||||||
:tselect tagsrch.txt /*:tselect*
|
:tselect tagsrch.txt /*:tselect*
|
||||||
:tu gui.txt /*:tu*
|
:tu gui.txt /*:tu*
|
||||||
|
:tunma map.txt /*:tunma*
|
||||||
|
:tunmap map.txt /*:tunmap*
|
||||||
:tunmenu gui.txt /*:tunmenu*
|
:tunmenu gui.txt /*:tunmenu*
|
||||||
:u undo.txt /*:u*
|
:u undo.txt /*:u*
|
||||||
:un undo.txt /*:un*
|
:un undo.txt /*:un*
|
||||||
@@ -3383,6 +3417,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
<bang> map.txt /*<bang>*
|
<bang> map.txt /*<bang>*
|
||||||
<buffer=N> autocmd.txt /*<buffer=N>*
|
<buffer=N> autocmd.txt /*<buffer=N>*
|
||||||
<buffer=abuf> autocmd.txt /*<buffer=abuf>*
|
<buffer=abuf> autocmd.txt /*<buffer=abuf>*
|
||||||
|
<cexpr> cmdline.txt /*<cexpr>*
|
||||||
<cfile> cmdline.txt /*<cfile>*
|
<cfile> cmdline.txt /*<cfile>*
|
||||||
<character> intro.txt /*<character>*
|
<character> intro.txt /*<character>*
|
||||||
<count> map.txt /*<count>*
|
<count> map.txt /*<count>*
|
||||||
@@ -3413,6 +3448,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
|||||||
<mods> map.txt /*<mods>*
|
<mods> map.txt /*<mods>*
|
||||||
<nomodeline> autocmd.txt /*<nomodeline>*
|
<nomodeline> autocmd.txt /*<nomodeline>*
|
||||||
<q-args> map.txt /*<q-args>*
|
<q-args> map.txt /*<q-args>*
|
||||||
|
<range> map.txt /*<range>*
|
||||||
<reg> map.txt /*<reg>*
|
<reg> map.txt /*<reg>*
|
||||||
<register> map.txt /*<register>*
|
<register> map.txt /*<register>*
|
||||||
<sfile> cmdline.txt /*<sfile>*
|
<sfile> cmdline.txt /*<sfile>*
|
||||||
@@ -3526,6 +3562,8 @@ CTRL-V-alternative gui_w32.txt /*CTRL-V-alternative*
|
|||||||
CTRL-W index.txt /*CTRL-W*
|
CTRL-W index.txt /*CTRL-W*
|
||||||
CTRL-W_+ windows.txt /*CTRL-W_+*
|
CTRL-W_+ windows.txt /*CTRL-W_+*
|
||||||
CTRL-W_- windows.txt /*CTRL-W_-*
|
CTRL-W_- windows.txt /*CTRL-W_-*
|
||||||
|
CTRL-W_. terminal.txt /*CTRL-W_.*
|
||||||
|
CTRL-W_: windows.txt /*CTRL-W_:*
|
||||||
CTRL-W_< windows.txt /*CTRL-W_<*
|
CTRL-W_< windows.txt /*CTRL-W_<*
|
||||||
CTRL-W_<BS> windows.txt /*CTRL-W_<BS>*
|
CTRL-W_<BS> windows.txt /*CTRL-W_<BS>*
|
||||||
CTRL-W_<CR> quickfix.txt /*CTRL-W_<CR>*
|
CTRL-W_<CR> quickfix.txt /*CTRL-W_<CR>*
|
||||||
@@ -3564,6 +3602,7 @@ CTRL-W_H windows.txt /*CTRL-W_H*
|
|||||||
CTRL-W_J windows.txt /*CTRL-W_J*
|
CTRL-W_J windows.txt /*CTRL-W_J*
|
||||||
CTRL-W_K windows.txt /*CTRL-W_K*
|
CTRL-W_K windows.txt /*CTRL-W_K*
|
||||||
CTRL-W_L windows.txt /*CTRL-W_L*
|
CTRL-W_L windows.txt /*CTRL-W_L*
|
||||||
|
CTRL-W_N terminal.txt /*CTRL-W_N*
|
||||||
CTRL-W_P windows.txt /*CTRL-W_P*
|
CTRL-W_P windows.txt /*CTRL-W_P*
|
||||||
CTRL-W_R windows.txt /*CTRL-W_R*
|
CTRL-W_R windows.txt /*CTRL-W_R*
|
||||||
CTRL-W_S windows.txt /*CTRL-W_S*
|
CTRL-W_S windows.txt /*CTRL-W_S*
|
||||||
@@ -3591,6 +3630,7 @@ CTRL-W_n windows.txt /*CTRL-W_n*
|
|||||||
CTRL-W_o windows.txt /*CTRL-W_o*
|
CTRL-W_o windows.txt /*CTRL-W_o*
|
||||||
CTRL-W_p windows.txt /*CTRL-W_p*
|
CTRL-W_p windows.txt /*CTRL-W_p*
|
||||||
CTRL-W_q windows.txt /*CTRL-W_q*
|
CTRL-W_q windows.txt /*CTRL-W_q*
|
||||||
|
CTRL-W_quote terminal.txt /*CTRL-W_quote*
|
||||||
CTRL-W_r windows.txt /*CTRL-W_r*
|
CTRL-W_r windows.txt /*CTRL-W_r*
|
||||||
CTRL-W_s windows.txt /*CTRL-W_s*
|
CTRL-W_s windows.txt /*CTRL-W_s*
|
||||||
CTRL-W_t windows.txt /*CTRL-W_t*
|
CTRL-W_t windows.txt /*CTRL-W_t*
|
||||||
@@ -4519,6 +4559,11 @@ E940 eval.txt /*E940*
|
|||||||
E941 eval.txt /*E941*
|
E941 eval.txt /*E941*
|
||||||
E942 eval.txt /*E942*
|
E942 eval.txt /*E942*
|
||||||
E943 message.txt /*E943*
|
E943 message.txt /*E943*
|
||||||
|
E944 pattern.txt /*E944*
|
||||||
|
E945 pattern.txt /*E945*
|
||||||
|
E946 terminal.txt /*E946*
|
||||||
|
E947 terminal.txt /*E947*
|
||||||
|
E948 terminal.txt /*E948*
|
||||||
E95 message.txt /*E95*
|
E95 message.txt /*E95*
|
||||||
E96 diff.txt /*E96*
|
E96 diff.txt /*E96*
|
||||||
E97 diff.txt /*E97*
|
E97 diff.txt /*E97*
|
||||||
@@ -4760,6 +4805,7 @@ TabNew autocmd.txt /*TabNew*
|
|||||||
Tcl if_tcl.txt /*Tcl*
|
Tcl if_tcl.txt /*Tcl*
|
||||||
TermChanged autocmd.txt /*TermChanged*
|
TermChanged autocmd.txt /*TermChanged*
|
||||||
TermResponse autocmd.txt /*TermResponse*
|
TermResponse autocmd.txt /*TermResponse*
|
||||||
|
Terminal-mode terminal.txt /*Terminal-mode*
|
||||||
TextChanged autocmd.txt /*TextChanged*
|
TextChanged autocmd.txt /*TextChanged*
|
||||||
TextChangedI autocmd.txt /*TextChangedI*
|
TextChangedI autocmd.txt /*TextChangedI*
|
||||||
Transact-SQL ft_sql.txt /*Transact-SQL*
|
Transact-SQL ft_sql.txt /*Transact-SQL*
|
||||||
@@ -4800,9 +4846,11 @@ W18 syntax.txt /*W18*
|
|||||||
W19 autocmd.txt /*W19*
|
W19 autocmd.txt /*W19*
|
||||||
W20 if_pyth.txt /*W20*
|
W20 if_pyth.txt /*W20*
|
||||||
W21 if_pyth.txt /*W21*
|
W21 if_pyth.txt /*W21*
|
||||||
|
W22 eval.txt /*W22*
|
||||||
WORD motion.txt /*WORD*
|
WORD motion.txt /*WORD*
|
||||||
WWW intro.txt /*WWW*
|
WWW intro.txt /*WWW*
|
||||||
Win32 os_win32.txt /*Win32*
|
Win32 os_win32.txt /*Win32*
|
||||||
|
WinBar gui.txt /*WinBar*
|
||||||
WinEnter autocmd.txt /*WinEnter*
|
WinEnter autocmd.txt /*WinEnter*
|
||||||
WinLeave autocmd.txt /*WinLeave*
|
WinLeave autocmd.txt /*WinLeave*
|
||||||
WinNew autocmd.txt /*WinNew*
|
WinNew autocmd.txt /*WinNew*
|
||||||
@@ -5396,6 +5444,7 @@ cinoptions-values indent.txt /*cinoptions-values*
|
|||||||
clear-undo undo.txt /*clear-undo*
|
clear-undo undo.txt /*clear-undo*
|
||||||
clearmatches() eval.txt /*clearmatches()*
|
clearmatches() eval.txt /*clearmatches()*
|
||||||
client-server remote.txt /*client-server*
|
client-server remote.txt /*client-server*
|
||||||
|
client-server-name remote.txt /*client-server-name*
|
||||||
clientserver remote.txt /*clientserver*
|
clientserver remote.txt /*clientserver*
|
||||||
clipboard gui.txt /*clipboard*
|
clipboard gui.txt /*clipboard*
|
||||||
clipboard-autoselect options.txt /*clipboard-autoselect*
|
clipboard-autoselect options.txt /*clipboard-autoselect*
|
||||||
@@ -6113,6 +6162,7 @@ ft-mathematica-syntax syntax.txt /*ft-mathematica-syntax*
|
|||||||
ft-mma-syntax syntax.txt /*ft-mma-syntax*
|
ft-mma-syntax syntax.txt /*ft-mma-syntax*
|
||||||
ft-moo-syntax syntax.txt /*ft-moo-syntax*
|
ft-moo-syntax syntax.txt /*ft-moo-syntax*
|
||||||
ft-msql-syntax syntax.txt /*ft-msql-syntax*
|
ft-msql-syntax syntax.txt /*ft-msql-syntax*
|
||||||
|
ft-n1ql-syntax syntax.txt /*ft-n1ql-syntax*
|
||||||
ft-nasm-syntax syntax.txt /*ft-nasm-syntax*
|
ft-nasm-syntax syntax.txt /*ft-nasm-syntax*
|
||||||
ft-ncf-syntax syntax.txt /*ft-ncf-syntax*
|
ft-ncf-syntax syntax.txt /*ft-ncf-syntax*
|
||||||
ft-nroff-syntax syntax.txt /*ft-nroff-syntax*
|
ft-nroff-syntax syntax.txt /*ft-nroff-syntax*
|
||||||
@@ -6569,6 +6619,7 @@ gs various.txt /*gs*
|
|||||||
gsp.vim syntax.txt /*gsp.vim*
|
gsp.vim syntax.txt /*gsp.vim*
|
||||||
gstar pattern.txt /*gstar*
|
gstar pattern.txt /*gstar*
|
||||||
gt tabpage.txt /*gt*
|
gt tabpage.txt /*gt*
|
||||||
|
gtk-css gui_x11.txt /*gtk-css*
|
||||||
gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
|
gtk-tooltip-colors gui_x11.txt /*gtk-tooltip-colors*
|
||||||
gu change.txt /*gu*
|
gu change.txt /*gu*
|
||||||
gugu change.txt /*gugu*
|
gugu change.txt /*gugu*
|
||||||
@@ -6738,6 +6789,7 @@ hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
|
|||||||
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
||||||
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
||||||
hl-Question syntax.txt /*hl-Question*
|
hl-Question syntax.txt /*hl-Question*
|
||||||
|
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
|
||||||
hl-Scrollbar syntax.txt /*hl-Scrollbar*
|
hl-Scrollbar syntax.txt /*hl-Scrollbar*
|
||||||
hl-Search syntax.txt /*hl-Search*
|
hl-Search syntax.txt /*hl-Search*
|
||||||
hl-SignColumn syntax.txt /*hl-SignColumn*
|
hl-SignColumn syntax.txt /*hl-SignColumn*
|
||||||
@@ -7240,6 +7292,7 @@ mapmode-n map.txt /*mapmode-n*
|
|||||||
mapmode-nvo map.txt /*mapmode-nvo*
|
mapmode-nvo map.txt /*mapmode-nvo*
|
||||||
mapmode-o map.txt /*mapmode-o*
|
mapmode-o map.txt /*mapmode-o*
|
||||||
mapmode-s map.txt /*mapmode-s*
|
mapmode-s map.txt /*mapmode-s*
|
||||||
|
mapmode-t map.txt /*mapmode-t*
|
||||||
mapmode-v map.txt /*mapmode-v*
|
mapmode-v map.txt /*mapmode-v*
|
||||||
mapmode-x map.txt /*mapmode-x*
|
mapmode-x map.txt /*mapmode-x*
|
||||||
mapping map.txt /*mapping*
|
mapping map.txt /*mapping*
|
||||||
@@ -7354,6 +7407,7 @@ mzscheme-vim if_mzsch.txt /*mzscheme-vim*
|
|||||||
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
|
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
|
||||||
mzscheme-window if_mzsch.txt /*mzscheme-window*
|
mzscheme-window if_mzsch.txt /*mzscheme-window*
|
||||||
n pattern.txt /*n*
|
n pattern.txt /*n*
|
||||||
|
n1ql.vim syntax.txt /*n1ql.vim*
|
||||||
nasm.vim syntax.txt /*nasm.vim*
|
nasm.vim syntax.txt /*nasm.vim*
|
||||||
navigation motion.txt /*navigation*
|
navigation motion.txt /*navigation*
|
||||||
nb-commands netbeans.txt /*nb-commands*
|
nb-commands netbeans.txt /*nb-commands*
|
||||||
@@ -7697,6 +7751,7 @@ no-type-checking eval.txt /*no-type-checking*
|
|||||||
no_buffers_menu gui.txt /*no_buffers_menu*
|
no_buffers_menu gui.txt /*no_buffers_menu*
|
||||||
no_mail_maps filetype.txt /*no_mail_maps*
|
no_mail_maps filetype.txt /*no_mail_maps*
|
||||||
no_plugin_maps filetype.txt /*no_plugin_maps*
|
no_plugin_maps filetype.txt /*no_plugin_maps*
|
||||||
|
nocombine syntax.txt /*nocombine*
|
||||||
non-greedy pattern.txt /*non-greedy*
|
non-greedy pattern.txt /*non-greedy*
|
||||||
non-zero-arg eval.txt /*non-zero-arg*
|
non-zero-arg eval.txt /*non-zero-arg*
|
||||||
none-variable eval.txt /*none-variable*
|
none-variable eval.txt /*none-variable*
|
||||||
@@ -7973,6 +8028,7 @@ qnx-terminal os_qnx.txt /*qnx-terminal*
|
|||||||
quake.vim syntax.txt /*quake.vim*
|
quake.vim syntax.txt /*quake.vim*
|
||||||
quickfix quickfix.txt /*quickfix*
|
quickfix quickfix.txt /*quickfix*
|
||||||
quickfix-6 version6.txt /*quickfix-6*
|
quickfix-6 version6.txt /*quickfix-6*
|
||||||
|
quickfix-ID quickfix.txt /*quickfix-ID*
|
||||||
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
quickfix-directory-stack quickfix.txt /*quickfix-directory-stack*
|
||||||
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
quickfix-error-lists quickfix.txt /*quickfix-error-lists*
|
||||||
quickfix-functions usr_41.txt /*quickfix-functions*
|
quickfix-functions usr_41.txt /*quickfix-functions*
|
||||||
@@ -8202,6 +8258,7 @@ servername-variable eval.txt /*servername-variable*
|
|||||||
session-file starting.txt /*session-file*
|
session-file starting.txt /*session-file*
|
||||||
set-option options.txt /*set-option*
|
set-option options.txt /*set-option*
|
||||||
set-spc-auto spell.txt /*set-spc-auto*
|
set-spc-auto spell.txt /*set-spc-auto*
|
||||||
|
setbufline() eval.txt /*setbufline()*
|
||||||
setbufvar() eval.txt /*setbufvar()*
|
setbufvar() eval.txt /*setbufvar()*
|
||||||
setcharsearch() eval.txt /*setcharsearch()*
|
setcharsearch() eval.txt /*setcharsearch()*
|
||||||
setcmdpos() eval.txt /*setcmdpos()*
|
setcmdpos() eval.txt /*setcmdpos()*
|
||||||
@@ -8408,6 +8465,7 @@ star pattern.txt /*star*
|
|||||||
starstar editing.txt /*starstar*
|
starstar editing.txt /*starstar*
|
||||||
starstar-wildcard editing.txt /*starstar-wildcard*
|
starstar-wildcard editing.txt /*starstar-wildcard*
|
||||||
start-of-file pattern.txt /*start-of-file*
|
start-of-file pattern.txt /*start-of-file*
|
||||||
|
start-vimdiff diff.txt /*start-vimdiff*
|
||||||
starting starting.txt /*starting*
|
starting starting.txt /*starting*
|
||||||
starting-amiga starting.txt /*starting-amiga*
|
starting-amiga starting.txt /*starting-amiga*
|
||||||
starting.txt starting.txt /*starting.txt*
|
starting.txt starting.txt /*starting.txt*
|
||||||
@@ -8428,6 +8486,7 @@ strdisplaywidth() eval.txt /*strdisplaywidth()*
|
|||||||
strftime() eval.txt /*strftime()*
|
strftime() eval.txt /*strftime()*
|
||||||
strgetchar() eval.txt /*strgetchar()*
|
strgetchar() eval.txt /*strgetchar()*
|
||||||
stridx() eval.txt /*stridx()*
|
stridx() eval.txt /*stridx()*
|
||||||
|
strikethrough syntax.txt /*strikethrough*
|
||||||
string eval.txt /*string*
|
string eval.txt /*string*
|
||||||
string() eval.txt /*string()*
|
string() eval.txt /*string()*
|
||||||
string-functions usr_41.txt /*string-functions*
|
string-functions usr_41.txt /*string-functions*
|
||||||
@@ -8514,11 +8573,14 @@ t_AL term.txt /*t_AL*
|
|||||||
t_BD term.txt /*t_BD*
|
t_BD term.txt /*t_BD*
|
||||||
t_BE term.txt /*t_BE*
|
t_BE term.txt /*t_BE*
|
||||||
t_CS term.txt /*t_CS*
|
t_CS term.txt /*t_CS*
|
||||||
|
t_CTRL-W_CTRL-C terminal.txt /*t_CTRL-W_CTRL-C*
|
||||||
|
t_CTRL-\_CTRL-N terminal.txt /*t_CTRL-\\_CTRL-N*
|
||||||
t_CV term.txt /*t_CV*
|
t_CV term.txt /*t_CV*
|
||||||
t_Ce term.txt /*t_Ce*
|
t_Ce term.txt /*t_Ce*
|
||||||
t_Co term.txt /*t_Co*
|
t_Co term.txt /*t_Co*
|
||||||
t_Cs term.txt /*t_Cs*
|
t_Cs term.txt /*t_Cs*
|
||||||
t_DL term.txt /*t_DL*
|
t_DL term.txt /*t_DL*
|
||||||
|
t_EC term.txt /*t_EC*
|
||||||
t_EI term.txt /*t_EI*
|
t_EI term.txt /*t_EI*
|
||||||
t_F1 term.txt /*t_F1*
|
t_F1 term.txt /*t_F1*
|
||||||
t_F2 term.txt /*t_F2*
|
t_F2 term.txt /*t_F2*
|
||||||
@@ -8555,12 +8617,19 @@ t_KL term.txt /*t_KL*
|
|||||||
t_PE term.txt /*t_PE*
|
t_PE term.txt /*t_PE*
|
||||||
t_PS term.txt /*t_PS*
|
t_PS term.txt /*t_PS*
|
||||||
t_RB term.txt /*t_RB*
|
t_RB term.txt /*t_RB*
|
||||||
|
t_RC term.txt /*t_RC*
|
||||||
t_RI term.txt /*t_RI*
|
t_RI term.txt /*t_RI*
|
||||||
|
t_RS term.txt /*t_RS*
|
||||||
t_RV term.txt /*t_RV*
|
t_RV term.txt /*t_RV*
|
||||||
|
t_SC term.txt /*t_SC*
|
||||||
|
t_SH term.txt /*t_SH*
|
||||||
t_SI term.txt /*t_SI*
|
t_SI term.txt /*t_SI*
|
||||||
t_SR term.txt /*t_SR*
|
t_SR term.txt /*t_SR*
|
||||||
t_Sb term.txt /*t_Sb*
|
t_Sb term.txt /*t_Sb*
|
||||||
t_Sf term.txt /*t_Sf*
|
t_Sf term.txt /*t_Sf*
|
||||||
|
t_Te term.txt /*t_Te*
|
||||||
|
t_Ts term.txt /*t_Ts*
|
||||||
|
t_VS term.txt /*t_VS*
|
||||||
t_WP term.txt /*t_WP*
|
t_WP term.txt /*t_WP*
|
||||||
t_WS term.txt /*t_WS*
|
t_WS term.txt /*t_WS*
|
||||||
t_ZH term.txt /*t_ZH*
|
t_ZH term.txt /*t_ZH*
|
||||||
@@ -8773,9 +8842,27 @@ temp-file-name eval.txt /*temp-file-name*
|
|||||||
tempfile change.txt /*tempfile*
|
tempfile change.txt /*tempfile*
|
||||||
template autocmd.txt /*template*
|
template autocmd.txt /*template*
|
||||||
tempname() eval.txt /*tempname()*
|
tempname() eval.txt /*tempname()*
|
||||||
|
term++close terminal.txt /*term++close*
|
||||||
|
term++open terminal.txt /*term++open*
|
||||||
term-dependent-settings term.txt /*term-dependent-settings*
|
term-dependent-settings term.txt /*term-dependent-settings*
|
||||||
term-list syntax.txt /*term-list*
|
term-list syntax.txt /*term-list*
|
||||||
term.txt term.txt /*term.txt*
|
term.txt term.txt /*term.txt*
|
||||||
|
term_getaltscreen() eval.txt /*term_getaltscreen()*
|
||||||
|
term_getattr() eval.txt /*term_getattr()*
|
||||||
|
term_getcursor() eval.txt /*term_getcursor()*
|
||||||
|
term_getjob() eval.txt /*term_getjob()*
|
||||||
|
term_getline() eval.txt /*term_getline()*
|
||||||
|
term_getscrolled() eval.txt /*term_getscrolled()*
|
||||||
|
term_getsize() eval.txt /*term_getsize()*
|
||||||
|
term_getstatus() eval.txt /*term_getstatus()*
|
||||||
|
term_gettitle() eval.txt /*term_gettitle()*
|
||||||
|
term_gettty() eval.txt /*term_gettty()*
|
||||||
|
term_list() eval.txt /*term_list()*
|
||||||
|
term_scrape() eval.txt /*term_scrape()*
|
||||||
|
term_sendkeys() eval.txt /*term_sendkeys()*
|
||||||
|
term_setsize() eval.txt /*term_setsize()*
|
||||||
|
term_start() eval.txt /*term_start()*
|
||||||
|
term_wait() eval.txt /*term_wait()*
|
||||||
termcap term.txt /*termcap*
|
termcap term.txt /*termcap*
|
||||||
termcap-changed version4.txt /*termcap-changed*
|
termcap-changed version4.txt /*termcap-changed*
|
||||||
termcap-colors term.txt /*termcap-colors*
|
termcap-colors term.txt /*termcap-colors*
|
||||||
@@ -8783,16 +8870,24 @@ termcap-cursor-color term.txt /*termcap-cursor-color*
|
|||||||
termcap-cursor-shape term.txt /*termcap-cursor-shape*
|
termcap-cursor-shape term.txt /*termcap-cursor-shape*
|
||||||
termcap-options term.txt /*termcap-options*
|
termcap-options term.txt /*termcap-options*
|
||||||
termcap-title term.txt /*termcap-title*
|
termcap-title term.txt /*termcap-title*
|
||||||
|
terminal terminal.txt /*terminal*
|
||||||
terminal-colors os_unix.txt /*terminal-colors*
|
terminal-colors os_unix.txt /*terminal-colors*
|
||||||
|
terminal-debug terminal.txt /*terminal-debug*
|
||||||
|
terminal-functions usr_41.txt /*terminal-functions*
|
||||||
terminal-info term.txt /*terminal-info*
|
terminal-info term.txt /*terminal-info*
|
||||||
terminal-key-codes term.txt /*terminal-key-codes*
|
terminal-key-codes term.txt /*terminal-key-codes*
|
||||||
terminal-options term.txt /*terminal-options*
|
terminal-options term.txt /*terminal-options*
|
||||||
terminal-output-codes term.txt /*terminal-output-codes*
|
terminal-output-codes term.txt /*terminal-output-codes*
|
||||||
|
terminal-testing terminal.txt /*terminal-testing*
|
||||||
|
terminal-typing terminal.txt /*terminal-typing*
|
||||||
|
terminal-use terminal.txt /*terminal-use*
|
||||||
|
terminal.txt terminal.txt /*terminal.txt*
|
||||||
terminfo term.txt /*terminfo*
|
terminfo term.txt /*terminfo*
|
||||||
termresponse-variable eval.txt /*termresponse-variable*
|
termresponse-variable eval.txt /*termresponse-variable*
|
||||||
test-functions usr_41.txt /*test-functions*
|
test-functions usr_41.txt /*test-functions*
|
||||||
test_alloc_fail() eval.txt /*test_alloc_fail()*
|
test_alloc_fail() eval.txt /*test_alloc_fail()*
|
||||||
test_autochdir() eval.txt /*test_autochdir()*
|
test_autochdir() eval.txt /*test_autochdir()*
|
||||||
|
test_feedinput() eval.txt /*test_feedinput()*
|
||||||
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
|
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
|
||||||
test_ignore_error() eval.txt /*test_ignore_error()*
|
test_ignore_error() eval.txt /*test_ignore_error()*
|
||||||
test_null_channel() eval.txt /*test_null_channel()*
|
test_null_channel() eval.txt /*test_null_channel()*
|
||||||
@@ -9019,7 +9114,11 @@ v:t_list eval.txt /*v:t_list*
|
|||||||
v:t_none eval.txt /*v:t_none*
|
v:t_none eval.txt /*v:t_none*
|
||||||
v:t_number eval.txt /*v:t_number*
|
v:t_number eval.txt /*v:t_number*
|
||||||
v:t_string eval.txt /*v:t_string*
|
v:t_string eval.txt /*v:t_string*
|
||||||
|
v:termblinkresp eval.txt /*v:termblinkresp*
|
||||||
v:termresponse eval.txt /*v:termresponse*
|
v:termresponse eval.txt /*v:termresponse*
|
||||||
|
v:termrgbresp eval.txt /*v:termrgbresp*
|
||||||
|
v:termstyleresp eval.txt /*v:termstyleresp*
|
||||||
|
v:termu7resp eval.txt /*v:termu7resp*
|
||||||
v:testing eval.txt /*v:testing*
|
v:testing eval.txt /*v:testing*
|
||||||
v:this_session eval.txt /*v:this_session*
|
v:this_session eval.txt /*v:this_session*
|
||||||
v:throwpoint eval.txt /*v:throwpoint*
|
v:throwpoint eval.txt /*v:throwpoint*
|
||||||
@@ -9339,6 +9438,7 @@ window-resize windows.txt /*window-resize*
|
|||||||
window-size term.txt /*window-size*
|
window-size term.txt /*window-size*
|
||||||
window-size-functions usr_41.txt /*window-size-functions*
|
window-size-functions usr_41.txt /*window-size-functions*
|
||||||
window-tag windows.txt /*window-tag*
|
window-tag windows.txt /*window-tag*
|
||||||
|
window-toolbar gui.txt /*window-toolbar*
|
||||||
window-variable eval.txt /*window-variable*
|
window-variable eval.txt /*window-variable*
|
||||||
windowid windows.txt /*windowid*
|
windowid windows.txt /*windowid*
|
||||||
windowid-variable eval.txt /*windowid-variable*
|
windowid-variable eval.txt /*windowid-variable*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*term.txt* For Vim version 8.0. Last change: 2017 Apr 11
|
*term.txt* For Vim version 8.0. Last change: 2017 Aug 28
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -295,13 +295,11 @@ OUTPUT CODES *terminal-output-codes*
|
|||||||
t_ts set window title start (to status line) *t_ts* *'t_ts'*
|
t_ts set window title start (to status line) *t_ts* *'t_ts'*
|
||||||
t_ue underline end *t_ue* *'t_ue'*
|
t_ue underline end *t_ue* *'t_ue'*
|
||||||
t_us underline mode *t_us* *'t_us'*
|
t_us underline mode *t_us* *'t_us'*
|
||||||
t_Ce undercurl end *t_Ce* *'t_Ce'*
|
|
||||||
t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
|
||||||
t_ut clearing uses the current background color *t_ut* *'t_ut'*
|
t_ut clearing uses the current background color *t_ut* *'t_ut'*
|
||||||
t_vb visual bell *t_vb* *'t_vb'*
|
t_vb visual bell *t_vb* *'t_vb'*
|
||||||
t_ve cursor visible *t_ve* *'t_ve'*
|
t_ve cursor visible *t_ve* *'t_ve'*
|
||||||
t_vi cursor invisible *t_vi* *'t_vi'*
|
t_vi cursor invisible *t_vi* *'t_vi'*
|
||||||
t_vs cursor very visible *t_vs* *'t_vs'*
|
t_vs cursor very visible (blink) *t_vs* *'t_vs'*
|
||||||
*t_xs* *'t_xs'*
|
*t_xs* *'t_xs'*
|
||||||
t_xs if non-empty, standout not erased by overwriting (hpterm)
|
t_xs if non-empty, standout not erased by overwriting (hpterm)
|
||||||
*t_xn* *'t_xn'*
|
*t_xn* *'t_xn'*
|
||||||
@@ -311,11 +309,16 @@ OUTPUT CODES *terminal-output-codes*
|
|||||||
t_ZR italics end *t_ZR* *'t_ZR'*
|
t_ZR italics end *t_ZR* *'t_ZR'*
|
||||||
|
|
||||||
Added by Vim (there are no standard codes for these):
|
Added by Vim (there are no standard codes for these):
|
||||||
|
t_Ce undercurl end *t_Ce* *'t_Ce'*
|
||||||
|
t_Cs undercurl mode *t_Cs* *'t_Cs'*
|
||||||
|
t_Te strikethrough end *t_Te* *'t_Te'*
|
||||||
|
t_Ts strikethrough mode *t_Ts* *'t_Ts'*
|
||||||
t_IS set icon text start *t_IS* *'t_IS'*
|
t_IS set icon text start *t_IS* *'t_IS'*
|
||||||
t_IE set icon text end *t_IE* *'t_IE'*
|
t_IE set icon text end *t_IE* *'t_IE'*
|
||||||
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
|
t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'*
|
||||||
t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
|
t_GP get window position (Y, X) in pixels *t_GP* *'t_GP'*
|
||||||
t_WS set window size (height, width) in characters *t_WS* *'t_WS'*
|
t_WS set window size (height, width in cells) *t_WS* *'t_WS'*
|
||||||
|
t_VS cursor normally visible (no blink) *t_VS* *'t_VS'*
|
||||||
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
|
t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'*
|
||||||
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
|
t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'*
|
||||||
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
|
t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'*
|
||||||
@@ -333,6 +336,29 @@ Added by Vim (there are no standard codes for these):
|
|||||||
|xterm-bracketed-paste|
|
|xterm-bracketed-paste|
|
||||||
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|
t_BD disable bracketed paste mode *t_BD* *'t_BD'*
|
||||||
|xterm-bracketed-paste|
|
|xterm-bracketed-paste|
|
||||||
|
t_SC set cursor color start *t_SC* *'t_SC'*
|
||||||
|
t_EC set cursor color end *t_EC* *'t_EC'*
|
||||||
|
t_SH set cursor shape *t_SH* *'t_SH'*
|
||||||
|
t_RC request terminal cursor blinking *t_RC* *'t_RC'*
|
||||||
|
t_RS request terminal cursor style *t_RS* *'t_RS'*
|
||||||
|
|
||||||
|
Some codes have a start, middle and end part. The start and end are defined
|
||||||
|
by the termcap option, the middle part is text.
|
||||||
|
set title text: t_ts {title text} t_fs
|
||||||
|
set icon text: t_IS {icon text} t_IE
|
||||||
|
set cursor color: t_SC {color name} t_EC
|
||||||
|
|
||||||
|
t_SH must take one argument:
|
||||||
|
0, 1 or none blinking block cursor
|
||||||
|
2 block cursor
|
||||||
|
3 blinking underline cursor
|
||||||
|
4 underline cursor
|
||||||
|
5 blinking vertical bar cursor
|
||||||
|
6 vertical bar cursor
|
||||||
|
|
||||||
|
t_RS is sent only if the response to t_RV has been received. It is not used
|
||||||
|
on Mac OS when Terminal.app could be recognized from the termresponse.
|
||||||
|
|
||||||
|
|
||||||
KEY CODES *terminal-key-codes*
|
KEY CODES *terminal-key-codes*
|
||||||
Note: Use the <> form if possible
|
Note: Use the <> form if possible
|
||||||
|
|||||||
502
runtime/doc/terminal.txt
Normal file
502
runtime/doc/terminal.txt
Normal file
@@ -0,0 +1,502 @@
|
|||||||
|
*terminal.txt* For Vim version 8.0. Last change: 2017 Sep 26
|
||||||
|
|
||||||
|
|
||||||
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|
||||||
|
|
||||||
|
Terminal window support *terminal*
|
||||||
|
|
||||||
|
|
||||||
|
WARNING: THIS IS ONLY PARTLY IMPLEMENTED, ANYTHING CAN STILL CHANGE
|
||||||
|
|
||||||
|
The terminal feature is optional, use this to check if your Vim has it: >
|
||||||
|
echo has('terminal')
|
||||||
|
If the result is "1" you have it.
|
||||||
|
|
||||||
|
|
||||||
|
1. Basic use |terminal-use|
|
||||||
|
2. Remote testing |terminal-testing|
|
||||||
|
3. Debugging |terminal-debug|
|
||||||
|
|
||||||
|
{Vi does not have any of these commands}
|
||||||
|
{only available when compiled with the |+terminal| feature}
|
||||||
|
|
||||||
|
The terminal feature requires the |+multi_byte|, |+job| and |+channel| features.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
1. Basic use *terminal-use*
|
||||||
|
|
||||||
|
This feature is for running a terminal emulator in a Vim window. A job can be
|
||||||
|
started connected to the terminal emulator. For example, to run a shell: >
|
||||||
|
:term bash
|
||||||
|
|
||||||
|
Or to run build command: >
|
||||||
|
:term make myprogram
|
||||||
|
|
||||||
|
The job runs asynchronously from Vim, the window will be updated to show
|
||||||
|
output from the job, also while editing in another window.
|
||||||
|
|
||||||
|
|
||||||
|
Typing ~
|
||||||
|
*terminal-typing*
|
||||||
|
When the keyboard focus is in the terminal window, typed keys will be sent to
|
||||||
|
the job. This uses a pty when possible. You can click outside of the
|
||||||
|
terminal window to move keyboard focus elsewhere.
|
||||||
|
|
||||||
|
CTRL-W can be used to navigate between windows and other CTRL-W commands, e.g.:
|
||||||
|
CTRL-W CTRL-W move focus to the next window
|
||||||
|
CTRL-W : enter an Ex command
|
||||||
|
See |CTRL-W| for more commands.
|
||||||
|
|
||||||
|
Special in the terminal window: *CTRL-W_.* *CTRL-W_N*
|
||||||
|
CTRL-W . send a CTRL-W to the job in the terminal
|
||||||
|
CTRL-W N go to Terminal-Normal mode, see |Terminal-mode|
|
||||||
|
CTRL-\ CTRL-N go to Terminal-Normal mode, see |Terminal-mode|
|
||||||
|
CTRL-W " {reg} paste register {reg} *CTRL-W_quote*
|
||||||
|
Also works with the = register to insert the result of
|
||||||
|
evaluating an expression.
|
||||||
|
CTRL-W CTRL-C ends the job, see below |t_CTRL-W_CTRL-C|
|
||||||
|
|
||||||
|
See option 'termkey' for specifying another key instead of CTRL-W that
|
||||||
|
will work like CTRL-W. However, typing 'termkey' twice sends 'termkey' to
|
||||||
|
the job. For example:
|
||||||
|
'termkey' CTRL-W move focus to the next window
|
||||||
|
'termkey' : enter an Ex command
|
||||||
|
'termkey' 'termkey' send 'termkey' to the job in the terminal
|
||||||
|
'termkey' . send a CTRL-W to the job in the terminal
|
||||||
|
'termkey' N go to terminal Normal mode, see below
|
||||||
|
'termkey' CTRL-N same as CTRL-W N
|
||||||
|
'termkey' CTRL-C same as |t_CTRL-W_CTRL-C|
|
||||||
|
*t_CTRL-\_CTRL-N*
|
||||||
|
The special key combination CTRL-\ CTRL-N can be used to switch to Normal
|
||||||
|
mode, just like this works in any other mode.
|
||||||
|
*t_CTRL-W_CTRL-C*
|
||||||
|
CTRL-W CTRL-C can be typed to forcefully end the job. On MS-Windows a
|
||||||
|
CTRL-BREAK will also kill the job.
|
||||||
|
|
||||||
|
If you type CTRL-C the effect depends on what the pty has been configured to
|
||||||
|
do. For simple commands this causes a SIGINT to be sent to the job, which
|
||||||
|
would end it. Other commands may ignore the SIGINT or handle the CTRL-C
|
||||||
|
themselves (like Vim does).
|
||||||
|
|
||||||
|
To change the keys you type use terminal mode mappings, see |:tmap|.
|
||||||
|
These are defined like any mapping, but apply only when typing keys that are
|
||||||
|
sent to the job running in the terminal. For example, to make Escape switch
|
||||||
|
to Terminal-Normal mode: >
|
||||||
|
tnoremap <Esc> <C-W>N
|
||||||
|
|
||||||
|
After opening the terminal window and setting 'buftype' to "terminal" the
|
||||||
|
BufWinEnter autocommand event is triggered. This makes it possible to set
|
||||||
|
options specifically for the window and buffer. Example: >
|
||||||
|
au BufWinEnter * if &buftype == 'terminal' | setlocal bufhidden=hide | endif
|
||||||
|
|
||||||
|
|
||||||
|
Size and color ~
|
||||||
|
|
||||||
|
See option 'termsize' for controlling the size of the terminal window.
|
||||||
|
(TODO: scrolling when the terminal is larger than the window)
|
||||||
|
|
||||||
|
The job running in the terminal can change the colors. The default foreground
|
||||||
|
and background colors are taken from Vim, the Normal highlight group.
|
||||||
|
|
||||||
|
For a color terminal the 'background' option is used to decide whether the
|
||||||
|
terminal window will start with a white or black background.
|
||||||
|
|
||||||
|
To use a different color the Terminal highlight group can be used: >
|
||||||
|
hi Terminal ctermbg=lightgrey ctermfg=blue guibg=lightgrey guifg=blue
|
||||||
|
|
||||||
|
|
||||||
|
Syntax ~
|
||||||
|
|
||||||
|
:[range]ter[minal] [options] [command] *:ter* *:terminal*
|
||||||
|
Open a new terminal window.
|
||||||
|
|
||||||
|
If [command] is provided run it as a job and connect
|
||||||
|
the input and output to the terminal.
|
||||||
|
If [command] is not given the 'shell' option is used.
|
||||||
|
if [command] is NONE no job is started, the pty of the
|
||||||
|
terminal can be used by a command like gdb.
|
||||||
|
|
||||||
|
A new buffer will be created, using [command] or
|
||||||
|
'shell' as the name, prefixed with a "!". If a buffer
|
||||||
|
by this name already exists a number is added in
|
||||||
|
parentheses. E.g. if "gdb" exists the second terminal
|
||||||
|
buffer will use "!gdb (1)".
|
||||||
|
|
||||||
|
If [range] is given the specified lines are used as
|
||||||
|
input for the job. It will not be possible to type
|
||||||
|
keys in the terminal window. For MS-Windows see the
|
||||||
|
++eof argument below.
|
||||||
|
|
||||||
|
Two comma separated numbers are used as "rows,cols".
|
||||||
|
E.g. `:24,80gdb` opens a terminal with 24 rows and 80
|
||||||
|
columns. However, if the terminal window spans the
|
||||||
|
Vim window with, there is no vertical split, the Vim
|
||||||
|
window width is used.
|
||||||
|
*term++close* *term++open*
|
||||||
|
Supported [options] are:
|
||||||
|
++close The terminal window will close
|
||||||
|
automatically when the job terminates.
|
||||||
|
++open When the job terminates and no window
|
||||||
|
shows it, a window will be opened.
|
||||||
|
Note that this can be interruptive.
|
||||||
|
++curwin Open the terminal in the current
|
||||||
|
window, do not split the current
|
||||||
|
window. Fails if the current buffer
|
||||||
|
cannot be |abandon|ed.
|
||||||
|
++hidden Open the terminal in a hidden buffer,
|
||||||
|
no window will be used.
|
||||||
|
++rows={height} Use {height} for the terminal window
|
||||||
|
height.
|
||||||
|
++cols={width} Use {width} for the terminal window
|
||||||
|
width.
|
||||||
|
++eof={text} when using [range]: text to send after
|
||||||
|
the last line was written. Cannot
|
||||||
|
contain white space. A CR is
|
||||||
|
appended. For MS-Windows the default
|
||||||
|
is to send CTRL-D.
|
||||||
|
E.g. for a shell use "++eof=exit" and
|
||||||
|
for Python "++eof=exit()". Special
|
||||||
|
codes can be used like with `:map`,
|
||||||
|
e.g. "<C-Z>" for CTRL-Z.
|
||||||
|
|
||||||
|
If you want to use more options use the |term_start()|
|
||||||
|
function.
|
||||||
|
|
||||||
|
When the buffer associated with the terminal is unloaded or wiped out the job
|
||||||
|
is killed, similar to calling `job_stop(job, "kill")`
|
||||||
|
|
||||||
|
So long as the job is running the window behaves like it contains a modified
|
||||||
|
buffer. Trying to close the window with `CTRL-W :quit` fails. When using
|
||||||
|
`CTRL-W :quit!` the job is ended. The text in the window is lost. The buffer
|
||||||
|
still exists, but getting it in a window with `:buffer` will show an empty
|
||||||
|
buffer.
|
||||||
|
|
||||||
|
Trying to close the window with `CTRL-W :close` also fails. Using
|
||||||
|
`CTRL-W :close!` will close the window and make the buffer hidden.
|
||||||
|
|
||||||
|
You can use `CTRL-W :hide` to close the terminal window and make the buffer
|
||||||
|
hidden, the job keeps running. The `:buffer` command can be used to turn the
|
||||||
|
current window into a terminal window. If there are unsaved changes this
|
||||||
|
fails, use ! to force, as usual.
|
||||||
|
|
||||||
|
To have a background job run without a window, and open the window when it's
|
||||||
|
done, use options like this: >
|
||||||
|
:term ++hidden ++open make
|
||||||
|
Note that the window will open at an unexpected moment, this will interrupt
|
||||||
|
what you are doing.
|
||||||
|
|
||||||
|
*E947* *E948*
|
||||||
|
So long as the job is running, the buffer is considered modified and Vim
|
||||||
|
cannot be quit easily, see |abandon|.
|
||||||
|
|
||||||
|
When the job has finished and no changes were made to the buffer: closing the
|
||||||
|
window will wipe out the buffer.
|
||||||
|
|
||||||
|
Before changes can be made to a terminal buffer, the 'modifiable' option must
|
||||||
|
be set. This is only possible when the job has finished. At the first change
|
||||||
|
the buffer will become a normal buffer and the highlighting is removed.
|
||||||
|
You may want to change the buffer name with |:file| to be able to write, since
|
||||||
|
the buffer name will still be set to the command.
|
||||||
|
|
||||||
|
|
||||||
|
Resizing ~
|
||||||
|
|
||||||
|
The size of the terminal can be in one of three modes:
|
||||||
|
|
||||||
|
1. The 'termsize' option is empty: The terminal size follows the window size.
|
||||||
|
The minimal size is 2 screen lines with 10 cells.
|
||||||
|
|
||||||
|
2. The 'termsize' option is "rows*cols", where "rows" is the minimal number of
|
||||||
|
screen rows and "cols" is the minimal number of cells.
|
||||||
|
|
||||||
|
3. The 'termsize' option is "rowsXcols" (where the x is upper or lower case).
|
||||||
|
The terminal size is fixed to the specified number of screen lines and
|
||||||
|
cells. If the window is bigger there will be unused empty space.
|
||||||
|
|
||||||
|
If the window is smaller than the terminal size, only part of the terminal can
|
||||||
|
be seen (the lower-left part).
|
||||||
|
|
||||||
|
The |term_getsize()| function can be used to get the current size of the
|
||||||
|
terminal. |term_setsize()| can be used only when in the first or second mode,
|
||||||
|
not when 'termsize' is "rowsXcols".
|
||||||
|
|
||||||
|
|
||||||
|
Terminal-Job and Terminal-Normal mode ~
|
||||||
|
*Terminal-mode*
|
||||||
|
When the job is running the contents of the terminal is under control of the
|
||||||
|
job. That includes the cursor position. Typed keys are sent to the job.
|
||||||
|
The terminal contents can change at any time. This is called Terminal-Job
|
||||||
|
mode.
|
||||||
|
|
||||||
|
Use CTRL-W N (or 'termkey' N) to switch to Terminal-Normal mode. Now the
|
||||||
|
contents of the terminal window is under control of Vim, the job output is
|
||||||
|
suspended. CTRL-\ CTRL-N does the same.
|
||||||
|
|
||||||
|
Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
|
||||||
|
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
|
||||||
|
|
||||||
|
*E946*
|
||||||
|
In Terminal-Normal mode you can move the cursor around with the usual Vim
|
||||||
|
commands, Visually mark text, yank text, etc. But you cannot change the
|
||||||
|
contents of the buffer. The commands that would start insert mode, such as
|
||||||
|
'i' and 'a', return to Terminal-Job mode. The window will be updated to show
|
||||||
|
the contents of the terminal. |:startinsert| is ineffective.
|
||||||
|
|
||||||
|
In Terminal-Normal mode the statusline and window title show "(Terminal)". If
|
||||||
|
the job ends while in Terminal-Normal mode this changes to
|
||||||
|
"(Terminal-finished)".
|
||||||
|
|
||||||
|
It is not possible to enter Insert mode from Terminal-Job mode.
|
||||||
|
|
||||||
|
|
||||||
|
Cursor style ~
|
||||||
|
|
||||||
|
By default the cursor in the terminal window uses a not blinking block. The
|
||||||
|
normal xterm escape sequences can be used to change the blinking state and the
|
||||||
|
shape. Once focus leaves the terminal window Vim will restore the original
|
||||||
|
cursor.
|
||||||
|
|
||||||
|
An exception is when xterm is started with the "-bc" argument, or another way
|
||||||
|
that causes the cursor to blink. This actually means that the blinking flag
|
||||||
|
is inverted. Since Vim cannot detect this, the terminal window cursor
|
||||||
|
blinking will also be inverted.
|
||||||
|
|
||||||
|
|
||||||
|
Unix ~
|
||||||
|
|
||||||
|
On Unix a pty is used to make it possible to run all kinds of commands. You
|
||||||
|
can even run Vim in the terminal! That's used for debugging, see below.
|
||||||
|
|
||||||
|
Environment variables are used to pass information to the running job:
|
||||||
|
TERM name of the terminal, 'term'
|
||||||
|
ROWS number of rows in the terminal initially
|
||||||
|
LINES same as ROWS
|
||||||
|
COLUMNS number of columns in the terminal initially
|
||||||
|
COLORS number of colors, 't_Co' (256*256*256 in the GUI)
|
||||||
|
VIM_SERVERNAME v:servername
|
||||||
|
|
||||||
|
The |client-server| feature can be used to communicate with the Vim instance
|
||||||
|
where the job was started. This only works when v:servername is not empty.
|
||||||
|
If needed you can set it with: >
|
||||||
|
call remote_startserver('vim-server')
|
||||||
|
|
||||||
|
In the job you can then do something like: >
|
||||||
|
vim --servername $VIM_SERVERNAME --remote +123 some_file.c
|
||||||
|
This will open the file "some_file.c" and put the cursor on line 123.
|
||||||
|
|
||||||
|
|
||||||
|
MS-Windows ~
|
||||||
|
|
||||||
|
On MS-Windows winpty is used to make it possible to run all kind of commands.
|
||||||
|
Obviously, they must be commands that run in a terminal, not open their own
|
||||||
|
window.
|
||||||
|
|
||||||
|
You need the following two files from winpty:
|
||||||
|
|
||||||
|
winpty.dll
|
||||||
|
winpty-agent.exe
|
||||||
|
|
||||||
|
You can download them from the following page:
|
||||||
|
|
||||||
|
https://github.com/rprichard/winpty
|
||||||
|
|
||||||
|
Just put the files somewhere in your PATH. You can set the 'winptydll' option
|
||||||
|
to point to the right file, if needed. If you have both the 32-bit and 64-bit
|
||||||
|
version, rename to winpty32.dll and winpty64.dll to match the way Vim was
|
||||||
|
build.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
2. Remote testing *terminal-testing*
|
||||||
|
|
||||||
|
Most Vim tests execute a script inside Vim. For some tests this does not
|
||||||
|
work, running the test interferes with the code being tested. To avoid this
|
||||||
|
Vim is executed in a terminal window. The test sends keystrokes to it and
|
||||||
|
inspects the resulting screen state.
|
||||||
|
|
||||||
|
Functions ~
|
||||||
|
|
||||||
|
term_sendkeys() send keystrokes to a terminal (not subject to tmap)
|
||||||
|
term_wait() wait for screen to be updated
|
||||||
|
term_scrape() inspect terminal screen
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
3. Debugging *terminal-debug*
|
||||||
|
|
||||||
|
The Terminal debugging plugin can be used to debug a program with gdb and view
|
||||||
|
the source code in a Vim window. Since this is completely contained inside
|
||||||
|
Vim this also works remotely over an ssh connection.
|
||||||
|
|
||||||
|
|
||||||
|
Starting ~
|
||||||
|
|
||||||
|
Load the plugin with this command: >
|
||||||
|
packadd termdebug
|
||||||
|
< *:Termdebug*
|
||||||
|
To start debugging use `:TermDebug` folowed by the command name, for example: >
|
||||||
|
:Termdebug vim
|
||||||
|
|
||||||
|
This opens two windows:
|
||||||
|
gdb window A terminal window in which "gdb vim" is executed. Here you
|
||||||
|
can directly interact with gdb. The buffer name is "!gdb".
|
||||||
|
program window A terminal window for the executed program. When "run" is
|
||||||
|
used in gdb the program I/O will happen in this window, so
|
||||||
|
that it does not interfere with controlling gdb. The buffer
|
||||||
|
name is "gdb program".
|
||||||
|
|
||||||
|
The current window is used to show the source code. When gdb pauses the
|
||||||
|
source file location will be displayed, if possible. A sign is used to
|
||||||
|
highlight the current position (using highlight group debugPC).
|
||||||
|
|
||||||
|
If the buffer in the current window is modified, another window will be opened
|
||||||
|
to display the current gdb position.
|
||||||
|
|
||||||
|
Focus the terminal of the executed program to interact with it. This works
|
||||||
|
the same as any command running in a terminal window.
|
||||||
|
|
||||||
|
When the debugger ends, typically by typing "quit" in the gdb window, the two
|
||||||
|
opened windows are closed.
|
||||||
|
|
||||||
|
|
||||||
|
Example session ~
|
||||||
|
|
||||||
|
Start in the Vim "src" directory and build Vim: >
|
||||||
|
% make
|
||||||
|
Start Vim: >
|
||||||
|
% ./vim
|
||||||
|
Load the termdebug plugin and start debugging Vim: >
|
||||||
|
:packadd termdebug
|
||||||
|
:Termdebug vim
|
||||||
|
You should now have three windows:
|
||||||
|
source - where you started, has a window toolbar with buttons
|
||||||
|
gdb - you can type gdb commands here
|
||||||
|
program - the executed program will use this window
|
||||||
|
You can use CTRL-W CTRL-W or the mouse to move focus between windows.
|
||||||
|
Put focus on the gdb window and type: >
|
||||||
|
break ex_help
|
||||||
|
run
|
||||||
|
Vim will start running in the program window. Put focus there and type: >
|
||||||
|
:help gui
|
||||||
|
Gdb will run into the ex_help breakpoint. The source window now shows the
|
||||||
|
ex_cmds.c file. A ">>" marker will appear where the breakpoint was set. The
|
||||||
|
line where the debugger stopped is highlighted. You can now step through the
|
||||||
|
program. Let's use the mouse: click on the "Next" button in the window
|
||||||
|
toolbar. You will see the highlighting move as the debugger executes a line
|
||||||
|
of source code.
|
||||||
|
|
||||||
|
Click "Next" a few times until the for loop is highlighted. Put the cursor on
|
||||||
|
the end of "eap->arg", then click "Eval" in the toolbar. You will see this
|
||||||
|
displayed:
|
||||||
|
"eap->arg": 0x555555e68855 "gui" ~
|
||||||
|
This way you can inspect the value of local variables. You can also focus the
|
||||||
|
gdb window and use a "print" command, e.g.: >
|
||||||
|
print *eap
|
||||||
|
|
||||||
|
Now go back to the source window and put the cursor on the first line after
|
||||||
|
the for loop, then type: >
|
||||||
|
:Break
|
||||||
|
You will see a ">>" marker appear, this indicates the new breakpoint. Now
|
||||||
|
click "Cont" in the toolbar and the code until the breakpoint will be
|
||||||
|
executed.
|
||||||
|
|
||||||
|
You can type more advanced commands in the gdb window. For example, type: >
|
||||||
|
watch curbuf
|
||||||
|
Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution
|
||||||
|
will now continue until the value of "curbuf" changes, which is in do_ecmd().
|
||||||
|
To remove this watchpoint again type in the gdb window: >
|
||||||
|
delete 3
|
||||||
|
|
||||||
|
You can see the stack by typing in the gdb window: >
|
||||||
|
where
|
||||||
|
Move through the stack frames, e.g. with: >
|
||||||
|
frame 3
|
||||||
|
The source window will show the code, at the point where the call was made to
|
||||||
|
a deeper level.
|
||||||
|
|
||||||
|
|
||||||
|
Stepping through code ~
|
||||||
|
|
||||||
|
Put focus on the gdb window to type commands there. Some common ones are:
|
||||||
|
- CTRL-C interrupt the program
|
||||||
|
- next execute the current line and stop at the next line
|
||||||
|
- step execute the current line and stop at the next statement, entering
|
||||||
|
functions
|
||||||
|
- finish execute until leaving the current function
|
||||||
|
- where show the stack
|
||||||
|
- frame N go to the Nth stack frame
|
||||||
|
- continue continue execution
|
||||||
|
|
||||||
|
In the window showing the source code some commands can used to control gdb:
|
||||||
|
:Break set a breakpoint at the current line; a sign will be displayed
|
||||||
|
:Delete delete a breakpoint at the current line
|
||||||
|
:Step execute the gdb "step" command
|
||||||
|
:Over execute the gdb "next" command (:Next is a Vim command)
|
||||||
|
:Finish execute the gdb "finish" command
|
||||||
|
:Continue execute the gdb "continue" command
|
||||||
|
|
||||||
|
The plugin adds a window toolbar with these entries:
|
||||||
|
Step :Step
|
||||||
|
Next :Over
|
||||||
|
Finish :Finish
|
||||||
|
Cont :Continue
|
||||||
|
Eval :Evaluate
|
||||||
|
This way you can use the mouse to perform the most common commands.
|
||||||
|
|
||||||
|
|
||||||
|
Inspecting variables ~
|
||||||
|
|
||||||
|
:Evaluate evaluate the expression under the cursor
|
||||||
|
K same
|
||||||
|
:Evaluate {expr} evaluate {expr}
|
||||||
|
:'<,'>Evaluate evaluate the Visually selected text
|
||||||
|
|
||||||
|
This is similar to using "print" in the gdb window.
|
||||||
|
|
||||||
|
|
||||||
|
Other commands ~
|
||||||
|
|
||||||
|
:Gdb jump to the gdb window
|
||||||
|
:Program jump to the window with the running program
|
||||||
|
|
||||||
|
|
||||||
|
Communication ~
|
||||||
|
|
||||||
|
There is another, hidden, buffer, which is used for Vim to communicate with
|
||||||
|
gdb. The buffer name is "gdb communication". Do not delete this buffer, it
|
||||||
|
will break the debugger.
|
||||||
|
|
||||||
|
|
||||||
|
Customizing ~
|
||||||
|
|
||||||
|
To change the name of the gdb command, set the "termdebugger" variable before
|
||||||
|
invoking `:Termdebug`: >
|
||||||
|
let termdebugger = "mygdb"
|
||||||
|
Only debuggers fully compatible with gdb will work. Vim uses the GDB/MI
|
||||||
|
interface. This probably requires gdb version 7.12.
|
||||||
|
|
||||||
|
The color of the signs can be adjusted with these highlight groups:
|
||||||
|
- debugPC the current position
|
||||||
|
- debugBreakpoint a breakpoint
|
||||||
|
|
||||||
|
The defaults are, when 'background' is "light":
|
||||||
|
hi debugPC term=reverse ctermbg=lightblue guibg=lightblue
|
||||||
|
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||||
|
|
||||||
|
When 'background' is "dark":
|
||||||
|
hi debugPC term=reverse ctermbg=darkblue guibg=darkblue
|
||||||
|
hi debugBreakpoint term=reverse ctermbg=red guibg=red
|
||||||
|
|
||||||
|
To change the width of the Vim window when debugging starts, and use a
|
||||||
|
vertical split: >
|
||||||
|
let g:termdebug_wide = 163
|
||||||
|
This will set &columns to 163 when :Termdebug is used. The value is restored
|
||||||
|
when quitting the debugger.
|
||||||
|
If g:termdebug_wide is set and &Columns is already larger than
|
||||||
|
g:termdebug_wide then a vertical split will be used without changing &columns.
|
||||||
|
Set it to 1 to get a vertical split without every changing &columns (useful
|
||||||
|
for when the terminal can't be resized by Vim).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 8.0. Last change: 2017 Jun 05
|
*todo.txt* For Vim version 8.0. Last change: 2017 Sep 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -35,15 +35,47 @@ entered there will not be repeated below, unless there is extra information.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
|
MS-Windows build and installer improvements:
|
||||||
|
- Switch to VC2015 for building. (Ken Takata, 2017 Sep 21)
|
||||||
|
Check resulting binary on XP.
|
||||||
|
- Patch to install 32 and 64 bit Gvimext and related dll files. (Ken Takata,
|
||||||
|
2017 Sep 23, #2144)
|
||||||
|
|
||||||
|
:term hangs in Athena and Motif. (Kazunobu Kuriyama, 2017 Sep 17)
|
||||||
|
|
||||||
|
Universal solution to detect if t_RS is working, using cursor position.
|
||||||
|
Koichi Iwamoto, #2126
|
||||||
|
|
||||||
|
No maintainer for Vietnamese translations.
|
||||||
|
No maintainer for Simplified Chinese translations.
|
||||||
|
|
||||||
|
Terminal emulator window:
|
||||||
|
- Lots of stuff to implement, see src/terminal.c
|
||||||
|
- Improve debugger interface:
|
||||||
|
Include all debug features of Agide.
|
||||||
|
- Implement the right-click popup menu for the terminal. Can use the
|
||||||
|
completion popup menu code and mouse dragging.
|
||||||
|
Use it for "set breakpoint", "remove breakpoint", etc.
|
||||||
|
- make showballoon() work in a terminal. Requires getting mouse-move
|
||||||
|
events.
|
||||||
|
- send 'balloonText' events for the cursor position (using CursorHold ?)
|
||||||
|
in terminal mode.
|
||||||
|
- get ideas from http://clewn.sf.net
|
||||||
|
- Look into the idevim plugin/script.
|
||||||
|
- Improve testing:
|
||||||
|
Make a screenshot of a terminal, store in a file.
|
||||||
|
Display a stored screenshot, display diff with another one.
|
||||||
|
Make a test that puts Vim in a specific state, make a screenshot and compare
|
||||||
|
with the expected screenshot. Set t_Co to 256.
|
||||||
|
|
||||||
+channel:
|
+channel:
|
||||||
- When redrawing for the channel buffer, command line completion is cleared.
|
- Add a separate timeout for opening a socket. Currently it's fixed at 50
|
||||||
(Ramel Eshed, 2017 May 4)
|
msec, which is too small for a remote connection. (tverniquet, #2130)
|
||||||
- Try out background make plugin:
|
- Try out background make plugin:
|
||||||
https://github.com/AndrewVos/vim-make-background
|
https://github.com/AndrewVos/vim-make-background
|
||||||
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
||||||
- Add 'cwd' argument to start_job(): directory to change to in the child.
|
- Writing raw mode to a buffer should still handle NL characters as line
|
||||||
check for valid directory before forking.
|
breaks. (Dmitry Zotikov, 2017 Aug 16)
|
||||||
Part of patch for environment, Yasuhiro Matsumoto, #1160
|
|
||||||
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
|
- When out_cb executes :sleep, the close_cb may be invoked. (Daniel Hahler,
|
||||||
2016 Dec 11, #1320)
|
2016 Dec 11, #1320)
|
||||||
- Implement |job-term| ?
|
- Implement |job-term| ?
|
||||||
@@ -58,11 +90,13 @@ entered there will not be repeated below, unless there is extra information.
|
|||||||
Feb 9) How to do this on MS-Windows?
|
Feb 9) How to do this on MS-Windows?
|
||||||
- For connection to server, a "keep open" flag would be useful. Retry
|
- For connection to server, a "keep open" flag would be useful. Retry
|
||||||
connecting in the main loop with zero timeout.
|
connecting in the main loop with zero timeout.
|
||||||
- job_start(): run job in a newly opened terminal.
|
- job_start(): run job in a newly opened terminal (not a terminal window).
|
||||||
With xterm could use -S{pty}.
|
With xterm could use -S{pty}.
|
||||||
Although user could use "xterm -e 'cmd arg'".
|
Although user could use "xterm -e 'cmd arg'".
|
||||||
|
|
||||||
Regexp problems:
|
Regexp problems:
|
||||||
|
- [:space:] only matches ASCII spaces. Add [:white:] for all space-like
|
||||||
|
characters, esp. including 0xa0. Use character class zero.
|
||||||
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
||||||
(Manuel Ortega, 2016 Apr 24)
|
(Manuel Ortega, 2016 Apr 24)
|
||||||
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
|
Test fails on Mac. Avoid using isalpha(), isalnum(), etc? Depends on
|
||||||
@@ -101,82 +135,209 @@ Regexp problems:
|
|||||||
col and vcol when moving to another line.
|
col and vcol when moving to another line.
|
||||||
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
|
- this doesn't work: "syntax match ErrorMsg /.\%9l\%>20c\&\%<28c/". Leaving
|
||||||
out the \& works. Seems any column check after \& fails.
|
out the \& works. Seems any column check after \& fails.
|
||||||
- The pattern "\1" with the old engine gives E65, with the new engine it
|
|
||||||
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
|
|
||||||
had_endbrace[] is set but not initialized or used.
|
|
||||||
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
|
- Difference between two engines: ".*\zs\/\@>\/" on text "///"
|
||||||
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
|
(Chris Paul, 2016 Nov 13) New engine not greedy enough?
|
||||||
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
Another one: echom matchstr(" sdfsfsf\n sfdsdfsdf",'[^\n]*')
|
||||||
(2017 May 15, #1252)
|
(2017 May 15, #1252)
|
||||||
|
|
||||||
|
Include a few color schemes, based on popularity:
|
||||||
|
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
|
||||||
|
http://vimawesome.com/?q=tag:color-scheme
|
||||||
|
Use names that indicate their appearnce (Christian Brabandt, 2017 Aug 3)
|
||||||
|
- monokai - Xia Crusoe (2017 Aug 4)
|
||||||
|
- seoul256 - Christian Brabandt (2017 Aug 3)
|
||||||
|
- gruvbox - Christian Brabandt (2017 Aug 3)
|
||||||
|
- janah - Marco Hinz (2017 Aug 4)
|
||||||
|
- apprentice - Romain Lafourcade (2017 Aug 6) remarks about help file #1964
|
||||||
|
Suggested by Hiroki Kokubun:
|
||||||
|
- [Iceberg](https://github.com/cocopon/iceberg.vim) (my one)
|
||||||
|
- [hybrid](https://github.com/w0ng/vim-hybrid)
|
||||||
|
Include solarized color scheme?
|
||||||
|
|
||||||
|
When starting with --clean packages under "start" are not loaded. Make this
|
||||||
|
work: :packadd START {name} similar to :runtime START name
|
||||||
|
|
||||||
|
When using :packadd files under "later" are not used, which is inconsistent
|
||||||
|
with packages under "start". (xtal8, #1994)
|
||||||
|
|
||||||
|
After 8.0.0962 pasting leaves the cursor in another position. (Ken Takata,
|
||||||
|
2017 Aug 23, #2015) Also (zdm, 2017 Aug 23)
|
||||||
|
|
||||||
|
Patch to fix popup menu drawing when changing the window size. (Ozaki Kiichi,
|
||||||
|
2017 Sep 17, #2110)
|
||||||
|
|
||||||
|
Patch to fix cursor highlighting with match. (Ozaki Kiichi, 2017 Sep 17,
|
||||||
|
#2111)
|
||||||
|
|
||||||
|
Patch for not profiling the first line of a script. (Lemonboy, 2017 Sep 17,
|
||||||
|
#2103)
|
||||||
|
|
||||||
|
Mac Terminal.app: ctermbg=15 gives light grey instead of white.
|
||||||
|
ctermbg=256 breaks clearing till end of the line. Both work fine in xterm.
|
||||||
|
|
||||||
|
Patch to avoid `rb_load_protect` as a workaround not to crash (#2147)
|
||||||
|
|
||||||
|
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||||
|
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||||
|
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
||||||
|
Update 2016 Aug 10.
|
||||||
|
|
||||||
|
Using ":hi" causes a redraw, but a redraw may update the status line, which
|
||||||
|
may trigger a ":hi" command.
|
||||||
|
|
||||||
|
Last line not in profile if it is a continuation line. (LemonBoy, 2017 Sep 17,
|
||||||
|
#2112)
|
||||||
|
|
||||||
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
|
||||||
(Marcin Szewczyk, 2017 Apr 26)
|
(Marcin Szewczyk, 2017 Apr 26)
|
||||||
|
|
||||||
|
Patch to make Mac features more clear and add "macdarwin". (Kazunobu Kuriyama,
|
||||||
|
2017 Sep 5)
|
||||||
|
|
||||||
|
Using 'wildignore' also applies to literally entered file name. Also with
|
||||||
|
:drop (remote commands).
|
||||||
|
|
||||||
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
|
||||||
|
Lemonboy can reproduce (2017 Jun 5)
|
||||||
|
|
||||||
ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
ml_get errors with buggy script. (Dominique, 2017 Apr 30)
|
||||||
|
|
||||||
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
Error in emsg with buggy script. (Dominique, 2017 Apr 30)
|
||||||
|
|
||||||
|
Patch to make ":set scroll&" work properly. (Ozaki Kiichi, 2017 Sep 17, #2104)
|
||||||
|
|
||||||
|
mswin.vim should not map CTRL-F in the console (#2093)
|
||||||
|
Patch from Christian, 2017 Sep 15.
|
||||||
|
Installer patch from Ken Takata, link on #2093.
|
||||||
|
|
||||||
|
Default install on MS-Windows should source defaults.vim.
|
||||||
|
Ask whether to use Windows or Vim key behavior?
|
||||||
|
|
||||||
|
matchit hasn't been maintained for a long time. #955.
|
||||||
|
|
||||||
|
Test runtime files.
|
||||||
|
Start with filetype detection: testdir/test_filetype.vim
|
||||||
|
|
||||||
|
Window not closed when deleting buffer. (Harm te Hennepe, 2017 Aug 27, #2029)
|
||||||
|
|
||||||
Add options_default() / options_restore() to set several options to Vim
|
Add options_default() / options_restore() to set several options to Vim
|
||||||
defaults for a plugin. Comments from Zyx, 2017 May 10.
|
defaults for a plugin. Comments from Zyx, 2017 May 10.
|
||||||
Perhaps use a vimcontext / endvimcontext command block.
|
Perhaps use a vimcontext / endvimcontext command block.
|
||||||
|
|
||||||
Using freed memory with "qf" FileType autocommand that does :cclose.
|
After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
|
||||||
(Lemonboy, 2017 May 28, #1730, fix in 1734, with test that doesn't fail, but
|
13, #2084). Set old position after the command.
|
||||||
it fails when run manually) Add "starting" to test_override()?
|
|
||||||
|
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
|
||||||
|
Still happens (2017 Jul 9)
|
||||||
|
|
||||||
|
When bracketed paste is used, pasting at the ":append" prompt does not get the
|
||||||
|
line breaks. (Ken Takata, 2017 Aug 22)
|
||||||
|
|
||||||
|
This example in the help does not work (Andy Wokula, 2017 Aug 20):
|
||||||
|
augroup mine | au! BufRead | augroup END
|
||||||
|
|
||||||
|
Memory leaks in test_channel? (or is it because of fork())
|
||||||
|
Memory leak in test_arabic.
|
||||||
|
Using uninitialized value in test_crypt.
|
||||||
|
|
||||||
|
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
|
||||||
|
|
||||||
|
Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
||||||
|
It can replace the BeOS code, which is likely not used anymore.
|
||||||
|
Now on github: #1856.
|
||||||
|
Got permission to include this under the Vim license.
|
||||||
|
|
||||||
|
Refactored HTML indent file. (Michael Lee, #1821)
|
||||||
|
|
||||||
|
Test_writefile_fails_conversion failure on Solaris because if different iconv
|
||||||
|
behavior. Skip when "uname" returns "SunOS"? (Pavel Heimlich, #1872)
|
||||||
|
|
||||||
|
All functions are global, which makes functions like get() and len() awkward.
|
||||||
|
For the future use the ~get() and ~len() syntax, e.g.:
|
||||||
|
mylist~get(idx)
|
||||||
|
mydict~get(idx)
|
||||||
|
mystring~len()
|
||||||
|
Alternatives for ~:
|
||||||
|
^ list^get() could also be used
|
||||||
|
. list.get() already means concatenate
|
||||||
|
$ list$get() harder to read
|
||||||
|
@ list@get() harder to read
|
||||||
|
-> list->get() two characters, used for lambda
|
||||||
|
|
||||||
|
The ++ options for the :edit command are also useful on the Vim command line.
|
||||||
|
|
||||||
|
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
|
||||||
|
#2089) Patch with possible solution by Björn Linse.
|
||||||
|
|
||||||
|
X11: Putting more than about 262040 characters of text on the clipboard and
|
||||||
|
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
|
||||||
|
clip_x11_request_selection_cb() is called with zero value and length.
|
||||||
|
Also: Get an error message from free() in the process that owns the selection.
|
||||||
|
Seems to happen when the selection is requested the second time, but before
|
||||||
|
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
||||||
|
Kazunobu Kuriyama is working on a proper fix. (2017 Jul 25)
|
||||||
|
|
||||||
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
|
Problem with three-piece comment. (Michael Lee, 2017 May 11, #1696)
|
||||||
|
|
||||||
|
Creating a partial with an autoload function is confused about the "self"
|
||||||
|
attribute of the function. For an unknown function assume "self" and make
|
||||||
|
that optiona? (Bjorn Linse, 2017 Aug 5)
|
||||||
|
|
||||||
|
Cindent: returning a structure has more indent for the second item.
|
||||||
|
(Sam Pagenkopf, 2017 Sep 14, #2090)
|
||||||
|
|
||||||
|
Completion mixes results from the current buffer with tags and other files.
|
||||||
|
Happens when typing CTRL-N while still search for results. E.g., type "b_" in
|
||||||
|
terminal.c and then CTRL-N twice.
|
||||||
|
Should do current file first and not split it up when more results are found.
|
||||||
|
(Also #1890)
|
||||||
|
|
||||||
|
Python: After "import vim" error messages only show the first line of the
|
||||||
|
stack trace. (Yggdroot, 2017 Jul 28, #1887)
|
||||||
|
|
||||||
When checking if a bufref is valid, also check the buffer number, to catch the
|
When checking if a bufref is valid, also check the buffer number, to catch the
|
||||||
case of :bwipe followed by :new.
|
case of :bwipe followed by :new.
|
||||||
|
|
||||||
Files for Latvian language. (Vitolins, 2017 May 3, #1675)
|
Patch to skip writing a temp file for diffing if the buffer is equal to the
|
||||||
|
existing file. (Akria Sheng, 2017 Jul 22)
|
||||||
|
Could also skip writing lines that are the same.
|
||||||
|
|
||||||
|
Patch with Files for Latvian language. (Vitolins, 2017 May 3, #1675)
|
||||||
|
|
||||||
|
MS-Windows: Opening same file in a second gvim hangs. (Sven Bruggemann, 2017
|
||||||
|
Jul 4)
|
||||||
|
|
||||||
Setting 'clipboard' to "unnamed" makes a global command very slow (Daniel
|
Setting 'clipboard' to "unnamed" makes a global command very slow (Daniel
|
||||||
Drucker, 2017 May 8).
|
Drucker, 2017 May 8).
|
||||||
This was supposed to be fixed, did it break again somehow?
|
This was supposed to be fixed, did it break again somehow?
|
||||||
Christian cannot reproduce it.
|
Christian cannot reproduce it.
|
||||||
|
|
||||||
|
Using composing char in mapping does not work properly. maparg() shows the
|
||||||
|
wrong thing. (Nikolai Pavlov, 2017 Jul 8, #1827)
|
||||||
|
Or is this not an actual problem?
|
||||||
|
|
||||||
Better TeX indent file. (Christian Brabandt, 2017 May 3)
|
Better TeX indent file. (Christian Brabandt, 2017 May 3)
|
||||||
|
|
||||||
Openhab syntax file (mueller, #1678)
|
Openhab syntax file (mueller, #1678)
|
||||||
|
|
||||||
Use gvimext.dll from the nightly build? (Issue #249)
|
Patch to use a separate code for BS on Windows. (Linwei, #1823)
|
||||||
|
|
||||||
Patch to remove HAVE_GTK_MULTIHEAD-relevant code. (Kazunobu Kuriyama, 2017 May
|
Use gvimext.dll from the nightly build? (Issue #249)
|
||||||
5) Update May 11
|
|
||||||
|
|
||||||
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
'synmaxcol' works with bytes instead of screen cells. (Llandon, 2017 May 31,
|
||||||
#1736)
|
#1736)
|
||||||
|
|
||||||
Patch to pass quickfix list index to functions. (Yegappan Lakshmanan, 2017 May
|
|
||||||
31)
|
|
||||||
|
|
||||||
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
Problem with using :cd when remotely editing a file. (Gerd Wachsmuth, 2017 May
|
||||||
8, #1690)
|
8, #1690)
|
||||||
|
|
||||||
'equalalways' only works for one column. (Glacambre, 2017 May 15, #1707)
|
|
||||||
|
|
||||||
Include solarized color scheme?
|
|
||||||
|
|
||||||
Updates to GTK help. (Kazunobu Kuriyama, 2017 May 4)
|
|
||||||
|
|
||||||
Running test_gui and test_gui_init with Motif sometimes kills the window
|
Running test_gui and test_gui_init with Motif sometimes kills the window
|
||||||
manager. Problem with Motif?
|
manager. Problem with Motif?
|
||||||
|
|
||||||
Bogus characters inserted when triggering indent while changing text.
|
Bogus characters inserted when triggering indent while changing text.
|
||||||
(Vitor Antunes, 2016 Nov 22, #1269)
|
(Vitor Antunes, 2016 Nov 22, #1269)
|
||||||
|
|
||||||
Patch to have ":stag" respect 'switchbuf'. (Ingo Karkat, 2017 May 5, #1681)
|
Using "wviminfo /tmp/viminfo" does not store file marks that Vim knows about,
|
||||||
|
it only works when merging with an existing file. (Shougo, 2017 Jun 19, #1781)
|
||||||
Patch to improve building with MSVC. (Leonardo Manera, #1747)
|
|
||||||
|
|
||||||
Wrong selection of quoted text (Guraga, #1687)
|
|
||||||
Patch to fix selection of quoted text. (Christian Brabandt, 2017 May 7, #1687)
|
|
||||||
|
|
||||||
Patch to use separate error message for regex range. (Itchyny, Ken Hamada,
|
|
||||||
2017 May 16)
|
|
||||||
|
|
||||||
Segmentation fault with complete(). (Lifepillar, 2017 Apr 29, #1668)
|
Segmentation fault with complete(). (Lifepillar, 2017 Apr 29, #1668)
|
||||||
Check for "pat" to be NULL in search_for_exact_line()?
|
Check for "pat" to be NULL in search_for_exact_line()?
|
||||||
@@ -185,17 +346,13 @@ How did it get NULL? Comment by Christian, Apr 30.
|
|||||||
Is it possible to keep the complete menu open when calling complete()?
|
Is it possible to keep the complete menu open when calling complete()?
|
||||||
(Prabir Shrestha, 2017 May 19, #1713)
|
(Prabir Shrestha, 2017 May 19, #1713)
|
||||||
|
|
||||||
Calling may_req_ambiguous_char_width() and may_req_bg_color() only after
|
|
||||||
executing command line commands may not work properly.
|
|
||||||
(Rastislav Barlink, 2017 May 18)
|
|
||||||
Set "starting" to 0 earlier, and move the may_req calls above exe_commands()?
|
|
||||||
No, that's a problem with using "-c quit", not running Vim interactive.
|
|
||||||
|
|
||||||
Memory leak in test97? The string is actually freed. Weird.
|
Memory leak in test97? The string is actually freed. Weird.
|
||||||
|
|
||||||
Patch for shellescape(). (Christian Brabandt, 2017 Apr 20, #1590)
|
Patch to add configure flags to skip rtl, farsi and arabic support.
|
||||||
|
(Diego Carrión, #1867)
|
||||||
|
|
||||||
Patch for flickering redraw. (Hirohito Higashi, 2017 Apr 23, #1637)
|
assert_fails() can only check for the first error. Make it possible to have
|
||||||
|
it catch multiple errors and check all of them.
|
||||||
|
|
||||||
New value "uselast" for 'switchbuf'. (Lemonboy, 2017 Apr 23, #1652)
|
New value "uselast" for 'switchbuf'. (Lemonboy, 2017 Apr 23, #1652)
|
||||||
|
|
||||||
@@ -210,19 +367,7 @@ Still need maplist() to find the mappings. What can we use to identify a
|
|||||||
mapping? Something unique would be better than the LHS.
|
mapping? Something unique would be better than the LHS.
|
||||||
Perhaps simpler: actually delete the mappings. Use maplist() to list matching
|
Perhaps simpler: actually delete the mappings. Use maplist() to list matching
|
||||||
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
mappings (with a lhs prefix, like maparg()), mapdelete() to delete,
|
||||||
maprestore() to restore (using the output of maplist().
|
maprestore() to restore (using the output of maplist()).
|
||||||
|
|
||||||
Patch to support chinese wordcount in utf-8. (Rain, 2017 May 24, #1722)
|
|
||||||
Or not?
|
|
||||||
|
|
||||||
"gn" selects one character instead of the searched text. (keyboardfire, #1683)
|
|
||||||
Patch by Christian, 2017 May 7.
|
|
||||||
|
|
||||||
Wrong memory access using p_fdm, found in patch to add tests for diff mode
|
|
||||||
(#1658) (Dominique Pelle, 2017 May 6)
|
|
||||||
|
|
||||||
Patch to improve test coverage for diff mode. (Dominique Pelle, 2017 May 11,
|
|
||||||
#1685)
|
|
||||||
|
|
||||||
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
Add an argument to :mkvimrc (or add aother command) to skip mappings from
|
||||||
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
plugins (source is a Vim script). No need to put these in a .vimrc, they will
|
||||||
@@ -237,6 +382,9 @@ What if there is an invalid character?
|
|||||||
|
|
||||||
Json string with trailing \u should be an error. (Lcd)
|
Json string with trailing \u should be an error. (Lcd)
|
||||||
|
|
||||||
|
import can't be used in define option when include matches too.
|
||||||
|
(Romain Lafourcade, 2017 Jun 18, #1519)
|
||||||
|
|
||||||
When session file has name in argument list but the buffer was deleted, the
|
When session file has name in argument list but the buffer was deleted, the
|
||||||
buffer is not deleted when using the session file. (#1393)
|
buffer is not deleted when using the session file. (#1393)
|
||||||
Should add the buffer in hidden state.
|
Should add the buffer in hidden state.
|
||||||
@@ -248,9 +396,6 @@ Wrong diff highlighting with three files. (2016 Oct 20, #1186)
|
|||||||
Also get E749 on exit.
|
Also get E749 on exit.
|
||||||
Another example in #1309
|
Another example in #1309
|
||||||
|
|
||||||
Patch to change all use of &sw to shiftwidth(). (Tyru, 2017 Feb 19)
|
|
||||||
Wait until maintainers integrate it.
|
|
||||||
|
|
||||||
When deleting a mark or register, leave a tombstone, so that it's also deleted
|
When deleting a mark or register, leave a tombstone, so that it's also deleted
|
||||||
when writing viminfo (and the delete was the most recent action). #1339
|
when writing viminfo (and the delete was the most recent action). #1339
|
||||||
|
|
||||||
@@ -280,6 +425,12 @@ highlighting for both stl and stlnc. Patch by Ken Hamada (itchyny, 2016 Dec 11)
|
|||||||
Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca
|
Using CTRL-G_U in InsertCharPre causes trouble for redo. (Israel Chauca
|
||||||
Fuentes, 2017 Feb 12, #1470)
|
Fuentes, 2017 Feb 12, #1470)
|
||||||
|
|
||||||
|
Add a "keytrans()" function, which turns the internal byte representation of a
|
||||||
|
key into a form that can be used for :map. E.g.
|
||||||
|
let xx = "\<C-Home>"
|
||||||
|
echo keytrans(xx)
|
||||||
|
<C-Home>
|
||||||
|
|
||||||
Check for errors E704 and E705 only does VAR_FUNC, should also do VAR_PARTIAL.
|
Check for errors E704 and E705 only does VAR_FUNC, should also do VAR_PARTIAL.
|
||||||
(Nikolai Pavlov, 2017 Mar 13, #1557)
|
(Nikolai Pavlov, 2017 Mar 13, #1557)
|
||||||
Make a function to check for function-like type?
|
Make a function to check for function-like type?
|
||||||
@@ -293,12 +444,6 @@ Implement optional arguments for functions.
|
|||||||
call Foo(12, all = 0)
|
call Foo(12, all = 0)
|
||||||
call Foo(12, 15, 0)
|
call Foo(12, 15, 0)
|
||||||
|
|
||||||
writefile() does not abort as soon as an error is found. (Nikolai Pavlov,
|
|
||||||
2017 Feb 14, #1476)
|
|
||||||
|
|
||||||
Patch to support on-the-spot and over-the-spot input method. (Ken Takata, 2017
|
|
||||||
Feb 14).
|
|
||||||
|
|
||||||
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
|
Change the Farsi code to work with UTF-8. Possibly combined with the Arabic
|
||||||
support, or similar.
|
support, or similar.
|
||||||
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
|
Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
|
||||||
@@ -309,11 +454,13 @@ somewhere else. :{range}copy {dest} !cmd
|
|||||||
Patch to fix that empty first tab is not in session.
|
Patch to fix that empty first tab is not in session.
|
||||||
(Hirohito Higashi, 2016 Nov 25, #1282)
|
(Hirohito Higashi, 2016 Nov 25, #1282)
|
||||||
|
|
||||||
Patch for restoring wide characters in the console buffer.
|
Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
|
||||||
(Ken Takata, 2016 Jun 7)
|
Alternative from Christian Brabandt. (2010 Sep 19)
|
||||||
|
New one from Yasuhiro Matsumoto, #1277.
|
||||||
|
|
||||||
Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
|
Patch to fix escaping of job arguments. (Yasuhiro Matsumoto, 2016 Oct 5)
|
||||||
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
|
Update Oct 14: https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
|
||||||
|
Update Aug 2017: #1954
|
||||||
|
|
||||||
Characters deleted on completion. (Adrià Farrés, 2017 Apr 20, #1645)
|
Characters deleted on completion. (Adrià Farrés, 2017 Apr 20, #1645)
|
||||||
Remarks from Christian Brabandt (Apr 21)
|
Remarks from Christian Brabandt (Apr 21)
|
||||||
@@ -322,9 +469,6 @@ The TermResponse event is not triggered when a plugin has set 'eventignore' to
|
|||||||
"all". Netrw does this. (Gary Johnson, 2017 Jan 24)
|
"all". Netrw does this. (Gary Johnson, 2017 Jan 24)
|
||||||
Postpone the event until 'eventignore' is reset.
|
Postpone the event until 'eventignore' is reset.
|
||||||
|
|
||||||
Patch to make urxvt mouse work better, recognize Esc[*M termcap code.
|
|
||||||
(Maurice Bos, 2017 Feb 17, #1486)
|
|
||||||
|
|
||||||
Expanding /**/ is slow. Idea by Luc Hermitte, 2017 Apr 14.
|
Expanding /**/ is slow. Idea by Luc Hermitte, 2017 Apr 14.
|
||||||
|
|
||||||
Once .exe with updated installer is available: Add remark to download page
|
Once .exe with updated installer is available: Add remark to download page
|
||||||
@@ -339,7 +483,7 @@ MS-Windows. Perhaps in \# the \ is seen as a path separator. (Axel Bender,
|
|||||||
2017 Feb 9) Can we expand wildcards first and send the path literally to the
|
2017 Feb 9) Can we expand wildcards first and send the path literally to the
|
||||||
receiving Vim? Or make an exception for #, it's not useful remotely.
|
receiving Vim? Or make an exception for #, it's not useful remotely.
|
||||||
|
|
||||||
":sbr" docs state it respect 'switchbuf', but "vsplit" does not cause a
|
":sbr" docs state it respects 'switchbuf', but "vsplit" does not cause a
|
||||||
vertical split. (Haldean Brown, 2017 Mar 1)
|
vertical split. (Haldean Brown, 2017 Mar 1)
|
||||||
|
|
||||||
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
|
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
|
||||||
@@ -358,11 +502,26 @@ Patch for wrong cursor position on wrapped line, involving breakindent.
|
|||||||
(Ozaki Kiichi, 2016 Nov 25)
|
(Ozaki Kiichi, 2016 Nov 25)
|
||||||
Does this also fix #1408 ?
|
Does this also fix #1408 ?
|
||||||
|
|
||||||
|
Patch to add "module" to quickfix entries. (Coot, 2017 Jun 8, #1757)
|
||||||
|
|
||||||
|
'cursorline' and match interfere. (Ozaki Kiichi, 2017 Jun 23, #1792)
|
||||||
|
|
||||||
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
|
||||||
|
|
||||||
|
Patch to be able to separately map CTRL-H and BS on Windows.
|
||||||
|
(Linwei, 2017 Jul 11, #1833)
|
||||||
|
|
||||||
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
|
When 'completeopt' has "noselect" does not insert a newline. (Lifepillar, 2017
|
||||||
Apr 23, #1653)
|
Apr 23, #1653)
|
||||||
|
|
||||||
|
Using an external diff is inefficient. Not all systems have a good diff
|
||||||
|
program available (esp. MS-Windows). Would be nice to have in internal diff
|
||||||
|
implementation. Can then also use this for displaying changes within a line.
|
||||||
|
Olaf Dabrunz is working on this. (10 Jan 2016)
|
||||||
|
9 Instead invoking an external diff program, use builtin code. One can be
|
||||||
|
found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
|
||||||
|
It's complicated and badly documented.
|
||||||
|
|
||||||
Window resizing with 'winfixheight': With a vertical split the height changes
|
Window resizing with 'winfixheight': With a vertical split the height changes
|
||||||
anyway. (Tommy allen, 2017 Feb 21, #1502)
|
anyway. (Tommy allen, 2017 Feb 21, #1502)
|
||||||
|
|
||||||
@@ -419,9 +578,6 @@ Include the test.
|
|||||||
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
|
Patch to add tagfunc(). Cleaned up by Christian Brabandt, 2013 Jun 22.
|
||||||
New update 2017 Apr 10, #1628
|
New update 2017 Apr 10, #1628
|
||||||
|
|
||||||
Unnamed register only contains the last deleted text when appending deleted
|
|
||||||
text to a register. (Wolfgang Jeltsch, reproduced by Ben Fritz, 2017 Apr 10)
|
|
||||||
|
|
||||||
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
When 'keywordprg' starts with ":" the argument is still escaped as a shell
|
||||||
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
command argument. (Romain Lafourcade, 2016 Oct 16, #1175)
|
||||||
|
|
||||||
@@ -439,6 +595,8 @@ execute() cannot be used with command completeion. (Daniel Hahler, 2016 Oct 1,
|
|||||||
|
|
||||||
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
|
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
|
||||||
|
|
||||||
|
:map X may print invalid data. (Nikolay Pavlov, 2017 Jul 3, #1816)
|
||||||
|
|
||||||
Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)
|
Patch to order results from taglist(). (Duncan McDougall, 2016 Oct 25)
|
||||||
|
|
||||||
patch for 'spellcamelcase' option: spellcheck each CamelCased word.
|
patch for 'spellcamelcase' option: spellcheck each CamelCased word.
|
||||||
@@ -500,20 +658,12 @@ This does not work: :set cscopequickfix=a-
|
|||||||
|
|
||||||
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
|
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
|
||||||
|
|
||||||
Patch to add separate highlighting for quickfix current line.
|
|
||||||
(anishsane, 2016 Sep 16, #1080)
|
|
||||||
|
|
||||||
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
||||||
|
|
||||||
Patch to improve map documentation. Issue #799.
|
Patch to improve map documentation. Issue #799.
|
||||||
|
|
||||||
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
|
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
|
||||||
|
|
||||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
|
||||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
|
||||||
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
|
||||||
Update 2016 Aug 10.
|
|
||||||
|
|
||||||
We can use '. to go to the last change in the current buffer, but how about
|
We can use '. to go to the last change in the current buffer, but how about
|
||||||
the last change in any buffer? Can we use ', (, is next to .)?
|
the last change in any buffer? Can we use ', (, is next to .)?
|
||||||
|
|
||||||
@@ -528,11 +678,6 @@ Reject the value? #710.
|
|||||||
Patch to fix increment/decrement not working properly when 'virtualedit' is
|
Patch to fix increment/decrement not working properly when 'virtualedit' is
|
||||||
set. (Hirohito Higashi, 2016 Aug 1, #923)
|
set. (Hirohito Higashi, 2016 Aug 1, #923)
|
||||||
|
|
||||||
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
|
|
||||||
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
|
|
||||||
Update mentioned by Christian, 2016 Apr 25.
|
|
||||||
Update from Ken Takata, 2016 Jul 17.
|
|
||||||
|
|
||||||
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
|
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
|
||||||
Because of using the initial buffer? (Dun Peal, 2016 May 12)
|
Because of using the initial buffer? (Dun Peal, 2016 May 12)
|
||||||
|
|
||||||
@@ -556,11 +701,6 @@ Possibly include the needed code so that it can be build everywhere.
|
|||||||
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
|
Add a way to restart a timer. It's similar to timer_stop() and timer_start(),
|
||||||
but the reference remains valid.
|
but the reference remains valid.
|
||||||
|
|
||||||
Patch to add setbufline(). (email from Yasuhiro Matsumoto, patch by Ozaki
|
|
||||||
Kiichi, 2016 Feb 28)
|
|
||||||
Update Mar 8: https://gist.github.com/mattn/23c1f50999084992ca98
|
|
||||||
Update Mar 13: https://gist.github.com/mattn/23c1f50999084992ca98
|
|
||||||
|
|
||||||
Need to try out instructions in INSSTALLpc.txt about how to install all
|
Need to try out instructions in INSSTALLpc.txt about how to install all
|
||||||
interfaces and how to build Vim with them.
|
interfaces and how to build Vim with them.
|
||||||
Appveyor build with self-installing executable, includes getting most
|
Appveyor build with self-installing executable, includes getting most
|
||||||
@@ -673,8 +813,6 @@ Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)
|
|||||||
Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
|
Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
|
||||||
Only remembers one error.
|
Only remembers one error.
|
||||||
|
|
||||||
Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
|
|
||||||
|
|
||||||
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
|
Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
|
||||||
|
|
||||||
Unexpected delay when using CTRL-O u. It's not timeoutlen.
|
Unexpected delay when using CTRL-O u. It's not timeoutlen.
|
||||||
@@ -742,11 +880,6 @@ Patch to use two highlight groups for relative numbers. (Shaun Brady, 2016 Jan
|
|||||||
MS-Windows: Crash opening very long file name starting with "\\".
|
MS-Windows: Crash opening very long file name starting with "\\".
|
||||||
(Christian Brock, 2012 Jun 29)
|
(Christian Brock, 2012 Jun 29)
|
||||||
|
|
||||||
Using an external diff is inefficient. Not all systems have a good diff
|
|
||||||
program available (esp. MS-Windows). Would be nice to have in internal diff
|
|
||||||
implementation. Can then also use this for displaying changes within a line.
|
|
||||||
Olaf Dabrunz is working on this.
|
|
||||||
|
|
||||||
The OptionSet autocommand event is not always triggered. (Rick Howe, 2015 Sep
|
The OptionSet autocommand event is not always triggered. (Rick Howe, 2015 Sep
|
||||||
24): :diffthis, :diffoff.
|
24): :diffthis, :diffoff.
|
||||||
|
|
||||||
@@ -1020,9 +1153,6 @@ For the path use a hash instead of dir%dir%dir%name hash%name.
|
|||||||
Patch to add ":undorecover", get as much text out of the undo file as
|
Patch to add ":undorecover", get as much text out of the undo file as
|
||||||
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)
|
possible. (Christian Brabandt, 2014 Mar 12, update Aug 22)
|
||||||
|
|
||||||
Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
|
|
||||||
It can replace the BeOS code, which is likely not used anymore.
|
|
||||||
|
|
||||||
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
|
Updated spec ftplugin. (Matěj Cepl, 2013 Oct 16)
|
||||||
|
|
||||||
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
|
Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
|
||||||
@@ -1032,8 +1162,6 @@ Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
|
|||||||
Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
|
Patch to add "ntab" item in 'listchars' to repeat first character. (Nathaniel
|
||||||
Braun, pragm, 2013 Oct 13) A better solution 2014 Mar 5.
|
Braun, pragm, 2013 Oct 13) A better solution 2014 Mar 5.
|
||||||
|
|
||||||
/[b-a] gives error E16, should probably be E769.
|
|
||||||
|
|
||||||
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
7 Windows XP: When using "ClearType" for text smoothing, a column of yellow
|
||||||
pixels remains when typing spaces in front of a "D" ('guifont' set to
|
pixels remains when typing spaces in front of a "D" ('guifont' set to
|
||||||
"lucida_console:h8").
|
"lucida_console:h8").
|
||||||
@@ -1317,9 +1445,6 @@ Windows keys not set properly on Windows 7? (cncyber, 2010 Aug 26)
|
|||||||
When using a Vim server, a # in the path causes an error message.
|
When using a Vim server, a # in the path causes an error message.
|
||||||
(Jeff Lanzarotta, 2011 Feb 17)
|
(Jeff Lanzarotta, 2011 Feb 17)
|
||||||
|
|
||||||
Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben
|
|
||||||
Fritz (2011 Oct 27).
|
|
||||||
|
|
||||||
When there is a ">" in a line that "gq" wraps to the start of the next line,
|
When there is a ">" in a line that "gq" wraps to the start of the next line,
|
||||||
then the following line will pick it up as a leader. Should get the leader
|
then the following line will pick it up as a leader. Should get the leader
|
||||||
from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
|
from the first line, not a wrapped line. (Matt Ackeret, 2012 Feb 27)
|
||||||
@@ -1424,6 +1549,9 @@ GTK: tear-off menu does not work. (Kurt Sonnenmoser, 2010 Oct 25)
|
|||||||
Win32: tear-off menu does not work when menu language is German. (Markus
|
Win32: tear-off menu does not work when menu language is German. (Markus
|
||||||
Bossler, 2011 Mar 2) Fixed by 7.3.095?
|
Bossler, 2011 Mar 2) Fixed by 7.3.095?
|
||||||
|
|
||||||
|
Wish for NetBeans commands:
|
||||||
|
- make it possible to have 'defineAnnoType' also handle terminal colors.
|
||||||
|
|
||||||
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
|
Version of netbeans.c for use with MacVim. (Kazuki Sakamoto, 2010 Nov 18)
|
||||||
|
|
||||||
7.3.014 changed how backslash at end of line works, but still get a NUL when
|
7.3.014 changed how backslash at end of line works, but still get a NUL when
|
||||||
@@ -1444,9 +1572,6 @@ New esperanto spell file can't be processed. (Dominique Pelle, 2011 Jan 30)
|
|||||||
Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
|
Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
|
||||||
^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
|
^M is displayed as ^J sometimes. Getting 'ff' value from wrong window/buffer?
|
||||||
|
|
||||||
'colorcolumn' has higher priority than hlsearch. Should probably be the other
|
|
||||||
way around. (Nazri Ramliy, 2013 Feb 19)
|
|
||||||
|
|
||||||
When Vim is put in the background (SIGTSTP) and then gets a SIGHUP it doesn't
|
When Vim is put in the background (SIGTSTP) and then gets a SIGHUP it doesn't
|
||||||
exit. It exists as soon as back in the foreground. (Stephen Liang, 2011 Jan
|
exit. It exists as soon as back in the foreground. (Stephen Liang, 2011 Jan
|
||||||
9) Caused by vim_handle_signal(SIGNAL_BLOCK); in ui.c.
|
9) Caused by vim_handle_signal(SIGNAL_BLOCK); in ui.c.
|
||||||
@@ -1495,14 +1620,13 @@ setpos() does not restore cursor position after :normal. (Tyru, 2010 Aug 11)
|
|||||||
7 The 'directory' option supports changing path separators to "%" to make
|
7 The 'directory' option supports changing path separators to "%" to make
|
||||||
file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
|
file names unique, also support this for 'backupdir'. (Mikolaj Machowski)
|
||||||
Patch by Christian Brabandt, 2010 Oct 21.
|
Patch by Christian Brabandt, 2010 Oct 21.
|
||||||
|
Is this an update: related to: #179
|
||||||
|
https://github.com/chrisbra/vim-mq-patches/blob/master/backupdir
|
||||||
|
Fixed patch 2017 Jul 1.
|
||||||
|
|
||||||
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
|
With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott,
|
||||||
2010 Oct 24)
|
2010 Oct 24)
|
||||||
|
|
||||||
Patch to add random number generator. (Hong Xu, 2010 Nov 8, update Nov 10)
|
|
||||||
Alternative from Christian Brabandt. (2010 Sep 19)
|
|
||||||
New one from Yasuhiro Matsumoto, #1277.
|
|
||||||
|
|
||||||
Messages in message.txt are highlighted as examples.
|
Messages in message.txt are highlighted as examples.
|
||||||
|
|
||||||
When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
|
When using cp850 the NBSP (0xff) is not drawn correctly. (Brett Stahlman, 2010
|
||||||
@@ -2111,9 +2235,6 @@ with "gvim -nb:localhost:55555:foo". From nc do: '1:editFile!0 "foo"'. Then
|
|||||||
go to Insert mode and add a few lines. Then backspacing every other time
|
go to Insert mode and add a few lines. Then backspacing every other time
|
||||||
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
|
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
|
||||||
|
|
||||||
Windows installer should install 32-bit version of right-click handler also on
|
|
||||||
64-bit systems. (Brian Cunningham, 2011 Dec 28)
|
|
||||||
|
|
||||||
Windows installer could add a "open in new tab of existing Vim" menu entry.
|
Windows installer could add a "open in new tab of existing Vim" menu entry.
|
||||||
Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
|
Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
|
||||||
Just have two choices, always using one Vim and selecting between using an
|
Just have two choices, always using one Vim and selecting between using an
|
||||||
@@ -2442,13 +2563,6 @@ respond to selection requests. Invoking XtDisownSelection() before executing
|
|||||||
the shell doesn't help. Would require forking and doing a message loop, like
|
the shell doesn't help. Would require forking and doing a message loop, like
|
||||||
what happens for the GUI.
|
what happens for the GUI.
|
||||||
|
|
||||||
X11: Putting more than about 262040 characters of text on the clipboard and
|
|
||||||
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
|
|
||||||
clip_x11_request_selection_cb() is called with zero value and length.
|
|
||||||
Also: Get an error message from free() in the process that owns the selection.
|
|
||||||
Seems to happen when the selection is requested the second time, but before
|
|
||||||
clip_x11_convert_selection_cb() is invoked, thus in X library code.
|
|
||||||
|
|
||||||
":vimgrep" does not recognize a recursive symlink. Is it possible to detect
|
":vimgrep" does not recognize a recursive symlink. Is it possible to detect
|
||||||
this, at least for Unix (using device/inode)?
|
this, at least for Unix (using device/inode)?
|
||||||
|
|
||||||
@@ -3311,18 +3425,6 @@ Most interesting new features to be added when all bugs have been fixed:
|
|||||||
Alternative: Make a function for Ex commands: cmd_edit().
|
Alternative: Make a function for Ex commands: cmd_edit().
|
||||||
- Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
|
- Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd". Block
|
||||||
can be selected with CTRL-V. Allow '$' (end of line) for col2.
|
can be selected with CTRL-V. Allow '$' (end of line) for col2.
|
||||||
- Add DEBUGGER INTERFACE. Implementation for gdb by Xavier de Gaye.
|
|
||||||
Should work like an IDE. Try to keep it generic. Now found here:
|
|
||||||
http://clewn.sf.net.
|
|
||||||
And the idevim plugin/script.
|
|
||||||
To be able to start the debugger from inside Vim: For GUI run a program
|
|
||||||
with a netbeans connection; for console: start a program that splits the
|
|
||||||
terminal, runs the debugger in one window and reconnect Vim I/O to the
|
|
||||||
other window.
|
|
||||||
Wishes for NetBeans commands:
|
|
||||||
- make it possible to have 'defineAnnoType' also handle terminal colors.
|
|
||||||
- send 'balloonText' events for the cursor position (using CursorHold ?)
|
|
||||||
in terminal mode.
|
|
||||||
- ECLIPSE plugin. Problem is: the interface is very complicated. Need to
|
- ECLIPSE plugin. Problem is: the interface is very complicated. Need to
|
||||||
implement part in Java and then connect to Vim. Some hints from Alexandru
|
implement part in Java and then connect to Vim. Some hints from Alexandru
|
||||||
Roman, 2004 Dec 15. Should then also work with Oracle Jdeveloper, see JSR
|
Roman, 2004 Dec 15. Should then also work with Oracle Jdeveloper, see JSR
|
||||||
@@ -3335,9 +3437,6 @@ Most interesting new features to be added when all bugs have been fixed:
|
|||||||
scrolls back to where the cursor is.
|
scrolls back to where the cursor is.
|
||||||
- Scroll commands by screen line. g CTRL-E and g CTRL-Y ? Requires the
|
- Scroll commands by screen line. g CTRL-E and g CTRL-Y ? Requires the
|
||||||
first line to be able to start halfway.
|
first line to be able to start halfway.
|
||||||
- Running a shell command from the GUI still has limitations. Look into how
|
|
||||||
the terminal emulator of the Vim shell project can help:
|
|
||||||
http://vimshell.wana.at
|
|
||||||
8 Add a command to jump to a certain kind of tag. Allow the user to specify
|
8 Add a command to jump to a certain kind of tag. Allow the user to specify
|
||||||
values for the optional fields. E.g., ":tag size type=m".
|
values for the optional fields. E.g., ":tag size type=m".
|
||||||
Also allow specifying the file and command, so that the result of
|
Also allow specifying the file and command, so that the result of
|
||||||
@@ -3526,9 +3625,6 @@ Spell checking:
|
|||||||
Diff mode:
|
Diff mode:
|
||||||
9 When making small changes, e.g. deleting a character, update the diff.
|
9 When making small changes, e.g. deleting a character, update the diff.
|
||||||
Possibly without running diff.
|
Possibly without running diff.
|
||||||
9 Instead invoking an external diff program, use builtin code. One can be
|
|
||||||
found here: http://www.ioplex.com/~miallen/libmba/dl/src/diff.c
|
|
||||||
It's quite big and badly documented though.
|
|
||||||
8 Also show difference with the file when editing started? Should show what
|
8 Also show difference with the file when editing started? Should show what
|
||||||
can be undone. (Tom Popovich)
|
can be undone. (Tom Popovich)
|
||||||
|
|
||||||
@@ -3643,7 +3739,7 @@ Multi-byte characters:
|
|||||||
at a multi-byte character >= 0x100.
|
at a multi-byte character >= 0x100.
|
||||||
- Add the possibility to enter mappings which are used whenever normal text
|
- 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
|
could be entered. E.g., for "f" command. But not in Normal mode. Sort
|
||||||
of opposite of 'langmap'. Use ":tmap" command?
|
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 multi-byte characters into
|
||||||
account. The "linebreak" program from Bruno Haible can do it:
|
account. The "linebreak" program from Bruno Haible can do it:
|
||||||
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz
|
||||||
@@ -5615,11 +5711,11 @@ Various improvements:
|
|||||||
- Support %name% expansion for "gf" on Windows.
|
- Support %name% expansion for "gf" on Windows.
|
||||||
- Make "gf" work on "file://c:/path/name". "file:/c:/" and "file:///c:/"
|
- Make "gf" work on "file://c:/path/name". "file:/c:/" and "file:///c:/"
|
||||||
should also work?
|
should also work?
|
||||||
- Add 'urlpath', used like 'path' for when "gf" used on an URL?
|
- Add 'urlpath', used like 'path' for when "gf" used on a URL?
|
||||||
8 When using "gf" on an absolute file name, while editing a remote file
|
8 When using "gf" on an absolute file name, while editing a remote file
|
||||||
(starts with scp:// or http://) should prepend the method and machine
|
(starts with scp:// or http://) should prepend the method and machine
|
||||||
name.
|
name.
|
||||||
- When finding an URL or file name, and it doesn't exist, try removing a
|
- When finding a URL or file name, and it doesn't exist, try removing a
|
||||||
trailing '.'.
|
trailing '.'.
|
||||||
- Add ":path" command modifier. Should work for every command that takes a
|
- Add ":path" command modifier. Should work for every command that takes a
|
||||||
file name argument, to search for the file name in 'path'. Use
|
file name argument, to search for the file name in 'path'. Use
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_01.txt* For Vim version 8.0. Last change: 2010 Nov 03
|
*usr_01.txt* For Vim version 8.0. Last change: 2017 Jul 15
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -140,19 +140,19 @@ On other systems, you have to do a little work:
|
|||||||
|
|
||||||
1. Copy the tutor file. You can do this with Vim (it knows where to find it):
|
1. Copy the tutor file. You can do this with Vim (it knows where to find it):
|
||||||
>
|
>
|
||||||
vim -u NONE -c 'e $VIMRUNTIME/tutor/tutor' -c 'w! TUTORCOPY' -c 'q'
|
vim --clean -c 'e $VIMRUNTIME/tutor/tutor' -c 'w! TUTORCOPY' -c 'q'
|
||||||
<
|
<
|
||||||
This will write the file "TUTORCOPY" in the current directory. To use a
|
This will write the file "TUTORCOPY" in the current directory. To use a
|
||||||
translated version of the tutor, append the two-letter language code to the
|
translated version of the tutor, append the two-letter language code to the
|
||||||
filename. For French:
|
filename. For French:
|
||||||
>
|
>
|
||||||
vim -u NONE -c 'e $VIMRUNTIME/tutor/tutor.fr' -c 'w! TUTORCOPY' -c 'q'
|
vim --clean -c 'e $VIMRUNTIME/tutor/tutor.fr' -c 'w! TUTORCOPY' -c 'q'
|
||||||
<
|
<
|
||||||
2. Edit the copied file with Vim:
|
2. Edit the copied file with Vim:
|
||||||
>
|
>
|
||||||
vim -u NONE -c "set nocp" TUTORCOPY
|
vim --clean TUTORCOPY
|
||||||
<
|
<
|
||||||
The extra arguments make sure Vim is started in a good mood.
|
The --clean argument makes sure Vim is started with nice defaults.
|
||||||
|
|
||||||
3. Delete the copied file when you are finished with it:
|
3. Delete the copied file when you are finished with it:
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_03.txt* For Vim version 8.0. Last change: 2016 Jan 05
|
*usr_03.txt* For Vim version 8.0. Last change: 2017 Jul 21
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -352,7 +352,7 @@ The "?" command works like "/" but searches backwards: >
|
|||||||
?word
|
?word
|
||||||
|
|
||||||
The "N" command repeats the last search the opposite direction. Thus using
|
The "N" command repeats the last search the opposite direction. Thus using
|
||||||
"N" after a "/" command search backwards, using "N" after "?" searches
|
"N" after a "/" command searches backwards, using "N" after "?" searches
|
||||||
forward.
|
forward.
|
||||||
|
|
||||||
|
|
||||||
@@ -512,7 +512,7 @@ only if it is at the beginning of a line.
|
|||||||
The $ character matches the end of a line. Therefore, "was$" matches the
|
The $ character matches the end of a line. Therefore, "was$" matches the
|
||||||
word was only if it is at the end of a line.
|
word was only if it is at the end of a line.
|
||||||
|
|
||||||
Let's mark the places where "the" matches in this example line with "x"s:
|
Let's mark the places where "/the" matches in this example line with "x"s:
|
||||||
|
|
||||||
the solder holding one of the chips melted and the ~
|
the solder holding one of the chips melted and the ~
|
||||||
xxx xxx xxx
|
xxx xxx xxx
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_07.txt* For Vim version 8.0. Last change: 2006 Apr 24
|
*usr_07.txt* For Vim version 8.0. Last change: 2017 Sep 18
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -215,14 +215,14 @@ change: >
|
|||||||
|
|
||||||
`.
|
`.
|
||||||
|
|
||||||
Suppose you are editing the file "one.txt". Somewhere halfway the file you
|
Suppose you are editing the file "one.txt". Somewhere halfway through the
|
||||||
use "x" to delete a character. Then you go to the last line with "G" and
|
file you use "x" to delete a character. Then you go to the last line with "G"
|
||||||
write the file with ":w". You edit several other files, and then use ":edit
|
and write the file with ":w". You edit several other files, and then use
|
||||||
one.txt" to come back to "one.txt". If you now use `" Vim jumps to the last
|
":edit one.txt" to come back to "one.txt". If you now use `" Vim jumps to the
|
||||||
line of the file. Using `. takes you to the position where you deleted the
|
last line of the file. Using `. takes you to the position where you deleted
|
||||||
character. Even when you move around in the file `" and `. will take you to
|
the character. Even when you move around in the file `" and `. will take you
|
||||||
the remembered position. At least until you make another change or leave the
|
to the remembered position. At least until you make another change or leave
|
||||||
file.
|
the file.
|
||||||
|
|
||||||
|
|
||||||
FILE MARKS
|
FILE MARKS
|
||||||
@@ -233,8 +233,8 @@ another file and place marks there, these are specific for that file. Thus
|
|||||||
each file has its own set of marks, they are local to the file.
|
each file has its own set of marks, they are local to the file.
|
||||||
So far we were using marks with a lowercase letter. There are also marks
|
So far we were using marks with a lowercase letter. There are also marks
|
||||||
with an uppercase letter. These are global, they can be used from any file.
|
with an uppercase letter. These are global, they can be used from any file.
|
||||||
For example suppose that we are editing the file "foo.txt". Go to halfway the
|
For example suppose that we are editing the file "foo.txt". Go to halfway
|
||||||
file ("50%") and place the F mark there (F for foo): >
|
down the file ("50%") and place the F mark there (F for foo): >
|
||||||
|
|
||||||
50%mF
|
50%mF
|
||||||
|
|
||||||
@@ -355,7 +355,7 @@ a sentence to the f register (f for First): >
|
|||||||
"fyas
|
"fyas
|
||||||
|
|
||||||
The "yas" command yanks a sentence like before. It's the "f that tells Vim
|
The "yas" command yanks a sentence like before. It's the "f that tells Vim
|
||||||
the text should be place in the f register. This must come just before the
|
the text should be placed in the f register. This must come just before the
|
||||||
yank command.
|
yank command.
|
||||||
Now yank three whole lines to the l register (l for line): >
|
Now yank three whole lines to the l register (l for line): >
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_08.txt* For Vim version 8.0. Last change: 2014 Jul 06
|
*usr_08.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ top one:
|
|||||||
+----------------------------------+
|
+----------------------------------+
|
||||||
|
|
||||||
What you see here is two windows on the same file. The line with "====" is
|
What you see here is two windows on the same file. The line with "====" is
|
||||||
that status line. It displays information about the window above it. (In
|
the status line. It displays information about the window above it. (In
|
||||||
practice the status line will be in reverse video.)
|
practice the status line will be in reverse video.)
|
||||||
The two windows allow you to view two parts of the same file. For example,
|
The two windows allow you to view two parts of the same file. For example,
|
||||||
you could make the top window show the variable declarations of a program, and
|
you could make the top window show the variable declarations of a program, and
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_09.txt* For Vim version 8.0. Last change: 2006 Apr 24
|
*usr_09.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ THE WINDOW TITLE
|
|||||||
At the very top is the window title. This is drawn by your window system.
|
At the very top is the window title. This is drawn by your window system.
|
||||||
Vim will set the title to show the name of the current file. First comes the
|
Vim will set the title to show the name of the current file. First comes the
|
||||||
name of the file. Then some special characters and the directory of the file
|
name of the file. Then some special characters and the directory of the file
|
||||||
in parens. These special character can be present:
|
in parens. These special characters can be present:
|
||||||
|
|
||||||
- The file cannot be modified (e.g., a help file)
|
- The file cannot be modified (e.g., a help file)
|
||||||
+ The file contains changes
|
+ The file contains changes
|
||||||
@@ -206,7 +206,7 @@ the "real clipboard" are called clipboard, you'll have to get used to that.
|
|||||||
To put text on the real clipboard, select a few different words in one of
|
To put text on the real clipboard, select a few different words in one of
|
||||||
the gVims you have running. Then use the Edit/Copy menu entry. Now the text
|
the gVims you have running. Then use the Edit/Copy menu entry. Now the text
|
||||||
has been copied to the real clipboard. You can't see this, unless you have
|
has been copied to the real clipboard. You can't see this, unless you have
|
||||||
some application that shows the clipboard contents (e.g., KDE's klipper).
|
some application that shows the clipboard contents (e.g., KDE's Klipper).
|
||||||
Now select the other gVim, position the cursor somewhere and use the
|
Now select the other gVim, position the cursor somewhere and use the
|
||||||
Edit/Paste menu. You will see the text from the real clipboard is inserted.
|
Edit/Paste menu. You will see the text from the real clipboard is inserted.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_12.txt* For Vim version 8.0. Last change: 2007 May 11
|
*usr_12.txt* For Vim version 8.0. Last change: 2017 Aug 11
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -290,7 +290,7 @@ command: >
|
|||||||
The line range "%" is used, thus this works on the whole file. The pattern
|
The line range "%" is used, thus this works on the whole file. The pattern
|
||||||
that the ":substitute" command matches with is "\s\+$". This finds white
|
that the ":substitute" command matches with is "\s\+$". This finds white
|
||||||
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
|
space characters (\s), 1 or more of them (\+), before the end-of-line ($).
|
||||||
Later will be explained how you write patterns like this |usr_27.txt|.
|
Later will be explained how you write patterns like this, see |usr_27.txt|.
|
||||||
The "to" part of the substitute command is empty: "//". Thus it replaces
|
The "to" part of the substitute command is empty: "//". Thus it replaces
|
||||||
with nothing, effectively deleting the matched white space.
|
with nothing, effectively deleting the matched white space.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*usr_41.txt* For Vim version 8.0. Last change: 2017 Mar 28
|
*usr_41.txt* For Vim version 8.0. Last change: 2017 Aug 22
|
||||||
|
|
||||||
VIM USER MANUAL - by Bram Moolenaar
|
VIM USER MANUAL - by Bram Moolenaar
|
||||||
|
|
||||||
@@ -966,6 +966,23 @@ Jobs: *job-functions*
|
|||||||
job_info() get information about a job
|
job_info() get information about a job
|
||||||
job_setoptions() set options for a job
|
job_setoptions() set options for a job
|
||||||
|
|
||||||
|
Terminal window: *terminal-functions*
|
||||||
|
term_start() open a terminal window and run a job
|
||||||
|
term_list() get the list of terminal buffers
|
||||||
|
term_sendkeys() send keystrokes to a terminal
|
||||||
|
term_wait() wait for screen to be updated
|
||||||
|
term_getjob() get the job associated with a terminal
|
||||||
|
term_scrape() get row of a terminal screen
|
||||||
|
term_getline() get a line of text from a terminal
|
||||||
|
term_getattr() get the value of attribute {what}
|
||||||
|
term_getcursor() get the cursor position of a terminal
|
||||||
|
term_getscrolled() get the scroll count of a terminal
|
||||||
|
term_getaltscreen() get the alternate screen flag
|
||||||
|
term_getsize() get the size of a terminal
|
||||||
|
term_getstatus() get the status of a terminal
|
||||||
|
term_gettitle() get the title of a terminal
|
||||||
|
term_gettty() get the tty name of a terminal
|
||||||
|
|
||||||
Timers: *timer-functions*
|
Timers: *timer-functions*
|
||||||
timer_start() create a timer
|
timer_start() create a timer
|
||||||
timer_pause() pause or unpause a timer
|
timer_pause() pause or unpause a timer
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*various.txt* For Vim version 8.0. Last change: 2017 Feb 24
|
*various.txt* For Vim version 8.0. Last change: 2017 Sep 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -322,7 +322,7 @@ N *+cindent* |'cindent'|, C indenting
|
|||||||
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
|
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
|
||||||
*+clipboard* |clipboard| support
|
*+clipboard* |clipboard| support
|
||||||
N *+cmdline_compl* command line completion |cmdline-completion|
|
N *+cmdline_compl* command line completion |cmdline-completion|
|
||||||
N *+cmdline_hist* command line history |cmdline-history|
|
S *+cmdline_hist* command line history |cmdline-history|
|
||||||
N *+cmdline_info* |'showcmd'| and |'ruler'|
|
N *+cmdline_info* |'showcmd'| and |'ruler'|
|
||||||
N *+comments* |'comments'| support
|
N *+comments* |'comments'| support
|
||||||
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
|
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
|
||||||
@@ -361,7 +361,7 @@ m *+hangul_input* Hangul input support |hangul|
|
|||||||
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
|
*+iconv/dyn* Likewise |iconv-dynamic| |/dyn|
|
||||||
N *+insert_expand* |insert_expand| Insert mode completion
|
N *+insert_expand* |insert_expand| Insert mode completion
|
||||||
m *+job* starting and stopping jobs |job|
|
m *+job* starting and stopping jobs |job|
|
||||||
N *+jumplist* |jumplist|
|
S *+jumplist* |jumplist|
|
||||||
B *+keymap* |'keymap'|
|
B *+keymap* |'keymap'|
|
||||||
N *+lambda* |lambda| and |closure|
|
N *+lambda* |lambda| and |closure|
|
||||||
B *+langmap* |'langmap'|
|
B *+langmap* |'langmap'|
|
||||||
@@ -427,6 +427,7 @@ N *+tag_old_static* old method for static tags |tag-old-static|
|
|||||||
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
|
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
|
||||||
m *+tcl* Tcl interface |tcl|
|
m *+tcl* Tcl interface |tcl|
|
||||||
m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
|
m *+tcl/dyn* Tcl interface |tcl-dynamic| |/dyn|
|
||||||
|
m *+terminal* Support for terminal window |terminal|
|
||||||
*+terminfo* uses |terminfo| instead of termcap
|
*+terminfo* uses |terminfo| instead of termcap
|
||||||
N *+termresponse* support for |t_RV| and |v:termresponse|
|
N *+termresponse* support for |t_RV| and |v:termresponse|
|
||||||
B *+termguicolors* 24-bit color in xterm-compatible terminals support
|
B *+termguicolors* 24-bit color in xterm-compatible terminals support
|
||||||
@@ -437,14 +438,16 @@ N *+title* Setting the window 'title' and 'icon'
|
|||||||
N *+toolbar* |gui-toolbar|
|
N *+toolbar* |gui-toolbar|
|
||||||
N *+user_commands* User-defined commands. |user-commands|
|
N *+user_commands* User-defined commands. |user-commands|
|
||||||
N *+viminfo* |'viminfo'|
|
N *+viminfo* |'viminfo'|
|
||||||
N *+vertsplit* Vertically split windows |:vsplit|
|
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
|
||||||
|
since 8.0.1118.
|
||||||
|
in sync with the |+windows| feature
|
||||||
N *+virtualedit* |'virtualedit'|
|
N *+virtualedit* |'virtualedit'|
|
||||||
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
|
||||||
N *+visualextra* extra Visual mode commands |blockwise-operators|
|
N *+visualextra* extra Visual mode commands |blockwise-operators|
|
||||||
N *+vreplace* |gR| and |gr|
|
N *+vreplace* |gR| and |gr|
|
||||||
N *+wildignore* |'wildignore'|
|
N *+wildignore* |'wildignore'|
|
||||||
N *+wildmenu* |'wildmenu'|
|
N *+wildmenu* |'wildmenu'|
|
||||||
S *+windows* more than one window
|
*+windows* more than one window; Always enabled sinde 8.0.1118.
|
||||||
m *+writebackup* |'writebackup'| is default on
|
m *+writebackup* |'writebackup'| is default on
|
||||||
m *+xim* X input method |xim|
|
m *+xim* X input method |xim|
|
||||||
*+xfontset* X fontset support |xfontset|
|
*+xfontset* X fontset support |xfontset|
|
||||||
|
|||||||
@@ -16827,7 +16827,7 @@ Patch 8.0.0388
|
|||||||
Problem: filtering lines through "cat", without changing the line count,
|
Problem: filtering lines through "cat", without changing the line count,
|
||||||
changes manual folds.
|
changes manual folds.
|
||||||
Solution: Change how marks and folds are adjusted. (Matthew Malcomson, from
|
Solution: Change how marks and folds are adjusted. (Matthew Malcomson, from
|
||||||
neovim #6194.
|
neovim #6194).
|
||||||
Files: src/fold.c, src/testdir/test_fold.vim
|
Files: src/fold.c, src/testdir/test_fold.vim
|
||||||
|
|
||||||
Patch 8.0.0389
|
Patch 8.0.0389
|
||||||
@@ -17499,7 +17499,7 @@ Files: src/evalfunc.c, src/if_xcmdsrv.c, src/proto/if_xcmdsrv.pro,
|
|||||||
|
|
||||||
Patch 8.0.0493
|
Patch 8.0.0493
|
||||||
Problem: Crash with cd command with very long argument.
|
Problem: Crash with cd command with very long argument.
|
||||||
Solution: Check for running out of space. (Dominique pending, closes #1576)
|
Solution: Check for running out of space. (Dominique Pelle, closes #1576)
|
||||||
Files: src/testdir/test_alot.vim, src/testdir/test_cd.vim, src/Makefile,
|
Files: src/testdir/test_alot.vim, src/testdir/test_cd.vim, src/Makefile,
|
||||||
src/misc2.c
|
src/misc2.c
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.TH VIM 1 "2006 Apr 11"
|
.TH VIM 1 "2006 Apr 11"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
vim \- Vi IMproved, a programmers text editor
|
vim \- Vi IMproved, a programmer's text editor
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.br
|
.br
|
||||||
.B vim
|
.B vim
|
||||||
@@ -325,7 +325,7 @@ You can still edit the buffer, but will be prevented from accidentally
|
|||||||
overwriting a file.
|
overwriting a file.
|
||||||
If you do want to overwrite a file, add an exclamation mark to the Ex command,
|
If you do want to overwrite a file, add an exclamation mark to the Ex command,
|
||||||
as in ":w!".
|
as in ":w!".
|
||||||
The \-R option also implies the \-n option (see below).
|
The \-R option also implies the \-n option (see above).
|
||||||
The 'readonly' option can be reset with ":set noro".
|
The 'readonly' option can be reset with ":set noro".
|
||||||
See ":help 'readonly'".
|
See ":help 'readonly'".
|
||||||
.TP
|
.TP
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ VIM(1) General Commands Manual VIM(1)
|
|||||||
|
|
||||||
|
|
||||||
NAME
|
NAME
|
||||||
vim - Vi IMproved, a programmers text editor
|
vim - Vi IMproved, a programmer's text editor
|
||||||
|
|
||||||
SYNOPSIS
|
SYNOPSIS
|
||||||
vim [options] [file ..]
|
vim [options] [file ..]
|
||||||
@@ -225,7 +225,7 @@ OPTIONS
|
|||||||
dentally overwriting a file. If you do want to overwrite a
|
dentally overwriting a file. If you do want to overwrite a
|
||||||
file, add an exclamation mark to the Ex command, as in
|
file, add an exclamation mark to the Ex command, as in
|
||||||
":w!". The -R option also implies the -n option (see
|
":w!". The -R option also implies the -n option (see
|
||||||
below). The 'readonly' option can be reset with ":set
|
above). The 'readonly' option can be reset with ":set
|
||||||
noro". See ":help 'readonly'".
|
noro". See ":help 'readonly'".
|
||||||
|
|
||||||
-r List swap files, with information about using them for
|
-r List swap files, with information about using them for
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*visual.txt* For Vim version 8.0. Last change: 2014 Mar 23
|
*visual.txt* For Vim version 8.0. Last change: 2017 Sep 02
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -314,8 +314,8 @@ Visual-block Insert *v_b_I*
|
|||||||
With a blockwise selection, I{string}<ESC> will insert {string} at the start
|
With a blockwise selection, I{string}<ESC> will insert {string} at the start
|
||||||
of block on every line of the block, provided that the line extends into the
|
of block on every line of the block, provided that the line extends into the
|
||||||
block. Thus lines that are short will remain unmodified. TABs are split to
|
block. Thus lines that are short will remain unmodified. TABs are split to
|
||||||
retain visual columns.
|
retain visual columns. Works only for adding text to a line, not for
|
||||||
See |v_b_I_example|.
|
deletions. See |v_b_I_example|.
|
||||||
|
|
||||||
Visual-block Append *v_b_A*
|
Visual-block Append *v_b_A*
|
||||||
With a blockwise selection, A{string}<ESC> will append {string} to the end of
|
With a blockwise selection, A{string}<ESC> will append {string} to the end of
|
||||||
@@ -331,6 +331,7 @@ See |v_b_A_example|.
|
|||||||
Note: "I" and "A" behave differently for lines that don't extend into the
|
Note: "I" and "A" behave differently for lines that don't extend into the
|
||||||
selected block. This was done intentionally, so that you can do it the way
|
selected block. This was done intentionally, so that you can do it the way
|
||||||
you want.
|
you want.
|
||||||
|
Works only for adding text to a line, not for deletions.
|
||||||
|
|
||||||
Visual-block change *v_b_c*
|
Visual-block change *v_b_c*
|
||||||
All selected text in the block will be replaced by the same text string. When
|
All selected text in the block will be replaced by the same text string. When
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*windows.txt* For Vim version 8.0. Last change: 2016 Dec 01
|
*windows.txt* For Vim version 8.0. Last change: 2017 Sep 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -222,6 +222,11 @@ CTRL-W ^ Does ":split #", split window in two and edit alternate file.
|
|||||||
When a count is given, it becomes ":split #N", split window
|
When a count is given, it becomes ":split #N", split window
|
||||||
and edit buffer N.
|
and edit buffer N.
|
||||||
|
|
||||||
|
*CTRL-W_:*
|
||||||
|
CTRL-W : Does the same as typing |:| : edit a command line. Useful in a
|
||||||
|
terminal window, where all Vim commands must be preceded with
|
||||||
|
CTRL-W or 'termkey'.
|
||||||
|
|
||||||
Note that the 'splitbelow' and 'splitright' options influence where a new
|
Note that the 'splitbelow' and 'splitright' options influence where a new
|
||||||
window will appear.
|
window will appear.
|
||||||
|
|
||||||
@@ -339,8 +344,9 @@ CTRL-W CTRL-C *CTRL-W_CTRL-C*
|
|||||||
*:hide*
|
*:hide*
|
||||||
:hid[e]
|
:hid[e]
|
||||||
:{count}hid[e]
|
:{count}hid[e]
|
||||||
Quit the current window, unless it is the last window on the
|
Without {count}: Quit the current window, unless it is the
|
||||||
screen. For {count} see |:quit| command.
|
last window on the screen.
|
||||||
|
If {count} is given quit the {count} window.
|
||||||
|
|
||||||
The buffer becomes hidden (unless there is another window
|
The buffer becomes hidden (unless there is another window
|
||||||
editing it or 'bufhidden' is "unload", "delete" or "wipe").
|
editing it or 'bufhidden' is "unload", "delete" or "wipe").
|
||||||
@@ -613,7 +619,8 @@ The minimal height and width of a window is set with 'winminheight' and
|
|||||||
41. :buffers list of buffers
|
41. :buffers list of buffers
|
||||||
|
|
||||||
The meaning of [N] depends on the command:
|
The meaning of [N] depends on the command:
|
||||||
[N] is number of buffers to go forward/backward on ?2, ?3, and ?4
|
[N] is the number of buffers to go forward/backward on 2/12/22/32,
|
||||||
|
3/13/23/33, and 4/14/24/34
|
||||||
[N] is an argument number, defaulting to current argument, for 1 and 21
|
[N] is an argument number, defaulting to current argument, for 1 and 21
|
||||||
[N] is a buffer number, defaulting to current buffer, for 11 and 31
|
[N] is a buffer number, defaulting to current buffer, for 11 and 31
|
||||||
[N] is a count for 19 and 39
|
[N] is a count for 19 and 39
|
||||||
@@ -1026,6 +1033,9 @@ list of buffers. |unlisted-buffer|
|
|||||||
displayed in a window |hidden-buffer|
|
displayed in a window |hidden-buffer|
|
||||||
- a buffer with 'modifiable' off
|
- a buffer with 'modifiable' off
|
||||||
= a readonly buffer
|
= a readonly buffer
|
||||||
|
R a terminal buffer with a running job
|
||||||
|
F a terminal buffer with a finished job
|
||||||
|
? a terminal buffer without a job: `:terminal NONE`
|
||||||
+ a modified buffer
|
+ a modified buffer
|
||||||
x a buffer with read errors
|
x a buffer with read errors
|
||||||
|
|
||||||
@@ -1272,6 +1282,9 @@ help Contains a help file. Will only be created with the |:help|
|
|||||||
and can't be changed. The 'buflisted' option will be reset
|
and can't be changed. The 'buflisted' option will be reset
|
||||||
for a help buffer.
|
for a help buffer.
|
||||||
|
|
||||||
|
terminal A terminal window buffer, see |terminal|. The contents cannot
|
||||||
|
be read or changed until the job ends.
|
||||||
|
|
||||||
directory Displays directory contents. Can be used by a file explorer
|
directory Displays directory contents. Can be used by a file explorer
|
||||||
plugin. The buffer is created with these settings: >
|
plugin. The buffer is created with these settings: >
|
||||||
:setlocal buftype=nowrite
|
:setlocal buftype=nowrite
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim script for Evim key bindings
|
" Vim script for Evim key bindings
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2016 Jul 24
|
" Last Change: 2017 Sep 20
|
||||||
|
|
||||||
" Don't use Vi-compatible mode.
|
" Don't use Vi-compatible mode.
|
||||||
set nocompatible
|
set nocompatible
|
||||||
@@ -67,8 +67,10 @@ endif " has("autocmd")
|
|||||||
"
|
"
|
||||||
" The matchit plugin makes the % command work better, but it is not backwards
|
" The matchit plugin makes the % command work better, but it is not backwards
|
||||||
" compatible.
|
" compatible.
|
||||||
|
" The ! means the package won't be loaded right away but when plugins are
|
||||||
|
" loaded during initialization.
|
||||||
if has('syntax') && has('eval')
|
if has('syntax') && has('eval')
|
||||||
packadd matchit
|
packadd! matchit
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" vim: set sw=2 :
|
" vim: set sw=2 :
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim support file to detect file types
|
" Vim support file to detect file types
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2017 Jun 04
|
" Last Change: 2017 Aug 11
|
||||||
|
|
||||||
" Listen very carefully, I will say this only once
|
" Listen very carefully, I will say this only once
|
||||||
if exists("did_load_filetypes")
|
if exists("did_load_filetypes")
|
||||||
@@ -48,6 +48,9 @@ func! s:StarSetf(ft)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Vim help file
|
||||||
|
au BufNewFile,BufRead $VIMRUNTIME/doc/*.txt setf help
|
||||||
|
|
||||||
" Abaqus or Trasys
|
" Abaqus or Trasys
|
||||||
au BufNewFile,BufRead *.inp call s:Check_inp()
|
au BufNewFile,BufRead *.inp call s:Check_inp()
|
||||||
|
|
||||||
@@ -632,7 +635,13 @@ au BufNewFile,BufRead dict.conf,.dictrc setf dictconf
|
|||||||
au BufNewFile,BufRead dictd.conf setf dictdconf
|
au BufNewFile,BufRead dictd.conf setf dictdconf
|
||||||
|
|
||||||
" Diff files
|
" Diff files
|
||||||
au BufNewFile,BufRead *.diff,*.rej,*.patch setf diff
|
au BufNewFile,BufRead *.diff,*.rej setf diff
|
||||||
|
au BufNewFile,BufRead *.patch
|
||||||
|
\ if getline(1) =~ '^From [0-9a-f]\{40\} Mon Sep 17 00:00:00 2001$' |
|
||||||
|
\ setf gitsendemail |
|
||||||
|
\ else |
|
||||||
|
\ setf diff |
|
||||||
|
\ endif
|
||||||
|
|
||||||
" Dircolors
|
" Dircolors
|
||||||
au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors
|
au BufNewFile,BufRead .dir_colors,.dircolors,*/etc/DIR_COLORS setf dircolors
|
||||||
@@ -801,6 +810,7 @@ if !empty($XDG_CONFIG_HOME)
|
|||||||
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
|
au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig
|
||||||
endif
|
endif
|
||||||
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
au BufNewFile,BufRead git-rebase-todo setf gitrebase
|
||||||
|
au BufRead,BufNewFile .gitsendemail.msg.?????? setf gitsendemail
|
||||||
au BufNewFile,BufRead .msg.[0-9]*
|
au BufNewFile,BufRead .msg.[0-9]*
|
||||||
\ if getline(1) =~ '^From.*# This line is ignored.$' |
|
\ if getline(1) =~ '^From.*# This line is ignored.$' |
|
||||||
\ setf gitsendemail |
|
\ setf gitsendemail |
|
||||||
@@ -1017,7 +1027,7 @@ au BufNewFile,BufRead *.java,*.jav setf java
|
|||||||
au BufNewFile,BufRead *.jj,*.jjt setf javacc
|
au BufNewFile,BufRead *.jj,*.jjt setf javacc
|
||||||
|
|
||||||
" JavaScript, ECMAScript
|
" JavaScript, ECMAScript
|
||||||
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx setf javascript
|
au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.mjs setf javascript
|
||||||
|
|
||||||
" Java Server Pages
|
" Java Server Pages
|
||||||
au BufNewFile,BufRead *.jsp setf jsp
|
au BufNewFile,BufRead *.jsp setf jsp
|
||||||
@@ -1332,6 +1342,9 @@ au BufNewFile,BufRead *.mush setf mush
|
|||||||
" Mutt setup file (also for Muttng)
|
" Mutt setup file (also for Muttng)
|
||||||
au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
|
au BufNewFile,BufRead Mutt{ng,}rc setf muttrc
|
||||||
|
|
||||||
|
" N1QL
|
||||||
|
au BufRead,BufNewfile *.n1ql,*.nql setf n1ql
|
||||||
|
|
||||||
" Nano
|
" Nano
|
||||||
au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
|
au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc
|
||||||
|
|
||||||
@@ -2253,8 +2266,12 @@ func! s:FTtex()
|
|||||||
let format = tolower(matchstr(firstline, '\a\+'))
|
let format = tolower(matchstr(firstline, '\a\+'))
|
||||||
let format = substitute(format, 'pdf', '', '')
|
let format = substitute(format, 'pdf', '', '')
|
||||||
if format == 'tex'
|
if format == 'tex'
|
||||||
|
let format = 'latex'
|
||||||
|
elseif format == 'plaintex'
|
||||||
let format = 'plain'
|
let format = 'plain'
|
||||||
endif
|
endif
|
||||||
|
elseif expand('%') =~ 'tex/context/.*/.*.tex'
|
||||||
|
let format = 'context'
|
||||||
else
|
else
|
||||||
" Default value, may be changed later:
|
" Default value, may be changed later:
|
||||||
let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
|
let format = exists("g:tex_flavor") ? g:tex_flavor : 'plain'
|
||||||
@@ -2296,7 +2313,7 @@ func! s:FTtex()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" ConTeXt
|
" ConTeXt
|
||||||
au BufNewFile,BufRead tex/context/*/*.tex,*.mkii,*.mkiv,*.mkvi setf context
|
au BufNewFile,BufRead *.mkii,*.mkiv,*.mkvi setf context
|
||||||
|
|
||||||
" Texinfo
|
" Texinfo
|
||||||
au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
|
au BufNewFile,BufRead *.texinfo,*.texi,*.txi setf texinfo
|
||||||
@@ -2784,7 +2801,13 @@ au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
|
|||||||
|
|
||||||
" Plain text files, needs to be far down to not override others. This avoids
|
" Plain text files, needs to be far down to not override others. This avoids
|
||||||
" the "conf" type being used if there is a line starting with '#'.
|
" the "conf" type being used if there is a line starting with '#'.
|
||||||
au BufNewFile,BufRead *.txt,*.text,README setf text
|
au BufNewFile,BufRead *.text,README setf text
|
||||||
|
|
||||||
|
" Help files match *.txt but should have a last line that is a modeline.
|
||||||
|
au BufNewFile,BufRead *.txt
|
||||||
|
\ if getline('$') !~ 'vim:.*ft=help'
|
||||||
|
\| setf text
|
||||||
|
\| endif
|
||||||
|
|
||||||
|
|
||||||
" Use the filetype detect plugins. They may overrule any of the previously
|
" Use the filetype detect plugins. They may overrule any of the previously
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||||
" Homepage: http://github.com/vim-perl/vim-perl
|
" Homepage: http://github.com/vim-perl/vim-perl
|
||||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||||
" Last Change: 2013-07-21
|
" Last Change: 2015-02-09
|
||||||
|
|
||||||
if exists("b:did_ftplugin") | finish | endif
|
if exists("b:did_ftplugin") | finish | endif
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
@@ -33,14 +33,14 @@ endif
|
|||||||
setlocal include=\\<\\(use\\\|require\\)\\>
|
setlocal include=\\<\\(use\\\|require\\)\\>
|
||||||
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
|
setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
|
||||||
setlocal define=[^A-Za-z_]
|
setlocal define=[^A-Za-z_]
|
||||||
|
setlocal iskeyword+=:
|
||||||
|
|
||||||
" The following line changes a global variable but is necessary to make
|
" The following line changes a global variable but is necessary to make
|
||||||
" gf and similar commands work. The change to iskeyword was incorrect.
|
" gf and similar commands work. Thanks to Andrew Pimlott for pointing
|
||||||
" Thanks to Andrew Pimlott for pointing out the problem. If this causes a
|
" out the problem. If this causes a problem for you, add an
|
||||||
" problem for you, add an after/ftplugin/perl.vim file that contains
|
" after/ftplugin/perl.vim file that contains
|
||||||
" set isfname-=:
|
" set isfname-=:
|
||||||
set isfname+=:
|
set isfname+=:
|
||||||
set iskeyword+=:
|
|
||||||
|
|
||||||
" Set this once, globally.
|
" Set this once, globally.
|
||||||
if !exists("perlpath")
|
if !exists("perlpath")
|
||||||
@@ -77,11 +77,12 @@ endif
|
|||||||
"---------------------------------------------
|
"---------------------------------------------
|
||||||
|
|
||||||
" Undo the stuff we changed.
|
" Undo the stuff we changed.
|
||||||
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
|
let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" .
|
||||||
\ " | unlet! b:browsefilter"
|
\ " | unlet! b:browsefilter"
|
||||||
|
|
||||||
" proper matching for matchit plugin
|
" proper matching for matchit plugin
|
||||||
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
|
let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
|
||||||
|
let b:match_words = '\<if\>:\<elsif\>:\<else\>'
|
||||||
|
|
||||||
" Restore the saved compatibility options.
|
" Restore the saved compatibility options.
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
" Vim filetype plugin file
|
" Vim filetype plugin file
|
||||||
" Language: Verilog HDL
|
" Language: Verilog HDL
|
||||||
" Maintainer: Chih-Tsun Huang <cthuang@larc.ee.nthu.edu.tw>
|
" Maintainer: Chih-Tsun Huang <cthuang@cs.nthu.edu.tw>
|
||||||
" Last Change: Wed Sep 3 15:24:49 CST 2008
|
" Last Change: 2017 Aug 25 by Chih-Tsun Huang
|
||||||
" URL: http://larc.ee.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
|
" URL: http://www.cs.nthu.edu.tw/~cthuang/vim/ftplugin/verilog.vim
|
||||||
|
"
|
||||||
|
" Credits:
|
||||||
|
" Suggestions for improvement, bug reports by
|
||||||
|
" Shao <shaominghai2005@163.com>
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
@@ -45,11 +49,16 @@ if exists("loaded_matchit")
|
|||||||
\ '\<begin\>:\<end\>,' .
|
\ '\<begin\>:\<end\>,' .
|
||||||
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
|
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
|
||||||
\ '\<module\>:\<endmodule\>,' .
|
\ '\<module\>:\<endmodule\>,' .
|
||||||
\ '\<if\>:\<else\>,' .
|
\ '\<if\>:`\@<!\<else\>,' .
|
||||||
\ '\<function\>:\<endfunction\>,' .
|
\ '\<function\>:\<endfunction\>,' .
|
||||||
\ '`ifdef\>:`else\>:`endif\>,' .
|
\ '`ifn\?def\>:`elsif\>:`else\>:`endif\>,' .
|
||||||
\ '\<task\>:\<endtask\>,' .
|
\ '\<task\>:\<endtask\>,' .
|
||||||
\ '\<specify\>:\<endspecify\>'
|
\ '\<specify\>:\<endspecify\>,' .
|
||||||
|
\ '\<config\>:\<endconfig\>,' .
|
||||||
|
\ '\<generate\>:\<endgenerate\>,' .
|
||||||
|
\ '\<fork\>:\<join\>,' .
|
||||||
|
\ '\<primitive\>:\<endprimitive\>,' .
|
||||||
|
\ '\<table\>:\<endtable\>'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Reset 'cpoptions' back to the user's setting
|
" Reset 'cpoptions' back to the user's setting
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
" Vim filetype plugin file
|
" Vim filetype plugin file
|
||||||
" Language: Zsh shell script
|
" Language: Zsh shell script
|
||||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||||
" Latest Revision: 2015-05-29
|
" Latest Revision: 2015-05-29
|
||||||
" License: Vim (see :h license)
|
" License: Vim (see :h license)
|
||||||
" Repository: https://github.com/chrisbra/vim-zsh
|
" Repository: https://github.com/chrisbra/vim-zsh
|
||||||
|
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
finish
|
finish
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ function s:MainBlockIndent (prev_indent, prev_lnum, blockstart, stop_at)
|
|||||||
endwhile
|
endwhile
|
||||||
endwhile
|
endwhile
|
||||||
" Fallback - just move back one
|
" Fallback - just move back one
|
||||||
return a:prev_indent - &sw
|
return a:prev_indent - shiftwidth()
|
||||||
endfunction MainBlockIndent
|
endfunction MainBlockIndent
|
||||||
|
|
||||||
" Section: s:EndBlockIndent {{{1
|
" Section: s:EndBlockIndent {{{1
|
||||||
@@ -131,7 +131,7 @@ function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
|
|||||||
endwhile
|
endwhile
|
||||||
endwhile
|
endwhile
|
||||||
" Fallback - just move back one
|
" Fallback - just move back one
|
||||||
return a:prev_indent - &sw
|
return a:prev_indent - shiftwidth()
|
||||||
endfunction EndBlockIndent
|
endfunction EndBlockIndent
|
||||||
|
|
||||||
" Section: s:StatementIndent {{{1
|
" Section: s:StatementIndent {{{1
|
||||||
@@ -213,15 +213,15 @@ function GetAdaIndent()
|
|||||||
endif
|
endif
|
||||||
" Move indent in
|
" Move indent in
|
||||||
if ! false_match
|
if ! false_match
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(case\|exception\)\>'
|
elseif line =~ '^\s*\(case\|exception\)\>'
|
||||||
" Move indent in twice (next 'when' will move back)
|
" Move indent in twice (next 'when' will move back)
|
||||||
let ind = ind + 2 * &sw
|
let ind = ind + 2 * shiftwidth()
|
||||||
elseif line =~ '^\s*end\s*record\>'
|
elseif line =~ '^\s*end\s*record\>'
|
||||||
" Move indent back to tallying 'type' preceeding the 'record'.
|
" Move indent back to tallying 'type' preceeding the 'record'.
|
||||||
" Allow indent to be equal to 'end record's.
|
" Allow indent to be equal to 'end record's.
|
||||||
let ind = s:MainBlockIndent( ind+&sw, lnum, 'type\>', '' )
|
let ind = s:MainBlockIndent( ind+shiftwidth(), lnum, 'type\>', '' )
|
||||||
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
|
elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
|
||||||
" Revert to indent of line that started this parenthesis pair
|
" Revert to indent of line that started this parenthesis pair
|
||||||
exe lnum
|
exe lnum
|
||||||
@@ -235,10 +235,10 @@ function GetAdaIndent()
|
|||||||
exe v:lnum
|
exe v:lnum
|
||||||
elseif line =~ '[.=(]\s*$'
|
elseif line =~ '[.=(]\s*$'
|
||||||
" A statement continuation - move in one
|
" A statement continuation - move in one
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
elseif line =~ '^\s*new\>'
|
elseif line =~ '^\s*new\>'
|
||||||
" Multiple line generic instantiation ('package blah is\nnew thingy')
|
" Multiple line generic instantiation ('package blah is\nnew thingy')
|
||||||
let ind = s:StatementIndent( ind - &sw, lnum )
|
let ind = s:StatementIndent( ind - shiftwidth(), lnum )
|
||||||
elseif line =~ ';\s*$'
|
elseif line =~ ';\s*$'
|
||||||
" Statement end (but not 'end' ) - try to find current statement-start indent
|
" Statement end (but not 'end' ) - try to find current statement-start indent
|
||||||
let ind = s:StatementIndent( ind, lnum )
|
let ind = s:StatementIndent( ind, lnum )
|
||||||
@@ -256,17 +256,17 @@ function GetAdaIndent()
|
|||||||
elseif continuation && line =~ '^\s*('
|
elseif continuation && line =~ '^\s*('
|
||||||
" Don't do this if we've already indented due to the previous line
|
" Don't do this if we've already indented due to the previous line
|
||||||
if ind == initind
|
if ind == initind
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(begin\|is\)\>'
|
elseif line =~ '^\s*\(begin\|is\)\>'
|
||||||
let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
|
let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
|
||||||
elseif line =~ '^\s*record\>'
|
elseif line =~ '^\s*record\>'
|
||||||
let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + &sw
|
let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + shiftwidth()
|
||||||
elseif line =~ '^\s*\(else\|elsif\)\>'
|
elseif line =~ '^\s*\(else\|elsif\)\>'
|
||||||
let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
|
let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
|
||||||
elseif line =~ '^\s*when\>'
|
elseif line =~ '^\s*when\>'
|
||||||
" Align 'when' one /in/ from matching block start
|
" Align 'when' one /in/ from matching block start
|
||||||
let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + &sw
|
let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + shiftwidth()
|
||||||
elseif line =~ '^\s*end\>\s*\<if\>'
|
elseif line =~ '^\s*end\>\s*\<if\>'
|
||||||
" End of if statements
|
" End of if statements
|
||||||
let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
|
let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ function! GetAwkIndent()
|
|||||||
" 'pattern { action }' (simple check match on /{/ increases the indent then)
|
" 'pattern { action }' (simple check match on /{/ increases the indent then)
|
||||||
|
|
||||||
if s:Get_brace_balance( prev_data, '{', '}' ) > 0
|
if s:Get_brace_balance( prev_data, '{', '}' ) > 0
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let brace_balance = s:Get_brace_balance( prev_data, '(', ')' )
|
let brace_balance = s:Get_brace_balance( prev_data, '(', ')' )
|
||||||
@@ -99,7 +99,7 @@ function! GetAwkIndent()
|
|||||||
return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
|
return s:Safe_indent( ind, s:First_word_len(prev_data), getline(v:lnum))
|
||||||
else
|
else
|
||||||
" if/for/while without '{'
|
" if/for/while without '{'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -140,7 +140,7 @@ function! GetAwkIndent()
|
|||||||
|
|
||||||
" Decrease indent if this line contains a '}'.
|
" Decrease indent if this line contains a '}'.
|
||||||
if getline(v:lnum) =~ '^\s*}'
|
if getline(v:lnum) =~ '^\s*}'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ function! GetBstIndent(lnum) abort
|
|||||||
endif
|
endif
|
||||||
let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
|
let fakeline = substitute(line,'^}','','').matchstr(cline,'^}')
|
||||||
let ind = indent(lnum)
|
let ind = indent(lnum)
|
||||||
let ind = ind + &sw * s:count(line,'{')
|
let ind = ind + shiftwidth() * s:count(line,'{')
|
||||||
let ind = ind - &sw * s:count(fakeline,'}')
|
let ind = ind - shiftwidth() * s:count(fakeline,'}')
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Bazel (http://bazel.io)
|
" Language: Bazel (http://bazel.io)
|
||||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||||
" Last Change: 2015 Aug 11
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
finish
|
finish
|
||||||
@@ -41,11 +41,8 @@ function GetBzlIndent(lnum) abort
|
|||||||
if exists('g:pyindent_open_paren')
|
if exists('g:pyindent_open_paren')
|
||||||
let l:pyindent_open_paren = g:pyindent_open_paren
|
let l:pyindent_open_paren = g:pyindent_open_paren
|
||||||
endif
|
endif
|
||||||
" Vim 7.3.693 and later defines a shiftwidth() function to get the effective
|
let g:pyindent_nested_paren = 'shiftwidth() * 2'
|
||||||
" shiftwidth value. Fall back to &shiftwidth if the function doesn't exist.
|
let g:pyindent_open_paren = 'shiftwidth() * 2'
|
||||||
let l:sw_expr = exists('*shiftwidth') ? 'shiftwidth()' : '&shiftwidth'
|
|
||||||
let g:pyindent_nested_paren = l:sw_expr . ' * 2'
|
|
||||||
let g:pyindent_open_paren = l:sw_expr . ' * 2'
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let l:indent = -1
|
let l:indent = -1
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ fun! CdlGetIndent(lnum)
|
|||||||
let thisline = getline(a:lnum)
|
let thisline = getline(a:lnum)
|
||||||
if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0
|
if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0
|
||||||
" it's an attributes line
|
" it's an attributes line
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0
|
elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0
|
||||||
" it's a header or '{' or '}' or a comment
|
" it's a header or '{' or '}' or a comment
|
||||||
return 0
|
return 0
|
||||||
@@ -71,13 +71,13 @@ fun! CdlGetIndent(lnum)
|
|||||||
let c = line[inicio-1]
|
let c = line[inicio-1]
|
||||||
" ')' and '=' don't change indent and are useless to set 'f'
|
" ')' and '=' don't change indent and are useless to set 'f'
|
||||||
if c == '{'
|
if c == '{'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif c != ')' && c != '='
|
elseif c != ')' && c != '='
|
||||||
let f = 1 " all but 'elseif' are followed by a formula
|
let f = 1 " all but 'elseif' are followed by a formula
|
||||||
if c ==? 'n' || c ==? 'e' " 'then', 'else'
|
if c ==? 'n' || c ==? 'e' " 'then', 'else'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional
|
elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
let f = 0
|
let f = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -98,16 +98,16 @@ fun! CdlGetIndent(lnum)
|
|||||||
let ind = 0
|
let ind = 0
|
||||||
let f = 1
|
let f = 1
|
||||||
elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif'
|
elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif c == '(' || c ==? 'f' " '(' or 'if'
|
elseif c == '(' || c ==? 'f' " '(' or 'if'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
else " c == '='
|
else " c == '='
|
||||||
" if it is an asignment increase indent
|
" if it is an asignment increase indent
|
||||||
if f == -1 " we don't know yet, find out
|
if f == -1 " we don't know yet, find out
|
||||||
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
|
let f = CdlAsignment(lnum, strpart(line, 0, inicio))
|
||||||
end
|
end
|
||||||
if f == 1 " formula increase it
|
if f == 1 " formula increase it
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
endw
|
endw
|
||||||
@@ -115,13 +115,13 @@ fun! CdlGetIndent(lnum)
|
|||||||
" CURRENT LINE, if it starts with a closing element, decrease indent
|
" CURRENT LINE, if it starts with a closing element, decrease indent
|
||||||
" or if it starts with '=' (asignment), increase indent
|
" or if it starts with '=' (asignment), increase indent
|
||||||
if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
|
if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif match(thisline, '^\s*=') >= 0
|
elseif match(thisline, '^\s*=') >= 0
|
||||||
if f == -1 " we don't know yet if is an asignment, find out
|
if f == -1 " we don't know yet if is an asignment, find out
|
||||||
let f = CdlAsignment(lnum, "")
|
let f = CdlAsignment(lnum, "")
|
||||||
end
|
end
|
||||||
if f == 1 " formula increase it
|
if f == 1 " formula increase it
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -31,19 +31,19 @@ function! GetChaiScriptIndent()
|
|||||||
let flag = 0
|
let flag = 0
|
||||||
let prevline = getline(lnum)
|
let prevline = getline(lnum)
|
||||||
if prevline =~ '^.*{.*'
|
if prevline =~ '^.*{.*'
|
||||||
let ind = ind + &shiftwidth
|
let ind = ind + shiftwidth()
|
||||||
let flag = 1
|
let flag = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' after lines containing a { followed by a }
|
" Subtract a 'shiftwidth' after lines containing a { followed by a }
|
||||||
" to keep it balanced
|
" to keep it balanced
|
||||||
if flag == 1 && prevline =~ '.*{.*}.*'
|
if flag == 1 && prevline =~ '.*{.*}.*'
|
||||||
let ind = ind - &shiftwidth
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a 'shiftwidth' on lines ending with }
|
" Subtract a 'shiftwidth' on lines ending with }
|
||||||
if getline(v:lnum) =~ '^\s*\%(}\)'
|
if getline(v:lnum) =~ '^\s*\%(}\)'
|
||||||
let ind = ind - &shiftwidth
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ if exists("*searchpairpos")
|
|||||||
call cursor(paren)
|
call cursor(paren)
|
||||||
|
|
||||||
if s:is_method_special_case(paren)
|
if s:is_method_special_case(paren)
|
||||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
return [paren[0], paren[1] + shiftwidth() - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if s:is_reader_conditional_special_case(paren)
|
if s:is_reader_conditional_special_case(paren)
|
||||||
@@ -299,19 +299,19 @@ if exists("*searchpairpos")
|
|||||||
let ww = s:strip_namespace_and_macro_chars(w)
|
let ww = s:strip_namespace_and_macro_chars(w)
|
||||||
|
|
||||||
if &lispwords =~# '\V\<' . ww . '\>'
|
if &lispwords =~# '\V\<' . ww . '\>'
|
||||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
return [paren[0], paren[1] + shiftwidth() - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if g:clojure_fuzzy_indent
|
if g:clojure_fuzzy_indent
|
||||||
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
|
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
|
||||||
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
|
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
|
||||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
return [paren[0], paren[1] + shiftwidth() - 1]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call search('\v\_s', 'cW')
|
call search('\v\_s', 'cW')
|
||||||
call search('\v\S', 'W')
|
call search('\v\S', 'W')
|
||||||
if paren[0] < line(".")
|
if paren[0] < line(".")
|
||||||
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]
|
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : shiftwidth() - 1)]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call search('\v\S', 'bW')
|
call search('\v\S', 'bW')
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Program: CMake - Cross-Platform Makefile Generator
|
|
||||||
" Module: $RCSfile: cmake-indent.vim,v $
|
|
||||||
" Language: CMake (ft=cmake)
|
" Language: CMake (ft=cmake)
|
||||||
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
|
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
|
||||||
" Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
|
||||||
" Last Change: $Date: 2008-01-16 16:53:53 $
|
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||||
" Version: $Revision: 1.9 $
|
" Last Change: 2017 Sep 24
|
||||||
"
|
"
|
||||||
" Licence: The CMake license applies to this file. See
|
" Licence: The CMake license applies to this file. See
|
||||||
" http://www.cmake.org/HTML/Copyright.html
|
" https://cmake.org/licensing
|
||||||
" This implies that distribution with Vim is allowed
|
" This implies that distribution with Vim is allowed
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
@@ -68,19 +66,19 @@ fun! CMakeGetIndent(lnum)
|
|||||||
let ind = ind
|
let ind = ind
|
||||||
else
|
else
|
||||||
if previous_line =~? cmake_indent_begin_regex
|
if previous_line =~? cmake_indent_begin_regex
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
if previous_line =~? cmake_indent_open_regex
|
if previous_line =~? cmake_indent_open_regex
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract
|
" Subtract
|
||||||
if this_line =~? cmake_indent_end_regex
|
if this_line =~? cmake_indent_end_regex
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
if previous_line =~? cmake_indent_close_regex
|
if previous_line =~? cmake_indent_close_regex
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -52,11 +52,11 @@ function! s:optionalblock(lnum,ind,blocks,clauses)
|
|||||||
if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin
|
if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin
|
||||||
let ind = indent(lastclause)
|
let ind = indent(lastclause)
|
||||||
elseif lastclause > 0
|
elseif lastclause > 0
|
||||||
let ind = indent(lastclause) + &sw
|
let ind = indent(lastclause) + shiftwidth()
|
||||||
"let ind = ind + &sw
|
"let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~? clauses && cline !~? end
|
elseif line =~? clauses && cline !~? end
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
@@ -98,8 +98,8 @@ function! GetCobolIndent(lnum) abort
|
|||||||
let num = matchstr(line,'^\s*\zs\d\+\>')
|
let num = matchstr(line,'^\s*\zs\d\+\>')
|
||||||
if 0+cnum == num
|
if 0+cnum == num
|
||||||
return lindent
|
return lindent
|
||||||
elseif 0+cnum > num && default < lindent + &sw
|
elseif 0+cnum > num && default < lindent + shiftwidth()
|
||||||
let default = lindent + &sw
|
let default = lindent + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif lindent < bshft && lindent >= ashft
|
elseif lindent < bshft && lindent >= ashft
|
||||||
break
|
break
|
||||||
@@ -135,13 +135,13 @@ function! GetCobolIndent(lnum) abort
|
|||||||
if line =~? '^PERFORM\>'
|
if line =~? '^PERFORM\>'
|
||||||
let perfline = substitute(line, '\c^PERFORM\s*', "", "")
|
let perfline = substitute(line, '\c^PERFORM\s*', "", "")
|
||||||
if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$'
|
if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$'
|
elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>'
|
if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR')
|
let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR')
|
||||||
let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION')
|
let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION')
|
||||||
@@ -157,10 +157,10 @@ function! GetCobolIndent(lnum) abort
|
|||||||
"&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>'
|
"&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>'
|
||||||
let ind = indent(lastclause)
|
let ind = indent(lastclause)
|
||||||
elseif lastclause > 0
|
elseif lastclause > 0
|
||||||
let ind = indent(lastclause) + &sw
|
let ind = indent(lastclause) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~? '^WHEN\>'
|
elseif line =~? '^WHEN\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
"I'm not sure why I had this
|
"I'm not sure why I had this
|
||||||
"if line =~? '^ELSE\>-\@!' && line !~? '\.$'
|
"if line =~? '^ELSE\>-\@!' && line !~? '\.$'
|
||||||
@@ -168,7 +168,7 @@ function! GetCobolIndent(lnum) abort
|
|||||||
"endif
|
"endif
|
||||||
if cline =~? '^\(END\)\>-\@!'
|
if cline =~? '^\(END\)\>-\@!'
|
||||||
" On lines with just END, 'guess' a simple shift left
|
" On lines with just END, 'guess' a simple shift left
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!'
|
elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!'
|
||||||
call cursor(a:lnum,indent(a:lnum))
|
call cursor(a:lnum,indent(a:lnum))
|
||||||
let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip)
|
let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip)
|
||||||
@@ -209,7 +209,7 @@ function! GetCobolIndent(lnum) abort
|
|||||||
if match > 0
|
if match > 0
|
||||||
let ind = indent(match)
|
let ind = indent(match)
|
||||||
elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>'
|
elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return ind < bshft ? bshft : ind
|
return ind < bshft ? bshft : ind
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Cucumber
|
" Language: Cucumber
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -27,7 +27,7 @@ function! GetCucumberIndent()
|
|||||||
let line = getline(prevnonblank(v:lnum-1))
|
let line = getline(prevnonblank(v:lnum-1))
|
||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
let nline = getline(nextnonblank(v:lnum+1))
|
let nline = getline(nextnonblank(v:lnum+1))
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth()
|
||||||
let syn = s:syn(prevnonblank(v:lnum-1))
|
let syn = s:syn(prevnonblank(v:lnum-1))
|
||||||
let csyn = s:syn(v:lnum)
|
let csyn = s:syn(v:lnum)
|
||||||
let nsyn = s:syn(nextnonblank(v:lnum+1))
|
let nsyn = s:syn(nextnonblank(v:lnum+1))
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Dylan
|
" Language: Dylan
|
||||||
" Version: 0.01
|
" Version: 0.01
|
||||||
" Last Change: 2003 Feb 04
|
" Last Change: 2017 Jun 13
|
||||||
" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
|
" Maintainer: Brent A. Fulgham <bfulgham@debian.org>
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -45,13 +45,13 @@ function DylanGetIndent()
|
|||||||
|
|
||||||
" If previous line was a 'define', indent
|
" If previous line was a 'define', indent
|
||||||
if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
|
if prevline =~? '\(^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)\|\s*\S*\s*=>$\)'
|
||||||
let chg = &sw
|
let chg = shiftwidth()
|
||||||
" local methods indent the shift-width, plus 6 for the 'local'
|
" local methods indent the shift-width, plus 6 for the 'local'
|
||||||
elseif prevline =~? '^\s*local'
|
elseif prevline =~? '^\s*local'
|
||||||
let chg = &sw + 6
|
let chg = shiftwidth() + 6
|
||||||
" If previous line was a let with no closing semicolon, indent
|
" If previous line was a let with no closing semicolon, indent
|
||||||
elseif prevline =~? '^\s*let.*[^;]\s*$'
|
elseif prevline =~? '^\s*let.*[^;]\s*$'
|
||||||
let chg = &sw
|
let chg = shiftwidth()
|
||||||
" If previous line opened a parenthesis, and did not close it, indent
|
" If previous line opened a parenthesis, and did not close it, indent
|
||||||
elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
|
elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
|
||||||
return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
|
return = match( prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
|
||||||
@@ -75,13 +75,13 @@ function DylanGetIndent()
|
|||||||
" line doesn't start with an indentable command:
|
" line doesn't start with an indentable command:
|
||||||
let curr_str = getline(curr_line)
|
let curr_str = getline(curr_line)
|
||||||
if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
|
if curr_str =~? '^\s*\(begin\|block\|case\|define\|else\|elseif\|for\|finally\|if\|select\|unless\|while\)'
|
||||||
let chg = &sw
|
let chg = shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If a line starts with end, un-indent (even if we just indented!)
|
" If a line starts with end, un-indent (even if we just indented!)
|
||||||
if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
|
if cline =~? '^\s*\(cleanup\|end\|else\|elseif\|exception\|finally\|otherwise\)'
|
||||||
let chg = chg - &sw
|
let chg = chg - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind + chg
|
return ind + chg
|
||||||
|
|||||||
@@ -669,7 +669,7 @@ function! s:BeginningOfClauseFound(stack, token, stored_vcol)
|
|||||||
call s:Pop(a:stack)
|
call s:Pop(a:stack)
|
||||||
if empty(a:stack)
|
if empty(a:stack)
|
||||||
call s:Log(' Stack is ["when"], so LTI is in a guard -> return')
|
call s:Log(' Stack is ["when"], so LTI is in a guard -> return')
|
||||||
return [1, a:stored_vcol + &sw + 2]
|
return [1, a:stored_vcol + shiftwidth() + 2]
|
||||||
else
|
else
|
||||||
return [1, s:UnexpectedToken(a:token, a:stack)]
|
return [1, s:UnexpectedToken(a:token, a:stack)]
|
||||||
endif
|
endif
|
||||||
@@ -678,7 +678,7 @@ function! s:BeginningOfClauseFound(stack, token, stored_vcol)
|
|||||||
call s:Pop(a:stack)
|
call s:Pop(a:stack)
|
||||||
if empty(a:stack)
|
if empty(a:stack)
|
||||||
call s:Log(' Stack is ["->"], so LTI is in function body -> return')
|
call s:Log(' Stack is ["->"], so LTI is in function body -> return')
|
||||||
return [1, a:stored_vcol + &sw]
|
return [1, a:stored_vcol + shiftwidth()]
|
||||||
elseif a:stack[0] ==# ';'
|
elseif a:stack[0] ==# ';'
|
||||||
call s:Pop(a:stack)
|
call s:Pop(a:stack)
|
||||||
if empty(a:stack)
|
if empty(a:stack)
|
||||||
@@ -797,7 +797,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
|
|
||||||
elseif token ==# 'begin'
|
elseif token ==# 'begin'
|
||||||
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
||||||
\stored_vcol, 'end', &sw)
|
\stored_vcol, 'end', shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
|
|
||||||
" case EXPR of BRANCHES end
|
" case EXPR of BRANCHES end
|
||||||
@@ -848,11 +848,11 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
elseif stack == ['->']
|
elseif stack == ['->']
|
||||||
call s:Log(' LTI is in a branch after ' .
|
call s:Log(' LTI is in a branch after ' .
|
||||||
\'"of/receive/after/if/catch" -> return')
|
\'"of/receive/after/if/catch" -> return')
|
||||||
return stored_vcol + &sw
|
return stored_vcol + shiftwidth()
|
||||||
elseif stack == ['when']
|
elseif stack == ['when']
|
||||||
call s:Log(' LTI is in a guard after ' .
|
call s:Log(' LTI is in a guard after ' .
|
||||||
\'"of/receive/after/if/catch" -> return')
|
\'"of/receive/after/if/catch" -> return')
|
||||||
return stored_vcol + &sw
|
return stored_vcol + shiftwidth()
|
||||||
else
|
else
|
||||||
return s:UnexpectedToken(token, stack)
|
return s:UnexpectedToken(token, stack)
|
||||||
endif
|
endif
|
||||||
@@ -888,7 +888,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
if empty(stack)
|
if empty(stack)
|
||||||
call s:Log(' LTI is in a condition; matching ' .
|
call s:Log(' LTI is in a condition; matching ' .
|
||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
let stored_vcol = curr_vcol + &sw
|
let stored_vcol = curr_vcol + shiftwidth()
|
||||||
elseif stack[0] ==# 'align_to_begin_element'
|
elseif stack[0] ==# 'align_to_begin_element'
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol
|
let stored_vcol = curr_vcol
|
||||||
@@ -897,23 +897,23 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + &sw
|
let stored_vcol = curr_vcol + shiftwidth()
|
||||||
elseif stack[0] ==# '->'
|
elseif stack[0] ==# '->'
|
||||||
call s:Log(' LTI is in a branch; matching ' .
|
call s:Log(' LTI is in a branch; matching ' .
|
||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw
|
let stored_vcol = curr_vcol + 2 * shiftwidth()
|
||||||
elseif stack[0] ==# 'when'
|
elseif stack[0] ==# 'when'
|
||||||
call s:Log(' LTI is in a guard; matching ' .
|
call s:Log(' LTI is in a guard; matching ' .
|
||||||
\'"case/if/try/receive" found')
|
\'"case/if/try/receive" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw + 2
|
let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
||||||
\stored_vcol, 'end', &sw)
|
\stored_vcol, 'end', shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
|
|
||||||
elseif token ==# 'fun'
|
elseif token ==# 'fun'
|
||||||
@@ -930,7 +930,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
" stack = ['when'] => LTI is in a guard
|
" stack = ['when'] => LTI is in a guard
|
||||||
if empty(stack)
|
if empty(stack)
|
||||||
call s:Log(' LTI is in a condition; matching "fun" found')
|
call s:Log(' LTI is in a condition; matching "fun" found')
|
||||||
let stored_vcol = curr_vcol + &sw
|
let stored_vcol = curr_vcol + shiftwidth()
|
||||||
elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
|
elseif len(stack) > 1 && stack[0] ==# '->' && stack[1] ==# ';'
|
||||||
call s:Log(' LTI is in a condition; matching "fun" found')
|
call s:Log(' LTI is in a condition; matching "fun" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
@@ -938,15 +938,15 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
elseif stack[0] ==# '->'
|
elseif stack[0] ==# '->'
|
||||||
call s:Log(' LTI is in a branch; matching "fun" found')
|
call s:Log(' LTI is in a branch; matching "fun" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw
|
let stored_vcol = curr_vcol + 2 * shiftwidth()
|
||||||
elseif stack[0] ==# 'when'
|
elseif stack[0] ==# 'when'
|
||||||
call s:Log(' LTI is in a guard; matching "fun" found')
|
call s:Log(' LTI is in a guard; matching "fun" found')
|
||||||
call s:Pop(stack)
|
call s:Pop(stack)
|
||||||
let stored_vcol = curr_vcol + 2 * &sw + 2
|
let stored_vcol = curr_vcol + 2 * shiftwidth() + 2
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFound(stack, token, curr_vcol,
|
||||||
\stored_vcol, 'end', &sw)
|
\stored_vcol, 'end', shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
else
|
else
|
||||||
" Pass: we have a function reference (e.g. "fun f/0")
|
" Pass: we have a function reference (e.g. "fun f/0")
|
||||||
@@ -1220,7 +1220,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
" when A,
|
" when A,
|
||||||
" LTI
|
" LTI
|
||||||
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
||||||
\stored_vcol, &sw)
|
\stored_vcol, shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
else
|
else
|
||||||
" Example:
|
" Example:
|
||||||
@@ -1252,7 +1252,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
|||||||
" If LTI is between an 'after' and the corresponding
|
" If LTI is between an 'after' and the corresponding
|
||||||
" 'end', then let's return
|
" 'end', then let's return
|
||||||
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
let [ret, res] = s:BeginElementFoundIfEmpty(stack, token, curr_vcol,
|
||||||
\stored_vcol, &sw)
|
\stored_vcol, shiftwidth())
|
||||||
if ret | return res | endif
|
if ret | return res | endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -47,11 +47,7 @@ set cpo&vim
|
|||||||
|
|
||||||
function! GetErubyIndent(...)
|
function! GetErubyIndent(...)
|
||||||
" The value of a single shift-width
|
" The value of a single shift-width
|
||||||
if exists('*shiftwidth')
|
let sw = shiftwidth()
|
||||||
let sw = shiftwidth()
|
|
||||||
else
|
|
||||||
let sw = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
if a:0 && a:1 == '.'
|
if a:0 && a:1 == '.'
|
||||||
let v:lnum = line('.')
|
let v:lnum = line('.')
|
||||||
|
|||||||
@@ -339,7 +339,7 @@ function FalconGetIndent(...)
|
|||||||
|
|
||||||
" If the previous line ended with a block opening, add a level of indent.
|
" If the previous line ended with a block opening, add a level of indent.
|
||||||
if s:Match(lnum, s:block_regex)
|
if s:Match(lnum, s:block_regex)
|
||||||
return indent(s:GetMSL(lnum)) + &sw
|
return indent(s:GetMSL(lnum)) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" If it contained hanging closing brackets, find the rightmost one, find its
|
" If it contained hanging closing brackets, find the rightmost one, find its
|
||||||
@@ -350,20 +350,20 @@ function FalconGetIndent(...)
|
|||||||
if opening.pos != -1
|
if opening.pos != -1
|
||||||
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
||||||
if col('.') + 1 == col('$')
|
if col('.') + 1 == col('$')
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
else
|
else
|
||||||
return virtcol('.')
|
return virtcol('.')
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
|
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
|
||||||
return nonspace > 0 ? nonspace : ind + &sw
|
return nonspace > 0 ? nonspace : ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif closing.pos != -1
|
elseif closing.pos != -1
|
||||||
call cursor(lnum, closing.pos + 1)
|
call cursor(lnum, closing.pos + 1)
|
||||||
normal! %
|
normal! %
|
||||||
|
|
||||||
if s:Match(line('.'), s:falcon_indent_keywords)
|
if s:Match(line('.'), s:falcon_indent_keywords)
|
||||||
return indent('.') + &sw
|
return indent('.') + shiftwidth()
|
||||||
else
|
else
|
||||||
return indent('.')
|
return indent('.')
|
||||||
endif
|
endif
|
||||||
@@ -392,7 +392,7 @@ function FalconGetIndent(...)
|
|||||||
let col = s:Match(lnum, s:falcon_indent_keywords)
|
let col = s:Match(lnum, s:falcon_indent_keywords)
|
||||||
if col > 0
|
if col > 0
|
||||||
call cursor(lnum, col)
|
call cursor(lnum, col)
|
||||||
let ind = virtcol('.') - 1 + &sw
|
let ind = virtcol('.') - 1 + shiftwidth()
|
||||||
" TODO: make this better (we need to count them) (or, if a searchpair
|
" TODO: make this better (we need to count them) (or, if a searchpair
|
||||||
" fails, we know that something is lacking an end and thus we indent a
|
" fails, we know that something is lacking an end and thus we indent a
|
||||||
" level
|
" level
|
||||||
@@ -422,9 +422,9 @@ function FalconGetIndent(...)
|
|||||||
" TODO: this does not take into account contrived things such as
|
" TODO: this does not take into account contrived things such as
|
||||||
" module Foo; class Bar; end
|
" module Foo; class Bar; end
|
||||||
if s:Match(lnum, s:falcon_indent_keywords)
|
if s:Match(lnum, s:falcon_indent_keywords)
|
||||||
let ind = msl_ind + &sw
|
let ind = msl_ind + shiftwidth()
|
||||||
if s:Match(lnum, s:end_end_regex)
|
if s:Match(lnum, s:end_end_regex)
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endif
|
endif
|
||||||
@@ -433,7 +433,7 @@ function FalconGetIndent(...)
|
|||||||
" closing bracket, indent one extra level.
|
" closing bracket, indent one extra level.
|
||||||
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
|
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
|
||||||
if lnum == p_lnum
|
if lnum == p_lnum
|
||||||
let ind = msl_ind + &sw
|
let ind = msl_ind + shiftwidth()
|
||||||
else
|
else
|
||||||
let ind = msl_ind
|
let ind = msl_ind
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: git config file
|
" Language: git config file
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -20,7 +20,7 @@ if exists("*GetGitconfigIndent")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
function! GetGitconfigIndent()
|
function! GetGitconfigIndent()
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = shiftwidth()
|
||||||
let line = getline(prevnonblank(v:lnum-1))
|
let line = getline(prevnonblank(v:lnum-1))
|
||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
if line =~ '\\\@<!\%(\\\\\)*\\$'
|
if line =~ '\\\@<!\%(\\\\\)*\\$'
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: gitolite configuration
|
" Language: gitolite configuration
|
||||||
" URL: https://github.com/tmatilai/gitolite.vim
|
" URL: https://github.com/tmatilai/gitolite.vim
|
||||||
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
|
||||||
" Last Change: 2011-12-24
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -27,11 +27,11 @@ function! GetGitoliteIndent()
|
|||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
|
|
||||||
if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
|
if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif cline =~ '^\s*config\s'
|
elseif cline =~ '^\s*config\s'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
|
elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
elseif cline =~ '^\s*#'
|
elseif cline =~ '^\s*#'
|
||||||
return indent(prevln)
|
return indent(prevln)
|
||||||
elseif cline =~ '^\s*$'
|
elseif cline =~ '^\s*$'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Go
|
" Language: Go
|
||||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-go)
|
" Maintainer: David Barnett (https://github.com/google/vim-ft-go)
|
||||||
" Last Change: 2014 Aug 16
|
" Last Change: 2017 Jun 13
|
||||||
"
|
"
|
||||||
" TODO:
|
" TODO:
|
||||||
" - function invocations split across lines
|
" - function invocations split across lines
|
||||||
@@ -23,18 +23,6 @@ if exists('*GoIndent')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" The shiftwidth() function is relatively new.
|
|
||||||
" Don't require it to exist.
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
function s:sw() abort
|
|
||||||
return shiftwidth()
|
|
||||||
endfunction
|
|
||||||
else
|
|
||||||
function s:sw() abort
|
|
||||||
return &shiftwidth
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! GoIndent(lnum)
|
function! GoIndent(lnum)
|
||||||
let l:prevlnum = prevnonblank(a:lnum-1)
|
let l:prevlnum = prevnonblank(a:lnum-1)
|
||||||
if l:prevlnum == 0
|
if l:prevlnum == 0
|
||||||
@@ -51,17 +39,17 @@ function! GoIndent(lnum)
|
|||||||
|
|
||||||
if l:prevl =~ '[({]\s*$'
|
if l:prevl =~ '[({]\s*$'
|
||||||
" previous line opened a block
|
" previous line opened a block
|
||||||
let l:ind += s:sw()
|
let l:ind += shiftwidth()
|
||||||
endif
|
endif
|
||||||
if l:prevl =~# '^\s*\(case .*\|default\):$'
|
if l:prevl =~# '^\s*\(case .*\|default\):$'
|
||||||
" previous line is part of a switch statement
|
" previous line is part of a switch statement
|
||||||
let l:ind += s:sw()
|
let l:ind += shiftwidth()
|
||||||
endif
|
endif
|
||||||
" TODO: handle if the previous line is a label.
|
" TODO: handle if the previous line is a label.
|
||||||
|
|
||||||
if l:thisl =~ '^\s*[)}]'
|
if l:thisl =~ '^\s*[)}]'
|
||||||
" this line closed a block
|
" this line closed a block
|
||||||
let l:ind -= s:sw()
|
let l:ind -= shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Colons are tricky.
|
" Colons are tricky.
|
||||||
@@ -69,7 +57,7 @@ function! GoIndent(lnum)
|
|||||||
" We ignore trying to deal with jump labels because (a) they're rare, and
|
" We ignore trying to deal with jump labels because (a) they're rare, and
|
||||||
" (b) they're hard to disambiguate from a composite literal key.
|
" (b) they're hard to disambiguate from a composite literal key.
|
||||||
if l:thisl =~# '^\s*\(case .*\|default\):$'
|
if l:thisl =~# '^\s*\(case .*\|default\):$'
|
||||||
let l:ind -= s:sw()
|
let l:ind -= shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return l:ind
|
return l:ind
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Haml
|
" Language: Haml
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
finish
|
finish
|
||||||
@@ -37,7 +37,7 @@ function! GetHamlIndent()
|
|||||||
let line = substitute(line,'^\s\+','','')
|
let line = substitute(line,'^\s\+','','')
|
||||||
let indent = indent(lnum)
|
let indent = indent(lnum)
|
||||||
let cindent = indent(v:lnum)
|
let cindent = indent(v:lnum)
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = shiftwidth()
|
||||||
if cline =~# '\v^-\s*%(elsif|else|when)>'
|
if cline =~# '\v^-\s*%(elsif|else|when)>'
|
||||||
let indent = cindent < indent ? cindent : indent - sw
|
let indent = cindent < indent ? cindent : indent - sw
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -27,13 +27,13 @@ function HamGetIndent(lnum)
|
|||||||
" Add a shiftwidth to statements following if, else, elseif,
|
" Add a shiftwidth to statements following if, else, elseif,
|
||||||
" case, select, default, do, until, while, for, start
|
" case, select, default, do, until, while, for, start
|
||||||
if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>'
|
if prevline =~? '^\s*\<\(if\|else\%(if\)\?\|for\|repeat\|do\|while\|sub\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a shiftwidth from else, elseif, end(if|while|for), until
|
" Subtract a shiftwidth from else, elseif, end(if|while|for), until
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>'
|
if line =~? '^\s*\(else\|elseif\|loop\|until\|end\%(if\|while\|for\|sub\)\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ function GetHogIndent()
|
|||||||
" Continuation of a line that wasn't indented
|
" Continuation of a line that wasn't indented
|
||||||
let prevline = getline(prevlnum)
|
let prevline = getline(prevlnum)
|
||||||
if prevline =~ '^\k\+.*\\\s*$'
|
if prevline =~ '^\k\+.*\\\s*$'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Continuation of a line that was indented
|
" Continuation of a line that was indented
|
||||||
@@ -58,13 +58,13 @@ function GetHogIndent()
|
|||||||
" Indent the next line if previous line contained a start of a block
|
" Indent the next line if previous line contained a start of a block
|
||||||
" definition ('{' or '(').
|
" definition ('{' or '(').
|
||||||
if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
|
if prevline =~ '^\k\+[^#]*{}\@!\s*$' " TODO || prevline =~ '^\k\+[^#]*()\@!\s*$'
|
||||||
return &sw
|
return shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Match inside of a block
|
" Match inside of a block
|
||||||
if s:IsInBlock(v:lnum)
|
if s:IsInBlock(v:lnum)
|
||||||
if prevline =~ "^\k\+.*$"
|
if prevline =~ "^\k\+.*$"
|
||||||
return &sw
|
return shiftwidth()
|
||||||
else
|
else
|
||||||
return indent(prevlnum)
|
return indent(prevlnum)
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Header: "{{{
|
" Header: "{{{
|
||||||
" Maintainer: Bram Moolenaar
|
" Maintainer: Bram Moolenaar
|
||||||
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
" Original Author: Andy Wokula <anwoku@yahoo.de>
|
||||||
" Last Change: 2017 Jan 17
|
" Last Change: 2017 Jun 13
|
||||||
" Version: 1.0
|
" Version: 1.0
|
||||||
" Description: HTML indent script with cached state for faster indenting on a
|
" Description: HTML indent script with cached state for faster indenting on a
|
||||||
" range of lines.
|
" range of lines.
|
||||||
@@ -51,15 +51,6 @@ if exists("*HtmlIndent") && !exists('g:force_reload_html')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" shiftwidth() exists since patch 7.3.694
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
let s:ShiftWidth = function('shiftwidth')
|
|
||||||
else
|
|
||||||
func! s:ShiftWidth()
|
|
||||||
return &shiftwidth
|
|
||||||
endfunc
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Allow for line continuation below.
|
" Allow for line continuation below.
|
||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo-=C
|
set cpo-=C
|
||||||
@@ -123,7 +114,7 @@ func! HtmlIndent_CheckUserSettings()
|
|||||||
|
|
||||||
let indone = {"zero": 0
|
let indone = {"zero": 0
|
||||||
\,"auto": "indent(prevnonblank(v:lnum-1))"
|
\,"auto": "indent(prevnonblank(v:lnum-1))"
|
||||||
\,"inc": "b:hi_indent.blocktagind + s:ShiftWidth()"}
|
\,"inc": "b:hi_indent.blocktagind + shiftwidth()"}
|
||||||
|
|
||||||
let script1 = ''
|
let script1 = ''
|
||||||
if exists("b:html_indent_script1")
|
if exists("b:html_indent_script1")
|
||||||
@@ -358,7 +349,7 @@ func! s:CheckBlockTag(blocktag, ind)
|
|||||||
endif
|
endif
|
||||||
let b:hi_newstate.blocklnr = v:lnum
|
let b:hi_newstate.blocklnr = v:lnum
|
||||||
" save allover indent for the endtag
|
" save allover indent for the endtag
|
||||||
let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth()
|
let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * shiftwidth()
|
||||||
if a:ind == 3
|
if a:ind == 3
|
||||||
return "SCRIPT" " all except this must be lowercase
|
return "SCRIPT" " all except this must be lowercase
|
||||||
" line is to be checked again for the type attribute
|
" line is to be checked again for the type attribute
|
||||||
@@ -480,7 +471,7 @@ func! s:FreshState(lnum)
|
|||||||
let state.blocklnr = stopline
|
let state.blocklnr = stopline
|
||||||
" check preceding tags in the line:
|
" check preceding tags in the line:
|
||||||
call s:CountITags(tagline[: stopcol-2])
|
call s:CountITags(tagline[: stopcol-2])
|
||||||
let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
return state
|
return state
|
||||||
elseif stopline == state.lnum
|
elseif stopline == state.lnum
|
||||||
" handle special case: previous line (= state.lnum) contains a
|
" handle special case: previous line (= state.lnum) contains a
|
||||||
@@ -490,7 +481,7 @@ func! s:FreshState(lnum)
|
|||||||
if !swendtag
|
if !swendtag
|
||||||
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
|
let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bnW")
|
||||||
call s:CountITags(tolower(getline(bline)[: bcol-2]))
|
call s:CountITags(tolower(getline(bline)[: bcol-2]))
|
||||||
let state.baseindent = indent(bline) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.baseindent = indent(bline) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
return state
|
return state
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -511,7 +502,7 @@ func! s:FreshState(lnum)
|
|||||||
if found == 2
|
if found == 2
|
||||||
let state.baseindent = b:hi_indent.baseindent
|
let state.baseindent = b:hi_indent.baseindent
|
||||||
endif
|
endif
|
||||||
let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
return state
|
return state
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -530,7 +521,7 @@ func! s:FreshState(lnum)
|
|||||||
let text = tolower(getline(comlnum)[: comcol-2])
|
let text = tolower(getline(comlnum)[: comcol-2])
|
||||||
endif
|
endif
|
||||||
call s:CountITags(text)
|
call s:CountITags(text)
|
||||||
let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth()
|
let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * shiftwidth()
|
||||||
" TODO check tags that follow "-->"
|
" TODO check tags that follow "-->"
|
||||||
return state
|
return state
|
||||||
endif
|
endif
|
||||||
@@ -550,9 +541,9 @@ func! s:FreshState(lnum)
|
|||||||
let text = getline(start_lnum)
|
let text = getline(start_lnum)
|
||||||
let swendtag = match(text, '^\s*</') >= 0
|
let swendtag = match(text, '^\s*</') >= 0
|
||||||
call s:CountITags(text[: col('.') - 2])
|
call s:CountITags(text[: col('.') - 2])
|
||||||
let state.baseindent += s:nextrel * s:ShiftWidth()
|
let state.baseindent += s:nextrel * shiftwidth()
|
||||||
if !swendtag
|
if !swendtag
|
||||||
let state.baseindent += s:curind * s:ShiftWidth()
|
let state.baseindent += s:curind * shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return state
|
return state
|
||||||
@@ -565,9 +556,9 @@ func! s:FreshState(lnum)
|
|||||||
let text = getline(state.lnum)
|
let text = getline(state.lnum)
|
||||||
let swendtag = match(text, '^\s*</') >= 0
|
let swendtag = match(text, '^\s*</') >= 0
|
||||||
call s:CountITags(tolower(text))
|
call s:CountITags(tolower(text))
|
||||||
let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth()
|
let state.baseindent = indent(state.lnum) + s:nextrel * shiftwidth()
|
||||||
if !swendtag
|
if !swendtag
|
||||||
let state.baseindent += s:curind * s:ShiftWidth()
|
let state.baseindent += s:curind * shiftwidth()
|
||||||
endif
|
endif
|
||||||
return state
|
return state
|
||||||
endfunc "}}}
|
endfunc "}}}
|
||||||
@@ -646,7 +637,7 @@ func! s:CSSIndent()
|
|||||||
|
|
||||||
" add indent after {
|
" add indent after {
|
||||||
let brace_counts = HtmlIndent_CountBraces(prev_lnum)
|
let brace_counts = HtmlIndent_CountBraces(prev_lnum)
|
||||||
let extra = brace_counts.c_open * s:ShiftWidth()
|
let extra = brace_counts.c_open * shiftwidth()
|
||||||
|
|
||||||
let prev_text = getline(prev_lnum)
|
let prev_text = getline(prev_lnum)
|
||||||
let below_end_brace = prev_text =~ '}\s*$'
|
let below_end_brace = prev_text =~ '}\s*$'
|
||||||
@@ -663,7 +654,7 @@ func! s:CSSIndent()
|
|||||||
" if the current line is not a comment or starts with @ (used by template
|
" if the current line is not a comment or starts with @ (used by template
|
||||||
" systems) reduce indent if previous line is a continuation line
|
" systems) reduce indent if previous line is a continuation line
|
||||||
if !prev_hasfield && !prev_special
|
if !prev_hasfield && !prev_special
|
||||||
let extra = -s:ShiftWidth()
|
let extra = -shiftwidth()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:'
|
let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:'
|
||||||
@@ -671,14 +662,14 @@ func! s:CSSIndent()
|
|||||||
if !cur_hasfield && (prev_hasfield || prev_unfinished)
|
if !cur_hasfield && (prev_hasfield || prev_unfinished)
|
||||||
" Continuation line has extra indent if the previous line was not a
|
" Continuation line has extra indent if the previous line was not a
|
||||||
" continuation line.
|
" continuation line.
|
||||||
let extra = s:ShiftWidth()
|
let extra = shiftwidth()
|
||||||
" Align with @if
|
" Align with @if
|
||||||
if prev_text =~ '^\s*@if '
|
if prev_text =~ '^\s*@if '
|
||||||
let extra = 4
|
let extra = 4
|
||||||
endif
|
endif
|
||||||
elseif cur_hasfield && !prev_hasfield && !prev_special
|
elseif cur_hasfield && !prev_hasfield && !prev_special
|
||||||
" less indent below a continuation line
|
" less indent below a continuation line
|
||||||
let extra = -s:ShiftWidth()
|
let extra = -shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -699,10 +690,10 @@ func! s:CSSIndent()
|
|||||||
if special
|
if special
|
||||||
" do not reduce indent below @{ ... }
|
" do not reduce indent below @{ ... }
|
||||||
if extra < 0
|
if extra < 0
|
||||||
let extra += s:ShiftWidth()
|
let extra += shiftwidth()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * s:ShiftWidth()
|
let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -710,10 +701,10 @@ func! s:CSSIndent()
|
|||||||
if extra == 0
|
if extra == 0
|
||||||
if brace_counts.p_open > brace_counts.p_close
|
if brace_counts.p_open > brace_counts.p_close
|
||||||
" previous line has more ( than ): add a shiftwidth
|
" previous line has more ( than ): add a shiftwidth
|
||||||
let extra = s:ShiftWidth()
|
let extra = shiftwidth()
|
||||||
elseif brace_counts.p_open < brace_counts.p_close
|
elseif brace_counts.p_open < brace_counts.p_close
|
||||||
" previous line has more ) than (: subtract a shiftwidth
|
" previous line has more ) than (: subtract a shiftwidth
|
||||||
let extra = -s:ShiftWidth()
|
let extra = -shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -816,7 +807,7 @@ func! s:Alien5()
|
|||||||
let idx = match(prevtext, '^\s*\zs<!--')
|
let idx = match(prevtext, '^\s*\zs<!--')
|
||||||
if idx >= 0
|
if idx >= 0
|
||||||
" just below comment start, add a shiftwidth
|
" just below comment start, add a shiftwidth
|
||||||
return idx + s:ShiftWidth()
|
return idx + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Some files add 4 spaces just below a TODO line. It's difficult to detect
|
" Some files add 4 spaces just below a TODO line. It's difficult to detect
|
||||||
@@ -837,7 +828,7 @@ func! s:Alien6()
|
|||||||
return indent(lnum)
|
return indent(lnum)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return b:hi_indent.baseindent + s:ShiftWidth()
|
return b:hi_indent.baseindent + shiftwidth()
|
||||||
endfunc "}}}
|
endfunc "}}}
|
||||||
|
|
||||||
" When the "lnum" line ends in ">" find the line containing the matching "<".
|
" When the "lnum" line ends in ">" find the line containing the matching "<".
|
||||||
@@ -947,7 +938,7 @@ func! HtmlIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let curtext = tolower(getline(v:lnum))
|
let curtext = tolower(getline(v:lnum))
|
||||||
let indentunit = s:ShiftWidth()
|
let indentunit = shiftwidth()
|
||||||
|
|
||||||
let b:hi_newstate = {}
|
let b:hi_newstate = {}
|
||||||
let b:hi_newstate.lnum = v:lnum
|
let b:hi_newstate.lnum = v:lnum
|
||||||
@@ -1030,9 +1021,9 @@ func! HtmlIndent()
|
|||||||
if col('.') > 2
|
if col('.') > 2
|
||||||
let swendtag = match(text, '^\s*</') >= 0
|
let swendtag = match(text, '^\s*</') >= 0
|
||||||
call s:CountITags(text[: col('.') - 2])
|
call s:CountITags(text[: col('.') - 2])
|
||||||
let indent += s:nextrel * s:ShiftWidth()
|
let indent += s:nextrel * shiftwidth()
|
||||||
if !swendtag
|
if !swendtag
|
||||||
let indent += s:curind * s:ShiftWidth()
|
let indent += s:curind * shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" IDL (Interactive Data Language) indent file.
|
" IDL (Interactive Data Language) indent file.
|
||||||
" Language: IDL (ft=idlang)
|
" Language: IDL (ft=idlang)
|
||||||
" Last change: 2012 May 18
|
" Last change: 2017 Jun 13
|
||||||
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -34,25 +34,25 @@ function GetIdlangIndent(lnum)
|
|||||||
" Indenting of continued lines.
|
" Indenting of continued lines.
|
||||||
if getline(pnum) =~ '\$\s*\(;.*\)\=$'
|
if getline(pnum) =~ '\$\s*\(;.*\)\=$'
|
||||||
if getline(pnum2) !~ '\$\s*\(;.*\)\=$'
|
if getline(pnum2) !~ '\$\s*\(;.*\)\=$'
|
||||||
let curind = curind+&sw
|
let curind = curind+shiftwidth()
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if getline(pnum2) =~ '\$\s*\(;.*\)\=$'
|
if getline(pnum2) =~ '\$\s*\(;.*\)\=$'
|
||||||
let curind = curind-&sw
|
let curind = curind-shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indenting blocks of statements.
|
" Indenting blocks of statements.
|
||||||
if getline(v:lnum) =~? '^\s*\(endif\|endelse\|endwhile\|endfor\|endrep\)\>'
|
if getline(v:lnum) =~? '^\s*\(endif\|endelse\|endwhile\|endfor\|endrep\)\>'
|
||||||
if getline(pnum) =~? 'begin\>'
|
if getline(pnum) =~? 'begin\>'
|
||||||
elseif indent(v:lnum) > curind-&sw
|
elseif indent(v:lnum) > curind-shiftwidth()
|
||||||
let curind = curind-&sw
|
let curind = curind-shiftwidth()
|
||||||
else
|
else
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
elseif getline(pnum) =~? 'begin\>'
|
elseif getline(pnum) =~? 'begin\>'
|
||||||
if indent(v:lnum) < curind+&sw
|
if indent(v:lnum) < curind+shiftwidth()
|
||||||
let curind = curind+&sw
|
let curind = curind+shiftwidth()
|
||||||
else
|
else
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -50,17 +50,17 @@ fun! GetIshdIndent(lnum)
|
|||||||
|
|
||||||
" Add
|
" Add
|
||||||
if previous_line =~ '^\s*\<\(function\|begin\|switch\|case\|default\|if.\{-}then\|else\|elseif\|while\|repeat\)\>'
|
if previous_line =~ '^\s*\<\(function\|begin\|switch\|case\|default\|if.\{-}then\|else\|elseif\|while\|repeat\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract
|
" Subtract
|
||||||
if this_line =~ '^\s*\<endswitch\>'
|
if this_line =~ '^\s*\<endswitch\>'
|
||||||
let ind = ind - 2 * &sw
|
let ind = ind - 2 * shiftwidth()
|
||||||
elseif this_line =~ '^\s*\<\(begin\|end\|endif\|endwhile\|else\|elseif\|until\)\>'
|
elseif this_line =~ '^\s*\<\(begin\|end\|endif\|endwhile\|else\|elseif\|until\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif this_line =~ '^\s*\<\(case\|default\)\>'
|
elseif this_line =~ '^\s*\<\(case\|default\)\>'
|
||||||
if previous_line !~ '^\s*\<switch\>'
|
if previous_line !~ '^\s*\<switch\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Javascript
|
" Language: Javascript
|
||||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||||
" URL: https://github.com/pangloss/vim-javascript
|
" URL: https://github.com/pangloss/vim-javascript
|
||||||
" Last Change: March 21, 2017
|
" Last Change: September 18, 2017
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
@@ -10,6 +10,10 @@ if exists('b:did_indent')
|
|||||||
endif
|
endif
|
||||||
let b:did_indent = 1
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
" indent correctly if inside <script>
|
||||||
|
" vim/vim@690afe1 for the switch from cindent
|
||||||
|
let b:html_indent_script1 = 'inc'
|
||||||
|
|
||||||
" Now, set up our indentation expression and keys that trigger it.
|
" Now, set up our indentation expression and keys that trigger it.
|
||||||
setlocal indentexpr=GetJavascriptIndent()
|
setlocal indentexpr=GetJavascriptIndent()
|
||||||
setlocal autoindent nolisp nosmartindent
|
setlocal autoindent nolisp nosmartindent
|
||||||
@@ -21,6 +25,13 @@ setlocal indentkeys+=0],0)
|
|||||||
|
|
||||||
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
|
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys<'
|
||||||
|
|
||||||
|
" Regex of syntax group names that are or delimit string or are comments.
|
||||||
|
let b:syng_strcom = get(b:,'syng_strcom','string\|comment\|regex\|special\|doc\|template\%(braces\)\@!')
|
||||||
|
let b:syng_str = get(b:,'syng_str','string\|template\|special')
|
||||||
|
" template strings may want to be excluded when editing graphql:
|
||||||
|
" au! Filetype javascript let b:syng_str = '^\%(.*template\)\@!.*string\|special'
|
||||||
|
" au! Filetype javascript let b:syng_strcom = '^\%(.*template\)\@!.*string\|comment\|regex\|special\|doc'
|
||||||
|
|
||||||
" Only define the function once.
|
" Only define the function once.
|
||||||
if exists('*GetJavascriptIndent')
|
if exists('*GetJavascriptIndent')
|
||||||
finish
|
finish
|
||||||
@@ -36,7 +47,7 @@ if exists('*shiftwidth')
|
|||||||
endfunction
|
endfunction
|
||||||
else
|
else
|
||||||
function s:sw()
|
function s:sw()
|
||||||
return &l:shiftwidth == 0 ? &l:tabstop : &l:shiftwidth
|
return &l:shiftwidth ? &l:shiftwidth : &l:tabstop
|
||||||
endfunction
|
endfunction
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -44,271 +55,301 @@ endif
|
|||||||
" matches before pos.
|
" matches before pos.
|
||||||
let s:z = has('patch-7.4.984') ? 'z' : ''
|
let s:z = has('patch-7.4.984') ? 'z' : ''
|
||||||
|
|
||||||
|
" Expression used to check whether we should skip a match with searchpair().
|
||||||
|
let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom"
|
||||||
|
let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'"
|
||||||
|
|
||||||
|
let s:rel = has('reltime')
|
||||||
" searchpair() wrapper
|
" searchpair() wrapper
|
||||||
if has('reltime')
|
if s:rel
|
||||||
function s:GetPair(start,end,flags,skip,time,...)
|
function s:GetPair(start,end,flags,skip)
|
||||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 2000,0] + a:000),a:time)
|
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1,a:skip ==# 's:SkipFunc()' ? 2000 : 200)
|
||||||
endfunction
|
endfunction
|
||||||
else
|
else
|
||||||
function s:GetPair(start,end,flags,skip,...)
|
function s:GetPair(start,end,flags,skip)
|
||||||
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,max([prevnonblank(v:lnum) - 1000,get(a:000,1)]))
|
return searchpair('\m'.a:start,'','\m'.a:end,a:flags,a:skip,s:l1)
|
||||||
endfunction
|
endfunction
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Regex of syntax group names that are or delimit string or are comments.
|
function s:SynAt(l,c)
|
||||||
let s:syng_strcom = 'string\|comment\|regex\|special\|doc\|template\%(braces\)\@!'
|
let byte = line2byte(a:l) + a:c - 1
|
||||||
let s:syng_str = 'string\|template\|special'
|
let pos = index(s:synid_cache[0], byte)
|
||||||
let s:syng_com = 'comment\|doc'
|
if pos == -1
|
||||||
" Expression used to check whether we should skip a match with searchpair().
|
let s:synid_cache[:] += [[byte], [synIDattr(synID(a:l, a:c, 0), 'name')]]
|
||||||
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
|
|
||||||
|
|
||||||
function s:parse_cino(f) abort
|
|
||||||
return float2nr(eval(substitute(substitute(join(split(
|
|
||||||
\ matchstr(&cino,'.*'.a:f.'\zs[^,]*'), 's',1), '*'.s:W)
|
|
||||||
\ , '^-\=\zs\*','',''), '^-\=\zs\.','0.','')))
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:skip_func()
|
|
||||||
if getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
|
||||||
return eval(s:skip_expr)
|
|
||||||
elseif s:checkIn || search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn)
|
|
||||||
let s:checkIn = eval(s:skip_expr)
|
|
||||||
endif
|
endif
|
||||||
let s:looksyn = line('.')
|
return s:synid_cache[1][pos]
|
||||||
return s:checkIn
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:alternatePair(stop)
|
function s:ParseCino(f)
|
||||||
let pos = getpos('.')[1:2]
|
let [divider, n, cstr] = [0] + matchlist(&cino,
|
||||||
let pat = '[][(){};]'
|
\ '\%(.*,\)\=\%(\%d'.char2nr(a:f).'\(-\)\=\([.s0-9]*\)\)\=')[1:2]
|
||||||
while search('\m'.pat,'bW',a:stop)
|
for c in split(cstr,'\zs')
|
||||||
if s:skip_func() | continue | endif
|
if c == '.' && !divider
|
||||||
let idx = stridx('])};',s:looking_at())
|
let divider = 1
|
||||||
if idx is 3 | let pat = '[{}()]' | continue | endif
|
elseif c ==# 's'
|
||||||
if idx + 1
|
if n !~ '\d'
|
||||||
if s:GetPair(['\[','(','{'][idx], '])}'[idx],'bW','s:skip_func()',2000,a:stop) <= 0
|
return n . s:sw() + 0
|
||||||
|
endif
|
||||||
|
let n = str2nr(n) * s:sw()
|
||||||
|
break
|
||||||
|
else
|
||||||
|
let [n, divider] .= [c, 0]
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return str2nr(n) / max([str2nr(divider),1])
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Optimized {skip} expr, only callable from the search loop which
|
||||||
|
" GetJavascriptIndent does to find the containing [[{(] (side-effects)
|
||||||
|
function s:SkipFunc()
|
||||||
|
if s:top_col == 1
|
||||||
|
throw 'out of bounds'
|
||||||
|
endif
|
||||||
|
let s:top_col = 0
|
||||||
|
if s:check_in
|
||||||
|
if eval(s:skip_expr)
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
let s:check_in = 0
|
||||||
|
elseif getline('.') =~ '\%<'.col('.').'c\/.\{-}\/\|\%>'.col('.').'c[''"]\|\\$'
|
||||||
|
if eval(s:skip_expr)
|
||||||
|
let s:looksyn = a:firstline
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
elseif search('\m`\|\${\|\*\/','nW'.s:z,s:looksyn) && eval(s:skip_expr)
|
||||||
|
let s:check_in = 1
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
let [s:looksyn, s:top_col] = getpos('.')[1:2]
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:AlternatePair()
|
||||||
|
let [pat, l:for] = ['[][(){};]', 2]
|
||||||
|
while s:SearchLoop(pat,'bW','s:SkipFunc()')
|
||||||
|
if s:LookingAt() == ';'
|
||||||
|
if !l:for
|
||||||
|
if s:GetPair('{','}','bW','s:SkipFunc()')
|
||||||
|
return
|
||||||
|
endif
|
||||||
break
|
break
|
||||||
|
else
|
||||||
|
let [pat, l:for] = ['[{}();]', l:for - 1]
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
return
|
let idx = stridx('])}',s:LookingAt())
|
||||||
|
if idx == -1
|
||||||
|
return
|
||||||
|
elseif !s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
|
||||||
|
break
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
call call('cursor',pos)
|
throw 'out of bounds'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:save_pos(f,...)
|
function s:Nat(int)
|
||||||
let l:pos = getpos('.')[1:2]
|
return a:int * (a:int > 0)
|
||||||
let ret = call(a:f,a:000)
|
|
||||||
call call('cursor',l:pos)
|
|
||||||
return ret
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:syn_at(l,c)
|
function s:LookingAt()
|
||||||
return synIDattr(synID(a:l,a:c,0),'name')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:looking_at()
|
|
||||||
return getline('.')[col('.')-1]
|
return getline('.')[col('.')-1]
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:token()
|
function s:Token()
|
||||||
return s:looking_at() =~ '\k' ? expand('<cword>') : s:looking_at()
|
return s:LookingAt() =~ '\k' ? expand('<cword>') : s:LookingAt()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:previous_token()
|
function s:PreviousToken()
|
||||||
let l:pos = getpos('.')[1:2]
|
let l:col = col('.')
|
||||||
if search('\m\k\{1,}\zs\k\|\S','bW')
|
if search('\m\k\{1,}\|\S','ebW')
|
||||||
if (getline('.')[col('.')-2:col('.')-1] == '*/' || line('.') != l:pos[0] &&
|
if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm)
|
||||||
\ getline('.') =~ '\%<'.col('.').'c\/\/') && s:syn_at(line('.'),col('.')) =~? s:syng_com
|
if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm)
|
||||||
while search('\m\S\ze\_s*\/[/*]','bW')
|
return s:Token()
|
||||||
if s:syn_at(line('.'),col('.')) !~? s:syng_com
|
endif
|
||||||
return s:token()
|
call cursor(a:firstline, l:col)
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
else
|
else
|
||||||
return s:token()
|
return s:Token()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
call call('cursor',l:pos)
|
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:expr_col()
|
function s:Pure(f,...)
|
||||||
if getline('.')[col('.')-2] == ':'
|
return eval("[call(a:f,a:000),cursor(a:firstline,".col('.').")][0]")
|
||||||
return 1
|
endfunction
|
||||||
endif
|
|
||||||
|
function s:SearchLoop(pat,flags,expr)
|
||||||
|
return s:GetPair(a:pat,'\_$.',a:flags,a:expr)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:ExprCol()
|
||||||
let bal = 0
|
let bal = 0
|
||||||
while search('\m[{}?:;]','bW')
|
while s:SearchLoop('[{}?]\|\_[^:]\zs::\@!','bW',s:skip_expr)
|
||||||
if eval(s:skip_expr) | continue | endif
|
if s:LookingAt() == ':'
|
||||||
" switch (looking_at())
|
let bal -= 1
|
||||||
exe { '}': "if s:GetPair('{','}','bW',s:skip_expr,200) <= 0 | return | endif",
|
elseif s:LookingAt() == '?'
|
||||||
\ ';': "return",
|
let bal += 1
|
||||||
\ '{': "return getpos('.')[1:2] != b:js_cache[1:] && !s:IsBlock()",
|
if bal == 1
|
||||||
\ ':': "let bal -= getline('.')[max([col('.')-2,0]):col('.')] !~ '::'",
|
break
|
||||||
\ '?': "let bal += 1 | if bal > 0 | return 1 | endif" }[s:looking_at()]
|
endif
|
||||||
|
elseif s:LookingAt() == '{'
|
||||||
|
let bal = !s:IsBlock()
|
||||||
|
break
|
||||||
|
elseif !s:GetPair('{','}','bW',s:skip_expr)
|
||||||
|
break
|
||||||
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
|
return s:Nat(bal)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" configurable regexes that define continuation lines, not including (, {, or [.
|
" configurable regexes that define continuation lines, not including (, {, or [.
|
||||||
let s:opfirst = '^' . get(g:,'javascript_opfirst',
|
let s:opfirst = '^' . get(g:,'javascript_opfirst',
|
||||||
\ '\C\%([<>=,?^%|*/&]\|\([-.:+]\)\1\@!\|!=\|in\%(stanceof\)\=\>\)')
|
\ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
|
||||||
let s:continuation = get(g:,'javascript_continuation',
|
let s:continuation = get(g:,'javascript_continuation',
|
||||||
\ '\C\%([-+<>=,.~!?/*^%|&:]\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
\ '\C\%([<=,.~!?/*^%|&:]\|+\@<!+\|-\@<!-\|=\@<!>\|\<\%(typeof\|new\|delete\|void\|in\|instanceof\|await\)\)') . '$'
|
||||||
|
|
||||||
function s:continues(ln,con)
|
function s:Continues(ln,con)
|
||||||
if !cursor(a:ln, match(' '.a:con,s:continuation))
|
let tok = matchstr(a:con[-15:],s:continuation)
|
||||||
let teol = s:looking_at()
|
if tok =~ '[a-z:]'
|
||||||
if teol == '/'
|
call cursor(a:ln, len(a:con))
|
||||||
return s:syn_at(line('.'),col('.')) !~? 'regex'
|
return tok == ':' ? s:ExprCol() : s:PreviousToken() != '.'
|
||||||
elseif teol =~ '[-+>]'
|
elseif tok !~ '[/>]'
|
||||||
return getline('.')[col('.')-2] != tr(teol,'>','=')
|
return tok isnot ''
|
||||||
elseif teol =~ '\l'
|
|
||||||
return s:previous_token() != '.'
|
|
||||||
elseif teol == ':'
|
|
||||||
return s:expr_col()
|
|
||||||
endif
|
|
||||||
return 1
|
|
||||||
endif
|
endif
|
||||||
endfunction
|
return s:SynAt(a:ln, len(a:con)) !~? (tok == '>' ? 'jsflow\|^html' : 'regex')
|
||||||
|
|
||||||
" get the line of code stripped of comments and move cursor to the last
|
|
||||||
" non-comment char.
|
|
||||||
function s:Trim(ln)
|
|
||||||
let pline = substitute(getline(a:ln),'\s*$','','')
|
|
||||||
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
|
|
||||||
while l:max != -1 && s:syn_at(a:ln, strlen(pline)) =~? s:syng_com
|
|
||||||
let pline = pline[: l:max]
|
|
||||||
let l:max = max([strridx(pline,'//'), strridx(pline,'/*')])
|
|
||||||
let pline = substitute(pline[:-2],'\s*$','','')
|
|
||||||
endwhile
|
|
||||||
return pline is '' || cursor(a:ln,strlen(pline)) ? pline : pline
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Find line above 'lnum' that isn't empty or in a comment
|
|
||||||
function s:PrevCodeLine(lnum)
|
|
||||||
let [l:pos, l:n] = [getpos('.')[1:2], prevnonblank(a:lnum)]
|
|
||||||
while l:n
|
|
||||||
if getline(l:n) =~ '^\s*\/[/*]'
|
|
||||||
let l:n = prevnonblank(l:n-1)
|
|
||||||
elseif stridx(getline(l:n), '*/') + 1 && s:syn_at(l:n,1) =~? s:syng_com
|
|
||||||
call cursor(l:n,1)
|
|
||||||
keepjumps norm! [*
|
|
||||||
let l:n = search('\m\S','nbW')
|
|
||||||
else
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
endwhile
|
|
||||||
call call('cursor',l:pos)
|
|
||||||
return l:n
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Check if line 'lnum' has a balanced amount of parentheses.
|
" Check if line 'lnum' has a balanced amount of parentheses.
|
||||||
function s:Balanced(lnum)
|
function s:Balanced(lnum)
|
||||||
let l:open = 0
|
let [l:open, l:line] = [0, getline(a:lnum)]
|
||||||
let l:line = getline(a:lnum)
|
let pos = match(l:line, '[][(){}]')
|
||||||
let pos = match(l:line, '[][(){}]', 0)
|
|
||||||
while pos != -1
|
while pos != -1
|
||||||
if s:syn_at(a:lnum,pos + 1) !~? s:syng_strcom
|
if s:SynAt(a:lnum,pos + 1) !~? b:syng_strcom
|
||||||
let l:open += match(' ' . l:line[pos],'[[({]')
|
let l:open += match(' ' . l:line[pos],'[[({]')
|
||||||
if l:open < 0
|
if l:open < 0
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let pos = match(l:line, (l:open ?
|
let pos = match(l:line, !l:open ? '[][(){}]' : '()' =~ l:line[pos] ?
|
||||||
\ '['.escape(tr(l:line[pos],'({[]})',')}][{(').l:line[pos],']').']' :
|
\ '[()]' : '{}' =~ l:line[pos] ? '[{}]' : '[][]', pos + 1)
|
||||||
\ '[][(){}]'), pos + 1)
|
|
||||||
endwhile
|
endwhile
|
||||||
return !l:open
|
return !l:open
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function s:OneScope(lnum)
|
function s:OneScope()
|
||||||
let pline = s:Trim(a:lnum)
|
if s:LookingAt() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr)
|
||||||
let kw = 'else do'
|
let tok = s:PreviousToken()
|
||||||
if pline[-1:] == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
|
return (count(split('for if let while with'),tok) ||
|
||||||
if s:previous_token() =~# '^\%(await\|each\)$'
|
\ tok =~# '^await$\|^each$' && s:PreviousToken() ==# 'for') &&
|
||||||
call s:previous_token()
|
\ s:Pure('s:PreviousToken') != '.' && !(tok == 'while' && s:DoWhile())
|
||||||
let kw = 'for'
|
elseif s:Token() =~# '^else$\|^do$'
|
||||||
else
|
return s:Pure('s:PreviousToken') != '.'
|
||||||
let kw = 'for if let while with'
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
return pline[-2:] == '=>' || index(split(kw),s:token()) + 1 &&
|
return strpart(getline('.'),col('.')-2,2) == '=>'
|
||||||
\ s:save_pos('s:previous_token') != '.'
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" returns braceless levels started by 'i' and above lines * &sw. 'num' is the
|
function s:DoWhile()
|
||||||
" lineNr which encloses the entire context, 'cont' if whether line 'i' + 1 is
|
let cpos = searchpos('\m\<','cbW')
|
||||||
" a continued expression, which could have started in a braceless context
|
if s:SearchLoop('\C[{}]\|\<\%(do\|while\)\>','bW',s:skip_expr)
|
||||||
function s:iscontOne(i,num,cont)
|
if s:{s:LookingAt() == '}' && s:GetPair('{','}','bW',s:skip_expr) ?
|
||||||
let [l:i, l:num, bL] = [a:i, a:num + !a:num, 0]
|
\ 'Previous' : ''}Token() ==# 'do' && s:IsBlock()
|
||||||
let pind = a:num ? indent(l:num) + s:W : 0
|
return 1
|
||||||
let ind = indent(l:i) + (a:cont ? 0 : s:W)
|
endif
|
||||||
while l:i >= l:num && (ind > pind || l:i == l:num)
|
call call('cursor',cpos)
|
||||||
if indent(l:i) < ind && s:OneScope(l:i)
|
endif
|
||||||
let bL += s:W
|
endfunction
|
||||||
let l:i = line('.')
|
|
||||||
elseif !a:cont || bL || ind < indent(a:i)
|
" returns total offset from braceless contexts. 'num' is the lineNr which
|
||||||
|
" encloses the entire context, 'cont' if whether a:firstline is a continued
|
||||||
|
" expression, which could have started in a braceless context
|
||||||
|
function s:IsContOne(num,cont)
|
||||||
|
let [l:num, b_l] = [a:num + !a:num, 0]
|
||||||
|
let pind = a:num ? indent(a:num) + s:sw() : 0
|
||||||
|
let ind = indent('.') + !a:cont
|
||||||
|
while line('.') > l:num && ind > pind || line('.') == l:num
|
||||||
|
if indent('.') < ind && s:OneScope()
|
||||||
|
let b_l += 1
|
||||||
|
elseif !a:cont || b_l || ind < indent(a:firstline)
|
||||||
|
break
|
||||||
|
else
|
||||||
|
call cursor(0,1)
|
||||||
|
endif
|
||||||
|
let ind = min([ind, indent('.')])
|
||||||
|
if s:PreviousToken() is ''
|
||||||
break
|
break
|
||||||
endif
|
endif
|
||||||
let ind = min([ind, indent(l:i)])
|
|
||||||
let l:i = s:PrevCodeLine(l:i - 1)
|
|
||||||
endwhile
|
endwhile
|
||||||
return bL
|
return b_l
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:Class()
|
||||||
|
return (s:Token() ==# 'class' || s:PreviousToken() =~# '^class$\|^extends$') &&
|
||||||
|
\ s:PreviousToken() != '.'
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function s:IsSwitch()
|
||||||
|
return s:PreviousToken() !~ '[.*]' &&
|
||||||
|
\ (!s:GetPair('{','}','cbW',s:skip_expr) || s:IsBlock() && !s:Class())
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
|
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
|
||||||
function s:IsBlock()
|
function s:IsBlock()
|
||||||
if s:looking_at() == '{'
|
let tok = s:PreviousToken()
|
||||||
let l:n = line('.')
|
if join(s:stack) =~? 'xml\|jsx' && s:SynAt(line('.'),col('.')-1) =~? 'xml\|jsx'
|
||||||
let char = s:previous_token()
|
return tok != '{'
|
||||||
if match(s:stack,'\cxml\|jsx') + 1 && s:syn_at(line('.'),col('.')-1) =~? 'xml\|jsx'
|
elseif tok =~ '\k'
|
||||||
return char != '{'
|
if tok ==# 'type'
|
||||||
elseif char =~ '\k'
|
return s:Pure('eval',"s:PreviousToken() !~# '^\\%(im\\|ex\\)port$' || s:PreviousToken() == '.'")
|
||||||
if char ==# 'type'
|
elseif tok ==# 'of'
|
||||||
return s:previous_token() !~# '^\%(im\|ex\)port$'
|
return s:Pure('eval',"!s:GetPair('[[({]','[])}]','bW',s:skip_expr) || s:LookingAt() != '(' ||"
|
||||||
endif
|
\ ."s:{s:PreviousToken() ==# 'await' ? 'Previous' : ''}Token() !=# 'for' || s:PreviousToken() == '.'")
|
||||||
return index(split('return const let import export extends yield default delete var await void typeof throw case new of in instanceof')
|
|
||||||
\ ,char) < (line('.') != l:n) || s:save_pos('s:previous_token') == '.'
|
|
||||||
elseif char == '>'
|
|
||||||
return getline('.')[col('.')-2] == '=' || s:syn_at(line('.'),col('.')) =~? '^jsflow'
|
|
||||||
elseif char == ':'
|
|
||||||
return !s:save_pos('s:expr_col')
|
|
||||||
elseif char == '/'
|
|
||||||
return s:syn_at(line('.'),col('.')) =~? 'regex'
|
|
||||||
endif
|
endif
|
||||||
return char !~ '[=~!<*,?^%|&([]' &&
|
return index(split('return const let import export extends yield default delete var await void typeof throw case new in instanceof')
|
||||||
\ (char !~ '[-+]' || l:n != line('.') && getline('.')[col('.')-2] == char)
|
\ ,tok) < (line('.') != a:firstline) || s:Pure('s:PreviousToken') == '.'
|
||||||
|
elseif tok == '>'
|
||||||
|
return getline('.')[col('.')-2] == '=' || s:SynAt(line('.'),col('.')) =~? 'jsflow\|^html'
|
||||||
|
elseif tok == '*'
|
||||||
|
return s:Pure('s:PreviousToken') == ':'
|
||||||
|
elseif tok == ':'
|
||||||
|
return s:Pure('eval',"s:PreviousToken() =~ '^\\K\\k*$' && !s:ExprCol()")
|
||||||
|
elseif tok == '/'
|
||||||
|
return s:SynAt(line('.'),col('.')) =~? 'regex'
|
||||||
|
elseif tok !~ '[=~!<,.?^%|&([]'
|
||||||
|
return tok !~ '[-+]' || line('.') != a:firstline && getline('.')[col('.')-2] == tok
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function GetJavascriptIndent()
|
function GetJavascriptIndent()
|
||||||
let b:js_cache = get(b:,'js_cache',[0,0,0])
|
let b:js_cache = get(b:,'js_cache',[0,0,0])
|
||||||
" Get the current line.
|
let s:synid_cache = [[],[]]
|
||||||
call cursor(v:lnum,1)
|
let l:line = getline(v:lnum)
|
||||||
let l:line = getline('.')
|
|
||||||
" use synstack as it validates syn state and works in an empty line
|
" use synstack as it validates syn state and works in an empty line
|
||||||
let s:stack = map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
|
let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')")
|
||||||
let syns = get(s:stack,-1,'')
|
|
||||||
|
|
||||||
" start with strings,comments,etc.
|
" start with strings,comments,etc.
|
||||||
if syns =~? s:syng_com
|
if s:stack[-1] =~? 'comment\|doc'
|
||||||
if l:line =~ '^\s*\*'
|
if l:line =~ '^\s*\*'
|
||||||
return cindent(v:lnum)
|
return cindent(v:lnum)
|
||||||
elseif l:line !~ '^\s*\/[/*]'
|
elseif l:line !~ '^\s*\/[/*]'
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
elseif syns =~? s:syng_str
|
elseif s:stack[-1] =~? b:syng_str
|
||||||
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
|
if b:js_cache[0] == v:lnum - 1 && s:Balanced(v:lnum-1)
|
||||||
let b:js_cache[0] = v:lnum
|
let b:js_cache[0] = v:lnum
|
||||||
endif
|
endif
|
||||||
return -1
|
return -1
|
||||||
endif
|
endif
|
||||||
let l:lnum = s:PrevCodeLine(v:lnum - 1)
|
|
||||||
if !l:lnum
|
let s:l1 = max([0,prevnonblank(v:lnum) - (s:rel ? 2000 : 1000),
|
||||||
|
\ get(get(b:,'hi_indent',{}),'blocklnr')])
|
||||||
|
call cursor(v:lnum,1)
|
||||||
|
if s:PreviousToken() is ''
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
let [l:lnum, pline] = [line('.'), getline('.')[:col('.')-1]]
|
||||||
|
|
||||||
let l:line = substitute(l:line,'^\s*','','')
|
let l:line = substitute(l:line,'^\s*','','')
|
||||||
|
let l:line_raw = l:line
|
||||||
if l:line[:1] == '/*'
|
if l:line[:1] == '/*'
|
||||||
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
|
let l:line = substitute(l:line,'^\%(\/\*.\{-}\*\/\s*\)*','','')
|
||||||
endif
|
endif
|
||||||
@@ -317,60 +358,91 @@ function GetJavascriptIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" the containing paren, bracket, or curly. Many hacks for performance
|
" the containing paren, bracket, or curly. Many hacks for performance
|
||||||
|
call cursor(v:lnum,1)
|
||||||
let idx = index([']',')','}'],l:line[0])
|
let idx = index([']',')','}'],l:line[0])
|
||||||
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum &&
|
if b:js_cache[0] > l:lnum && b:js_cache[0] < v:lnum ||
|
||||||
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum))
|
\ b:js_cache[0] == l:lnum && s:Balanced(l:lnum)
|
||||||
call call('cursor',b:js_cache[1:])
|
call call('cursor',b:js_cache[1:])
|
||||||
else
|
else
|
||||||
let [s:looksyn, s:checkIn, top] = [v:lnum - 1, 0, (!indent(l:lnum) &&
|
let [s:looksyn, s:top_col, s:check_in, s:l1] = [v:lnum - 1,0,0,
|
||||||
\ s:syn_at(l:lnum,1) !~? s:syng_str) * l:lnum]
|
\ max([s:l1, &smc ? search('\m^.\{'.&smc.',}','nbW',s:l1 + 1) + 1 : 0])]
|
||||||
if idx + 1
|
try
|
||||||
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:skip_func()',2000,top)
|
if idx != -1
|
||||||
elseif getline(v:lnum) !~ '^\S' && syns =~? 'block'
|
call s:GetPair(['\[','(','{'][idx],'])}'[idx],'bW','s:SkipFunc()')
|
||||||
call s:GetPair('{','}','bW','s:skip_func()',2000,top)
|
elseif getline(v:lnum) !~ '^\S' && s:stack[-1] =~? 'block\|^jsobject$'
|
||||||
else
|
call s:GetPair('{','}','bW','s:SkipFunc()')
|
||||||
call s:alternatePair(top)
|
else
|
||||||
endif
|
call s:AlternatePair()
|
||||||
|
endif
|
||||||
|
catch /^\Cout of bounds$/
|
||||||
|
call cursor(v:lnum,1)
|
||||||
|
endtry
|
||||||
|
let b:js_cache[1:] = line('.') == v:lnum ? [0,0] : getpos('.')[1:2]
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:js_cache = [v:lnum] + (line('.') == v:lnum ? [0,0] : getpos('.')[1:2])
|
let [b:js_cache[0], num] = [v:lnum, b:js_cache[1]]
|
||||||
let num = b:js_cache[1]
|
|
||||||
|
|
||||||
let [s:W, isOp, bL, switch_offset] = [s:sw(),0,0,0]
|
let [num_ind, is_op, b_l, l:switch_offset] = [s:Nat(indent(num)),0,0,0]
|
||||||
if !num || s:IsBlock()
|
if !num || s:LookingAt() == '{' && s:IsBlock()
|
||||||
let ilnum = line('.')
|
let ilnum = line('.')
|
||||||
let pline = s:save_pos('s:Trim',l:lnum)
|
if num && s:LookingAt() == ')' && s:GetPair('(',')','bW',s:skip_expr)
|
||||||
if num && s:looking_at() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0
|
if ilnum == num
|
||||||
let num = ilnum == num ? line('.') : num
|
let [num, num_ind] = [line('.'), indent('.')]
|
||||||
if idx < 0 && s:previous_token() ==# 'switch' && s:previous_token() != '.'
|
endif
|
||||||
if &cino !~ ':'
|
if idx == -1 && s:PreviousToken() ==# 'switch' && s:IsSwitch()
|
||||||
let switch_offset = s:W
|
let l:switch_offset = &cino !~ ':' ? s:sw() : s:ParseCino(':')
|
||||||
else
|
|
||||||
let switch_offset = max([-indent(num),s:parse_cino(':')])
|
|
||||||
endif
|
|
||||||
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
|
if pline[-1:] != '.' && l:line =~# '^\%(default\|case\)\>'
|
||||||
return indent(num) + switch_offset
|
return s:Nat(num_ind + l:switch_offset)
|
||||||
|
elseif &cino =~ '='
|
||||||
|
let l:case_offset = s:ParseCino('=')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if idx < 0 && pline[-1:] !~ '[{;]'
|
if idx == -1 && pline[-1:] !~ '[{;]'
|
||||||
let isOp = (l:line =~# s:opfirst || s:continues(l:lnum,pline)) * s:W
|
let sol = matchstr(l:line,s:opfirst)
|
||||||
let bL = s:iscontOne(l:lnum,b:js_cache[1],isOp)
|
if sol is '' || sol == '/' && s:SynAt(v:lnum,
|
||||||
let bL -= (bL && l:line[0] == '{') * s:W
|
\ 1 + len(getline(v:lnum)) - len(l:line)) =~? 'regex'
|
||||||
|
if s:Continues(l:lnum,pline)
|
||||||
|
let is_op = s:sw()
|
||||||
|
endif
|
||||||
|
elseif num && sol =~# '^\%(in\%(stanceof\)\=\|\*\)$'
|
||||||
|
call call('cursor',b:js_cache[1:])
|
||||||
|
if s:PreviousToken() =~ '\k' && s:Class()
|
||||||
|
return num_ind + s:sw()
|
||||||
|
endif
|
||||||
|
let is_op = s:sw()
|
||||||
|
else
|
||||||
|
let is_op = s:sw()
|
||||||
|
endif
|
||||||
|
call cursor(l:lnum, len(pline))
|
||||||
|
let b_l = s:Nat(s:IsContOne(b:js_cache[1],is_op) - (!is_op && l:line =~ '^{')) * s:sw()
|
||||||
endif
|
endif
|
||||||
elseif idx < 0 && getline(b:js_cache[1])[b:js_cache[2]-1] == '(' && &cino =~ '('
|
elseif idx.s:LookingAt().&cino =~ '^-1(.*(' && (search('\m\S','nbW',num) || s:ParseCino('U'))
|
||||||
let pval = s:parse_cino('(')
|
let pval = s:ParseCino('(')
|
||||||
return !pval ? (s:parse_cino('w') ? 0 : -(!!search('\m\S','W'.s:z,num))) + virtcol('.') :
|
if !pval
|
||||||
\ max([indent('.') + pval + (s:GetPair('(',')','nbrmW',s:skip_expr,100,num) * s:W),0])
|
let [Wval, vcol] = [s:ParseCino('W'), virtcol('.')]
|
||||||
|
if search('\m\S','W',num)
|
||||||
|
return s:ParseCino('w') ? vcol : virtcol('.')-1
|
||||||
|
endif
|
||||||
|
return Wval ? s:Nat(num_ind + Wval) : vcol
|
||||||
|
endif
|
||||||
|
return s:Nat(num_ind + pval + searchpair('\m(','','\m)','nbrmW',s:skip_expr,num) * s:sw())
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" main return
|
" main return
|
||||||
if l:line =~ '^\%([])}]\||}\)'
|
if l:line =~ '^[])}]\|^|}'
|
||||||
return max([indent(num),0])
|
if l:line_raw[0] == ')' && getline(num)[b:js_cache[2]-1] == '('
|
||||||
|
if s:ParseCino('M')
|
||||||
|
return indent(l:lnum)
|
||||||
|
elseif &cino =~# 'm' && !s:ParseCino('m')
|
||||||
|
return virtcol('.') - 1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
return num_ind
|
||||||
elseif num
|
elseif num
|
||||||
return indent(num) + s:W + switch_offset + bL + isOp
|
return s:Nat(num_ind + get(l:,'case_offset',s:sw()) + l:switch_offset + b_l + is_op)
|
||||||
endif
|
endif
|
||||||
return bL + isOp
|
return b_l + is_op
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: JSON
|
" Language: JSON
|
||||||
" Mantainer: Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
|
" Mantainer: Eli Parra <eli@elzr.com> https://github.com/elzr/vim-json
|
||||||
" Last Change: 2014 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
" https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
|
" https://github.com/jakar/vim-json/commit/20b650e22aa750c4ab6a66aa646bdd95d7cd548a#diff-e81fc111b2052e306d126bd9989f7b7c
|
||||||
" Original Author: Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
|
" Original Author: Rogerz Zhang <rogerz.zhang at gmail.com> http://github.com/rogerz/vim-json
|
||||||
" Acknowledgement: Based off of vim-javascript maintained by Darrick Wiebe
|
" Acknowledgement: Based off of vim-javascript maintained by Darrick Wiebe
|
||||||
@@ -141,7 +141,7 @@ function GetJSONIndent()
|
|||||||
|
|
||||||
" If the previous line ended with a block opening, add a level of indent.
|
" If the previous line ended with a block opening, add a level of indent.
|
||||||
" if s:Match(lnum, s:block_regex)
|
" if s:Match(lnum, s:block_regex)
|
||||||
" return indent(lnum) + &sw
|
" return indent(lnum) + shiftwidth()
|
||||||
" endif
|
" endif
|
||||||
|
|
||||||
" If the previous line contained an opening bracket, and we are still in it,
|
" If the previous line contained an opening bracket, and we are still in it,
|
||||||
@@ -149,7 +149,7 @@ function GetJSONIndent()
|
|||||||
if line =~ '[[({]'
|
if line =~ '[[({]'
|
||||||
let counts = s:LineHasOpeningBrackets(lnum)
|
let counts = s:LineHasOpeningBrackets(lnum)
|
||||||
if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
|
if counts[0] == '1' || counts[1] == '1' || counts[2] == '1'
|
||||||
return ind + &sw
|
return ind + shiftwidth()
|
||||||
else
|
else
|
||||||
call cursor(v:lnum, vcol)
|
call cursor(v:lnum, vcol)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: Liquid
|
" Language: Liquid
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Last Change: 2016 Aug 29
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
finish
|
finish
|
||||||
@@ -54,7 +54,7 @@ function! GetLiquidIndent(...)
|
|||||||
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
||||||
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
|
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
|
||||||
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
||||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
let sw = shiftwidth()
|
||||||
let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
|
let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
|
||||||
let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
|
let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
|
||||||
let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
|
let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
|
||||||
|
|||||||
@@ -38,24 +38,24 @@ function! GetLogtalkIndent()
|
|||||||
endif
|
endif
|
||||||
" Check for entity opening directive on previous line
|
" Check for entity opening directive on previous line
|
||||||
if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$'
|
if pline =~ '^\s*:-\s\(object\|protocol\|category\)\ze(.*,$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" Check for clause head on previous line
|
" Check for clause head on previous line
|
||||||
elseif pline =~ ':-\s*\(%.*\)\?$'
|
elseif pline =~ ':-\s*\(%.*\)\?$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" Check for entity closing directive on previous line
|
" Check for entity closing directive on previous line
|
||||||
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
|
elseif pline =~ '^\s*:-\send_\(object\|protocol\|category\)\.\(%.*\)\?$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
" Check for end of clause on previous line
|
" Check for end of clause on previous line
|
||||||
elseif pline =~ '\.\s*\(%.*\)\?$'
|
elseif pline =~ '\.\s*\(%.*\)\?$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for opening conditional on previous line
|
" Check for opening conditional on previous line
|
||||||
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
|
if pline =~ '^\s*\([(;]\|->\)' && pline !~ '\.\s*\(%.*\)\?$' && pline !~ '^.*\([)][,]\s*\(%.*\)\?$\)'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for closing an unclosed paren, or middle ; or ->
|
" Check for closing an unclosed paren, or middle ; or ->
|
||||||
if line =~ '^\s*\([);]\|->\)'
|
if line =~ '^\s*\([);]\|->\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Lua script
|
" Language: Lua script
|
||||||
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
|
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
|
||||||
" First Author: Max Ischenko <mfi 'at' ukr.net>
|
" First Author: Max Ischenko <mfi 'at' ukr.net>
|
||||||
" Last Change: 2016 Jan 10
|
" Last Change: 2017 Jun 13
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists("b:did_indent")
|
if exists("b:did_indent")
|
||||||
@@ -48,7 +48,7 @@ function! GetLuaIndent()
|
|||||||
" Add 'shiftwidth' if what we found previously is not in a comment and
|
" Add 'shiftwidth' if what we found previously is not in a comment and
|
||||||
" an "end" or "until" is not present on the same line.
|
" an "end" or "until" is not present on the same line.
|
||||||
if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>'
|
if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>'
|
||||||
let ind = ind + &shiftwidth
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ function! GetLuaIndent()
|
|||||||
" This is the part that requires 'indentkeys'.
|
" This is the part that requires 'indentkeys'.
|
||||||
let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)')
|
let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)')
|
||||||
if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment"
|
if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment"
|
||||||
let ind = ind - &shiftwidth
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ function GetMatlabIndent(lnum)
|
|||||||
" See if this line does not follow the line right after an openblock
|
" See if this line does not follow the line right after an openblock
|
||||||
if getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
if getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
||||||
" See if the user has already dedented
|
" See if the user has already dedented
|
||||||
elseif indent(v:lnum) > curind - &sw
|
elseif indent(v:lnum) > curind - shiftwidth()
|
||||||
" If not, recommend one dedent
|
" If not, recommend one dedent
|
||||||
let curind = curind - &sw
|
let curind = curind - shiftwidth()
|
||||||
else
|
else
|
||||||
" Otherwise, trust the user
|
" Otherwise, trust the user
|
||||||
return -1
|
return -1
|
||||||
@@ -56,9 +56,9 @@ function GetMatlabIndent(lnum)
|
|||||||
" If the previous line opened a block
|
" If the previous line opened a block
|
||||||
elseif getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
elseif getline(plnum) =~ '^\s*\(for\|if\|else\|elseif\|case\|while\|switch\|try\|otherwise\|catch\)\>'
|
||||||
" See if the user has already indented
|
" See if the user has already indented
|
||||||
if indent(v:lnum) < curind + &sw
|
if indent(v:lnum) < curind + shiftwidth()
|
||||||
"If not, recommend indent
|
"If not, recommend indent
|
||||||
let curind = curind + &sw
|
let curind = curind + shiftwidth()
|
||||||
else
|
else
|
||||||
" Otherwise, trust the user
|
" Otherwise, trust the user
|
||||||
return -1
|
return -1
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ function GetMmaIndent()
|
|||||||
" also, indent only if this line if this line isn't starting a new
|
" also, indent only if this line if this line isn't starting a new
|
||||||
" block... TODO - fix this with indentkeys?
|
" block... TODO - fix this with indentkeys?
|
||||||
if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]'
|
if getline(v:lnum-1) =~ '\\\@<!\%(\[[^\]]*\|([^)]*\|{[^}]*\)$' && getline(v:lnum) !~ '\s\+[\[({]'
|
||||||
let ind = ind+&sw
|
let ind = ind+shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" if this line had unmatched closing block,
|
" if this line had unmatched closing block,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
" Mike Leary <leary@nwlink.com>
|
" Mike Leary <leary@nwlink.com>
|
||||||
" Markus Mottl <markus.mottl@gmail.com>
|
" Markus Mottl <markus.mottl@gmail.com>
|
||||||
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
|
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
|
||||||
" Last Change: 2013 Jun 29
|
" Last Change: 2017 Jun 13
|
||||||
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
|
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
|
||||||
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
|
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
|
||||||
" 2013 June - commented textwidth (Marc Weber)
|
" 2013 June - commented textwidth (Marc Weber)
|
||||||
@@ -101,7 +101,7 @@ function! GetOCamlIndent()
|
|||||||
|
|
||||||
" Return double 'shiftwidth' after lines matching:
|
" Return double 'shiftwidth' after lines matching:
|
||||||
if lline =~ '^\s*|.*->\s*$'
|
if lline =~ '^\s*|.*->\s*$'
|
||||||
return ind + &sw + &sw
|
return ind + 2 * shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
@@ -172,7 +172,7 @@ function! GetOCamlIndent()
|
|||||||
" Indent if current line begins with 'and':
|
" Indent if current line begins with 'and':
|
||||||
elseif line =~ '^\s*and\>'
|
elseif line =~ '^\s*and\>'
|
||||||
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
|
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
|
||||||
return ind - &sw
|
return ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent if current line begins with 'with':
|
" Indent if current line begins with 'with':
|
||||||
@@ -199,14 +199,14 @@ function! GetOCamlIndent()
|
|||||||
" or 'method':
|
" or 'method':
|
||||||
elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>'
|
elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>'
|
||||||
if lline !~ s:obj
|
if lline !~ s:obj
|
||||||
return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + &sw
|
return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Add a 'shiftwidth' after lines ending with:
|
" Add a 'shiftwidth' after lines ending with:
|
||||||
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
|
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
|
|
||||||
" Back to normal indent after lines ending with ';;':
|
" Back to normal indent after lines ending with ';;':
|
||||||
elseif lline =~ ';;\s*$' && lline !~ '^\s*;;'
|
elseif lline =~ ';;\s*$' && lline !~ '^\s*;;'
|
||||||
@@ -263,7 +263,7 @@ function! GetOCamlIndent()
|
|||||||
|
|
||||||
" Subtract a 'shiftwidth' after lines matching 'match ... with parser':
|
" Subtract a 'shiftwidth' after lines matching 'match ... with parser':
|
||||||
if lline =~ '\<match\>.*\<with\>\s*\<parser\s*$'
|
if lline =~ '\<match\>.*\<with\>\s*\<parser\s*$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ function GetOccamIndent()
|
|||||||
if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
|
if line =~ s:FirstLevelIndent || (line =~ s:FirstLevelNonColonEndIndent && line !~ s:ColonEnd)
|
||||||
\ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
|
\ || (line !~ s:ColonStart && (prevline =~ s:SecondLevelIndent
|
||||||
\ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
|
\ || (prevline =~ s:SecondLevelNonColonEndIndent && prevline !~ s:ColonEnd)))
|
||||||
let curindent = curindent + &shiftwidth
|
let curindent = curindent + shiftwidth()
|
||||||
|
|
||||||
" Restore magic
|
" Restore magic
|
||||||
if !save_magic|setlocal nomagic|endif
|
if !save_magic|setlocal nomagic|endif
|
||||||
@@ -153,7 +153,7 @@ function GetOccamIndent()
|
|||||||
|
|
||||||
while !found
|
while !found
|
||||||
|
|
||||||
if indent(prevlinenum) == curindent - &shiftwidth
|
if indent(prevlinenum) == curindent - shiftwidth()
|
||||||
let found = 1
|
let found = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -171,7 +171,7 @@ function GetOccamIndent()
|
|||||||
|
|
||||||
if prevlinenum > 0
|
if prevlinenum > 0
|
||||||
if getline(prevlinenum) =~ s:SecondLevelIndent
|
if getline(prevlinenum) =~ s:SecondLevelIndent
|
||||||
let curindent = curindent + &shiftwidth
|
let curindent = curindent + shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Pascal
|
" Language: Pascal
|
||||||
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
|
" Maintainer: Neil Carter <n.carter@swansea.ac.uk>
|
||||||
" Created: 2004 Jul 13
|
" Created: 2004 Jul 13
|
||||||
" Last Change: 2011 Apr 01
|
" Last Change: 2017 Jun 13
|
||||||
"
|
"
|
||||||
" This is version 2.0, a complete rewrite.
|
" This is version 2.0, a complete rewrite.
|
||||||
"
|
"
|
||||||
@@ -102,12 +102,12 @@ function! GetPascalIndent( line_num )
|
|||||||
|
|
||||||
" If the PREVIOUS LINE ended in these items, always indent
|
" If the PREVIOUS LINE ended in these items, always indent
|
||||||
if prev_codeline =~ '\<\(type\|const\|var\)$'
|
if prev_codeline =~ '\<\(type\|const\|var\)$'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if prev_codeline =~ '\<repeat$'
|
if prev_codeline =~ '\<repeat$'
|
||||||
if this_codeline !~ '^\s*until\>'
|
if this_codeline !~ '^\s*until\>'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
else
|
else
|
||||||
return indnt
|
return indnt
|
||||||
endif
|
endif
|
||||||
@@ -115,7 +115,7 @@ function! GetPascalIndent( line_num )
|
|||||||
|
|
||||||
if prev_codeline =~ '\<\(begin\|record\)$'
|
if prev_codeline =~ '\<\(begin\|record\)$'
|
||||||
if this_codeline !~ '^\s*end\>'
|
if this_codeline !~ '^\s*end\>'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
else
|
else
|
||||||
return indnt
|
return indnt
|
||||||
endif
|
endif
|
||||||
@@ -125,10 +125,10 @@ function! GetPascalIndent( line_num )
|
|||||||
" followed by "begin"
|
" followed by "begin"
|
||||||
if prev_codeline =~ '\<\(\|else\|then\|do\)$' || prev_codeline =~ ':$'
|
if prev_codeline =~ '\<\(\|else\|then\|do\)$' || prev_codeline =~ ':$'
|
||||||
if this_codeline !~ '^\s*begin\>'
|
if this_codeline !~ '^\s*begin\>'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
else
|
else
|
||||||
" If it does start with "begin" then keep the same indent
|
" If it does start with "begin" then keep the same indent
|
||||||
"return indnt + &shiftwidth
|
"return indnt + shiftwidth()
|
||||||
return indnt
|
return indnt
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -137,7 +137,7 @@ function! GetPascalIndent( line_num )
|
|||||||
" only the line before the current one. TODO: Get it working for
|
" only the line before the current one. TODO: Get it working for
|
||||||
" parameter lists longer than two lines.
|
" parameter lists longer than two lines.
|
||||||
if prev_codeline =~ '([^)]\+$'
|
if prev_codeline =~ '([^)]\+$'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -146,7 +146,7 @@ function! GetPascalIndent( line_num )
|
|||||||
" Lines starting with "else", but not following line ending with
|
" Lines starting with "else", but not following line ending with
|
||||||
" "end".
|
" "end".
|
||||||
if this_codeline =~ '^\s*else\>' && prev_codeline !~ '\<end$'
|
if this_codeline =~ '^\s*else\>' && prev_codeline !~ '\<end$'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Lines after a single-statement branch/loop.
|
" Lines after a single-statement branch/loop.
|
||||||
@@ -160,16 +160,16 @@ function! GetPascalIndent( line_num )
|
|||||||
" additional unindentation.
|
" additional unindentation.
|
||||||
if this_codeline =~ '^\s*\(end;\|except\|finally\|\)$'
|
if this_codeline =~ '^\s*\(end;\|except\|finally\|\)$'
|
||||||
" Note that we don't return from here.
|
" Note that we don't return from here.
|
||||||
return indnt - &shiftwidth - &shiftwidth
|
return indnt - 2 * shiftwidth()
|
||||||
endif
|
endif
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Lines starting with "until" or "end". This rule must be overridden
|
" Lines starting with "until" or "end". This rule must be overridden
|
||||||
" by the one for "end" after a single-statement branch/loop. In
|
" by the one for "end" after a single-statement branch/loop. In
|
||||||
" other words that rule should come before this one.
|
" other words that rule should come before this one.
|
||||||
if this_codeline =~ '^\s*\(end\|until\)\>'
|
if this_codeline =~ '^\s*\(end\|until\)\>'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ function! GetPascalIndent( line_num )
|
|||||||
|
|
||||||
" If the PREVIOUS LINE ended in these items, always indent.
|
" If the PREVIOUS LINE ended in these items, always indent.
|
||||||
if prev_codeline =~ '^\s*\(unit\|uses\|try\|except\|finally\|private\|protected\|public\|published\)$'
|
if prev_codeline =~ '^\s*\(unit\|uses\|try\|except\|finally\|private\|protected\|public\|published\)$'
|
||||||
return indnt + &shiftwidth
|
return indnt + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" ???? Indent "procedure" and "functions" if they appear within an
|
" ???? Indent "procedure" and "functions" if they appear within an
|
||||||
@@ -212,11 +212,11 @@ function! GetPascalIndent( line_num )
|
|||||||
" UNINDENT ONCE
|
" UNINDENT ONCE
|
||||||
|
|
||||||
if this_codeline =~ '^\s*\(except\|finally\)$'
|
if this_codeline =~ '^\s*\(except\|finally\)$'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if this_codeline =~ '^\s*\(private\|protected\|public\|published\)$'
|
if this_codeline =~ '^\s*\(private\|protected\|public\|published\)$'
|
||||||
return indnt - &shiftwidth
|
return indnt - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||||
" Homepage: http://github.com/vim-perl/vim-perl
|
" Homepage: http://github.com/vim-perl/vim-perl
|
||||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||||
" Last Change: 2013-07-24
|
" Last Change: 2017-01-04
|
||||||
|
|
||||||
" Suggestions and improvements by :
|
" Suggestions and improvements by :
|
||||||
" Aaron J. Sherman (use syntax for hints)
|
" Aaron J. Sherman (use syntax for hints)
|
||||||
@@ -48,11 +48,6 @@ function! GetPerlIndent()
|
|||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Don't reindent comments on first column
|
|
||||||
if cline =~ '^#.'
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Get current syntax item at the line's first char
|
" Get current syntax item at the line's first char
|
||||||
let csynid = ''
|
let csynid = ''
|
||||||
if b:indent_use_syntax
|
if b:indent_use_syntax
|
||||||
@@ -134,13 +129,14 @@ function! GetPerlIndent()
|
|||||||
\ || synid == "perlMatchStartEnd"
|
\ || synid == "perlMatchStartEnd"
|
||||||
\ || synid == "perlHereDoc"
|
\ || synid == "perlHereDoc"
|
||||||
\ || synid == "perlBraces"
|
\ || synid == "perlBraces"
|
||||||
|
\ || synid == "perlStatementIndirObj"
|
||||||
\ || synid =~ "^perlFiledescStatement"
|
\ || synid =~ "^perlFiledescStatement"
|
||||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||||
let brace = strpart(line, bracepos, 1)
|
let brace = strpart(line, bracepos, 1)
|
||||||
if brace == '(' || brace == '{' || brace == '['
|
if brace == '(' || brace == '{' || brace == '['
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
else
|
else
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let bracepos = match(line, braceclass, bracepos + 1)
|
let bracepos = match(line, braceclass, bracepos + 1)
|
||||||
@@ -151,26 +147,27 @@ function! GetPerlIndent()
|
|||||||
if synid == ""
|
if synid == ""
|
||||||
\ || synid == "perlMatchStartEnd"
|
\ || synid == "perlMatchStartEnd"
|
||||||
\ || synid == "perlBraces"
|
\ || synid == "perlBraces"
|
||||||
|
\ || synid == "perlStatementIndirObj"
|
||||||
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
\ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
|
if line =~ '[{[(]\s*\(#[^])}]*\)\=$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
if cline =~ '^\s*[])}]'
|
if cline =~ '^\s*[])}]'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent lines that begin with 'or' or 'and'
|
" Indent lines that begin with 'or' or 'and'
|
||||||
if cline =~ '^\s*\(or\|and\)\>'
|
if cline =~ '^\s*\(or\|and\)\>'
|
||||||
if line !~ '^\s*\(or\|and\)\>'
|
if line !~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(or\|and\)\>'
|
elseif line =~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
" Maintainer: vim-perl <vim-perl@googlegroups.com>
|
||||||
" Homepage: http://github.com/vim-perl/vim-perl
|
" Homepage: http://github.com/vim-perl/vim-perl
|
||||||
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
|
||||||
" Last Change: 2013-07-21
|
" Last Change: 2017 Jun 13
|
||||||
" Contributors: Andy Lester <andy@petdance.com>
|
" Contributors: Andy Lester <andy@petdance.com>
|
||||||
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
" Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
|
||||||
"
|
"
|
||||||
@@ -107,19 +107,19 @@ function! GetPerl6Indent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
|
if line =~ '[<«\[{(]\s*\(#[^)}\]»>]*\)\=$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
if cline =~ '^\s*[)}\]»>]'
|
if cline =~ '^\s*[)}\]»>]'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Indent lines that begin with 'or' or 'and'
|
" Indent lines that begin with 'or' or 'and'
|
||||||
if cline =~ '^\s*\(or\|and\)\>'
|
if cline =~ '^\s*\(or\|and\)\>'
|
||||||
if line !~ '^\s*\(or\|and\)\>'
|
if line !~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
elseif line =~ '^\s*\(or\|and\)\>'
|
elseif line =~ '^\s*\(or\|and\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
|
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
|
||||||
" URL: http://www.2072productions.com/vim/indent/php.vim
|
" URL: http://www.2072productions.com/vim/indent/php.vim
|
||||||
" Home: https://github.com/2072/PHP-Indenting-for-VIm
|
" Home: https://github.com/2072/PHP-Indenting-for-VIm
|
||||||
" Last Change: 2017 March 12th
|
" Last Change: 2017 Jun 13
|
||||||
" Version: 1.62
|
" Version: 1.62
|
||||||
"
|
"
|
||||||
"
|
"
|
||||||
@@ -50,25 +50,15 @@ let b:did_indent = 1
|
|||||||
|
|
||||||
let g:php_sync_method = 0
|
let g:php_sync_method = 0
|
||||||
|
|
||||||
if exists('*shiftwidth')
|
|
||||||
function! s:sw()
|
|
||||||
return shiftwidth()
|
|
||||||
endfunction
|
|
||||||
else
|
|
||||||
function! s:sw()
|
|
||||||
return &shiftwidth
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
if exists("PHP_default_indenting")
|
if exists("PHP_default_indenting")
|
||||||
let b:PHP_default_indenting = PHP_default_indenting * s:sw()
|
let b:PHP_default_indenting = PHP_default_indenting * shiftwidth()
|
||||||
else
|
else
|
||||||
let b:PHP_default_indenting = 0
|
let b:PHP_default_indenting = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists("PHP_outdentSLComments")
|
if exists("PHP_outdentSLComments")
|
||||||
let b:PHP_outdentSLComments = PHP_outdentSLComments * s:sw()
|
let b:PHP_outdentSLComments = PHP_outdentSLComments * shiftwidth()
|
||||||
else
|
else
|
||||||
let b:PHP_outdentSLComments = 0
|
let b:PHP_outdentSLComments = 0
|
||||||
endif
|
endif
|
||||||
@@ -357,7 +347,7 @@ function! FindTheSwitchIndent (lnum) " {{{
|
|||||||
let test = GetLastRealCodeLNum(a:lnum - 1)
|
let test = GetLastRealCodeLNum(a:lnum - 1)
|
||||||
|
|
||||||
if test <= 1
|
if test <= 1
|
||||||
return indent(1) - s:sw() * b:PHP_vintage_case_default_indent
|
return indent(1) - shiftwidth() * b:PHP_vintage_case_default_indent
|
||||||
end
|
end
|
||||||
|
|
||||||
while getline(test) =~ '^\s*}' && test > 1
|
while getline(test) =~ '^\s*}' && test > 1
|
||||||
@@ -371,7 +361,7 @@ function! FindTheSwitchIndent (lnum) " {{{
|
|||||||
if getline(test) =~# '^\s*switch\>'
|
if getline(test) =~# '^\s*switch\>'
|
||||||
return indent(test)
|
return indent(test)
|
||||||
elseif getline(test) =~# s:defaultORcase
|
elseif getline(test) =~# s:defaultORcase
|
||||||
return indent(test) - s:sw() * b:PHP_vintage_case_default_indent
|
return indent(test) - shiftwidth() * b:PHP_vintage_case_default_indent
|
||||||
else
|
else
|
||||||
return FindTheSwitchIndent(test)
|
return FindTheSwitchIndent(test)
|
||||||
endif
|
endif
|
||||||
@@ -444,7 +434,7 @@ function! GetPhpIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if b:PHP_default_indenting
|
if b:PHP_default_indenting
|
||||||
let b:PHP_default_indenting = g:PHP_default_indenting * s:sw()
|
let b:PHP_default_indenting = g:PHP_default_indenting * shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let cline = getline(v:lnum)
|
let cline = getline(v:lnum)
|
||||||
@@ -701,7 +691,7 @@ function! GetPhpIndent()
|
|||||||
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
|
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
|
||||||
return indent(FindTheIfOfAnElse(v:lnum, 1))
|
return indent(FindTheIfOfAnElse(v:lnum, 1))
|
||||||
elseif cline =~# s:defaultORcase
|
elseif cline =~# s:defaultORcase
|
||||||
return FindTheSwitchIndent(v:lnum) + s:sw() * b:PHP_vintage_case_default_indent
|
return FindTheSwitchIndent(v:lnum) + shiftwidth() * b:PHP_vintage_case_default_indent
|
||||||
elseif cline =~ '^\s*)\=\s*{'
|
elseif cline =~ '^\s*)\=\s*{'
|
||||||
let previous_line = last_line
|
let previous_line = last_line
|
||||||
let last_line_num = lnum
|
let last_line_num = lnum
|
||||||
@@ -713,7 +703,7 @@ function! GetPhpIndent()
|
|||||||
let ind = indent(last_line_num)
|
let ind = indent(last_line_num)
|
||||||
|
|
||||||
if b:PHP_BracesAtCodeLevel
|
if b:PHP_BracesAtCodeLevel
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
@@ -724,7 +714,7 @@ function! GetPhpIndent()
|
|||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
|
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
|
||||||
let ind = ind + s:sw() " we indent one level further when the preceding line is not stated
|
let ind = ind + shiftwidth() " we indent one level further when the preceding line is not stated
|
||||||
return ind + addSpecial
|
return ind + addSpecial
|
||||||
|
|
||||||
elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated
|
elseif (ind != b:PHP_default_indenting || last_line =~ '^[)\]]' ) && last_line =~ terminated
|
||||||
@@ -823,7 +813,7 @@ function! GetPhpIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !dontIndent && (!b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{')
|
if !dontIndent && (!b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{')
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
|
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
|
||||||
@@ -841,17 +831,17 @@ function! GetPhpIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
elseif last_line =~ '^\s*'.s:blockstart
|
elseif last_line =~ '^\s*'.s:blockstart
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
|
|
||||||
|
|
||||||
elseif AntepenultimateLine =~ '{'.endline && AntepenultimateLine !~? '^\s*use\>' || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
|
elseif AntepenultimateLine =~ '{'.endline && AntepenultimateLine !~? '^\s*use\>' || AntepenultimateLine =~ terminated || AntepenultimateLine =~# s:defaultORcase
|
||||||
let ind = ind + s:sw()
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if cline =~ '^\s*[)\]];\='
|
if cline =~ '^\s*[)\]];\='
|
||||||
let ind = ind - s:sw()
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:PHP_CurrentIndentLevel = ind
|
let b:PHP_CurrentIndentLevel = ind
|
||||||
|
|||||||
@@ -41,16 +41,16 @@ function! PostscrIndentGet(lnum)
|
|||||||
|
|
||||||
" Indent for dicts, arrays, and saves with possible trailing comment
|
" Indent for dicts, arrays, and saves with possible trailing comment
|
||||||
if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
|
if pline =~ '\(begin\|<<\|g\=save\|{\|[\)\s*\(%.*\)\=$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Remove indent for popped dicts, and restores.
|
" Remove indent for popped dicts, and restores.
|
||||||
if pline =~ '\(end\|g\=restore\)\s*$'
|
if pline =~ '\(end\|g\=restore\)\s*$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
|
|
||||||
" Else handle immediate dedents of dicts, restores, and arrays.
|
" Else handle immediate dedents of dicts, restores, and arrays.
|
||||||
elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
|
elseif getline(a:lnum) =~ '\(end\|>>\|g\=restore\|}\|]\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
|
|
||||||
" Else handle DSC comments - always start of line.
|
" Else handle DSC comments - always start of line.
|
||||||
elseif getline(a:lnum) =~ '^\s*%%'
|
elseif getline(a:lnum) =~ '^\s*%%'
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: PoV-Ray Scene Description Language
|
" Language: PoV-Ray Scene Description Language
|
||||||
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
|
||||||
" Last Change: 2002-10-20
|
" Last Change: 2017 Jun 13
|
||||||
" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim
|
" URI: http://trific.ath.cx/Ftp/vim/indent/pov.vim
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -75,9 +75,9 @@ function GetPoVRayIndent()
|
|||||||
" opening line.
|
" opening line.
|
||||||
let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)')
|
let cur = s:MatchCount(v:lnum, '^\s*\%(#\s*\%(end\|else\)\>\|[]})]\)')
|
||||||
if cur > 0
|
if cur > 0
|
||||||
let final = plind + (chg - cur) * &sw
|
let final = plind + (chg - cur) * shiftwidth()
|
||||||
else
|
else
|
||||||
let final = plind + chg * &sw
|
let final = plind + chg * shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return final < 0 ? 0 : final
|
return final < 0 ? 0 : final
|
||||||
|
|||||||
@@ -41,18 +41,18 @@ function! GetPrologIndent()
|
|||||||
endif
|
endif
|
||||||
" Check for clause head on previous line
|
" Check for clause head on previous line
|
||||||
if pline =~ ':-\s*\(%.*\)\?$'
|
if pline =~ ':-\s*\(%.*\)\?$'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
" Check for end of clause on previous line
|
" Check for end of clause on previous line
|
||||||
elseif pline =~ '\.\s*\(%.*\)\?$'
|
elseif pline =~ '\.\s*\(%.*\)\?$'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for opening conditional on previous line
|
" Check for opening conditional on previous line
|
||||||
if pline =~ '^\s*\([(;]\|->\)'
|
if pline =~ '^\s*\([(;]\|->\)'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
" Check for closing an unclosed paren, or middle ; or ->
|
" Check for closing an unclosed paren, or middle ; or ->
|
||||||
if line =~ '^\s*\([);]\|->\)'
|
if line =~ '^\s*\([);]\|->\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
return ind
|
return ind
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim indent file
|
" Vim indent file
|
||||||
" Language: RPL/2
|
" Language: RPL/2
|
||||||
" Version: 0.2
|
" Version: 0.2
|
||||||
" Last Change: 2005 Mar 28
|
" Last Change: 2017 Jun 13
|
||||||
" Maintainer: BERTRAND Jo<4A>l <rpl2@free.fr>
|
" Maintainer: BERTRAND Jo<4A>l <rpl2@free.fr>
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
@@ -32,16 +32,16 @@ function RplGetIndent(lnum)
|
|||||||
if prevstat =~? '\<\(if\|iferr\|do\|while\)\>' && prevstat =~? '\<end\>'
|
if prevstat =~? '\<\(if\|iferr\|do\|while\)\>' && prevstat =~? '\<end\>'
|
||||||
elseif prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)' && prevstat =~? '\s\+>>\($\|\s\+\)'
|
elseif prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)' && prevstat =~? '\s\+>>\($\|\s\+\)'
|
||||||
elseif prevstat =~? '\<\(if\|iferr\|then\|else\|elseif\|select\|case\|do\|until\|while\|repeat\|for\|start\|default\)\>' || prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)'
|
elseif prevstat =~? '\<\(if\|iferr\|then\|else\|elseif\|select\|case\|do\|until\|while\|repeat\|for\|start\|default\)\>' || prevstat =~? '\(^\|\s\+\)<<\($\|\s\+\)'
|
||||||
let ind = ind + &sw
|
let ind = ind + shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Subtract a shiftwidth from then, else, elseif, end, until, repeat, next,
|
" Subtract a shiftwidth from then, else, elseif, end, until, repeat, next,
|
||||||
" step
|
" step
|
||||||
let line = getline(v:lnum)
|
let line = getline(v:lnum)
|
||||||
if line =~? '^\s*\(then\|else\|elseif\|until\|repeat\|next\|step\|default\|end\)\>'
|
if line =~? '^\s*\(then\|else\|elseif\|until\|repeat\|next\|step\|default\|end\)\>'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
elseif line =~? '^\s*>>\($\|\s\+\)'
|
elseif line =~? '^\s*>>\($\|\s\+\)'
|
||||||
let ind = ind - &sw
|
let ind = ind - shiftwidth()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
return ind
|
return ind
|
||||||
|
|||||||
@@ -404,11 +404,7 @@ function GetRubyIndent(...)
|
|||||||
" ----------
|
" ----------
|
||||||
|
|
||||||
" The value of a single shift-width
|
" The value of a single shift-width
|
||||||
if exists('*shiftwidth')
|
let sw = shiftwidth()
|
||||||
let sw = shiftwidth()
|
|
||||||
else
|
|
||||||
let sw = &sw
|
|
||||||
endif
|
|
||||||
|
|
||||||
" For the current line, use the first argument if given, else v:lnum
|
" For the current line, use the first argument if given, else v:lnum
|
||||||
let clnum = a:0 ? a:1 : v:lnum
|
let clnum = a:0 ? a:1 : v:lnum
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user