mirror of
https://github.com/vim/vim
synced 2025-07-16 17:22:00 +00:00
Compare commits
1667 Commits
Author | SHA1 | Date | |
---|---|---|---|
65c836e600 | |||
52c0de1de1 | |||
4f7090b93d | |||
1e07633a5d | |||
9e817c8a31 | |||
ba47b51ff8 | |||
6a717f17ec | |||
b031c4ea04 | |||
941c12da3c | |||
bff6ad1331 | |||
48c9f3b123 | |||
076e502199 | |||
915350edec | |||
24a2d416ec | |||
abbc448bc0 | |||
2aa5f696b9 | |||
1695f99d08 | |||
9957a10d0f | |||
7a2699e868 | |||
fffbf308dd | |||
c81299684b | |||
6a8ede99dd | |||
15eedf1d62 | |||
7a40ea2138 | |||
2b2207ba69 | |||
e2d74dbe19 | |||
e2c6037da3 | |||
e362c3d2c3 | |||
d7a96151e0 | |||
ca24e2cfcf | |||
423977d3ce | |||
560379d7ae | |||
ec2da36ca4 | |||
41baa7983a | |||
25b0e6b701 | |||
23c9e8b3bc | |||
8822744b4d | |||
5e4e1b1299 | |||
eb46f8fa14 | |||
6e78e27b8a | |||
4007ed4a5e | |||
d61e8aaae5 | |||
58f60ca2fc | |||
6d721c7e10 | |||
de318c5c35 | |||
369b6f57c4 | |||
97d62d4321 | |||
c011a3d083 | |||
a9d23c2087 | |||
e32bbded64 | |||
1b9750d805 | |||
42b8d916c7 | |||
4f391796b7 | |||
810f9c361c | |||
296b1f28ca | |||
9506cad7a1 | |||
fe6ce331d9 | |||
5869cf060e | |||
fad609d067 | |||
2b7bc567b9 | |||
7173b47958 | |||
e47683a091 | |||
519d7785f4 | |||
83381f7129 | |||
9be7c04e6c | |||
9b73c4a215 | |||
e13b9afe12 | |||
70bcd7336f | |||
972c3b8f1b | |||
b8f7bd68f6 | |||
a1fa892939 | |||
1d669c233c | |||
ee142add22 | |||
e32abbe42c | |||
8b2f19536f | |||
872004132f | |||
08243d26d2 | |||
03c60c1573 | |||
f446b48ff0 | |||
caa55b65c2 | |||
68563937f5 | |||
6abda995a5 | |||
009c7b2640 | |||
4d0504019c | |||
de33011ec6 | |||
c695cec469 | |||
6247361101 | |||
2d02839050 | |||
453b576ee5 | |||
a216255a4f | |||
31f19ce0a0 | |||
9d9c356517 | |||
04e94c7881 | |||
12c4492dd3 | |||
7069bf18e1 | |||
cbd4de44e8 | |||
c6aa475a27 | |||
6e450a5754 | |||
287266527a | |||
29891c4ed4 | |||
aaeabfbca5 | |||
14a612fa2e | |||
7034a83743 | |||
a4ce25bd98 | |||
294740d2ac | |||
9269315f63 | |||
f845b87f2b | |||
0cdb72aa38 | |||
bc2eada542 | |||
269aec7e61 | |||
f8eb9c51e5 | |||
5e1e6d265d | |||
b094ff4b2b | |||
777b30f827 | |||
54b2bfa399 | |||
ded2782783 | |||
c4bfedabe0 | |||
fe38b494ff | |||
4c8980b717 | |||
73b484c4da | |||
63de19e805 | |||
0df3c7f2a0 | |||
7089237885 | |||
73fd498886 | |||
6270660611 | |||
eaaa9bbda6 | |||
3421566376 | |||
a899e6ecc4 | |||
3fad98e8af | |||
a2477fd349 | |||
5643db84c6 | |||
21efc3633e | |||
99c5eb4fd7 | |||
5162822914 | |||
cf49790443 | |||
327054df45 | |||
6dbf66aa3e | |||
e3af763d5e | |||
b04a98f6c3 | |||
87f3d202a9 | |||
eca626fcdb | |||
eebd84eb94 | |||
5a030a540f | |||
b129a447f3 | |||
65e08ee1d2 | |||
958dc6923d | |||
0945eaface | |||
4b785f69c0 | |||
f422bcc7f9 | |||
8a8199e4a1 | |||
7554da4033 | |||
031cb743ae | |||
319afe3804 | |||
73095288da | |||
58c358753e | |||
833eb1d752 | |||
2cab0e1910 | |||
182707ac10 | |||
63e4344edc | |||
dda39aeafc | |||
ca8b8d6956 | |||
9f0e423c28 | |||
6c896867c4 | |||
a859f04b4d | |||
cc28e2d05d | |||
7df915d113 | |||
c0514bf477 | |||
2256c99471 | |||
8a01f969c1 | |||
7618e00d3b | |||
8e63905263 | |||
3f7d090726 | |||
d4db7719bd | |||
b6be3ea45b | |||
2b946c9f9b | |||
63bed3d319 | |||
e3505dfc85 | |||
79cbdcb1ee | |||
8a5883b748 | |||
95f096030e | |||
459ca56312 | |||
38bc495637 | |||
c4d4ac22f7 | |||
3f9ebf32a3 | |||
a1f4cb93ba | |||
25de4c232d | |||
21662be221 | |||
98500fdc61 | |||
4a08b0dc4d | |||
40d3f137e7 | |||
eb828d01d9 | |||
55952d4dd4 | |||
8161551724 | |||
aab3383e70 | |||
426f375422 | |||
de5e2c219b | |||
91e44a3305 | |||
9376f5f482 | |||
d0b5138ba4 | |||
3a117e19e0 | |||
b4ada79aa7 | |||
fb63090b62 | |||
60ef3e81f4 | |||
35a1f59d63 | |||
14207f487c | |||
01688ad545 | |||
2f97912800 | |||
6d5ad4c411 | |||
a350bab042 | |||
50e5376926 | |||
46fceaaa8d | |||
7756e7465d | |||
bb09ceb954 | |||
025e3e0baf | |||
9ec7fa82a2 | |||
cbd3bd6cbe | |||
869e35270e | |||
8507747600 | |||
156919f99a | |||
ca291aec99 | |||
0a9046fbcb | |||
97792de276 | |||
472e85970e | |||
9e507ca8a3 | |||
a6c27ee6db | |||
4575876dc8 | |||
3e8474dd50 | |||
e8ef3a0934 | |||
0ba407012c | |||
cea912af72 | |||
a7c023ec88 | |||
dc08328821 | |||
dc0ccaee68 | |||
9b45794818 | |||
936c48f8ca | |||
8ddef48d1e | |||
226630a030 | |||
ec68a99464 | |||
84dbd494dc | |||
6100d02aab | |||
2ec618c9fe | |||
b3435b0a3a | |||
b9c31e71f5 | |||
1777785751 | |||
890680ca63 | |||
0e77b7691e | |||
7ef3810d28 | |||
1eceadaf48 | |||
c79d6aa01d | |||
3e496b0ea3 | |||
9af4184276 | |||
20eeb6129d | |||
947000d6e4 | |||
680e015bfe | |||
3f1c15b24a | |||
50ba526fbf | |||
9e02cfa226 | |||
bbe917d9d4 | |||
ebdd90ac28 | |||
d07969093a | |||
3c4ebeba17 | |||
5582ef1438 | |||
789a5c0e3d | |||
b56e7ff0db | |||
9e1e7afc1f | |||
6401024869 | |||
bb76f24af2 | |||
edeb846c1f | |||
100f27721b | |||
1b01005823 | |||
220adb1e9f | |||
e1c8c7a674 | |||
cbeab96f87 | |||
7e1479b86c | |||
4930a76a03 | |||
ee39ef0b93 | |||
80c3fd7c55 | |||
26fe0d5691 | |||
d47d83745f | |||
46643713dc | |||
ea683da58c | |||
16b3578f35 | |||
d563883a1f | |||
2931f2a5df | |||
922a443cfd | |||
ff330ff2c4 | |||
cf703fe9d6 | |||
2321ca2a78 | |||
9a27c7fde6 | |||
c4a908e836 | |||
abd468ed0f | |||
f18c4dbbe5 | |||
0eaadec6b2 | |||
169ebb0804 | |||
53f1673cd9 | |||
1b0c1d050e | |||
aeac9006d5 | |||
64d8e25bf6 | |||
6384c5db8d | |||
100f5c90f4 | |||
7947312871 | |||
77b642501a | |||
df0db16cf7 | |||
72b4b870fc | |||
1b0c2fcf6e | |||
31845093b7 | |||
75537a93e9 | |||
33a80eeb85 | |||
030cddc7ec | |||
26b84339fd | |||
f9e687e068 | |||
c8fe338d64 | |||
d5824ce1b5 | |||
30180b8dad | |||
e0ab94e712 | |||
d77f9d595e | |||
bc54f3f3fe | |||
dac1947bb3 | |||
dda933d06c | |||
b07a82b6d5 | |||
349e7d94e6 | |||
0913a1089a | |||
f7f3e32fcc | |||
87bc3f7459 | |||
de653f0880 | |||
b62cc36a60 | |||
5a49789a9b | |||
dd905a2ae1 | |||
a5d4121eed | |||
11fbc2866c | |||
44f660c421 | |||
cd055da370 | |||
da9ce2cde1 | |||
19a1669ffc | |||
417ccd7138 | |||
779f2fc3a7 | |||
f1b512a0b6 | |||
641ad6c7ac | |||
5c80908ced | |||
04c4ce650f | |||
0874a83e9b | |||
d8b554904d | |||
f37506f60f | |||
c628fdcd46 | |||
89bcfda683 | |||
4792255eff | |||
64cefedfc8 | |||
edf3f97ae2 | |||
965ed14973 | |||
0418609534 | |||
7f7bd297d6 | |||
7683aaa506 | |||
cb03397aba | |||
6fc8227ebf | |||
fec246d2c5 | |||
36f44c21da | |||
d90b6c02e2 | |||
f4145d8e99 | |||
885c00eabe | |||
0abe0522d0 | |||
0426bae2ab | |||
e999782e36 | |||
46328f9a1c | |||
4427db9bb2 | |||
6a402edbeb | |||
1773ddfdcd | |||
e67d546f3c | |||
818078ddfb | |||
73d4e4c892 | |||
3056735ae8 | |||
9f8187c335 | |||
ffdf08c94e | |||
821179809d | |||
e17bdffff7 | |||
1195669f9e | |||
44ca54aeb9 | |||
9992237a3e | |||
76efafba2a | |||
2b529bb626 | |||
d29459baa6 | |||
2570957607 | |||
7df0f6313a | |||
e4a3bcf28d | |||
dd74ab9b46 | |||
4d6f32cbfb | |||
f1f0792e55 | |||
9f28953f0c | |||
db249f26ed | |||
ec42059b78 | |||
54b6352c6f | |||
78c7e274f2 | |||
424d74bb20 | |||
015efc32c1 | |||
5b30291785 | |||
ba2099034f | |||
358308dd99 | |||
b58fe4588c | |||
d6f2ee32dc | |||
77401add71 | |||
7b668e83d0 | |||
1b58cdd160 | |||
17f1347b86 | |||
973365dcc4 | |||
f267f8bdf7 | |||
9baf297c99 | |||
de7762a2c1 | |||
9b7f8ce9eb | |||
920694c1b6 | |||
989f592f7f | |||
dd1248143e | |||
843b884461 | |||
e07e797db0 | |||
e11d61a3b1 | |||
66e29d7112 | |||
f04507d132 | |||
9e4d8215d3 | |||
7571d55f7d | |||
1381d79147 | |||
3392883770 | |||
bfd096d020 | |||
af9c4c9b57 | |||
d3c907b5d2 | |||
6bff02eb53 | |||
91984b9034 | |||
e5a8f35b42 | |||
f5a39447a8 | |||
13d216d302 | |||
dc1f1645cb | |||
4f416e4124 | |||
22177f0c08 | |||
386600f0cb | |||
16350cb979 | |||
58b853460a | |||
e59215c7dc | |||
e56132bb41 | |||
cff50f5ec9 | |||
35a4cfa200 | |||
2d1a248762 | |||
d58b0f982a | |||
4ae209597c | |||
e9d58a6459 | |||
0952131376 | |||
b5ae48e9ff | |||
ebcccad573 | |||
b338483152 | |||
95ec9d6a6a | |||
d823fa910c | |||
107abd2ca5 | |||
0e5d3a2940 | |||
c257487035 | |||
91c5262b19 | |||
bcc1dcc981 | |||
446a973ce3 | |||
717e196060 | |||
a6b7a08ae0 | |||
a357e44ccd | |||
50fa8dd00c | |||
f71d7b9ee5 | |||
c9fb77c692 | |||
7547a78446 | |||
36d1c0fef4 | |||
71dd9744cf | |||
7a9a5f4019 | |||
09de17536d | |||
2147746cf8 | |||
a772ec5e91 | |||
b73598e2f0 | |||
e4a76ad0e7 | |||
3a93838339 | |||
ba98bef191 | |||
a8e691d449 | |||
812ad4f3a2 | |||
c8ce615299 | |||
3321e9d8a3 | |||
472a0a880a | |||
00ff380295 | |||
8e97bd74b5 | |||
446cce6d53 | |||
5b4a3767f6 | |||
c96a2f3b88 | |||
328604307b | |||
83b3c3d8a0 | |||
66459b7c98 | |||
d76a0c15f8 | |||
7522f69821 | |||
7ab6defcaf | |||
7dc5e2e486 | |||
5971dab112 | |||
b650b9878e | |||
46c4d4ac66 | |||
c90f2aedd0 | |||
9d5b876d45 | |||
fe9489233c | |||
877e957798 | |||
ee695f787a | |||
cf25fdb8f1 | |||
4c38d66d25 | |||
7cba71d7e3 | |||
edf634e0f1 | |||
abb71fbd39 | |||
472472898a | |||
86f2cd5bc5 | |||
796aa9c804 | |||
bc8801c931 | |||
bc7ce675b2 | |||
8dd3a43d75 | |||
ba96e9af38 | |||
acadbeabe1 | |||
0588d4f9d2 | |||
2d3d60a7d4 | |||
437bafe4c8 | |||
5801644819 | |||
89eaa4185e | |||
b54c3ff317 | |||
fc1f2015e8 | |||
31440a1f2b | |||
57e69ff2cc | |||
623e263ffb | |||
3ab14355ed | |||
1e2258297b | |||
3bcfca3ab4 | |||
90d121fa36 | |||
b20617b0b0 | |||
a5c0cc1133 | |||
623cf88f9c | |||
42093c0ec5 | |||
b822cb0f93 | |||
9532fe7fbe | |||
10ce39a0d5 | |||
1e96d9bf98 | |||
83a2a80d6f | |||
f2c4c39119 | |||
c73e4474b1 | |||
b9a46fec3e | |||
d05b191b91 | |||
170b10b421 | |||
b56195ed00 | |||
471a897569 | |||
8c08b5b569 | |||
eac784eced | |||
ad9c2a08f0 | |||
adfc5c2f9c | |||
d955a0971c | |||
ac77aec4da | |||
eec2981bbe | |||
97baee80f0 | |||
e99e84497b | |||
45a249513f | |||
2932359000 | |||
6835dc61ae | |||
73ac0c4281 | |||
6f1d9a096b | |||
00b24be454 | |||
d4f31dc454 | |||
b49edc11a1 | |||
61c04493b0 | |||
4658228262 | |||
a58c58b7e1 | |||
870b749ce1 | |||
2e45d21c81 | |||
df48fb456f | |||
36edf0685c | |||
f36213597d | |||
e25bc5abb4 | |||
ac105ed3c4 | |||
dfd63e30d1 | |||
6008433381 | |||
19df5cc04d | |||
397eadbe25 | |||
c1542744e7 | |||
b869c0da31 | |||
53bdec2ac9 | |||
ca8942c6e3 | |||
12c11d5530 | |||
4f0383bc3f | |||
c917da4b3e | |||
0a0f641b98 | |||
68015bbd84 | |||
72ab729c3d | |||
f562e72df7 | |||
6cfdb2a3ba | |||
9ccfebddc3 | |||
b9644433d2 | |||
16ec3c9be3 | |||
c1fb763184 | |||
69aa099641 | |||
4f5c5f2980 | |||
73dad1e64c | |||
840268400d | |||
e87e6dddc2 | |||
a9093fe094 | |||
6583c44857 | |||
a9b579f3d7 | |||
da861d631d | |||
1abc52c159 | |||
cd52459c38 | |||
42ebd06642 | |||
2cb70a2744 | |||
b2b050ab16 | |||
87776a1ac1 | |||
8de7465d77 | |||
1a9f947cde | |||
8211fcbdc9 | |||
e21d62435e | |||
c3e539fa70 | |||
502ae4ba63 | |||
015102e91e | |||
f6acffbe83 | |||
a06ecab7a5 | |||
bfafb4c4a0 | |||
269f595f9e | |||
e0d3797664 | |||
5ef2e76284 | |||
069c1e7fa9 | |||
93431df9eb | |||
fdadad994a | |||
603d657219 | |||
a6aa78a3e3 | |||
321efdd77a | |||
9280e3f95d | |||
7399895520 | |||
480778b805 | |||
da4127794a | |||
f62e797ffa | |||
6d20e17544 | |||
3e946fdc7b | |||
89b10421ca | |||
e048539195 | |||
38ee6b041e | |||
5498a41f5a | |||
4c06815c44 | |||
1436d8d51c | |||
da3a77d9ec | |||
7c0a2f367f | |||
ea3f2e7be4 | |||
25065ec375 | |||
19ff9bf454 | |||
453f37dbfd | |||
c4a927ca8d | |||
b25f9a97e9 | |||
8240433f48 | |||
2bc127f940 | |||
5c71994f4e | |||
32b808a4bd | |||
67081e5061 | |||
063b9d15ab | |||
0d3e24be56 | |||
aa4d73235b | |||
537ef08408 | |||
ed59aa60d3 | |||
79815f1ec7 | |||
fc4ad61607 | |||
30445cb6e9 | |||
ee1deb4a00 | |||
65549bdef5 | |||
144445d15f | |||
a06ec8f345 | |||
ba768495c2 | |||
245a7cb6d3 | |||
bc5d6dd1dd | |||
bf2cc5f36d | |||
dcb1700186 | |||
1e5e1231ac | |||
9d5d3c9c44 | |||
05e418d436 | |||
6bb450145e | |||
e381d3d5e0 | |||
00efded106 | |||
80632db65e | |||
b33c7eb5b8 | |||
ab9c89b68d | |||
dec85cf750 | |||
fef524bbff | |||
3b98b83001 | |||
e18dbe865d | |||
0fcc7c6dd1 | |||
75464dc434 | |||
951fa1819a | |||
ee2615af64 | |||
361c8f0e51 | |||
2acfbed9db | |||
c5af40ae64 | |||
bde9810d61 | |||
22fcfad292 | |||
8767f52fbf | |||
4a6c670b84 | |||
4c5717ed8a | |||
40de45664c | |||
e8fea0728a | |||
70e136e1d8 | |||
24cf233ef9 | |||
1d90a5a5af | |||
6747fabc73 | |||
bcf7772a23 | |||
adb78a77eb | |||
688e3d1fd9 | |||
97ff9b9cff | |||
52df117df7 | |||
00672e1d3f | |||
04e2b4b0c4 | |||
aad30bbcde | |||
eeb50ab522 | |||
7b61bf187a | |||
5d2ca04029 | |||
f4fba6dcd5 | |||
d388d2ac8b | |||
802a0d902f | |||
049cba9e97 | |||
b12e7ef956 | |||
85babd6db6 | |||
f50df3925b | |||
38df43bd13 | |||
ad5ca9bc1e | |||
ecefe71704 | |||
cf2d77987c | |||
ddf8d1c746 | |||
b5b95750a6 | |||
678e480529 | |||
d18f672fc9 | |||
a02a551e18 | |||
3ef5bf7d45 | |||
23c60f21b0 | |||
28607ba2b8 | |||
36f0f0686c | |||
ab47c61f46 | |||
67e3720a9d | |||
bee666f239 | |||
9bd3186052 | |||
72e697d189 | |||
ece74ab103 | |||
a641e1d4da | |||
bf2c0ee0b2 | |||
2016ae586b | |||
76ae22fef3 | |||
5b7d177e89 | |||
a890f5e348 | |||
c95a302a4c | |||
2d35899721 | |||
cf08946349 | |||
ae3150ec8d | |||
06469e979f | |||
724f2edf75 | |||
e80ff7448d | |||
46bbb0c4ba | |||
62f8b4e180 | |||
012270936c | |||
b8aefa46ad | |||
2a67ed83a8 | |||
e429e70f05 | |||
1610d05241 | |||
1cee693b31 | |||
1fd99c1ca8 | |||
abc70bbf36 | |||
945ec093cd | |||
5ce4a0b96a | |||
1d5f1d07ae | |||
5f1032d2a5 | |||
fdd82fe365 | |||
c60954b48e | |||
45d2eeaad6 | |||
bbe8d91e69 | |||
762f175437 | |||
28b942a064 | |||
8e31fd52ec | |||
63a60ded3f | |||
fd89d7ea81 | |||
82af8710bf | |||
82faa259cc | |||
888ccac890 | |||
511972d810 | |||
b3619a90ea | |||
c9721bdc63 | |||
9ed96efb3d | |||
703a8044b5 | |||
35d88f4e2f | |||
76b6dfe54b | |||
e30a3d01dc | |||
cda7764d8e | |||
1aa07bdead | |||
2f095a4bc4 | |||
ea0345901c | |||
b37662a0fb | |||
83e6d7ac6a | |||
76929af431 | |||
e38a2f7ebd | |||
cf7c11a947 | |||
01d46e41ba | |||
a0055ad3a7 | |||
8e759ba865 | |||
ae3f33040b | |||
4231da403e | |||
c4bc0e6542 | |||
864293abb7 | |||
dec6c7beda | |||
cf190c6f01 | |||
b89a25f17e | |||
3c809343c7 | |||
a96732150c | |||
9ad73239c2 | |||
22081f4a33 | |||
9b0ac229bc | |||
18dfb4404a | |||
b055066a1d | |||
e3188e2615 | |||
ef3abc6442 | |||
b127cfd75f | |||
9f5842e63f | |||
324a78f3b6 | |||
655da31a18 | |||
d80629cef0 | |||
28ae577342 | |||
af6c12c27b | |||
180fc2d418 | |||
bf981eeb6b | |||
5850a764ea | |||
6727bf8617 | |||
13ddc5c359 | |||
54c10ccf92 | |||
f8df45d84f | |||
8e8df251bf | |||
2177f9fe18 | |||
03e19a04ac | |||
26852128a2 | |||
2b2b8ae5ab | |||
a570244531 | |||
2bbf8eff6f | |||
574860b5ee | |||
c67e892134 | |||
1d429610bf | |||
991dea3ab1 | |||
908be43879 | |||
2ff8b64679 | |||
06d2d38ab7 | |||
dc303bce10 | |||
e40d75f6ef | |||
73a733e08b | |||
de7eb0a47b | |||
e0f76d0097 | |||
fb6ffc732e | |||
cf7ff70ca7 | |||
5d96e3ae53 | |||
36e0f7da9b | |||
d9db8b448c | |||
91c4937be1 | |||
ea83bf06b9 | |||
4ed6b2e2d7 | |||
9ccaae04c6 | |||
827b165b2a | |||
89c79b9932 | |||
cefe4f9948 | |||
d8585eded6 | |||
9a3b3311d2 | |||
b8d4905592 | |||
9b4ebc692d | |||
187147aedd | |||
3266c85a44 | |||
715d285d79 | |||
868cfc19bb | |||
8a24b794b8 | |||
d75263c020 | |||
8e3d1b6326 | |||
0648142700 | |||
4cc39a527f | |||
b20545f2a7 | |||
0b6cf69c03 | |||
6be8c8e165 | |||
113ce08456 | |||
631225627d | |||
61be73bb0f | |||
bb82762907 | |||
c61348e83f | |||
283ee8b3a0 | |||
5487544fa5 | |||
c285fe7c3f | |||
e8aee7dcf9 | |||
ab3022196e | |||
674127e180 | |||
6231cb8b5b | |||
437905c25d | |||
c7baa43fdb | |||
b2658a1ab0 | |||
d10abe5201 | |||
490465bda6 | |||
8e9eb3a6a1 | |||
af98a49dd0 | |||
fca6600305 | |||
da5b3dcf06 | |||
dc633cf827 | |||
73dfe917ba | |||
b2fa54a840 | |||
3849992b16 | |||
a1c487eef7 | |||
763b684373 | |||
902647d2df | |||
380130f1e1 | |||
54a38415ca | |||
21decdd3e6 | |||
8a633e3427 | |||
6d4431e7b6 | |||
d106e5ba7f | |||
4adfaabfe7 | |||
0c1ff16b54 | |||
02cfac85b4 | |||
4694a17d1e | |||
ba53435144 | |||
268a06ce90 | |||
8ed43916db | |||
aa3b15dbeb | |||
4445f7ee70 | |||
40b1b5443c | |||
245c41070c | |||
8e42ae5069 | |||
a6e4250142 | |||
517ffbee0d | |||
c3691332f7 | |||
c020042083 | |||
8d8aa0a367 | |||
c1808d5822 | |||
def5abe0a2 | |||
7f7c3325d3 | |||
30e12d259e | |||
f9660b59b2 | |||
1538fc34fa | |||
fe4b186406 | |||
95509e18f8 | |||
5d98c9d932 | |||
6621004289 | |||
75be2339d8 | |||
5d18e0eca5 | |||
b22bd46b96 | |||
4d58502202 | |||
bea1ede1c5 | |||
5d91646599 | |||
52196b2dbe | |||
baa9fcaf40 | |||
451f849fd6 | |||
0f518a8f4d | |||
839e954aaa | |||
429fcfbf9a | |||
8110a091bc | |||
58de0e2dcc | |||
6244a0fc29 | |||
81edd171a9 | |||
ebf7dfa6f1 | |||
700eefe5a4 | |||
3780bb923a | |||
03413f4416 | |||
73cd8fb3e8 | |||
f73d3bc253 | |||
0239acb11f | |||
939a1abe93 | |||
a4d13de836 | |||
9e4043757c | |||
107e1eef1d | |||
d56374e25d | |||
0e4c1de556 | |||
baec5c1768 | |||
ddecc25947 | |||
54f1b7abf8 | |||
f80663f17b | |||
49b2732644 | |||
a742e084b6 | |||
17fe5e1aec | |||
4c9ce053d9 | |||
2a6fa564a3 | |||
0921ecff1c | |||
e185c1efba | |||
7c1c6dbb68 | |||
3dda7db4e1 | |||
b50e5f5686 | |||
4afc7c5d4a | |||
f9f22dbe4f | |||
22e421549d | |||
71fb0c146b | |||
298c65971e | |||
cb0700844c | |||
fd773e9e88 | |||
8bc189e81a | |||
f28d871465 | |||
8e77bad3c1 | |||
864733ad92 | |||
9bd547aca4 | |||
b681be175b | |||
42356150ba | |||
758535a1df | |||
67c2c058ea | |||
bdf0bda968 | |||
e9c0727003 | |||
7db8f6f4f8 | |||
7fed5c18f8 | |||
d18cfb7dbf | |||
e609ad557c | |||
72188e9aae | |||
ef9d9b94a8 | |||
925ccfde79 | |||
7d2a5796d3 | |||
8b29aba019 | |||
0b9e4d1224 | |||
fead3ac9a3 | |||
e101204906 | |||
cf2d8dee51 | |||
2946d0236d | |||
e934e8f5c1 | |||
61264d9969 | |||
a32095fc8f | |||
8b877ac38e | |||
ee1f7b3cb7 | |||
84e1d2b21a | |||
46c00a6565 | |||
8038568722 | |||
89c64d557d | |||
ea6553bec3 | |||
4f3f668c84 | |||
c4dcd60c76 | |||
fa8b2e173d | |||
819821c5a9 | |||
e1581307d2 | |||
1473551a44 | |||
8fdd721047 | |||
92e35efaf6 | |||
1e7885abe8 | |||
52c6eaffd4 | |||
da64ab322a | |||
610cc1b9b3 | |||
780d4c3fff | |||
f68f1d7079 | |||
aedfcbe1e6 | |||
bee6c0cf86 | |||
8b20179c65 | |||
4c90861e9f | |||
c5fbe8af4c | |||
24c77a1e3a | |||
d4caf5c16a | |||
6a08454b93 | |||
5ca84ce4aa | |||
ffec3c5349 | |||
5f436fcf99 | |||
e4eb6ff089 | |||
6c0e984f26 | |||
6135d0d803 | |||
6a06363861 | |||
8e08125d3a | |||
b763eba7ae | |||
6098957458 | |||
573e445664 | |||
d63aff0a65 | |||
b86f10ee10 | |||
3f3fbd3fdb | |||
75f7265dd4 | |||
580984e026 | |||
e18c0b3981 | |||
be6aa46c4d | |||
03602ec28e | |||
e9d6a298df | |||
17b56c9f83 | |||
a63cdb5ed6 | |||
4077b33a83 | |||
364fa5c7ec | |||
a4f6ca717b | |||
ba61ac0d61 | |||
ac74d5e86c | |||
829c8e3696 | |||
7eba3d2cbf | |||
064154c3fe | |||
d293b2b9d4 | |||
44a2f923c0 | |||
cc6cf9b9f9 | |||
4d581a826c | |||
5c29154b52 | |||
f0e86a0dbd | |||
953cc7fb13 | |||
3905e291fe | |||
3848e00e01 | |||
bfb96c047b | |||
cff572abb9 | |||
818c9e7edf | |||
062cc1857d | |||
8a82c7fa5e | |||
6d8d849f5a | |||
9f6154f26e | |||
ba8cd122ef | |||
c0a1d7f3ad | |||
943bb2b8eb | |||
a889cf4642 | |||
0899d69803 | |||
5584df65a0 | |||
3f242a844e | |||
9e63f61cb0 | |||
1ff2b64b11 | |||
1c8b4edb9b | |||
8a1bb04637 | |||
d22a18928e | |||
0e0b3dd335 | |||
597385ab43 | |||
6f2e4b36c9 | |||
65639032bb | |||
7a5c46a9df | |||
a3dc5e92dc | |||
975b5271ee | |||
ab1fa3955f | |||
927030af23 | |||
89e375a88f | |||
8067a64852 | |||
d22e9465f6 | |||
ce2ec0a82a | |||
85a7cb4dcf | |||
8e15ffcde7 | |||
426dd02195 | |||
e27dba499a | |||
00f9e0dbbd | |||
1abb502635 | |||
4f118be2bb | |||
f155196444 | |||
346418c624 | |||
790500a8e6 | |||
9eb3bb2930 | |||
39afdea203 | |||
d6c2f05260 | |||
1735bc988c | |||
9cdf86b86f | |||
86edef664e | |||
a3442cb505 | |||
fff341eb59 | |||
52f9c19015 | |||
8dcf259d90 | |||
7f8989dd8a | |||
6bef5306e4 | |||
2d8f56acb3 | |||
c835293d54 | |||
5a2800fd14 | |||
385111bd86 | |||
f6f32c38bf | |||
b4ebf9ae3b | |||
583c1f14a4 | |||
5a6ec52392 | |||
1adda3403d | |||
8950a563b3 | |||
ac42afd10b | |||
8e2c942ce4 | |||
77cdfd1038 | |||
4fc563b397 | |||
509ce2a558 | |||
de27989157 | |||
9e496854a9 | |||
846cdb2275 | |||
74c5bbf134 | |||
7bffaa9f9b | |||
40e8cb292c | |||
75578a388d | |||
29fd03878c | |||
af1a0e371e | |||
562ca71428 | |||
d5d3d307dd | |||
beb003b303 | |||
045a284a83 | |||
0622732b32 | |||
6ff02c9651 | |||
8322e1f06e | |||
d9d473ea12 | |||
13d6fb17a2 | |||
f65333c9b5 | |||
367aabdbf7 | |||
8049253b96 | |||
9fe885e49a | |||
e98d121052 | |||
41e0f2f48f | |||
94d0191dbc | |||
af6e36ff16 | |||
5f148ec0b5 | |||
304563c0b3 | |||
151f656e17 | |||
47cff3a444 | |||
4e329fcaf7 | |||
b69fccf377 | |||
d0b6502a7a | |||
3f39f64866 | |||
839fd11d7e | |||
99ef06296f | |||
38fd4bb284 | |||
9ef00be261 | |||
be82c25486 | |||
2588b5a43f | |||
0ecbe33718 | |||
a96909cfaf | |||
802d559431 | |||
119d4693e0 | |||
5983ad0b03 | |||
35ca0e7a1c | |||
019b9c644e | |||
20b4f463f4 | |||
2369c15407 | |||
0c171716c0 | |||
179f1b9a7d | |||
328da0dcb7 | |||
6300317b15 | |||
f365482736 | |||
014069a7ac | |||
c25558bff4 | |||
d6547fc647 | |||
da94fdf258 | |||
9f7820f83b | |||
91715873d1 | |||
863c1a9079 | |||
1bdd42627d | |||
b5760a1ce5 | |||
f1d2501ebe | |||
00ded43a5a | |||
5fac467474 | |||
d1413d9098 | |||
4ca812b153 | |||
bf73b91c66 | |||
289a90551d | |||
42bc6dde46 | |||
51d1d53680 | |||
10b369f670 | |||
6b584af3d7 | |||
cc7f8be3e0 | |||
5131c144fe | |||
a6b8976bb7 | |||
2f6271b1e7 | |||
a86f14a923 | |||
fdcc9afb71 | |||
e081e21f76 | |||
fdd6ce4a2f | |||
d42119fff2 | |||
29e1951e14 | |||
fc2457e21d | |||
9730f74a0b | |||
9bfdba3de3 | |||
18b5d6df10 | |||
707659490d | |||
1c39102666 | |||
8cc6977a96 | |||
c5215e943b | |||
d6051b5eb8 | |||
80e7884739 | |||
b362872837 | |||
0f526f5652 | |||
dae8d21dd2 | |||
3f2a5d8dfb | |||
e0fd2aa8f6 | |||
e26643e6bc | |||
fefecb0fbe | |||
f97ddbeb25 | |||
c7f0ebc6d1 | |||
136f29a91d | |||
e98991b8cf | |||
8b1862a316 | |||
b6ff81188d | |||
85b11769ab | |||
4d1961783f | |||
9e24f0c5c1 | |||
7ce686c990 | |||
d804fdf4c2 | |||
edb4f2b360 | |||
43acbce1bb | |||
187db50d04 | |||
6e722e2f94 | |||
0c0dac1fb1 | |||
4cafa6dc7f | |||
46c85439c9 | |||
c8dcbb12c5 | |||
d2227a02b0 | |||
49c39ff678 | |||
923d926d57 | |||
265f64efcf | |||
669cac0a80 | |||
f391327adb | |||
84f4996d2a | |||
81275ca9ce | |||
8b374215cc | |||
68c85fcdf3 | |||
9e34110816 | |||
42dd7aee41 | |||
1858a842af | |||
3ea0f1ae31 | |||
f1b6ac7229 | |||
e16e5a9d8d | |||
8aefbe0ad5 | |||
9186a27622 | |||
0106e3d0bf | |||
9892189d2e | |||
6bd364e084 | |||
254ebaf068 | |||
48e330aff9 | |||
4e221c99e8 | |||
0bb6108eb4 | |||
1daae446e5 | |||
eed284a169 | |||
0b962473dd | |||
bd73ae1bc6 | |||
2cd5bb2505 | |||
4db20ab091 | |||
33c31d5abf | |||
b2bd6a087d | |||
bdcd752750 | |||
8f8ae40ce4 | |||
23c463a157 | |||
5e83840756 | |||
f6fee0e2d4 | |||
271273c39f | |||
02e83b438e | |||
eab089d22f | |||
ee1cffc07a | |||
b7522a2f0c | |||
65edff8f51 | |||
08298fa1d3 | |||
decb14d68c | |||
b6b5252bcd | |||
e89ff0472b | |||
af7559f666 | |||
ece61b06ef | |||
6f3a544228 | |||
fffd5560c6 | |||
ddbe7d26b1 | |||
42d38a2db1 | |||
914331648d | |||
e0fa3742ea | |||
c6b14f0a83 | |||
663128270e | |||
befb366aff | |||
cf7164a088 | |||
065bbac8ad | |||
8600ace876 | |||
254e00d714 | |||
0ba75a9714 | |||
1f6ef66254 | |||
1d6fbe6540 | |||
132006c3d0 | |||
40ea1da14b | |||
ed5a78e11c | |||
223b723be0 | |||
922d25f99c | |||
93bf558cae | |||
81661fb868 | |||
ec70bdd68a | |||
74a97b1ea0 | |||
7f0608fb52 | |||
8b778d5599 | |||
a1e24b9bc9 | |||
a87e2c277e | |||
203219048f | |||
cd39bbcd1d | |||
e74e8e7d75 | |||
910b8aac5d | |||
7d63f62460 | |||
418f81b5fa | |||
0c2c96e47c | |||
ba093bc000 | |||
9a6e33a19b | |||
5d54a04598 | |||
6aa2cd4be2 | |||
f8df7addc5 | |||
acd58ef676 | |||
d46ae142aa | |||
0943a09db8 | |||
5cefd40982 | |||
12dcf024e9 | |||
b6a7737938 | |||
97eba78f69 | |||
2368917d8f | |||
38a55639d6 | |||
d807036d10 | |||
a971df849f | |||
3bece9fee9 | |||
71b0f7b5c0 | |||
44d571868f | |||
16eb4f8800 | |||
7b3ca76a45 | |||
0727d362b4 | |||
fa4bce7dd2 | |||
7707344dde | |||
e516c39ee9 | |||
bfa1ffca8b | |||
f8b7d890f1 | |||
d090d7bab5 | |||
6463ca229c | |||
00af60bbb6 | |||
45c7f05473 | |||
f02c5cffd8 | |||
76467dfcaf | |||
7c29f38781 | |||
7823a3bd2e | |||
b6a4fee37e | |||
6119e6156e | |||
39b21272d5 | |||
2ab375e54e | |||
f6157284de | |||
d6a8d48587 | |||
a483326e3b | |||
f068dcafcf | |||
4d8747cdfc | |||
7280140c08 | |||
e56bf15c16 | |||
2fc83fcd1d | |||
b92abad0c5 | |||
cbebd4879c | |||
ee5aeae22b | |||
0fa98e7b85 | |||
ae8eb3ca92 | |||
74f5e65bcc | |||
7a84dbe6be | |||
cb00f03933 | |||
79c2c881bb | |||
dc94a26a64 | |||
942d6b2268 | |||
768ce2435a | |||
ea8c219ca8 | |||
eba6d8c66c | |||
595e64e259 | |||
55fab439a6 | |||
a6f72ba7c6 | |||
fbc4b4db3a | |||
cb4b01230b | |||
835dc636a5 | |||
c5f98ee987 | |||
1701481c53 | |||
3712792637 | |||
81e7a9c3fb | |||
4f8b8faec3 | |||
26dfc41335 | |||
a03f233515 | |||
ab9fc7e0cf | |||
f416086f26 | |||
6076fe1986 | |||
4d919d748e | |||
a07fec9c85 | |||
4b6a6dcbe7 | |||
a8343c1808 | |||
3fc3e14282 | |||
a02b321686 | |||
681baaf4a4 | |||
e24692573a | |||
b3e2f00f39 | |||
66624ff0d9 | |||
3b05b135e3 | |||
608a8919ca | |||
e7bed627c8 | |||
bf087cead9 | |||
2212c4154c | |||
fcb1e3d168 | |||
f92591f7f9 | |||
a0f9cd148e | |||
7c764f7bbf | |||
d7ece1008e | |||
d087566a41 | |||
f57969a20a | |||
fbf9c6b6c3 | |||
8d8c509ac8 | |||
04b08c3de6 | |||
bc07309225 | |||
df5b27b20e | |||
56ead341a7 | |||
d9ea9069f5 | |||
885f24fbca | |||
11e0afa00a | |||
5e9b2fa9bb | |||
488a130ea2 | |||
14ad611ca4 | |||
1357caf31f | |||
19d2f15898 | |||
ca568aeec6 | |||
fb1f62691e | |||
155500077c | |||
448a22549b | |||
3803bad99d | |||
d14e00ea67 | |||
bbb3339dbf | |||
a542c680a8 | |||
e2c3810c2a | |||
3c124e3ac8 | |||
fa399af7ec | |||
937204a917 | |||
779a7759ad | |||
20fb9f3464 | |||
ba4ef2757c | |||
b638a7be95 | |||
764b23c8fd | |||
055409764c | |||
c1ab67674a | |||
9b57814db1 | |||
52ea13da0f | |||
02fdaeaa69 | |||
68c2f638e6 | |||
66f948e928 | |||
78c0b7d43e | |||
7454a06e26 | |||
305598b712 | |||
4349c57543 | |||
3e96c3d241 | |||
569850724e | |||
d99df423c5 | |||
baaa7e9ec7 | |||
92b8b2d307 | |||
d25c16e2f2 | |||
f28dbcea37 | |||
f12d983dea | |||
83162468b3 | |||
b8b6511fc1 | |||
fa06a517b5 | |||
298b440930 | |||
3b5f929b18 | |||
ba59ddbd36 | |||
923e43b837 | |||
009d84a34f | |||
85be35f33e | |||
4a1314cb9c | |||
0d6f835683 | |||
54e09e7198 | |||
fb4194e4e0 | |||
d04a020a8a | |||
6650a69454 | |||
ac80999985 | |||
7465c6375f | |||
f4f79b84a5 | |||
767d8c1a1a | |||
5aec481097 | |||
1d63539cc7 | |||
f75612fd99 | |||
3e53c700a2 | |||
65591001e4 | |||
16435480f0 | |||
2e2301437c | |||
0e7f88e73e | |||
e0874f8cbc | |||
705ada1aff | |||
f48aa160fd | |||
0436922965 | |||
fcaaae6b3f | |||
938ee834d3 | |||
6039c7f053 | |||
17a13437c9 | |||
9e3be26872 | |||
2faa29f896 | |||
bd4593ffb1 | |||
e240c2da79 | |||
48e697e4b6 | |||
f95534c3d4 | |||
2dedb45260 | |||
64922b9014 | |||
520e1e41f3 | |||
6920c72d4d | |||
09e786e7a7 | |||
13d5aeef56 | |||
5f8a14b9de | |||
25281634cd | |||
d6357e8f93 | |||
e5f2be6159 | |||
88e8f9f144 | |||
a7c3795a2e | |||
23c4f7183c | |||
17576a1e33 | |||
f7edf40448 | |||
b8060fe862 | |||
6773a348da | |||
e266d6d664 | |||
fce7b3d24f | |||
3a466a8718 | |||
62ef797496 | |||
da5dcd9366 | |||
301417041b | |||
82e4184d48 | |||
ef26954a35 | |||
99dbe291f5 | |||
b20e334859 | |||
61ff4dd6a4 | |||
77324fc9d3 | |||
85084ef1e9 | |||
203258c3ad | |||
021b593e7e | |||
c970330676 | |||
e9b892ebcd | |||
25b2b94ea7 | |||
a24f0a550f | |||
42c9cfa7f4 | |||
08b270a8a4 | |||
336bd622c3 | |||
72defda84e | |||
a99b90437a | |||
d82103ed85 | |||
b0967d587f | |||
d0232917ce | |||
43a34f9f74 | |||
4119cf80e1 | |||
2db5c3b3ce | |||
f60b796fa9 | |||
8c600052fa | |||
4cf7679383 | |||
58adb14739 | |||
da440d21a6 | |||
286eacd3f6 | |||
9bbf63dbf8 | |||
4e640bd930 | |||
d125001297 | |||
f1f60f859c | |||
e39b3d9fb4 | |||
abfa9efb98 | |||
36d7cd8965 | |||
b7604cc19f | |||
345efa013d | |||
065ee9aebf | |||
a260b87d9d | |||
3d6d5cc3a4 | |||
5a46a58eb6 | |||
ccb80989f2 | |||
24c4d539ee | |||
a803c7f940 | |||
b01f357791 | |||
b5690794cf | |||
ef2b5036b3 | |||
7ae4fbca55 | |||
d79e55016c | |||
507edf63df | |||
a52dfaed10 | |||
e1edc1caba | |||
4514d2769b | |||
858b96f382 | |||
254b105b75 | |||
f32c5cd6e0 | |||
b86a343280 | |||
acb4f221c7 | |||
d08a8d4a31 | |||
30a89473ee | |||
6a3c8aff04 | |||
05fe017c1a | |||
5fa4d448fb | |||
28fb79db6b | |||
44132a10ae | |||
450919587d | |||
cfc0a350a9 | |||
8a5115cf18 | |||
5f24542e5e | |||
71bcfdf301 | |||
449538c3d2 | |||
64496ffc9c | |||
25e4fcde76 | |||
7b877b3605 | |||
4d1c0a4441 | |||
eca99bd45f | |||
0bee2fe25a | |||
285bf84b4b | |||
6602af7fe0 | |||
fd39d08fb6 | |||
75bdf6aa30 | |||
2b7db933b0 | |||
ca1fe98517 | |||
a61018d7e0 | |||
e7893a4088 | |||
2795e21eaa | |||
da59dd5da6 | |||
04bff88df6 | |||
af8af8bfac | |||
c71982b239 | |||
485dace817 | |||
c7803a1c42 | |||
7f68203168 | |||
2d6c800272 | |||
47707f6f34 | |||
718272a7e1 | |||
d7a08a23bf | |||
ed767a2073 | |||
022b896592 | |||
fa7353428f | |||
24db72958f | |||
d798af8c77 | |||
d2e03f02c4 | |||
027387f70c |
3
.gitignore
vendored
3
.gitignore
vendored
@ -5,6 +5,7 @@ src/xxd/xxd
|
||||
src/auto/if_perl.c
|
||||
src/auto/gui_gtk_gresources.c
|
||||
src/auto/gui_gtk_gresources.h
|
||||
src/objects/.dirstamp
|
||||
src/tags
|
||||
|
||||
# We do need src/auto/configure.
|
||||
@ -78,3 +79,5 @@ src/testdir/dostmp/*
|
||||
src/testdir/messages
|
||||
src/testdir/viminfo
|
||||
src/memfile_test
|
||||
src/json_test
|
||||
src/message_test
|
||||
|
75
.travis.yml
75
.travis.yml
@ -1,19 +1,63 @@
|
||||
language: c
|
||||
|
||||
os:
|
||||
- osx
|
||||
- linux
|
||||
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
|
||||
env:
|
||||
- COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
|
||||
- BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
|
||||
CHECK_AUTOCONF=yes
|
||||
- COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
- BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
|
||||
- BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
# Mac OSX build
|
||||
- BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
# ASAN build
|
||||
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
|
||||
sudo: false
|
||||
|
||||
git:
|
||||
depth: 1
|
||||
|
||||
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
|
||||
# exclude some builds on mac os x and linux
|
||||
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
|
||||
matrix:
|
||||
exclude:
|
||||
- os: osx
|
||||
env: BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
|
||||
- os: osx
|
||||
env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
- os: osx
|
||||
env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- os: osx
|
||||
env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
|
||||
- os: osx
|
||||
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
- os: linux
|
||||
env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
|
||||
|
||||
branches:
|
||||
except:
|
||||
- /^v[0-9]/
|
||||
@ -28,18 +72,29 @@ addons:
|
||||
- python3-dev
|
||||
- liblua5.1-0-dev
|
||||
- lua5.1
|
||||
- cscope
|
||||
|
||||
before_install:
|
||||
- pip install --user cpp-coveralls
|
||||
- if [ "$COVERAGE" = "yes" ]; then pip install --user cpp-coveralls; fi
|
||||
# needed for https support for coveralls
|
||||
# building cffi only works with gcc, not with clang
|
||||
- if [ "$COVERAGE" = "yes" ]; then CC=gcc pip install --user pyopenssl ndg-httpsclient pyasn1; fi
|
||||
# Lua is not installed on Travis OSX
|
||||
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install lua; export LUA_PREFIX=/usr/local; fi
|
||||
|
||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
||||
before_script:
|
||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then export DISPLAY=:99.0 && sh -e /etc/init.d/xvfb start && sleep 3; fi
|
||||
|
||||
script:
|
||||
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||
- if [ "$CHECK_AUTOCONF" = "yes" -a "$CC" = "gcc" ]; then make -C src autoconf; fi
|
||||
- if [ "x$SHADOWOPT" != x ]; then make -C src shadow; fi && (cd ${SRCDIR} && ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC)
|
||||
- ${SRCDIR}/vim --version
|
||||
- make $SHADOWOPT test
|
||||
- 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)
|
||||
- if [ "$BUILD" = "yes" ]; then ${SRCDIR}/vim --version; fi
|
||||
- make $SHADOWOPT $TEST
|
||||
|
||||
after_success:
|
||||
- if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b $SRCDIR -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
|
||||
- if [ "$COVERAGE" = "yes" ]; then ~/.local/bin/coveralls -b $SRCDIR -x .xs -e ${SRCDIR}/xxd -e ${SRCDIR}/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi
|
||||
|
||||
# vim:set sts=2 sw=2 tw=0 et:
|
||||
|
105
Filelist
105
Filelist
@ -6,19 +6,24 @@ SRC_ALL = \
|
||||
.hgignore \
|
||||
.travis.yml \
|
||||
appveyor.yml \
|
||||
src/appveyor.bat \
|
||||
src/README.txt \
|
||||
src/alloc.h \
|
||||
src/arabic.c \
|
||||
src/arabic.h \
|
||||
src/ascii.h \
|
||||
src/blowfish.c \
|
||||
src/buffer.c \
|
||||
src/channel.c \
|
||||
src/charset.c \
|
||||
src/crypt.c \
|
||||
src/crypt_zip.c \
|
||||
src/dict.c \
|
||||
src/diff.c \
|
||||
src/digraph.c \
|
||||
src/edit.c \
|
||||
src/eval.c \
|
||||
src/evalfunc.c \
|
||||
src/ex_cmds.c \
|
||||
src/ex_cmds.h \
|
||||
src/ex_cmds2.c \
|
||||
@ -38,6 +43,9 @@ SRC_ALL = \
|
||||
src/gui_beval.h \
|
||||
src/hardcopy.c \
|
||||
src/hashtab.c \
|
||||
src/json.c \
|
||||
src/json_test.c \
|
||||
src/list.c \
|
||||
src/keymap.h \
|
||||
src/macros.h \
|
||||
src/main.c \
|
||||
@ -48,6 +56,7 @@ SRC_ALL = \
|
||||
src/memline.c \
|
||||
src/menu.c \
|
||||
src/message.c \
|
||||
src/message_test.c \
|
||||
src/misc1.c \
|
||||
src/misc2.c \
|
||||
src/move.c \
|
||||
@ -69,6 +78,8 @@ SRC_ALL = \
|
||||
src/sha256.c \
|
||||
src/structs.h \
|
||||
src/spell.c \
|
||||
src/spell.h \
|
||||
src/spellfile.c \
|
||||
src/syntax.c \
|
||||
src/tag.c \
|
||||
src/term.c \
|
||||
@ -76,19 +87,24 @@ SRC_ALL = \
|
||||
src/termlib.c \
|
||||
src/ui.c \
|
||||
src/undo.c \
|
||||
src/userfunc.c \
|
||||
src/version.c \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
src/tee/tee.c \
|
||||
src/xxd/xxd.c \
|
||||
src/main.aap \
|
||||
src/testdir/main.aap \
|
||||
src/testdir/README.txt \
|
||||
src/testdir/Make_all.mak \
|
||||
src/testdir/*.in \
|
||||
src/testdir/*.py \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/setup.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test[0-9]*a.ok \
|
||||
src/testdir/test_[a-z]*.ok \
|
||||
@ -110,20 +126,25 @@ SRC_ALL = \
|
||||
src/testdir/bench*.vim \
|
||||
src/testdir/samples/*.txt \
|
||||
src/proto.h \
|
||||
src/proto/arabic.pro \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
src/proto/channel.pro \
|
||||
src/proto/charset.pro \
|
||||
src/proto/crypt.pro \
|
||||
src/proto/crypt_zip.pro \
|
||||
src/proto/dict.pro \
|
||||
src/proto/diff.pro \
|
||||
src/proto/digraph.pro \
|
||||
src/proto/edit.pro \
|
||||
src/proto/eval.pro \
|
||||
src/proto/evalfunc.pro \
|
||||
src/proto/ex_cmds.pro \
|
||||
src/proto/ex_cmds2.pro \
|
||||
src/proto/ex_docmd.pro \
|
||||
src/proto/ex_eval.pro \
|
||||
src/proto/ex_getln.pro \
|
||||
src/proto/farsi.pro \
|
||||
src/proto/fileio.pro \
|
||||
src/proto/fold.pro \
|
||||
src/proto/getchar.pro \
|
||||
@ -131,6 +152,8 @@ SRC_ALL = \
|
||||
src/proto/gui_beval.pro \
|
||||
src/proto/hardcopy.pro \
|
||||
src/proto/hashtab.pro \
|
||||
src/proto/json.pro \
|
||||
src/proto/list.pro \
|
||||
src/proto/main.pro \
|
||||
src/proto/mark.pro \
|
||||
src/proto/mbyte.pro \
|
||||
@ -152,12 +175,14 @@ SRC_ALL = \
|
||||
src/proto/search.pro \
|
||||
src/proto/sha256.pro \
|
||||
src/proto/spell.pro \
|
||||
src/proto/spellfile.pro \
|
||||
src/proto/syntax.pro \
|
||||
src/proto/tag.pro \
|
||||
src/proto/term.pro \
|
||||
src/proto/termlib.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
src/proto/userfunc.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
@ -182,7 +207,7 @@ SRC_UNIX = \
|
||||
src/config.mk.dist \
|
||||
src/config.mk.in \
|
||||
src/configure \
|
||||
src/configure.in \
|
||||
src/configure.ac \
|
||||
src/gui_at_fs.c \
|
||||
src/gui_at_sb.c \
|
||||
src/gui_at_sb.h \
|
||||
@ -239,6 +264,7 @@ SRC_UNIX = \
|
||||
src/workshop.h \
|
||||
src/wsdebug.c \
|
||||
src/wsdebug.h \
|
||||
src/tee/Makefile \
|
||||
src/xxd/Makefile \
|
||||
|
||||
# source files for both DOS and Unix
|
||||
@ -254,7 +280,6 @@ SRC_DOS_UNIX = \
|
||||
src/if_python3.c \
|
||||
src/if_py_both.h \
|
||||
src/if_ruby.c \
|
||||
src/if_sniff.h \
|
||||
src/if_tcl.c \
|
||||
src/proto/if_cscope.pro \
|
||||
src/proto/if_lua.pro \
|
||||
@ -284,16 +309,14 @@ SRC_DOS = \
|
||||
src/GvimExt/uninst.bat \
|
||||
README_srcdos.txt \
|
||||
src/INSTALLpc.txt \
|
||||
src/Make_bc3.mak \
|
||||
src/Make_bc5.mak \
|
||||
src/Make_cyg.mak \
|
||||
src/Make_cyg_ming.mak \
|
||||
src/Make_djg.mak \
|
||||
src/Make_ivc.mak \
|
||||
src/Make_dvc.mak \
|
||||
src/Make_ming.mak \
|
||||
src/Make_mvc.mak \
|
||||
src/Make_w16.mak \
|
||||
tools/rename.bat \
|
||||
src/bigvim.bat \
|
||||
src/bigvim64.bat \
|
||||
src/msvcsetup.bat \
|
||||
@ -307,31 +330,23 @@ SRC_DOS = \
|
||||
src/glbl_ime.h \
|
||||
src/gui_dwrite.cpp \
|
||||
src/gui_dwrite.h \
|
||||
src/gui_w16.c \
|
||||
src/gui_w32.c \
|
||||
src/gui_w48.c \
|
||||
src/guiw16rc.h \
|
||||
src/gui_w32_rc.h \
|
||||
src/if_ole.cpp \
|
||||
src/if_ole.h \
|
||||
src/if_ole.idl \
|
||||
src/if_perl_msvc/stdbool.h \
|
||||
src/iscygpty.c \
|
||||
src/iscygpty.h \
|
||||
src/iid_ole.c \
|
||||
src/os_dos.h \
|
||||
src/os_msdos.c \
|
||||
src/os_msdos.h \
|
||||
src/os_w32dll.c \
|
||||
src/os_w32exe.c \
|
||||
src/os_win16.c \
|
||||
src/os_win32.c \
|
||||
src/os_mswin.c \
|
||||
src/os_win16.h \
|
||||
src/os_win32.h \
|
||||
src/proto/gui_w16.pro \
|
||||
src/proto/gui_w32.pro \
|
||||
src/proto/if_ole.pro \
|
||||
src/proto/os_msdos.pro \
|
||||
src/proto/os_win16.pro \
|
||||
src/proto/os_win32.pro \
|
||||
src/proto/os_mswin.pro \
|
||||
src/testdir/Make_dos.mak \
|
||||
@ -342,16 +357,11 @@ SRC_DOS = \
|
||||
src/vim.rc \
|
||||
src/vimio.h \
|
||||
src/gvim.exe.mnf \
|
||||
src/vim16.def \
|
||||
src/vim16.rc \
|
||||
src/vimrun.c \
|
||||
src/vimtbar.h \
|
||||
src/xpm_w32.c \
|
||||
src/xpm_w32.h \
|
||||
src/xxd/Make_bc3.mak \
|
||||
src/tee/Make_mvc.mak \
|
||||
src/xxd/Make_bc5.mak \
|
||||
src/xxd/Make_cyg.mak \
|
||||
src/xxd/Make_djg.mak \
|
||||
src/xxd/Make_ming.mak \
|
||||
src/xxd/Make_mvc.mak \
|
||||
nsis/gvim.nsi \
|
||||
@ -384,18 +394,17 @@ SRC_DOS_BIN = \
|
||||
src/VisVim/Res/*.bmp \
|
||||
src/tearoff.bmp \
|
||||
src/tools.bmp \
|
||||
src/tools16.bmp \
|
||||
src/vim*.ico \
|
||||
src/vim.tlb \
|
||||
src/vimtbar.lib \
|
||||
src/xpm/COPYRIGHT \
|
||||
src/xpm/README.txt \
|
||||
src/xpm/include/*.h \
|
||||
src/xpm/x64/lib/libXpm.a \
|
||||
src/xpm/x64/lib/libXpm.lib \
|
||||
src/xpm/x64/lib-vc14/libXpm.lib \
|
||||
src/xpm/x86/lib/libXpm.a \
|
||||
src/xpm/x86/lib/libXpm.lib \
|
||||
src/vimtbar.dll \
|
||||
src/xpm/x86/lib-vc14/libXpm.lib \
|
||||
nsis/icons/*.bmp \
|
||||
nsis/icons/*.ico \
|
||||
|
||||
@ -466,7 +475,6 @@ SRC_EXTRA = \
|
||||
$(SRC_VMS) \
|
||||
README_os390.txt \
|
||||
src/Make_mint.mak \
|
||||
src/if_sniff.c \
|
||||
src/infplist.xml \
|
||||
src/link.390 \
|
||||
src/os_beos.c \
|
||||
@ -496,7 +504,6 @@ RT_ALL = \
|
||||
runtime/ftoff.vim \
|
||||
runtime/gvimrc_example.vim \
|
||||
runtime/macros/README.txt \
|
||||
runtime/macros/dvorak \
|
||||
runtime/macros/editexisting.vim \
|
||||
runtime/macros/hanoi/click.me \
|
||||
runtime/macros/hanoi/hanoi.vim \
|
||||
@ -508,7 +515,6 @@ RT_ALL = \
|
||||
runtime/macros/life/click.me \
|
||||
runtime/macros/life/life.vim \
|
||||
runtime/macros/matchit.vim \
|
||||
runtime/macros/matchit.txt \
|
||||
runtime/macros/maze/README.txt \
|
||||
runtime/macros/maze/[mM]akefile \
|
||||
runtime/macros/maze/main.aap \
|
||||
@ -524,8 +530,9 @@ RT_ALL = \
|
||||
runtime/macros/urm/examples \
|
||||
runtime/macros/urm/urm \
|
||||
runtime/macros/urm/urm.vim \
|
||||
runtime/mswin.vim \
|
||||
runtime/defaults.vim \
|
||||
runtime/evim.vim \
|
||||
runtime/mswin.vim \
|
||||
runtime/optwin.vim \
|
||||
runtime/ftplugin.vim \
|
||||
runtime/ftplugof.vim \
|
||||
@ -538,6 +545,16 @@ RT_ALL = \
|
||||
runtime/tutor/tutor \
|
||||
runtime/tutor/tutor.vim \
|
||||
runtime/vimrc_example.vim \
|
||||
runtime/pack/dist/opt/dvorak/plugin/dvorak.vim \
|
||||
runtime/pack/dist/opt/dvorak/dvorak/enable.vim \
|
||||
runtime/pack/dist/opt/dvorak/dvorak/disable.vim \
|
||||
runtime/pack/dist/opt/editexisting/plugin/editexisting.vim \
|
||||
runtime/pack/dist/opt/justify/plugin/justify.vim \
|
||||
runtime/pack/dist/opt/matchit/plugin/matchit.vim \
|
||||
runtime/pack/dist/opt/matchit/doc/matchit.txt \
|
||||
runtime/pack/dist/opt/matchit/doc/tags \
|
||||
runtime/pack/dist/opt/shellmenu/plugin/shellmenu.vim \
|
||||
runtime/pack/dist/opt/swapmouse/plugin/swapmouse.vim \
|
||||
|
||||
# runtime files for all distributions without CR-NL translation
|
||||
RT_ALL_BIN = \
|
||||
@ -618,7 +635,6 @@ RT_AMI = \
|
||||
README.txt.info \
|
||||
README_ami.txt \
|
||||
README_ami.txt.info \
|
||||
libs/arp.library \
|
||||
runtime/doc.info \
|
||||
runtime/doc/*.info \
|
||||
runtime/icons/README.txt \
|
||||
@ -703,8 +719,37 @@ EXTRA = \
|
||||
runtime/vimlogo.xpm \
|
||||
src/swis.s \
|
||||
src/tee/Makefile \
|
||||
src/tee/Make_mvc.mak \
|
||||
src/tee/tee.c \
|
||||
csdpmi4b.zip \
|
||||
|
||||
# files in READMEdir that are included from the top dir
|
||||
IN_README_DIR = \
|
||||
README.txt.info \
|
||||
README_ami.txt \
|
||||
README_ami.txt.info \
|
||||
README_amibin.txt \
|
||||
README_amibin.txt.info \
|
||||
README_amisrc.txt \
|
||||
README_amisrc.txt.info \
|
||||
README_bindos.txt \
|
||||
README_dos.txt \
|
||||
README_extra.txt \
|
||||
README_mac.txt \
|
||||
README_ole.txt \
|
||||
README_os2.txt \
|
||||
README_os390.txt \
|
||||
README_src.txt \
|
||||
README_srcdos.txt \
|
||||
README_unix.txt \
|
||||
README_vms.txt \
|
||||
README_w32s.txt \
|
||||
Contents \
|
||||
Contents.info \
|
||||
Vim.info \
|
||||
Xxd.info \
|
||||
runtime.info \
|
||||
src.info \
|
||||
vimdir.info \
|
||||
|
||||
# generic language files
|
||||
LANG_GEN = \
|
||||
|
173
Makefile
173
Makefile
@ -32,7 +32,7 @@ first:
|
||||
|
||||
# Some make programs use the last target for the $@ default; put the other
|
||||
# targets separately to always let $@ expand to "first" by default.
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test scripttests unittests testclean clean distclean:
|
||||
@if test ! -f src/auto/config.mk; then \
|
||||
cp src/config.mk.dist src/auto/config.mk; \
|
||||
fi
|
||||
@ -51,12 +51,9 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
#
|
||||
# dossrc vim##src.zip sources for MS-DOS
|
||||
# dosrt vim##rt.zip runtime for MS-DOS
|
||||
# dosbin vim##d16.zip binary for MS-DOS 16 bits
|
||||
# vim##d32.zip binary for MS-DOS 32 bits
|
||||
# vim##w32.zip binary for Win32
|
||||
# dosbin vim##w32.zip binary for Win32
|
||||
# gvim##.zip binary for GUI Win32
|
||||
# gvim##ole.zip OLE exe for Win32 GUI
|
||||
# gvim##_s.zip exe for Win32s GUI
|
||||
#
|
||||
# OBSOLETE
|
||||
# amisrc vim##src.tgz sources for Amiga
|
||||
@ -70,25 +67,17 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
# To do all this you need the Unix archive and compiled binaries.
|
||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||
|
||||
MAJOR = 7
|
||||
MINOR = 4
|
||||
|
||||
# Uncomment this line if the Win32s version is to be included.
|
||||
# DOSBIN_S = dosbin_s
|
||||
|
||||
# Uncomment this line if the 16 bit DOS version is to be included.
|
||||
# DOSBIN_D16 = dosbin_d16
|
||||
|
||||
# Uncomment this line if the 32 bit DOS version is to be included.
|
||||
# DOSBIN_D32 = dosbin_d32
|
||||
MAJOR = 8
|
||||
MINOR = 0
|
||||
|
||||
# CHECKLIST for creating a new version:
|
||||
#
|
||||
# - Update Vim version number. For a test version in: src/version.h, Contents,
|
||||
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
|
||||
# runtime/doc/*.txt and nsis/gvim.nsi.
|
||||
# - Update Vim version number. For a test version in: src/version.h,
|
||||
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
|
||||
# src/Makefile, README.txt, README.md, READMEdir/README*.txt,
|
||||
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
|
||||
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
|
||||
# src/vim16.def, src/gvim.exe.mnf.
|
||||
# src/gvim.exe.mnf.
|
||||
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
|
||||
# you can make it all work), Cscope and "huge" features. Exclude workshop
|
||||
# and SNiFF.
|
||||
@ -108,7 +97,7 @@ MINOR = 4
|
||||
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
||||
# - Check for missing options in runtime/optwin.vim et al. (with check.vim).
|
||||
# - Do "make menu" to update the runtime/synmenu.vim file.
|
||||
# - Add remarks for changes to runtime/doc/version7.txt.
|
||||
# - Add remarks for changes to runtime/doc/version8.txt.
|
||||
# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
|
||||
# ADDITIONS".
|
||||
# - In runtime/doc run "make" and "make html" to check for errors.
|
||||
@ -131,6 +120,9 @@ MINOR = 4
|
||||
#
|
||||
# MS-Windows:
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - Get libintl-8.dll and libiconv-2.dll. E.g. from
|
||||
# https://mlocati.github.io/gettext-iconv-windows/ .
|
||||
# Put them in the top directory, "make dosrt" uses them.
|
||||
# - > make dossrc
|
||||
# > make dosrt
|
||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||
@ -146,31 +138,35 @@ MINOR = 4
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak
|
||||
# - Run the tests:
|
||||
# > rm testdir/*.out testdir/*.res
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak test
|
||||
# - check the output.
|
||||
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
|
||||
# - Rename vim.pdb to vimw32.pdb.
|
||||
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
|
||||
# - Rename (using ../tools/rename.bat):
|
||||
# vim.exe to vimw32.exe
|
||||
# tee/tee.exe to teew32.exe
|
||||
# xxd/xxd.exe to xxdw32.exe
|
||||
# vim.pdb to vimw32.pdb
|
||||
# install.exe to installw32.exe
|
||||
# uninstal.exe to uninstalw32.exe
|
||||
# Win32 GUI version build:
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak GUI=yes
|
||||
# - Run the tests:
|
||||
# > rm testdir/*.out testdir/*.res
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||
# - Move gvim.pdb to here.
|
||||
# - Copy "GvimExt/gvimext.dll" to here.
|
||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||
# Win32 GUI version with OLE, PERL, 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
|
||||
# - Build:
|
||||
# > cd src
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# > bigvim.bat
|
||||
# - Run the tests:
|
||||
# > rm testdir/*.out testdir/*.res
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - Rename "gvim.exe" to "gvim_ole.exe".
|
||||
@ -184,7 +180,8 @@ MINOR = 4
|
||||
# NSIS self installing exe:
|
||||
# - To get NSIS see http://nsis.sourceforge.net
|
||||
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
|
||||
# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
|
||||
# uninstalw32.exe, teew32.exe and xxdw32.exe have been build as mentioned
|
||||
# above.
|
||||
# - copy these files (get them from a binary archive or build them):
|
||||
# gvimext.dll in src/GvimExt
|
||||
# gvimext64.dll in src/GvimExt
|
||||
@ -196,6 +193,7 @@ MINOR = 4
|
||||
# version).
|
||||
# - go to ../nsis and do:
|
||||
# > makensis gvim.nsi (takes a few minutes).
|
||||
# ignore warning for libwinpthread-1.dll
|
||||
# - Copy gvim##.exe to the dist directory.
|
||||
#
|
||||
# 64 bit builds (these are not in the normal distribution, the 32 bit build
|
||||
@ -210,41 +208,19 @@ MINOR = 4
|
||||
# > bigvim64.bat
|
||||
#
|
||||
#
|
||||
# OBSOLETE systems: You can build this if you have an appropriate system.
|
||||
# OBSOLETE systems: You can build these if you have an appropriate system.
|
||||
#
|
||||
# 16 bit DOS version: (doesn't build anywhere)
|
||||
# - Set environment for compiling with Borland C++ 3.1.
|
||||
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
|
||||
# case set environment for compiling with Borland C++ 4.0 and do
|
||||
# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
|
||||
# NOTE: this currently fails because Vim is too big.
|
||||
# - "make test" and check the output.
|
||||
# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
|
||||
# "uninstald16.exe".
|
||||
# 16 bit DOS version: You need to get a very old version of Vim, for several
|
||||
# years even the tiny build is too big to fit in DOS memory.
|
||||
#
|
||||
# 32 bit DOS version: (requires Windows XP or earlier)
|
||||
# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
|
||||
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
|
||||
# "ALL DONE".
|
||||
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
|
||||
# "uninstald32.exe".
|
||||
# 32 bit DOS version: Support was removed in 7.4.1399. When syncing to before
|
||||
# that it probably won't build.
|
||||
#
|
||||
# Win32s GUI version: (requires a very old compiler)
|
||||
# - Set environment for Visual C++ 4.1 (requires a new console window):
|
||||
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
|
||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
|
||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
|
||||
# - Rename "gvim.exe" to "gvim_w32s.exe".
|
||||
# - Rename "install.exe" to "installw32.exe"
|
||||
# - Rename "uninstal.exe" to "uninstalw32.exe"
|
||||
# - The produced uninstalw32.exe and vimrun.exe are used.
|
||||
# Win32s GUI version: Support was removed in patch 7.4.1364.
|
||||
#
|
||||
# OS/2: (requires an OS/2 system)
|
||||
# - Unpack the Unix archive.
|
||||
# - "make -f Make_os2.mak".
|
||||
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
|
||||
# them to here.
|
||||
# - "make os2bin".
|
||||
# OS/2 support was removed in patch 7.4.1008. If you want to give it a try
|
||||
# sync to before that and check the old version of this Makefile for
|
||||
# instructions.
|
||||
|
||||
VIMVER = vim-$(MAJOR).$(MINOR)
|
||||
VERSION = $(MAJOR)$(MINOR)
|
||||
@ -266,21 +242,22 @@ dist:
|
||||
mkdir dist
|
||||
|
||||
# Clean up some files to avoid they are included.
|
||||
# Copy README files to the top directory.
|
||||
prepare:
|
||||
if test -f runtime/doc/uganda.nsis.txt; then \
|
||||
rm runtime/doc/uganda.nsis.txt; fi
|
||||
for name in $(IN_README_DIR); do \
|
||||
cp READMEdir/"$$name" .; \
|
||||
done
|
||||
|
||||
# For the zip files we need to create a file with the comment line
|
||||
dist/comment:
|
||||
mkdir dist/comment
|
||||
|
||||
COMMENT_RT = comment/$(VERSION)-rt
|
||||
COMMENT_D16 = comment/$(VERSION)-bin-d16
|
||||
COMMENT_D32 = comment/$(VERSION)-bin-d32
|
||||
COMMENT_W32 = comment/$(VERSION)-bin-w32
|
||||
COMMENT_GVIM = comment/$(VERSION)-bin-gvim
|
||||
COMMENT_OLE = comment/$(VERSION)-bin-ole
|
||||
COMMENT_W32S = comment/$(VERSION)-bin-w32s
|
||||
COMMENT_SRC = comment/$(VERSION)-src
|
||||
COMMENT_HTML = comment/$(VERSION)-html
|
||||
COMMENT_FARSI = comment/$(VERSION)-farsi
|
||||
@ -288,12 +265,6 @@ COMMENT_FARSI = comment/$(VERSION)-farsi
|
||||
dist/$(COMMENT_RT): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
|
||||
|
||||
dist/$(COMMENT_D16): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
|
||||
|
||||
dist/$(COMMENT_D32): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32)
|
||||
|
||||
dist/$(COMMENT_W32): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32)
|
||||
|
||||
@ -303,9 +274,6 @@ dist/$(COMMENT_GVIM): dist/comment
|
||||
dist/$(COMMENT_OLE): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE)
|
||||
|
||||
dist/$(COMMENT_W32S): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S)
|
||||
|
||||
dist/$(COMMENT_SRC): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
|
||||
|
||||
@ -333,6 +301,7 @@ unixall: dist prepare
|
||||
$(EXTRA) \
|
||||
$(LANG_SRC) \
|
||||
| (cd dist/$(VIMRTDIR); tar xf -)
|
||||
-rm $(IN_README_DIR)
|
||||
# Need to use a "distclean" config.mk file
|
||||
# Note: this file is not included in the repository to avoid problems, but it's
|
||||
# OK to put it in the archive.
|
||||
@ -369,6 +338,7 @@ amirt: dist prepare
|
||||
$(RT_NO_UNIX) \
|
||||
$(RT_AMI_DOS) \
|
||||
| (cd dist/Vim/$(VIMRTDIR); tar xf -)
|
||||
-rm $(IN_README_DIR)
|
||||
mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
|
||||
mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
|
||||
mv dist/Vim/$(VIMRTDIR)/runtime/* dist/Vim/$(VIMRTDIR)
|
||||
@ -389,6 +359,7 @@ amibin: dist prepare
|
||||
Vim \
|
||||
Xxd \
|
||||
| (cd dist/Vim/$(VIMRTDIR); tar xf -)
|
||||
-rm $(IN_README_DIR)
|
||||
mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
|
||||
mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
|
||||
cd dist && tar cf vim$(VERSION)bin.tar Vim Vim.info
|
||||
@ -407,6 +378,7 @@ amisrc: dist prepare
|
||||
$(SRC_AMI) \
|
||||
$(SRC_AMI_DOS) \
|
||||
| (cd dist/Vim/$(VIMRTDIR); tar xf -)
|
||||
-rm $(IN_README_DIR)
|
||||
mv dist/Vim/$(VIMRTDIR)/vimdir.info dist/Vim.info
|
||||
mv dist/Vim/$(VIMRTDIR)/runtime.info dist/Vim/$(VIMRTDIR).info
|
||||
cd dist && tar cf vim$(VERSION)src.tar Vim Vim.info
|
||||
@ -480,6 +452,7 @@ dosrt_files: dist prepare no_title.vim
|
||||
$(RT_DOS_BIN) \
|
||||
$(LANG_GEN_BIN) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
-rm $(IN_README_DIR)
|
||||
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
||||
rmdir dist/vim/$(VIMRTDIR)/runtime
|
||||
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
|
||||
@ -493,7 +466,8 @@ dosrt_files: dist prepare no_title.vim
|
||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||
fi \
|
||||
done
|
||||
cp libintl.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libintl-8.dll dist/vim/$(VIMRTDIR)/
|
||||
cp libiconv-2.dll dist/vim/$(VIMRTDIR)/
|
||||
|
||||
|
||||
# Used before uploading. Don't delete the AAPDIR/sign files!
|
||||
@ -502,7 +476,8 @@ runtime_unix2dos: dosrt_files
|
||||
cd dist/vim/$(VIMRTDIR); tar cf - * \
|
||||
| (cd ../../../runtime/dos; tar xf -)
|
||||
|
||||
dosbin: prepare dosbin_gvim dosbin_w32 $(DOSBIN_D32) dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
|
||||
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_ole $(DOSBIN_S)
|
||||
-rm $(IN_README_DIR)
|
||||
|
||||
# make Win32 gvim
|
||||
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
@ -514,6 +489,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@ -532,43 +508,13 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
|
||||
cp vimw32.pdb dist/vim$(VERSION)w32.pdb
|
||||
|
||||
# make 32bit DOS
|
||||
dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
|
||||
-rm -rf dist/vim$(VERSION)d32.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cp csdpmi4b.zip dist/vim/$(VIMRTDIR)
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32)
|
||||
|
||||
# make 16bit DOS
|
||||
dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
|
||||
-rm -rf dist/vim$(VERSION)d16.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16)
|
||||
|
||||
# make Win32 gvim with OLE
|
||||
dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
-rm -rf dist/gvim$(VERSION)ole.zip
|
||||
@ -579,6 +525,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@ -590,22 +537,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
|
||||
cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
|
||||
|
||||
# make Win32s gvim
|
||||
dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
|
||||
-rm -rf dist/gvim$(VERSION)_s.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp README_w32s.txt dist/vim/$(VIMRTDIR)
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
|
||||
|
||||
html: dist dist/$(COMMENT_HTML)
|
||||
-rm -rf dist/vim$(VERSION)html.zip
|
||||
cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)
|
||||
|
76
README.md
76
README.md
@ -1,26 +1,29 @@
|
||||
`README.md` for version 7.4 of Vim: Vi IMproved.
|
||||
`README.md` for version 8.0 of Vim: Vi IMproved.
|
||||
[](https://travis-ci.org/vim/vim)
|
||||
[](https://coveralls.io/github/vim/vim?branch=master)
|
||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||
[](https://scan.coverity.com/projects/vim)
|
||||
|
||||
|
||||
## What is Vim? ##
|
||||
|
||||
Vim is an almost compatible version of the UNIX editor Vi. Many new features
|
||||
have been added: multi-level undo, syntax highlighting, command line history,
|
||||
on-line help, spell checking, filename completion, block operations, etc.
|
||||
There is also a Graphical User Interface (GUI) available. See
|
||||
`runtime/doc/vi_diff.txt` for differences with Vi.
|
||||
Vim is a greatly improved version of the good old UNIX editor Vi. Many new
|
||||
features have been added: multi-level undo, syntax highlighting, command line
|
||||
history, on-line help, spell checking, filename completion, block operations,
|
||||
script language, etc. There is also a Graphical User Interface (GUI)
|
||||
available. Still, Vi compatibility is maintained, those who have Vi "in the
|
||||
fingers" will feel at home. See `runtime/doc/vi_diff.txt` for differences with
|
||||
Vi.
|
||||
|
||||
This editor is very useful for editing programs and other plain text files.
|
||||
All commands are given with normal keyboard characters, so those who can type
|
||||
with ten fingers can work very fast. Additionally, function keys can be
|
||||
defined by the user, and the mouse can be used.
|
||||
mapped to commands by the user, and the mouse can be used.
|
||||
|
||||
Vim runs under MS-DOS, MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh,
|
||||
VMS and almost all flavours of UNIX. Porting to other systems should not be
|
||||
very difficult. Older versions of Vim run on MS-Windows 95/98/Me, Amiga DOS,
|
||||
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
Vim runs under MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and
|
||||
almost all flavours of UNIX. Porting to other systems should not be very
|
||||
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga
|
||||
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
|
||||
## Distribution ##
|
||||
@ -37,10 +40,39 @@ Which one you need depends on the system you want to run it on and whether you
|
||||
want or must compile it yourself. Check http://www.vim.org/download.php for
|
||||
an overview of currently available distributions.
|
||||
|
||||
Some popular places to get the latest Vim:
|
||||
* Check out the git repository from [github](https://github.com/vim/vim).
|
||||
* Get the source code as an [archive](https://github.com/vim/vim/releases).
|
||||
* Get a Windows executable from the
|
||||
[vim-win32-installer](https://github.com/vim/vim-win32-installer/releases) repository.
|
||||
|
||||
|
||||
|
||||
## Compiling ##
|
||||
|
||||
If you obtained a binary distribution you don't need to compile Vim. If you
|
||||
obtained a source distribution, all the stuff for compiling Vim is in the
|
||||
`src` directory. See `src/INSTALL` for instructions.
|
||||
|
||||
|
||||
## Installation ##
|
||||
|
||||
See one of these files for system-specific instructions. Either in the
|
||||
READMEdir directory (in the repository) or the top directory (if you unpack an
|
||||
archive):
|
||||
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_vms.txt VMS
|
||||
|
||||
There are other `README_*.txt` files, depending on the distribution you used.
|
||||
|
||||
|
||||
## Documentation ##
|
||||
|
||||
The vim tutor is a one hour training course for beginners. Mostly it can be
|
||||
The Vim tutor is a one hour training course for beginners. Often it can be
|
||||
started as `vimtutor`. See `:help tutor` for more information.
|
||||
|
||||
The best is to use `:help` in Vim. If you don't have an executable yet, read
|
||||
@ -76,26 +108,6 @@ For the most recent information about sponsoring look on the Vim web site:
|
||||
http://www.vim.org/sponsor/
|
||||
|
||||
|
||||
## Compiling ##
|
||||
|
||||
If you obtained a binary distribution you don't need to compile Vim. If you
|
||||
obtained a source distribution, all the stuff for compiling Vim is in the
|
||||
`src` directory. See `src/INSTALL` for instructions.
|
||||
|
||||
|
||||
## Installation ##
|
||||
|
||||
See one of these files for system-specific instructions:
|
||||
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_vms.txt VMS
|
||||
|
||||
There are more `README_*.txt` files, depending on the distribution you used.
|
||||
|
||||
|
||||
## Contributing ##
|
||||
|
||||
If you would like to help making Vim better, see the [CONTRIBUTING.md](https://github.com/vim/vim/blob/master/CONTRIBUTING.md) file.
|
||||
|
72
README.txt
72
README.txt
@ -1,23 +1,25 @@
|
||||
README.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
|
||||
WHAT IS VIM?
|
||||
|
||||
Vim is an almost compatible version of the UNIX editor Vi. Many new features
|
||||
have been added: multi-level undo, syntax highlighting, command line history,
|
||||
on-line help, spell checking, filename completion, block operations, etc.
|
||||
There is also a Graphical User Interface (GUI) available. See
|
||||
"runtime/doc/vi_diff.txt" for differences with Vi.
|
||||
Vim is a greatly improved version of the good old UNIX editor Vi. Many new
|
||||
features have been added: multi-level undo, syntax highlighting, command line
|
||||
history, on-line help, spell checking, filename completion, block operations,
|
||||
script language, etc. There is also a Graphical User Interface (GUI)
|
||||
available. Still, Vi compatibility is maintained, those who have Vi "in the
|
||||
fingers" will feel at home. See "runtime/doc/vi_diff.txt" for differences with
|
||||
Vi.
|
||||
|
||||
This editor is very useful for editing programs and other plain text files.
|
||||
All commands are given with normal keyboard characters, so those who can type
|
||||
with ten fingers can work very fast. Additionally, function keys can be
|
||||
defined by the user, and the mouse can be used.
|
||||
mapped to commands by the user, and the mouse can be used.
|
||||
|
||||
Vim runs under MS-DOS, MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh,
|
||||
VMS and almost all flavours of UNIX. Porting to other systems should not be
|
||||
very difficult. Older versions of Vim run on MS-Windows 95/98/Me, Amiga DOS,
|
||||
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
Vim runs under MS-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and
|
||||
almost all flavours of UNIX. Porting to other systems should not be very
|
||||
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga
|
||||
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
|
||||
DISTRIBUTION
|
||||
@ -34,10 +36,38 @@ Which one you need depends on the system you want to run it on and whether you
|
||||
want or must compile it yourself. Check "http://www.vim.org/download.php" for
|
||||
an overview of currently available distributions.
|
||||
|
||||
Some popular places to get the latest Vim:
|
||||
* Check out the git repository from github: https://github.com/vim/vim.
|
||||
* Get the source code as an archive: https://github.com/vim/vim/releases.
|
||||
* Get a Windows executable from the vim-win32-installer repository:
|
||||
https://github.com/vim/vim-win32-installer/releases.
|
||||
|
||||
|
||||
COMPILING
|
||||
|
||||
If you obtained a binary distribution you don't need to compile Vim. If you
|
||||
obtained a source distribution, all the stuff for compiling Vim is in the
|
||||
"src" directory. See src/INSTALL for instructions.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
|
||||
See one of these files for system-specific instructions. Either in the
|
||||
READMEdir directory (in the repository) or the top directory (if you unpack an
|
||||
archive):
|
||||
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_vms.txt VMS
|
||||
|
||||
There are more README_*.txt files, depending on the distribution you used.
|
||||
|
||||
|
||||
DOCUMENTATION
|
||||
|
||||
The vim tutor is a one hour training course for beginners. Mostly it can be
|
||||
The Vim tutor is a one hour training course for beginners. Often it can be
|
||||
started as "vimtutor". See ":help tutor" for more information.
|
||||
|
||||
The best is to use ":help" in Vim. If you don't have an executable yet, read
|
||||
@ -74,23 +104,9 @@ For the most recent information about sponsoring look on the Vim web site:
|
||||
http://www.vim.org/sponsor/
|
||||
|
||||
|
||||
COMPILING
|
||||
CONTRIBUTING
|
||||
|
||||
If you obtained a binary distribution you don't need to compile Vim. If you
|
||||
obtained a source distribution, all the stuff for compiling Vim is in the
|
||||
"src" directory. See src/INSTALL for instructions.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
|
||||
See one of these files for system-specific instructions:
|
||||
README_ami.txt Amiga
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_vms.txt VMS
|
||||
|
||||
There are more README_*.txt files, depending on the distribution you used.
|
||||
If you would like to help making Vim better, see the CONTRIBUTING.md file.
|
||||
|
||||
|
||||
INFORMATION
|
||||
|
@ -1,16 +0,0 @@
|
||||
README_bindos.txt for version 7.4 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
These files are in the runtime archive (vim74rt.zip).
|
||||
|
||||
|
||||
There are several binary distributions of Vim for the PC. You would normally
|
||||
pick only one of them, but it's also possible to install several.
|
||||
These ones are available (the version number may differ):
|
||||
vim74w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim74.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim74ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
|
||||
You MUST also get the runtime archive (vim74rt.zip).
|
||||
The sources are also available (vim74src.zip).
|
@ -1,8 +0,0 @@
|
||||
README_mac.txt for version 7.4 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Macintosh systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
|
||||
Sorry, this text still needs to be written!
|
||||
|
@ -9,15 +9,15 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
|
||||
messages, shows current file name in window title, on-line
|
||||
help, rectangular cut/paste, etc., etc., etc...
|
||||
|
||||
Version 7.4. Also runs under UNIX, MSDOS and other systems.
|
||||
vim74rt.tgz contains the documentation and syntax files.
|
||||
vim74bin.tgz contains the binaries.
|
||||
vim74src.tgz contains the sources.
|
||||
Version 8.0. Also runs under UNIX, MS-Windows, Mac, etc.
|
||||
vim80rt.tgz contains the documentation and syntax files.
|
||||
vim80bin.tgz contains the binaries.
|
||||
vim80src.tgz contains the sources.
|
||||
Author: Bram Moolenaar et al.
|
||||
|
||||
|
||||
Xxd Hex dumper and reader. Can be used to view files as hex, edit
|
||||
them and write them back. Can also be used to patch files.
|
||||
|
||||
Version 1.8 (1997 May 22)
|
||||
Version 1.10 (1997 May 22)
|
||||
Author: Juergen Weigert
|
0
Contents.info → READMEdir/Contents.info
Executable file → Normal file
0
Contents.info → READMEdir/Contents.info
Executable file → Normal file
0
README.txt.info → READMEdir/README.txt.info
Executable file → Normal file
0
README.txt.info → READMEdir/README.txt.info
Executable file → Normal file
@ -1,4 +1,4 @@
|
||||
README_ami.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_ami.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Amiga systems.
|
||||
See README.txt for general information about Vim.
|
||||
@ -16,8 +16,8 @@ easily upgrade to a new version. For example:
|
||||
You would then unpack the archives like this:
|
||||
|
||||
cd dh0:editors
|
||||
tar xf t:vim60bin.tar
|
||||
tar xf t:vim60rt.tar
|
||||
tar xf t:vim80bin.tar
|
||||
tar xf t:vim80rt.tar
|
||||
|
||||
Set the $VIM environment variable to point to the top directory of your Vim
|
||||
files. For the above example:
|
0
README_ami.txt.info → READMEdir/README_ami.txt.info
Executable file → Normal file
0
README_ami.txt.info → READMEdir/README_ami.txt.info
Executable file → Normal file
@ -1,8 +1,8 @@
|
||||
README_amibin.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_amibin.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_ami.txt" for installation instructions for the Amiga.
|
||||
These files are in the runtime archive (vim60rt.tgz).
|
||||
These files are in the runtime archive (vim80rt.tgz).
|
||||
|
||||
|
||||
The Amiga "bin" archive contains the Vim executable for the Amiga. It was
|
0
README_amibin.txt.info → READMEdir/README_amibin.txt.info
Executable file → Normal file
0
README_amibin.txt.info → READMEdir/README_amibin.txt.info
Executable file → Normal file
@ -1,8 +1,8 @@
|
||||
README_amisrc.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_amisrc.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_ami.txt" for installation instructions for the Amiga.
|
||||
These files are in the runtime archive (vim60rt.tgz).
|
||||
These files are in the runtime archive (vim80rt.tgz).
|
||||
|
||||
|
||||
The Amiga source archive contains the files needed to compile Vim on the
|
0
README_amisrc.txt.info → READMEdir/README_amisrc.txt.info
Executable file → Normal file
0
README_amisrc.txt.info → READMEdir/README_amisrc.txt.info
Executable file → Normal file
16
READMEdir/README_bindos.txt
Normal file
16
READMEdir/README_bindos.txt
Normal file
@ -0,0 +1,16 @@
|
||||
README_bindos.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
These files are in the runtime archive (vim80rt.zip).
|
||||
|
||||
|
||||
There are several binary distributions of Vim for the PC. You would normally
|
||||
pick only one of them, but it's also possible to install several.
|
||||
These ones are available (the version number may differ):
|
||||
vim80w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim80.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim80ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
|
||||
You MUST also get the runtime archive (vim80rt.zip).
|
||||
The sources are also available (vim80src.zip).
|
@ -1,4 +1,4 @@
|
||||
README_dos.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_dos.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on MS-DOS and MS-Windows systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
@ -41,19 +41,19 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
located. Check the $VIM setting to see where it points to:
|
||||
set VIM
|
||||
For example, if you have
|
||||
C:\vim\vim54
|
||||
C:\vim\vim80
|
||||
do
|
||||
cd C:\
|
||||
Binary and runtime Vim archives are normally unpacked in the same location,
|
||||
on top of each other.
|
||||
|
||||
2. Unpack the zip archives. This will create a new directory "vim\vim74",
|
||||
2. Unpack the zip archives. This will create a new directory "vim\vim80",
|
||||
in which all the distributed Vim files are placed. Since the directory
|
||||
name includes the version number, it is unlikely that you overwrite
|
||||
existing files.
|
||||
Examples:
|
||||
pkunzip -d gvim74.zip
|
||||
unzip vim74w32.zip
|
||||
pkunzip -d gvim80.zip
|
||||
unzip vim80w32.zip
|
||||
|
||||
You need to unpack the runtime archive and at least one of the binary
|
||||
archives. When using more than one binary version, be careful not to
|
||||
@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
archive and follow the instructions in the documentation.
|
||||
|
||||
3. Change to the new directory:
|
||||
cd vim\vim74
|
||||
cd vim\vim80
|
||||
Run the "install.exe" program. It will ask you a number of questions about
|
||||
how you would like to have your Vim setup. Among these are:
|
||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||
@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
console or in a shell. You can select one of the directories in your
|
||||
$PATH. If you skip this, you can add Vim to the search path manually:
|
||||
The simplest is to add a line to your autoexec.bat. Examples:
|
||||
set path=%path%;C:\vim\vim74
|
||||
set path=%path%;D:\editors\vim\vim74
|
||||
set path=%path%;C:\vim\vim80
|
||||
set path=%path%;D:\editors\vim\vim80
|
||||
- Create entries for Vim on the desktop and in the Start menu.
|
||||
|
||||
That's it!
|
||||
@ -93,8 +93,8 @@ Remarks:
|
||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
||||
point to the top directory of your Vim files. Example:
|
||||
set VIM=C:\editors\vim
|
||||
Vim version 7.4 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim74. See ":help $VIM" for more information.
|
||||
Vim version 8.0 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim80. See ":help $VIM" for more information.
|
||||
|
||||
- To avoid confusion between distributed files of different versions and your
|
||||
own modified vim scripts, it is recommended to use this directory layout:
|
||||
@ -105,14 +105,14 @@ Remarks:
|
||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||
C:\vim\... Other files you made.
|
||||
Distributed files:
|
||||
C:\vim\vim74\vim.exe The Vim version 7.4 executable.
|
||||
C:\vim\vim74\doc\*.txt The version 7.4 documentation files.
|
||||
C:\vim\vim74\bugreport.vim A Vim version 7.4 script.
|
||||
C:\vim\vim74\... Other version 7.4 distributed files.
|
||||
C:\vim\vim80\vim.exe The Vim version 8.0 executable.
|
||||
C:\vim\vim80\doc\*.txt The version 8.0 documentation files.
|
||||
C:\vim\vim80\bugreport.vim A Vim version 8.0 script.
|
||||
C:\vim\vim80\... Other version 8.0 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
set VIM=C:\vim
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim74". Don't add
|
||||
"vim74" to $VIM, that won't work.
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim80". Don't add
|
||||
"vim80" to $VIM, that won't work.
|
||||
|
||||
- You can put your Vim executable anywhere else. If the executable is not
|
||||
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||
@ -136,8 +136,8 @@ Remarks:
|
||||
Select Properties.
|
||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||
Vim executable. Examples:
|
||||
C:\command.com /c C:\vim\vim74\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim74\vim.exe
|
||||
C:\command.com /c C:\vim\vim80\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim80\vim.exe
|
||||
6. Select the font, window size, etc. that you like. If this isn't
|
||||
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
||||
mode".
|
@ -1,4 +1,4 @@
|
||||
README_extra.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_extra.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
These extra files of Vim are for special purposes. This README explains what
|
||||
the files are for. For general information about Vim, see the "README.txt"
|
28
READMEdir/README_mac.txt
Normal file
28
READMEdir/README_mac.txt
Normal file
@ -0,0 +1,28 @@
|
||||
README_mac.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Macintosh systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
|
||||
To build from sources, like on Unix
|
||||
|
||||
1. Get the build tools: "clang" and "make". These can be installed with the
|
||||
"CommandLineTools" package. If you don't have one, do
|
||||
xcode-select --install
|
||||
Just like for any software development with OS X.
|
||||
|
||||
2. Get the source code. Best is to use git (which you need to install first),
|
||||
see http://www.vim.org/git.php
|
||||
Or you can download and unpack the Unix tar archive, see
|
||||
http://www.vim.org/download.php
|
||||
|
||||
3. Go to the top directory of the source tree, do
|
||||
make
|
||||
sudo make install
|
||||
A newly built vim will be installed under "/usr/local".
|
||||
|
||||
|
||||
If you can't manage to make this work, there is a fallback using Homebrew:
|
||||
|
||||
1. Install Homebrew from http://brew.sh/
|
||||
2. Install latest Vim with: brew install vim
|
@ -1,4 +1,4 @@
|
||||
README_ole.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_ole.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This archive contains gvim.exe with OLE interface and VisVim.
|
||||
This version of gvim.exe can also load a number of interface dynamically (you
|
@ -1,4 +1,4 @@
|
||||
README_os2.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_os2.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This file used to explain the installation of Vim on OS/2 systems.
|
||||
However, support for OS/2 has been removed in patch 7.4.1008.
|
@ -1,4 +1,4 @@
|
||||
README_zOS.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_zOS.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This readme explains how to build Vim on z/OS. Formerly called OS/390.
|
||||
See "README.txt" for general information about Vim.
|
||||
@ -78,7 +78,7 @@ Change to the vim directory and do:
|
||||
With X11:
|
||||
---------
|
||||
|
||||
WARNING: This instruction was not tested with Vim 7.4.
|
||||
WARNING: This instruction was not tested with Vim 7.4 or later.
|
||||
|
||||
There are two ways for building VIM with X11 support. The first way is simple
|
||||
and results in a big executable (~13 Mb), the second needs a few additional
|
@ -1,8 +1,8 @@
|
||||
README_src.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_src.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
The source archive contains the files needed to compile Vim on Unix systems.
|
||||
It is packed for Unix systems (NL line separator).
|
||||
|
||||
For more information, see the README.txt file that comes with the runtime
|
||||
archive (vim-7.4-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive (vim-8.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive too!
|
@ -1,8 +1,8 @@
|
||||
README_srcdos.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_srcdos.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
These files are in the runtime archive (vim74rt.zip).
|
||||
These files are in the runtime archive (vim80rt.zip).
|
||||
|
||||
|
||||
The DOS source archive contains the files needed to compile Vim on MS-DOS or
|
@ -1,4 +1,4 @@
|
||||
README_unix.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_unix.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Unix systems.
|
||||
See "README.txt" for general information about Vim.
|
@ -1,4 +1,4 @@
|
||||
README_vms.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_vms.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on VMS systems.
|
||||
See "README.txt" in the runtime archive for information about Vim.
|
@ -1,4 +1,4 @@
|
||||
README_w32s.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_w32s.txt for version 8.0 of Vim: Vi IMproved.
|
||||
|
||||
This archive contains the gvim.exe that was specifically compiled for use in
|
||||
the Win32s subsystem in MS-Windows 3.1 and 3.11.
|
0
Vim.info → READMEdir/Vim.info
Executable file → Normal file
0
Vim.info → READMEdir/Vim.info
Executable file → Normal file
0
Xxd.info → READMEdir/Xxd.info
Executable file → Normal file
0
Xxd.info → READMEdir/Xxd.info
Executable file → Normal file
0
runtime.info → READMEdir/runtime.info
Executable file → Normal file
0
runtime.info → READMEdir/runtime.info
Executable file → Normal file
0
src.info → READMEdir/src.info
Executable file → Normal file
0
src.info → READMEdir/src.info
Executable file → Normal file
0
vimdir.info → READMEdir/vimdir.info
Executable file → Normal file
0
vimdir.info → READMEdir/vimdir.info
Executable file → Normal file
30
appveyor.yml
30
appveyor.yml
@ -2,19 +2,31 @@ version: "{build}"
|
||||
|
||||
skip_tags: true
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- FEATURE: HUGE
|
||||
- FEATURE: NORMAL
|
||||
# disabled
|
||||
# - FEATURE: TINY
|
||||
# - FEATURE: SMALL
|
||||
# - FEATURE: BIG
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
before_build:
|
||||
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release'
|
||||
# Work around for Python 2.7.11's bug
|
||||
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:32
|
||||
- reg copy HKLM\SOFTWARE\Python\PythonCore\2.7 HKLM\SOFTWARE\Python\PythonCore\2.7-32 /s /reg:64
|
||||
|
||||
build_script:
|
||||
- cd src
|
||||
- sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
|
||||
- nmake -f Make_mvc2.mak CPU=AMD64 GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=34 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python34-x64
|
||||
- .\gvim -u NONE -c "redir @a | ver | 0put a | wq!" ver.txt
|
||||
- type ver.txt
|
||||
- src/appveyor.bat
|
||||
|
||||
test_script:
|
||||
- cd testdir
|
||||
- cd src/testdir
|
||||
# Testing with MSVC gvim
|
||||
- path C:\Python35-x64;%PATH%
|
||||
- nmake -f Make_dos.mak VIMPROG=..\gvim
|
||||
- nmake -f Make_dos.mak clean
|
||||
# Testing with MingW console version
|
||||
- nmake -f Make_dos.mak VIMPROG=..\vim
|
||||
|
||||
# vim: sw=2 sts=2 et ts=8 sr
|
||||
|
BIN
csdpmi4b.zip
BIN
csdpmi4b.zip
Binary file not shown.
BIN
libs/arp.library
BIN
libs/arp.library
Binary file not shown.
@ -6,13 +6,19 @@
|
||||
# because uninstall deletes most files in $0.
|
||||
|
||||
# Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc.
|
||||
!define VIMSRC "..\src"
|
||||
!ifndef VIMSRC
|
||||
!define VIMSRC "..\src"
|
||||
!endif
|
||||
|
||||
# Location of runtime files
|
||||
!define VIMRT ".."
|
||||
!ifndef VIMRT
|
||||
!define VIMRT ".."
|
||||
!endif
|
||||
|
||||
# Location of extra tools: diff.exe
|
||||
!define VIMTOOLS ..\..
|
||||
!ifndef VIMTOOLS
|
||||
!define VIMTOOLS ..\..
|
||||
!endif
|
||||
|
||||
# Comment the next line if you don't have UPX.
|
||||
# Get it at http://upx.sourceforge.net
|
||||
@ -32,9 +38,10 @@
|
||||
Name "Vim ${VER_MAJOR}.${VER_MINOR}"
|
||||
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
|
||||
CRCCheck force
|
||||
SetCompressor lzma
|
||||
SetCompressor /SOLID lzma
|
||||
SetDatablockOptimize on
|
||||
RequestExecutionLevel highest
|
||||
XPStyle on
|
||||
|
||||
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
|
||||
DirText "Choose a directory to install Vim (should contain 'vim')"
|
||||
@ -55,9 +62,6 @@ LicenseData ${VIMRT}\doc\uganda.nsis.txt
|
||||
!packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
|
||||
!endif
|
||||
|
||||
SetCompressor /SOLID lzma
|
||||
XPStyle on
|
||||
|
||||
# This adds '\vim' to the user choice automagically. The actual value is
|
||||
# obtained below with ReadINIStr.
|
||||
InstallDir "$PROGRAMFILES\Vim"
|
||||
@ -184,6 +188,7 @@ Section "Vim executables and runtime files"
|
||||
File /oname=install.exe ${VIMSRC}\installw32.exe
|
||||
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe
|
||||
File ${VIMSRC}\vimrun.exe
|
||||
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
||||
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
||||
File ${VIMTOOLS}\diff.exe
|
||||
File ${VIMRT}\vimtutor.bat
|
||||
@ -211,6 +216,28 @@ Section "Vim executables and runtime files"
|
||||
SetOutPath $0\macros
|
||||
File ${VIMRT}\macros\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\dvorak\dvorak
|
||||
File ${VIMRT}\pack\dist\opt\dvorak\dvorak\*.*
|
||||
SetOutPath $0\pack\dist\opt\dvorak\plugin
|
||||
File ${VIMRT}\pack\dist\opt\dvorak\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\editexisting\plugin
|
||||
File ${VIMRT}\pack\dist\opt\editexisting\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\justify\plugin
|
||||
File ${VIMRT}\pack\dist\opt\justify\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\matchit\doc
|
||||
File ${VIMRT}\pack\dist\opt\matchit\doc\*.*
|
||||
SetOutPath $0\pack\dist\opt\matchit\plugin
|
||||
File ${VIMRT}\pack\dist\opt\matchit\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\shellmenu\plugin
|
||||
File ${VIMRT}\pack\dist\opt\shellmenu\plugin\*.*
|
||||
|
||||
SetOutPath $0\pack\dist\opt\swapmouse\plugin
|
||||
File ${VIMRT}\pack\dist\opt\swapmouse\plugin\*.*
|
||||
|
||||
SetOutPath $0\plugin
|
||||
File ${VIMRT}\plugin\*.*
|
||||
|
||||
@ -355,7 +382,9 @@ SectionEnd
|
||||
File ${VIMRT}\keymap\README.txt
|
||||
File ${VIMRT}\keymap\*.vim
|
||||
SetOutPath $0
|
||||
File ${VIMRT}\libintl.dll
|
||||
File ${VIMRT}\libintl-8.dll
|
||||
File ${VIMRT}\libiconv-2.dll
|
||||
File /nonfatal ${VIMRT}\libwinpthread-1.dll
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Generated from Makefile: define the version numbers
|
||||
!ifndef __GVIM_VER__NSH__
|
||||
!define __GVIM_VER__NSH__
|
||||
!define VER_MAJOR 7
|
||||
!define VER_MINOR 4
|
||||
!define VER_MAJOR 8
|
||||
!define VER_MINOR 0
|
||||
!endif
|
||||
|
File diff suppressed because one or more lines are too long
184
runtime/autoload/context.vim
Normal file
184
runtime/autoload/context.vim
Normal file
@ -0,0 +1,184 @@
|
||||
" Language: ConTeXt typesetting engine
|
||||
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
" Latest Revision: 2016 Oct 21
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Helper functions {{{
|
||||
function! s:context_echo(message, mode)
|
||||
redraw
|
||||
echo "\r"
|
||||
execute 'echohl' a:mode
|
||||
echomsg '[ConTeXt]' a:message
|
||||
echohl None
|
||||
endf
|
||||
|
||||
function! s:sh()
|
||||
return has('win32') || has('win64') || has('win16') || has('win95')
|
||||
\ ? ['cmd.exe', '/C']
|
||||
\ : ['/bin/sh', '-c']
|
||||
endfunction
|
||||
|
||||
" For backward compatibility
|
||||
if exists('*win_getid')
|
||||
|
||||
function! s:win_getid()
|
||||
return win_getid()
|
||||
endf
|
||||
|
||||
function! s:win_id2win(winid)
|
||||
return win_id2win(a:winid)
|
||||
endf
|
||||
|
||||
else
|
||||
|
||||
function! s:win_getid()
|
||||
return winnr()
|
||||
endf
|
||||
|
||||
function! s:win_id2win(winnr)
|
||||
return a:winnr
|
||||
endf
|
||||
|
||||
endif
|
||||
" }}}
|
||||
|
||||
" ConTeXt jobs {{{
|
||||
if has('job')
|
||||
|
||||
let g:context_jobs = []
|
||||
|
||||
" Print the status of ConTeXt jobs
|
||||
function! context#job_status()
|
||||
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
|
||||
let l:n = len(l:jobs)
|
||||
call s:context_echo(
|
||||
\ 'There '.(l:n == 1 ? 'is' : 'are').' '.(l:n == 0 ? 'no' : l:n)
|
||||
\ .' job'.(l:n == 1 ? '' : 's').' running'
|
||||
\ .(l:n == 0 ? '.' : ' (' . join(l:jobs, ', ').').'),
|
||||
\ 'ModeMsg')
|
||||
endfunction
|
||||
|
||||
" Stop all ConTeXt jobs
|
||||
function! context#stop_jobs()
|
||||
let l:jobs = filter(g:context_jobs, 'job_status(v:val) == "run"')
|
||||
for job in l:jobs
|
||||
call job_stop(job)
|
||||
endfor
|
||||
sleep 1
|
||||
let l:tmp = []
|
||||
for job in l:jobs
|
||||
if job_status(job) == "run"
|
||||
call add(l:tmp, job)
|
||||
endif
|
||||
endfor
|
||||
let g:context_jobs = l:tmp
|
||||
if empty(g:context_jobs)
|
||||
call s:context_echo('Done. No jobs running.', 'ModeMsg')
|
||||
else
|
||||
call s:context_echo('There are still some jobs running. Please try again.', 'WarningMsg')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! context#callback(path, job, status)
|
||||
if index(g:context_jobs, a:job) != -1 && job_status(a:job) != 'run' " just in case
|
||||
call remove(g:context_jobs, index(g:context_jobs, a:job))
|
||||
endif
|
||||
call s:callback(a:path, a:job, a:status)
|
||||
endfunction
|
||||
|
||||
function! context#close_cb(channel)
|
||||
call job_status(ch_getjob(a:channel)) " Trigger exit_cb's callback for faster feedback
|
||||
endfunction
|
||||
|
||||
function! s:typeset(path)
|
||||
call add(g:context_jobs,
|
||||
\ job_start(add(s:sh(), context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))), {
|
||||
\ 'close_cb' : 'context#close_cb',
|
||||
\ 'exit_cb' : function(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
|
||||
\ [a:path]),
|
||||
\ 'in_io' : 'null'
|
||||
\ }))
|
||||
endfunction
|
||||
|
||||
else " No jobs
|
||||
|
||||
function! context#job_status()
|
||||
call s:context_echo('Not implemented', 'WarningMsg')
|
||||
endfunction!
|
||||
|
||||
function! context#stop_jobs()
|
||||
call s:context_echo('Not implemented', 'WarningMsg')
|
||||
endfunction
|
||||
|
||||
function! context#callback(path, job, status)
|
||||
call s:callback(a:path, a:job, a:status)
|
||||
endfunction
|
||||
|
||||
function! s:typeset(path)
|
||||
execute '!' . context#command() . ' ' . shellescape(fnamemodify(a:path, ":t"))
|
||||
call call(get(b:, 'context_callback', get(g:, 'context_callback', 'context#callback')),
|
||||
\ [a:path, 0, v:shell_error])
|
||||
endfunction
|
||||
|
||||
endif " has('job')
|
||||
|
||||
function! s:callback(path, job, status) abort
|
||||
if a:status < 0 " Assume the job was terminated
|
||||
return
|
||||
endif
|
||||
" Get info about the current window
|
||||
let l:winid = s:win_getid() " Save window id
|
||||
let l:efm = &l:errorformat " Save local errorformat
|
||||
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
|
||||
" Set errorformat to parse ConTeXt errors
|
||||
execute 'setl efm=' . escape(b:context_errorformat, ' ')
|
||||
try " Set cwd to expand error file correctly
|
||||
execute 'lcd' fnameescape(fnamemodify(a:path, ':h'))
|
||||
catch /.*/
|
||||
execute 'setl efm=' . escape(l:efm, ' ')
|
||||
throw v:exception
|
||||
endtry
|
||||
try
|
||||
execute 'cgetfile' fnameescape(fnamemodify(a:path, ':r') . '.log')
|
||||
botright cwindow
|
||||
finally " Restore cwd and errorformat
|
||||
execute s:win_id2win(l:winid) . 'wincmd w'
|
||||
execute 'lcd ' . fnameescape(l:cwd)
|
||||
execute 'setl efm=' . escape(l:efm, ' ')
|
||||
endtry
|
||||
if a:status == 0
|
||||
call s:context_echo('Success!', 'ModeMsg')
|
||||
else
|
||||
call s:context_echo('There are errors. ', 'ErrorMsg')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! context#command()
|
||||
return get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
|
||||
\ . ' --script context --autogenerate --nonstopmode'
|
||||
\ . ' --synctex=' . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
|
||||
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
|
||||
endfunction
|
||||
|
||||
" Accepts an optional path (useful for big projects, when the file you are
|
||||
" editing is not the project's root document). If no argument is given, uses
|
||||
" the path of the current buffer.
|
||||
function! context#typeset(...) abort
|
||||
let l:path = fnamemodify(strlen(a:000[0]) > 0 ? a:1 : expand("%"), ":p")
|
||||
let l:cwd = fnamemodify(getcwd(), ":p") " Save local working directory
|
||||
call s:context_echo('Typesetting...', 'ModeMsg')
|
||||
execute 'lcd' fnameescape(fnamemodify(l:path, ":h"))
|
||||
try
|
||||
call s:typeset(l:path)
|
||||
finally " Restore local working directory
|
||||
execute 'lcd ' . fnameescape(l:cwd)
|
||||
endtry
|
||||
endfunction!
|
||||
"}}}
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" vim: sw=2 fdm=marker
|
25
runtime/autoload/contextcomplete.vim
Normal file
25
runtime/autoload/contextcomplete.vim
Normal file
@ -0,0 +1,25 @@
|
||||
" Language: ConTeXt typesetting engine
|
||||
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
" Latest Revision: 2016 Oct 15
|
||||
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Complete keywords in MetaPost blocks
|
||||
function! contextcomplete#Complete(findstart, base)
|
||||
if a:findstart == 1
|
||||
if len(synstack(line('.'), 1)) > 0 &&
|
||||
\ synIDattr(synstack(line('.'), 1)[0], "name") ==# 'contextMPGraphic'
|
||||
return syntaxcomplete#Complete(a:findstart, a:base)
|
||||
else
|
||||
return -3
|
||||
endif
|
||||
else
|
||||
return syntaxcomplete#Complete(a:findstart, a:base)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" vim: sw=2 fdm=marker
|
File diff suppressed because it is too large
Load Diff
@ -236,7 +236,7 @@ fun! getscript#GetLatestVimScripts()
|
||||
" call Decho("..depscript<".depscript.">")
|
||||
|
||||
" found a "GetLatestVimScripts: # #" line in the script;
|
||||
" check if its already in the datafile by searching backwards from llp1,
|
||||
" check if it's already in the datafile by searching backwards from llp1,
|
||||
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
|
||||
" for the script-id with no wrapping allowed.
|
||||
let curline = line(".")
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim autoload file for editing compressed files.
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2014 Nov 05
|
||||
" Last Change: 2016 Sep 28
|
||||
|
||||
" These functions are used by the gzip plugin.
|
||||
|
||||
@ -63,6 +63,9 @@ fun gzip#read(cmd)
|
||||
" set 'modifiable'
|
||||
let ma_save = &ma
|
||||
setlocal ma
|
||||
" set 'write'
|
||||
let write_save = &write
|
||||
set write
|
||||
" Reset 'foldenable', otherwise line numbers get adjusted.
|
||||
if has("folding")
|
||||
let fen_save = &fen
|
||||
@ -127,6 +130,7 @@ fun gzip#read(cmd)
|
||||
let &pm = pm_save
|
||||
let &cpo = cpo_save
|
||||
let &l:ma = ma_save
|
||||
let &write = write_save
|
||||
if has("folding")
|
||||
let &l:fen = fen_save
|
||||
endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
||||
" Maintainer: Dávid Szabó ( complex857 AT gmail DOT com )
|
||||
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" URL: https://github.com/shawncplus/phpcomplete.vim
|
||||
" Last Change: 2015 Jul 13
|
||||
" Last Change: 2016 Oct 10
|
||||
"
|
||||
" OPTIONS:
|
||||
"
|
||||
@ -195,6 +195,8 @@ function! phpcomplete#CompletePHP(findstart, base) " {{{
|
||||
" }}}
|
||||
elseif context =~? 'implements'
|
||||
return phpcomplete#CompleteClassName(a:base, ['i'], current_namespace, imports)
|
||||
elseif context =~? 'instanceof'
|
||||
return phpcomplete#CompleteClassName(a:base, ['c', 'n'], current_namespace, imports)
|
||||
elseif context =~? 'extends\s\+.\+$' && a:base == ''
|
||||
return ['implements']
|
||||
elseif context =~? 'extends'
|
||||
@ -787,6 +789,8 @@ function! phpcomplete#CompleteClassName(base, kinds, current_namespace, imports)
|
||||
|
||||
if kinds == ['c', 'i']
|
||||
let filterstr = 'v:val =~? "\\(class\\|interface\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
|
||||
elseif kinds == ['c', 'n']
|
||||
let filterstr = 'v:val =~? "\\(class\\|namespace\\)\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
|
||||
elseif kinds == ['c']
|
||||
let filterstr = 'v:val =~? "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*"'
|
||||
elseif kinds == ['i']
|
||||
@ -931,7 +935,7 @@ function! phpcomplete#EvaluateModifiers(modifiers, required_modifiers, prohibite
|
||||
endfor
|
||||
|
||||
for modifier in a:modifiers
|
||||
" if the modifier is prohibited its a no match
|
||||
" if the modifier is prohibited it's a no match
|
||||
if index(a:prohibited_modifiers, modifier) != -1
|
||||
return 0
|
||||
endif
|
||||
@ -996,7 +1000,7 @@ function! phpcomplete#CompleteUserClass(context, base, sccontent, visibility) "
|
||||
let required_modifiers += ['static']
|
||||
endif
|
||||
let all_variable = filter(deepcopy(a:sccontent),
|
||||
\ 'v:val =~ "^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$"')
|
||||
\ 'v:val =~ "\\(^\\s*\\(var\\s\\+\\|public\\s\\+\\|protected\\s\\+\\|private\\s\\+\\|final\\s\\+\\|abstract\\s\\+\\|static\\s\\+\\)\\+\\$\\|^\\s*\\(\\/\\|\\*\\)*\\s*@property\\s\\+\\S\\+\\s\\S\\{-}\\s*$\\)"')
|
||||
|
||||
let variables = []
|
||||
for i in all_variable
|
||||
@ -1160,6 +1164,14 @@ function! phpcomplete#GetTaglist(pattern) " {{{
|
||||
endif
|
||||
|
||||
let tags = taglist(a:pattern)
|
||||
for tag in tags
|
||||
for prop in keys(tag)
|
||||
if prop == 'cmd' || prop == 'static' || prop == 'kind' || prop == 'builtin'
|
||||
continue
|
||||
endif
|
||||
let tag[prop] = substitute(tag[prop], '\\\\', '\\', 'g')
|
||||
endfor
|
||||
endfor
|
||||
let s:cache_tags[a:pattern] = tags
|
||||
let has_key = has_key(s:cache_tags, a:pattern)
|
||||
let s:cache_tags_checksum = cache_checksum
|
||||
@ -1379,7 +1391,7 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
|
||||
" Get Structured information of all classes and subclasses including namespace and includes
|
||||
" try to find the method's return type in docblock comment
|
||||
for classstructure in classcontents
|
||||
let docblock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method
|
||||
let docblock_target_pattern = 'function\s\+&\?'.method.'\>\|\(public\|private\|protected\|var\).\+\$'.method.'\>\|@property.\+\$'.method.'\>'
|
||||
let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), docblock_target_pattern)
|
||||
if doc_str != ''
|
||||
break
|
||||
@ -1387,8 +1399,17 @@ function! phpcomplete#GetCallChainReturnType(classname_candidate, class_candidat
|
||||
endfor
|
||||
if doc_str != ''
|
||||
let docblock = phpcomplete#ParseDocBlock(doc_str)
|
||||
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type')
|
||||
let type = has_key(docblock.return, 'type') ? docblock.return.type : docblock.var.type
|
||||
if has_key(docblock.return, 'type') || has_key(docblock.var, 'type') || len(docblock.properties) > 0
|
||||
let type = has_key(docblock.return, 'type') ? docblock.return.type : has_key(docblock.var, 'type') ? docblock.var.type : ''
|
||||
|
||||
if type == ''
|
||||
for property in docblock.properties
|
||||
if property.description =~? method
|
||||
let type = property.type
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
|
||||
" there's a namespace in the type, threat the type as FQCN
|
||||
if type =~ '\\'
|
||||
@ -1554,6 +1575,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
|
||||
elseif get(methodstack, 0) =~# function_invocation_pattern
|
||||
let function_name = matchstr(methodstack[0], '^\s*\zs'.function_name_pattern)
|
||||
let function_file = phpcomplete#GetFunctionLocation(function_name, a:current_namespace)
|
||||
if function_file == ''
|
||||
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
|
||||
endif
|
||||
|
||||
if function_file == 'VIMPHP_BUILTINFUNCTION'
|
||||
" built in function, grab the return type from the info string
|
||||
@ -1569,7 +1593,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
|
||||
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
|
||||
" try to expand the classname of the returned type with the context got from the function's source file
|
||||
|
||||
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
|
||||
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
|
||||
endif
|
||||
endif
|
||||
if classname_candidate != ''
|
||||
@ -1650,9 +1674,10 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
|
||||
let sub_methodstack = phpcomplete#GetMethodStack(matchstr(line, '^\s*'.object.'\s*=&\?\s*\s\+\zs.*'))
|
||||
let [classname_candidate, class_candidate_namespace] = phpcomplete#GetCallChainReturnType(
|
||||
\ classname,
|
||||
\ a:current_namespace,
|
||||
\ namespace_for_class,
|
||||
\ a:imports,
|
||||
\ sub_methodstack)
|
||||
|
||||
return (class_candidate_namespace == '\' || class_candidate_namespace == '') ? classname_candidate : class_candidate_namespace.'\'.classname_candidate
|
||||
endif
|
||||
endif
|
||||
@ -1783,6 +1808,9 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
|
||||
let [function_name, function_namespace] = phpcomplete#ExpandClassName(function_name, a:current_namespace, a:imports)
|
||||
|
||||
let function_file = phpcomplete#GetFunctionLocation(function_name, function_namespace)
|
||||
if function_file == ''
|
||||
let function_file = phpcomplete#GetFunctionLocation(function_name, '\')
|
||||
endif
|
||||
|
||||
if function_file == 'VIMPHP_BUILTINFUNCTION'
|
||||
" built in function, grab the return type from the info string
|
||||
@ -1798,7 +1826,7 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
|
||||
let classname_candidate = docblock.return.type
|
||||
let [class_candidate_namespace, function_imports] = phpcomplete#GetCurrentNameSpace(file_lines)
|
||||
" try to expand the classname of the returned type with the context got from the function's source file
|
||||
let [classname_candidate, unused] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
|
||||
let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, class_candidate_namespace, function_imports)
|
||||
break
|
||||
endif
|
||||
endif
|
||||
@ -1861,6 +1889,8 @@ function! phpcomplete#GetClassName(start_line, context, current_namespace, impor
|
||||
for tag in tags
|
||||
if tag.kind ==? 'v' && tag.cmd =~? '=\s*new\s\+\zs'.class_name_pattern.'\ze'
|
||||
let classname = matchstr(tag.cmd, '=\s*new\s\+\zs'.class_name_pattern.'\ze')
|
||||
" unescape the classname, it would have "\" doubled since it is an ex command
|
||||
let classname = substitute(classname, '\\\(\_.\)', '\1', 'g')
|
||||
return classname
|
||||
endif
|
||||
endfor
|
||||
@ -2077,6 +2107,19 @@ function! phpcomplete#GetClassContentsStructure(file_path, file_lines, class_nam
|
||||
endif
|
||||
call searchpair('{', '', '}', 'W')
|
||||
let class_closing_bracket_line = line('.')
|
||||
|
||||
" Include class docblock
|
||||
let doc_line = cfline - 1
|
||||
if getline(doc_line) =~? '^\s*\*/'
|
||||
while doc_line != 0
|
||||
if getline(doc_line) =~? '^\s*/\*\*'
|
||||
let cfline = doc_line
|
||||
break
|
||||
endif
|
||||
let doc_line -= 1
|
||||
endwhile
|
||||
endif
|
||||
|
||||
let classcontent = join(getline(cfline, class_closing_bracket_line), "\n")
|
||||
|
||||
let used_traits = []
|
||||
@ -2241,8 +2284,19 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
|
||||
let line = a:sccontent[i]
|
||||
" search for a function declaration
|
||||
if line =~? a:search
|
||||
let l = i - 1
|
||||
" start backward serch for the comment block
|
||||
if line =~? '@property'
|
||||
let doc_line = i
|
||||
while doc_line != sccontent_len - 1
|
||||
if a:sccontent[doc_line] =~? '^\s*\*/'
|
||||
let l = doc_line
|
||||
break
|
||||
endif
|
||||
let doc_line += 1
|
||||
endwhile
|
||||
else
|
||||
let l = i - 1
|
||||
endif
|
||||
" start backward search for the comment block
|
||||
while l != 0
|
||||
let line = a:sccontent[l]
|
||||
" if it's a one line docblock like comment and we can just return it right away
|
||||
@ -2263,7 +2317,7 @@ function! phpcomplete#GetDocBlock(sccontent, search) " {{{
|
||||
return ''
|
||||
end
|
||||
|
||||
while l != 0
|
||||
while l >= 0
|
||||
let line = a:sccontent[l]
|
||||
if line =~? '^\s*/\*\*'
|
||||
let comment_start = l
|
||||
@ -2297,9 +2351,10 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
|
||||
\ 'return': {},
|
||||
\ 'throws': [],
|
||||
\ 'var': {},
|
||||
\ 'properties': [],
|
||||
\ }
|
||||
|
||||
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
|
||||
let res.description = substitute(matchstr(a:docblock, '\zs\_.\{-}\ze\(@type\|@var\|@param\|@return\|$\)'), '\(^\_s*\|\_s*$\)', '', 'g')
|
||||
let docblock_lines = split(a:docblock, "\n")
|
||||
|
||||
let param_lines = filter(copy(docblock_lines), 'v:val =~? "^@param"')
|
||||
@ -2334,15 +2389,26 @@ function! phpcomplete#ParseDocBlock(docblock) " {{{
|
||||
endif
|
||||
endfor
|
||||
|
||||
let var_line = filter(copy(docblock_lines), 'v:val =~? "^@var"')
|
||||
let var_line = filter(copy(docblock_lines), 'v:val =~? "^\\(@var\\|@type\\)"')
|
||||
if len(var_line) > 0
|
||||
let var_parts = matchlist(var_line[0], '@var\s\+\(\S\+\)\s*\(.*\)')
|
||||
let var_parts = matchlist(var_line[0], '\(@var\|@type\)\s\+\(\S\+\)\s*\(.*\)')
|
||||
let res['var'] = {
|
||||
\ 'line': var_parts[0],
|
||||
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 1, '')),
|
||||
\ 'description': get(var_parts, 2, '')}
|
||||
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(var_parts, 2, '')),
|
||||
\ 'description': get(var_parts, 3, '')}
|
||||
endif
|
||||
|
||||
let property_lines = filter(copy(docblock_lines), 'v:val =~? "^@property"')
|
||||
for property_line in property_lines
|
||||
let parts = matchlist(property_line, '\(@property\)\s\+\(\S\+\)\s*\(.*\)')
|
||||
if len(parts) > 0
|
||||
call add(res.properties, {
|
||||
\ 'line': parts[0],
|
||||
\ 'type': phpcomplete#GetTypeFromDocBlockParam(get(parts, 2, '')),
|
||||
\ 'description': get(parts, 3, '')})
|
||||
endif
|
||||
endfor
|
||||
|
||||
return res
|
||||
endfunction
|
||||
" }}}
|
||||
@ -2498,6 +2564,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
|
||||
let name = matchstr(name, '\\\zs[^\\]\+\ze$')
|
||||
endif
|
||||
endif
|
||||
|
||||
" leading slash is not required use imports are always absolute
|
||||
let imports[name] = {'name': object, 'kind': ''}
|
||||
endfor
|
||||
@ -2533,6 +2600,7 @@ function! phpcomplete#GetCurrentNameSpace(file_lines) " {{{
|
||||
elseif !exists('no_namespace_candidate')
|
||||
" save the first namespacless match to be used if no better
|
||||
" candidate found later on
|
||||
let tag.namespace = namespace_for_classes
|
||||
let no_namespace_candidate = tag
|
||||
endif
|
||||
endif
|
||||
|
@ -93,7 +93,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
|
||||
|
||||
let stopline = 1
|
||||
|
||||
let crex = '^\s*\<' . a:type . '\>\s*\<' . a:name . '\>\s*\(<\s*.*\s*\)\?'
|
||||
let crex = '^\s*\<' . a:type . '\>\s*\<' . escape(a:name, '*') . '\>\s*\(<\s*.*\s*\)\?'
|
||||
let [lnum,lcol] = searchpos( crex, 'w' )
|
||||
"let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' )
|
||||
|
||||
@ -149,7 +149,7 @@ function! s:GetRubyVarType(v)
|
||||
let ctors = ctors.'\)'
|
||||
|
||||
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
|
||||
let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr
|
||||
let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
|
||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
||||
if lnum != 0 && lcol != 0
|
||||
let str = matchstr(getline(lnum),fstr,lcol)
|
||||
@ -196,7 +196,7 @@ function! rubycomplete#Complete(findstart, base)
|
||||
if c =~ '\w'
|
||||
continue
|
||||
elseif ! c =~ '\.'
|
||||
idx = -1
|
||||
let idx = -1
|
||||
break
|
||||
else
|
||||
break
|
||||
@ -266,6 +266,28 @@ class VimRubyCompletion
|
||||
end
|
||||
end
|
||||
|
||||
def load_gems
|
||||
fpath = VIM::evaluate("get(g:, 'rubycomplete_gemfile_path', 'Gemfile')")
|
||||
return unless File.file?(fpath) && File.readable?(fpath)
|
||||
want_bundler = VIM::evaluate("get(g:, 'rubycomplete_use_bundler')")
|
||||
parse_file = !want_bundler
|
||||
begin
|
||||
require 'bundler'
|
||||
Bundler.setup
|
||||
Bundler.require
|
||||
rescue Exception
|
||||
parse_file = true
|
||||
end
|
||||
if parse_file
|
||||
File.new(fpath).each_line do |line|
|
||||
begin
|
||||
require $1 if /\s*gem\s*['"]([^'"]+)/.match(line)
|
||||
rescue Exception
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def load_buffer_class(name)
|
||||
dprint "load_buffer_class(%s) START" % name
|
||||
classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")')
|
||||
@ -588,6 +610,10 @@ class VimRubyCompletion
|
||||
load_rails
|
||||
end
|
||||
|
||||
want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')")
|
||||
load_gems unless want_gems.to_i.zero?
|
||||
|
||||
|
||||
input = VIM::Buffer.current.line
|
||||
cpos = VIM::Window.current.cursor[1] - 1
|
||||
input = input[0..cpos]
|
||||
@ -678,7 +704,9 @@ class VimRubyCompletion
|
||||
cv = eval("self.class.constants")
|
||||
vartype = get_var_type( receiver )
|
||||
dprint "vartype: %s" % vartype
|
||||
if vartype != ''
|
||||
|
||||
invalid_vartype = ['', "gets"]
|
||||
if !invalid_vartype.include?(vartype)
|
||||
load_buffer_class( vartype )
|
||||
|
||||
begin
|
||||
@ -706,7 +734,7 @@ class VimRubyCompletion
|
||||
methods.concat m.instance_methods(false)
|
||||
}
|
||||
end
|
||||
variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0
|
||||
variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype)
|
||||
|
||||
when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
|
||||
message = $1
|
||||
|
@ -1,8 +1,8 @@
|
||||
" Vim OMNI completion script for SQL
|
||||
" Language: SQL
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 15.0
|
||||
" Last Change: 2013 May 13
|
||||
" Version: 16.0
|
||||
" Last Change: 2015 Dec 29
|
||||
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
|
||||
" Usage: For detailed help
|
||||
" ":help sql.txt"
|
||||
@ -16,6 +16,12 @@
|
||||
" look backwards to a FROM clause and find the first table
|
||||
" and complete it.
|
||||
"
|
||||
" Version 16.0 (Dec 2015)
|
||||
" - NF: If reseting the cache and table, procedure or view completion
|
||||
" had been used via dbext, have dbext delete or recreate the
|
||||
" dictionary so that new objects are picked up for the
|
||||
" next completion.
|
||||
"
|
||||
" Version 15.0 (May 2013)
|
||||
" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
|
||||
" to use regular expressions to pick up extended syntax group names.
|
||||
@ -103,7 +109,7 @@ endif
|
||||
if exists('g:loaded_sql_completion')
|
||||
finish
|
||||
endif
|
||||
let g:loaded_sql_completion = 150
|
||||
let g:loaded_sql_completion = 160
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
@ -459,6 +465,29 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let s:tbl_cols = []
|
||||
let s:syn_list = []
|
||||
let s:syn_value = []
|
||||
|
||||
if s:sql_file_table != ""
|
||||
if g:loaded_dbext >= 2300
|
||||
call DB_DictionaryDelete("table")
|
||||
else
|
||||
DBCompleteTables!
|
||||
endif
|
||||
endif
|
||||
if s:sql_file_procedure != ""
|
||||
if g:loaded_dbext >= 2300
|
||||
call DB_DictionaryDelete("procedure")
|
||||
else
|
||||
DBCompleteProcedures!
|
||||
endif
|
||||
endif
|
||||
if s:sql_file_view != ""
|
||||
if g:loaded_dbext >= 2300
|
||||
call DB_DictionaryDelete("view")
|
||||
else
|
||||
DBCompleteViews!
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:sql_file_table = ""
|
||||
let s:sql_file_procedure = ""
|
||||
let s:sql_file_view = ""
|
||||
|
@ -117,7 +117,7 @@ fun! tar#Browse(tarfile)
|
||||
if !filereadable(a:tarfile)
|
||||
" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
|
||||
if a:tarfile !~# '^\a\+://'
|
||||
" if its an url, don't complain, let url-handlers such as vim do its thing
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||
endif
|
||||
|
@ -1,9 +1,9 @@
|
||||
" vimball.vim : construct a file containing both paths and files
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Jan 17, 2012
|
||||
" Version: 35
|
||||
" Author: Charles E. Campbell
|
||||
" Date: Apr 11, 2016
|
||||
" Version: 37
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
@ -14,7 +14,7 @@
|
||||
if &cp || exists("g:loaded_vimball")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimball = "v35"
|
||||
let g:loaded_vimball = "v37"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of vimball needs vim 7.2"
|
||||
@ -142,7 +142,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
|
||||
let lastline= line("$") + 1
|
||||
if lastline == 2 && getline("$") == ""
|
||||
call setline(1,'" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.')
|
||||
call setline(1,'" Vimball Archiver by Charles E. Campbell')
|
||||
call setline(2,'UseVimball')
|
||||
call setline(3,'finish')
|
||||
let lastline= line("$") + 1
|
||||
@ -179,7 +179,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
" remove the evidence
|
||||
setlocal nomod bh=wipe
|
||||
exe "tabn ".curtabnr
|
||||
exe "tabc ".vbtabnr
|
||||
exe "tabc! ".vbtabnr
|
||||
|
||||
" restore options
|
||||
call vimball#RestoreSettings()
|
||||
@ -280,7 +280,7 @@ fun! vimball#Vimball(really,...)
|
||||
" when AsNeeded/filename is filereadable or was present in VimballRecord
|
||||
if fname =~ '\<plugin/'
|
||||
let anfname= substitute(fname,'\<plugin/','AsNeeded/','')
|
||||
if filereadable(anfname) || (exists("s:VBRstring") && s:VBRstring =~ anfname)
|
||||
if filereadable(anfname) || (exists("s:VBRstring") && s:VBRstring =~# anfname)
|
||||
" call Decho("using anfname<".anfname."> instead of <".fname.">")
|
||||
let fname= anfname
|
||||
endif
|
||||
@ -347,7 +347,7 @@ fun! vimball#Vimball(really,...)
|
||||
" call Decho("exe tabn ".curtabnr)
|
||||
exe "tabn ".curtabnr
|
||||
|
||||
" set up help if its a doc/*.txt file
|
||||
" set up help if it's a doc/*.txt file
|
||||
" call Decho("didhelp<".didhelp."> fname<".fname.">")
|
||||
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
|
||||
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
|
||||
@ -379,10 +379,10 @@ fun! vimball#Vimball(really,...)
|
||||
call s:RecordInFile(home)
|
||||
|
||||
" restore events, delete tab and buffer
|
||||
exe "tabn ".vbtabnr
|
||||
exe "sil! tabn ".vbtabnr
|
||||
setlocal nomod bh=wipe
|
||||
exe "tabn ".curtabnr
|
||||
exe "tabc ".vbtabnr
|
||||
exe "sil! tabn ".curtabnr
|
||||
exe "sil! tabc! ".vbtabnr
|
||||
call vimball#RestoreSettings()
|
||||
call s:ChgDir(curdir)
|
||||
|
||||
@ -555,7 +555,7 @@ fun! vimball#ShowMesg(level,msg)
|
||||
set noruler noshowcmd
|
||||
redraw!
|
||||
|
||||
if &fo =~ '[ta]'
|
||||
if &fo =~# '[ta]'
|
||||
echomsg "***vimball*** ".a:msg
|
||||
else
|
||||
if a:level == s:WARNING || a:level == s:USAGE
|
||||
@ -715,7 +715,7 @@ fun! vimball#SaveSettings()
|
||||
" call Dfunc("SaveSettings()")
|
||||
let s:makeep = getpos("'a")
|
||||
let s:regakeep= @a
|
||||
if exists("&acd")
|
||||
if exists("+acd")
|
||||
let s:acdkeep = &acd
|
||||
endif
|
||||
let s:eikeep = &ei
|
||||
@ -728,7 +728,7 @@ fun! vimball#SaveSettings()
|
||||
let s:vekeep = &ve
|
||||
let s:ffkeep = &l:ff
|
||||
let s:swfkeep = &l:swf
|
||||
if exists("&acd")
|
||||
if exists("+acd")
|
||||
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
|
||||
else
|
||||
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
|
||||
@ -743,7 +743,7 @@ endfun
|
||||
fun! vimball#RestoreSettings()
|
||||
" call Dfunc("RestoreSettings()")
|
||||
let @a = s:regakeep
|
||||
if exists("&acd")
|
||||
if exists("+acd")
|
||||
let &acd = s:acdkeep
|
||||
endif
|
||||
let &l:fen = s:fenkeep
|
||||
@ -760,7 +760,7 @@ fun! vimball#RestoreSettings()
|
||||
" call Decho("restore mark-a: makeep=".string(makeep))
|
||||
call setpos("'a",s:makeep)
|
||||
endif
|
||||
if exists("&acd")
|
||||
if exists("+acd")
|
||||
unlet s:acdkeep
|
||||
endif
|
||||
unlet s:regakeep s:eikeep s:fenkeep s:hidkeep s:ickeep s:repkeep s:vekeep s:makeep s:lzkeep s:pmkeep s:ffkeep
|
||||
|
@ -1,7 +1,7 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Jul 02, 2013
|
||||
" Version: 27
|
||||
" Date: Sep 13, 2016
|
||||
" Version: 28
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
|
||||
@ -20,10 +20,10 @@
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v27"
|
||||
let g:loaded_zip= "v28"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of zip needs vim 7.2"
|
||||
echo "***warning*** this version of zip needs vim 7.2 or later"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
@ -53,6 +53,9 @@ endif
|
||||
if !exists("g:zip_unzipcmd")
|
||||
let g:zip_unzipcmd= "unzip"
|
||||
endif
|
||||
if !exists("g:zip_extractcmd")
|
||||
let g:zip_extractcmd= g:zip_unzipcmd
|
||||
endif
|
||||
|
||||
" ----------------
|
||||
" Functions: {{{1
|
||||
@ -62,14 +65,14 @@ endif
|
||||
" zip#Browse: {{{2
|
||||
fun! zip#Browse(zipfile)
|
||||
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
|
||||
" sanity check: insure that the zipfile has "PK" as its first two letters
|
||||
" sanity check: ensure that the zipfile has "PK" as its first two letters
|
||||
" (zipped files have a leading PK as a "magic cookie")
|
||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
||||
exe "noautocmd e ".fnameescape(a:zipfile)
|
||||
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
||||
return
|
||||
" else " Decho
|
||||
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file")
|
||||
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - it's a zip file")
|
||||
endif
|
||||
|
||||
let repkeep= &report
|
||||
@ -92,7 +95,7 @@ fun! zip#Browse(zipfile)
|
||||
endif
|
||||
if !filereadable(a:zipfile)
|
||||
if a:zipfile !~# '^\a\+://'
|
||||
" if its an url, don't complain, let url-handlers such as vim do its thing
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Browse) File not readable<".a:zipfile.">" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
@ -136,8 +139,10 @@ fun! zip#Browse(zipfile)
|
||||
return
|
||||
endif
|
||||
|
||||
" Maps associated with zip plugin
|
||||
setlocal noma nomod ro
|
||||
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||
noremap <silent> <buffer> x :call zip#Extract()<cr>
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Browse")
|
||||
@ -204,6 +209,15 @@ fun! zip#Read(fname,mode)
|
||||
endif
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("fname <".fname.">")
|
||||
" sanity check
|
||||
if !executable(substitute(g:zip_unzipcmd,'\s\+.*$','',''))
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Read) sorry, your system doesn't appear to have the ".g:zip_unzipcmd." program" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
return
|
||||
endif
|
||||
|
||||
" the following code does much the same thing as
|
||||
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
|
||||
@ -236,9 +250,9 @@ fun! zip#Write(fname)
|
||||
set report=10
|
||||
|
||||
" sanity checks
|
||||
if !executable(g:zip_zipcmd)
|
||||
if !executable(substitute(g:zip_zipcmd,'\s\+.*$','',''))
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the zip pgm" | echohl None
|
||||
echohl Error | echo "***error*** (zip#Write) sorry, your system doesn't appear to have the ".g:zip_zipcmd." program" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Write")
|
||||
@ -344,6 +358,48 @@ fun! zip#Write(fname)
|
||||
" call Dret("zip#Write")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" zip#Extract: extract a file from a zip archive {{{2
|
||||
fun! zip#Extract()
|
||||
" call Dfunc("zip#Extract()")
|
||||
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
" sanity check
|
||||
if fname =~ '^"'
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Extract")
|
||||
return
|
||||
endif
|
||||
if fname =~ '/$'
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (zip#Extract) Please specify a file, not a directory" | echohl None
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Extract")
|
||||
return
|
||||
endif
|
||||
|
||||
" extract the file mentioned under the cursor
|
||||
" call Decho("system(".g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell).")")
|
||||
call system(g:zip_extractcmd." ".shellescape(b:zipfile)." ".shellescape(shell))
|
||||
" call Decho("zipfile<".b:zipfile.">")
|
||||
if v:shell_error != 0
|
||||
echohl Error | echo "***error*** ".g:zip_extractcmd." ".b:zipfile." ".fname.": failed!" | echohl NONE
|
||||
elseif !filereadable(fname)
|
||||
echohl Error | echo "***error*** attempted to extract ".fname." but it doesn't appear to be present!"
|
||||
else
|
||||
echo "***note*** successfully extracted ".fname
|
||||
endif
|
||||
|
||||
" restore option
|
||||
let &report= repkeep
|
||||
|
||||
" call Dret("zip#Extract")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Escape: {{{2
|
||||
fun! s:Escape(fname,isfilt)
|
||||
|
@ -41,9 +41,16 @@ this autocmd might be useful:
|
||||
autocmd SourcePre */colors/blue_sky.vim set background=dark
|
||||
Replace "blue_sky" with the name of the colorscheme.
|
||||
|
||||
In case you want to tweak a colorscheme after it was loaded, check out that
|
||||
In case you want to tweak a colorscheme after it was loaded, check out the
|
||||
ColorScheme autocmd event.
|
||||
|
||||
To customize a colorscheme use another name, e.g. "~/.vim/colors/mine.vim",
|
||||
and use `:runtime` to load the original colorscheme:
|
||||
" load the "evening" colorscheme
|
||||
runtime colors/evening.vim
|
||||
" change the color of statements
|
||||
hi Statement ctermfg=Blue guifg=Blue
|
||||
|
||||
To see which highlight group is used where, find the help for
|
||||
"highlight-groups" and "group-name".
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim color file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2006 Apr 14
|
||||
" Last Change: 2016 Oct 10
|
||||
|
||||
" This color scheme uses a dark grey background.
|
||||
|
||||
@ -46,8 +46,8 @@ hi CursorColumn term=reverse ctermbg=Black guibg=grey40
|
||||
hi CursorLine term=underline cterm=underline guibg=grey40
|
||||
|
||||
" Groups for syntax highlighting
|
||||
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0 guibg=grey5
|
||||
hi Special term=bold ctermfg=LightRed guifg=Orange guibg=grey5
|
||||
hi Constant term=underline ctermfg=Magenta guifg=#ffa0a0
|
||||
hi Special term=bold ctermfg=LightRed guifg=Orange
|
||||
if &t_Co > 8
|
||||
hi Statement term=bold cterm=bold ctermfg=Yellow guifg=#ffff60 gui=bold
|
||||
endif
|
||||
|
@ -2,7 +2,7 @@
|
||||
" vim: tw=0 ts=4 sw=4
|
||||
" Vim color file
|
||||
" Maintainer: Ron Aaron <ron@ronware.org>
|
||||
" Last Change: 2013 May 23
|
||||
" Last Change: 2016 Sep 04
|
||||
|
||||
hi clear
|
||||
set background=dark
|
||||
@ -45,6 +45,7 @@ hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white g
|
||||
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
|
||||
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
|
||||
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
|
||||
hi EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold
|
||||
hi link IncSearch Visual
|
||||
hi link String Constant
|
||||
hi link Character Constant
|
||||
|
54
runtime/compiler/context.vim
Normal file
54
runtime/compiler/context.vim
Normal file
@ -0,0 +1,54 @@
|
||||
" Vim compiler file
|
||||
" Compiler: ConTeXt typesetting engine
|
||||
" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
|
||||
" Last Change: 2016 Oct 21
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
" If makefile exists and we are not asked to ignore it, we use standard make
|
||||
" (do not redefine makeprg)
|
||||
if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
|
||||
\ (!filereadable('Makefile') && !filereadable('makefile'))
|
||||
let current_compiler = 'context'
|
||||
" The following assumes that the current working directory is set to the
|
||||
" directory of the file to be typeset
|
||||
let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
|
||||
\ . ' --script context --autogenerate --nonstopmode --synctex='
|
||||
\ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
|
||||
\ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
|
||||
\ . ' ' . shellescape(expand('%:p:t'))
|
||||
else
|
||||
let current_compiler = 'make'
|
||||
endif
|
||||
|
||||
let b:context_errorformat = ''
|
||||
\ . '%-Popen source%.%#> %f,'
|
||||
\ . '%-Qclose source%.%#> %f,'
|
||||
\ . "%-Popen source%.%#name '%f',"
|
||||
\ . "%-Qclose source%.%#name '%f',"
|
||||
\ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
|
||||
\ . 'tex %trror%.%#error on line %l in file %f: %m,'
|
||||
\ . '%Elua %trror%.%#error on line %l in file %f:,'
|
||||
\ . '%+Emetapost %#> error: %#,'
|
||||
\ . '! error: %#%m,'
|
||||
\ . '%-C %#,'
|
||||
\ . '%C! %m,'
|
||||
\ . '%Z[ctxlua]%m,'
|
||||
\ . '%+C<*> %.%#,'
|
||||
\ . '%-C%.%#,'
|
||||
\ . '%Z...%m,'
|
||||
\ . '%-Zno-error,'
|
||||
\ . '%-G%.%#' " Skip remaining lines
|
||||
|
||||
execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
16
runtime/compiler/csslint.vim
Normal file
16
runtime/compiler/csslint.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Vim compiler file
|
||||
" Compiler: csslint for CSS
|
||||
" Maintainer: Daniel Moch <daniel@danielmoch.com>
|
||||
" Last Change: 2016 May 21
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "csslint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=csslint\ --format=compact
|
||||
CompilerSet errorformat=%-G,%-G%f:\ lint\ free!,%f:\ line\ %l\\,\ col\ %c\\,\ %trror\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %tarning\ -\ %m,%f:\ line\ %l\\,\ col\ %c\\,\ %m
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 Aug 09
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -19,7 +19,7 @@ CompilerSet makeprg=cucumber
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%W%m\ (Cucumber::Undefined),
|
||||
\%E%m\ (%.%#),
|
||||
\%E%m\ (%\\S%#),
|
||||
\%Z%f:%l,
|
||||
\%Z%f:%l:%.%#
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
" Compiler: GNU C Compiler
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2010-10-14
|
||||
" added line suggested by Anton Lindqvist 2016 Mar 31
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -24,6 +25,7 @@ CompilerSet errorformat=
|
||||
\%f:%l:\ %trror:\ %m,
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%f:%l:\ %m,
|
||||
\%f:\\(%*[^\\)]\\):\ %m,
|
||||
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ [`']%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ [`']%f',
|
||||
|
26
runtime/compiler/ghc.vim
Normal file
26
runtime/compiler/ghc.vim
Normal file
@ -0,0 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: GHC Haskell Compiler
|
||||
" Maintainer: Daniel Campoverde <alx@sillybytes.net>
|
||||
" Latest Revision: 2016-11-29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "ghc"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%-G%.%#:\ build,
|
||||
\%-G%.%#preprocessing\ library\ %.%#,
|
||||
\%-G[%.%#]%.%#,
|
||||
\%E%f:%l:%c:\ %m,
|
||||
\%-G--%.%#
|
||||
|
||||
if exists('g:compiler_ghc_ignore_unmatched_lines')
|
||||
CompilerSet errorformat+=%-G%.%#
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -15,7 +15,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=haml\ -c
|
||||
CompilerSet makeprg=haml
|
||||
|
||||
CompilerSet errorformat=
|
||||
\Haml\ %trror\ on\ line\ %l:\ %m,
|
||||
|
16
runtime/compiler/pylint.vim
Normal file
16
runtime/compiler/pylint.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Pylint for Python
|
||||
" Maintainer: Daniel Moch <daniel@danielmoch.com>
|
||||
" Last Change: 2016 May 20
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "pylint"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=pylint\ --output-format=text\ --msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
|
||||
CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ %m,%-Z%p^%.%#,%-G%.%#
|
@ -27,7 +27,11 @@ CompilerSet errorformat=
|
||||
\%\\s%#[%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:,
|
||||
\%m\ [%f:%l]:
|
||||
\%m\ [%f:%l]:,
|
||||
\%+Erake\ aborted!,
|
||||
\%+EDon't\ know\ how\ to\ build\ task\ %.%#,
|
||||
\%+Einvalid\ option:%.%#,
|
||||
\%+Irake\ %\\S%\\+%\\s%\\+#\ %.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@ -22,9 +22,10 @@ CompilerSet errorformat=
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%E%.%#:in\ `load':\ %f:%l:%m,
|
||||
\%E%f:%l:in\ `%*[^']':\ %m,
|
||||
\%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
|
||||
\%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#,
|
||||
\%E\ \ %\\d%\\+)%.%#,
|
||||
\%C\ \ \ \ \ %m,
|
||||
\%C%\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
@ -17,6 +17,8 @@ let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=testrb
|
||||
" CompilerSet makeprg=ruby\ -Itest
|
||||
" CompilerSet makeprg=m
|
||||
|
||||
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
||||
\%C%m\ [%f:%l]:,
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -15,7 +15,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=sass\ -c
|
||||
CompilerSet makeprg=sass
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: HTML Tidy
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jul 7
|
||||
" Last Change: 2016 Apr 21
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@ -12,8 +12,8 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %
|
||||
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %:S
|
||||
|
||||
" sample warning: foo.html:8:1: Warning: inserting missing 'foobar' element
|
||||
" sample error: foo.html:9:2: Error: <foobar> is not recognized!
|
||||
CompilerSet errorformat=%f:%l:%c:\ Error:%m,%f:%l:%c:\ Warning:%m,%-G%.%#
|
||||
" foo.html:8:1: Warning: inserting missing 'foobar' element
|
||||
" foo.html:9:2: Error: <foobar> is not recognized!
|
||||
CompilerSet errorformat=%f:%l:%c:\ %trror:%m,%f:%l:%c:\ %tarning:%m,%-G%.%#
|
||||
|
125
runtime/defaults.vim
Normal file
125
runtime/defaults.vim
Normal file
@ -0,0 +1,125 @@
|
||||
" The default vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2016 Sep 02
|
||||
"
|
||||
" This is loaded if no vimrc file was found.
|
||||
" Except when Vim is run with "-u NONE" or "-C".
|
||||
" Individual settings can be reverted with ":set option&".
|
||||
" Other commands can be reverted as mentioned below.
|
||||
|
||||
" When started as "evim", evim.vim will already have done these settings.
|
||||
if v:progname =~? "evim"
|
||||
finish
|
||||
endif
|
||||
|
||||
" Bail out if something that ran earlier, e.g. a system wide vimrc, does not
|
||||
" want Vim to use these default values.
|
||||
if exists('skip_defaults_vim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Use Vim settings, rather than Vi settings (much better!).
|
||||
" This must be first, because it changes other options as a side effect.
|
||||
set nocompatible
|
||||
|
||||
" Allow backspacing over everything in insert mode.
|
||||
set backspace=indent,eol,start
|
||||
|
||||
set history=200 " keep 200 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
set showcmd " display incomplete commands
|
||||
set wildmenu " display completion matches in a status line
|
||||
|
||||
set ttimeout " time out for key codes
|
||||
set ttimeoutlen=100 " wait up to 100ms after Esc for special key
|
||||
|
||||
" Show @@@ in the last line if it is truncated.
|
||||
set display=truncate
|
||||
|
||||
" Show a few lines of context around the cursor. Note that this makes the
|
||||
" text scroll if you mouse-click near the start or end of the window.
|
||||
set scrolloff=5
|
||||
|
||||
" Do incremental searching when it's possible to timeout.
|
||||
if has('reltime')
|
||||
set incsearch
|
||||
endif
|
||||
|
||||
" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it
|
||||
" confusing.
|
||||
set nrformats-=octal
|
||||
|
||||
" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries.
|
||||
if has('win32')
|
||||
set guioptions-=t
|
||||
endif
|
||||
|
||||
" Don't use Ex mode, use Q for formatting.
|
||||
" Revert with ":unmap Q".
|
||||
map Q gq
|
||||
|
||||
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
|
||||
" so that you can undo CTRL-U after inserting a line break.
|
||||
" Revert with ":iunmap <C-U>".
|
||||
inoremap <C-U> <C-G>u<C-U>
|
||||
|
||||
" In many terminal emulators the mouse works just fine. By enabling it you
|
||||
" can position the cursor, Visually select and scroll with the mouse.
|
||||
if has('mouse')
|
||||
set mouse=a
|
||||
endif
|
||||
|
||||
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||
" GUI (which always has colors).
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
" Revert with ":syntax off".
|
||||
syntax on
|
||||
|
||||
" I like highlighting strings inside C comments.
|
||||
" Revert with ":unlet c_comment_strings".
|
||||
let c_comment_strings=1
|
||||
endif
|
||||
|
||||
" Only do this part when compiled with support for autocommands.
|
||||
if has("autocmd")
|
||||
|
||||
" Enable file type detection.
|
||||
" Use the default filetype settings, so that mail gets 'tw' set to 72,
|
||||
" 'cindent' is on in C files, etc.
|
||||
" Also load indent files, to automatically do language-dependent indenting.
|
||||
" Revert with ":filetype off".
|
||||
filetype plugin indent on
|
||||
|
||||
" Put these in an autocmd group, so that you can revert them with:
|
||||
" ":augroup vimStartup | au! | augroup END"
|
||||
augroup vimStartup
|
||||
au!
|
||||
|
||||
" 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
|
||||
" (happens when dropping a file on gvim).
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") >= 1 && line("'\"") <= line("$") |
|
||||
\ exe "normal! g`\"" |
|
||||
\ endif
|
||||
|
||||
augroup END
|
||||
|
||||
endif " has("autocmd")
|
||||
|
||||
" Convenient command to see the difference between the current buffer and the
|
||||
" file it was loaded from, thus the changes you made.
|
||||
" Only define it when not defined already.
|
||||
" Revert with: ":delcommand DiffOrig".
|
||||
if !exists(":DiffOrig")
|
||||
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
|
||||
\ | wincmd p | diffthis
|
||||
endif
|
||||
|
||||
if has('langmap') && exists('+langremap')
|
||||
" Prevent that the langmap option applies to characters that result from a
|
||||
" mapping. If set (default), this may break plugins (but it's backward
|
||||
" compatible).
|
||||
set nolangremap
|
||||
endif
|
@ -17,6 +17,7 @@ DOCS = \
|
||||
arabic.txt \
|
||||
autocmd.txt \
|
||||
change.txt \
|
||||
channel.txt \
|
||||
cmdline.txt \
|
||||
debug.txt \
|
||||
debugger.txt \
|
||||
@ -31,7 +32,6 @@ DOCS = \
|
||||
ft_ada.txt \
|
||||
ft_sql.txt \
|
||||
gui.txt \
|
||||
gui_w16.txt \
|
||||
gui_w32.txt \
|
||||
gui_x11.txt \
|
||||
hangulin.txt \
|
||||
@ -142,6 +142,7 @@ DOCS = \
|
||||
version5.txt \
|
||||
version6.txt \
|
||||
version7.txt \
|
||||
version8.txt \
|
||||
vi_diff.txt \
|
||||
visual.txt \
|
||||
windows.txt \
|
||||
@ -151,6 +152,7 @@ HTMLS = \
|
||||
arabic.html \
|
||||
autocmd.html \
|
||||
change.html \
|
||||
channel.html \
|
||||
cmdline.html \
|
||||
debug.html \
|
||||
debugger.html \
|
||||
@ -165,7 +167,6 @@ HTMLS = \
|
||||
ft_ada.html \
|
||||
ft_sql.html \
|
||||
gui.html \
|
||||
gui_w16.html \
|
||||
gui_w32.html \
|
||||
gui_x11.html \
|
||||
hangulin.html \
|
||||
@ -275,6 +276,7 @@ HTMLS = \
|
||||
version5.html \
|
||||
version6.html \
|
||||
version7.html \
|
||||
version8.html \
|
||||
vi_diff.html \
|
||||
vimindex.html \
|
||||
visual.html \
|
||||
@ -386,9 +388,6 @@ hebrew.txt:
|
||||
russian.txt:
|
||||
touch russian.txt
|
||||
|
||||
gui_w16.txt:
|
||||
touch gui_w16.txt
|
||||
|
||||
gui_w32.txt:
|
||||
touch gui_w32.txt
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*arabic.txt* For Vim version 7.4. Last change: 2010 Nov 13
|
||||
*arabic.txt* For Vim version 8.0. Last change: 2010 Nov 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Nadim Shaikli
|
||||
|
@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2015 Dec 05
|
||||
*autocmd.txt* For Vim version 8.0. Last change: 2017 Jan 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
|
||||
features, such as editing compressed files (see |gzip-example|). The usual
|
||||
place to put autocommands is in your .vimrc or .exrc file.
|
||||
|
||||
*E203* *E204* *E143* *E855*
|
||||
*E203* *E204* *E143* *E855* *E937*
|
||||
WARNING: Using autocommands is very powerful, and may lead to unexpected side
|
||||
effects. Be careful not to destroy your text.
|
||||
- It's a good idea to do some testing on an expendable copy of a file first.
|
||||
@ -52,9 +52,6 @@ effects. Be careful not to destroy your text.
|
||||
==============================================================================
|
||||
2. Defining autocommands *autocmd-define*
|
||||
|
||||
Note: The ":autocmd" command cannot be followed by another command, since any
|
||||
'|' is considered part of the command.
|
||||
|
||||
*:au* *:autocmd*
|
||||
:au[tocmd] [group] {event} {pat} [nested] {cmd}
|
||||
Add {cmd} to the list of commands that Vim will
|
||||
@ -67,6 +64,12 @@ Note: The ":autocmd" command cannot be followed by another command, since any
|
||||
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
|
||||
See |autocmd-buflocal|.
|
||||
|
||||
Note: The ":autocmd" command can only be followed by another command when the
|
||||
'|' appears before {cmd}. This works: >
|
||||
:augroup mine | au! BufRead | augroup END
|
||||
But this sees "augroup" as part of the defined command: >
|
||||
:augroup mine | au BufRead * set tw=70 | augroup END
|
||||
|
||||
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
|
||||
arguments are not expanded when the autocommand is defined. These will be
|
||||
expanded when the Event is recognized, and the {cmd} is executed. The only
|
||||
@ -76,11 +79,15 @@ exception is that "<sfile>" is expanded when the autocmd is defined. Example:
|
||||
|
||||
Here Vim expands <sfile> to the name of the file containing this line.
|
||||
|
||||
When your .vimrc file is sourced twice, the autocommands will appear twice.
|
||||
To avoid this, put this command in your .vimrc file, before defining
|
||||
autocommands: >
|
||||
`:autocmd` adds to the list of autocommands regardless of whether they are
|
||||
already present. When your .vimrc file is sourced twice, the autocommands
|
||||
will appear twice. To avoid this, define your autocommands in a group, so
|
||||
that you can easily clear them: >
|
||||
|
||||
:autocmd! " Remove ALL autocommands for the current group.
|
||||
augroup vimrc
|
||||
autocmd! " Remove all vimrc autocommands
|
||||
au BufNewFile,BufRead *.html so <sfile>:h/html.vim
|
||||
augroup END
|
||||
|
||||
If you don't want to remove all autocommands, you can instead use a variable
|
||||
to ensure that Vim includes the autocommands only once: >
|
||||
@ -127,8 +134,13 @@ prompt. When one command outputs two messages this can happen anyway.
|
||||
|
||||
:au[tocmd]! [group] {event}
|
||||
Remove ALL autocommands for {event}.
|
||||
Warning: You should not do this without a group for
|
||||
|BufRead| and other common events, it can break
|
||||
plugins, syntax highlighting, etc.
|
||||
|
||||
:au[tocmd]! [group] Remove ALL autocommands.
|
||||
Warning: You should normally not do this without a
|
||||
group, it breaks plugins, syntax highlighting, etc.
|
||||
|
||||
When the [group] argument is not given, Vim uses the current group (as defined
|
||||
with ":augroup"); otherwise, Vim uses the group defined with [group].
|
||||
@ -293,6 +305,9 @@ Name triggered by ~
|
||||
|CursorMoved| the cursor was moved in Normal mode
|
||||
|CursorMovedI| the cursor was moved in Insert mode
|
||||
|
||||
|WinNew| after creating a new window
|
||||
|TabNew| after creating a new tab page
|
||||
|TabClosed| after closing a tab page
|
||||
|WinEnter| after entering another window
|
||||
|WinLeave| before leaving a window
|
||||
|TabEnter| after entering another tab page
|
||||
@ -413,8 +428,8 @@ BufUnload Before unloading a buffer. This is when the
|
||||
NOTE: When this autocommand is executed, the
|
||||
current buffer "%" may be different from the
|
||||
buffer being unloaded "<afile>".
|
||||
Don't change to another buffer, it will cause
|
||||
problems.
|
||||
Don't change to another buffer or window, it
|
||||
will cause problems!
|
||||
When exiting and v:dying is 2 or more this
|
||||
event is not triggered.
|
||||
*BufWinEnter*
|
||||
@ -539,6 +554,9 @@ CursorHold When the user doesn't press a key for the time
|
||||
versions}
|
||||
*CursorHoldI*
|
||||
CursorHoldI Just like CursorHold, but in Insert mode.
|
||||
Not triggered when waiting for another key,
|
||||
e.g. after CTRL-V, and not when in CTRL-X mode
|
||||
|insert_expand|.
|
||||
|
||||
*CursorMoved*
|
||||
CursorMoved After the cursor was moved in Normal or Visual
|
||||
@ -775,7 +793,9 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|
||||
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|
||||
|:lgetfile|, |:laddfile|, |:helpgrep|,
|
||||
|:lhelpgrep|).
|
||||
|:lhelpgrep|, |:cexpr|, |:cgetexpr|,
|
||||
|:caddexpr|, |:cbuffer|, |:cgetbuffer|,
|
||||
|:caddbuffer|).
|
||||
The pattern is matched against the command
|
||||
being run. When |:grep| is used but 'grepprg'
|
||||
is set to "internal" it still matches "grep".
|
||||
@ -871,6 +891,8 @@ Syntax When the 'syntax' option has been set. The
|
||||
where this option was set, and <amatch> for
|
||||
the new value of 'syntax'.
|
||||
See |:syn-on|.
|
||||
*TabClosed*
|
||||
TabClosed After closing a tab page.
|
||||
*TabEnter*
|
||||
TabEnter Just after entering a tab page. |tab-page|
|
||||
After triggering the WinEnter and before
|
||||
@ -879,6 +901,10 @@ TabEnter Just after entering a tab page. |tab-page|
|
||||
TabLeave Just before leaving a tab page. |tab-page|
|
||||
A WinLeave event will have been triggered
|
||||
first.
|
||||
*TabNew*
|
||||
TabNew When a tab page was created. |tab-page|
|
||||
A WinEnter event will have been triggered
|
||||
first, TabEnter follows.
|
||||
*TermChanged*
|
||||
TermChanged After the value of 'term' has changed. Useful
|
||||
for re-loading the syntax file to update the
|
||||
@ -918,7 +944,15 @@ VimEnter After doing all the startup stuff, including
|
||||
loading .vimrc files, executing the "-c cmd"
|
||||
arguments, creating all windows and loading
|
||||
the buffers in them.
|
||||
*VimLeave*
|
||||
Just before this event is triggered the
|
||||
|v:vim_did_enter| variable is set, so that you
|
||||
can do: >
|
||||
if v:vim_did_enter
|
||||
call s:init()
|
||||
else
|
||||
au VimEnter * call s:init()
|
||||
endif
|
||||
< *VimLeave*
|
||||
VimLeave Before exiting Vim, just after writing the
|
||||
.viminfo file. Executed only once, like
|
||||
VimLeavePre.
|
||||
@ -956,6 +990,11 @@ WinLeave Before leaving a window. If the window to be
|
||||
WinLeave autocommands (but not for ":new").
|
||||
Not used for ":qa" or ":q" when exiting Vim.
|
||||
|
||||
*WinNew*
|
||||
WinNew When a new window was created. Not done for
|
||||
the first window, when Vim has just started.
|
||||
Before a WinEnter event.
|
||||
|
||||
==============================================================================
|
||||
6. Patterns *autocmd-patterns* *{pat}*
|
||||
|
||||
@ -1037,6 +1076,9 @@ Note that for all systems the '/' character is used for path separator (even
|
||||
MS-DOS and OS/2). This was done because the backslash is difficult to use
|
||||
in a pattern and to make the autocommands portable across different systems.
|
||||
|
||||
It is possible to use |pattern| items, but they may not work as expected,
|
||||
because of the translation done for the above.
|
||||
|
||||
*autocmd-changes*
|
||||
Matching with the pattern is done when an event is triggered. Changing the
|
||||
buffer name in one of the autocommands, or even deleting the buffer, does not
|
||||
@ -1135,10 +1177,12 @@ name!
|
||||
different from existing {event} names, as this
|
||||
most likely will not do what you intended.
|
||||
|
||||
*:augroup-delete* *E367*
|
||||
*:augroup-delete* *E367* *W19* *E936*
|
||||
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
|
||||
this if there is still an autocommand using
|
||||
this group! This is not checked.
|
||||
this group! You will get a warning if doing
|
||||
it anyway. when the group is the current group
|
||||
you will get error E936.
|
||||
|
||||
To enter autocommands for a specific group, use this method:
|
||||
1. Select the group with ":augroup {name}".
|
||||
@ -1193,6 +1237,8 @@ option will not cause any commands to be executed.
|
||||
argument is present. You probably want to use
|
||||
<nomodeline> for events that are not used when loading
|
||||
a buffer, such as |User|.
|
||||
Processing modelines is also skipped when no
|
||||
matching autocommands were executed.
|
||||
|
||||
*:doautoa* *:doautoall*
|
||||
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
|
||||
|
@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.4. Last change: 2015 Oct 17
|
||||
*change.txt* For Vim version 8.0. Last change: 2016 Nov 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -98,10 +98,10 @@ These commands delete text. You can repeat them with the `.` command
|
||||
|
||||
An exception for the d{motion} command: If the motion is not linewise, the
|
||||
start and end of the motion are not in the same line, and there are only
|
||||
blanks before the start and after the end of the motion, the delete becomes
|
||||
linewise. This means that the delete also removes the line of blanks that you
|
||||
might expect to remain. Use the |o_v| operator to force the motion to be
|
||||
characterwise.
|
||||
blanks before the start and there are no non-blanks after the end of the
|
||||
motion, the delete becomes linewise. This means that the delete also removes
|
||||
the line of blanks that you might expect to remain. Use the |o_v| operator to
|
||||
force the motion to be characterwise.
|
||||
|
||||
Trying to delete an empty region of text (e.g., "d0" in the first column)
|
||||
is an error when 'cpoptions' includes the 'E' flag.
|
||||
@ -109,7 +109,9 @@ is an error when 'cpoptions' includes the 'E' flag.
|
||||
*J*
|
||||
J Join [count] lines, with a minimum of two lines.
|
||||
Remove the indent and insert up to two spaces (see
|
||||
below).
|
||||
below). Fails when on the last line of the buffer.
|
||||
If [count] is too big it is reduce to the number of
|
||||
lines available.
|
||||
|
||||
*v_J*
|
||||
{Visual}J Join the highlighted lines, with a minimum of two
|
||||
@ -409,6 +411,11 @@ CTRL-X Subtract [count] from the number or alphabetic
|
||||
{Visual}CTRL-X Subtract [count] from the number or alphabetic
|
||||
character in the highlighted text. {not in Vi}
|
||||
|
||||
On MS-Windows, this is mapped to cut Visual text
|
||||
|dos-standard-mappings|. If you want to disable the
|
||||
mapping, use this: >
|
||||
silent! vunmap <C-X>
|
||||
<
|
||||
*v_g_CTRL-X*
|
||||
{Visual}g CTRL-X Subtract [count] from the number or alphabetic
|
||||
character in the highlighted text. If several lines
|
||||
@ -438,8 +445,8 @@ This depends on the 'nrformats' option:
|
||||
index.
|
||||
|
||||
For decimals a leading negative sign is considered for incrementing/
|
||||
decrementing, for octal and hex values, it won't be considered.
|
||||
To ignore the sign Visually select the number before using CTRL-A or CTRL-X.
|
||||
decrementing, for binary, octal and hex values, it won't be considered. To
|
||||
ignore the sign Visually select the number before using CTRL-A or CTRL-X.
|
||||
|
||||
For numbers with leading zeros (including all octal and hexadecimal numbers),
|
||||
Vim preserves the number of characters in the number when possible. CTRL-A on
|
||||
@ -677,6 +684,7 @@ g& Synonym for `:%s//~/&` (repeat last substitute with
|
||||
*:s_flags*
|
||||
The flags that you can use for the substitute commands:
|
||||
|
||||
*:&&*
|
||||
[&] Must be the first one: Keep the flags from the previous substitute
|
||||
command. Examples: >
|
||||
:&&
|
||||
@ -845,7 +853,7 @@ Examples: >
|
||||
:s/abcde/abc^Mde/ modifies "abcde" to "abc", "de" (two lines)
|
||||
:s/$/\^M/ modifies "abcde" to "abcde^M"
|
||||
:s/\w\+/\u\0/g modifies "bla bla" to "Bla Bla"
|
||||
:s/\w\+/\L\u/g modifies "BLA bla" to "Bla Bla"
|
||||
:s/\w\+/\L\u\0/g modifies "BLA bla" to "Bla Bla"
|
||||
|
||||
Note: "\L\u" can be used to capitalize the first letter of a word. This is
|
||||
not compatible with Vi and older versions of Vim, where the "\u" would cancel
|
||||
@ -865,6 +873,7 @@ The numbering of "\1", "\2" etc. is done based on which "\(" comes first in
|
||||
the pattern (going left to right). When a parentheses group matches several
|
||||
times, the last one will be used for "\1", "\2", etc. Example: >
|
||||
:s/\(\(a[a-d] \)*\)/\2/ modifies "aa ab x" to "ab x"
|
||||
The "\2" is for "\(a[a-d] \)". At first it matches "aa ", secondly "ab ".
|
||||
|
||||
When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\),
|
||||
either the first or second pattern in parentheses did not match, so either
|
||||
@ -905,8 +914,7 @@ Exceptions:
|
||||
Substitute with an expression *sub-replace-expression*
|
||||
*sub-replace-\=* *s/\=*
|
||||
When the substitute string starts with "\=" the remainder is interpreted as an
|
||||
expression. This does not work recursively: a |substitute()| function inside
|
||||
the expression cannot use "\=" for the substitute string.
|
||||
expression.
|
||||
|
||||
The special meaning for characters as mentioned at |sub-replace-special| does
|
||||
not apply except for "<CR>". A <NL> character is used as a line break, you
|
||||
@ -977,8 +985,6 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
|
||||
`:retab!` may also change a sequence of spaces by
|
||||
<Tab> characters, which can mess up a printf().
|
||||
{not in Vi}
|
||||
Not available when |+ex_extra| feature was disabled at
|
||||
compile time.
|
||||
|
||||
*retab-example*
|
||||
Example for using autocommands and ":retab" to edit a file which is stored
|
||||
@ -1007,7 +1013,7 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
|
||||
:reg[isters] {arg} Display the contents of the numbered and named
|
||||
registers that are mentioned in {arg}. For example: >
|
||||
:dis 1a
|
||||
:reg 1a
|
||||
< to display registers '1' and 'a'. Spaces are allowed
|
||||
in {arg}. {not in Vi}
|
||||
|
||||
@ -1200,7 +1206,7 @@ name '"'. This means you have to type two double quotes. Writing to the ""
|
||||
register writes to register "0.
|
||||
{Vi: register contents are lost when changing files, no '"'}
|
||||
|
||||
2. Numbered registers "0 to "9 *quote_number* *quote0* *quote1*
|
||||
2. Numbered registers "0 to "9 *quote_number* *quote0* *quote1*
|
||||
*quote2* *quote3* *quote4* *quote9*
|
||||
Vim fills these registers with text from yank and delete commands.
|
||||
Numbered register 0 contains the text from the most recent yank command,
|
||||
@ -1354,22 +1360,16 @@ The next three commands always work on whole lines.
|
||||
Center lines in [range] between [width] columns
|
||||
(default 'textwidth' or 80 when 'textwidth' is 0).
|
||||
{not in Vi}
|
||||
Not available when |+ex_extra| feature was disabled at
|
||||
compile time.
|
||||
|
||||
:[range]ri[ght] [width] *:ri* *:right*
|
||||
Right-align lines in [range] at [width] columns
|
||||
(default 'textwidth' or 80 when 'textwidth' is 0).
|
||||
{not in Vi}
|
||||
Not available when |+ex_extra| feature was disabled at
|
||||
compile time.
|
||||
|
||||
*:le* *:left*
|
||||
:[range]le[ft] [indent]
|
||||
Left-align lines in [range]. Sets the indent in the
|
||||
lines to [indent] (default 0). {not in Vi}
|
||||
Not available when |+ex_extra| feature was disabled at
|
||||
compile time.
|
||||
|
||||
*gq*
|
||||
gq{motion} Format the lines that {motion} moves over.
|
||||
@ -1745,7 +1745,7 @@ Vim has a sorting function and a sorting command. The sorting function can be
|
||||
found here: |sort()|, |uniq()|.
|
||||
|
||||
*:sor* *:sort*
|
||||
:[range]sor[t][!] [i][u][r][n][x][o][b] [/{pattern}/]
|
||||
:[range]sor[t][!] [b][f][i][n][o][r][u][x] [/{pattern}/]
|
||||
Sort lines in [range]. When no range is given all
|
||||
lines are sorted.
|
||||
|
||||
@ -1753,10 +1753,18 @@ found here: |sort()|, |uniq()|.
|
||||
|
||||
With [i] case is ignored.
|
||||
|
||||
Options [n][f][x][o][b] are mutually exclusive.
|
||||
|
||||
With [n] sorting is done on the first decimal number
|
||||
in the line (after or inside a {pattern} match).
|
||||
One leading '-' is included in the number.
|
||||
|
||||
With [f] sorting is done on the Float in the line.
|
||||
The value of Float is determined similar to passing
|
||||
the text (after or inside a {pattern} match) to
|
||||
str2float() function. This option is available only
|
||||
if Vim was compiled with Floating point support.
|
||||
|
||||
With [x] sorting is done on the first hexadecimal
|
||||
number in the line (after or inside a {pattern}
|
||||
match). A leading "0x" or "0X" is ignored.
|
||||
@ -1768,10 +1776,10 @@ found here: |sort()|, |uniq()|.
|
||||
With [b] sorting is done on the first binary number in
|
||||
the line (after or inside a {pattern} match).
|
||||
|
||||
With [u] only keep the first of a sequence of
|
||||
identical lines (ignoring case when [i] is used).
|
||||
Without this flag, a sequence of identical lines
|
||||
will be kept in their original order.
|
||||
With [u] (u stands for unique) only keep the first of
|
||||
a sequence of identical lines (ignoring case when [i]
|
||||
is used). Without this flag, a sequence of identical
|
||||
lines will be kept in their original order.
|
||||
Note that leading and trailing white space may cause
|
||||
lines to be different.
|
||||
|
||||
|
763
runtime/doc/channel.txt
Normal file
763
runtime/doc/channel.txt
Normal file
@ -0,0 +1,763 @@
|
||||
*channel.txt* For Vim version 8.0. Last change: 2016 Dec 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
Inter-process communication *channel*
|
||||
|
||||
Vim uses channels to communicate with other processes.
|
||||
A channel uses a socket or pipes. *socket-interface*
|
||||
Jobs can be used to start processes and communicate with them.
|
||||
The Netbeans interface also uses a channel. |netbeans|
|
||||
|
||||
1. Overview |job-channel-overview|
|
||||
2. Channel demo |channel-demo|
|
||||
3. Opening a channel |channel-open|
|
||||
4. Using a JSON or JS channel |channel-use|
|
||||
5. Channel commands |channel-commands|
|
||||
6. Using a RAW or NL channel |channel-raw|
|
||||
7. More channel functions |channel-more|
|
||||
8. Starting a job with a channel |job-start|
|
||||
9. Starting a job without a channel |job-start-nochannel|
|
||||
10. Job options |job-options|
|
||||
11. Controlling a job |job-control|
|
||||
|
||||
{Vi does not have any of these features}
|
||||
{only when compiled with the |+channel| feature for channel stuff}
|
||||
You can check this with: `has('channel')`
|
||||
{only when compiled with the |+job| feature for job stuff}
|
||||
You can check this with: `has('job')`
|
||||
|
||||
==============================================================================
|
||||
1. Overview *job-channel-overview*
|
||||
|
||||
There are four main types of jobs:
|
||||
1. A daemon, serving several Vim instances.
|
||||
Vim connects to it with a socket.
|
||||
2. One job working with one Vim instance, asynchronously.
|
||||
Uses a socket or pipes.
|
||||
3. A job performing some work for a short time, asynchronously.
|
||||
Uses a socket or pipes.
|
||||
4. Running a filter, synchronously.
|
||||
Uses pipes.
|
||||
|
||||
For when using sockets See |job-start|, |job-start-nochannel| and
|
||||
|channel-open|. For 2 and 3, one or more jobs using pipes, see |job-start|.
|
||||
For 4 use the ":{range}!cmd" command, see |filter|.
|
||||
|
||||
Over the socket and pipes these protocols are available:
|
||||
RAW nothing known, Vim cannot tell where a message ends
|
||||
NL every message ends in a NL (newline) character
|
||||
JSON JSON encoding |json_encode()|
|
||||
JS JavaScript style JSON-like encoding |js_encode()|
|
||||
|
||||
Common combination are:
|
||||
- Using a job connected through pipes in NL mode. E.g., to run a style
|
||||
checker and receive errors and warnings.
|
||||
- Using a deamon, connecting over a socket in JSON mode. E.g. to lookup
|
||||
cross-references in a database.
|
||||
|
||||
==============================================================================
|
||||
2. Channel demo *channel-demo* *demoserver.py*
|
||||
|
||||
This requires Python. The demo program can be found in
|
||||
$VIMRUNTIME/tools/demoserver.py
|
||||
Run it in one terminal. We will call this T1.
|
||||
|
||||
Run Vim in another terminal. Connect to the demo server with: >
|
||||
let channel = ch_open('localhost:8765')
|
||||
|
||||
In T1 you should see:
|
||||
=== socket opened === ~
|
||||
|
||||
You can now send a message to the server: >
|
||||
echo ch_evalexpr(channel, 'hello!')
|
||||
|
||||
The message is received in T1 and a response is sent back to Vim.
|
||||
You can see the raw messages in T1. What Vim sends is:
|
||||
[1,"hello!"] ~
|
||||
And the response is:
|
||||
[1,"got it"] ~
|
||||
The number will increase every time you send a message.
|
||||
|
||||
The server can send a command to Vim. Type this on T1 (literally, including
|
||||
the quotes):
|
||||
["ex","echo 'hi there'"] ~
|
||||
And you should see the message in Vim. You can move the cursor a word forward:
|
||||
["normal","w"] ~
|
||||
|
||||
To handle asynchronous communication a callback needs to be used: >
|
||||
func MyHandler(channel, msg)
|
||||
echo "from the handler: " . a:msg
|
||||
endfunc
|
||||
call ch_sendexpr(channel, 'hello!', {'callback': "MyHandler"})
|
||||
Vim will not wait for a response. Now the server can send the response later
|
||||
and MyHandler will be invoked.
|
||||
|
||||
Instead of giving a callback with every send call, it can also be specified
|
||||
when opening the channel: >
|
||||
call ch_close(channel)
|
||||
let channel = ch_open('localhost:8765', {'callback': "MyHandler"})
|
||||
call ch_sendexpr(channel, 'hello!')
|
||||
|
||||
When trying out channels it's useful to see what is going on. You can tell
|
||||
Vim to write lines in log file: >
|
||||
call ch_logfile('channellog', 'w')
|
||||
See |ch_logfile()|.
|
||||
|
||||
==============================================================================
|
||||
3. Opening a channel *channel-open*
|
||||
|
||||
To open a channel: >
|
||||
let channel = ch_open({address} [, {options}])
|
||||
if ch_status(channel) == "open"
|
||||
" use the channel
|
||||
|
||||
Use |ch_status()| to see if the channel could be opened.
|
||||
|
||||
{address} has the form "hostname:port". E.g., "localhost:8765".
|
||||
|
||||
{options} is a dictionary with optional entries: *channel-open-options*
|
||||
|
||||
"mode" can be: *channel-mode*
|
||||
"json" - Use JSON, see below; most convenient way. Default.
|
||||
"js" - Use JS (JavaScript) encoding, more efficient than JSON.
|
||||
"nl" - Use messages that end in a NL character
|
||||
"raw" - Use raw messages
|
||||
*channel-callback* *E921*
|
||||
"callback" A function that is called when a message is received that is
|
||||
not handled otherwise. It gets two arguments: the channel
|
||||
and the received message. Example: >
|
||||
func Handle(channel, msg)
|
||||
echo 'Received: ' . a:msg
|
||||
endfunc
|
||||
let channel = ch_open("localhost:8765", {"callback": "Handle"})
|
||||
<
|
||||
When "mode" is "json" or "js" the "msg" argument is the body
|
||||
of the received message, converted to Vim types.
|
||||
When "mode" is "nl" the "msg" argument is one message,
|
||||
excluding the NL.
|
||||
When "mode" is "raw" the "msg" argument is the whole message
|
||||
as a string.
|
||||
|
||||
For all callbacks: Use |function()| to bind it to arguments
|
||||
and/or a Dictionary. Or use the form "dict.function" to bind
|
||||
the Dictionary.
|
||||
|
||||
Callbacks are only called at a "safe" moment, usually when Vim
|
||||
is waiting for the user to type a character. Vim does not use
|
||||
multi-threading.
|
||||
|
||||
*close_cb*
|
||||
"close_cb" A function that is called when the channel gets closed, other
|
||||
than by calling ch_close(). It should be defined like this: >
|
||||
func MyCloseHandler(channel)
|
||||
< Vim will invoke callbacks that handle data before invoking
|
||||
close_cb, thus when this function is called no more data will
|
||||
be passed to the callbacks.
|
||||
*channel-drop*
|
||||
"drop" Specifies when to drop messages:
|
||||
"auto" When there is no callback to handle a message.
|
||||
The "close_cb" is also considered for this.
|
||||
"never" All messages will be kept.
|
||||
|
||||
*waittime*
|
||||
"waittime" The time to wait for the connection to be made in
|
||||
milliseconds. A negative number waits forever.
|
||||
|
||||
The default is zero, don't wait, which is useful if a local
|
||||
server is supposed to be running already. On Unix Vim
|
||||
actually uses a 1 msec timeout, that is required on many
|
||||
systems. Use a larger value for a remote server, e.g. 10
|
||||
msec at least.
|
||||
*channel-timeout*
|
||||
"timeout" The time to wait for a request when blocking, E.g. when using
|
||||
ch_evalexpr(). In milliseconds. The default is 2000 (2
|
||||
seconds).
|
||||
|
||||
When "mode" is "json" or "js" the "callback" is optional. When omitted it is
|
||||
only possible to receive a message after sending one.
|
||||
|
||||
To change the channel options after opening it use |ch_setoptions()|. The
|
||||
arguments are similar to what is passed to |ch_open()|, but "waittime" cannot
|
||||
be given, since that only applies to opening the channel.
|
||||
|
||||
For example, the handler can be added or changed: >
|
||||
call ch_setoptions(channel, {'callback': callback})
|
||||
When "callback" is empty (zero or an empty string) the handler is removed.
|
||||
|
||||
After a callback has been invoked Vim will update the screen and put the
|
||||
cursor back where it belongs. Thus the callback should not need to do
|
||||
`:redraw`.
|
||||
|
||||
The timeout can be changed: >
|
||||
call ch_setoptions(channel, {'timeout': msec})
|
||||
<
|
||||
*channel-close* *E906*
|
||||
Once done with the channel, disconnect it like this: >
|
||||
call ch_close(channel)
|
||||
When a socket is used this will close the socket for both directions. When
|
||||
pipes are used (stdin/stdout/stderr) they are all closed. This might not be
|
||||
what you want! Stopping the job with job_stop() might be better.
|
||||
All readahead is discarded, callbacks will no longer be invoked.
|
||||
|
||||
Note that a channel is closed in three stages:
|
||||
- The I/O ends, log message: "Closing channel". There can still be queued
|
||||
messages to read or callbacks to invoke.
|
||||
- The readahead is cleared, log message: "Clearing channel". Some variables
|
||||
may still reference the channel.
|
||||
- The channel is freed, log message: "Freeing channel".
|
||||
|
||||
When the channel can't be opened you will get an error message. There is a
|
||||
difference between MS-Windows and Unix: On Unix when the port doesn't exist
|
||||
ch_open() fails quickly. On MS-Windows "waittime" applies.
|
||||
*E898* *E901* *E902*
|
||||
|
||||
If there is an error reading or writing a channel it will be closed.
|
||||
*E630* *E631*
|
||||
|
||||
==============================================================================
|
||||
4. Using a JSON or JS channel *channel-use*
|
||||
|
||||
If mode is JSON then a message can be sent synchronously like this: >
|
||||
let response = ch_evalexpr(channel, {expr})
|
||||
This awaits a response from the other side.
|
||||
|
||||
When mode is JS this works the same, except that the messages use
|
||||
JavaScript encoding. See |js_encode()| for the difference.
|
||||
|
||||
To send a message, without handling a response or letting the channel callback
|
||||
handle the response: >
|
||||
call ch_sendexpr(channel, {expr})
|
||||
|
||||
To send a message and letting the response handled by a specific function,
|
||||
asynchronously: >
|
||||
call ch_sendexpr(channel, {expr}, {'callback': Handler})
|
||||
|
||||
Vim will match the response with the request using the message ID. Once the
|
||||
response is received the callback will be invoked. Further responses with the
|
||||
same ID will be ignored. If your server sends back multiple responses you
|
||||
need to send them with ID zero, they will be passed to the channel callback.
|
||||
|
||||
The {expr} is converted to JSON and wrapped in an array. An example of the
|
||||
message that the receiver will get when {expr} is the string "hello":
|
||||
[12,"hello"] ~
|
||||
|
||||
The format of the JSON sent is:
|
||||
[{number},{expr}]
|
||||
|
||||
In which {number} is different every time. It must be used in the response
|
||||
(if any):
|
||||
|
||||
[{number},{response}]
|
||||
|
||||
This way Vim knows which sent message matches with which received message and
|
||||
can call the right handler. Also when the messages arrive out of order.
|
||||
|
||||
A newline character is terminating the JSON text. This can be used to
|
||||
separate the read text. For example, in Python:
|
||||
splitidx = read_text.find('\n')
|
||||
message = read_text[:splitidx]
|
||||
rest = read_text[splitidx + 1:]
|
||||
|
||||
The sender must always send valid JSON to Vim. Vim can check for the end of
|
||||
the message by parsing the JSON. It will only accept the message if the end
|
||||
was received. A newline after the message is optional.
|
||||
|
||||
When the process wants to send a message to Vim without first receiving a
|
||||
message, it must use the number zero:
|
||||
[0,{response}]
|
||||
|
||||
Then channel handler will then get {response} converted to Vim types. If the
|
||||
channel does not have a handler the message is dropped.
|
||||
|
||||
It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
|
||||
channel. The caller is then completely responsible for correct encoding and
|
||||
decoding.
|
||||
|
||||
==============================================================================
|
||||
5. Channel commands *channel-commands*
|
||||
|
||||
With a JSON channel the process can send commands to Vim that will be
|
||||
handled by Vim internally, it does not require a handler for the channel.
|
||||
|
||||
Possible commands are: *E903* *E904* *E905*
|
||||
["redraw", {forced}]
|
||||
["ex", {Ex command}]
|
||||
["normal", {Normal mode command}]
|
||||
["expr", {expression}, {number}]
|
||||
["expr", {expression}]
|
||||
["call", {func name}, {argument list}, {number}]
|
||||
["call", {func name}, {argument list}]
|
||||
|
||||
With all of these: Be careful what these commands do! You can easily
|
||||
interfere with what the user is doing. To avoid trouble use |mode()| to check
|
||||
that the editor is in the expected state. E.g., to send keys that must be
|
||||
inserted as text, not executed as a command:
|
||||
["ex","if mode() == 'i' | call feedkeys('ClassName') | endif"] ~
|
||||
|
||||
Errors in these commands are normally not reported to avoid them messing up
|
||||
the display. If you do want to see them, set the 'verbose' option to 3 or
|
||||
higher.
|
||||
|
||||
|
||||
Command "redraw" ~
|
||||
|
||||
The other commands do not update the screen, so that you can send a sequence
|
||||
of commands without the cursor moving around. You must end with the "redraw"
|
||||
command to show any changed text and show the cursor where it belongs.
|
||||
|
||||
The argument is normally an empty string:
|
||||
["redraw", ""] ~
|
||||
To first clear the screen pass "force":
|
||||
["redraw", "force"] ~
|
||||
|
||||
|
||||
Command "ex" ~
|
||||
|
||||
The "ex" command is executed as any Ex command. There is no response for
|
||||
completion or error. You could use functions in an |autoload| script:
|
||||
["ex","call myscript#MyFunc(arg)"]
|
||||
|
||||
You can also use "call |feedkeys()|" to insert any key sequence.
|
||||
|
||||
When there is an error a message is written to the channel log, if it exists,
|
||||
and v:errmsg is set to the error.
|
||||
|
||||
|
||||
Command "normal" ~
|
||||
|
||||
The "normal" command is executed like with ":normal!", commands are not
|
||||
mapped. Example to open the folds under the cursor:
|
||||
["normal" "zO"]
|
||||
|
||||
|
||||
Command "expr" with response ~
|
||||
|
||||
The "expr" command can be used to get the result of an expression. For
|
||||
example, to get the number of lines in the current buffer:
|
||||
["expr","line('$')", -2] ~
|
||||
|
||||
It will send back the result of the expression:
|
||||
[-2, "last line"] ~
|
||||
The format is:
|
||||
[{number}, {result}]
|
||||
|
||||
Here {number} is the same as what was in the request. Use a negative number
|
||||
to avoid confusion with message that Vim sends. Use a different number on
|
||||
every request to be able to match the request with the response.
|
||||
|
||||
{result} is the result of the evaluation and is JSON encoded. If the
|
||||
evaluation fails or the result can't be encoded in JSON it is the string
|
||||
"ERROR".
|
||||
|
||||
|
||||
Command "expr" without a response ~
|
||||
|
||||
This command is similar to "expr" above, but does not send back any response.
|
||||
Example:
|
||||
["expr","setline('$', ['one', 'two', 'three'])"] ~
|
||||
There is no third argument in the request.
|
||||
|
||||
|
||||
Command "call" ~
|
||||
|
||||
This is similar to "expr", but instead of passing the whole expression as a
|
||||
string this passes the name of a function and a list of arguments. This
|
||||
avoids the conversion of the arguments to a string and escaping and
|
||||
concatenating them. Example:
|
||||
["call", "line", ["$"], -2] ~
|
||||
|
||||
Leave out the fourth argument if no response is to be sent:
|
||||
["call", "setline", ["$", ["one", "two", "three"]]] ~
|
||||
|
||||
==============================================================================
|
||||
6. Using a RAW or NL channel *channel-raw*
|
||||
|
||||
If mode is RAW or NL then a message can be sent like this: >
|
||||
let response = ch_evalraw(channel, {string})
|
||||
|
||||
The {string} is sent as-is. The response will be what can be read from the
|
||||
channel right away. Since Vim doesn't know how to recognize the end of the
|
||||
message you need to take care of it yourself. The timeout applies for reading
|
||||
the first byte, after that it will not wait for anything more.
|
||||
|
||||
If mode is "nl" you can send a message in a similar way. You are expected
|
||||
to put in the NL after each message. Thus you can also send several messages
|
||||
ending in a NL at once. The response will be the text up to and including the
|
||||
first NL. This can also be just the NL for an empty response.
|
||||
If no NL was read before the channel timeout an empty string is returned.
|
||||
|
||||
To send a message, without expecting a response: >
|
||||
call ch_sendraw(channel, {string})
|
||||
The process can send back a response, the channel handler will be called with
|
||||
it.
|
||||
|
||||
To send a message and letting the response handled by a specific function,
|
||||
asynchronously: >
|
||||
call ch_sendraw(channel, {string}, {'callback': 'MyHandler'})
|
||||
|
||||
This {string} can also be JSON, use |json_encode()| to create it and
|
||||
|json_decode()| to handle a received JSON message.
|
||||
|
||||
It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel.
|
||||
|
||||
A String in Vim cannot contain NUL bytes. To send or receive NUL bytes read
|
||||
or write from a buffer. See |in_io-buffer| and |out_io-buffer|.
|
||||
|
||||
==============================================================================
|
||||
7. More channel functions *channel-more*
|
||||
|
||||
To obtain the status of a channel: ch_status(channel). The possible results
|
||||
are:
|
||||
"fail" Failed to open the channel.
|
||||
"open" The channel can be used.
|
||||
"buffered" The channel was closed but there is data to read.
|
||||
"closed" The channel was closed.
|
||||
|
||||
To obtain the job associated with a channel: ch_getjob(channel)
|
||||
|
||||
To read one message from a channel: >
|
||||
let output = ch_read(channel)
|
||||
This uses the channel timeout. To read without a timeout, just get any
|
||||
message that is available: >
|
||||
let output = ch_read(channel, {'timeout': 0})
|
||||
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()|
|
||||
to check if there is something to read.
|
||||
|
||||
Note that when there is no callback message are dropped. To avoid that add a
|
||||
close callback to the channel.
|
||||
|
||||
To read all output from a RAW channel that is available: >
|
||||
let output = ch_readraw(channel)
|
||||
To read the error output: >
|
||||
let output = ch_readraw(channel, {"part": "err"})
|
||||
|
||||
ch_read() and ch_readraw() use the channel timeout. When there is nothing to
|
||||
read within that time an empty string is returned. To specify a different
|
||||
timeout in msec use the "timeout" option:
|
||||
{"timeout": 123} ~
|
||||
To read from the error output use the "part" option:
|
||||
{"part": "err"} ~
|
||||
To read a message with a specific ID, on a JS or JSON channel:
|
||||
{"id": 99} ~
|
||||
When no ID is specified or the ID is -1, the first message is returned. This
|
||||
overrules any callback waiting for this message.
|
||||
|
||||
For a RAW channel this returns whatever is available, since Vim does not know
|
||||
where a message ends.
|
||||
For a NL channel this returns one message.
|
||||
For a JS or JSON channel this returns one decoded message.
|
||||
This includes any sequence number.
|
||||
|
||||
==============================================================================
|
||||
8. Starting a job with a channel *job-start* *job*
|
||||
|
||||
To start a job and open a channel for stdin/stdout/stderr: >
|
||||
let job = job_start(command, {options})
|
||||
|
||||
You can get the channel with: >
|
||||
let channel = job_getchannel(job)
|
||||
|
||||
The channel will use NL mode. If you want another mode it's best to specify
|
||||
this in {options}. When changing the mode later some text may have already
|
||||
been received and not parsed correctly.
|
||||
|
||||
If the command produces a line of output that you want to deal with, specify
|
||||
a handler for stdout: >
|
||||
let job = job_start(command, {"out_cb": "MyHandler"})
|
||||
The function will be called with the channel and a message. You would define
|
||||
it like this: >
|
||||
func MyHandler(channel, msg)
|
||||
|
||||
Without the handler you need to read the output with |ch_read()| or
|
||||
|ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|.
|
||||
|
||||
Note that if the job exits before you read the output, the output may be lost.
|
||||
This depends on the system (on Unix this happens because closing the write end
|
||||
of a pipe causes the read end to get EOF). To avoid this make the job sleep
|
||||
for a short while before it exits.
|
||||
|
||||
The handler defined for "out_cb" will not receive stderr. If you want to
|
||||
handle that separately, add an "err_cb" handler: >
|
||||
let job = job_start(command, {"out_cb": "MyHandler",
|
||||
\ "err_cb": "ErrHandler"})
|
||||
|
||||
If you want to handle both stderr and stdout with one handler use the
|
||||
"callback" option: >
|
||||
let job = job_start(command, {"callback": "MyHandler"})
|
||||
|
||||
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().
|
||||
|
||||
There are several options you can use, see |job-options|.
|
||||
For example, to start a job and write its output in buffer "dummy": >
|
||||
let logjob = job_start("tail -f /tmp/log",
|
||||
\ {'out_io': 'buffer', 'out_name': 'dummy'})
|
||||
sbuf dummy
|
||||
|
||||
|
||||
Job input from a buffer ~
|
||||
*in_io-buffer*
|
||||
To run a job that reads from a buffer: >
|
||||
let job = job_start({command},
|
||||
\ {'in_io': 'buffer', 'in_name': 'mybuffer'})
|
||||
<
|
||||
*E915* *E918*
|
||||
The buffer is found by name, similar to |bufnr()|. The buffer must exist and
|
||||
be loaded when job_start() is called.
|
||||
|
||||
By default this reads the whole buffer. This can be changed with the "in_top"
|
||||
and "in_bot" options.
|
||||
|
||||
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
|
||||
job stdin. This allows for editing the last line and sending it when pressing
|
||||
Enter.
|
||||
*channel-close-in*
|
||||
When not using the special mode the pipe or socket will be closed after the
|
||||
last line has been written. This signals the reading end that the input
|
||||
finished. You can also use |ch_close_in()| to close it sooner.
|
||||
|
||||
NUL bytes in the text will be passed to the job (internally Vim stores these
|
||||
as NL bytes).
|
||||
|
||||
|
||||
Reading job output in the close callback ~
|
||||
*read-in-close-cb*
|
||||
If the job can take some time and you don't need intermediate results, you can
|
||||
add a close callback and read the output there: >
|
||||
|
||||
func! CloseHandler(channel)
|
||||
while ch_status(a:channel, {'part': 'out'}) == 'buffered'
|
||||
echomsg ch_read(a:channel)
|
||||
endwhile
|
||||
endfunc
|
||||
let job = job_start(command, {'close_cb': 'CloseHandler'})
|
||||
|
||||
You will want to do something more useful than "echomsg".
|
||||
|
||||
==============================================================================
|
||||
9. Starting a job without a channel *job-start-nochannel*
|
||||
|
||||
To start another process without creating a channel: >
|
||||
let job = job_start(command,
|
||||
\ {"in_io": "null", "out_io": "null", "err_io": "null"})
|
||||
|
||||
This starts {command} in the background, Vim does not wait for it to finish.
|
||||
|
||||
When Vim sees that neither stdin, stdout or stderr are connected, no channel
|
||||
will be created. Often you will want to include redirection in the command to
|
||||
avoid it getting stuck.
|
||||
|
||||
There are several options you can use, see |job-options|.
|
||||
|
||||
*job-start-if-needed*
|
||||
To start a job only when connecting to an address does not work, do something
|
||||
like this: >
|
||||
let channel = ch_open(address, {"waittime": 0})
|
||||
if ch_status(channel) == "fail"
|
||||
let job = job_start(command)
|
||||
let channel = ch_open(address, {"waittime": 1000})
|
||||
endif
|
||||
|
||||
Note that the waittime for ch_open() gives the job one second to make the port
|
||||
available.
|
||||
|
||||
==============================================================================
|
||||
10. Job options *job-options*
|
||||
|
||||
The {options} argument in job_start() is a dictionary. All entries are
|
||||
optional. Some options can be used after the job has started, using
|
||||
job_setoptions(job, {options}). Many options can be used with the channel
|
||||
related to the job, using ch_setoptions(channel, {options}).
|
||||
See |job_setoptions()| and |ch_setoptions()|.
|
||||
|
||||
*in_mode* *out_mode* *err_mode*
|
||||
"in_mode" mode specifically for stdin, only when using pipes
|
||||
"out_mode" mode specifically for stdout, only when using pipes
|
||||
"err_mode" mode specifically for stderr, only when using pipes
|
||||
See |channel-mode| for the values.
|
||||
|
||||
Note: when setting "mode" the part specific mode is
|
||||
overwritten. Therefore set "mode" first and the part
|
||||
specific mode later.
|
||||
|
||||
Note: when writing to a file or buffer and when
|
||||
reading from a buffer NL mode is used by default.
|
||||
|
||||
*job-callback*
|
||||
"callback": handler Callback for something to read on any part of the
|
||||
channel.
|
||||
*job-out_cb* *out_cb*
|
||||
"out_cb": handler Callback for when there is something to read on
|
||||
stdout. Only for when the channel uses pipes. When
|
||||
"out_cb" wasn't set the channel callback is used.
|
||||
The two arguments are the channel and the message.
|
||||
|
||||
*job-err_cb* *err_cb*
|
||||
"err_cb": handler Callback for when there is something to read on
|
||||
stderr. Only for when the channel uses pipes. When
|
||||
"err_cb" wasn't set the channel callback is used.
|
||||
The two arguments are the channel and the message.
|
||||
*job-close_cb*
|
||||
"close_cb": handler Callback for when the channel is closed. Same as
|
||||
"close_cb" on |ch_open()|, see |close_cb|.
|
||||
*job-drop*
|
||||
"drop" Specifies when to drop messages. Same as "drop" on
|
||||
|ch_open()|, see |channel-drop|. For "auto" the
|
||||
exit_cb is not considered.
|
||||
*job-exit_cb*
|
||||
"exit_cb": handler Callback for when the job ends. The arguments are the
|
||||
job and the exit status.
|
||||
Vim checks up to 10 times per second for jobs that
|
||||
ended. The check can also be triggered by calling
|
||||
|job_status()|, which may then invoke the exit_cb
|
||||
handler.
|
||||
Note that data can be buffered, callbacks may still be
|
||||
called after the process ends.
|
||||
*job-timeout*
|
||||
"timeout" The time to wait for a request when blocking, E.g.
|
||||
when using ch_evalexpr(). In milliseconds. The
|
||||
default is 2000 (2 seconds).
|
||||
*out_timeout* *err_timeout*
|
||||
"out_timeout" Timeout for stdout. Only when using pipes.
|
||||
"err_timeout" Timeout for stderr. Only when using pipes.
|
||||
Note: when setting "timeout" the part specific mode is
|
||||
overwritten. Therefore set "timeout" first and the
|
||||
part specific mode later.
|
||||
|
||||
*job-stoponexit*
|
||||
"stoponexit": {signal} Send {signal} to the job when Vim exits. See
|
||||
|job_stop()| for possible values.
|
||||
"stoponexit": "" Do not stop the job when Vim exits.
|
||||
The default is "term".
|
||||
|
||||
*job-term*
|
||||
"term": "open" Start a terminal and connect the job
|
||||
stdin/stdout/stderr to it.
|
||||
NOTE: Not implemented yet!
|
||||
|
||||
"channel": {channel} Use an existing channel instead of creating a new one.
|
||||
The parts of the channel that get used for the new job
|
||||
will be disconnected from what they were used before.
|
||||
If the channel was still used by another job this may
|
||||
cause I/O errors.
|
||||
Existing callbacks and other settings remain.
|
||||
|
||||
*job-in_io* *in_top* *in_bot* *in_name* *in_buf*
|
||||
"in_io": "null" disconnect stdin (read from /dev/null)
|
||||
"in_io": "pipe" stdin is connected to the channel (default)
|
||||
"in_io": "file" stdin reads from a file
|
||||
"in_io": "buffer" stdin reads from a buffer
|
||||
"in_top": number when using "buffer": first line to send (default: 1)
|
||||
"in_bot": number when using "buffer": last line to send (default: last)
|
||||
"in_name": "/path/file" the name of the file or buffer to read from
|
||||
"in_buf": number the number of the buffer to read from
|
||||
|
||||
*job-out_io* *out_name* *out_buf*
|
||||
"out_io": "null" disconnect stdout (goes to /dev/null)
|
||||
"out_io": "pipe" stdout is connected to the channel (default)
|
||||
"out_io": "file" stdout writes to a file
|
||||
"out_io": "buffer" stdout appends to a buffer (see below)
|
||||
"out_name": "/path/file" the name of the file or buffer to write to
|
||||
"out_buf": number the number of the buffer to write to
|
||||
"out_modifiable": 0 when writing to a buffer, 'modifiable' will be off
|
||||
(see below)
|
||||
"out_msg": 0 when writing to a new buffer, the first line will be
|
||||
set to "Reading from channel output..."
|
||||
|
||||
*job-err_io* *err_name* *err_buf*
|
||||
"err_io": "out" stderr messages to go to stdout
|
||||
"err_io": "null" disconnect stderr (goes to /dev/null)
|
||||
"err_io": "pipe" stderr is connected to the channel (default)
|
||||
"err_io": "file" stderr writes to a file
|
||||
"err_io": "buffer" stderr appends to a buffer (see below)
|
||||
"err_name": "/path/file" the name of the file or buffer to write to
|
||||
"err_buf": number the number of the buffer to write to
|
||||
"err_modifiable": 0 when writing to a buffer, 'modifiable' will be off
|
||||
(see below)
|
||||
"err_msg": 0 when writing to a new buffer, the first line will be
|
||||
set to "Reading from channel error..."
|
||||
|
||||
"block_write": number only for testing: pretend every other write to stdin
|
||||
will block
|
||||
|
||||
|
||||
Writing to a buffer ~
|
||||
*out_io-buffer*
|
||||
When the out_io or err_io mode is "buffer" and there is a callback, the text
|
||||
is appended to the buffer before invoking the callback.
|
||||
|
||||
When a buffer is used both for input and output, the output lines are put
|
||||
above the last line, since the last line is what is written to the channel
|
||||
input. Otherwise lines are appended below the last line.
|
||||
|
||||
When using JS or JSON mode with "buffer", only messages with zero or negative
|
||||
ID will be added to the buffer, after decoding + encoding. Messages with a
|
||||
positive number will be handled by a callback, commands are handled as usual.
|
||||
|
||||
The name of the buffer from "out_name" or "err_name" is compared the full name
|
||||
of existing buffers, also after expanding the name for the current directory.
|
||||
E.g., when a buffer was created with ":edit somename" and the buffer name is
|
||||
"somename" it will use that buffer.
|
||||
|
||||
If there is no matching buffer a new buffer is created. Use an empty name to
|
||||
always create a new buffer. |ch_getbufnr()| can then be used to get the
|
||||
buffer number.
|
||||
|
||||
For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If
|
||||
you prefer other settings, create the buffer first and pass the buffer number.
|
||||
*out_modifiable* *err_modifiable*
|
||||
The "out_modifiable" and "err_modifiable" options can be used to set the
|
||||
'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.
|
||||
*out_msg* *err_msg*
|
||||
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
|
||||
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
|
||||
"out_modifiable" or "err_modifiable" options is not zero, an error is given
|
||||
and the buffer will not be written to.
|
||||
|
||||
When the buffer written to is displayed in a window and the cursor is in the
|
||||
first column of the last line, the cursor will be moved to the newly added
|
||||
line and the window is scrolled up to show the cursor if needed.
|
||||
|
||||
Undo is synced for every added line. NUL bytes are accepted (internally Vim
|
||||
stores these as NL bytes).
|
||||
|
||||
|
||||
Writing to a file ~
|
||||
*E920*
|
||||
The file is created with permissions 600 (read-write for the user, not
|
||||
accessible for others). Use |setfperm()| to change this.
|
||||
|
||||
If the file already exists it is truncated.
|
||||
|
||||
==============================================================================
|
||||
11. Controlling a job *job-control*
|
||||
|
||||
To get the status of a job: >
|
||||
echo job_status(job)
|
||||
|
||||
To make a job stop running: >
|
||||
job_stop(job)
|
||||
|
||||
This is the normal way to end a job. On Unix it sends a SIGTERM to the job.
|
||||
It is possible to use other ways to stop the job, or even send arbitrary
|
||||
signals. E.g. to force a job to stop, "kill it": >
|
||||
job_stop(job, "kill")
|
||||
|
||||
For more options see |job_stop()|.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
|
||||
*cmdline.txt* For Vim version 8.0. Last change: 2016 Sep 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -229,9 +229,10 @@ CTRL-Y When there is a modeless selection, copy the selection into
|
||||
the clipboard. |modeless-selection|
|
||||
If there is no selection CTRL-Y is inserted as a character.
|
||||
|
||||
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||
CTRL-M or CTRL-J *c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||
<CR> or <NL> start entered command
|
||||
*c_<Esc>* *c_Esc*
|
||||
|
||||
CTRL-[ *c_CTRL-[* *c_<Esc>* *c_Esc*
|
||||
<Esc> When typed and 'x' not present in 'cpoptions', quit
|
||||
Command-line mode without executing. In macros or when 'x'
|
||||
present in 'cpoptions', start entered command.
|
||||
@ -358,8 +359,11 @@ terminals)
|
||||
List entries 6 to 12 from the search history: >
|
||||
:history / 6,12
|
||||
<
|
||||
List the recent five entries from all histories: >
|
||||
:history all -5,
|
||||
List the penultimate entry from all histories: >
|
||||
:history all -2
|
||||
<
|
||||
List the most recent two entries from all histories: >
|
||||
:history all -2,
|
||||
|
||||
:keepp[atterns] {command} *:keepp* *:keeppatterns*
|
||||
Execute {command}, without adding anything to the search
|
||||
@ -423,12 +427,26 @@ CTRL-L A match is done on the pattern in front of the cursor. If
|
||||
If there are multiple matches the longest common part is
|
||||
inserted in place of the pattern. If the result is shorter
|
||||
than the pattern, no completion is done.
|
||||
*/_CTRL-L*
|
||||
When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-L will add
|
||||
one character from the end of the current match. If
|
||||
'ignorecase' and 'smartcase' are set and the command line has
|
||||
no uppercase characters, the added character is converted to
|
||||
lowercase.
|
||||
*c_CTRL-G* */_CTRL-G*
|
||||
CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-G will move
|
||||
to the next match (does not take |search-offset| into account)
|
||||
Use CTRL-T to move to the previous match. Hint: on a regular
|
||||
keyboard T is above G.
|
||||
*c_CTRL-T* */_CTRL-T*
|
||||
CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-T will move
|
||||
to the previous match (does not take |search-offset| into
|
||||
account).
|
||||
Use CTRL-G to move to the next match. Hint: on a regular
|
||||
keyboard T is above G.
|
||||
|
||||
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
|
||||
a previous version <Esc> was used). In the pattern standard wildcards '*' and
|
||||
@ -1042,10 +1060,10 @@ There are several ways to leave the command-line window:
|
||||
Insert and in Normal mode.
|
||||
CTRL-C Continue in Command-line mode. The command-line under the
|
||||
cursor is used as the command-line. Works both in Insert and
|
||||
in Normal mode. ":close" also works. There is no redraw,
|
||||
thus the window will remain visible.
|
||||
in Normal mode. There is no redraw, thus the window will
|
||||
remain visible.
|
||||
:quit Discard the command line and go back to Normal mode.
|
||||
":exit", ":xit" and CTRL-\ CTRL-N also work.
|
||||
":close", ":exit", ":xit" and CTRL-\ CTRL-N also work.
|
||||
:qall Quit Vim, unless there are changes in some buffer.
|
||||
:qall! Quit Vim, discarding changes to any buffer.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*debug.txt* For Vim version 7.4. Last change: 2012 Feb 11
|
||||
*debug.txt* For Vim version 8.0. Last change: 2012 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@ -1,4 +1,4 @@
|
||||
*debugger.txt* For Vim version 7.4. Last change: 2005 Mar 29
|
||||
*debugger.txt* For Vim version 8.0. Last change: 2005 Mar 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
|
@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 7.4. Last change: 2014 Mar 27
|
||||
*develop.txt* For Vim version 8.0. Last change: 2017 Jan 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -166,12 +166,27 @@ This list is not complete. Look in the source code for more examples.
|
||||
MAKING CHANGES *style-changes*
|
||||
|
||||
The basic steps to make changes to the code:
|
||||
1. Adjust the documentation. Doing this first gives you an impression of how
|
||||
1. Get the code from github. That makes it easier to keep your changed
|
||||
version in sync with the main code base (it may be a while before your
|
||||
changes will be included). You do need to spend some time learning git,
|
||||
it's not the most user friendly tool.
|
||||
2. Adjust the documentation. Doing this first gives you an impression of how
|
||||
your changes affect the user.
|
||||
2. Make the source code changes.
|
||||
3. Check ../doc/todo.txt if the change affects any listed item.
|
||||
4. Make a patch with "diff -c" against the unmodified code and docs.
|
||||
5. Make a note about what changed and include it with the patch.
|
||||
3. Make the source code changes.
|
||||
4. Check ../doc/todo.txt if the change affects any listed item.
|
||||
5. Make a patch with "git diff". You can also create a pull request on
|
||||
github, but it's the diff that matters.
|
||||
6. Make a note about what changed, preferably mentioning the problem and the
|
||||
solution. Send an email to the |vim-dev| maillist with an explanation and
|
||||
include the diff. Or create a pull request on github.
|
||||
|
||||
|
||||
C COMPILER *style-compiler*
|
||||
|
||||
The minimal C compiler version supported is C89, also known as ANSI C.
|
||||
Later standards don't add much and C89 is the widest supported.
|
||||
|
||||
One restriction that this implies: no // comments, only /* comments */.
|
||||
|
||||
|
||||
USE OF COMMON FUNCTIONS *style-functions*
|
||||
@ -197,7 +212,7 @@ NAMES *style-names*
|
||||
|
||||
Function names can not be more than 31 characters long (because of VMS).
|
||||
|
||||
Don't use "delete" as a variable name, C++ doesn't like it.
|
||||
Don't use "delete" or "this" as a variable name, C++ doesn't like it.
|
||||
|
||||
Because of the requirement that Vim runs on as many systems as possible, we
|
||||
need to avoid using names that are already defined by the system. This is a
|
||||
@ -288,8 +303,27 @@ OK: do
|
||||
a = 1;
|
||||
while (cond);
|
||||
|
||||
Wrong: if (cond) {
|
||||
cmd;
|
||||
cmd;
|
||||
} else {
|
||||
cmd;
|
||||
cmd;
|
||||
}
|
||||
|
||||
Functions start with:
|
||||
OK: if (cond)
|
||||
{
|
||||
cmd;
|
||||
cmd;
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd;
|
||||
cmd;
|
||||
}
|
||||
|
||||
Use ANSI (new style) function declarations with the return type on a separate
|
||||
indented line.
|
||||
|
||||
Wrong: int function_name(int arg1, int arg2)
|
||||
|
||||
@ -299,16 +333,14 @@ OK: /*
|
||||
* Return value explanation.
|
||||
*/
|
||||
int
|
||||
function_name(arg1, arg2)
|
||||
int arg1; /* short comment about arg1 */
|
||||
int arg2; /* short comment about arg2 */
|
||||
function_name(
|
||||
int arg1, /* short comment about arg1 */
|
||||
int arg2) /* short comment about arg2 */
|
||||
{
|
||||
int local; /* comment about local */
|
||||
|
||||
local = arg1 * arg2;
|
||||
|
||||
NOTE: Don't use ANSI style function declarations. A few people still have to
|
||||
use a compiler that doesn't support it.
|
||||
|
||||
|
||||
SPACES AND PUNCTUATION *style-spaces*
|
||||
|
@ -1,12 +1,12 @@
|
||||
*diff.txt* For Vim version 7.4. Last change: 2015 Nov 01
|
||||
*diff.txt* For Vim version 8.0. Last change: 2016 Aug 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
*diff* *vimdiff* *gvimdiff* *diff-mode*
|
||||
This file describes the |+diff| feature: Showing differences between two,
|
||||
three or four versions of the same file.
|
||||
This file describes the |+diff| feature: Showing differences between two to
|
||||
eight versions of the same file.
|
||||
|
||||
The basics are explained in section |08.7| of the user manual.
|
||||
|
||||
@ -117,7 +117,7 @@ To make these commands use a vertical split, prepend |:vertical|. Examples: >
|
||||
If you always prefer a vertical split include "vertical" in 'diffopt'.
|
||||
|
||||
*E96*
|
||||
There can be up to four buffers with 'diff' set.
|
||||
There can be up to eight buffers with 'diff' set.
|
||||
|
||||
Since the option values are remembered with the buffer, you can edit another
|
||||
file for a moment and come back to the same file and be in diff mode again.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*digraph.txt* For Vim version 7.4. Last change: 2014 Jun 19
|
||||
*digraph.txt* For Vim version 8.0. Last change: 2016 Nov 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -147,7 +147,7 @@ a standard meaning:
|
||||
Two 2 Hook
|
||||
Nine 9 Horn
|
||||
|
||||
Equals = Cyrillic (= used as second char)
|
||||
Equals = Cyrillic (= used as second char)
|
||||
Asterisk * Greek
|
||||
Percent sign % Greek/Cyrillic special
|
||||
Plus + smalls: Arabic, capitals: Hebrew
|
||||
@ -926,6 +926,7 @@ char digraph hex dec official name ~
|
||||
† /- 2020 8224 DAGGER
|
||||
‡ /= 2021 8225 DOUBLE DAGGER
|
||||
‥ .. 2025 8229 TWO DOT LEADER
|
||||
… ,. 2026 8230 HORIZONTAL ELLIPSIS
|
||||
‰ %0 2030 8240 PER MILLE SIGN
|
||||
′ 1' 2032 8242 PRIME
|
||||
″ 2' 2033 8243 DOUBLE PRIME
|
||||
|
@ -14,9 +14,7 @@
|
||||
#define LINELEN 200
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char line[LINELEN];
|
||||
char *p1, *p2;
|
||||
|
@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 7.4. Last change: 2015 Aug 25
|
||||
*editing.txt* For Vim version 8.0. Last change: 2016 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -78,7 +78,9 @@ g CTRL-G Prints the current position of the cursor in five
|
||||
than one position on the screen (<Tab> or special
|
||||
character), both the "real" column and the screen
|
||||
column are shown, separated with a dash.
|
||||
See also 'ruler' option. {not in Vi}
|
||||
Also see the 'ruler' option and the |wordcount()|
|
||||
function.
|
||||
{not in Vi}
|
||||
|
||||
*v_g_CTRL-G*
|
||||
{Visual}g CTRL-G Similar to "g CTRL-G", but Word, Character, Line, and
|
||||
@ -179,7 +181,8 @@ start editing another file, Vim will refuse this. In order to overrule this
|
||||
protection, add a '!' to the command. The changes will then be lost. For
|
||||
example: ":q" will not work if the buffer was changed, but ":q!" will. To see
|
||||
whether the buffer was changed use the "CTRL-G" command. The message includes
|
||||
the string "[Modified]" if the buffer has been changed.
|
||||
the string "[Modified]" if the buffer has been changed, or "+" if the 'm' flag
|
||||
is in 'shortmess'.
|
||||
|
||||
If you want to automatically save the changes without asking, switch on the
|
||||
'autowriteall' option. 'autowrite' is the associated Vi-compatible option
|
||||
@ -391,7 +394,7 @@ These are the common ones:
|
||||
To avoid the special meaning of the wildcards prepend a backslash. However,
|
||||
on MS-Windows the backslash is a path separator and "path\[abc]" is still seen
|
||||
as a wildcard when "[" is in the 'isfname' option. A simple way to avoid this
|
||||
is to use "path\[[]abc]". Then the file "path[abc]" literally.
|
||||
is to use "path\[[]abc]", this matches the file "path\[abc]".
|
||||
|
||||
*starstar-wildcard*
|
||||
Expanding "**" is possible on Unix, Win32, Mac OS/X and a few other systems.
|
||||
@ -401,16 +404,21 @@ Note there are some commands where this works slightly differently, see
|
||||
Example: >
|
||||
:n **/*.txt
|
||||
Finds files:
|
||||
ttt.txt
|
||||
subdir/ttt.txt
|
||||
a/b/c/d/ttt.txt
|
||||
When non-wildcard characters are used these are only matched in the first
|
||||
directory. Example: >
|
||||
:n /usr/inc**/*.h
|
||||
aaa.txt ~
|
||||
subdir/bbb.txt ~
|
||||
a/b/c/d/ccc.txt ~
|
||||
When non-wildcard characters are used right before or after "**" these are
|
||||
only matched in the top directory. They are not used for directories further
|
||||
down in the tree. For example: >
|
||||
:n /usr/inc**/types.h
|
||||
Finds files:
|
||||
/usr/include/types.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/inc_old/types.h
|
||||
/usr/include/types.h ~
|
||||
/usr/include/sys/types.h ~
|
||||
/usr/inc/old/types.h ~
|
||||
Note that the path with "/sys" is included because it does not need to match
|
||||
"/inc". Thus it's like matching "/usr/inc*/*/*...", not
|
||||
"/usr/inc*/inc*/inc*".
|
||||
|
||||
*backtick-expansion* *`-expansion*
|
||||
On Unix and a few other systems you can also use backticks for the file name
|
||||
argument, for example: >
|
||||
@ -637,6 +645,7 @@ list of the current window.
|
||||
:0argadd x x a b c
|
||||
:1argadd x a x b c
|
||||
:$argadd x a b c x
|
||||
And after the last one:
|
||||
:+2argadd y a b c x y
|
||||
There is no check for duplicates, it is possible to
|
||||
add a file to the argument list twice.
|
||||
@ -968,12 +977,12 @@ WRITING WITH MULTIPLE BUFFERS *buffer-write*
|
||||
|
||||
*:wa* *:wall*
|
||||
:wa[ll] Write all changed buffers. Buffers without a file
|
||||
name or which are readonly are not written. {not in
|
||||
Vi}
|
||||
name cause an error message. Buffers which are
|
||||
readonly are not written. {not in Vi}
|
||||
|
||||
:wa[ll]! Write all changed buffers, even the ones that are
|
||||
readonly. Buffers without a file name are not
|
||||
written. {not in Vi}
|
||||
written and cause an error message. {not in Vi}
|
||||
|
||||
|
||||
Vim will warn you if you try to overwrite a file that has been changed
|
||||
@ -1008,7 +1017,7 @@ the newly written file (it might be there but contain bogus data). In that
|
||||
case try recovery, because the swap file is synced to disk and might still be
|
||||
there. |:recover|
|
||||
|
||||
The directories given with the 'backupdir' option is used to put the backup
|
||||
The directories given with the 'backupdir' option are used to put the backup
|
||||
file in. (default: same directory as the written file).
|
||||
|
||||
Whether the backup is a new file, which is a copy of the original file, or the
|
||||
@ -1105,11 +1114,13 @@ The names can be in upper- or lowercase.
|
||||
the last file in the argument list has not been
|
||||
edited. See |:confirm| and 'confirm'. {not in Vi}
|
||||
|
||||
:q[uit]! Quit without writing, also when currently visible
|
||||
buffers have changes. Does not exit when this is the
|
||||
last window and there is a changed hidden buffer.
|
||||
In this case, the first changed hidden buffer becomes
|
||||
the current buffer.
|
||||
:q[uit]! Quit without writing, also when the current buffer has
|
||||
changes. The buffer is unloaded, also when it has
|
||||
'hidden' set.
|
||||
If this is the last window and there is a modified
|
||||
hidden buffer, the current buffer is abandoned and the
|
||||
first changed hidden buffer becomes the current
|
||||
buffer.
|
||||
Use ":qall!" to exit always.
|
||||
|
||||
:cq[uit] Quit always, without writing, and return an error
|
||||
@ -1213,7 +1224,7 @@ Examples: >
|
||||
|
||||
If you want to always use ":confirm", set the 'confirm' option.
|
||||
|
||||
*:browse* *:bro* *E338* *E614* *E615* *E616* *E578*
|
||||
*:browse* *:bro* *E338* *E614* *E615* *E616*
|
||||
:bro[wse] {command} Open a file selection dialog for an argument to
|
||||
{command}. At present this works for |:e|, |:w|,
|
||||
|:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
|
||||
@ -1456,6 +1467,18 @@ using zip, "[blowfish]" when using blowfish, etc.
|
||||
When writing an undo file, the same key and method will be used for the text
|
||||
in the undo file. |persistent-undo|.
|
||||
|
||||
To test for blowfish support you can use these conditions: >
|
||||
has('crypt-blowfish')
|
||||
has('crypt-blowfish2')
|
||||
This works since Vim 7.4.1099 while blowfish support was added earlier.
|
||||
Thus the condition failing doesn't mean blowfish is not supported. You can
|
||||
test for blowfish with: >
|
||||
v:version >= 703
|
||||
And for blowfish2 with: >
|
||||
v:version > 704 || (v:version == 704 && has('patch401'))
|
||||
If you are sure Vim includes patch 7.4.237 a simpler check is: >
|
||||
has('patch-7.4.401')
|
||||
<
|
||||
*E817* *E818* *E819* *E820*
|
||||
When encryption does not work properly, you would be able to write your text
|
||||
to a file and never be able to read it back. Therefore a test is performed to
|
||||
|
2899
runtime/doc/eval.txt
2899
runtime/doc/eval.txt
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
*farsi.txt* For Vim version 7.4. Last change: 2015 Aug 29
|
||||
*farsi.txt* For Vim version 8.0. Last change: 2015 Aug 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
|
||||
|
@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2015 Dec 06
|
||||
*filetype.txt* For Vim version 8.0. Last change: 2017 Jan 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -573,18 +573,64 @@ Man {number} {name}
|
||||
|
||||
Global mapping:
|
||||
<Leader>K Displays the manual page for the word under the cursor.
|
||||
<Plug>ManPreGetPage idem, allows for using a mapping: >
|
||||
nmap <F1> <Plug>ManPreGetPage<CR>
|
||||
|
||||
Local mappings:
|
||||
CTRL-] Jump to the manual page for the word under the cursor.
|
||||
CTRL-T Jump back to the previous manual page.
|
||||
q Same as ":quit"
|
||||
|
||||
To use a vertical split instead of horizontal: >
|
||||
let g:ft_man_open_mode = 'vert'
|
||||
To use a new tab: >
|
||||
let g:ft_man_open_mode = 'tab'
|
||||
|
||||
To enable folding use this: >
|
||||
let g:ft_man_folding_enable = 1
|
||||
If you do not like the default folding, use an autocommand to add your desired
|
||||
folding style instead. For example: >
|
||||
autocmd FileType man setlocal foldmethod=indent foldenable
|
||||
|
||||
You may also want to set 'keywordprg' to make the |K| command open a manual
|
||||
page in a Vim window: >
|
||||
set keywordprg=:Man
|
||||
|
||||
|
||||
MANPAGER *manpager.vim*
|
||||
|
||||
The :Man command allows you to turn Vim into a manpager (that syntax highlights
|
||||
manpages and follows linked manpages on hitting CTRL-]).
|
||||
|
||||
Works on:
|
||||
|
||||
- Linux
|
||||
- Mac OS
|
||||
- FreeBSD
|
||||
- Cygwin
|
||||
- Win 10 under Bash
|
||||
|
||||
Untested:
|
||||
|
||||
- Amiga OS
|
||||
- BeOS
|
||||
- OS/2
|
||||
|
||||
For bash,zsh,ksh or dash by adding to the config file (.bashrc,.zshrc, ...)
|
||||
|
||||
export MANPAGER="env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
For (t)csh by adding to the config file
|
||||
|
||||
setenv MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
For fish by adding to the config file
|
||||
|
||||
set -x MANPAGER "env MAN_PN=1 vim -M +MANPAGER -"
|
||||
|
||||
If man sets the $MAN_PN environment variable, like man-db, the most common
|
||||
implementation on Linux and Mac OS, then the "env MAN_PN=1 " part above is
|
||||
superfluous.
|
||||
|
||||
PDF *ft-pdf-plugin*
|
||||
|
||||
@ -600,6 +646,17 @@ These maps can be disabled with >
|
||||
:let g:no_pdf_maps = 1
|
||||
<
|
||||
|
||||
PYTHON *ft-python-plugin* *PEP8*
|
||||
|
||||
By default the following options are set, in accordance with PEP8: >
|
||||
|
||||
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
|
||||
|
||||
To disable this behaviour, set the following variable in your vimrc: >
|
||||
|
||||
let g:python_recommended_style = 0
|
||||
|
||||
|
||||
RPM SPEC *ft-spec-plugin*
|
||||
|
||||
Since the text for this plugin is rather long it has been put in a separate
|
||||
|
@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 7.4. Last change: 2016 Jan 02
|
||||
*fold.txt* For Vim version 8.0. Last change: 2016 Jan 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@ -1,4 +1,4 @@
|
||||
*ft_ada.txt* For Vim version 7.4. Last change: 2010 Jul 20
|
||||
*ft_ada.txt* For Vim version 8.0. Last change: 2010 Jul 20
|
||||
|
||||
|
||||
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
|
||||
|
@ -1,4 +1,4 @@
|
||||
*ft_sql.txt* For Vim version 7.4. Last change: 2013 May 15
|
||||
*ft_sql.txt* For Vim version 8.0. Last change: 2013 May 15
|
||||
|
||||
by David Fishburn
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 7.4. Last change: 2014 Mar 08
|
||||
*gui.txt* For Vim version 8.0. Last change: 2014 Mar 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -25,7 +25,7 @@ Other GUI documentation:
|
||||
|
||||
First you must make sure you actually have a version of Vim with the GUI code
|
||||
included. You can check this with the ":version" command, it says "with xxx
|
||||
GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK, GTK2, etc., or
|
||||
GUI", where "xxx" is X11-Motif, X11-Athena, Photon, GTK2, GTK3, etc., or
|
||||
"MS-Windows 32 bit GUI version".
|
||||
|
||||
How to start the GUI depends on the system used. Mostly you can run the
|
||||
@ -514,11 +514,14 @@ a menu entry. Hit <Enter> to execute it. Hit <Esc> if you want to cancel.
|
||||
This does require the |+menu| feature enabled at compile time.
|
||||
|
||||
*tear-off-menus*
|
||||
GTK+ and Motif support Tear-off menus. These are sort of sticky menus or
|
||||
GTK+ 2 and Motif support Tear-off menus. These are sort of sticky menus or
|
||||
pop-up menus that are present all the time. If the resizing does not work
|
||||
correctly, this may be caused by using something like "Vim*geometry" in the
|
||||
defaults. Use "Vim.geometry" instead.
|
||||
|
||||
As to GTK+ 3, tear-off menus have been deprecated since GTK+ 3.4.
|
||||
Accordingly, they are disabled if gvim is linked against GTK+ 3.4 or later.
|
||||
|
||||
The Win32 GUI version emulates Motif's tear-off menus. Actually, a Motif user
|
||||
will spot the differences easily, but hopefully they're just as useful. You
|
||||
can also use the |:tearoff| command together with |hidden-menus| to create
|
||||
@ -650,8 +653,8 @@ When no or zero priority is given, 500 is used.
|
||||
The priority for the PopUp menu is not used.
|
||||
|
||||
The Help menu will be placed on the far right side of the menu bar on systems
|
||||
which support this (Motif and GTK+). For GTK+ 2, this is not done anymore
|
||||
because right-aligning the Help menu is now discouraged UI design.
|
||||
which support this (Motif and GTK+). For GTK+ 2 and 3, this is not done
|
||||
anymore because right-aligning the Help menu is now discouraged UI design.
|
||||
|
||||
You can use a priority higher than 9999, to make it go after the Help menu,
|
||||
but that is non-standard and is discouraged. The highest possible priority is
|
||||
|
@ -1,186 +0,0 @@
|
||||
*gui_w16.txt* For Vim version 7.4. Last change: 2005 Mar 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
Vim's Graphical User Interface *gui-w16* *win16-gui*
|
||||
|
||||
1. Starting the GUI |win16-start|
|
||||
2. Vim as default editor |win16-default-editor|
|
||||
3. Using the clipboard |win16-clipboard|
|
||||
4. Shell Commands |win16-shell|
|
||||
5. Special colors |win16-colors|
|
||||
6. Windows dialogs & browsers |win16-dialogs|
|
||||
7. Various |win16-various|
|
||||
|
||||
Other relevant documentation:
|
||||
|gui.txt| For generic items of the GUI.
|
||||
|os_msdos.txt| For items common to DOS and Windows.
|
||||
|gui_w32.txt| Some items here are also applicable to the Win16 version.
|
||||
|
||||
{Vi does not have a Windows GUI}
|
||||
|
||||
The Win16 version of Vim will run on Windows 3.1 or later. It has not been
|
||||
tested on 3.0, it probably won't work without being recompiled and
|
||||
modified. (But you really should upgrade to 3.11 anyway. :)
|
||||
|
||||
In most respects it behaves identically to the Win32 GUI version, including
|
||||
having a flat-style toolbar(!). The chief differences:
|
||||
|
||||
1) Bold/Italic text is not available, to speed up repaint/reduce resource
|
||||
usage. (You can re-instate this by undefining MSWIN16_FASTTEXT.)
|
||||
2) No tearoff menu emulation.
|
||||
3) No OLE interface.
|
||||
4) No long filename support (of course).
|
||||
5) No tooltips on toolbar buttons - instead they produce command-line tips
|
||||
like menu items do.
|
||||
6) Line length limited to 32767 characters (like 16-bit DOS version).
|
||||
|
||||
|
||||
==============================================================================
|
||||
1. Starting the GUI *win16-start*
|
||||
|
||||
The Win16 GUI version of Vim will always start the GUI, no matter how you
|
||||
start it or what it's called. There is no 'console' version as such, but you
|
||||
can use one of the DOS versions in a DOS box.
|
||||
|
||||
The Win16 GUI has an extra menu item: "Window/Select Font". It brings up the
|
||||
standard Windows font selector. Note that bold and italic fonts are not
|
||||
supported in an attempt to maximize GDI drawing speed.
|
||||
|
||||
Setting the menu height doesn't work for the Win16 GUI.
|
||||
|
||||
*win16-maximized*
|
||||
If you want Vim to start with a maximized window, add this command to your
|
||||
vimrc or gvimrc file: >
|
||||
au GUIEnter * simalt ~x
|
||||
<
|
||||
|
||||
There is a specific version of gvim.exe that runs under the Win32s subsystem
|
||||
of Windows 3.1 or 3.11. See |win32s|.
|
||||
|
||||
==============================================================================
|
||||
2. Vim as default editor *win16-default-editor*
|
||||
|
||||
To set Vim as the default editor for a file type you can use File Manager's
|
||||
"Associate" feature.
|
||||
|
||||
When you open a file in Vim by double clicking it, Vim changes to that
|
||||
file's directory.
|
||||
|
||||
See also |notepad|.
|
||||
|
||||
==============================================================================
|
||||
3. Using the clipboard *win16-clipboard*
|
||||
|
||||
Windows has a clipboard, where you can copy text to, and paste text from. Vim
|
||||
supports this in several ways.
|
||||
The clipboard works in the same way as the Win32 version: see |gui-clipboard|.
|
||||
|
||||
==============================================================================
|
||||
4. Shell Commands *win16-shell*
|
||||
|
||||
Vim spawns a DOS window for external commands, to make it possible to run any
|
||||
DOS command. The window uses the _default.pif settings.
|
||||
|
||||
*win16-!start*
|
||||
Normally, Vim waits for a command to complete before continuing (this makes
|
||||
sense for most shell commands which produce output for Vim to use). If you
|
||||
want Vim to start a program and return immediately, you can use the following
|
||||
syntax:
|
||||
:!start {command}
|
||||
This may only work for a Windows program though.
|
||||
Don't forget that you must tell Windows 3.1x to keep executing a DOS command
|
||||
in the background while you switch back to Vim.
|
||||
|
||||
==============================================================================
|
||||
5. Special colors *win16-colors*
|
||||
|
||||
On Win16, the normal DOS colors can be used. See |dos-colors|.
|
||||
|
||||
Additionally the system configured colors can also be used. These are known
|
||||
by the names Sys_XXX, where XXX is the appropriate system color name, from the
|
||||
following list (see the Win32 documentation for full descriptions). Case is
|
||||
ignored.
|
||||
|
||||
Sys_BTNFace Sys_BTNShadow Sys_ActiveBorder
|
||||
Sys_ActiveCaption Sys_AppWorkspace Sys_Background
|
||||
Sys_BTNText Sys_CaptionText Sys_GrayText
|
||||
Sys_Highlight Sys_HighlightText Sys_InactiveBorder
|
||||
Sys_InactiveCaption Sys_InactiveCaptionText Sys_Menu
|
||||
Sys_MenuText Sys_ScrollBar Sys_Window
|
||||
Sys_WindowFrame Sys_WindowText
|
||||
|
||||
Probably the most useful values are
|
||||
Sys_Window Normal window background
|
||||
Sys_WindowText Normal window text
|
||||
Sys_Highlight Highlighted background
|
||||
Sys_HighlightText Highlighted text
|
||||
|
||||
These extra colors are also available:
|
||||
Gray, Grey, LightYellow, SeaGreen, Orange, Purple, SlateBlue, Violet,
|
||||
|
||||
|
||||
See also |rgb.txt|.
|
||||
|
||||
==============================================================================
|
||||
*win16-dialogs*
|
||||
6. Windows dialogs & browsers
|
||||
|
||||
The Win16 GUI can use familiar Windows components for some operations, as well
|
||||
as the traditional interface shared with the console version.
|
||||
|
||||
|
||||
6.1 Dialogs
|
||||
|
||||
The dialogs displayed by the "confirm" family (i.e. the 'confirm' option,
|
||||
|:confirm| command and |confirm()| function) are GUI-based rather than the
|
||||
console-based ones used by other versions. There is no option to change this.
|
||||
|
||||
|
||||
6.2 File Browsers
|
||||
|
||||
When prepending ":browse" before file editing commands, a file requester is
|
||||
used to allow you to select an existing file. See |:browse|.
|
||||
|
||||
|
||||
==============================================================================
|
||||
7. Various *win16-various*
|
||||
|
||||
*win16-printing*
|
||||
The "File/Print" menu uses Notepad to print the current buffer. This is a bit
|
||||
clumsy, but it's portable. If you want something else, you can define your
|
||||
own print command. For example, you could look for the 16-bit version of
|
||||
PrintFile. See $VIMRUNTIME/menu.vim for how it works by default.
|
||||
|
||||
Using this should also work: >
|
||||
:w >>prn
|
||||
|
||||
Vim supports a number of standard MS Windows features. Some of these are
|
||||
detailed elsewhere: see |'mouse'|, |win32-hidden-menus|.
|
||||
Also see |:simalt|
|
||||
|
||||
*win16-drag-n-drop*
|
||||
You can drag and drop one or more files into the vim window, where they will
|
||||
be opened as normal. If you hold down Shift while doing this, Vim changes to
|
||||
the (first) dropped file's directory. If you hold Ctrl, Vim will always split
|
||||
a new window for the file. Otherwise it's only done if the current buffer has
|
||||
been changed.
|
||||
You can also drop a directory's icon, but rather than open all files in the
|
||||
directory (which wouldn't usually be what you want) Vim instead changes to
|
||||
that directory and begins a new file.
|
||||
If Vim happens to be editing a command line, the names of the dropped files
|
||||
and directories will be inserted at the cursor. This allows you to use these
|
||||
names with any Ex command.
|
||||
|
||||
*win16-truetype*
|
||||
It is recommended that you use a raster font and not a TrueType
|
||||
fixed-pitch font. E.g. use Courier, not Courier New. This is not just
|
||||
to use less resources but because there are subtle bugs in the
|
||||
handling of fixed-pitch TrueType in Win3.1x. In particular, when you move
|
||||
a block cursor over a pipe character '|', the cursor is drawn in the wrong
|
||||
size and bits get left behind. This is a bug in the Win3.1x GDI, it doesn't
|
||||
happen if you run the exe under 95/NT.
|
||||
|
||||
vim:tw=78:sw=4:ts=8:ft=help:norl:
|
@ -1,4 +1,4 @@
|
||||
*gui_w32.txt* For Vim version 7.4. Last change: 2014 Dec 20
|
||||
*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -49,10 +49,6 @@ If you want Vim to start with a maximized window, add this command to your
|
||||
vimrc or gvimrc file: >
|
||||
au GUIEnter * simalt ~x
|
||||
<
|
||||
*gui-w32s*
|
||||
There is a specific version of gvim.exe that runs under the Win32s subsystem
|
||||
of Windows 3.1 or 3.11. See |win32s|.
|
||||
|
||||
|
||||
Using Vim as a plugin *gui-w32-windowid*
|
||||
|
||||
@ -100,9 +96,10 @@ when you have got a new version):
|
||||
You can also install Vim in the "Send To" menu:
|
||||
1. Start a Windows Explorer
|
||||
2. Navigate to your sendto directory:
|
||||
Windows 95: %windir%\sendto (e.g. "c:\windows\sendto")
|
||||
Windows NT: %windir%\profiles\%user%\sendto (e.g.
|
||||
"c:\winnt\profiles\mattha\sendto").
|
||||
"c:\winnt\profiles\mattha\sendto")
|
||||
Windows XP: C:\Documents and Settings\%user%\SendTo
|
||||
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
|
||||
3. Right-click in the file pane and select New->Shortcut
|
||||
4. Follow the shortcut wizard, using the full path to VIM/GVIM.
|
||||
|
||||
@ -274,35 +271,17 @@ WARNING: If you close this window with the "X" button, and confirm the
|
||||
question if you really want to kill the application, Vim may be killed too!
|
||||
(This does not apply to commands run asynchronously with ":!start".)
|
||||
|
||||
In Windows 95, the window in which the commands are executed is always 25x80
|
||||
characters, to be as DOS compatible as possible (this matters!). The default
|
||||
system font is used. On NT, the window will be the default you have set up for
|
||||
"Console" in Control Panel. On Win32s, the properties of the DOS box are
|
||||
determined by _default.pif in the windows directory.
|
||||
|
||||
*msdos-mode*
|
||||
If you get a dialog that says "This program is set to run in MS-DOS mode..."
|
||||
when you run an external program, you can solve this by changing the
|
||||
properties of the associated shortcut:
|
||||
- Use a Windows Explorer to find the command.com that is used. It can be
|
||||
c:\command.com, c:\dos\command.com, c:\windows\command.com, etc.
|
||||
- With the right mouse button, select properties of this command.com.
|
||||
- In the Program tab select "Advanced".
|
||||
- Unselect "MS-DOS mode".
|
||||
- Click "OK" twice.
|
||||
The window in which the commands are executed will be the default you have set
|
||||
up for "Console" in Control Panel.
|
||||
|
||||
*win32-!start*
|
||||
Normally, Vim waits for a command to complete before continuing (this makes
|
||||
sense for most shell commands which produce output for Vim to use). If you
|
||||
want Vim to start a program and return immediately, you can use the following
|
||||
syntax on W95 & NT: >
|
||||
syntax: >
|
||||
:!start [/min] {command}
|
||||
The optional "/min" causes the window to be minimized.
|
||||
|
||||
On Win32s, you will have to go to another window instead. Don't forget that
|
||||
you must tell Windows 3.1x to keep executing a DOS command in the background
|
||||
while you switch back to Vim.
|
||||
|
||||
==============================================================================
|
||||
5. Special colors *win32-colors*
|
||||
|
||||
@ -311,7 +290,7 @@ On Win32, the normal DOS colors can be used. See |dos-colors|.
|
||||
Additionally the system configured colors can also be used. These are known
|
||||
by the names Sys_XXX, where XXX is the appropriate system color name, from the
|
||||
following list (see the Win32 documentation for full descriptions). Case is
|
||||
ignored. Note: On Win32s not all of these colors are supported.
|
||||
ignored.
|
||||
|
||||
Sys_3DDKShadow Sys_3DFace Sys_BTNFace
|
||||
Sys_3DHilight Sys_3DHighlight Sys_BTNHilight
|
||||
|
@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 7.4. Last change: 2014 Mar 08
|
||||
*gui_x11.txt* For Vim version 8.0. Last change: 2016 Sep 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -305,7 +305,7 @@ If a name is used that exists on other systems, but not in X11, the default
|
||||
"arrow" pointer is used.
|
||||
|
||||
==============================================================================
|
||||
5. GTK version *gui-gtk* *GTK+* *GTK*
|
||||
5. GTK version *gui-gtk* *GTK+* *GTK* *GTK3*
|
||||
|
||||
The GTK version of the GUI works a little bit different.
|
||||
|
||||
@ -369,6 +369,16 @@ Write this in the file ~/.gtkrc and it will be used by GTK+. For GTK+ 2
|
||||
you might have to use the file ~/.gtkrc-2.0 instead, depending on your
|
||||
distribution.
|
||||
|
||||
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,
|
||||
$HOME/.config/gtk-3.0/gtk.css):
|
||||
>
|
||||
.tooltip {
|
||||
background-color: #ffffcc;
|
||||
color: #000000;
|
||||
}
|
||||
<
|
||||
|
||||
Using Vim as a GTK+ plugin *gui-gtk-socketid*
|
||||
|
||||
When the GTK+ version of Vim starts up normally, it creates its own top level
|
||||
@ -411,6 +421,9 @@ These are the different looks:
|
||||
GNOME is compiled with if it was found by configure and the
|
||||
--enable-gnome-check argument was used.
|
||||
|
||||
Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build. The
|
||||
functionality mentioned above is consolidated in GTK+ 3.
|
||||
|
||||
|
||||
GNOME session support *gui-gnome-session* *gnome-session*
|
||||
|
||||
@ -447,20 +460,37 @@ continues on Yzis: https://github.com/chrizel/Yzis.
|
||||
==============================================================================
|
||||
8. Compiling *gui-x11-compiling*
|
||||
|
||||
If using X11, Vim's Makefile will by default first try to find the necessary
|
||||
GTK+ files on your system. If the GTK+ files cannot be found, then the Motif
|
||||
files will be searched for. Finally, if this fails, the Athena files will be
|
||||
searched for. If all three fail, the GUI will be disabled.
|
||||
If using X11, Vim's configure will by default first try to find the necessary
|
||||
GTK+ files on your system. When both GTK+ 2 and GTK+ 3 are available, GTK+ 2
|
||||
will be chosen unless --enable-gui=gtk3 is passed explicitly to configure.
|
||||
|
||||
For GTK+, Vim's configuration process requires that GTK+ be properly
|
||||
installed. That is, the shell script 'gtk-config' must be in your PATH, and
|
||||
you can already successful compile, build, and execute a GTK+ program. The
|
||||
reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS)
|
||||
are obtained through the 'gtk-config' shell script.
|
||||
If the GTK+ files cannot be found, then the Motif files will be searched for.
|
||||
Finally, if this fails, the Athena files will be searched for. If all three
|
||||
fail, the GUI will be disabled.
|
||||
|
||||
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
|
||||
to ./configure. Optionally, support for GNOME 2 will be compiled if the
|
||||
--enable-gnome-check option is also given.
|
||||
For GTK+, Vim's configuration process uses pkg-config(1) to check if the
|
||||
GTK+ required for a specified build is properly installed and usable.
|
||||
Accordingly, it is a good idea to make sure before running configure that
|
||||
your system has a working pkg-config together with the .pc file of the
|
||||
required GTK+. For that, say, run the following on the command line to see if
|
||||
your pkg-config works with your GTK+ 2: >
|
||||
|
||||
$ pkg-config --modversion gtk+-2.0
|
||||
|
||||
Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version
|
||||
number of your GTK+, you can proceed; if not, you probably need to do some
|
||||
system administration chores to set up pkg-config and GTK+ correctly.
|
||||
|
||||
The GTK+ 2 GUI is built by default. Therefore, you usually don't need to pass
|
||||
any options such as --enable-gui=gtk2 to configure and build that.
|
||||
|
||||
Optionally, the GTK+ 2 GUI can consolidate the GNOME 2 support. This support
|
||||
is enabled by passing --enable-gnome-check to configure.
|
||||
|
||||
If you want to build the GTK+ 3 GUI, you have to pass --enable-gui=gtk3
|
||||
explicitly to configure, and avoid passing --enable-gnome-check to that, as
|
||||
the functionality of the GNOME 2 support has already been consolidated in
|
||||
GTK+ 3.
|
||||
|
||||
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
|
||||
files in a directory where configure doesn't look, edit the Makefile to enter
|
||||
@ -468,18 +498,14 @@ the names of the directories. Search for "GUI_INC_LOC" for an example to set
|
||||
the Motif directories, "CONF_OPT_X" for Athena.
|
||||
|
||||
*gui-x11-gtk*
|
||||
At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It
|
||||
is suggested that you use GTK 2. The GTK 1 support will most likely be
|
||||
dropped soon.
|
||||
Currently, Vim supports both GTK+ 2 and GTK+ 3.
|
||||
|
||||
For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2
|
||||
series is recommended.
|
||||
The GTK+ 2 GUI requires GTK+ 2.2 or later.
|
||||
|
||||
Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
|
||||
has not been tested with Vim and is also unsupported. Also, it's unlikely to
|
||||
even compile since GTK+ GUI uses parts of the generic X11 code. This might
|
||||
change in distant future; particularly because getting rid of the X11 centric
|
||||
code parts is also required for GTK+ framebuffer support.
|
||||
Although the GTK+ 3 GUI is written in such a way that the source code can be
|
||||
compiled against all versions of the 3.x series, we recommend GTK+ 3.10 or
|
||||
later because of its substantial implementation changes in redraw done at
|
||||
that version.
|
||||
|
||||
*gui-x11-motif*
|
||||
For Motif, you need at least Motif version 1.2 and/or X11R5. Motif 2.0 and
|
||||
|
@ -1,4 +1,4 @@
|
||||
*hangulin.txt* For Vim version 7.4. Last change: 2015 Nov 24
|
||||
*hangulin.txt* For Vim version 8.0. Last change: 2015 Nov 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
||||
|
@ -1,4 +1,4 @@
|
||||
*hebrew.txt* For Vim version 7.4. Last change: 2007 Jun 14
|
||||
*hebrew.txt* For Vim version 8.0. Last change: 2007 Jun 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
|
||||
|
@ -1,4 +1,4 @@
|
||||
*help.txt* For Vim version 7.4. Last change: 2015 Jun 21
|
||||
*help.txt* For Vim version 8.0. Last change: 2016 Sep 12
|
||||
|
||||
VIM - main help file
|
||||
k
|
||||
@ -10,14 +10,14 @@ Close this window: Use ":q<Enter>".
|
||||
Jump to a subject: Position the cursor on a tag (e.g. |bars|) and hit CTRL-].
|
||||
With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI).
|
||||
Double-click the left mouse button on a tag, e.g. |bars|.
|
||||
Jump back: Type CTRL-T or CTRL-O (repeat to go further back).
|
||||
Jump back: Type CTRL-T or CTRL-O. Repeat to go further back.
|
||||
|
||||
Get specific help: It is possible to go directly to whatever you want help
|
||||
on, by giving an argument to the |:help| command.
|
||||
It is possible to further specify the context:
|
||||
*help-context*
|
||||
Prepend something to specify the context: *help-context*
|
||||
|
||||
WHAT PREPEND EXAMPLE ~
|
||||
Normal mode command (nothing) :help x
|
||||
Normal mode command :help x
|
||||
Visual mode command v_ :help v_u
|
||||
Insert mode command i_ :help i_<Esc>
|
||||
Command-line command : :help :quit
|
||||
@ -25,6 +25,8 @@ Get specific help: It is possible to go directly to whatever you want help
|
||||
Vim command argument - :help -r
|
||||
Option ' :help 'textwidth'
|
||||
Regular expression / :help /[
|
||||
See |help-summary| for more contexts and an explanation.
|
||||
|
||||
Search for help: Type ":help word", then hit CTRL-D to see matching
|
||||
help entries for "word".
|
||||
Or use ":helpgrep word". |:helpgrep|
|
||||
@ -133,6 +135,7 @@ Advanced editing ~
|
||||
|autocmd.txt| automatically executing commands on an event
|
||||
|filetype.txt| settings done specifically for a type of file
|
||||
|eval.txt| expression evaluation, conditional commands
|
||||
|channel.txt| Jobs, Channels, inter-process communication
|
||||
|fold.txt| hide (fold) ranges of lines
|
||||
|
||||
Special issues ~
|
||||
@ -153,7 +156,6 @@ Special issues ~
|
||||
|
||||
GUI ~
|
||||
|gui.txt| Graphical User Interface (GUI)
|
||||
|gui_w16.txt| Windows 3.1 GUI
|
||||
|gui_w32.txt| Win32 GUI
|
||||
|gui_x11.txt| X11 GUI
|
||||
|
||||
@ -163,7 +165,6 @@ Interfaces ~
|
||||
|if_mzsch.txt| MzScheme interface
|
||||
|if_perl.txt| Perl interface
|
||||
|if_pyth.txt| Python interface
|
||||
|if_sniff.txt| SNiFF+ interface
|
||||
|if_tcl.txt| Tcl interface
|
||||
|if_ole.txt| OLE automation interface for Win32
|
||||
|if_ruby.txt| Ruby interface
|
||||
@ -178,6 +179,7 @@ Versions ~
|
||||
|version5.txt| Differences between Vim version 4.6 and 5.x
|
||||
|version6.txt| Differences between Vim version 5.7 and 6.x
|
||||
|version7.txt| Differences between Vim version 6.4 and 7.x
|
||||
|version8.txt| Differences between Vim version 7.4 and 8.x
|
||||
*sys-file-list*
|
||||
Remarks about specific systems ~
|
||||
|os_390.txt| OS/390 Unix
|
||||
|
@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 7.4. Last change: 2014 Sep 19
|
||||
*helphelp.txt* For Vim version 8.0. Last change: 2016 Apr 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -197,6 +197,9 @@ command: >
|
||||
*E154* *E150* *E151* *E152* *E153* *E670*
|
||||
:helpt[ags] [++t] {dir}
|
||||
Generate the help tags file(s) for directory {dir}.
|
||||
When {dir} is ALL then all "doc" directories in
|
||||
'runtimepath' will be used.
|
||||
|
||||
All "*.txt" and "*.??x" files in the directory and
|
||||
sub-directories are scanned for a help tag definition
|
||||
in between stars. The "*.??x" files are for
|
||||
@ -205,9 +208,11 @@ command: >
|
||||
sorted.
|
||||
When there are duplicates an error message is given.
|
||||
An existing tags file is silently overwritten.
|
||||
|
||||
The optional "++t" argument forces adding the
|
||||
"help-tags" tag. This is also done when the {dir} is
|
||||
equal to $VIMRUNTIME/doc.
|
||||
|
||||
To rebuild the help tags in the runtime directory
|
||||
(requires write permission there): >
|
||||
:helptags $VIMRUNTIME/doc
|
||||
@ -258,7 +263,9 @@ The second one finds the English user manual, even when 'helplang' is set to
|
||||
|
||||
When using command-line completion for the ":help" command, the "@en"
|
||||
extension is only shown when a tag exists for multiple languages. When the
|
||||
tag only exists for English "@en" is omitted.
|
||||
tag only exists for English "@en" is omitted. When the first candidate has an
|
||||
"@ab" extension and it matches the first language in 'helplang' "@ab" is also
|
||||
omitted.
|
||||
|
||||
When using |CTRL-]| or ":help!" in a non-English help file Vim will try to
|
||||
find the tag in the same language. If not found then 'helplang' will be used
|
||||
@ -315,6 +322,10 @@ aligned on a line.
|
||||
When referring to an existing help tag and to create a hot-link, place the
|
||||
name between two bars (|) eg. |help-writing|.
|
||||
|
||||
When referring to a Vim command and to create a hot-link, place the
|
||||
name between two backticks, eg. inside `:filetype`. You will see this is
|
||||
highlighted as a command, like a code block (see below).
|
||||
|
||||
When referring to a Vim option in the help file, place the option name between
|
||||
two single quotes, eg. 'statusline'
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
*howto.txt* For Vim version 7.4. Last change: 2006 Apr 02
|
||||
*howto.txt* For Vim version 8.0. Last change: 2006 Apr 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_cscop.txt* For Vim version 7.4. Last change: 2011 Jun 12
|
||||
*if_cscop.txt* For Vim version 8.0. Last change: 2011 Jun 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Andy Kahn
|
||||
@ -97,8 +97,8 @@ command does the same and also splits the window (short: "scs").
|
||||
|
||||
The available subcommands are:
|
||||
|
||||
*E563* *E564* *E566* *E568* *E569* *E622* *E623*
|
||||
*E625* *E626* *E609*
|
||||
*E563* *E564* *E566* *E568* *E622* *E623* *E625*
|
||||
*E626* *E609*
|
||||
add : Add a new cscope database/connection.
|
||||
|
||||
USAGE :cs add {file|dir} [pre-path] [flags]
|
||||
@ -129,6 +129,7 @@ The available subcommands are:
|
||||
6 or e: Find this egrep pattern
|
||||
7 or f: Find this file
|
||||
8 or i: Find files #including this file
|
||||
9 or a: Find places where this symbol is assigned a value
|
||||
|
||||
For all types, except 4 and 6, leading white space for {name} is
|
||||
removed. For 4 and 6 there is exactly one space between {querytype}
|
||||
@ -255,13 +256,13 @@ started will have no effect!
|
||||
{not available when compiled without the |+quickfix| feature}
|
||||
'cscopequickfix' specifies whether to use quickfix window to show cscope
|
||||
results. This is a list of comma-separated values. Each item consists of
|
||||
|cscope-find| command (s, g, d, c, t, e, f or i) and flag (+, - or 0).
|
||||
|cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0).
|
||||
'+' indicates that results must be appended to quickfix window,
|
||||
'-' implies previous results clearance, '0' or command absence - don't use
|
||||
quickfix. Search is performed from start until first command occurrence.
|
||||
The default value is "" (don't use quickfix anyway). The following value
|
||||
seems to be useful: >
|
||||
:set cscopequickfix=s-,c-,d-,i-,t-,e-
|
||||
:set cscopequickfix=s-,c-,d-,i-,t-,e-,a-
|
||||
<
|
||||
*cscopetag* *cst*
|
||||
If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t"
|
||||
@ -422,6 +423,7 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
|
||||
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-_>a :cs find a <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
" Using 'CTRL-spacebar' then a search type makes the vim window
|
||||
" split horizontally, with search result displayed in
|
||||
@ -435,6 +437,7 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
|
||||
nmap <C-Space>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-Space>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-Space>d :scs find d <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-Space>a :scs find a <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
" Hitting CTRL-space *twice* before the search type does a vertical
|
||||
" split instead of a horizontal one
|
||||
@ -453,6 +456,8 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
|
||||
\:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-Space><C-Space>d
|
||||
\:vert scs find d <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-Space><C-Space>a
|
||||
\:vert scs find a <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
==============================================================================
|
||||
7. Cscope availability and information *cscope-info*
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_lua.txt* For Vim version 7.4. Last change: 2015 Oct 16
|
||||
*if_lua.txt* For Vim version 8.0. Last change: 2015 Oct 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Luis Carvalho
|
||||
@ -59,6 +59,12 @@ Example:
|
||||
EOF
|
||||
endfunction
|
||||
<
|
||||
To see what version of Lua you have: >
|
||||
:lua print(_VERSION)
|
||||
|
||||
If you use LuaJIT you can also use this: >
|
||||
:lua print(jit.version)
|
||||
<
|
||||
|
||||
*:luado*
|
||||
:[range]luado {body} Execute Lua function "function (line, linenr) {body}
|
||||
@ -410,13 +416,20 @@ This means that Vim will search for the Lua DLL or shared library file only
|
||||
when needed. When you don't use the Lua interface you don't need it, thus
|
||||
you can use Vim without this file.
|
||||
|
||||
On MS-Windows to use the Lua interface the Lua DLL must be in your search path.
|
||||
In a console window type "path" to see what directories are used. The version
|
||||
of the DLL must match the Lua version Vim was compiled with.
|
||||
|
||||
On Unix the 'luadll' option can be used to specify the Lua shared library file
|
||||
instead of DYNAMIC_LUA_DLL file what was specified at compile time. The
|
||||
version of the shared library must match the Lua version Vim was compiled with.
|
||||
MS-Windows ~
|
||||
|
||||
To use the Lua interface the Lua DLL must be in your search path. In a
|
||||
console window type "path" to see what directories are used. The 'luadll'
|
||||
option can be also used to specify the Lua DLL. The version of the DLL must
|
||||
match the Lua version Vim was compiled with.
|
||||
|
||||
|
||||
Unix ~
|
||||
|
||||
The 'luadll' option can be used to specify the Lua shared library file instead
|
||||
of DYNAMIC_LUA_DLL file what was specified at compile time. The version of
|
||||
the shared library must match the Lua version Vim was compiled with.
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_mzsch.txt* For Vim version 7.4. Last change: 2012 Dec 17
|
||||
*if_mzsch.txt* For Vim version 8.0. Last change: 2016 Jan 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sergey Khorev
|
||||
@ -13,6 +13,7 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
|
||||
5. mzeval() Vim function |mzscheme-mzeval|
|
||||
6. Using Function references |mzscheme-funcref|
|
||||
7. Dynamic loading |mzscheme-dynamic|
|
||||
8. MzScheme setup |mzscheme-setup|
|
||||
|
||||
{Vi does not have any of these commands}
|
||||
|
||||
@ -96,6 +97,9 @@ procedures is restricted.
|
||||
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
|
||||
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
|
||||
:mzscheme (vim-set-buff-line 10 "This is line #10")
|
||||
|
||||
To see what version of MzScheme you have: >
|
||||
:mzscheme (display (version))
|
||||
<
|
||||
Inline script usage: >
|
||||
function! <SID>SetFirstLine()
|
||||
@ -264,7 +268,7 @@ directly from Scheme. For instance: >
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
7. Dynamic loading *mzscheme-dynamic* *E815*
|
||||
7. Dynamic loading *mzscheme-dynamic* *E815*
|
||||
|
||||
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
|
||||
output then includes |+mzscheme/dyn|.
|
||||
@ -272,6 +276,9 @@ output then includes |+mzscheme/dyn|.
|
||||
This means that Vim will search for the MzScheme DLL files only when needed.
|
||||
When you don't use the MzScheme interface you don't need them, thus you can
|
||||
use Vim without these DLL files.
|
||||
NOTE: Newer version of MzScheme (Racket) require earlier (trampolined)
|
||||
initialisation via scheme_main_setup. So Vim always loads the MzScheme DLL at
|
||||
startup if possible.
|
||||
|
||||
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.
|
||||
@ -282,5 +289,24 @@ For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
||||
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
||||
-DDYNAMIC_MZGC_DLL="something" in the "Compilation" info.
|
||||
|
||||
For example, if MzScheme (Racket) is installed at C:\Racket63, you may need
|
||||
to set the environment variable as the following: >
|
||||
|
||||
PATH=%PATH%;C:\Racket63\lib
|
||||
PLTCOLLECTS=C:\Racket63\collects
|
||||
PLTCONFIGDIR=C:\Racket63\etc
|
||||
<
|
||||
==============================================================================
|
||||
8. MzScheme setup *mzscheme-setup* *E895*
|
||||
|
||||
Vim requires "racket/base" module for if_mzsch core (fallback to "scheme/base"
|
||||
if it doesn't exist), "r5rs" module for test and "raco ctool" command for
|
||||
building Vim. If MzScheme did not have them, you can install them with
|
||||
MzScheme's raco command:
|
||||
>
|
||||
raco pkg install scheme-lib # scheme/base module
|
||||
raco pkg install r5rs-lib # r5rs module
|
||||
raco pkg install cext-lib # raco ctool command
|
||||
<
|
||||
======================================================================
|
||||
vim:tw=78:ts=8:sts=4:ft=help:norl:
|
||||
|
@ -1,4 +1,4 @@
|
||||
*if_ole.txt* For Vim version 7.4. Last change: 2008 Aug 16
|
||||
*if_ole.txt* For Vim version 8.0. Last change: 2008 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user