mirror of
https://github.com/zoriya/vim.git
synced 2025-12-17 12:45:17 +00:00
Compare commits
1121 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a38b2b737e | ||
|
|
647a530b33 | ||
|
|
41d4299f26 | ||
|
|
2eaeaf3c31 | ||
|
|
3df02f507f | ||
|
|
f7779c63d4 | ||
|
|
5adc55cb74 | ||
|
|
1c0d44f8ef | ||
|
|
0b6849e9e3 | ||
|
|
01f731e97c | ||
|
|
bf67ea1af0 | ||
|
|
d58a662f44 | ||
|
|
c8cd2b34d1 | ||
|
|
37addecc42 | ||
|
|
7ceefb35c8 | ||
|
|
b84a381c75 | ||
|
|
11abd09521 | ||
|
|
4cfde1d273 | ||
|
|
6ab0953fef | ||
|
|
9e175141f3 | ||
|
|
6adb9ea0a6 | ||
|
|
4e5534fab7 | ||
|
|
7f6f56f43c | ||
|
|
2c5c1638a9 | ||
|
|
88e6cc2539 | ||
|
|
a161cb5ddd | ||
|
|
8dbafd0790 | ||
|
|
512fe833c3 | ||
|
|
dfc33a665d | ||
|
|
339d60c89b | ||
|
|
ed8ce057b7 | ||
|
|
939b5db480 | ||
|
|
affc8fd2cd | ||
|
|
a0a9f43ab2 | ||
|
|
7ed8f59ae0 | ||
|
|
224a5f17c6 | ||
|
|
a14bb7e113 | ||
|
|
03afdcf1f4 | ||
|
|
909ed7e902 | ||
|
|
57700ee4ac | ||
|
|
4c17ad94ec | ||
|
|
db93495d27 | ||
|
|
0e71704b77 | ||
|
|
bc970da807 | ||
|
|
759d81549c | ||
|
|
07b761a012 | ||
|
|
99fa721944 | ||
|
|
e297802d6d | ||
|
|
7d41aa8874 | ||
|
|
6378c4fef3 | ||
|
|
cfe435d7fe | ||
|
|
49b2fb36ca | ||
|
|
47a1a8baf9 | ||
|
|
333015a46e | ||
|
|
41f6918bf4 | ||
|
|
e93c968f52 | ||
|
|
92b83ccfda | ||
|
|
9d8d0b5c64 | ||
|
|
92c461ef1b | ||
|
|
b52575f9cf | ||
|
|
7714d7b31f | ||
|
|
65d032c779 | ||
|
|
e71ebb46a2 | ||
|
|
b8ce6b0005 | ||
|
|
f93c7fea08 | ||
|
|
1df8b3fb04 | ||
|
|
a72cfb80cd | ||
|
|
f7b398c6a9 | ||
|
|
beae4084fd | ||
|
|
95a467e7ee | ||
|
|
0d6fe631f7 | ||
|
|
ea04a6e8ba | ||
|
|
db950e4c03 | ||
|
|
d2662ad2de | ||
|
|
e770598f31 | ||
|
|
ad48e6c159 | ||
|
|
ff06f283e3 | ||
|
|
1966c24881 | ||
|
|
2c7f8c574f | ||
|
|
2c5ed4e330 | ||
|
|
faac410409 | ||
|
|
08f4157c5c | ||
|
|
ad4dc83389 | ||
|
|
4da6df40f5 | ||
|
|
2bb76accc6 | ||
|
|
fbf2122cf9 | ||
|
|
7bdaea6e0d | ||
|
|
eb58a24658 | ||
|
|
f49e564082 | ||
|
|
7e0868efcf | ||
|
|
d72c1bf0a6 | ||
|
|
d3aac2917d | ||
|
|
173d841e86 | ||
|
|
61fbb3371e | ||
|
|
90455cfa87 | ||
|
|
ec9749f33d | ||
|
|
a26b9700d7 | ||
|
|
b6fb0516ec | ||
|
|
a494f56f88 | ||
|
|
2695de63e3 | ||
|
|
aa82259fef | ||
|
|
aa0489e12d | ||
|
|
0fc1288aef | ||
|
|
314ca7cbb4 | ||
|
|
21cfe500f3 | ||
|
|
4a8d9f2ed8 | ||
|
|
7a09224583 | ||
|
|
c5f33db888 | ||
|
|
cb711abf0f | ||
|
|
b4a549fb16 | ||
|
|
81ccbf199f | ||
|
|
edd327cc07 | ||
|
|
4d5d0dfe94 | ||
|
|
6c2b7b8055 | ||
|
|
7a1637f4c0 | ||
|
|
067297e16a | ||
|
|
e3242346cf | ||
|
|
352f554b85 | ||
|
|
278e83863b | ||
|
|
df1956075d | ||
|
|
0015795baa | ||
|
|
6e949784be | ||
|
|
fbda69b309 | ||
|
|
55b0fb7001 | ||
|
|
2c330432cf | ||
|
|
1a2f4bf6c8 | ||
|
|
675f716efb | ||
|
|
23e032523e | ||
|
|
5e774c7579 | ||
|
|
9c7e6dd653 | ||
|
|
e6085c5350 | ||
|
|
2196bce56f | ||
|
|
a80faa8930 | ||
|
|
82de464f76 | ||
|
|
bfe13ccc58 | ||
|
|
c5f1ef53c2 | ||
|
|
4fdae9996f | ||
|
|
acc770a10f | ||
|
|
cd630becc8 | ||
|
|
99aaf0ce7c | ||
|
|
1363a30cef | ||
|
|
88c1ee84d6 | ||
|
|
3b922f1138 | ||
|
|
08938eeba4 | ||
|
|
e7f234120f | ||
|
|
fe27081724 | ||
|
|
d19a8f97ad | ||
|
|
880e4d9117 | ||
|
|
1378fbc459 | ||
|
|
8832a34578 | ||
|
|
81ea1dfb97 | ||
|
|
004a6781b3 | ||
|
|
d1caa941d8 | ||
|
|
7b293c730b | ||
|
|
9c8bb7c0e2 | ||
|
|
cab2767874 | ||
|
|
5da356e073 | ||
|
|
4d23c52824 | ||
|
|
25d5700952 | ||
|
|
6a2c5a7dd5 | ||
|
|
7035fd9d90 | ||
|
|
476a613135 | ||
|
|
a65c288134 | ||
|
|
49cf7cc8d2 | ||
|
|
0b76b42d0a | ||
|
|
ec5929d0fe | ||
|
|
86b9a3e8cd | ||
|
|
40655d5016 | ||
|
|
c74fbfedfa | ||
|
|
00d253e2b2 | ||
|
|
ee4e0c1e9a | ||
|
|
15352dc6ec | ||
|
|
6c307dcd55 | ||
|
|
8922860afb | ||
|
|
5ba8d3578c | ||
|
|
4c68375057 | ||
|
|
f87a0400fd | ||
|
|
b8ed3aa9e7 | ||
|
|
bdff012f44 | ||
|
|
5d905c2b96 | ||
|
|
5deeb3f1f9 | ||
|
|
d7ffc0ba8c | ||
|
|
8d4ed11da6 | ||
|
|
cde0ff39da | ||
|
|
d77a8525d5 | ||
|
|
5259275347 | ||
|
|
d1e9dc2723 | ||
|
|
01603a9970 | ||
|
|
3cca299520 | ||
|
|
585fea7b98 | ||
|
|
e8c4abbbd7 | ||
|
|
2c869deeb7 | ||
|
|
aeea72151c | ||
|
|
f10806b250 | ||
|
|
4227c789ff | ||
|
|
e5bae13da3 | ||
|
|
a4d4cf490e | ||
|
|
80c34ca312 | ||
|
|
ea94fbe83b | ||
|
|
e69f6d044c | ||
|
|
a8c1770469 | ||
|
|
2da0f0c445 | ||
|
|
0afdcf8601 | ||
|
|
25b70c780a | ||
|
|
05afceeddc | ||
|
|
bd5da371aa | ||
|
|
9be61bbb17 | ||
|
|
01b3862956 | ||
|
|
92dba36fc8 | ||
|
|
d25ec2cfa0 | ||
|
|
ca68ae1311 | ||
|
|
7d333a900d | ||
|
|
0b37a2f379 | ||
|
|
2027973b5b | ||
|
|
5908fdf72f | ||
|
|
c58164c5cf | ||
|
|
52ea92b19d | ||
|
|
bf54dbeb5c | ||
|
|
0fff44152d | ||
|
|
8601545338 | ||
|
|
360bdbda81 | ||
|
|
a30590d3e7 | ||
|
|
7b1b36b1cb | ||
|
|
ee619e5bc0 | ||
|
|
7c003aa314 | ||
|
|
33fa29cf74 | ||
|
|
09c569038c | ||
|
|
599c89c82f | ||
|
|
495282b6e7 | ||
|
|
14285cb801 | ||
|
|
2d9d409ad4 | ||
|
|
191acfdeca | ||
|
|
37bb030cd9 | ||
|
|
9207d1f523 | ||
|
|
bd5e622bfa | ||
|
|
15c476023f | ||
|
|
bea9023d42 | ||
|
|
26bde6e2eb | ||
|
|
72749f062f | ||
|
|
83d4790a04 | ||
|
|
3ed9efc2b1 | ||
|
|
7851b1ca99 | ||
|
|
a9c3a30891 | ||
|
|
82e743c5b3 | ||
|
|
7d941ee032 | ||
|
|
cf3f8bf4dd | ||
|
|
0e05de4622 | ||
|
|
bfcfd5784a | ||
|
|
a07e31af54 | ||
|
|
f66ca9f1df | ||
|
|
d36ef573b2 | ||
|
|
45fffdf10b | ||
|
|
71658f74ae | ||
|
|
f3710ee22d | ||
|
|
d06dbf3f42 | ||
|
|
1082772f4c | ||
|
|
d7b7770f11 | ||
|
|
0df541963d | ||
|
|
db99f9f29a | ||
|
|
dbbb0ef729 | ||
|
|
a8bd349638 | ||
|
|
bad8804cdd | ||
|
|
ab505b1a48 | ||
|
|
56ba21a156 | ||
|
|
5080b0a047 | ||
|
|
c5a8fdc42d | ||
|
|
d5bc32df20 | ||
|
|
7929651e05 | ||
|
|
9b9be007e7 | ||
|
|
515545e11f | ||
|
|
97acfc781b | ||
|
|
ce436de5a9 | ||
|
|
0f1563ffee | ||
|
|
9645e2d9fc | ||
|
|
f1ec378b01 | ||
|
|
20431c9dbb | ||
|
|
8b63313510 | ||
|
|
98be7fecac | ||
|
|
ff78155aa1 | ||
|
|
95e59a355b | ||
|
|
40d235e730 | ||
|
|
373a876d0c | ||
|
|
5e94a29ebb | ||
|
|
37f471df6e | ||
|
|
24e9b6fe4b | ||
|
|
3696839ef1 | ||
|
|
b68df220c5 | ||
|
|
22da5596d0 | ||
|
|
2d10cd4780 | ||
|
|
e32848780c | ||
|
|
3fa5e13262 | ||
|
|
18a2b87ca2 | ||
|
|
a3a9c8ef69 | ||
|
|
30d53e2c11 | ||
|
|
8dfcce3a78 | ||
|
|
3cdcb090a6 | ||
|
|
292b90d4fa | ||
|
|
a21df1db3c | ||
|
|
5715b3147b | ||
|
|
24ebd83e03 | ||
|
|
a2cbdea968 | ||
|
|
7f009dfa06 | ||
|
|
c030063329 | ||
|
|
56cb337872 | ||
|
|
b2e1f8a28f | ||
|
|
ddbfe238a5 | ||
|
|
e4fc746d13 | ||
|
|
833805a486 | ||
|
|
bb65a5690c | ||
|
|
0bdbc10e8a | ||
|
|
0eabd4dc8f | ||
|
|
5e4d1eba95 | ||
|
|
4f32f9c90e | ||
|
|
353c351bd2 | ||
|
|
2573af3519 | ||
|
|
1939826509 | ||
|
|
b17893aa94 | ||
|
|
965fd8d4dc | ||
|
|
346f18e5fe | ||
|
|
d47e6f0b4c | ||
|
|
fa5d8a191d | ||
|
|
8210693795 | ||
|
|
8a677a37d0 | ||
|
|
3a05ce63fe | ||
|
|
66b98854d8 | ||
|
|
cee52204ca | ||
|
|
e49b4bb895 | ||
|
|
1671f44881 | ||
|
|
5269bd2a72 | ||
|
|
3a2505cc18 | ||
|
|
2e09634a78 | ||
|
|
283e5f4e69 | ||
|
|
693e80e938 | ||
|
|
f5f1e10d0d | ||
|
|
d0d440f702 | ||
|
|
14e57909e6 | ||
|
|
8eab731328 | ||
|
|
ba2920fe97 | ||
|
|
bd7206e02c | ||
|
|
49b79bd488 | ||
|
|
8f027fe470 | ||
|
|
a471eeae75 | ||
|
|
a65bb53514 | ||
|
|
d0df1aacd8 | ||
|
|
36ddf93831 | ||
|
|
3e919d2924 | ||
|
|
080457c02d | ||
|
|
6d69bf602b | ||
|
|
5381c7a162 | ||
|
|
91ffc8a5f5 | ||
|
|
61a6d4e48b | ||
|
|
815eb83b09 | ||
|
|
ab55c6826f | ||
|
|
eab6dff19f | ||
|
|
f51cb4e08e | ||
|
|
0546d7df13 | ||
|
|
41fe061753 | ||
|
|
087d2e1518 | ||
|
|
fbdd08ed9b | ||
|
|
f4f190d821 | ||
|
|
b54b8e0c86 | ||
|
|
42a480bf72 | ||
|
|
cc390ff5b2 | ||
|
|
dd58923c6b | ||
|
|
57c339569e | ||
|
|
d30ae2fc4a | ||
|
|
7c215c5893 | ||
|
|
57c732ed78 | ||
|
|
ec084d3356 | ||
|
|
e52e0c89d1 | ||
|
|
80ae880f5f | ||
|
|
d5aec0ced1 | ||
|
|
578fe947e3 | ||
|
|
12f2003871 | ||
|
|
7eeefd4a39 | ||
|
|
b35efa5ed0 | ||
|
|
ad39c094d2 | ||
|
|
b3f740695a | ||
|
|
d672dde584 | ||
|
|
bc93cebb69 | ||
|
|
0c2ca58ef0 | ||
|
|
703ea9eaef | ||
|
|
8d588ccee5 | ||
|
|
c593bec412 | ||
|
|
e010c720b2 | ||
|
|
fa29c8abd6 | ||
|
|
f2d5c240a5 | ||
|
|
750802b55c | ||
|
|
8fb1b47a5e | ||
|
|
b81f56fb57 | ||
|
|
1aa76b8fd0 | ||
|
|
026270c01d | ||
|
|
83f37b9142 | ||
|
|
8040a7147f | ||
|
|
95ffd43f88 | ||
|
|
d28e0b3652 | ||
|
|
0c81d1b112 | ||
|
|
b654103ad1 | ||
|
|
b4d2cb1083 | ||
|
|
8ed04587d3 | ||
|
|
0c6ceaf903 | ||
|
|
8b430b4c1d | ||
|
|
f9706e9df0 | ||
|
|
c036e87bd7 | ||
|
|
5b1c8fe3d5 | ||
|
|
818fc9ad14 | ||
|
|
09f28f49c9 | ||
|
|
436472f5e0 | ||
|
|
85683ec620 | ||
|
|
e0807ea4a7 | ||
|
|
0062c2d4f9 | ||
|
|
f575adff06 | ||
|
|
11ec807639 | ||
|
|
0bbf722aaa | ||
|
|
c0d656c89d | ||
|
|
fd1823e0b7 | ||
|
|
401d9ffb5a | ||
|
|
a2f6e42ded | ||
|
|
257cc5ee95 | ||
|
|
63ce4849ef | ||
|
|
9ae3bbdb96 | ||
|
|
ee2e52aa06 | ||
|
|
38a5f517a7 | ||
|
|
406cd90f19 | ||
|
|
9e2bcb5d23 | ||
|
|
1fa8d2c33d | ||
|
|
414b796627 | ||
|
|
82f654e092 | ||
|
|
bc2b71d44a | ||
|
|
b13af50f73 | ||
|
|
40d9da2a43 | ||
|
|
e51bb17dd0 | ||
|
|
a28be85ccd | ||
|
|
a76b31542e | ||
|
|
a36c830a32 | ||
|
|
df2ecddf9d | ||
|
|
50434bd74c | ||
|
|
f0cee1971f | ||
|
|
f4140488c7 | ||
|
|
ebdf3c964a | ||
|
|
c2adc00fa7 | ||
|
|
4132eb505c | ||
|
|
00f3b4e007 | ||
|
|
0a8fed6231 | ||
|
|
f2cecb6c10 | ||
|
|
ae8d2de3a9 | ||
|
|
21456cdccb | ||
|
|
3dd64608f6 | ||
|
|
7306d6b1c9 | ||
|
|
4f5776c17c | ||
|
|
3fb377fa78 | ||
|
|
2f18975088 | ||
|
|
3b0ef8cfdb | ||
|
|
49c99fcca0 | ||
|
|
5489eab345 | ||
|
|
5f1d3ae8a8 | ||
|
|
9f6277bdde | ||
|
|
799439a5d8 | ||
|
|
99234f29aa | ||
|
|
408030e8d0 | ||
|
|
355757aed6 | ||
|
|
b3e195cca7 | ||
|
|
7ba3b91e03 | ||
|
|
57ea2924e5 | ||
|
|
dbe5d361fe | ||
|
|
d5b9914938 | ||
|
|
4f645c54ef | ||
|
|
165315584d | ||
|
|
d02e508a18 | ||
|
|
670218839a | ||
|
|
f2460a3aec | ||
|
|
348808f7c0 | ||
|
|
c2a4b35b86 | ||
|
|
04d0522046 | ||
|
|
777770fbb0 | ||
|
|
158906cffc | ||
|
|
5cab73f8cc | ||
|
|
170fcfcf25 | ||
|
|
6e587dcbf3 | ||
|
|
1af5ce01c3 | ||
|
|
4af11174f7 | ||
|
|
0de50864a7 | ||
|
|
adbc11c2ee | ||
|
|
ff80cb6807 | ||
|
|
a78e9c61a0 | ||
|
|
2e6638d5f0 | ||
|
|
7077892a79 | ||
|
|
07ada5ff2f | ||
|
|
94255df057 | ||
|
|
eed3571fe0 | ||
|
|
560979ed4f | ||
|
|
80147dda4f | ||
|
|
d816cd94d8 | ||
|
|
bfe1204312 | ||
|
|
26e117e9bc | ||
|
|
a5edb670dc | ||
|
|
631ebc4814 | ||
|
|
e20b9ececa | ||
|
|
e7ddf4e337 | ||
|
|
4e12a5df37 | ||
|
|
b283a8a680 | ||
|
|
0f18b6d17b | ||
|
|
43c60eda2a | ||
|
|
ea3db914c0 | ||
|
|
d98c0b63ab | ||
|
|
3180fe6c6d | ||
|
|
3c01c4a028 | ||
|
|
284d1c24e2 | ||
|
|
91cd59a0a2 | ||
|
|
219c7d0638 | ||
|
|
ab067a21b9 | ||
|
|
7cc96923c4 | ||
|
|
7f829cab35 | ||
|
|
0b76ad53b3 | ||
|
|
705724e430 | ||
|
|
a259d8d30b | ||
|
|
92be6e3f46 | ||
|
|
5feabe00c4 | ||
|
|
9f2d020d39 | ||
|
|
21109272f5 | ||
|
|
0c3064b39b | ||
|
|
b09920203a | ||
|
|
df54382eac | ||
|
|
70b3e706b4 | ||
|
|
e258368b4f | ||
|
|
db661fb95d | ||
|
|
5d98dc2a48 | ||
|
|
0ff6aad393 | ||
|
|
4549ece47c | ||
|
|
9a5e5a3e33 | ||
|
|
a6d536829a | ||
|
|
8cbd6dfc0c | ||
|
|
97a2af39cd | ||
|
|
58ceca5cae | ||
|
|
07da94b0f0 | ||
|
|
5b18c248d3 | ||
|
|
842931cd7a | ||
|
|
272ca95fc3 | ||
|
|
7d8ea0b241 | ||
|
|
f8ddb25789 | ||
|
|
89bfc8218c | ||
|
|
50985eb1f0 | ||
|
|
3f169ce17e | ||
|
|
318e7a9c03 | ||
|
|
4b96df5a01 | ||
|
|
a5d5953d59 | ||
|
|
21b9e9773d | ||
|
|
b3de5114ac | ||
|
|
da812e282a | ||
|
|
978d170bdc | ||
|
|
673660ab00 | ||
|
|
8a7d6542b3 | ||
|
|
1d9215b9aa | ||
|
|
7f51bbe0d1 | ||
|
|
03c3bd9fd0 | ||
|
|
dfede9a70b | ||
|
|
2c02d3843a | ||
|
|
c2a60ae10e | ||
|
|
81c3ea7496 | ||
|
|
8bf716cdba | ||
|
|
0d76683e09 | ||
|
|
ade0d39468 | ||
|
|
2387773d93 | ||
|
|
f0764e8bb6 | ||
|
|
538feb56e8 | ||
|
|
a44b3eeafa | ||
|
|
ed5adff1e6 | ||
|
|
fe4bbac116 | ||
|
|
8ba6bb7c94 | ||
|
|
98a336dd49 | ||
|
|
ca33eb256e | ||
|
|
479950f6c9 | ||
|
|
904edabb64 | ||
|
|
1a928c2099 | ||
|
|
6b915c0c0e | ||
|
|
3029bcc094 | ||
|
|
94b6fb78c5 | ||
|
|
3c71aec696 | ||
|
|
109ef128bd | ||
|
|
17e04781f2 | ||
|
|
f2a44e5c48 | ||
|
|
49c57ce500 | ||
|
|
b3d33d8570 | ||
|
|
1470dc35c4 | ||
|
|
ca7c078b79 | ||
|
|
8024f93636 | ||
|
|
ee93b737aa | ||
|
|
c10b521628 | ||
|
|
9df53b62de | ||
|
|
7ebcba61b2 | ||
|
|
9b24dfcb9f | ||
|
|
02ad46394e | ||
|
|
9b4a15d5db | ||
|
|
e05a89ac63 | ||
|
|
2963456ff2 | ||
|
|
ac15fd8c67 | ||
|
|
bf0acff012 | ||
|
|
4ba6441818 | ||
|
|
b16ad96849 | ||
|
|
c838626fea | ||
|
|
b662591e50 | ||
|
|
e2a8f0773e | ||
|
|
da292b07af | ||
|
|
9db2afe46d | ||
|
|
41a4141ecb | ||
|
|
8b7aa2f9b2 | ||
|
|
e31ee86859 | ||
|
|
ce6db0273f | ||
|
|
fbcdf671f0 | ||
|
|
1860bde9d3 | ||
|
|
e73b38f8e1 | ||
|
|
7b94e77132 | ||
|
|
a1353b5352 | ||
|
|
4d7a248b64 | ||
|
|
b376ace1ae | ||
|
|
f0f8055102 | ||
|
|
830c1afc9d | ||
|
|
61d7c0d52c | ||
|
|
ab782c5b6f | ||
|
|
3d8a513b46 | ||
|
|
0892832bb6 | ||
|
|
5cb0b93d52 | ||
|
|
f10997a154 | ||
|
|
467c32bd72 | ||
|
|
509ff0688d | ||
|
|
d7df279808 | ||
|
|
7fc4785ea1 | ||
|
|
b9adef79ec | ||
|
|
271fa08a35 | ||
|
|
955f4e6f36 | ||
|
|
2466aea508 | ||
|
|
4b7cdca230 | ||
|
|
ea8b7aecab | ||
|
|
bb062c1588 | ||
|
|
1832d12aea | ||
|
|
d518f952f0 | ||
|
|
87396072c5 | ||
|
|
556684ff71 | ||
|
|
ef140544f6 | ||
|
|
d2c946bacf | ||
|
|
dba7c85b61 | ||
|
|
efcc329020 | ||
|
|
08b28b7ad5 | ||
|
|
e7538ae997 | ||
|
|
3fbcc128cb | ||
|
|
d0337e360e | ||
|
|
85b0957616 | ||
|
|
eb698d0b32 | ||
|
|
09d4640f6c | ||
|
|
1a47ae32cd | ||
|
|
257a396879 | ||
|
|
ae7dba8969 | ||
|
|
e20e68b40d | ||
|
|
c6d539b671 | ||
|
|
731a799bb9 | ||
|
|
8cd6cd8087 | ||
|
|
297610ba4b | ||
|
|
5c463a28ff | ||
|
|
0c1e3744ff | ||
|
|
5666fcd0bd | ||
|
|
767340574b | ||
|
|
ec57ec692e | ||
|
|
07a3db89b8 | ||
|
|
818fed7a5e | ||
|
|
eac7ce01e9 | ||
|
|
6c52f82371 | ||
|
|
03af01f1cb | ||
|
|
569fea2c31 | ||
|
|
e9a8d1f9ad | ||
|
|
1500a42c42 | ||
|
|
49d68bf5e4 | ||
|
|
53989554a4 | ||
|
|
70188f5b23 | ||
|
|
7c77b34967 | ||
|
|
7c2a2f869b | ||
|
|
ba0a7475c5 | ||
|
|
64e74c9cc7 | ||
|
|
a27655ef6d | ||
|
|
3ba35409a6 | ||
|
|
aa2f0ee639 | ||
|
|
85a2002adb | ||
|
|
fe72d08400 | ||
|
|
95a9dd1efc | ||
|
|
a4ce82fe2e | ||
|
|
59cb041d0a | ||
|
|
0ce3733f78 | ||
|
|
bc28e9f15b | ||
|
|
f19f8d1a4b | ||
|
|
a9e9679de3 | ||
|
|
91b65e4944 | ||
|
|
6f345a1458 | ||
|
|
a48e78e11f | ||
|
|
e74331db4b | ||
|
|
afc13bd827 | ||
|
|
ddef129160 | ||
|
|
559b9c68fe | ||
|
|
5e5a98d7de | ||
|
|
f9cb05c147 | ||
|
|
95f0b6e5a5 | ||
|
|
3e2d1c8cd6 | ||
|
|
09dd2bb336 | ||
|
|
6e43b30a85 | ||
|
|
5021225656 | ||
|
|
a6e8f888e7 | ||
|
|
f5f4b6cb5f | ||
|
|
3b68123cd2 | ||
|
|
74ee5e2384 | ||
|
|
98056533b9 | ||
|
|
469bdbde1e | ||
|
|
36698e34aa | ||
|
|
e24437b643 | ||
|
|
9810cfbe55 | ||
|
|
213ed008bb | ||
|
|
4954019c93 | ||
|
|
0efd1bdcf4 | ||
|
|
99ebf22c52 | ||
|
|
1e46705a83 | ||
|
|
e24c5b3332 | ||
|
|
04357fbb87 | ||
|
|
2ed639abdc | ||
|
|
661ed8b4b6 | ||
|
|
0ba89ec47c | ||
|
|
0ff822d2eb | ||
|
|
1b03a193b3 | ||
|
|
32b364fcc0 | ||
|
|
e2a3f36bf2 | ||
|
|
5f1920ada2 | ||
|
|
bfd3433330 | ||
|
|
d283e89138 | ||
|
|
6b649ac4fd | ||
|
|
1f9a028def | ||
|
|
08d2e795e7 | ||
|
|
3c47e8384d | ||
|
|
664f3cf3f2 | ||
|
|
f48ee3c284 | ||
|
|
88a3e2b2ac | ||
|
|
1f3e7d3bf0 | ||
|
|
bef93ac9db | ||
|
|
9a838fe543 | ||
|
|
e7dd0deb3c | ||
|
|
c08ee7476b | ||
|
|
e38eab22c1 | ||
|
|
0d6f5d9740 | ||
|
|
63d9e730f7 | ||
|
|
0f8737355d | ||
|
|
6e0ce171e1 | ||
|
|
c95e8d6490 | ||
|
|
309976ec1f | ||
|
|
707d226ac5 | ||
|
|
4ba37b5833 | ||
|
|
2ab2e8608f | ||
|
|
9834b96820 | ||
|
|
42e931b0f5 | ||
|
|
85db547598 | ||
|
|
079119babe | ||
|
|
4ceaa3a6e0 | ||
|
|
734a867ffe | ||
|
|
a050b9471c | ||
|
|
54c8d229f5 | ||
|
|
306139005c | ||
|
|
217e1b8359 | ||
|
|
5d18efecfd | ||
|
|
fa5612c7d8 | ||
|
|
912bc4a51a | ||
|
|
6f1f0ca3ed | ||
|
|
269e4bd9d2 | ||
|
|
5a4c3082d7 | ||
|
|
9625d3d92d | ||
|
|
05ad5ff0ab | ||
|
|
0c5c3faef2 | ||
|
|
a2c2ae473a | ||
|
|
c667da5185 | ||
|
|
71136db1bf | ||
|
|
9bf703d46a | ||
|
|
20ebbeac46 | ||
|
|
91359014b3 | ||
|
|
e219f73ed5 | ||
|
|
dee50a5180 | ||
|
|
7257073043 | ||
|
|
310c32e892 | ||
|
|
15a7bdcb77 | ||
|
|
0387cae15c | ||
|
|
9134f1ecd4 | ||
|
|
68e9e5f7fc | ||
|
|
f8c1f9200c | ||
|
|
c7d2a57b3a | ||
|
|
31ff2e1b43 | ||
|
|
5708079a6b | ||
|
|
424e98baab | ||
|
|
7a212c6253 | ||
|
|
d52986e7be | ||
|
|
ea599a65ee | ||
|
|
8fbd6723af | ||
|
|
e307073680 | ||
|
|
92e25ab2df | ||
|
|
0c0734d527 | ||
|
|
fc4ea2a72d | ||
|
|
cc4423ae13 | ||
|
|
8f76e6b12b | ||
|
|
84f903326d | ||
|
|
38571a04b4 | ||
|
|
c1faf3dc38 | ||
|
|
6a228c6463 | ||
|
|
07e4a19795 | ||
|
|
06b0b4bc27 | ||
|
|
67a2deb9cb | ||
|
|
a106e6cde6 | ||
|
|
70077dd1ca | ||
|
|
c672525b48 | ||
|
|
85c3502ef5 | ||
|
|
4ebe0e62d0 | ||
|
|
2118a30295 | ||
|
|
fd318115a5 | ||
|
|
828ffd5963 | ||
|
|
556ae8ea28 | ||
|
|
7bae0b1bc8 | ||
|
|
94d9f4fa65 | ||
|
|
44f0bd878a | ||
|
|
bd3bc0314e | ||
|
|
546125869f | ||
|
|
10455d43fe | ||
|
|
9ae862ebba | ||
|
|
202c3f7e3e | ||
|
|
403f3eb4c1 | ||
|
|
a075490082 | ||
|
|
ffc4fb8fee | ||
|
|
0a5aa7b28a | ||
|
|
f9ae154c51 | ||
|
|
07a63d8633 | ||
|
|
5f76334818 | ||
|
|
37ff4cf870 | ||
|
|
91b992c387 | ||
|
|
539aa6b25e | ||
|
|
7170b295b0 | ||
|
|
eda1da0c9a | ||
|
|
077b9dd354 | ||
|
|
09c6f265b2 | ||
|
|
0324f9ea0a | ||
|
|
d8a8c4ca08 | ||
|
|
abe12a1a4f | ||
|
|
ecafcc15ca | ||
|
|
a37cb55da6 | ||
|
|
f36a2c7e60 | ||
|
|
e53ec39270 | ||
|
|
db3a205147 | ||
|
|
08f23636ae | ||
|
|
f4a1d1c054 | ||
|
|
ab85ca4e6a | ||
|
|
1ebbb6ee45 | ||
|
|
574ee7bc12 | ||
|
|
afe45b68a6 | ||
|
|
36e7a823c6 | ||
|
|
0743ef9f8a | ||
|
|
d6a98a3a97 | ||
|
|
58e32ab503 | ||
|
|
4eb7dae255 | ||
|
|
cbee635eee | ||
|
|
cc184cfb09 | ||
|
|
d002e411c6 | ||
|
|
adf4aa200b | ||
|
|
5ef1c6a483 | ||
|
|
a9aa86ff95 | ||
|
|
c823477979 | ||
|
|
5c6b6187ac | ||
|
|
1666ac9c56 | ||
|
|
622b646037 | ||
|
|
d6beab0248 | ||
|
|
439b3aca37 | ||
|
|
91e22eb6e0 | ||
|
|
4c054e9fb2 | ||
|
|
ee85702c10 | ||
|
|
b0745b221d | ||
|
|
dbd4316806 | ||
|
|
3503d7c94a | ||
|
|
b73e439606 | ||
|
|
5bf46e9786 | ||
|
|
1e15e61188 | ||
|
|
d1c1c82389 | ||
|
|
4dd8fe0b4f | ||
|
|
34059e7b67 | ||
|
|
398a59b6a5 | ||
|
|
0208b6b771 | ||
|
|
dc9ef26845 | ||
|
|
3d2a47c782 | ||
|
|
3b991527e8 | ||
|
|
f8b036bcae | ||
|
|
638a4a7508 | ||
|
|
fcf8a8743b | ||
|
|
215ba3b636 | ||
|
|
1e673b9eb6 | ||
|
|
177c9f2f06 | ||
|
|
36ec6f6953 | ||
|
|
7d2320414f | ||
|
|
dc968e7a45 | ||
|
|
ae20f340ad | ||
|
|
e5a3272d32 | ||
|
|
2d6d76f9cd | ||
|
|
0630bb6580 | ||
|
|
ad4de52510 | ||
|
|
2ade714728 | ||
|
|
197c6b7da3 | ||
|
|
30efcf3d26 | ||
|
|
d047840ce4 | ||
|
|
1e814bc017 | ||
|
|
e890b9f5dd | ||
|
|
1f068233c1 | ||
|
|
2f7b7b1e12 | ||
|
|
82cf7f6df7 | ||
|
|
32aa10203b | ||
|
|
70def98a95 | ||
|
|
024dbd229f | ||
|
|
f2885d3fb7 | ||
|
|
1a577433ac | ||
|
|
1ff14ba24c | ||
|
|
757bd2ea49 | ||
|
|
7a641ca1e1 | ||
|
|
bb26596242 | ||
|
|
77ccc00340 | ||
|
|
3f39697b73 | ||
|
|
69bf634858 | ||
|
|
8b530c1ff9 | ||
|
|
077ff436a7 | ||
|
|
efae76ab1a | ||
|
|
38ba4dce4a | ||
|
|
1c329c04be | ||
|
|
5b418992cf | ||
|
|
52410575be | ||
|
|
dfded98f87 | ||
|
|
cb86893114 | ||
|
|
7ab5d77666 | ||
|
|
96f45c0b6f | ||
|
|
8fc4296436 | ||
|
|
6a0cc916bd | ||
|
|
28ed4dfe1f | ||
|
|
453c19257f | ||
|
|
c7488a7fc8 | ||
|
|
1fd30d7bae | ||
|
|
7aee6876eb | ||
|
|
11a58af66f | ||
|
|
aa1f04d092 | ||
|
|
3691f1ee72 | ||
|
|
336bf2b8b2 | ||
|
|
b754b5bf6d | ||
|
|
ec6f735012 | ||
|
|
faf626e5d1 | ||
|
|
edaad6e0a0 | ||
|
|
28686682e7 | ||
|
|
6656c2ec4c | ||
|
|
8f7ab4bd1e | ||
|
|
823edd1eed | ||
|
|
93bbf33ceb | ||
|
|
13a1f3fb0c | ||
|
|
1cac70953d | ||
|
|
a720be78d7 | ||
|
|
396b7c78c0 | ||
|
|
34ba06b6e6 | ||
|
|
d53ebfc624 | ||
|
|
4d14bac8e7 | ||
|
|
4b57018ee4 | ||
|
|
a13961536e | ||
|
|
dca7abe79c | ||
|
|
88d3d09e07 | ||
|
|
83e9a1ce75 | ||
|
|
82260afb0e | ||
|
|
2b78ab5d0c | ||
|
|
b40c2576d4 | ||
|
|
7eed964b41 | ||
|
|
bbfd1562ae | ||
|
|
cfb381421f | ||
|
|
ba089307bb | ||
|
|
5b39d7adb0 | ||
|
|
a74fda6f4d | ||
|
|
00e192becd | ||
|
|
b98678a974 | ||
|
|
15ee567809 | ||
|
|
afbdb905c3 | ||
|
|
8459006af5 | ||
|
|
c3bf7b56f2 | ||
|
|
89577b3b3e | ||
|
|
92ea26b925 | ||
|
|
7751d1d1a3 | ||
|
|
a1cb1d1dce | ||
|
|
0d2c4bf171 | ||
|
|
3cea8a9a51 | ||
|
|
b1ba9abcb3 | ||
|
|
2559a47823 | ||
|
|
4a4981b7cd | ||
|
|
2e693a88b2 | ||
|
|
4f2f61a014 | ||
|
|
7b3d939667 | ||
|
|
b2fe1d676f | ||
|
|
4e03933726 | ||
|
|
4bd88d568a | ||
|
|
a6cc5beb17 | ||
|
|
fafb4b18cd | ||
|
|
17efc7fa05 | ||
|
|
8f7b29f033 | ||
|
|
9115c611db | ||
|
|
a3817730c0 | ||
|
|
1142a31b8c | ||
|
|
3439028c89 | ||
|
|
27fc8cab22 | ||
|
|
3c8cd4a1dc | ||
|
|
03b00476ee | ||
|
|
e3a22cb1ba | ||
|
|
6aa7523b96 | ||
|
|
53efb18530 | ||
|
|
1e7b52ad8a | ||
|
|
459fd785e4 | ||
|
|
171a921b51 | ||
|
|
4facea310c | ||
|
|
d1e2f3984a | ||
|
|
e8070987c6 | ||
|
|
ceba3dd518 | ||
|
|
18a79a6841 | ||
|
|
4cdbed33e4 | ||
|
|
1a4cbb19de | ||
|
|
ec66c41d84 | ||
|
|
00eab7f128 | ||
|
|
6a0299d8f4 | ||
|
|
07282f01da | ||
|
|
a129974bc7 | ||
|
|
c25e702dee | ||
|
|
073e779640 | ||
|
|
1ac41a5c13 | ||
|
|
9326805442 | ||
|
|
14c01f8348 | ||
|
|
6bd1d77067 | ||
|
|
b189295b72 | ||
|
|
345f28df54 | ||
|
|
c3e555b22f | ||
|
|
fbbd102be0 | ||
|
|
a27e1dcddc | ||
|
|
1614a14901 | ||
|
|
524f3b19ae | ||
|
|
eb66328bd7 | ||
|
|
49474ca122 | ||
|
|
1671de3098 | ||
|
|
2efc44b3f0 | ||
|
|
fd00c042af | ||
|
|
9ca250855b | ||
|
|
4c063dde73 | ||
|
|
2a8d3b8997 | ||
|
|
e8a7dfedfc | ||
|
|
1824f45883 | ||
|
|
23324a0b35 | ||
|
|
8617348e21 | ||
|
|
b4367b7fb6 | ||
|
|
2886dcceba | ||
|
|
792cf5e1be | ||
|
|
18223a592e | ||
|
|
d17a57a433 | ||
|
|
ac02a638b4 | ||
|
|
ee1a2b5a2a | ||
|
|
b7a97ef340 | ||
|
|
37ac4a531c | ||
|
|
66f0e6c6e2 | ||
|
|
8c96af9c05 | ||
|
|
a893194d91 | ||
|
|
473952e852 | ||
|
|
9be0e0b9d3 | ||
|
|
1a61339806 | ||
|
|
0f1c6708fd | ||
|
|
2e47cab715 | ||
|
|
7b666c7883 | ||
|
|
383f387d9d | ||
|
|
5be4ceecea | ||
|
|
a7f6c3cf07 | ||
|
|
38f1eeac3d | ||
|
|
2313b61257 | ||
|
|
5e8e967f25 | ||
|
|
ce0fac2897 | ||
|
|
30e8e73506 | ||
|
|
46a426c9ac | ||
|
|
d2842ea60b | ||
|
|
d2c1fb476d | ||
|
|
f21118e4a9 | ||
|
|
4aea03eb87 | ||
|
|
e0d749a496 | ||
|
|
101e99207f | ||
|
|
0d0c3ca007 | ||
|
|
010ee9657a | ||
|
|
03ac52fc02 | ||
|
|
053f712ef2 | ||
|
|
b8ff5c271e | ||
|
|
0f6629a08a | ||
|
|
513537bfff | ||
|
|
cadbe1b1fb | ||
|
|
c258549032 | ||
|
|
910c378d93 | ||
|
|
bd67aac279 | ||
|
|
1e82a784ac | ||
|
|
b20b9e14dd | ||
|
|
4d5c12626c | ||
|
|
bffba7f704 | ||
|
|
589edb3404 | ||
|
|
56ebbabea1 | ||
|
|
4bd782339e | ||
|
|
7528d1f6b5 | ||
|
|
cd67059c0c | ||
|
|
181d4f58cc | ||
|
|
cebfcffa40 | ||
|
|
d103ee7843 | ||
|
|
7a9bd7c1e0 | ||
|
|
705918f9f7 | ||
|
|
7e0f462db5 | ||
|
|
397c6a1438 | ||
|
|
37d1807a80 | ||
|
|
0e57dd859e | ||
|
|
69198cb8c0 | ||
|
|
dac1347b4d | ||
|
|
8aeec40207 | ||
|
|
ea8dcf8346 | ||
|
|
9c658c9eac | ||
|
|
248fdb3332 | ||
|
|
e00fdf35d0 | ||
|
|
8ae54375ca | ||
|
|
af91438338 | ||
|
|
a046b37c22 | ||
|
|
1ac90b4fa6 | ||
|
|
60a8de28d1 |
17
.cirrus.yml
Normal file
17
.cirrus.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
env:
|
||||||
|
CIRRUS_CLONE_DEPTH: 3
|
||||||
|
FEATURES: huge
|
||||||
|
|
||||||
|
freebsd_12_task:
|
||||||
|
freebsd_instance:
|
||||||
|
image: freebsd-12-1-release-amd64
|
||||||
|
install_script:
|
||||||
|
pkg install -y gettext
|
||||||
|
build_script:
|
||||||
|
- NPROC=$(getconf _NPROCESSORS_ONLN)
|
||||||
|
- ./configure --with-features=${FEATURES}
|
||||||
|
- make -j${NPROC}
|
||||||
|
- src/vim --version
|
||||||
|
test_script:
|
||||||
|
# Runtime Indent tests do not work, run only the normal test suite
|
||||||
|
- cd src && make test
|
||||||
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
src/testdir/test42.in diff
|
||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -5,9 +5,11 @@ src/xxd/xxd
|
|||||||
src/auto/if_perl.c
|
src/auto/if_perl.c
|
||||||
src/auto/gui_gtk_gresources.c
|
src/auto/gui_gtk_gresources.c
|
||||||
src/auto/gui_gtk_gresources.h
|
src/auto/gui_gtk_gresources.h
|
||||||
|
src/auto/os_haiku.rdef
|
||||||
src/objects/.dirstamp
|
src/objects/.dirstamp
|
||||||
src/objects
|
src/objects
|
||||||
src/tags
|
src/tags
|
||||||
|
src/types.vim
|
||||||
|
|
||||||
# We do need src/auto/configure.
|
# We do need src/auto/configure.
|
||||||
src/auto/config.cache
|
src/auto/config.cache
|
||||||
@@ -50,6 +52,7 @@ nbproject/*
|
|||||||
|
|
||||||
# Mac OSX
|
# Mac OSX
|
||||||
src/xxd/xxd.dSYM
|
src/xxd/xxd.dSYM
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
# All platforms
|
# All platforms
|
||||||
*.rej
|
*.rej
|
||||||
@@ -77,6 +80,7 @@ src/testdir/messages
|
|||||||
src/testdir/viminfo
|
src/testdir/viminfo
|
||||||
src/testdir/opt_test.vim
|
src/testdir/opt_test.vim
|
||||||
runtime/indent/testdir/*.out
|
runtime/indent/testdir/*.out
|
||||||
|
runtime/indent/testdir/*.fail
|
||||||
src/memfile_test
|
src/memfile_test
|
||||||
src/json_test
|
src/json_test
|
||||||
src/message_test
|
src/message_test
|
||||||
@@ -84,6 +88,7 @@ src/kword_test
|
|||||||
|
|
||||||
# Generated by "make install"
|
# Generated by "make install"
|
||||||
runtime/doc/tags
|
runtime/doc/tags
|
||||||
|
runtime/doc/doctags
|
||||||
|
|
||||||
# Generated by "make shadow". The directory names could be anything but we
|
# Generated by "make shadow". The directory names could be anything but we
|
||||||
# restrict them to shadow (the default) or shadow-*
|
# restrict them to shadow (the default) or shadow-*
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ src/auto/gui_gtk_gresources.h
|
|||||||
src/objects/.dirstamp
|
src/objects/.dirstamp
|
||||||
src/objects
|
src/objects
|
||||||
src/tags
|
src/tags
|
||||||
|
src/types.vim
|
||||||
|
|
||||||
# We do need src/auto/configure.
|
# We do need src/auto/configure.
|
||||||
src/auto/config.cache
|
src/auto/config.cache
|
||||||
@@ -86,6 +87,7 @@ src/kword_test
|
|||||||
|
|
||||||
# Generated by "make install"
|
# Generated by "make install"
|
||||||
runtime/doc/tags
|
runtime/doc/tags
|
||||||
|
runtime/doc/doctags
|
||||||
|
|
||||||
# Generated by "make shadow". The directory names could be anything but we
|
# Generated by "make shadow". The directory names could be anything but we
|
||||||
# restrict them to shadow (the default) or shadow-*
|
# restrict them to shadow (the default) or shadow-*
|
||||||
|
|||||||
137
.travis.yml
137
.travis.yml
@@ -1,35 +1,34 @@
|
|||||||
language: c
|
language: c
|
||||||
|
|
||||||
anchors:
|
_anchors:
|
||||||
envs:
|
envs:
|
||||||
- &tiny-nogui
|
- &tiny-nogui
|
||||||
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny "CONFOPT='--disable-gui'" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
BUILD=yes TEST=test FEATURES=tiny CONFOPT="--disable-gui" SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||||
- &tiny
|
- &tiny
|
||||||
BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
BUILD=yes TEST=test FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||||
- &small
|
- &small
|
||||||
BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
BUILD=yes TEST=test FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||||
- &normal
|
- &normal
|
||||||
BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
|
BUILD=yes TEST=test FEATURES=normal CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||||
- &linux-huge
|
- &linux-huge
|
||||||
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
BUILD=yes TEST="scripttests test_libvterm" CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||||
- &osx-huge # macOS build
|
- &osx-huge # macOS build
|
||||||
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||||
- &unittests
|
- &unittests
|
||||||
BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
BUILD=no TEST=unittests CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||||
- &asan # ASAN build
|
- &asan # ASAN build
|
||||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||||
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||||
|
- &shadowopt
|
||||||
|
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
|
||||||
|
|
||||||
linux: &linux
|
linux: &linux
|
||||||
os: linux
|
os: linux
|
||||||
dist: trusty
|
dist: bionic
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
|
||||||
# Need msgfmt 0.19.8 to be able to generate .desktop files
|
|
||||||
- sourceline: 'ppa:ricotz/toolchain'
|
|
||||||
packages:
|
packages:
|
||||||
- autoconf
|
- autoconf
|
||||||
- clang
|
- clang
|
||||||
@@ -39,46 +38,41 @@ anchors:
|
|||||||
- libperl-dev
|
- libperl-dev
|
||||||
- python-dev
|
- python-dev
|
||||||
- python3-dev
|
- python3-dev
|
||||||
- liblua5.2-dev
|
- liblua5.3-dev
|
||||||
- lua5.2
|
- lua5.3
|
||||||
- ruby-dev
|
- ruby-dev
|
||||||
- tcl-dev
|
- tcl-dev
|
||||||
- cscope
|
- cscope
|
||||||
- libgtk2.0-dev
|
- libgtk2.0-dev
|
||||||
- desktop-file-utils
|
- desktop-file-utils
|
||||||
|
- libtool-bin
|
||||||
|
services:
|
||||||
|
- xvfb
|
||||||
before_install:
|
before_install:
|
||||||
- rvm reset
|
- rvm reset
|
||||||
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
|
|
||||||
# ("pyenv global system" doesn't seem to work.)
|
|
||||||
- |
|
|
||||||
if [[ "$(which python3)" =~ ^/opt/python/ ]]; then
|
|
||||||
export PATH=$(py3=$(which python3); echo ${PATH//${py3%/python3}:/})
|
|
||||||
fi
|
|
||||||
- |
|
|
||||||
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
|
|
||||||
# Use llvm-cov instead of gcov when compiler is clang.
|
# Use llvm-cov instead of gcov when compiler is clang.
|
||||||
- |
|
- |
|
||||||
if [[ "${CC}" = "clang" ]]; then
|
if [[ "${CC}" = "clang" ]]; then
|
||||||
ln -sf "$(which llvm-cov)" /home/travis/bin/gcov
|
ln -sf "$(command -v llvm-cov)" /home/travis/bin/gcov
|
||||||
|
fi
|
||||||
|
# Setup lua5.3 manually since its package doesn't provide alternative.
|
||||||
|
# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
|
||||||
|
- |
|
||||||
|
if [[ "${CONFOPT}" =~ luainterp ]]; then
|
||||||
|
sudo update-alternatives --install /usr/bin/lua lua /usr/bin/lua5.3 10
|
||||||
fi
|
fi
|
||||||
before_script:
|
before_script:
|
||||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
- sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||||
- export DISPLAY=:99.0
|
- sudo bash ci/load-snd-dummy.sh || true
|
||||||
- sh -e /etc/init.d/xvfb start && sleep 3
|
|
||||||
- sudo modprobe snd-dummy
|
|
||||||
- sudo usermod -a -G audio $USER
|
- sudo usermod -a -G audio $USER
|
||||||
- do_test() { sg audio "sg $(id -gn) '$*'"; }
|
- do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||||
|
|
||||||
osx: &osx
|
osx: &osx
|
||||||
os: osx
|
os: osx
|
||||||
|
before_script:
|
||||||
|
- do_test() { "$@"; }
|
||||||
|
|
||||||
|
homebrew: &osx-homebrew
|
||||||
addons:
|
addons:
|
||||||
homebrew:
|
homebrew:
|
||||||
packages:
|
packages:
|
||||||
@@ -87,25 +81,24 @@ anchors:
|
|||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- /usr/local/Homebrew/Library/Homebrew/vendor/
|
- /usr/local/Homebrew/Library/Homebrew/vendor/
|
||||||
- /usr/local/Homebrew/Library/Taps/
|
- /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
|
||||||
before_install:
|
before_install:
|
||||||
- rvm reset
|
- rvm reset
|
||||||
# Lua is not installed on Travis OSX
|
# Lua is not installed on macOS
|
||||||
- export LUA_PREFIX=/usr/local
|
- export LUA_PREFIX=/usr/local
|
||||||
before_script:
|
|
||||||
- do_test() { "$@"; }
|
|
||||||
|
|
||||||
coverage: &coverage
|
coverage: &coverage
|
||||||
|
# needed for https support for coveralls building cffi only works with gcc,
|
||||||
|
# not with clang
|
||||||
|
- CC=gcc pip install --user cpp-coveralls pyopenssl ndg-httpsclient pyasn1
|
||||||
- ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
|
- ~/.local/bin/coveralls -b "${SRCDIR}" -x .xs -e "${SRCDIR}"/if_perl.c -e "${SRCDIR}"/xxd -e "${SRCDIR}"/libvterm --encodings utf-8
|
||||||
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
|
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
|
||||||
|
|
||||||
asan_symbolize: &asan_symbolize
|
asan_symbolize: &asan_symbolize
|
||||||
- |
|
# Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
|
||||||
while read log; do
|
# https://github.com/pyenv/pyenv/issues/580
|
||||||
asan_symbolize < "${log}"
|
- (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
|
||||||
done < <(find . -type f -name 'asan.*' -size +0)
|
- find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
|
||||||
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
branches:
|
branches:
|
||||||
except:
|
except:
|
||||||
@@ -129,19 +122,22 @@ script:
|
|||||||
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
|
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
|
||||||
- |
|
- |
|
||||||
if [[ "${BUILD}" = "yes" ]]; then
|
if [[ "${BUILD}" = "yes" ]]; then
|
||||||
|
# Append various warning flags to CFLAGS.
|
||||||
|
# BSD sed needs backup extension specified.
|
||||||
|
sed -i.bak -f ci/config.mk.sed ${SRCDIR}/auto/config.mk
|
||||||
|
sed -i.bak -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
|
||||||
make ${SHADOWOPT} -j${NPROC}
|
make ${SHADOWOPT} -j${NPROC}
|
||||||
fi
|
fi
|
||||||
- echo -en "travis_fold:end:build\\r\\033[0K"
|
- echo -en "travis_fold:end:build\\r\\033[0K"
|
||||||
- set +o errexit
|
- set +o errexit
|
||||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
|
||||||
# Show Vim version and also if_xx versions.
|
# Show Vim version and also if_xx versions.
|
||||||
- |
|
- |
|
||||||
if [[ "${BUILD}" = "yes" ]]; then
|
if [[ "${BUILD}" = "yes" ]]; then
|
||||||
"${SRCDIR}"/vim --version
|
"${SRCDIR}"/vim --version
|
||||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null
|
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null
|
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||||
cat if_ver.txt
|
|
||||||
fi
|
fi
|
||||||
|
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||||
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
|
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
|
||||||
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
|
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
|
||||||
|
|
||||||
@@ -150,7 +146,7 @@ script:
|
|||||||
# exclude some builds on mac os x and linux
|
# exclude some builds on mac os x and linux
|
||||||
# on mac os x "tiny" is always without GUI
|
# on mac os x "tiny" is always without GUI
|
||||||
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
|
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
|
||||||
matrix:
|
jobs:
|
||||||
include:
|
include:
|
||||||
- <<: *osx
|
- <<: *osx
|
||||||
name: tiny-nogui/clang
|
name: tiny-nogui/clang
|
||||||
@@ -161,10 +157,12 @@ matrix:
|
|||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: *tiny-nogui
|
env: *tiny-nogui
|
||||||
- <<: *osx
|
- <<: *osx
|
||||||
|
<<: *osx-homebrew
|
||||||
name: huge/clang
|
name: huge/clang
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: *osx-huge
|
env: *osx-huge
|
||||||
- <<: *osx
|
- <<: *osx
|
||||||
|
<<: *osx-homebrew
|
||||||
name: huge/gcc
|
name: huge/gcc
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: *osx-huge
|
env: *osx-huge
|
||||||
@@ -191,26 +189,34 @@ matrix:
|
|||||||
- <<: *linux
|
- <<: *linux
|
||||||
name: normal/clang
|
name: normal/clang
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: *normal
|
env:
|
||||||
|
- *normal
|
||||||
|
- *shadowopt
|
||||||
- <<: *linux
|
- <<: *linux
|
||||||
name: normal/gcc
|
name: normal/gcc
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: *normal
|
env:
|
||||||
|
- *normal
|
||||||
|
- *shadowopt
|
||||||
|
- <<: *linux
|
||||||
|
arch: s390x
|
||||||
|
name: huge/gcc-s390x
|
||||||
|
compiler: gcc
|
||||||
|
env: *linux-huge
|
||||||
|
services: []
|
||||||
- <<: *linux
|
- <<: *linux
|
||||||
name: huge+coverage/clang
|
name: huge+coverage/clang
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: *linux-huge
|
env:
|
||||||
|
- *linux-huge
|
||||||
|
# Clang cannot compile test_libvterm with "--coverage" flag.
|
||||||
|
- TEST=scripttests
|
||||||
after_success: *coverage
|
after_success: *coverage
|
||||||
- <<: *linux
|
- <<: *linux
|
||||||
name: huge+coverage/gcc
|
name: huge+coverage/gcc
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: *linux-huge
|
env: *linux-huge
|
||||||
after_success: *coverage
|
after_success: *coverage
|
||||||
- <<: *linux
|
|
||||||
name: unittests+coverage/gcc
|
|
||||||
compiler: gcc
|
|
||||||
env: *unittests
|
|
||||||
after_success: *coverage
|
|
||||||
- <<: *linux # ASAN
|
- <<: *linux # ASAN
|
||||||
name: huge+asan/gcc
|
name: huge+asan/gcc
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
@@ -225,5 +231,16 @@ matrix:
|
|||||||
- *linux-huge
|
- *linux-huge
|
||||||
- TEST="-C src testgui"
|
- TEST="-C src testgui"
|
||||||
after_success: *coverage
|
after_success: *coverage
|
||||||
|
- <<: *linux
|
||||||
|
name: unittests+coverage/gcc
|
||||||
|
compiler: gcc
|
||||||
|
env: *unittests
|
||||||
|
after_success: *coverage
|
||||||
|
- <<: *linux
|
||||||
|
name: vimtags/gcc
|
||||||
|
compiler: gcc
|
||||||
|
env:
|
||||||
|
- *normal
|
||||||
|
- TEST="-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
|
||||||
|
|
||||||
# vim:set sts=2 sw=2 tw=0 et:
|
# vim:set sts=2 sw=2 tw=0 et:
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ If the maintainer does not respond, contact the vim-dev maillist.
|
|||||||
|
|
||||||
# Translations
|
# Translations
|
||||||
|
|
||||||
|
Translations of this CONTRIBUTING file:
|
||||||
|
[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/CONTRIBUTING_ko.md)
|
||||||
|
|
||||||
Translating messages and runtime files is very much appreciated! These things
|
Translating messages and runtime files is very much appreciated! These things
|
||||||
can be translated:
|
can be translated:
|
||||||
* Messages in Vim, see [src/po/README.txt][1]
|
* Messages in Vim, see [src/po/README.txt][1]
|
||||||
|
|||||||
104
Filelist
104
Filelist
@@ -4,11 +4,16 @@
|
|||||||
# source files for all source archives
|
# source files for all source archives
|
||||||
SRC_ALL = \
|
SRC_ALL = \
|
||||||
.gitignore \
|
.gitignore \
|
||||||
|
.gitattributes \
|
||||||
.hgignore \
|
.hgignore \
|
||||||
.lgtm.yml \
|
.lgtm.yml \
|
||||||
.travis.yml \
|
.travis.yml \
|
||||||
|
.cirrus.yml \
|
||||||
appveyor.yml \
|
appveyor.yml \
|
||||||
ci/appveyor.bat \
|
ci/appveyor.bat \
|
||||||
|
ci/if_ver*.vim \
|
||||||
|
ci/load-snd-dummy.sh \
|
||||||
|
ci/config.mk*.sed \
|
||||||
src/Make_all.mak \
|
src/Make_all.mak \
|
||||||
src/README.md \
|
src/README.md \
|
||||||
src/alloc.h \
|
src/alloc.h \
|
||||||
@@ -21,9 +26,13 @@ SRC_ALL = \
|
|||||||
src/blob.c \
|
src/blob.c \
|
||||||
src/blowfish.c \
|
src/blowfish.c \
|
||||||
src/buffer.c \
|
src/buffer.c \
|
||||||
|
src/bufwrite.c \
|
||||||
src/change.c \
|
src/change.c \
|
||||||
src/channel.c \
|
src/channel.c \
|
||||||
src/charset.c \
|
src/charset.c \
|
||||||
|
src/cindent.c \
|
||||||
|
src/clientserver.c \
|
||||||
|
src/clipboard.c \
|
||||||
src/cmdexpand.c \
|
src/cmdexpand.c \
|
||||||
src/cmdhist.c \
|
src/cmdhist.c \
|
||||||
src/crypt.c \
|
src/crypt.c \
|
||||||
@@ -32,6 +41,8 @@ SRC_ALL = \
|
|||||||
src/dict.c \
|
src/dict.c \
|
||||||
src/diff.c \
|
src/diff.c \
|
||||||
src/digraph.c \
|
src/digraph.c \
|
||||||
|
src/drawline.c \
|
||||||
|
src/drawscreen.c \
|
||||||
src/edit.c \
|
src/edit.c \
|
||||||
src/eval.c \
|
src/eval.c \
|
||||||
src/evalbuffer.c \
|
src/evalbuffer.c \
|
||||||
@@ -78,6 +89,7 @@ SRC_ALL = \
|
|||||||
src/message_test.c \
|
src/message_test.c \
|
||||||
src/misc1.c \
|
src/misc1.c \
|
||||||
src/misc2.c \
|
src/misc2.c \
|
||||||
|
src/mouse.c \
|
||||||
src/move.c \
|
src/move.c \
|
||||||
src/mysign \
|
src/mysign \
|
||||||
src/nbdebug.c \
|
src/nbdebug.c \
|
||||||
@@ -88,7 +100,8 @@ SRC_ALL = \
|
|||||||
src/option.c \
|
src/option.c \
|
||||||
src/option.h \
|
src/option.h \
|
||||||
src/optiondefs.h \
|
src/optiondefs.h \
|
||||||
src/popupmnu.c \
|
src/optionstr.c \
|
||||||
|
src/popupmenu.c \
|
||||||
src/popupwin.c \
|
src/popupwin.c \
|
||||||
src/profiler.c \
|
src/profiler.c \
|
||||||
src/quickfix.c \
|
src/quickfix.c \
|
||||||
@@ -96,6 +109,7 @@ SRC_ALL = \
|
|||||||
src/regexp_bt.c \
|
src/regexp_bt.c \
|
||||||
src/regexp_nfa.c \
|
src/regexp_nfa.c \
|
||||||
src/regexp.h \
|
src/regexp.h \
|
||||||
|
src/register.c \
|
||||||
src/scriptfile.c \
|
src/scriptfile.c \
|
||||||
src/screen.c \
|
src/screen.c \
|
||||||
src/search.c \
|
src/search.c \
|
||||||
@@ -106,6 +120,7 @@ SRC_ALL = \
|
|||||||
src/spell.c \
|
src/spell.c \
|
||||||
src/spell.h \
|
src/spell.h \
|
||||||
src/spellfile.c \
|
src/spellfile.c \
|
||||||
|
src/spellsuggest.c \
|
||||||
src/structs.h \
|
src/structs.h \
|
||||||
src/syntax.c \
|
src/syntax.c \
|
||||||
src/tag.c \
|
src/tag.c \
|
||||||
@@ -114,7 +129,10 @@ SRC_ALL = \
|
|||||||
src/term.h \
|
src/term.h \
|
||||||
src/termlib.c \
|
src/termlib.c \
|
||||||
src/testing.c \
|
src/testing.c \
|
||||||
|
src/textformat.c \
|
||||||
|
src/textobject.c \
|
||||||
src/textprop.c \
|
src/textprop.c \
|
||||||
|
src/time.c \
|
||||||
src/ui.c \
|
src/ui.c \
|
||||||
src/undo.c \
|
src/undo.c \
|
||||||
src/usercmd.c \
|
src/usercmd.c \
|
||||||
@@ -122,6 +140,10 @@ SRC_ALL = \
|
|||||||
src/version.c \
|
src/version.c \
|
||||||
src/version.h \
|
src/version.h \
|
||||||
src/vim.h \
|
src/vim.h \
|
||||||
|
src/vim9.h \
|
||||||
|
src/vim9compile.c \
|
||||||
|
src/vim9execute.c \
|
||||||
|
src/vim9script.c \
|
||||||
src/viminfo.c \
|
src/viminfo.c \
|
||||||
src/winclip.c \
|
src/winclip.c \
|
||||||
src/window.c \
|
src/window.c \
|
||||||
@@ -134,20 +156,21 @@ SRC_ALL = \
|
|||||||
src/testdir/*.py \
|
src/testdir/*.py \
|
||||||
src/testdir/lsan-suppress.txt \
|
src/testdir/lsan-suppress.txt \
|
||||||
src/testdir/sautest/autoload/*.vim \
|
src/testdir/sautest/autoload/*.vim \
|
||||||
src/testdir/runtest.vim \
|
|
||||||
src/testdir/summarize.vim \
|
|
||||||
src/testdir/check.vim \
|
src/testdir/check.vim \
|
||||||
src/testdir/shared.vim \
|
|
||||||
src/testdir/screendump.vim \
|
|
||||||
src/testdir/view_util.vim \
|
|
||||||
src/testdir/term_util.vim \
|
|
||||||
src/testdir/setup.vim \
|
|
||||||
src/testdir/gui_init.vim \
|
src/testdir/gui_init.vim \
|
||||||
src/testdir/setup_gui.vim \
|
|
||||||
src/testdir/gui_preinit.vim \
|
src/testdir/gui_preinit.vim \
|
||||||
|
src/testdir/mouse.vim \
|
||||||
|
src/testdir/runtest.vim \
|
||||||
|
src/testdir/screendump.vim \
|
||||||
|
src/testdir/setup.vim \
|
||||||
|
src/testdir/setup_gui.vim \
|
||||||
|
src/testdir/shared.vim \
|
||||||
|
src/testdir/vim9.vim \
|
||||||
|
src/testdir/summarize.vim \
|
||||||
|
src/testdir/term_util.vim \
|
||||||
|
src/testdir/view_util.vim \
|
||||||
src/testdir/test[0-9]*.ok \
|
src/testdir/test[0-9]*.ok \
|
||||||
src/testdir/test[0-9]*a.ok \
|
src/testdir/test[0-9]*a.ok \
|
||||||
src/testdir/test_[a-z]*.ok \
|
|
||||||
src/testdir/test49.vim \
|
src/testdir/test49.vim \
|
||||||
src/testdir/test83-tags? \
|
src/testdir/test83-tags? \
|
||||||
src/testdir/test77a.com \
|
src/testdir/test77a.com \
|
||||||
@@ -162,12 +185,9 @@ SRC_ALL = \
|
|||||||
src/testdir/python_after/*.py \
|
src/testdir/python_after/*.py \
|
||||||
src/testdir/python_before/*.py \
|
src/testdir/python_before/*.py \
|
||||||
src/testdir/pyxfile/*.py \
|
src/testdir/pyxfile/*.py \
|
||||||
src/testdir/bench*.in \
|
|
||||||
src/testdir/bench*.vim \
|
|
||||||
src/testdir/dumps/*.dump \
|
src/testdir/dumps/*.dump \
|
||||||
src/testdir/samples/*.txt \
|
src/testdir/samples/*.txt \
|
||||||
src/testdir/samples/test000 \
|
src/testdir/samples/test000 \
|
||||||
src/testdir/if_ver*.vim \
|
|
||||||
src/testdir/color_ramp.vim \
|
src/testdir/color_ramp.vim \
|
||||||
src/testdir/silent.wav \
|
src/testdir/silent.wav \
|
||||||
src/testdir/popupbounce.vim \
|
src/testdir/popupbounce.vim \
|
||||||
@@ -180,9 +200,13 @@ SRC_ALL = \
|
|||||||
src/proto/blob.pro \
|
src/proto/blob.pro \
|
||||||
src/proto/blowfish.pro \
|
src/proto/blowfish.pro \
|
||||||
src/proto/buffer.pro \
|
src/proto/buffer.pro \
|
||||||
|
src/proto/bufwrite.pro \
|
||||||
src/proto/change.pro \
|
src/proto/change.pro \
|
||||||
src/proto/channel.pro \
|
src/proto/channel.pro \
|
||||||
src/proto/charset.pro \
|
src/proto/charset.pro \
|
||||||
|
src/proto/cindent.pro \
|
||||||
|
src/proto/clientserver.pro \
|
||||||
|
src/proto/clipboard.pro \
|
||||||
src/proto/cmdexpand.pro \
|
src/proto/cmdexpand.pro \
|
||||||
src/proto/cmdhist.pro \
|
src/proto/cmdhist.pro \
|
||||||
src/proto/crypt.pro \
|
src/proto/crypt.pro \
|
||||||
@@ -191,6 +215,8 @@ SRC_ALL = \
|
|||||||
src/proto/dict.pro \
|
src/proto/dict.pro \
|
||||||
src/proto/diff.pro \
|
src/proto/diff.pro \
|
||||||
src/proto/digraph.pro \
|
src/proto/digraph.pro \
|
||||||
|
src/proto/drawline.pro \
|
||||||
|
src/proto/drawscreen.pro \
|
||||||
src/proto/edit.pro \
|
src/proto/edit.pro \
|
||||||
src/proto/eval.pro \
|
src/proto/eval.pro \
|
||||||
src/proto/evalbuffer.pro \
|
src/proto/evalbuffer.pro \
|
||||||
@@ -226,16 +252,19 @@ SRC_ALL = \
|
|||||||
src/proto/message.pro \
|
src/proto/message.pro \
|
||||||
src/proto/misc1.pro \
|
src/proto/misc1.pro \
|
||||||
src/proto/misc2.pro \
|
src/proto/misc2.pro \
|
||||||
|
src/proto/mouse.pro \
|
||||||
src/proto/move.pro \
|
src/proto/move.pro \
|
||||||
src/proto/netbeans.pro \
|
src/proto/netbeans.pro \
|
||||||
src/proto/normal.pro \
|
src/proto/normal.pro \
|
||||||
src/proto/ops.pro \
|
src/proto/ops.pro \
|
||||||
src/proto/option.pro \
|
src/proto/option.pro \
|
||||||
src/proto/popupmnu.pro \
|
src/proto/optionstr.pro \
|
||||||
|
src/proto/popupmenu.pro \
|
||||||
src/proto/popupwin.pro \
|
src/proto/popupwin.pro \
|
||||||
src/proto/profiler.pro \
|
src/proto/profiler.pro \
|
||||||
src/proto/quickfix.pro \
|
src/proto/quickfix.pro \
|
||||||
src/proto/regexp.pro \
|
src/proto/regexp.pro \
|
||||||
|
src/proto/register.pro \
|
||||||
src/proto/scriptfile.pro \
|
src/proto/scriptfile.pro \
|
||||||
src/proto/screen.pro \
|
src/proto/screen.pro \
|
||||||
src/proto/search.pro \
|
src/proto/search.pro \
|
||||||
@@ -245,18 +274,25 @@ SRC_ALL = \
|
|||||||
src/proto/sound.pro \
|
src/proto/sound.pro \
|
||||||
src/proto/spell.pro \
|
src/proto/spell.pro \
|
||||||
src/proto/spellfile.pro \
|
src/proto/spellfile.pro \
|
||||||
|
src/proto/spellsuggest.pro \
|
||||||
src/proto/syntax.pro \
|
src/proto/syntax.pro \
|
||||||
src/proto/tag.pro \
|
src/proto/tag.pro \
|
||||||
src/proto/term.pro \
|
src/proto/term.pro \
|
||||||
src/proto/terminal.pro \
|
src/proto/terminal.pro \
|
||||||
src/proto/termlib.pro \
|
src/proto/termlib.pro \
|
||||||
src/proto/testing.pro \
|
src/proto/testing.pro \
|
||||||
|
src/proto/textformat.pro \
|
||||||
|
src/proto/textobject.pro \
|
||||||
src/proto/textprop.pro \
|
src/proto/textprop.pro \
|
||||||
|
src/proto/time.pro \
|
||||||
src/proto/ui.pro \
|
src/proto/ui.pro \
|
||||||
src/proto/undo.pro \
|
src/proto/undo.pro \
|
||||||
src/proto/usercmd.pro \
|
src/proto/usercmd.pro \
|
||||||
src/proto/userfunc.pro \
|
src/proto/userfunc.pro \
|
||||||
src/proto/version.pro \
|
src/proto/version.pro \
|
||||||
|
src/proto/vim9compile.pro \
|
||||||
|
src/proto/vim9execute.pro \
|
||||||
|
src/proto/vim9script.pro \
|
||||||
src/proto/viminfo.pro \
|
src/proto/viminfo.pro \
|
||||||
src/proto/winclip.pro \
|
src/proto/winclip.pro \
|
||||||
src/proto/window.pro \
|
src/proto/window.pro \
|
||||||
@@ -267,9 +303,6 @@ SRC_ALL = \
|
|||||||
src/libvterm/README \
|
src/libvterm/README \
|
||||||
src/libvterm/tbl2inc_c.pl \
|
src/libvterm/tbl2inc_c.pl \
|
||||||
src/libvterm/vterm.pc.in \
|
src/libvterm/vterm.pc.in \
|
||||||
src/libvterm/bin/unterm.c \
|
|
||||||
src/libvterm/bin/vterm-ctrl.c \
|
|
||||||
src/libvterm/bin/vterm-dump.c \
|
|
||||||
src/libvterm/doc/URLs \
|
src/libvterm/doc/URLs \
|
||||||
src/libvterm/doc/seqs.txt \
|
src/libvterm/doc/seqs.txt \
|
||||||
src/libvterm/include/vterm.h \
|
src/libvterm/include/vterm.h \
|
||||||
@@ -284,7 +317,7 @@ SRC_ALL = \
|
|||||||
src/libvterm/src/parser.c \
|
src/libvterm/src/parser.c \
|
||||||
src/libvterm/src/pen.c \
|
src/libvterm/src/pen.c \
|
||||||
src/libvterm/src/rect.h \
|
src/libvterm/src/rect.h \
|
||||||
src/libvterm/src/termscreen.c \
|
src/libvterm/src/screen.c \
|
||||||
src/libvterm/src/state.c \
|
src/libvterm/src/state.c \
|
||||||
src/libvterm/src/unicode.c \
|
src/libvterm/src/unicode.c \
|
||||||
src/libvterm/src/utf8.h \
|
src/libvterm/src/utf8.h \
|
||||||
@@ -384,7 +417,6 @@ SRC_UNIX = \
|
|||||||
src/gui_xmebwp.h \
|
src/gui_xmebwp.h \
|
||||||
src/gui_x11.c \
|
src/gui_x11.c \
|
||||||
src/gui_x11_pm.h \
|
src/gui_x11_pm.h \
|
||||||
src/hangulin.c \
|
|
||||||
src/if_xcmdsrv.c \
|
src/if_xcmdsrv.c \
|
||||||
src/link.sh \
|
src/link.sh \
|
||||||
src/installman.sh \
|
src/installman.sh \
|
||||||
@@ -404,7 +436,6 @@ SRC_UNIX = \
|
|||||||
src/proto/gui_motif.pro \
|
src/proto/gui_motif.pro \
|
||||||
src/proto/gui_xmdlg.pro \
|
src/proto/gui_xmdlg.pro \
|
||||||
src/proto/gui_x11.pro \
|
src/proto/gui_x11.pro \
|
||||||
src/proto/hangulin.pro \
|
|
||||||
src/proto/if_xcmdsrv.pro \
|
src/proto/if_xcmdsrv.pro \
|
||||||
src/proto/os_unix.pro \
|
src/proto/os_unix.pro \
|
||||||
src/proto/pty.pro \
|
src/proto/pty.pro \
|
||||||
@@ -505,10 +536,9 @@ SRC_DOS = \
|
|||||||
src/testdir/Make_dos.mak \
|
src/testdir/Make_dos.mak \
|
||||||
src/testdir/Make_ming.mak \
|
src/testdir/Make_ming.mak \
|
||||||
src/testdir/dos.vim \
|
src/testdir/dos.vim \
|
||||||
src/uninstal.c \
|
src/uninstall.c \
|
||||||
src/vim.def \
|
src/vim.def \
|
||||||
src/vim.rc \
|
src/vim.rc \
|
||||||
src/vimio.h \
|
|
||||||
src/gvim.exe.mnf \
|
src/gvim.exe.mnf \
|
||||||
src/vimrun.c \
|
src/vimrun.c \
|
||||||
src/xpm_w32.c \
|
src/xpm_w32.c \
|
||||||
@@ -520,7 +550,7 @@ SRC_DOS = \
|
|||||||
nsis/gvim_version.nsh \
|
nsis/gvim_version.nsh \
|
||||||
nsis/README.txt \
|
nsis/README.txt \
|
||||||
nsis/lang/*.nsi \
|
nsis/lang/*.nsi \
|
||||||
uninstal.txt \
|
uninstall.txt \
|
||||||
src/VisVim/Commands.cpp \
|
src/VisVim/Commands.cpp \
|
||||||
src/VisVim/Commands.h \
|
src/VisVim/Commands.h \
|
||||||
src/VisVim/DSAddIn.cpp \
|
src/VisVim/DSAddIn.cpp \
|
||||||
@@ -578,6 +608,15 @@ SRC_AMI = \
|
|||||||
src/testdir/amiga.vim \
|
src/testdir/amiga.vim \
|
||||||
src/xxd/Make_amiga.mak \
|
src/xxd/Make_amiga.mak \
|
||||||
|
|
||||||
|
# source files for Haiku (also in the extra archive)
|
||||||
|
SRC_HAIKU = \
|
||||||
|
README_haiku.txt \
|
||||||
|
src/os_haiku.h \
|
||||||
|
src/os_haiku.rdef.in \
|
||||||
|
src/gui_haiku.cc \
|
||||||
|
src/gui_haiku.h \
|
||||||
|
src/proto/gui_haiku.pro \
|
||||||
|
|
||||||
# source files for the Mac (also in the extra archive)
|
# source files for the Mac (also in the extra archive)
|
||||||
SRC_MAC = \
|
SRC_MAC = \
|
||||||
src/INSTALLmac.txt \
|
src/INSTALLmac.txt \
|
||||||
@@ -613,13 +652,13 @@ SRC_QNX = \
|
|||||||
src/proto/gui_photon.pro \
|
src/proto/gui_photon.pro \
|
||||||
src/proto/os_qnx.pro \
|
src/proto/os_qnx.pro \
|
||||||
|
|
||||||
|
|
||||||
# source files for the extra archive (all sources that are not for Unix)
|
# source files for the extra archive (all sources that are not for Unix)
|
||||||
SRC_EXTRA = \
|
SRC_EXTRA = \
|
||||||
$(SRC_AMI) \
|
$(SRC_AMI) \
|
||||||
$(SRC_AMI_DOS) \
|
$(SRC_AMI_DOS) \
|
||||||
$(SRC_DOS) \
|
$(SRC_DOS) \
|
||||||
$(SRC_DOS_BIN) \
|
$(SRC_DOS_BIN) \
|
||||||
|
$(SRC_HAIKU) \
|
||||||
$(SRC_MAC) \
|
$(SRC_MAC) \
|
||||||
$(SRC_QNX) \
|
$(SRC_QNX) \
|
||||||
$(SRC_VMS) \
|
$(SRC_VMS) \
|
||||||
@@ -639,6 +678,8 @@ SRC_EXTRA = \
|
|||||||
RT_ALL = \
|
RT_ALL = \
|
||||||
README.txt \
|
README.txt \
|
||||||
README.md \
|
README.md \
|
||||||
|
README_VIM9.md \
|
||||||
|
LICENSE \
|
||||||
CONTRIBUTING.md \
|
CONTRIBUTING.md \
|
||||||
runtime/bugreport.vim \
|
runtime/bugreport.vim \
|
||||||
runtime/doc/*.awk \
|
runtime/doc/*.awk \
|
||||||
@@ -646,6 +687,7 @@ RT_ALL = \
|
|||||||
runtime/doc/*.txt \
|
runtime/doc/*.txt \
|
||||||
runtime/doc/Makefile \
|
runtime/doc/Makefile \
|
||||||
runtime/doc/doctags.c \
|
runtime/doc/doctags.c \
|
||||||
|
runtime/doc/doctags.vim \
|
||||||
runtime/doc/test_urls.vim \
|
runtime/doc/test_urls.vim \
|
||||||
runtime/doc/vim.1 \
|
runtime/doc/vim.1 \
|
||||||
runtime/doc/evim.1 \
|
runtime/doc/evim.1 \
|
||||||
@@ -752,20 +794,20 @@ RT_UNIX = \
|
|||||||
README_unix.txt \
|
README_unix.txt \
|
||||||
runtime/hi16-action-make.png \
|
runtime/hi16-action-make.png \
|
||||||
runtime/hi22-action-make.png \
|
runtime/hi22-action-make.png \
|
||||||
runtime/vim16x16.png \
|
|
||||||
runtime/vim16x16.xpm \
|
|
||||||
runtime/vim32x32.png \
|
|
||||||
runtime/vim32x32.xpm \
|
|
||||||
runtime/vim48x48.png \
|
|
||||||
runtime/vim48x48.xpm \
|
|
||||||
runtime/gvim.desktop \
|
runtime/gvim.desktop \
|
||||||
runtime/vim.desktop \
|
runtime/vim.desktop \
|
||||||
|
|
||||||
# Unix and DOS runtime without CR-LF translation
|
# Unix and DOS runtime without CR-LF translation
|
||||||
RT_UNIX_DOS_BIN = \
|
RT_UNIX_DOS_BIN = \
|
||||||
runtime/vim16x16.gif \
|
runtime/vim16x16.gif \
|
||||||
|
runtime/vim16x16.png \
|
||||||
|
runtime/vim16x16.xpm \
|
||||||
runtime/vim32x32.gif \
|
runtime/vim32x32.gif \
|
||||||
|
runtime/vim32x32.png \
|
||||||
|
runtime/vim32x32.xpm \
|
||||||
runtime/vim48x48.gif \
|
runtime/vim48x48.gif \
|
||||||
|
runtime/vim48x48.png \
|
||||||
|
runtime/vim48x48.xpm \
|
||||||
|
|
||||||
# runtime not for unix or extra
|
# runtime not for unix or extra
|
||||||
RT_NO_UNIX = \
|
RT_NO_UNIX = \
|
||||||
@@ -840,7 +882,7 @@ BIN_AMI = \
|
|||||||
# files for DOS binary (also in extra archive)
|
# files for DOS binary (also in extra archive)
|
||||||
BIN_DOS = \
|
BIN_DOS = \
|
||||||
README_bindos.txt \
|
README_bindos.txt \
|
||||||
uninstal.txt \
|
uninstall.txt \
|
||||||
|
|
||||||
# files for Win32 OLE binary (also in extra archive)
|
# files for Win32 OLE binary (also in extra archive)
|
||||||
BIN_OLE = \
|
BIN_OLE = \
|
||||||
|
|||||||
78
LICENSE
Normal file
78
LICENSE
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
VIM LICENSE
|
||||||
|
|
||||||
|
I) There are no restrictions on distributing unmodified copies of Vim except
|
||||||
|
that they must include this license text. You can also distribute
|
||||||
|
unmodified parts of Vim, likewise unrestricted except that they must
|
||||||
|
include this license text. You are also allowed to include executables
|
||||||
|
that you made from the unmodified Vim sources, plus your own usage
|
||||||
|
examples and Vim scripts.
|
||||||
|
|
||||||
|
II) It is allowed to distribute a modified (or extended) version of Vim,
|
||||||
|
including executables and/or source code, when the following four
|
||||||
|
conditions are met:
|
||||||
|
1) This license text must be included unmodified.
|
||||||
|
2) The modified Vim must be distributed in one of the following five ways:
|
||||||
|
a) If you make changes to Vim yourself, you must clearly describe in
|
||||||
|
the distribution how to contact you. When the maintainer asks you
|
||||||
|
(in any way) for a copy of the modified Vim you distributed, you
|
||||||
|
must make your changes, including source code, available to the
|
||||||
|
maintainer without fee. The maintainer reserves the right to
|
||||||
|
include your changes in the official version of Vim. What the
|
||||||
|
maintainer will do with your changes and under what license they
|
||||||
|
will be distributed is negotiable. If there has been no negotiation
|
||||||
|
then this license, or a later version, also applies to your changes.
|
||||||
|
The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
|
||||||
|
changes it will be announced in appropriate places (most likely
|
||||||
|
vim.sf.net, www.vim.org and/or comp.editors). When it is completely
|
||||||
|
impossible to contact the maintainer, the obligation to send him
|
||||||
|
your changes ceases. Once the maintainer has confirmed that he has
|
||||||
|
received your changes they will not have to be sent again.
|
||||||
|
b) If you have received a modified Vim that was distributed as
|
||||||
|
mentioned under a) you are allowed to further distribute it
|
||||||
|
unmodified, as mentioned at I). If you make additional changes the
|
||||||
|
text under a) applies to those changes.
|
||||||
|
c) Provide all the changes, including source code, with every copy of
|
||||||
|
the modified Vim you distribute. This may be done in the form of a
|
||||||
|
context diff. You can choose what license to use for new code you
|
||||||
|
add. The changes and their license must not restrict others from
|
||||||
|
making their own changes to the official version of Vim.
|
||||||
|
d) When you have a modified Vim which includes changes as mentioned
|
||||||
|
under c), you can distribute it without the source code for the
|
||||||
|
changes if the following three conditions are met:
|
||||||
|
- The license that applies to the changes permits you to distribute
|
||||||
|
the changes to the Vim maintainer without fee or restriction, and
|
||||||
|
permits the Vim maintainer to include the changes in the official
|
||||||
|
version of Vim without fee or restriction.
|
||||||
|
- You keep the changes for at least three years after last
|
||||||
|
distributing the corresponding modified Vim. When the maintainer
|
||||||
|
or someone who you distributed the modified Vim to asks you (in
|
||||||
|
any way) for the changes within this period, you must make them
|
||||||
|
available to him.
|
||||||
|
- You clearly describe in the distribution how to contact you. This
|
||||||
|
contact information must remain valid for at least three years
|
||||||
|
after last distributing the corresponding modified Vim, or as long
|
||||||
|
as possible.
|
||||||
|
e) When the GNU General Public License (GPL) applies to the changes,
|
||||||
|
you can distribute the modified Vim under the GNU GPL version 2 or
|
||||||
|
any later version.
|
||||||
|
3) A message must be added, at least in the output of the ":version"
|
||||||
|
command and in the intro screen, such that the user of the modified Vim
|
||||||
|
is able to see that it was modified. When distributing as mentioned
|
||||||
|
under 2)e) adding the message is only required for as far as this does
|
||||||
|
not conflict with the license used for the changes.
|
||||||
|
4) The contact information as required under 2)a) and 2)d) must not be
|
||||||
|
removed or changed, except that the person himself can make
|
||||||
|
corrections.
|
||||||
|
|
||||||
|
III) If you distribute a modified version of Vim, you are encouraged to use
|
||||||
|
the Vim license for your changes and make them available to the
|
||||||
|
maintainer, including the source code. The preferred way to do this is
|
||||||
|
by e-mail or by uploading the files to a server and e-mailing the URL.
|
||||||
|
If the number of changes is small (e.g., a modified Makefile) e-mailing a
|
||||||
|
context diff will do. The e-mail address to be used is
|
||||||
|
<maintainer@vim.org>
|
||||||
|
|
||||||
|
IV) It is not allowed to remove this license from the distribution of the Vim
|
||||||
|
sources, parts of it or from a modified version. You may use this
|
||||||
|
license for previous Vim releases instead of the license that they came
|
||||||
|
with, at your option.
|
||||||
33
Makefile
33
Makefile
@@ -85,19 +85,19 @@ indenttest:
|
|||||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||||
|
|
||||||
MAJOR = 8
|
MAJOR = 8
|
||||||
MINOR = 1
|
MINOR = 2
|
||||||
|
|
||||||
# CHECKLIST for creating a new version:
|
# CHECKLIST for creating a new version:
|
||||||
#
|
#
|
||||||
# - Update Vim version number. For a test version in: src/version.h,
|
# - Update Vim version number. For a test version in: src/version.h,
|
||||||
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
|
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
|
||||||
# src/Makefile, README.txt, README.md, READMEdir/README*.txt,
|
# src/Makefile, README.txt, README.md, src/README.md, READMEdir/README*.txt,
|
||||||
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
|
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
|
||||||
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
|
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
|
||||||
# src/gvim.exe.mnf.
|
# src/gvim.exe.mnf.
|
||||||
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
|
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, Lua, Cscope and
|
||||||
# you can make it all work), Cscope and "huge" features. Exclude workshop
|
# "huge" features. Add MZscheme if you can make it work.
|
||||||
# and SNiFF.
|
# Use "make reconfig" after selecting the configure arguments.
|
||||||
# - With these features: "make proto" (requires cproto and Motif installed;
|
# - With these features: "make proto" (requires cproto and Motif installed;
|
||||||
# ignore warnings for missing include files, fix problems for syntax errors).
|
# ignore warnings for missing include files, fix problems for syntax errors).
|
||||||
# - With these features: "make depend" (works best with gcc).
|
# - With these features: "make depend" (works best with gcc).
|
||||||
@@ -106,9 +106,6 @@ MINOR = 1
|
|||||||
# - If you have valgrind, enable it in src/testdir/Makefile and run "make
|
# - If you have valgrind, enable it in src/testdir/Makefile and run "make
|
||||||
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
|
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
|
||||||
# Check the valgrind output.
|
# Check the valgrind output.
|
||||||
# - If you have the efence library, enable it in "src/Makefile" and run "make
|
|
||||||
# test". Disable Python and Ruby to avoid trouble with threads (efence is
|
|
||||||
# not threadsafe).
|
|
||||||
# - Adjust the date and other info in src/version.h.
|
# - Adjust the date and other info in src/version.h.
|
||||||
# - Correct included_patches[] in src/version.c.
|
# - Correct included_patches[] in src/version.c.
|
||||||
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
||||||
@@ -148,7 +145,7 @@ MINOR = 1
|
|||||||
# - > make dossrc
|
# - > make dossrc
|
||||||
# > make dosrt
|
# > make dosrt
|
||||||
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
|
||||||
# This creates the directory vim/vim81 and puts all files in there.
|
# This creates the directory vim/vim82 and puts all files in there.
|
||||||
# Win32 console version build:
|
# Win32 console version build:
|
||||||
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
||||||
# - Set environment for Visual C++ 2015:
|
# - Set environment for Visual C++ 2015:
|
||||||
@@ -156,7 +153,7 @@ MINOR = 1
|
|||||||
# > msvc2015.bat
|
# > msvc2015.bat
|
||||||
# - Build the console binary:
|
# - Build the console binary:
|
||||||
# > nmake -f Make_mvc.mak
|
# > nmake -f Make_mvc.mak
|
||||||
# - Run the tests and check the ouput:
|
# - Run the tests and check the output:
|
||||||
# > nmake -f Make_mvc.mak testclean
|
# > nmake -f Make_mvc.mak testclean
|
||||||
# > nmake -f Make_mvc.mak test
|
# > nmake -f Make_mvc.mak test
|
||||||
# - Rename (using ../tools/rename.bat):
|
# - Rename (using ../tools/rename.bat):
|
||||||
@@ -165,7 +162,7 @@ MINOR = 1
|
|||||||
# xxd/xxd.exe to xxdw32.exe
|
# xxd/xxd.exe to xxdw32.exe
|
||||||
# vim.pdb to vimw32.pdb
|
# vim.pdb to vimw32.pdb
|
||||||
# install.exe to installw32.exe
|
# install.exe to installw32.exe
|
||||||
# uninstal.exe to uninstalw32.exe
|
# uninstall.exe to uninstallw32.exe
|
||||||
# Win32 GUI version build:
|
# Win32 GUI version build:
|
||||||
# - > cd src
|
# - > cd src
|
||||||
# > nmake -f Make_mvc.mak GUI=yes
|
# > nmake -f Make_mvc.mak GUI=yes
|
||||||
@@ -175,7 +172,7 @@ MINOR = 1
|
|||||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||||
# - Move gvim.pdb to here.
|
# - Move gvim.pdb to here.
|
||||||
# - Copy "GvimExt/gvimext.dll" to here.
|
# - Copy "GvimExt/gvimext.dll" to here.
|
||||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
# - Delete vimrun.exe, install.exe and uninstall.exe.
|
||||||
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
||||||
# - Install the interfaces you want, see src/INSTALLpc.txt
|
# - Install the interfaces you want, see src/INSTALLpc.txt
|
||||||
# Adjust bigvim.bat to match the version of each interface you want.
|
# Adjust bigvim.bat to match the version of each interface you want.
|
||||||
@@ -188,7 +185,7 @@ MINOR = 1
|
|||||||
# - check the output.
|
# - check the output.
|
||||||
# - Rename "gvim.exe" to "gvim_ole.exe".
|
# - Rename "gvim.exe" to "gvim_ole.exe".
|
||||||
# - Rename gvim.pdb to "gvim_ole.pdb".
|
# - Rename gvim.pdb to "gvim_ole.pdb".
|
||||||
# - Delete install.exe and uninstal.exe.
|
# - Delete install.exe and uninstall.exe.
|
||||||
# Create the archives:
|
# Create the archives:
|
||||||
# - Copy all the "*.exe" files to where this Makefile is.
|
# - Copy all the "*.exe" files to where this Makefile is.
|
||||||
# - Copy all the "*.pdb" files to where this Makefile is.
|
# - Copy all the "*.pdb" files to where this Makefile is.
|
||||||
@@ -197,7 +194,7 @@ MINOR = 1
|
|||||||
# NSIS self installing exe:
|
# NSIS self installing exe:
|
||||||
# - To get NSIS see http://nsis.sourceforge.net
|
# - To get NSIS see http://nsis.sourceforge.net
|
||||||
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
|
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
|
||||||
# uninstalw32.exe, teew32.exe and xxdw32.exe have been build as mentioned
|
# uninstallw32.exe, teew32.exe and xxdw32.exe have been build as mentioned
|
||||||
# above.
|
# above.
|
||||||
# - copy these files (get them from a binary archive or build them):
|
# - copy these files (get them from a binary archive or build them):
|
||||||
# gvimext.dll in src/GvimExt
|
# gvimext.dll in src/GvimExt
|
||||||
@@ -206,7 +203,7 @@ MINOR = 1
|
|||||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||||
# gvimext64.dll can be obtained from:
|
# gvimext64.dll can be obtained from:
|
||||||
# https://github.com/vim/vim-win32-installer/releases
|
# https://github.com/vim/vim-win32-installer/releases
|
||||||
# It is part of gvim_8.0.*_x64.zip as vim/vim80/GvimExt/gvimext64.dll.
|
# It is part of gvim_8.2.*_x64.zip as vim/vim82/GvimExt/gvimext64.dll.
|
||||||
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
|
||||||
# version). Also put winpty32.dll and winpty-agent.exe there.
|
# version). Also put winpty32.dll and winpty-agent.exe there.
|
||||||
# - go to ../nsis and do:
|
# - go to ../nsis and do:
|
||||||
@@ -518,7 +515,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
|||||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
|
||||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
|
mkdir dist/vim/$(VIMRTDIR)/GvimExt32
|
||||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
|
cp gvimext.dll dist/vim/$(VIMRTDIR)/GvimExt32/gvimext.dll
|
||||||
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
|
mkdir dist/vim/$(VIMRTDIR)/GvimExt64
|
||||||
@@ -539,7 +536,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
|
|||||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
|
||||||
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
|
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
|
||||||
cp vimw32.pdb dist/vim$(VERSION)w32.pdb
|
cp vimw32.pdb dist/vim$(VERSION)w32.pdb
|
||||||
|
|
||||||
@@ -557,7 +554,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
|||||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
cp uninstallw32.exe dist/vim/$(VIMRTDIR)/uninstall.exe
|
||||||
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
cp gvimext.dll dist/vim/$(VIMRTDIR)/gvimext.dll
|
||||||
cp README_ole.txt dist/vim/$(VIMRTDIR)
|
cp README_ole.txt dist/vim/$(VIMRTDIR)
|
||||||
cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll
|
cp src/VisVim/VisVim.dll dist/vim/$(VIMRTDIR)/VisVim.dll
|
||||||
|
|||||||
21
README.md
21
README.md
@@ -1,12 +1,14 @@
|
|||||||

|

|
||||||
|
|
||||||
[](https://travis-ci.org/vim/vim)
|
[](https://travis-ci.org/vim/vim)
|
||||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||||
|
[](https://cirrus-ci.com/github/vim/vim)
|
||||||
[](https://codecov.io/gh/vim/vim?branch=master)
|
[](https://codecov.io/gh/vim/vim?branch=master)
|
||||||
[](https://scan.coverity.com/projects/vim)
|
[](https://scan.coverity.com/projects/vim)
|
||||||
[](https://lgtm.com/projects/g/vim/vim/context:cpp)
|
[](https://lgtm.com/projects/g/vim/vim/context:cpp)
|
||||||
[](https://buildd.debian.org/vim)
|
[](https://buildd.debian.org/vim)
|
||||||
[](https://repology.org/metapackage/vim)
|
[](https://repology.org/metapackage/vim)
|
||||||
|
For translations of this README see the end.
|
||||||
|
|
||||||
|
|
||||||
## What is Vim? ##
|
## What is Vim? ##
|
||||||
@@ -24,11 +26,12 @@ 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
|
with ten fingers can work very fast. Additionally, function keys can be
|
||||||
mapped to commands 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-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and
|
Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, Haiku, VMS and almost
|
||||||
almost all flavours of UNIX. Porting to other systems should not be very
|
all flavours of UNIX. Porting to other systems should not be very difficult.
|
||||||
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga
|
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
|
||||||
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||||
|
|
||||||
|
For Vim9 script see [README_VIM9](README_VIM9.md).
|
||||||
|
|
||||||
## Distribution ##
|
## Distribution ##
|
||||||
|
|
||||||
@@ -69,6 +72,7 @@ archive):
|
|||||||
README_unix.txt Unix
|
README_unix.txt Unix
|
||||||
README_dos.txt MS-DOS and MS-Windows
|
README_dos.txt MS-DOS and MS-Windows
|
||||||
README_mac.txt Macintosh
|
README_mac.txt Macintosh
|
||||||
|
README_haiku.txt Haiku
|
||||||
README_vms.txt VMS
|
README_vms.txt VMS
|
||||||
|
|
||||||
There are other `README_*.txt` files, depending on the distribution you used.
|
There are other `README_*.txt` files, depending on the distribution you used.
|
||||||
@@ -140,4 +144,9 @@ Send any other comments, patches, flowers and suggestions to:
|
|||||||
Bram Moolenaar <Bram@vim.org>
|
Bram Moolenaar <Bram@vim.org>
|
||||||
|
|
||||||
|
|
||||||
This is `README.md` for version 8.1 of Vim: Vi IMproved.
|
This is `README.md` for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
|
|
||||||
|
## Translations of this README ##
|
||||||
|
|
||||||
|
[Korean](https://github.com/cjw1359/opensource/blob/master/Vim/README_ko.md)
|
||||||
|
|||||||
10
README.txt
10
README.txt
@@ -1,4 +1,4 @@
|
|||||||
README.txt for version 8.1 of Vim: Vi IMproved.
|
README.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
|
|
||||||
WHAT IS VIM?
|
WHAT IS VIM?
|
||||||
@@ -16,10 +16,10 @@ 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
|
with ten fingers can work very fast. Additionally, function keys can be
|
||||||
mapped to commands 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-Windows (NT, 2000, XP, Vista, 7, 8, 10), Macintosh, VMS and
|
Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, VMS and almost all
|
||||||
almost all flavours of UNIX. Porting to other systems should not be very
|
flavours of UNIX. Porting to other systems should not be very difficult.
|
||||||
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga
|
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
|
||||||
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||||
|
|
||||||
|
|
||||||
DISTRIBUTION
|
DISTRIBUTION
|
||||||
|
|||||||
344
README_VIM9.md
Normal file
344
README_VIM9.md
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|

|
||||||
|
|
||||||
|
# What is Vim9?
|
||||||
|
|
||||||
|
This is an experimental side of [Vim](https://github.com/vim/vim).
|
||||||
|
It explores ways of making Vim script faster and better.
|
||||||
|
|
||||||
|
WARNING: The Vim9 script features are in the early stages of development,
|
||||||
|
anything can break!
|
||||||
|
|
||||||
|
# Why Vim9?
|
||||||
|
|
||||||
|
## 1. FASTER VIM SCRIPT
|
||||||
|
|
||||||
|
The third item on the poll results of 2018, after popup windows and text
|
||||||
|
properties, is faster Vim script. So how do we do that?
|
||||||
|
|
||||||
|
I have been throwing some ideas around, and soon came to the conclusion
|
||||||
|
that the current way functions are called and executed, with
|
||||||
|
dictionaries for the arguments and local variables, is never going to be
|
||||||
|
very fast. We're lucky if we can make it twice as fast. The overhead
|
||||||
|
of a function call and executing every line is just too high.
|
||||||
|
|
||||||
|
So what then? We can only make something fast by having a new way of
|
||||||
|
defining a function, with similar but different properties of the old
|
||||||
|
way:
|
||||||
|
* Arguments are only available by name, not through the a: dictionary or
|
||||||
|
the a:000 list.
|
||||||
|
* Local variables are not available in an l: dictionary.
|
||||||
|
* A few more things that slow us down, such as exception handling details.
|
||||||
|
|
||||||
|
I Implemented a "proof of concept" and measured the time to run a simple
|
||||||
|
for loop with an addition (Justin used this example in his presentation,
|
||||||
|
full code is below):
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
let sum = 0
|
||||||
|
for i in range(1, 2999999)
|
||||||
|
let sum += i
|
||||||
|
endfor
|
||||||
|
```
|
||||||
|
|
||||||
|
| how | time in sec |
|
||||||
|
| --------| -------- |
|
||||||
|
| Vim old | 5.018541 |
|
||||||
|
| Python | 0.369598 |
|
||||||
|
| Lua | 0.078817 |
|
||||||
|
| Vim new | 0.073595 |
|
||||||
|
|
||||||
|
That looks very promising! It's just one example, but it shows how much
|
||||||
|
we can gain, and also that Vim script can be faster than builtin
|
||||||
|
interfaces.
|
||||||
|
|
||||||
|
In practice the script would not do something useless as counting but change
|
||||||
|
the text. For example, re-indent all the lines:
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
let totallen = 0
|
||||||
|
for i in range(1, 100000)
|
||||||
|
call setline(i, ' ' .. getline(i))
|
||||||
|
let totallen += len(getline(i))
|
||||||
|
endfor
|
||||||
|
```
|
||||||
|
|
||||||
|
| how | time in sec |
|
||||||
|
| --------| -------- |
|
||||||
|
| Vim old | 0.853752 |
|
||||||
|
| Python | 0.304584 |
|
||||||
|
| Lua | 0.286573 |
|
||||||
|
| Vim new | 0.190276 |
|
||||||
|
|
||||||
|
The differences are smaller, but Vim 9 script is clearly the fastest.
|
||||||
|
|
||||||
|
How does Vim9 script work? The function is first compiled into a sequence of
|
||||||
|
instructions. Each instruction has one or two parameters and a stack is
|
||||||
|
used to store intermediate results. Local variables are also on the
|
||||||
|
stack, space is reserved during compilation. This is a fairly normal
|
||||||
|
way of compilation into an intermediate format, specialized for Vim,
|
||||||
|
e.g. each stack item is a typeval_T. And one of the instructions is
|
||||||
|
"execute Ex command", for commands that are not compiled.
|
||||||
|
|
||||||
|
|
||||||
|
## 2. PHASING OUT INTERFACES
|
||||||
|
|
||||||
|
Attempts have been made to implement functionality with built-in script
|
||||||
|
languages such as Python, Perl, Lua, Tcl and Ruby. This never gained much
|
||||||
|
foothold, for various reasons.
|
||||||
|
|
||||||
|
Instead of using script language support in Vim:
|
||||||
|
* Encourage implementing external tools in any language and communicate
|
||||||
|
with them. The job and channel support already makes this possible.
|
||||||
|
Really any language can be used, also Java and Go, which are not
|
||||||
|
available built-in.
|
||||||
|
* Phase out the built-in language interfaces, make maintenance a bit easier
|
||||||
|
and executables easier to build. They will be kept for backwards
|
||||||
|
compatibility, no new features.
|
||||||
|
* Improve the Vim script language, it is used to communicate with the external
|
||||||
|
tool and implements the Vim side of the interface. Also, it can be used when
|
||||||
|
an external tool is undesired.
|
||||||
|
|
||||||
|
All together this creates a clear situation: Vim with the +eval feature
|
||||||
|
will be sufficient for most plugins, while some plugins require
|
||||||
|
installing a tool that can be written in any language. No confusion
|
||||||
|
about having Vim but the plugin not working because some specific
|
||||||
|
language is missing. This is a good long term goal.
|
||||||
|
|
||||||
|
Rationale: Why is it better to run a tool separately from Vim than using a
|
||||||
|
built-in interface and interpreter? Take for example something that is
|
||||||
|
written in Python:
|
||||||
|
* The built-in interface uses the embedded python interpreter. This is less
|
||||||
|
well maintained than the python command. Building Vim with it requires
|
||||||
|
installing developer packages. If loaded dynamically there can be a version
|
||||||
|
mismatch.
|
||||||
|
* When running the tool externally the standard python command can be used,
|
||||||
|
which is quite often available by default or can be easily installed.
|
||||||
|
* The built-in interface has an API that is unique for Vim with Python. This is
|
||||||
|
an extra API to learn.
|
||||||
|
* A .py file can be compiled into a .pyc file and execute much faster.
|
||||||
|
* Inside Vim multi-threading can cause problems, since the Vim core is single
|
||||||
|
threaded. In an external tool there are no such problems.
|
||||||
|
* The Vim part is written in .vim files, the Python part is in .py files, this
|
||||||
|
is nicely separated.
|
||||||
|
* Disadvantage: An interface needs to be made between Vim and Python.
|
||||||
|
JSON is available for this, and it's fairly easy to use. But it still
|
||||||
|
requires implementing asynchronous communication.
|
||||||
|
|
||||||
|
|
||||||
|
## 3. BETTER VIM SCRIPT
|
||||||
|
|
||||||
|
To make Vim faster a new way of defining a function needs to be added.
|
||||||
|
While we are doing that, since the lines in this function won't be fully
|
||||||
|
backwards compatible anyway, we can also make Vim script easier to use.
|
||||||
|
In other words: "less weird". Making it work more like modern
|
||||||
|
programming languages will help. No surprises.
|
||||||
|
|
||||||
|
A good example is how in a function the arguments are prefixed with
|
||||||
|
"a:". No other language I know does that, so let's drop it.
|
||||||
|
|
||||||
|
Taking this one step further is also dropping "s:" for script-local variables;
|
||||||
|
everything at the script level is script-local by default. Since this is not
|
||||||
|
backwards compatible it requires a new script style: Vim9 script!
|
||||||
|
|
||||||
|
It should be possible to convert code from other languages to Vim
|
||||||
|
script. We can add functionality to make this easier. This still needs
|
||||||
|
to be discussed, but we can consider adding type checking and a simple
|
||||||
|
form of classes. If you look at JavaScript for example, it has gone
|
||||||
|
through these stages over time, adding real class support and now
|
||||||
|
TypeScript adds type checking. But we'll have to see how much of that
|
||||||
|
we actually want to include in Vim script. Ideally a conversion tool
|
||||||
|
can take Python, JavaScript or TypeScript code and convert it to Vim
|
||||||
|
script, with only some things that cannot be converted.
|
||||||
|
|
||||||
|
Vim script won't work the same as any specific language, but we can use
|
||||||
|
mechanisms that are commonly known, ideally with the same syntax. One
|
||||||
|
thing I have been thinking of is assignments without ":let". I often
|
||||||
|
make that mistake (after writing JavaScript especially). I think it is
|
||||||
|
possible, if we make local variables shadow commands. That should be OK,
|
||||||
|
if you shadow a command you want to use, just rename the variable.
|
||||||
|
Using "let" and "const" to declare a variable, like in JavaScript and
|
||||||
|
TypeScript, can work:
|
||||||
|
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
def MyFunction(arg: number): number
|
||||||
|
let local = 1
|
||||||
|
let todo = arg
|
||||||
|
const ADD = 88
|
||||||
|
while todo > 0
|
||||||
|
local += ADD
|
||||||
|
--todo
|
||||||
|
endwhile
|
||||||
|
return local
|
||||||
|
enddef
|
||||||
|
```
|
||||||
|
|
||||||
|
The similarity with JavaScript/TypeScript can also be used for dependencies
|
||||||
|
between files. Vim currently uses the `:source` command, which has several
|
||||||
|
disadvantages:
|
||||||
|
* In the sourced script, is not clear what it provides. By default all
|
||||||
|
functions are global and can be used elsewhere.
|
||||||
|
* In a script that sources other scripts, it is not clear what function comes
|
||||||
|
from what sourced script. Finding the implementation is a hassle.
|
||||||
|
* Prevention of loading the whole script twice must be manually implemented.
|
||||||
|
|
||||||
|
We can use the `:import` and `:export` commands from the JavaScript standard to
|
||||||
|
make this much better. For example, in script "myfunction.vim" define a
|
||||||
|
function and export it:
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
vim9script " Vim9 script syntax used here
|
||||||
|
|
||||||
|
let local = 'local variable is not exported, script-local'
|
||||||
|
|
||||||
|
export def MyFunction() " exported function
|
||||||
|
...
|
||||||
|
|
||||||
|
def LocalFunction() " not exported, script-local
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
And in another script import the function:
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
vim9script " Vim9 script syntax used here
|
||||||
|
|
||||||
|
import MyFunction from 'myfunction.vim'
|
||||||
|
```
|
||||||
|
|
||||||
|
This looks like JavaScript/TypeScript, thus many users will understand the
|
||||||
|
syntax.
|
||||||
|
|
||||||
|
These are ideas, this will take time to design, discuss and implement.
|
||||||
|
Eventually this will lead to Vim 9!
|
||||||
|
|
||||||
|
|
||||||
|
## Code for sum time measurements
|
||||||
|
|
||||||
|
Vim was build with -O2.
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
func VimOld()
|
||||||
|
let sum = 0
|
||||||
|
for i in range(1, 2999999)
|
||||||
|
let sum += i
|
||||||
|
endfor
|
||||||
|
return sum
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Python()
|
||||||
|
py3 << END
|
||||||
|
sum = 0
|
||||||
|
for i in range(1, 3000000):
|
||||||
|
sum += i
|
||||||
|
END
|
||||||
|
return py3eval('sum')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Lua()
|
||||||
|
lua << END
|
||||||
|
sum = 0
|
||||||
|
for i = 1, 2999999 do
|
||||||
|
sum = sum + i
|
||||||
|
end
|
||||||
|
END
|
||||||
|
return luaeval('sum')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
def VimNew()
|
||||||
|
let sum = 0
|
||||||
|
for i in range(1, 2999999)
|
||||||
|
let sum += i
|
||||||
|
endfor
|
||||||
|
return sum
|
||||||
|
enddef
|
||||||
|
|
||||||
|
let start = reltime()
|
||||||
|
echo VimOld()
|
||||||
|
echo 'Vim old: ' .. reltimestr(reltime(start))
|
||||||
|
|
||||||
|
let start = reltime()
|
||||||
|
echo Python()
|
||||||
|
echo 'Python: ' .. reltimestr(reltime(start))
|
||||||
|
|
||||||
|
let start = reltime()
|
||||||
|
echo Lua()
|
||||||
|
echo 'Lua: ' .. reltimestr(reltime(start))
|
||||||
|
|
||||||
|
let start = reltime()
|
||||||
|
echo VimNew()
|
||||||
|
echo 'Vim new: ' .. reltimestr(reltime(start))
|
||||||
|
```
|
||||||
|
|
||||||
|
## Code for indent time measurements
|
||||||
|
|
||||||
|
``` vim
|
||||||
|
def VimNew(): number
|
||||||
|
let totallen = 0
|
||||||
|
for i in range(1, 100000)
|
||||||
|
setline(i, ' ' .. getline(i))
|
||||||
|
totallen += len(getline(i))
|
||||||
|
endfor
|
||||||
|
return totallen
|
||||||
|
enddef
|
||||||
|
|
||||||
|
func VimOld()
|
||||||
|
let totallen = 0
|
||||||
|
for i in range(1, 100000)
|
||||||
|
call setline(i, ' ' .. getline(i))
|
||||||
|
let totallen += len(getline(i))
|
||||||
|
endfor
|
||||||
|
return totallen
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Lua()
|
||||||
|
lua << END
|
||||||
|
b = vim.buffer()
|
||||||
|
totallen = 0
|
||||||
|
for i = 1, 100000 do
|
||||||
|
b[i] = " " .. b[i]
|
||||||
|
totallen = totallen + string.len(b[i])
|
||||||
|
end
|
||||||
|
END
|
||||||
|
return luaeval('totallen')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Python()
|
||||||
|
py3 << END
|
||||||
|
cb = vim.current.buffer
|
||||||
|
totallen = 0
|
||||||
|
for i in range(0, 100000):
|
||||||
|
cb[i] = ' ' + cb[i]
|
||||||
|
totallen += len(cb[i])
|
||||||
|
END
|
||||||
|
return py3eval('totallen')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
new
|
||||||
|
call setline(1, range(100000))
|
||||||
|
let start = reltime()
|
||||||
|
echo VimOld()
|
||||||
|
echo 'Vim old: ' .. reltimestr(reltime(start))
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
new
|
||||||
|
call setline(1, range(100000))
|
||||||
|
let start = reltime()
|
||||||
|
echo Python()
|
||||||
|
echo 'Python: ' .. reltimestr(reltime(start))
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
new
|
||||||
|
call setline(1, range(100000))
|
||||||
|
let start = reltime()
|
||||||
|
echo Lua()
|
||||||
|
echo 'Lua: ' .. reltimestr(reltime(start))
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
new
|
||||||
|
call setline(1, range(100000))
|
||||||
|
let start = reltime()
|
||||||
|
echo VimNew()
|
||||||
|
echo 'Vim new: ' .. reltimestr(reltime(start))
|
||||||
|
bwipe!
|
||||||
|
```
|
||||||
@@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
|
|||||||
messages, shows current file name in window title, on-line
|
messages, shows current file name in window title, on-line
|
||||||
help, rectangular cut/paste, etc., etc., etc...
|
help, rectangular cut/paste, etc., etc., etc...
|
||||||
|
|
||||||
Version 8.1. Also runs under UNIX, MS-Windows, Mac, etc.
|
Version 8.2. Also runs under UNIX, MS-Windows, Mac, etc.
|
||||||
vim81rt.tgz contains the documentation and syntax files.
|
vim82rt.tgz contains the documentation and syntax files.
|
||||||
vim81bin.tgz contains the binaries.
|
vim82bin.tgz contains the binaries.
|
||||||
vim81src.tgz contains the sources.
|
vim82src.tgz contains the sources.
|
||||||
Author: Bram Moolenaar et al.
|
Author: Bram Moolenaar et al.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_ami.txt for version 8.1 of Vim: Vi IMproved.
|
README_ami.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on Amiga systems.
|
This file explains the installation of Vim on Amiga systems.
|
||||||
See README.txt for general information about Vim.
|
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:
|
You would then unpack the archives like this:
|
||||||
|
|
||||||
cd dh0:editors
|
cd dh0:editors
|
||||||
tar xf t:vim81bin.tar
|
tar xf t:vim82bin.tar
|
||||||
tar xf t:vim81rt.tar
|
tar xf t:vim82rt.tar
|
||||||
|
|
||||||
Set the $VIM environment variable to point to the top directory of your Vim
|
Set the $VIM environment variable to point to the top directory of your Vim
|
||||||
files. For the above example:
|
files. For the above example:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
README_amibin.txt for version 8.1 of Vim: Vi IMproved.
|
README_amibin.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_ami.txt" for installation instructions for the Amiga.
|
See "README_ami.txt" for installation instructions for the Amiga.
|
||||||
These files are in the runtime archive (vim81rt.tgz).
|
These files are in the runtime archive (vim82rt.tgz).
|
||||||
|
|
||||||
|
|
||||||
The Amiga "bin" archive contains the Vim executable for the Amiga. It was
|
The Amiga "bin" archive contains the Vim executable for the Amiga. It was
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
README_amisrc.txt for version 8.1 of Vim: Vi IMproved.
|
README_amisrc.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_ami.txt" for installation instructions for the Amiga.
|
See "README_ami.txt" for installation instructions for the Amiga.
|
||||||
These files are in the runtime archive (vim81rt.tgz).
|
These files are in the runtime archive (vim82rt.tgz).
|
||||||
|
|
||||||
|
|
||||||
The Amiga source archive contains the files needed to compile Vim on the
|
The Amiga source archive contains the files needed to compile Vim on the
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
README_bindos.txt for version 8.1 of Vim: Vi IMproved.
|
README_bindos.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||||
These files are in the runtime archive (vim81rt.zip).
|
These files are in the runtime archive (vim82rt.zip).
|
||||||
|
|
||||||
|
|
||||||
There are several binary distributions of Vim for the PC. You would normally
|
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.
|
pick only one of them, but it's also possible to install several.
|
||||||
These ones are available (the version number may differ):
|
These ones are available (the version number may differ):
|
||||||
vim81w32.zip Windows 95/98/NT/etc. console version
|
vim82w32.zip Windows 95/98/NT/etc. console version
|
||||||
gvim81.zip Windows 95/98/NT/etc. GUI version
|
gvim82.zip Windows 95/98/NT/etc. GUI version
|
||||||
gvim81ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
gvim82ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||||
|
|
||||||
You MUST also get the runtime archive (vim81rt.zip).
|
You MUST also get the runtime archive (vim82rt.zip).
|
||||||
The sources are also available (vim81src.zip).
|
The sources are also available (vim82src.zip).
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
README_dos.txt for version 8.1 of Vim: Vi IMproved.
|
README_dos.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on MS-DOS and MS-Windows systems.
|
This file explains the installation of Vim on MS-Windows systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
|
|
||||||
There are two ways to install Vim:
|
There are two ways to install 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:
|
located. Check the $VIM setting to see where it points to:
|
||||||
set VIM
|
set VIM
|
||||||
For example, if you have
|
For example, if you have
|
||||||
C:\vim\vim81
|
C:\vim\vim82
|
||||||
do
|
do
|
||||||
cd C:\
|
cd C:\
|
||||||
Binary and runtime Vim archives are normally unpacked in the same location,
|
Binary and runtime Vim archives are normally unpacked in the same location,
|
||||||
on top of each other.
|
on top of each other.
|
||||||
|
|
||||||
2. Unpack the zip archives. This will create a new directory "vim\vim81",
|
2. Unpack the zip archives. This will create a new directory "vim\vim82",
|
||||||
in which all the distributed Vim files are placed. Since the directory
|
in which all the distributed Vim files are placed. Since the directory
|
||||||
name includes the version number, it is unlikely that you overwrite
|
name includes the version number, it is unlikely that you overwrite
|
||||||
existing files.
|
existing files.
|
||||||
Examples:
|
Examples:
|
||||||
pkunzip -d gvim81.zip
|
pkunzip -d gvim82.zip
|
||||||
unzip vim81w32.zip
|
unzip vim82w32.zip
|
||||||
|
|
||||||
You need to unpack the runtime archive and at least one of the binary
|
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
|
archives. When using more than one binary version, be careful not to
|
||||||
@@ -64,12 +64,8 @@ These are the normal steps to install Vim from the .zip archives:
|
|||||||
to another location. That is where they will stay, the install program
|
to another location. That is where they will stay, the install program
|
||||||
won't move or copy the runtime files.
|
won't move or copy the runtime files.
|
||||||
|
|
||||||
Only for the 32 bit DOS version on MS-DOS without DPMI support (trying to
|
|
||||||
run install.exe will produce an error message): Unpack the CSDPMI4B.ZIP
|
|
||||||
archive and follow the instructions in the documentation.
|
|
||||||
|
|
||||||
3. Change to the new directory:
|
3. Change to the new directory:
|
||||||
cd vim\vim81
|
cd vim\vim82
|
||||||
Run the "install.exe" program. It will ask you a number of questions about
|
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:
|
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
|
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||||
@@ -80,8 +76,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
|
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:
|
$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:
|
The simplest is to add a line to your autoexec.bat. Examples:
|
||||||
set path=%path%;C:\vim\vim81
|
set path=%path%;C:\vim\vim82
|
||||||
set path=%path%;D:\editors\vim\vim81
|
set path=%path%;D:\editors\vim\vim82
|
||||||
- Create entries for Vim on the desktop and in the Start menu.
|
- Create entries for Vim on the desktop and in the Start menu.
|
||||||
|
|
||||||
That's it!
|
That's it!
|
||||||
@@ -93,8 +89,8 @@ Remarks:
|
|||||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
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:
|
point to the top directory of your Vim files. Example:
|
||||||
set VIM=C:\editors\vim
|
set VIM=C:\editors\vim
|
||||||
Vim version 8.1 will look for your vimrc file in $VIM, and for the runtime
|
Vim version 8.2 will look for your vimrc file in $VIM, and for the runtime
|
||||||
files in $VIM/vim81. See ":help $VIM" for more information.
|
files in $VIM/vim82. See ":help $VIM" for more information.
|
||||||
|
|
||||||
- To avoid confusion between distributed files of different versions and your
|
- To avoid confusion between distributed files of different versions and your
|
||||||
own modified vim scripts, it is recommended to use this directory layout:
|
own modified vim scripts, it is recommended to use this directory layout:
|
||||||
@@ -105,14 +101,14 @@ Remarks:
|
|||||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||||
C:\vim\... Other files you made.
|
C:\vim\... Other files you made.
|
||||||
Distributed files:
|
Distributed files:
|
||||||
C:\vim\vim81\vim.exe The Vim version 8.1 executable.
|
C:\vim\vim82\vim.exe The Vim version 8.2 executable.
|
||||||
C:\vim\vim81\doc\*.txt The version 8.1 documentation files.
|
C:\vim\vim82\doc\*.txt The version 8.2 documentation files.
|
||||||
C:\vim\vim81\bugreport.vim A Vim version 8.1 script.
|
C:\vim\vim82\bugreport.vim A Vim version 8.2 script.
|
||||||
C:\vim\vim81\... Other version 8.1 distributed files.
|
C:\vim\vim82\... Other version 8.2 distributed files.
|
||||||
In this case the $VIM environment variable would be set like this:
|
In this case the $VIM environment variable would be set like this:
|
||||||
set VIM=C:\vim
|
set VIM=C:\vim
|
||||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim81". Don't add
|
Then $VIMRUNTIME will automatically be set to "$VIM\vim82". Don't add
|
||||||
"vim81" to $VIM, that won't work.
|
"vim82" to $VIM, that won't work.
|
||||||
|
|
||||||
- You can put your Vim executable anywhere else. If the executable is not
|
- 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
|
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||||
@@ -121,7 +117,7 @@ Remarks:
|
|||||||
set VIM=d:\editors\vim
|
set VIM=d:\editors\vim
|
||||||
|
|
||||||
- If you have told the "install.exe" program to add the "Edit with Vim" menu
|
- If you have told the "install.exe" program to add the "Edit with Vim" menu
|
||||||
entry, you can remove it by running the "uninstal.exe". See
|
entry, you can remove it by running the "uninstall.exe". See
|
||||||
":help win32-popup-menu".
|
":help win32-popup-menu".
|
||||||
|
|
||||||
- In Windows 95/98/NT you can create a shortcut to Vim. This works for all
|
- In Windows 95/98/NT you can create a shortcut to Vim. This works for all
|
||||||
@@ -136,8 +132,8 @@ Remarks:
|
|||||||
Select Properties.
|
Select Properties.
|
||||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||||
Vim executable. Examples:
|
Vim executable. Examples:
|
||||||
C:\command.com /c C:\vim\vim81\vim.exe
|
C:\command.com /c C:\vim\vim82\vim.exe
|
||||||
C:\command.com /c D:\editors\vim\vim81\vim.exe
|
C:\command.com /c D:\editors\vim\vim82\vim.exe
|
||||||
6. Select the font, window size, etc. that you like. If this isn't
|
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
|
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
||||||
mode".
|
mode".
|
||||||
@@ -150,5 +146,4 @@ Remarks:
|
|||||||
|
|
||||||
For further information, type one of these inside Vim:
|
For further information, type one of these inside Vim:
|
||||||
:help dos
|
:help dos
|
||||||
:help msdos
|
|
||||||
:help win32
|
:help win32
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_extra.txt for version 8.1 of Vim: Vi IMproved.
|
README_extra.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
These extra files of Vim are for special purposes. This README explains what
|
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"
|
the files are for. For general information about Vim, see the "README.txt"
|
||||||
@@ -24,9 +24,6 @@ src/os_mac.* Files for the Mac port.
|
|||||||
|
|
||||||
src/os_mint.8 Files for the Atari Mint port.
|
src/os_mint.8 Files for the Atari Mint port.
|
||||||
|
|
||||||
src/os_os2* Files for the OS/2 port.
|
|
||||||
src/tee/* Extra program for OS/2.
|
|
||||||
|
|
||||||
src/os_vms* Files for the VMS port.
|
src/os_vms* Files for the VMS port.
|
||||||
|
|
||||||
src/os_w32*
|
src/os_w32*
|
||||||
|
|||||||
13
READMEdir/README_haiku.txt
Normal file
13
READMEdir/README_haiku.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
README_haiku.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
|
This file explains the installation of Vim on Haiku operating system.
|
||||||
|
See "README.txt" for general information about Vim.
|
||||||
|
|
||||||
|
Preferred (and easy) way to get Vim on Haiku is to use default Haiku
|
||||||
|
software repository HaikuPorts. To get Vim:
|
||||||
|
|
||||||
|
- Open HaikuDepot application and search for "vim" package, then install,
|
||||||
|
- Open a Terminal and type "pkgman install vim", then follow instructions.
|
||||||
|
|
||||||
|
If you prefer to install Vim from source, follow the instructions on
|
||||||
|
"runtime/doc/os_haiku.txt", "Compiling Vim" section.
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
README_mac.txt for version 8.1 of Vim: Vi IMproved.
|
README_mac.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on Macintosh systems.
|
This file explains the installation of Vim on Macintosh systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_ole.txt for version 8.1 of Vim: Vi IMproved.
|
README_ole.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This archive contains gvim.exe with OLE interface and VisVim.
|
This archive contains gvim.exe with OLE interface and VisVim.
|
||||||
This version of gvim.exe can also load a number of interface dynamically (you
|
This version of gvim.exe can also load a number of interface dynamically (you
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_os2.txt for version 8.1 of Vim: Vi IMproved.
|
README_os2.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file used to explain the installation of Vim on OS/2 systems.
|
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.
|
However, support for OS/2 has been removed in patch 7.4.1008.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_os390.txt for version 8.1 of Vim: Vi IMproved.
|
README_os390.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This readme explains how to build Vim on z/OS. Formerly called OS/390.
|
This readme explains how to build Vim on z/OS. Formerly called OS/390.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
@@ -11,8 +11,8 @@ Getting the source to z/OS:
|
|||||||
|
|
||||||
First get the source code in one big tar file and ftp it a binary to z/OS. If
|
First get the source code in one big tar file and ftp it a binary to z/OS. If
|
||||||
the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2)
|
the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2)
|
||||||
uncompress it on your PC, as this tools are (most likely) not available on the
|
uncompress it on your PC, as these tools are (most likely) not available on
|
||||||
mainframe.
|
the mainframe.
|
||||||
|
|
||||||
To reduce the size of the tar file you might compress it into a zip file. On
|
To reduce the size of the tar file you might compress it into a zip file. On
|
||||||
z/OS Unix you might have the command "jar" from java to uncompress a zip. Use:
|
z/OS Unix you might have the command "jar" from java to uncompress a zip. Use:
|
||||||
@@ -82,8 +82,8 @@ 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
|
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
|
and results in a big executable (~13 Mb), the second needs a few additional
|
||||||
steps and results in a much smaller executable (~4.5 Mb). This examples assume
|
steps and results in a much smaller executable (~4.5 Mb). These examples
|
||||||
you want Motif.
|
assume you want Motif.
|
||||||
|
|
||||||
The easy way:
|
The easy way:
|
||||||
$ export CC=cc
|
$ export CC=cc
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
README_src.txt for version 8.1 of Vim: Vi IMproved.
|
README_src.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
The source archive contains the files needed to compile Vim on Unix systems.
|
The source archive contains the files needed to compile Vim on Unix systems.
|
||||||
It is packed for Unix systems (NL line separator).
|
It is packed for Unix systems (NL line separator).
|
||||||
|
|
||||||
For more information, see the README.txt file that comes with the runtime
|
For more information, see the README.txt file that comes with the runtime
|
||||||
archive (vim-8.1-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
archive (vim-8.2-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||||
archive too!
|
archive too!
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
README_srcdos.txt for version 8.1 of Vim: Vi IMproved.
|
README_srcdos.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
See "README_dos.txt" for installation instructions for MS-Windows.
|
||||||
These files are in the runtime archive (vim81rt.zip).
|
These files are in the runtime archive (vim82rt.zip).
|
||||||
|
|
||||||
|
|
||||||
The DOS source archive contains the files needed to compile Vim on MS-DOS or
|
The DOS source archive contains the files needed to compile Vim on MS-Windows.
|
||||||
MS-Windows. It is packed for DOS systems, with CR-LF. It also includes the
|
It is packed for MS-Windows systems, with CR-LF. It also includes the VisVim
|
||||||
VisVim sources.
|
sources.
|
||||||
|
|
||||||
See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC.
|
See "src/INSTALLpc.txt" for instructions on how to compile Vim on the PC.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_unix.txt for version 8.1 of Vim: Vi IMproved.
|
README_unix.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on Unix systems.
|
This file explains the installation of Vim on Unix systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_vms.txt for version 8.1 of Vim: Vi IMproved.
|
README_vms.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on VMS systems.
|
This file explains the installation of Vim on VMS systems.
|
||||||
See "README.txt" in the runtime archive for information about Vim.
|
See "README.txt" in the runtime archive for information about Vim.
|
||||||
|
|||||||
@@ -1,15 +1,6 @@
|
|||||||
README_w32s.txt for version 8.1 of Vim: Vi IMproved.
|
README_w32s.txt for version 8.2 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This archive contains the gvim.exe that was specifically compiled for use in
|
This file used to explain the installation of Vim on MS-Windows 3.1 and 3.11
|
||||||
the Win32s subsystem in MS-Windows 3.1 and 3.11.
|
systems. However, support for MS-Windows 3.1 and 3.11 has been removed in
|
||||||
|
patch 7.4.1364.
|
||||||
Also see the README_bindos.txt, README_dos.txt and README.txt files.
|
See "README.txt" for general information about Vim.
|
||||||
|
|
||||||
Be careful not to overwrite the Win32s gvim.exe with the another gvim.exe when
|
|
||||||
unpacking another binary archive! Check the output of ":version":
|
|
||||||
Win32s - "MS-Windows 16/32 bit GUI version"
|
|
||||||
Win32 - "MS-Windows 32 bit GUI version"
|
|
||||||
Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
|
|
||||||
|
|
||||||
For further information, type this inside Vim:
|
|
||||||
:help win32s
|
|
||||||
|
|||||||
@@ -25,9 +25,9 @@ test_script:
|
|||||||
- cd src/testdir
|
- cd src/testdir
|
||||||
# Testing with MSVC gvim
|
# Testing with MSVC gvim
|
||||||
- path C:\Python35-x64;%PATH%
|
- path C:\Python35-x64;%PATH%
|
||||||
- nmake -f Make_dos.mak VIMPROG=..\gvim
|
- nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\gvim
|
||||||
- nmake -f Make_dos.mak clean
|
- nmake -f Make_dos.mak clean
|
||||||
# Testing with MingW console version
|
# Testing with MingW console version
|
||||||
- nmake -f Make_dos.mak VIMPROG=..\vim
|
- nmake -f Make_dos.mak POSTSCRIPT=yes VIMPROG=..\vim
|
||||||
|
|
||||||
# vim: sw=2 sts=2 et ts=8 sr
|
# vim: sw=2 sts=2 et ts=8 sr
|
||||||
|
|||||||
1
ci/config.mk.clang.sed
Normal file
1
ci/config.mk.clang.sed
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/^RUBY_CFLAGS\b/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/
|
||||||
1
ci/config.mk.gcc.sed
Normal file
1
ci/config.mk.gcc.sed
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/^CFLAGS\b/s/$/ -Wno-error=maybe-uninitialized/
|
||||||
2
ci/config.mk.sed
Normal file
2
ci/config.mk.sed
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/^CFLAGS\b/s/$/ -Wall -Wextra -Wshadow -Werror/
|
||||||
|
/^PERL_CFLAGS\b/s/$/ -Wno-error=unused-function/
|
||||||
25
ci/if_ver-1.vim
Normal file
25
ci/if_ver-1.vim
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
" Print all interface versions for Ubuntu. Part 1.
|
||||||
|
|
||||||
|
if 1
|
||||||
|
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||||
|
|
||||||
|
echo "*** Interface versions ***\n"
|
||||||
|
|
||||||
|
echo 'Lua:'
|
||||||
|
PrintVer lua print(_VERSION)
|
||||||
|
|
||||||
|
echo 'MzScheme:'
|
||||||
|
PrintVer mzscheme (display (version))
|
||||||
|
|
||||||
|
echo 'Perl:'
|
||||||
|
PrintVer perl print $^V
|
||||||
|
|
||||||
|
echo 'Ruby:'
|
||||||
|
PrintVer ruby print RUBY_VERSION
|
||||||
|
|
||||||
|
echo 'Tcl:'
|
||||||
|
PrintVer tcl puts [info patchlevel]
|
||||||
|
|
||||||
|
echo 'Python 2:'
|
||||||
|
PrintVer python print sys.version
|
||||||
|
endif
|
||||||
8
ci/if_ver-2.vim
Normal file
8
ci/if_ver-2.vim
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
" Print py3 interface versions for Ubuntu. Part 2.
|
||||||
|
|
||||||
|
if 1
|
||||||
|
execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
|
||||||
|
|
||||||
|
echo 'Python 3:'
|
||||||
|
PrintVer python3 print(sys.version)
|
||||||
|
endif
|
||||||
12
ci/if_ver-cmd.vim
Normal file
12
ci/if_ver-cmd.vim
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
" Provide 'PrintVer' command to print the interface versions.
|
||||||
|
|
||||||
|
func s:print_ver(lang, ...)
|
||||||
|
if has(a:lang)
|
||||||
|
exec a:lang join(a:000)
|
||||||
|
else
|
||||||
|
echo 'N/A'
|
||||||
|
endif
|
||||||
|
echo ''
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
command -nargs=+ PrintVer call <SID>print_ver(<f-args>)
|
||||||
8
ci/load-snd-dummy.sh
Normal file
8
ci/load-snd-dummy.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if ! modprobe snd-dummy; then
|
||||||
|
# snd-dummy is contained in linux-modules-extra (if exists)
|
||||||
|
apt install -y "linux-modules-extra-$(uname -r)"
|
||||||
|
modprobe snd-dummy
|
||||||
|
fi
|
||||||
@@ -14,7 +14,7 @@ To build the installable .exe:
|
|||||||
gvim.exe (the OLE version),
|
gvim.exe (the OLE version),
|
||||||
vimrun.exe,
|
vimrun.exe,
|
||||||
install.exe,
|
install.exe,
|
||||||
uninstal.exe,
|
uninstall.exe,
|
||||||
tee/tee.exe,
|
tee/tee.exe,
|
||||||
xxd/xxd.exe,
|
xxd/xxd.exe,
|
||||||
|
|
||||||
@@ -32,12 +32,12 @@ To build the installable .exe:
|
|||||||
|
|
||||||
5. Get a "diff.exe" program. If you skip this the built-in diff will always
|
5. Get a "diff.exe" program. If you skip this the built-in diff will always
|
||||||
be used (which is fine for most users). If you do have your own
|
be used (which is fine for most users). If you do have your own
|
||||||
"diff.exe" put it in the "../.." directory (above the "vim81" directory,
|
"diff.exe" put it in the "../.." directory (above the "vim82" directory,
|
||||||
it's the same for all Vim versions).
|
it's the same for all Vim versions).
|
||||||
You can find one in previous Vim versions or in this archive:
|
You can find one in previous Vim versions or in this archive:
|
||||||
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
http://www.mossbayeng.com/~ron/vim/diffutils.tar.gz
|
||||||
|
|
||||||
6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim81"
|
6 Also put winpty32.dll and winpty-agent.exe in "../.." (above the "vim82"
|
||||||
directory). This is required for the terminal window.
|
directory). This is required for the terminal window.
|
||||||
|
|
||||||
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
7. Do "make uganda.nsis.txt" in runtime/doc. This requires sed, you may have
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ Unicode true
|
|||||||
# Uncomment the next line if you want to include VisVim extension:
|
# Uncomment the next line if you want to include VisVim extension:
|
||||||
#!define HAVE_VIS_VIM
|
#!define HAVE_VIS_VIM
|
||||||
|
|
||||||
# Comment the following line to create a multilanguage installer:
|
# Comment the following line to create an English-only installer:
|
||||||
!define HAVE_MULTI_LANG
|
!define HAVE_MULTI_LANG
|
||||||
|
|
||||||
# Uncomment the next line if you want to create a 64-bit installer.
|
# Uncomment the next line if you want to create a 64-bit installer.
|
||||||
@@ -176,6 +176,7 @@ Page custom SetCustom ValidateCustom
|
|||||||
!include "lang\japanese.nsi"
|
!include "lang\japanese.nsi"
|
||||||
!include "lang\simpchinese.nsi"
|
!include "lang\simpchinese.nsi"
|
||||||
!include "lang\tradchinese.nsi"
|
!include "lang\tradchinese.nsi"
|
||||||
|
!include "lang\turkish.nsi"
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
##########################################################
|
##########################################################
|
||||||
@@ -341,13 +342,13 @@ Section "$(str_section_exe)" id_section_exe
|
|||||||
File ${VIMSRC}\vim${BIT}.dll
|
File ${VIMSRC}\vim${BIT}.dll
|
||||||
!endif
|
!endif
|
||||||
File /oname=install.exe ${VIMSRC}\installw32.exe
|
File /oname=install.exe ${VIMSRC}\installw32.exe
|
||||||
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe
|
File /oname=uninstall.exe ${VIMSRC}\uninstallw32.exe
|
||||||
File ${VIMSRC}\vimrun.exe
|
File ${VIMSRC}\vimrun.exe
|
||||||
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
||||||
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
||||||
File ..\vimtutor.bat
|
File ..\vimtutor.bat
|
||||||
File ..\README.txt
|
File ..\README.txt
|
||||||
File ..\uninstal.txt
|
File ..\uninstall.txt
|
||||||
File ${VIMRT}\*.vim
|
File ${VIMRT}\*.vim
|
||||||
File ${VIMRT}\rgb.txt
|
File ${VIMRT}\rgb.txt
|
||||||
|
|
||||||
@@ -955,7 +956,7 @@ Section "un.$(str_unsection_register)" id_unsection_register
|
|||||||
|
|
||||||
# delete the context menu entry and batch files
|
# delete the context menu entry and batch files
|
||||||
DetailPrint "$(str_msg_unregistering)"
|
DetailPrint "$(str_msg_unregistering)"
|
||||||
nsExec::Exec "$0\uninstal.exe -nsis"
|
nsExec::Exec "$0\uninstall.exe -nsis"
|
||||||
Pop $3
|
Pop $3
|
||||||
|
|
||||||
# We may have been put to the background when uninstall did something.
|
# We may have been put to the background when uninstall did something.
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
!ifndef __GVIM_VER__NSH__
|
!ifndef __GVIM_VER__NSH__
|
||||||
!define __GVIM_VER__NSH__
|
!define __GVIM_VER__NSH__
|
||||||
!define VER_MAJOR 8
|
!define VER_MAJOR 8
|
||||||
!define VER_MINOR 1
|
!define VER_MINOR 2
|
||||||
!endif
|
!endif
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#
|
#
|
||||||
# Locale ID : 2052
|
# Locale ID : 2052
|
||||||
# fileencoding : UTF-8
|
# fileencoding : UTF-8
|
||||||
# Author : Guopeng Wen
|
# Author : Guopeng Wen, David Liu
|
||||||
|
|
||||||
!insertmacro MUI_LANGUAGE "SimpChinese"
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ LangString str_desc_plugin ${LANG_SIMPCHINESE} \
|
|||||||
LangString str_section_plugin_home ${LANG_SIMPCHINESE} \
|
LangString str_section_plugin_home ${LANG_SIMPCHINESE} \
|
||||||
"私有插件目录"
|
"私有插件目录"
|
||||||
LangString str_desc_plugin_home ${LANG_SIMPCHINESE} \
|
LangString str_desc_plugin_home ${LANG_SIMPCHINESE} \
|
||||||
"Create plugin directories in HOME directory."
|
"在主目录创建私有插件目录。"
|
||||||
|
|
||||||
LangString str_section_plugin_vim ${LANG_SIMPCHINESE} \
|
LangString str_section_plugin_vim ${LANG_SIMPCHINESE} \
|
||||||
"公共插件目录"
|
"公共插件目录"
|
||||||
@@ -141,14 +141,14 @@ LangString str_desc_rm_exe ${LANG_SIMPCHINESE} \
|
|||||||
"删除 Vim 的所有执行文件及脚本。"
|
"删除 Vim 的所有执行文件及脚本。"
|
||||||
|
|
||||||
LangString str_ungroup_plugin ${LANG_SIMPCHINESE} \
|
LangString str_ungroup_plugin ${LANG_SIMPCHINESE} \
|
||||||
"Remove plugin directories"
|
"移除插件目录"
|
||||||
LangString str_desc_rm_plugin ${LANG_SIMPCHINESE} \
|
LangString str_desc_rm_plugin ${LANG_SIMPCHINESE} \
|
||||||
"Remove the plugin directories if they are empty."
|
"移除插件目录(如果目录为空)。"
|
||||||
|
|
||||||
LangString str_unsection_plugin_home ${LANG_SIMPCHINESE} \
|
LangString str_unsection_plugin_home ${LANG_SIMPCHINESE} \
|
||||||
"私有插件目录"
|
"私有插件目录"
|
||||||
LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \
|
LangString str_desc_rm_plugin_home ${LANG_SIMPCHINESE} \
|
||||||
"Remove the plugin directories from HOME directory."
|
"从主目录中移除私有插件目录。"
|
||||||
|
|
||||||
LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
|
LangString str_unsection_plugin_vim ${LANG_SIMPCHINESE} \
|
||||||
"公共插件目录"
|
"公共插件目录"
|
||||||
@@ -241,37 +241,37 @@ LangString str_msg_unregistering ${LANG_SIMPCHINESE} \
|
|||||||
LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \
|
LangString str_vimrc_page_title ${LANG_SIMPCHINESE} \
|
||||||
"设置 _vimrc"
|
"设置 _vimrc"
|
||||||
LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
|
LangString str_vimrc_page_subtitle ${LANG_SIMPCHINESE} \
|
||||||
"选择键盘、鼠标和增强选项。"
|
"选择键盘、鼠标和扩展设置。"
|
||||||
|
|
||||||
LangString str_msg_compat_title ${LANG_SIMPCHINESE} \
|
LangString str_msg_compat_title ${LANG_SIMPCHINESE} \
|
||||||
"Vi / Vim 行为"
|
"Vi / Vim 行为"
|
||||||
LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \
|
LangString str_msg_compat_desc ${LANG_SIMPCHINESE} \
|
||||||
"&Compatibility and enhancements"
|
"兼容性与扩展(&B)"
|
||||||
LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \
|
LangString str_msg_compat_vi ${LANG_SIMPCHINESE} \
|
||||||
"Vi compatible"
|
"原始 Vi"
|
||||||
LangString str_msg_compat_vim ${LANG_SIMPCHINESE} \
|
LangString str_msg_compat_vim ${LANG_SIMPCHINESE} \
|
||||||
"Vim original"
|
"原始 Vim"
|
||||||
LangString str_msg_compat_defaults ${LANG_SIMPCHINESE} \
|
LangString str_msg_compat_defaults ${LANG_SIMPCHINESE} \
|
||||||
"Vim with some enhancements (load defaults.vim)"
|
"Vim 原始版本和部分扩展 (加载 defaults.vim)"
|
||||||
LangString str_msg_compat_all ${LANG_SIMPCHINESE} \
|
LangString str_msg_compat_all ${LANG_SIMPCHINESE} \
|
||||||
"Vim with all enhancements (load vimrc_example.vim) (Default)"
|
"Vim 原始版本和所有扩展 (加载 vimrc_example.vim) (缺省)"
|
||||||
|
|
||||||
LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \
|
LangString str_msg_keymap_title ${LANG_SIMPCHINESE} \
|
||||||
"键盘映射"
|
"键盘映射"
|
||||||
LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \
|
LangString str_msg_keymap_desc ${LANG_SIMPCHINESE} \
|
||||||
"&Remap a few keys for Windows (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
|
"为 Windows 映射按键(&R) (例如:Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F 等)"
|
||||||
LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
|
LangString str_msg_keymap_default ${LANG_SIMPCHINESE} \
|
||||||
"Do not remap keys (Default)"
|
"不映射按键 (缺省)"
|
||||||
LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
|
LangString str_msg_keymap_windows ${LANG_SIMPCHINESE} \
|
||||||
"Remap a few keys"
|
"映射一些按键"
|
||||||
|
|
||||||
LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \
|
LangString str_msg_mouse_title ${LANG_SIMPCHINESE} \
|
||||||
"鼠标"
|
"鼠标"
|
||||||
LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \
|
LangString str_msg_mouse_desc ${LANG_SIMPCHINESE} \
|
||||||
"&Behavior of right and left buttons"
|
"左键和右键行为(&B)"
|
||||||
LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \
|
LangString str_msg_mouse_default ${LANG_SIMPCHINESE} \
|
||||||
"Right: popup menu, Left: visual mode (Default)"
|
"右键:弹出菜单, 左键:可视化模式 (缺省)"
|
||||||
LangString str_msg_mouse_windows ${LANG_SIMPCHINESE} \
|
LangString str_msg_mouse_windows ${LANG_SIMPCHINESE} \
|
||||||
"Right: popup menu, Left: select mode (Windows)"
|
"右键:弹出菜单, 左键:选择模式 (Windows)"
|
||||||
LangString str_msg_mouse_unix ${LANG_SIMPCHINESE} \
|
LangString str_msg_mouse_unix ${LANG_SIMPCHINESE} \
|
||||||
"Right: extends selection, Left: visual mode (Unix)"
|
"右键: 扩展选择, 左键:可视化模式 (Unix)"
|
||||||
|
|||||||
190
nsis/lang/turkish.nsi
Normal file
190
nsis/lang/turkish.nsi
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
# turkish.nsi: Turkish language strings for gvim NSIS installer.
|
||||||
|
# fileencoding : UTF-8
|
||||||
|
# Author : Emir SARI
|
||||||
|
|
||||||
|
!insertmacro MUI_LANGUAGE "Turkish"
|
||||||
|
|
||||||
|
# Overwrite the default translation.
|
||||||
|
# These strings should be always English. Otherwise dosinst.c fails.
|
||||||
|
LangString ^SetupCaption ${LANG_TURKISH} \
|
||||||
|
"$(^Name) Setup"
|
||||||
|
LangString ^UninstallCaption ${LANG_TURKISH} \
|
||||||
|
"$(^Name) Uninstall"
|
||||||
|
|
||||||
|
LangString str_show_readme ${LANG_TURKISH} \
|
||||||
|
"Kurulum bittikten sonra README dosyasını aç"
|
||||||
|
|
||||||
|
# Install types:
|
||||||
|
LangString str_type_typical ${LANG_TURKISH} \
|
||||||
|
"Normal"
|
||||||
|
|
||||||
|
LangString str_type_minimal ${LANG_TURKISH} \
|
||||||
|
"Küçük"
|
||||||
|
|
||||||
|
LangString str_type_full ${LANG_TURKISH} \
|
||||||
|
"Tam"
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Section Titles & Description {{{1
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
LangString str_section_old_ver ${LANG_TURKISH} \
|
||||||
|
"Eski sürümü kaldır"
|
||||||
|
LangString str_desc_old_ver ${LANG_TURKISH} \
|
||||||
|
"Vim'in eski sürümünü sisteminizden kaldırır."
|
||||||
|
|
||||||
|
LangString str_section_exe ${LANG_TURKISH} \
|
||||||
|
"Vim grafik arabirimi ve çalışma dosyaları"
|
||||||
|
LangString str_desc_exe ${LANG_TURKISH} \
|
||||||
|
"Vim program başlatıcı ve çalışma dosyaları. Bu bileşen zorunludur."
|
||||||
|
|
||||||
|
LangString str_section_console ${LANG_TURKISH} \
|
||||||
|
"Vim konsol sürümü"
|
||||||
|
LangString str_desc_console ${LANG_TURKISH} \
|
||||||
|
"Vim'in konsol sürümü (vim.exe)."
|
||||||
|
|
||||||
|
LangString str_section_batch ${LANG_TURKISH} \
|
||||||
|
".bat dosyaları oluştur"
|
||||||
|
LangString str_desc_batch ${LANG_TURKISH} \
|
||||||
|
"Vim için komut satırında kullanmak üzere .bat dosyaları oluşturur"
|
||||||
|
|
||||||
|
LangString str_group_icons ${LANG_TURKISH} \
|
||||||
|
"Vim için kısayollar oluştur"
|
||||||
|
LangString str_desc_icons ${LANG_TURKISH} \
|
||||||
|
"Kolay erişim için Vim kısayolları oluşturur."
|
||||||
|
|
||||||
|
LangString str_section_desktop ${LANG_TURKISH} \
|
||||||
|
"Masaüstünde"
|
||||||
|
LangString str_desc_desktop ${LANG_TURKISH} \
|
||||||
|
"gVim programı için Masaüstünde kısayol oluşturur."
|
||||||
|
|
||||||
|
LangString str_section_start_menu ${LANG_TURKISH} \
|
||||||
|
"Başlat Menüsü - Programlar klasöründe"
|
||||||
|
LangString str_desc_start_menu ${LANG_TURKISH} \
|
||||||
|
"Vim kısayolunu Başlat Menüsüne ekler."
|
||||||
|
|
||||||
|
LangString str_section_edit_with ${LANG_TURKISH} \
|
||||||
|
"Vim ile Aç"
|
||||||
|
LangString str_desc_edit_with ${LANG_TURKISH} \
|
||||||
|
"Vim'i $\"Birlikte aç$\" sağ tık menüsüne ekler."
|
||||||
|
|
||||||
|
LangString str_section_vim_rc ${LANG_TURKISH} \
|
||||||
|
"Bir yapılandırma dosyası oluştur"
|
||||||
|
LangString str_desc_vim_rc ${LANG_TURKISH} \
|
||||||
|
"Eğer yoksa bir yapılandırma dosyası (_vimrc) oluşturur."
|
||||||
|
|
||||||
|
LangString str_group_plugin ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinleri oluştur"
|
||||||
|
LangString str_desc_plugin ${LANG_TURKISH} \
|
||||||
|
"Bu dizinlere Vim eklentilerini yerleştirerek Vim'e yeni \
|
||||||
|
özellikler kazandırabilirsiniz."
|
||||||
|
|
||||||
|
LangString str_section_plugin_home ${LANG_TURKISH} \
|
||||||
|
"Gizli"
|
||||||
|
LangString str_desc_plugin_home ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinlerini EV dizininde oluşturur."
|
||||||
|
|
||||||
|
LangString str_section_plugin_vim ${LANG_TURKISH} \
|
||||||
|
"Paylaşılan"
|
||||||
|
LangString str_desc_plugin_vim ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinlerini Vim yükleme dizininde oluşturur. Bu eklentilerden \
|
||||||
|
bilgisayarın tüm kullanıcıları yararlanabilir."
|
||||||
|
|
||||||
|
LangString str_section_vis_vim ${LANG_TURKISH} \
|
||||||
|
"VisVim eklentisi"
|
||||||
|
LangString str_desc_vis_vim ${LANG_TURKISH} \
|
||||||
|
"Microsoft Visual Studio entegrasyonu için VisVim eklentisi"
|
||||||
|
|
||||||
|
LangString str_section_nls ${LANG_TURKISH} \
|
||||||
|
"Ek dil desteği"
|
||||||
|
LangString str_desc_nls ${LANG_TURKISH} \
|
||||||
|
"Mevcut olan Vim yerelleştirmelerini yükler."
|
||||||
|
|
||||||
|
LangString str_unsection_register ${LANG_TURKISH} \
|
||||||
|
"Vim kaydını kaldır"
|
||||||
|
LangString str_desc_unregister ${LANG_TURKISH} \
|
||||||
|
"Vim'in bu bilgisayardaki kaydını kaldırır."
|
||||||
|
|
||||||
|
LangString str_unsection_exe ${LANG_TURKISH} \
|
||||||
|
"Vim programını ve çalıştırma dosyalarını kaldır"
|
||||||
|
LangString str_desc_rm_exe ${LANG_TURKISH} \
|
||||||
|
"Vim çalıştırılabilir dosyalarını ve diğer dosyaları kaldırır."
|
||||||
|
|
||||||
|
LangString str_ungroup_plugin ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinlerini kaldır"
|
||||||
|
LangString str_desc_rm_plugin ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinlerini eğer boş ise kaldırır."
|
||||||
|
|
||||||
|
LangString str_unsection_plugin_home ${LANG_TURKISH} \
|
||||||
|
"Gizli"
|
||||||
|
LangString str_desc_rm_plugin_home ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinlerini EV dizininden kaldırır."
|
||||||
|
|
||||||
|
LangString str_unsection_plugin_vim ${LANG_TURKISH} \
|
||||||
|
"Paylaşılan"
|
||||||
|
LangString str_desc_rm_plugin_vim ${LANG_TURKISH} \
|
||||||
|
"Eklenti dizinlerini Vim yükleme dizininden kaldırır."
|
||||||
|
|
||||||
|
LangString str_unsection_rootdir ${LANG_TURKISH} \
|
||||||
|
"Vim kök dizinini kaldır"
|
||||||
|
LangString str_desc_rm_rootdir ${LANG_TURKISH} \
|
||||||
|
"Vim kök dizinini kaldırır. Bu dizin Vim yapılandırma dosyalarını içerir!"
|
||||||
|
|
||||||
|
LangString str_msg_install_fail ${LANG_TURKISH} \
|
||||||
|
"Yükleme başarısız oldu. Yeniden deneyin."
|
||||||
|
|
||||||
|
LangString str_msg_rm_exe_fail ${LANG_TURKISH} \
|
||||||
|
"$0 içindeki bazı dosyalar silinemedi!$\r$\n\
|
||||||
|
Bu dosyaları el ile kaldırmalısınız."
|
||||||
|
|
||||||
|
LangString str_msg_uninstalling ${LANG_TURKISH} \
|
||||||
|
"Eski sürüm kaldırılıyor..."
|
||||||
|
|
||||||
|
LangString str_msg_registering ${LANG_TURKISH} \
|
||||||
|
"Kaydediliyor..."
|
||||||
|
|
||||||
|
LangString str_msg_unregistering ${LANG_TURKISH} \
|
||||||
|
"Kayıt siliniyor..."
|
||||||
|
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Dialog Box {{{1
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
LangString str_vimrc_page_title ${LANG_TURKISH} \
|
||||||
|
"_vimrc ayarlarını seçin"
|
||||||
|
LangString str_vimrc_page_subtitle ${LANG_TURKISH} \
|
||||||
|
"Yüklenecek ek özellikler, klavye ve fare için ayarları seçin."
|
||||||
|
|
||||||
|
LangString str_msg_compat_title ${LANG_TURKISH} \
|
||||||
|
" Vi / Vim davranışı "
|
||||||
|
LangString str_msg_compat_desc ${LANG_TURKISH} \
|
||||||
|
"&Uyumluluk ve ek özellikler"
|
||||||
|
LangString str_msg_compat_vi ${LANG_TURKISH} \
|
||||||
|
"Vi uyumlu"
|
||||||
|
LangString str_msg_compat_vim ${LANG_TURKISH} \
|
||||||
|
"Vim orijinal"
|
||||||
|
LangString str_msg_compat_defaults ${LANG_TURKISH} \
|
||||||
|
"Vim ve ek olarak bazı ek özellikler (load defaults.vim)"
|
||||||
|
LangString str_msg_compat_all ${LANG_TURKISH} \
|
||||||
|
"Vim ve ek olarak tüm ek özellikler (load vimrc_example.vim) (Default)"
|
||||||
|
|
||||||
|
LangString str_msg_keymap_title ${LANG_TURKISH} \
|
||||||
|
" Klavye İşlevleri "
|
||||||
|
LangString str_msg_keymap_desc ${LANG_TURKISH} \
|
||||||
|
"&Windows için bazı düğmeleri yeniden ayarla (Ctrl-V, Ctrl-C, Ctrl-A, Ctrl-S, Ctrl-F, etc)"
|
||||||
|
LangString str_msg_keymap_default ${LANG_TURKISH} \
|
||||||
|
"Düğme işlevlerini değiştirme (varsayılan)"
|
||||||
|
LangString str_msg_keymap_windows ${LANG_TURKISH} \
|
||||||
|
"Bazı düğmeleri yeniden ayarla"
|
||||||
|
|
||||||
|
LangString str_msg_mouse_title ${LANG_TURKISH} \
|
||||||
|
" Fare İşlevleri "
|
||||||
|
LangString str_msg_mouse_desc ${LANG_TURKISH} \
|
||||||
|
"&Sağ ve sol düğme davranışı"
|
||||||
|
LangString str_msg_mouse_default ${LANG_TURKISH} \
|
||||||
|
"Sağ: açılır menü, Sol: Görsel Kip (varsayılan)"
|
||||||
|
LangString str_msg_mouse_windows ${LANG_TURKISH} \
|
||||||
|
"Sağ: açılır menü, Sol: seçim kipi (Windows)"
|
||||||
|
LangString str_msg_mouse_unix ${LANG_TURKISH} \
|
||||||
|
"Sağ: seçimi genişlet, Sol: Görsel Kip (Unix)"
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: C
|
" Language: C
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2018 Aug 20
|
" Last Change: 2020 Apr 08
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
@@ -635,3 +635,5 @@ endfunc
|
|||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim: noet sw=2 sts=2
|
||||||
|
|||||||
6
runtime/autoload/dist/ft.vim
vendored
6
runtime/autoload/dist/ft.vim
vendored
@@ -1,7 +1,7 @@
|
|||||||
" Vim functions for file type detection
|
" Vim functions for file type detection
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2019 Mar 08
|
" Last Change: 2020 Mar 30
|
||||||
|
|
||||||
" These functions are moved here from runtime/filetype.vim to make startup
|
" These functions are moved here from runtime/filetype.vim to make startup
|
||||||
" faster.
|
" faster.
|
||||||
@@ -298,7 +298,7 @@ endfunc
|
|||||||
|
|
||||||
func dist#ft#FTmms()
|
func dist#ft#FTmms()
|
||||||
let n = 1
|
let n = 1
|
||||||
while n < 10
|
while n < 20
|
||||||
let line = getline(n)
|
let line = getline(n)
|
||||||
if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
|
if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
|
||||||
setf mmix
|
setf mmix
|
||||||
@@ -325,7 +325,7 @@ endfunc
|
|||||||
|
|
||||||
func dist#ft#FTmm()
|
func dist#ft#FTmm()
|
||||||
let n = 1
|
let n = 1
|
||||||
while n < 10
|
while n < 20
|
||||||
let line = getline(n)
|
let line = getline(n)
|
||||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||||
setf objcpp
|
setf objcpp
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ if &cp
|
|||||||
endif
|
endif
|
||||||
if v:version < 702
|
if v:version < 702
|
||||||
echohl WarningMsg
|
echohl WarningMsg
|
||||||
echo "***warning*** this version of getscript needs vim 7.2"
|
echo "***warning*** this version of GetLatestVimScripts needs vim 7.2"
|
||||||
echohl Normal
|
echohl Normal
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: HTML and XHTML
|
" Language: HTML and XHTML
|
||||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||||
" Last Change: 2014 Jun 20
|
" Last Change: 2019 Sep 27
|
||||||
|
|
||||||
" Distinguish between HTML versions.
|
" Distinguish between HTML versions.
|
||||||
" To use with other HTML versions add another "elseif" condition to match
|
" To use with other HTML versions add another "elseif" condition to match
|
||||||
@@ -245,7 +245,8 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
|||||||
" If context contains white space it is attribute.
|
" If context contains white space it is attribute.
|
||||||
" It can be also value of attribute.
|
" It can be also value of attribute.
|
||||||
" We have to get first word to offer proper completions
|
" We have to get first word to offer proper completions
|
||||||
if context == ''
|
if context =~ '^\s*$'
|
||||||
|
" empty or whitespace line
|
||||||
let tag = ''
|
let tag = ''
|
||||||
else
|
else
|
||||||
let tag = split(context)[0]
|
let tag = split(context)[0]
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
" netrw.vim: Handles file transfer and remote directory listing across
|
" netrw.vim: Handles file transfer and remote directory listing across
|
||||||
" AUTOLOAD SECTION
|
" AUTOLOAD SECTION
|
||||||
" Date: Jul 16, 2019
|
" Date: Jan 07, 2020
|
||||||
" Version: 165
|
" Version: 168
|
||||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
@@ -13,6 +13,10 @@
|
|||||||
" expressed or implied. By using this plugin, you agree that
|
" expressed or implied. By using this plugin, you agree that
|
||||||
" in no event will the copyright holder be liable for any damages
|
" in no event will the copyright holder be liable for any damages
|
||||||
" resulting from the use of this software.
|
" resulting from the use of this software.
|
||||||
|
"
|
||||||
|
" Note: the code here was started in 1999 under a much earlier version of vim. The directory browsing
|
||||||
|
" code was written using vim v6, which did not have Lists (Lists were first offered with vim-v7).
|
||||||
|
"
|
||||||
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
"
|
"
|
||||||
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
|
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
|
||||||
@@ -39,7 +43,7 @@ if exists("s:needspatches")
|
|||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let g:loaded_netrw = "v165"
|
let g:loaded_netrw = "v168"
|
||||||
if !exists("s:NOTE")
|
if !exists("s:NOTE")
|
||||||
let s:NOTE = 0
|
let s:NOTE = 0
|
||||||
let s:WARNING = 1
|
let s:WARNING = 1
|
||||||
@@ -64,7 +68,7 @@ setl cpo&vim
|
|||||||
" Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number)
|
" Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number)
|
||||||
" netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number)
|
" netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number)
|
||||||
" (this function can optionally take a list of messages)
|
" (this function can optionally take a list of messages)
|
||||||
" Mar 21, 2017 : max errnum currently is 105
|
" Dec 2, 2019 : max errnum currently is 106
|
||||||
fun! netrw#ErrorMsg(level,msg,errnum)
|
fun! netrw#ErrorMsg(level,msg,errnum)
|
||||||
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
|
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
|
||||||
|
|
||||||
@@ -232,12 +236,12 @@ if !exists("g:netrw_ftp_options")
|
|||||||
let g:netrw_ftp_options= "-i -n"
|
let g:netrw_ftp_options= "-i -n"
|
||||||
endif
|
endif
|
||||||
if !exists("g:netrw_http_cmd")
|
if !exists("g:netrw_http_cmd")
|
||||||
if executable("curl")
|
if executable("wget")
|
||||||
let g:netrw_http_cmd = "curl"
|
|
||||||
call s:NetrwInit("g:netrw_http_xcmd","-L -o")
|
|
||||||
elseif executable("wget")
|
|
||||||
let g:netrw_http_cmd = "wget"
|
let g:netrw_http_cmd = "wget"
|
||||||
call s:NetrwInit("g:netrw_http_xcmd","-q -O")
|
call s:NetrwInit("g:netrw_http_xcmd","-q -O")
|
||||||
|
elseif executable("curl")
|
||||||
|
let g:netrw_http_cmd = "curl"
|
||||||
|
call s:NetrwInit("g:netrw_http_xcmd","-L -o")
|
||||||
elseif executable("elinks")
|
elseif executable("elinks")
|
||||||
let g:netrw_http_cmd = "elinks"
|
let g:netrw_http_cmd = "elinks"
|
||||||
call s:NetrwInit("g:netrw_http_xcmd","-source >")
|
call s:NetrwInit("g:netrw_http_xcmd","-source >")
|
||||||
@@ -443,23 +447,9 @@ if !exists("g:netrw_localmovecmd")
|
|||||||
let g:netrw_localmovecmd= ""
|
let g:netrw_localmovecmd= ""
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
" following serves as an example for how to insert a version&patch specific test
|
||||||
" 1109 provides for delete(tmpdir,"d") which is what will be used
|
"if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
||||||
if exists("g:netrw_local_rmdir")
|
"endif
|
||||||
let g:netrw_localrmdir= g:netrw_local_rmdir
|
|
||||||
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86)
|
|
||||||
endif
|
|
||||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
|
||||||
if g:netrw_cygwin
|
|
||||||
call s:NetrwInit("g:netrw_localrmdir","rmdir")
|
|
||||||
else
|
|
||||||
let g:netrw_localrmdir = expand("$COMSPEC")
|
|
||||||
let g:netrw_localrmdiropt= " /c rmdir"
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
call s:NetrwInit("g:netrw_localrmdir","rmdir")
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
call s:NetrwInit("g:netrw_liststyle" , s:THINLIST)
|
call s:NetrwInit("g:netrw_liststyle" , s:THINLIST)
|
||||||
" sanity checks
|
" sanity checks
|
||||||
if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
|
if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
|
||||||
@@ -689,6 +679,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
|
|
||||||
" save registers
|
" save registers
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
|
" call Decho("(netrw#Explore) save @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let keepregstar = @*
|
sil! let keepregstar = @*
|
||||||
sil! let keepregplus = @+
|
sil! let keepregplus = @+
|
||||||
endif
|
endif
|
||||||
@@ -916,8 +907,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
if !exists("w:netrw_explore_list") " sanity check
|
if !exists("w:netrw_explore_list") " sanity check
|
||||||
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
|
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @* = keepregstar
|
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+ = keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
sil! let @/ = keepregslash
|
sil! let @/ = keepregslash
|
||||||
" call Dret("netrw#Explore")
|
" call Dret("netrw#Explore")
|
||||||
@@ -941,8 +933,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
if !exists("w:netrw_explore_list") " sanity check
|
if !exists("w:netrw_explore_list") " sanity check
|
||||||
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
|
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @* = keepregstar
|
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+ = keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
sil! let @/ = keepregslash
|
sil! let @/ = keepregslash
|
||||||
" call Dret("netrw#Explore")
|
" call Dret("netrw#Explore")
|
||||||
@@ -996,8 +989,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
|
keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45)
|
||||||
if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
|
if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @* = keepregstar
|
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+ = keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
sil! let @/ = keepregslash
|
sil! let @/ = keepregslash
|
||||||
" call Dret("netrw#Explore : no files matched pattern")
|
" call Dret("netrw#Explore : no files matched pattern")
|
||||||
@@ -1032,8 +1026,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
|
if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/')
|
||||||
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
|
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @* = keepregstar
|
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+ = keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
sil! let @/ = keepregslash
|
sil! let @/ = keepregslash
|
||||||
" call Dret("netrw#Explore : no files matched")
|
" call Dret("netrw#Explore : no files matched")
|
||||||
@@ -1080,8 +1075,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44)
|
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44)
|
||||||
endif
|
endif
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @* = keepregstar
|
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+ = keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
sil! let @/ = keepregslash
|
sil! let @/ = keepregslash
|
||||||
" call Dret("netrw#Explore : missing +path_extra")
|
" call Dret("netrw#Explore : missing +path_extra")
|
||||||
@@ -1153,8 +1149,9 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
|||||||
" Consequently, set s:netrw_events to 2.
|
" Consequently, set s:netrw_events to 2.
|
||||||
let s:netrw_events= 2
|
let s:netrw_events= 2
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @* = keepregstar
|
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+ = keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
sil! let @/ = keepregslash
|
sil! let @/ = keepregslash
|
||||||
" call Dret("netrw#Explore : @/<".@/.">")
|
" call Dret("netrw#Explore : @/<".@/.">")
|
||||||
@@ -1528,7 +1525,8 @@ fun! netrw#Obtain(islocal,fname,...)
|
|||||||
" -i : turns off interactive prompting from ftp
|
" -i : turns off interactive prompting from ftp
|
||||||
" -n unix : DON'T use <.netrc>, even though it exists
|
" -n unix : DON'T use <.netrc>, even though it exists
|
||||||
" -n win32: quit being obnoxious about password
|
" -n win32: quit being obnoxious about password
|
||||||
NetrwKeepj norm! 1Gdd
|
" Note: using "_dd to delete to the black hole register; avoids messing up @@
|
||||||
|
NetrwKeepj norm! 1G"_dd
|
||||||
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
||||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||||
if getline(1) !~ "^$"
|
if getline(1) !~ "^$"
|
||||||
@@ -1642,7 +1640,6 @@ fun! s:NetrwOptionsSave(vt)
|
|||||||
let {a:vt}netrw_cpokeep = &l:cpo
|
let {a:vt}netrw_cpokeep = &l:cpo
|
||||||
let {a:vt}netrw_diffkeep = &l:diff
|
let {a:vt}netrw_diffkeep = &l:diff
|
||||||
let {a:vt}netrw_fenkeep = &l:fen
|
let {a:vt}netrw_fenkeep = &l:fen
|
||||||
" call Decho("saving current settings: got here#1",'~'.expand("<slnum>"))
|
|
||||||
if !exists("g:netrw_ffkeep") || g:netrw_ffkeep
|
if !exists("g:netrw_ffkeep") || g:netrw_ffkeep
|
||||||
let {a:vt}netrw_ffkeep = &l:ff
|
let {a:vt}netrw_ffkeep = &l:ff
|
||||||
endif
|
endif
|
||||||
@@ -1661,7 +1658,6 @@ fun! s:NetrwOptionsSave(vt)
|
|||||||
let {a:vt}netrw_rokeep = &l:ro
|
let {a:vt}netrw_rokeep = &l:ro
|
||||||
let {a:vt}netrw_selkeep = &l:sel
|
let {a:vt}netrw_selkeep = &l:sel
|
||||||
let {a:vt}netrw_spellkeep = &l:spell
|
let {a:vt}netrw_spellkeep = &l:spell
|
||||||
" call Decho("saving current settings: got here#2",'~'.expand("<slnum>"))
|
|
||||||
if !g:netrw_use_noswf
|
if !g:netrw_use_noswf
|
||||||
let {a:vt}netrw_swfkeep = &l:swf
|
let {a:vt}netrw_swfkeep = &l:swf
|
||||||
endif
|
endif
|
||||||
@@ -1675,6 +1671,7 @@ fun! s:NetrwOptionsSave(vt)
|
|||||||
" call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>"))
|
" call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>"))
|
||||||
if g:netrw_keepdir
|
if g:netrw_keepdir
|
||||||
let {a:vt}netrw_dirkeep = getcwd()
|
let {a:vt}netrw_dirkeep = getcwd()
|
||||||
|
" call Decho("saving to ".a:vt."netrw_dirkeep<".{a:vt}netrw_dirkeep.">",'~'.expand("<slnum>"))
|
||||||
endif
|
endif
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let {a:vt}netrw_starkeep = @*
|
sil! let {a:vt}netrw_starkeep = @*
|
||||||
@@ -1745,6 +1742,7 @@ fun! s:NetrwOptionsRestore(vt)
|
|||||||
" call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$"))
|
" call Dfunc("s:NetrwOptionsRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$"))
|
||||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||||
if !exists("{a:vt}netrw_optionsave")
|
if !exists("{a:vt}netrw_optionsave")
|
||||||
|
" call Decho("case ".a:vt."netrw_optionsave : doesn't exist",'~'.expand("<slnum>"))
|
||||||
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
" call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>"))
|
||||||
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
||||||
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
|
" call Dret("s:NetrwOptionsRestore : ".a:vt."netrw_optionsave doesn't exist")
|
||||||
@@ -1829,6 +1827,7 @@ fun! s:NetrwOptionsRestore(vt)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
|
" call Decho("has clipboard",'~'.expand("<slnum>"))
|
||||||
call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*")
|
call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*")
|
||||||
call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+")
|
call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+")
|
||||||
endif
|
endif
|
||||||
@@ -1890,7 +1889,7 @@ endfun
|
|||||||
" Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
|
" Used by s:NetrwOptionsRestore() to restore each netrw-senstive setting
|
||||||
" keepvars are set up by s:NetrwOptionsSave
|
" keepvars are set up by s:NetrwOptionsSave
|
||||||
fun! s:NetrwRestoreSetting(keepvar,setting)
|
fun! s:NetrwRestoreSetting(keepvar,setting)
|
||||||
"" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
|
""" call Dfunc("s:NetrwRestoreSetting(a:keepvar<".a:keepvar."> a:setting<".a:setting.">)")
|
||||||
|
|
||||||
" typically called from s:NetrwOptionsRestore
|
" typically called from s:NetrwOptionsRestore
|
||||||
" call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option')
|
" call s:NetrwRestoreSettings(keep-option-variable-name,'associated-option')
|
||||||
@@ -1905,7 +1904,7 @@ fun! s:NetrwRestoreSetting(keepvar,setting)
|
|||||||
"" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">")
|
"" call Decho("fyi: a:setting<".a:setting."> setting<".setting.">")
|
||||||
|
|
||||||
if setting != keepvarval
|
if setting != keepvarval
|
||||||
"" call Decho("restore setting<".a:setting."=".setting."> to keepvarval<".keepvarval.">")
|
"" call Decho("restore setting<".a:setting."> (currently=".setting.") to keepvarval<".keepvarval.">")
|
||||||
if type(a:setting) == 0
|
if type(a:setting) == 0
|
||||||
exe "let ".a:setting."= ".keepvarval
|
exe "let ".a:setting."= ".keepvarval
|
||||||
elseif type(a:setting) == 1
|
elseif type(a:setting) == 1
|
||||||
@@ -2195,7 +2194,7 @@ fun! netrw#NetRead(mode,...)
|
|||||||
" -i : turns off interactive prompting from ftp
|
" -i : turns off interactive prompting from ftp
|
||||||
" -n unix : DON'T use <.netrc>, even though it exists
|
" -n unix : DON'T use <.netrc>, even though it exists
|
||||||
" -n win32: quit being obnoxious about password
|
" -n win32: quit being obnoxious about password
|
||||||
NetrwKeepj norm! 1Gdd
|
NetrwKeepj norm! 1G"_dd
|
||||||
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
||||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||||
if getline(1) !~ "^$"
|
if getline(1) !~ "^$"
|
||||||
@@ -2295,7 +2294,7 @@ fun! netrw#NetRead(mode,...)
|
|||||||
NetrwKeepj put ='quit'
|
NetrwKeepj put ='quit'
|
||||||
|
|
||||||
" perform cadaver operation:
|
" perform cadaver operation:
|
||||||
NetrwKeepj norm! 1Gdd
|
NetrwKeepj norm! 1G"_dd
|
||||||
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
|
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
|
||||||
keepj bd!
|
keepj bd!
|
||||||
endif
|
endif
|
||||||
@@ -2611,7 +2610,7 @@ fun! netrw#NetWrite(...) range
|
|||||||
" -i : turns off interactive prompting from ftp
|
" -i : turns off interactive prompting from ftp
|
||||||
" -n unix : DON'T use <.netrc>, even though it exists
|
" -n unix : DON'T use <.netrc>, even though it exists
|
||||||
" -n win32: quit being obnoxious about password
|
" -n win32: quit being obnoxious about password
|
||||||
NetrwKeepj norm! 1Gdd
|
NetrwKeepj norm! 1G"_dd
|
||||||
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
||||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||||
if getline(1) !~ "^$"
|
if getline(1) !~ "^$"
|
||||||
@@ -2677,7 +2676,7 @@ fun! netrw#NetWrite(...) range
|
|||||||
NetrwKeepj put ='put '.tmpfile.' '.netrw_fname
|
NetrwKeepj put ='put '.tmpfile.' '.netrw_fname
|
||||||
|
|
||||||
" perform cadaver operation:
|
" perform cadaver operation:
|
||||||
NetrwKeepj norm! 1Gdd
|
NetrwKeepj norm! 1G"_dd
|
||||||
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
|
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
|
||||||
|
|
||||||
" remove enew buffer (quietly)
|
" remove enew buffer (quietly)
|
||||||
@@ -2863,7 +2862,7 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
|
|||||||
" readcmd=='t': simply do nothing
|
" readcmd=='t': simply do nothing
|
||||||
if a:readcmd == 't'
|
if a:readcmd == 't'
|
||||||
" call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
" call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
||||||
" call Dret("NetrwGetFile : skip read of <".a:tfile.">")
|
" call Dret("NetrwGetFile : skip read of tfile<".a:tfile.">")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -4359,7 +4358,7 @@ fun! s:NetrwGetWord()
|
|||||||
let curline= getline('.')
|
let curline= getline('.')
|
||||||
|
|
||||||
if curline =~# '"\s*Sorted by\s'
|
if curline =~# '"\s*Sorted by\s'
|
||||||
NetrwKeepj norm! s
|
NetrwKeepj norm! "_s
|
||||||
let s:netrw_skipbrowse= 1
|
let s:netrw_skipbrowse= 1
|
||||||
echo 'Pressing "s" also works'
|
echo 'Pressing "s" also works'
|
||||||
|
|
||||||
@@ -5194,17 +5193,31 @@ fun! s:NetrwBrowseUpDir(islocal)
|
|||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2
|
" netrw#BrowseX: (implements "x" and "gx") executes a special "viewer" script or program for the {{{2
|
||||||
" given filename; typically this means given their extension.
|
" given filename; typically this means given their extension.
|
||||||
" 0=local, 1=remote
|
" 0=local, 1=remote
|
||||||
fun! netrw#BrowseX(fname,remote)
|
fun! netrw#BrowseX(fname,remote)
|
||||||
" call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")")
|
let use_ctrlo= 1
|
||||||
|
" call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.") implements x and gx maps")
|
||||||
|
|
||||||
" if its really just a local directory, then do a "gf" instead
|
if a:remote == 0 && isdirectory(a:fname)
|
||||||
if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:')
|
" if its really just a local directory, then do a "gf" instead
|
||||||
|
" call Decho("remote≡0 and a:fname<".a:fname."> ".(isdirectory(a:fname)? "is a directory" : "is not a directory"),'~'.expand("<slnum>"))
|
||||||
|
" call Decho("..appears to be a local directory; using e ".a:fname." instead",'~'.expand("<slnum>"))
|
||||||
|
exe "e ".a:fname
|
||||||
|
" call Dret("netrw#BrowseX")
|
||||||
|
return
|
||||||
|
elseif a:remote == 1 && a:fname !~ '^https\=:' && a:fname =~ '/$'
|
||||||
|
" remote directory, not a webpage access, looks like an attempt to do a directory listing
|
||||||
|
" call Decho("remote≡1 and a:fname<".a:fname.">",'~'.expand("<slnum>"))
|
||||||
|
" call Decho("..and fname ".((a:fname =~ '^https\=:')? 'matches' : 'does not match').'^https\=:','~'.expand("<slnum>"))
|
||||||
|
" call Decho("..and fname ".((a:fname =~ '/$')? 'matches' : 'does not match').' /$','~'.expand("<slnum>"))
|
||||||
|
" call Decho("..appears to be a remote directory listing request; using gf instead",'~'.expand("<slnum>"))
|
||||||
norm! gf
|
norm! gf
|
||||||
" call Dret("(netrw#BrowseX) did gf instead")
|
" call Dret("netrw#BrowseX")
|
||||||
|
return
|
||||||
endif
|
endif
|
||||||
|
" call Decho("not a local file nor a webpage request",'~'.expand("<slnum>"))
|
||||||
|
|
||||||
let ykeep = @@
|
let ykeep = @@
|
||||||
let screenposn = winsaveview()
|
let screenposn = winsaveview()
|
||||||
@@ -5302,10 +5315,9 @@ fun! netrw#BrowseX(fname,remote)
|
|||||||
endif
|
endif
|
||||||
" call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>"))
|
" call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>"))
|
||||||
|
|
||||||
" extract any viewing options. Assumes that they're set apart by quotes.
|
" extract any viewing options. Assumes that they're set apart by spaces.
|
||||||
" call Decho("extract any viewing options",'~'.expand("<slnum>"))
|
|
||||||
if exists("g:netrw_browsex_viewer")
|
if exists("g:netrw_browsex_viewer")
|
||||||
" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
|
" call Decho("extract any viewing options from g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
|
||||||
if g:netrw_browsex_viewer =~ '\s'
|
if g:netrw_browsex_viewer =~ '\s'
|
||||||
let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','')
|
let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','')
|
||||||
let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." "
|
let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." "
|
||||||
@@ -5328,16 +5340,16 @@ fun! netrw#BrowseX(fname,remote)
|
|||||||
" execute the file handler
|
" execute the file handler
|
||||||
" call Decho("execute the file handler (if any)",'~'.expand("<slnum>"))
|
" call Decho("execute the file handler (if any)",'~'.expand("<slnum>"))
|
||||||
if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-'
|
if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-'
|
||||||
" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
|
||||||
let ret= netrwFileHandlers#Invoke(exten,fname)
|
let ret= netrwFileHandlers#Invoke(exten,fname)
|
||||||
|
|
||||||
elseif exists("g:netrw_browsex_viewer") && executable(viewer)
|
elseif exists("g:netrw_browsex_viewer") && executable(viewer)
|
||||||
" call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir)
|
call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir)
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("win32") || has("win64")
|
elseif has("win32") || has("win64")
|
||||||
" call Decho("win".(has("win32")? "32" : "64")",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64"),'~'.expand("<slnum>"))
|
||||||
if executable("start")
|
if executable("start")
|
||||||
call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
|
call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
|
||||||
elseif executable("rundll32")
|
elseif executable("rundll32")
|
||||||
@@ -5345,56 +5357,68 @@ fun! netrw#BrowseX(fname,remote)
|
|||||||
else
|
else
|
||||||
call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
|
call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
|
||||||
endif
|
endif
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("win32unix")
|
elseif has("win32unix")
|
||||||
let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g')
|
let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g')
|
||||||
" call Decho("cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>"))
|
||||||
if executable("start")
|
if executable("start")
|
||||||
|
" call Decho("(netrw#BrowseX) win32unix+start",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
|
call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
|
||||||
elseif executable("rundll32")
|
elseif executable("rundll32")
|
||||||
|
" call Decho("(netrw#BrowseX) win32unix+rundll32",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
|
call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1))
|
||||||
elseif executable("cygstart")
|
elseif executable("cygstart")
|
||||||
|
" call Decho("(netrw#BrowseX) win32unix+cygstart",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1))
|
call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1))
|
||||||
else
|
else
|
||||||
call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
|
call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74)
|
||||||
endif
|
endif
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
|
elseif has("unix") && executable("kfmclient") && s:CheckIfKde()
|
||||||
" call Decho("unix and kfmclient",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
|
call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir)
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
|
elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid")
|
||||||
" call Decho("unix, exo-open, xdg-open",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir)
|
call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir)
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril")
|
elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril")
|
||||||
" call Decho("unix and atril",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) unix and atril",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir)
|
if a:fname =~ '^https\=://'
|
||||||
|
" atril does not appear to understand how to handle html -- so use gvim to edit the document
|
||||||
|
let use_ctrlo= 0
|
||||||
|
" call Decho("(COMBAK) fname<".fname.">")
|
||||||
|
" call Decho("(COMBAK) a:fname<".a:fname.">")
|
||||||
|
call s:NetrwExe("sil! !gvim ".fname.' -c "keepj keepalt file '.fnameescape(a:fname).'"')
|
||||||
|
|
||||||
|
else
|
||||||
|
call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir)
|
||||||
|
endif
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("unix") && executable("xdg-open")
|
elseif has("unix") && executable("xdg-open")
|
||||||
" call Decho("unix and xdg-open",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) unix and xdg-open",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir)
|
call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir)
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
elseif has("macunix") && executable("open")
|
elseif has("macunix") && executable("open")
|
||||||
" call Decho("macunix and open",'~'.expand("<slnum>"))
|
" call Decho("(netrw#BrowseX) macunix and open",'~'.expand("<slnum>"))
|
||||||
call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir)
|
call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir)
|
||||||
let ret= v:shell_error
|
let ret= v:shell_error
|
||||||
|
|
||||||
else
|
else
|
||||||
" netrwFileHandlers#Invoke() always returns 0
|
" netrwFileHandlers#Invoke() always returns 0
|
||||||
|
" call Decho("(netrw#BrowseX) use netrwFileHandlers",'~'.expand("<slnum>"))
|
||||||
let ret= netrwFileHandlers#Invoke(exten,fname)
|
let ret= netrwFileHandlers#Invoke(exten,fname)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" if unsuccessful, attempt netrwFileHandlers#Invoke()
|
" if unsuccessful, attempt netrwFileHandlers#Invoke()
|
||||||
if ret
|
if ret
|
||||||
|
" call Decho("(netrw#BrowseX) ret=".ret," indicates unsuccessful thus far",'~'.expand("<slnum>"))
|
||||||
let ret= netrwFileHandlers#Invoke(exten,fname)
|
let ret= netrwFileHandlers#Invoke(exten,fname)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -5416,8 +5440,9 @@ fun! netrw#BrowseX(fname,remote)
|
|||||||
if g:netrw_use_noswf
|
if g:netrw_use_noswf
|
||||||
setl noswf
|
setl noswf
|
||||||
endif
|
endif
|
||||||
exe "sil! NetrwKeepj norm! \<c-o>"
|
if use_ctrlo
|
||||||
" redraw!
|
exe "sil! NetrwKeepj norm! \<c-o>"
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
" call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
|
" call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>"))
|
||||||
call winrestview(screenposn)
|
call winrestview(screenposn)
|
||||||
@@ -5446,11 +5471,11 @@ endfun
|
|||||||
" netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2
|
" netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2
|
||||||
fun! netrw#BrowseXVis()
|
fun! netrw#BrowseXVis()
|
||||||
" call Dfunc("netrw#BrowseXVis()")
|
" call Dfunc("netrw#BrowseXVis()")
|
||||||
let atkeep = @@
|
let akeep = @a
|
||||||
norm! gvy
|
norm! gv"ay
|
||||||
" call Decho("@@<".@@.">",'~'.expand("<slnum>"))
|
let gxfile= @a
|
||||||
call netrw#BrowseX(@@,netrw#CheckIfRemote(@@))
|
let @a = akeep
|
||||||
let @@ = atkeep
|
call netrw#BrowseX(gxfile,netrw#CheckIfRemote(gxfile))
|
||||||
" call Dret("netrw#BrowseXVis")
|
" call Dret("netrw#BrowseXVis")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
@@ -6070,13 +6095,12 @@ fun! s:NetrwSLeftrelease(islocal)
|
|||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" s:NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2
|
" s:NetrwListHide: uses [range]g~...~d to delete files that match {{{2
|
||||||
" separated patterns given in g:netrw_list_hide
|
" comma-separated patterns given in g:netrw_list_hide
|
||||||
fun! s:NetrwListHide()
|
fun! s:NetrwListHide()
|
||||||
" call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">")
|
" call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">")
|
||||||
" call Decho("initial: ".string(getline(w:netrw_bannercnt,'$')))
|
" call Decho("initial: ".string(getline(w:netrw_bannercnt,'$')))
|
||||||
let ykeep= @@
|
let ykeep= @@
|
||||||
" call DechoBuf(bufnr("%"),"COMBAK#3")
|
|
||||||
|
|
||||||
" find a character not in the "hide" string to use as a separator for :g and :v commands
|
" find a character not in the "hide" string to use as a separator for :g and :v commands
|
||||||
" How-it-works: take the hiding command, convert it into a range.
|
" How-it-works: take the hiding command, convert it into a range.
|
||||||
@@ -6085,8 +6109,8 @@ fun! s:NetrwListHide()
|
|||||||
" Use the first character left as a separator character.
|
" Use the first character left as a separator character.
|
||||||
" call Decho("find a character not in the hide string to use as a separator")
|
" call Decho("find a character not in the hide string to use as a separator")
|
||||||
let listhide= g:netrw_list_hide
|
let listhide= g:netrw_list_hide
|
||||||
let sep = strpart(substitute('/~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
|
let sep = strpart(substitute('~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
|
||||||
" call Decho("sep=".sep,'~'.expand("<slnum>"))
|
" call Decho("sep=".sep," (sep not in hide string)'~'.expand("<slnum>"))
|
||||||
|
|
||||||
while listhide != ""
|
while listhide != ""
|
||||||
if listhide =~ ','
|
if listhide =~ ','
|
||||||
@@ -6096,10 +6120,19 @@ fun! s:NetrwListHide()
|
|||||||
let hide = listhide
|
let hide = listhide
|
||||||
let listhide = ""
|
let listhide = ""
|
||||||
endif
|
endif
|
||||||
" call Decho("hide<".hide."> listhide<".listhide.'>','~'.expand("<slnum>"))
|
" call Decho("..extracted from listhide: hide<".hide."> g:netrw_sort_by<".g:netrw_sort_by.'>','~'.expand("<slnum>"))
|
||||||
|
if g:netrw_sort_by =~ '^[ts]'
|
||||||
|
if hide =~ '^\^'
|
||||||
|
" call Decho("..modify hide to handle a \"^...\" pattern",'~'.expand("<slnum>"))
|
||||||
|
let hide= substitute(hide,'^\^','^\(\\d\\+/\)','')
|
||||||
|
elseif hide =~ '^\\(\^'
|
||||||
|
let hide= substitute(hide,'^\\(\^','\\(^\\(\\d\\+/\\)','')
|
||||||
|
endif
|
||||||
|
" call Decho("..hide<".hide."> listhide<".listhide.'>','~'.expand("<slnum>"))
|
||||||
|
endif
|
||||||
|
|
||||||
" Prune the list by hiding any files which match
|
" Prune the list by hiding any files which match
|
||||||
" call Decho("prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">")
|
" call Decho("..prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">")
|
||||||
if g:netrw_hide == 1
|
if g:netrw_hide == 1
|
||||||
" call Decho("..hiding<".hide.">",'~'.expand("<slnum>"))
|
" call Decho("..hiding<".hide.">",'~'.expand("<slnum>"))
|
||||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d'
|
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d'
|
||||||
@@ -6120,7 +6153,6 @@ fun! s:NetrwListHide()
|
|||||||
" remove any blank lines that have somehow remained.
|
" remove any blank lines that have somehow remained.
|
||||||
" This seems to happen under Windows.
|
" This seems to happen under Windows.
|
||||||
exe 'sil! NetrwKeepj 1,$g@^\s*$@d'
|
exe 'sil! NetrwKeepj 1,$g@^\s*$@d'
|
||||||
" call DechoBuf(bufnr("%"),"COMBAK#4")
|
|
||||||
|
|
||||||
let @@= ykeep
|
let @@= ykeep
|
||||||
" call Dret("s:NetrwListHide")
|
" call Dret("s:NetrwListHide")
|
||||||
@@ -6328,7 +6360,7 @@ fun! s:NetrwMaps(islocal)
|
|||||||
|
|
||||||
" generate default <Plug> maps {{{3
|
" generate default <Plug> maps {{{3
|
||||||
if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif
|
if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif
|
||||||
if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir |endif
|
if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir|endif
|
||||||
if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif
|
if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif
|
||||||
if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif
|
if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif
|
||||||
if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif
|
if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif
|
||||||
@@ -6645,9 +6677,9 @@ fun! s:NetrwMarkFiles(islocal,...)
|
|||||||
while i <= a:0
|
while i <= a:0
|
||||||
if a:islocal
|
if a:islocal
|
||||||
if v:version > 704 || (v:version == 704 && has("patch656"))
|
if v:version > 704 || (v:version == 704 && has("patch656"))
|
||||||
let mffiles= glob(fnameescape(a:{i}),0,1,1)
|
let mffiles= glob(a:{i},0,1,1)
|
||||||
else
|
else
|
||||||
let mffiles= glob(fnameescape(a:{i}),0,1)
|
let mffiles= glob(a:{i},0,1)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let mffiles= [a:{i}]
|
let mffiles= [a:{i}]
|
||||||
@@ -6788,13 +6820,15 @@ fun! s:NetrwMarkFile(islocal,fname)
|
|||||||
if index(s:netrwmarkfilelist,dname) == -1
|
if index(s:netrwmarkfilelist,dname) == -1
|
||||||
" append new filename to global markfilelist
|
" append new filename to global markfilelist
|
||||||
call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname))
|
call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname))
|
||||||
" call Decho("append filename<".a:fname."> to global markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
|
" call Decho("append filename<".a:fname."> to global s:markfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
|
||||||
else
|
else
|
||||||
" remove new filename from global markfilelist
|
" remove new filename from global markfilelist
|
||||||
" call Decho("filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>"))
|
" call Decho("remove new filename from global s:markfilelist",'~'.expand("<slnum>"))
|
||||||
|
" call Decho("..filter(".string(s:netrwmarkfilelist).",'v:val != '.".dname.")",'~'.expand("<slnum>"))
|
||||||
call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"')
|
call filter(s:netrwmarkfilelist,'v:val != "'.dname.'"')
|
||||||
" call Decho("ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
|
" call Decho("..ending s:netrwmarkfilelist <".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
|
||||||
if s:netrwmarkfilelist == []
|
if s:netrwmarkfilelist == []
|
||||||
|
" call Decho("s:netrwmarkfilelist is empty; unlet it",'~'.expand("<slnum>"))
|
||||||
unlet s:netrwmarkfilelist
|
unlet s:netrwmarkfilelist
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -6818,7 +6852,8 @@ fun! s:NetrwMarkFile(islocal,fname)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let @@= ykeep
|
let @@= ykeep
|
||||||
" call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">")
|
" call Decho("s:netrwmarkfilelist[".(exists("s:netrwmarkfilelist")? string(s:netrwmarkfilelist) : "")."] (avail in all buffers)",'~'.expand("<slnum>"))
|
||||||
|
" call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist")."> (buf#".curbufnr."list)")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
@@ -7109,17 +7144,8 @@ fun! s:NetrwMarkFileCopy(islocal,...)
|
|||||||
" call Dret("s:NetrwMarkFileCopy : lcd failure")
|
" call Dret("s:NetrwMarkFileCopy : lcd failure")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
if delete(tmpdir,"d")
|
||||||
call s:NetrwExe("sil !".g:netrw_localrmdir.g:netrw_localrmdiropt." ".s:ShellEscape(tmpdir,1))
|
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
|
||||||
if v:shell_error != 0
|
|
||||||
call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localrmdir<".g:netrw_localrmdir."> to something that works",80)
|
|
||||||
" " call Dret("s:NetrwMarkFileCopy : failed: sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1) )
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
if delete(tmpdir,"d")
|
|
||||||
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if s:NetrwLcd(curdir)
|
if s:NetrwLcd(curdir)
|
||||||
@@ -7573,8 +7599,9 @@ fun! s:NetrwMarkFileGrep(islocal)
|
|||||||
let curdir = s:NetrwGetCurdir(a:islocal)
|
let curdir = s:NetrwGetCurdir(a:islocal)
|
||||||
|
|
||||||
if exists("s:netrwmarkfilelist")
|
if exists("s:netrwmarkfilelist")
|
||||||
" call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
|
" call Decho("using s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>"))
|
||||||
let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
|
let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "fnameescape(v:val)"))
|
||||||
|
" call Decho("keeping copy of s:netrwmarkfilelist in function-local variable,'~'.expand("<slnum>"))"
|
||||||
call s:NetrwUnmarkAll()
|
call s:NetrwUnmarkAll()
|
||||||
else
|
else
|
||||||
" call Decho('no marked files, using "*"','~'.expand("<slnum>"))
|
" call Decho('no marked files, using "*"','~'.expand("<slnum>"))
|
||||||
@@ -7582,6 +7609,7 @@ fun! s:NetrwMarkFileGrep(islocal)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" ask user for pattern
|
" ask user for pattern
|
||||||
|
" call Decho("ask user for search pattern",'~'.expand("<slnum>"))
|
||||||
call inputsave()
|
call inputsave()
|
||||||
let pat= input("Enter pattern: ","")
|
let pat= input("Enter pattern: ","")
|
||||||
call inputrestore()
|
call inputrestore()
|
||||||
@@ -8694,7 +8722,7 @@ fun! s:NetrwUpload(fname,tgt,...)
|
|||||||
" -i : turns off interactive prompting from ftp
|
" -i : turns off interactive prompting from ftp
|
||||||
" -n unix : DON'T use <.netrc>, even though it exists
|
" -n unix : DON'T use <.netrc>, even though it exists
|
||||||
" -n win32: quit being obnoxious about password
|
" -n win32: quit being obnoxious about password
|
||||||
NetrwKeepj norm! 1Gdd
|
NetrwKeepj norm! 1G"_dd
|
||||||
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
call s:NetrwExe(s:netrw_silentxfer."%!".s:netrw_ftp_cmd." ".g:netrw_ftp_options)
|
||||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||||
sil NetrwKeepj g/Local directory now/d
|
sil NetrwKeepj g/Local directory now/d
|
||||||
@@ -9532,15 +9560,19 @@ fun! s:NetrwWideListing()
|
|||||||
" fpl: filenames per line
|
" fpl: filenames per line
|
||||||
" fpc: filenames per column
|
" fpc: filenames per column
|
||||||
setl ma noro
|
setl ma noro
|
||||||
|
let keepa= @a
|
||||||
" call Decho("setl ma noro",'~'.expand("<slnum>"))
|
" call Decho("setl ma noro",'~'.expand("<slnum>"))
|
||||||
let b:netrw_cpf= 0
|
let b:netrw_cpf= 0
|
||||||
if line("$") >= w:netrw_bannercnt
|
if line("$") >= w:netrw_bannercnt
|
||||||
|
" determine the maximum filename size; use that to set cpf
|
||||||
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
|
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif'
|
||||||
NetrwKeepj call histdel("/",-1)
|
NetrwKeepj call histdel("/",-1)
|
||||||
else
|
else
|
||||||
|
let @a= keepa
|
||||||
" call Dret("NetrwWideListing")
|
" call Dret("NetrwWideListing")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
" allow for two spaces to separate columns
|
||||||
let b:netrw_cpf= b:netrw_cpf + 2
|
let b:netrw_cpf= b:netrw_cpf + 2
|
||||||
" call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>"))
|
" call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>"))
|
||||||
|
|
||||||
@@ -9560,6 +9592,7 @@ fun! s:NetrwWideListing()
|
|||||||
let newcolend = newcolstart + fpc - 1
|
let newcolend = newcolstart + fpc - 1
|
||||||
" call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>"))
|
" call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]",'~'.expand("<slnum>"))
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
|
" call Decho("(s:NetrwWideListing) save @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let keepregstar = @*
|
sil! let keepregstar = @*
|
||||||
sil! let keepregplus = @+
|
sil! let keepregplus = @+
|
||||||
endif
|
endif
|
||||||
@@ -9567,17 +9600,19 @@ fun! s:NetrwWideListing()
|
|||||||
if newcolend > line("$") | let newcolend= line("$") | endif
|
if newcolend > line("$") | let newcolend= line("$") | endif
|
||||||
let newcolqty= newcolend - newcolstart
|
let newcolqty= newcolend - newcolstart
|
||||||
exe newcolstart
|
exe newcolstart
|
||||||
|
" COMBAK: both of the visual-mode using lines below are problematic vis-a-vis @*
|
||||||
if newcolqty == 0
|
if newcolqty == 0
|
||||||
exe "sil! NetrwKeepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p"
|
exe "sil! NetrwKeepj norm! 0\<c-v>$h\"ax".w:netrw_bannercnt."G$\"ap"
|
||||||
else
|
else
|
||||||
exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
|
exe "sil! NetrwKeepj norm! 0\<c-v>".newcolqty.'j$h"ax'.w:netrw_bannercnt.'G$"ap'
|
||||||
endif
|
endif
|
||||||
exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
|
exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
|
||||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt
|
exe 'sil! NetrwKeepj '.w:netrw_bannercnt
|
||||||
endwhile
|
endwhile
|
||||||
if has("clipboard")
|
if has("clipboard")
|
||||||
sil! let @*= keepregstar
|
" call Decho("(s:NetrwWideListing) restore @* and @+",'~'.expand("<slnum>"))
|
||||||
sil! let @+= keepregplus
|
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||||
|
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||||
endif
|
endif
|
||||||
exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e'
|
exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e'
|
||||||
NetrwKeepj call histdel("/",-1)
|
NetrwKeepj call histdel("/",-1)
|
||||||
@@ -9585,6 +9620,7 @@ fun! s:NetrwWideListing()
|
|||||||
exe 'nno <buffer> <silent> b :call search(''^.\\|\s\s\zs\S'',''bW'')'."\<cr>"
|
exe 'nno <buffer> <silent> b :call search(''^.\\|\s\s\zs\S'',''bW'')'."\<cr>"
|
||||||
" call Decho("NetrwWideListing) setl noma nomod ro",'~'.expand("<slnum>"))
|
" call Decho("NetrwWideListing) setl noma nomod ro",'~'.expand("<slnum>"))
|
||||||
exe "setl ".g:netrw_bufsettings
|
exe "setl ".g:netrw_bufsettings
|
||||||
|
let @a= keepa
|
||||||
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>"))
|
||||||
" call Dret("NetrwWideListing")
|
" call Dret("NetrwWideListing")
|
||||||
return
|
return
|
||||||
@@ -9782,6 +9818,7 @@ fun! s:PerformListing(islocal)
|
|||||||
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
|
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" remove priority pattern prefix
|
" remove priority pattern prefix
|
||||||
" call Decho("remove priority pattern prefix",'~'.expand("<slnum>"))
|
" call Decho("remove priority pattern prefix",'~'.expand("<slnum>"))
|
||||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
|
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
|
||||||
@@ -9820,6 +9857,7 @@ fun! s:PerformListing(islocal)
|
|||||||
" call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort!','~'.expand("<slnum>"))
|
" call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort!','~'.expand("<slnum>"))
|
||||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
|
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
|
||||||
endif
|
endif
|
||||||
|
" call Decho("remove leading digits/ (sorting) information from listing",'~'.expand("<slnum>"))
|
||||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
|
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
|
||||||
NetrwKeepj call histdel("/",-1)
|
NetrwKeepj call histdel("/",-1)
|
||||||
endif
|
endif
|
||||||
@@ -9882,6 +9920,7 @@ fun! s:PerformListing(islocal)
|
|||||||
" call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
|
" call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
|
||||||
exe "setl ts=".(g:netrw_maxfilenamelen+1)
|
exe "setl ts=".(g:netrw_maxfilenamelen+1)
|
||||||
endif
|
endif
|
||||||
|
" call Decho("PerformListing buffer:",'~'.expand("<slnum>"))
|
||||||
" call DechoBuf(bufnr("%"))
|
" call DechoBuf(bufnr("%"))
|
||||||
|
|
||||||
if exists("s:treecurpos")
|
if exists("s:treecurpos")
|
||||||
@@ -10849,7 +10888,6 @@ fun! s:LocalListing()
|
|||||||
for filename in filelist
|
for filename in filelist
|
||||||
" call Decho(" ",'~'.expand("<slnum>"))
|
" call Decho(" ",'~'.expand("<slnum>"))
|
||||||
" call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>"))
|
" call Decho("for filename in filelist: filename<".filename.">",'~'.expand("<slnum>"))
|
||||||
" call DechoBuf(bufnr("%"),"COMBAK#1")
|
|
||||||
|
|
||||||
if getftype(filename) == "link"
|
if getftype(filename) == "link"
|
||||||
" indicate a symbolic link
|
" indicate a symbolic link
|
||||||
@@ -10907,10 +10945,10 @@ fun! s:LocalListing()
|
|||||||
|
|
||||||
if w:netrw_liststyle == s:LONGLIST
|
if w:netrw_liststyle == s:LONGLIST
|
||||||
let sz = getfsize(filename)
|
let sz = getfsize(filename)
|
||||||
|
let fsz = strpart(" ",1,15-strlen(sz)).sz
|
||||||
if g:netrw_sizestyle =~# "[hH]"
|
if g:netrw_sizestyle =~# "[hH]"
|
||||||
let sz= s:NetrwHumanReadable(sz)
|
let sz= s:NetrwHumanReadable(sz)
|
||||||
endif
|
endif
|
||||||
let fsz = strpart(" ",1,15-strlen(sz)).sz
|
|
||||||
let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile)
|
let longfile= printf("%-".(g:netrw_maxfilenamelen+1)."s",pfile)
|
||||||
let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename))
|
let pfile = longfile.fsz." ".strftime(g:netrw_timefmt,getftime(filename))
|
||||||
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
|
" call Decho("longlist support: sz=".sz." fsz=".fsz,'~'.expand("<slnum>"))
|
||||||
@@ -10918,10 +10956,11 @@ fun! s:LocalListing()
|
|||||||
|
|
||||||
if g:netrw_sort_by =~# "^t"
|
if g:netrw_sort_by =~# "^t"
|
||||||
" sort by time (handles time up to 1 quintillion seconds, US)
|
" sort by time (handles time up to 1 quintillion seconds, US)
|
||||||
|
" Decorate listing by prepending a timestamp/ . Sorting will then be done based on time.
|
||||||
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
|
" call Decho("getftime(".filename.")=".getftime(filename),'~'.expand("<slnum>"))
|
||||||
let t = getftime(filename)
|
let t = getftime(filename)
|
||||||
let ft = strpart("000000000000000000",1,18-strlen(t)).t
|
let ft = strpart("000000000000000000",1,18-strlen(t)).t
|
||||||
" call Decho("exe NetrwKeepj put ='".ft.'/'.filename."'",'~'.expand("<slnum>"))
|
" call Decho("exe NetrwKeepj put ='".ft.'/'.pfile."'",'~'.expand("<slnum>"))
|
||||||
let ftpfile= ft.'/'.pfile
|
let ftpfile= ft.'/'.pfile
|
||||||
sil! NetrwKeepj put=ftpfile
|
sil! NetrwKeepj put=ftpfile
|
||||||
|
|
||||||
@@ -10942,7 +10981,7 @@ fun! s:LocalListing()
|
|||||||
" call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>"))
|
" call Decho("exe NetrwKeepj put ='".pfile."'",'~'.expand("<slnum>"))
|
||||||
sil! NetrwKeepj put=pfile
|
sil! NetrwKeepj put=pfile
|
||||||
endif
|
endif
|
||||||
" call DechoBuf(bufnr("%"),"COMBAK#2")
|
" call DechoBuf(bufnr("%"),"bufnr(%)")
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
" cleanup any windows mess at end-of-line
|
" cleanup any windows mess at end-of-line
|
||||||
@@ -10989,9 +11028,10 @@ fun! s:NetrwLocalRename(path) range
|
|||||||
" call Dfunc("NetrwLocalRename(path<".a:path.">)")
|
" call Dfunc("NetrwLocalRename(path<".a:path.">)")
|
||||||
|
|
||||||
" preparation for removing multiple files/directories
|
" preparation for removing multiple files/directories
|
||||||
let ykeep = @@
|
let ykeep = @@
|
||||||
let ctr = a:firstline
|
let ctr = a:firstline
|
||||||
let svpos = winsaveview()
|
let svpos = winsaveview()
|
||||||
|
let all = 0
|
||||||
" call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
|
" call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
|
||||||
|
|
||||||
" rename files given by the markfilelist
|
" rename files given by the markfilelist
|
||||||
@@ -11019,6 +11059,23 @@ fun! s:NetrwLocalRename(path) range
|
|||||||
let newname = substitute(oldname,subfrom,subto,'')
|
let newname = substitute(oldname,subfrom,subto,'')
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
if !all && filereadable(newname)
|
||||||
|
call inputsave()
|
||||||
|
let response= input("File<".newname."> already exists; do you want to overwrite it? (y/all/n) ")
|
||||||
|
call inputrestore()
|
||||||
|
if response == "all"
|
||||||
|
let all= 1
|
||||||
|
elseif response != "y" && response != "yes"
|
||||||
|
" refresh the directory
|
||||||
|
" call Decho("refresh the directory listing",'~'.expand("<slnum>"))
|
||||||
|
NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./'))
|
||||||
|
" call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
|
||||||
|
NetrwKeepj call winrestview(svpos)
|
||||||
|
let @@= ykeep
|
||||||
|
" call Dret("NetrwLocalRename")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
endif
|
||||||
call rename(oldname,newname)
|
call rename(oldname,newname)
|
||||||
endfor
|
endfor
|
||||||
call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
|
call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
|
||||||
@@ -11042,14 +11099,14 @@ fun! s:NetrwLocalRename(path) range
|
|||||||
|
|
||||||
NetrwKeepj norm! 0
|
NetrwKeepj norm! 0
|
||||||
let oldname= s:ComposePath(a:path,curword)
|
let oldname= s:ComposePath(a:path,curword)
|
||||||
" call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
|
" call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
|
||||||
|
|
||||||
call inputsave()
|
call inputsave()
|
||||||
let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
|
let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
|
||||||
call inputrestore()
|
call inputrestore()
|
||||||
|
|
||||||
call rename(oldname,newname)
|
call rename(oldname,newname)
|
||||||
" call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))
|
" call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))
|
||||||
|
|
||||||
let ctr= ctr + 1
|
let ctr= ctr + 1
|
||||||
endwhile
|
endwhile
|
||||||
@@ -11259,7 +11316,9 @@ fun! netrw#Expose(varname)
|
|||||||
" call Dfunc("netrw#Expose(varname<".a:varname.">)")
|
" call Dfunc("netrw#Expose(varname<".a:varname.">)")
|
||||||
if exists("s:".a:varname)
|
if exists("s:".a:varname)
|
||||||
exe "let retval= s:".a:varname
|
exe "let retval= s:".a:varname
|
||||||
|
" call Decho("retval=".retval,'~'.expand("<slnum>"))
|
||||||
if exists("g:netrw_pchk")
|
if exists("g:netrw_pchk")
|
||||||
|
" call Decho("type(g:netrw_pchk=".g:netrw_pchk.")=".type(retval),'~'.expand("<slnum>"))
|
||||||
if type(retval) == 3
|
if type(retval) == 3
|
||||||
let retval = copy(retval)
|
let retval = copy(retval)
|
||||||
let i = 0
|
let i = 0
|
||||||
@@ -11268,10 +11327,13 @@ fun! netrw#Expose(varname)
|
|||||||
let i = i + 1
|
let i = i + 1
|
||||||
endwhile
|
endwhile
|
||||||
endif
|
endif
|
||||||
" call Dret("netrw#Expose ".string(retval))
|
" call Dret("netrw#Expose ".string(retval)),'~'.expand("<slnum>"))
|
||||||
return string(retval)
|
return string(retval)
|
||||||
|
else
|
||||||
|
" call Decho("g:netrw_pchk doesn't exist",'~'.expand("<slnum>"))
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
" call Decho("s:".a:varname." doesn't exist",'~'.expand("<slnum>"))
|
||||||
let retval= "n/a"
|
let retval= "n/a"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -11832,6 +11894,9 @@ fun! s:NetrwExe(cmd)
|
|||||||
" call Decho("exe ".a:cmd,'~'.expand("<slnum>"))
|
" call Decho("exe ".a:cmd,'~'.expand("<slnum>"))
|
||||||
exe a:cmd
|
exe a:cmd
|
||||||
endif
|
endif
|
||||||
|
if v:shell_error
|
||||||
|
call netrw#ErrorMsg(s:WARNING,"shell signalled an error",106)
|
||||||
|
endif
|
||||||
" call Dret("s:NetrwExe : v:shell_error=".v:shell_error)
|
" call Dret("s:NetrwExe : v:shell_error=".v:shell_error)
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" netrwSettings.vim: makes netrw settings simpler
|
" netrwSettings.vim: makes netrw settings simpler
|
||||||
" Date: Nov 09, 2016
|
" Date: Nov 09, 2016
|
||||||
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
|
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||||
" Version: 16
|
" Version: 16
|
||||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
|
|||||||
@@ -18,61 +18,5 @@
|
|||||||
" holder be liable for any damages resulting from the use
|
" holder be liable for any damages resulting from the use
|
||||||
" of this software.
|
" of this software.
|
||||||
function! netrw_gitignore#Hide(...)
|
function! netrw_gitignore#Hide(...)
|
||||||
let additional_files = a:000
|
return substitute(substitute(system('git ls-files --other --ignored --exclude-standard --directory'), '\n', ',', 'g'), ',$', '', '')
|
||||||
|
|
||||||
let default_files = ['.gitignore', '.git/info/exclude']
|
|
||||||
|
|
||||||
" get existing global/system gitignore files
|
|
||||||
let global_gitignore = expand(substitute(system("git config --global core.excludesfile"), '\n', '', 'g'))
|
|
||||||
if global_gitignore !=# ''
|
|
||||||
let default_files = add(default_files, global_gitignore)
|
|
||||||
endif
|
|
||||||
let system_gitignore = expand(substitute(system("git config --system core.excludesfile"), '\n', '', 'g'))
|
|
||||||
if system_gitignore !=# ''
|
|
||||||
let default_files = add(default_files, system_gitignore)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" append additional files if given as function arguments
|
|
||||||
if additional_files !=# []
|
|
||||||
let files = extend(default_files, additional_files)
|
|
||||||
else
|
|
||||||
let files = default_files
|
|
||||||
endif
|
|
||||||
|
|
||||||
" keep only existing/readable files
|
|
||||||
let gitignore_files = []
|
|
||||||
for file in files
|
|
||||||
if filereadable(file)
|
|
||||||
let gitignore_files = add(gitignore_files, file)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" get contents of gitignore patterns from those files
|
|
||||||
let gitignore_lines = []
|
|
||||||
for file in gitignore_files
|
|
||||||
for line in readfile(file)
|
|
||||||
" filter empty lines and comments
|
|
||||||
if line !~# '^#' && line !~# '^$'
|
|
||||||
let gitignore_lines = add(gitignore_lines, line)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
endfor
|
|
||||||
|
|
||||||
" convert gitignore patterns to Netrw/Vim regex patterns
|
|
||||||
let escaped_lines = []
|
|
||||||
for line in gitignore_lines
|
|
||||||
let escaped = line
|
|
||||||
let escaped = substitute(escaped, '\*\*', '*', 'g')
|
|
||||||
let escaped = substitute(escaped, '\.', '\\.', 'g')
|
|
||||||
let escaped = substitute(escaped, '\$', '\\$', 'g')
|
|
||||||
let escaped = substitute(escaped, '*', '.*', 'g')
|
|
||||||
" correction: dot, dollar and asterisks chars shouldn't be escaped when
|
|
||||||
" within regex matching groups.
|
|
||||||
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\.', '\.', 'g')
|
|
||||||
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\$', '\$', 'g')
|
|
||||||
let escaped = substitute(escaped, '\(\[[^]]*\)\zs\.\*', '*', 'g')
|
|
||||||
let escaped_lines = add(escaped_lines, escaped)
|
|
||||||
endfor
|
|
||||||
|
|
||||||
return join(escaped_lines, ',')
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||||
" URL: https://github.com/vim-ruby/vim-ruby
|
" URL: https://github.com/vim-ruby/vim-ruby
|
||||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||||
" Last Change: 2019 Jan 06
|
" Last Change: 2019 Feb 25
|
||||||
" ----------------------------------------------------------------------------
|
" ----------------------------------------------------------------------------
|
||||||
"
|
"
|
||||||
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
|
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
|
||||||
@@ -53,6 +53,23 @@ if !exists("g:rubycomplete_include_objectspace")
|
|||||||
endif
|
endif
|
||||||
" }}} configuration failsafe initialization
|
" }}} configuration failsafe initialization
|
||||||
|
|
||||||
|
" {{{ regex patterns
|
||||||
|
|
||||||
|
" Regex that defines the start-match for the 'end' keyword.
|
||||||
|
let s:end_start_regex =
|
||||||
|
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
|
||||||
|
\ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
|
||||||
|
\ '\|\%(\K\k*[!?]\?\s\+\)\=def\):\@!\>' .
|
||||||
|
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
|
||||||
|
|
||||||
|
" Regex that defines the middle-match for the 'end' keyword.
|
||||||
|
let s:end_middle_regex = '\<\%(ensure\|else\|\%(\%(^\|;\)\s*\)\@<=\<rescue:\@!\>\|when\|elsif\):\@!\>'
|
||||||
|
|
||||||
|
" Regex that defines the end-match for the 'end' keyword.
|
||||||
|
let s:end_end_regex = '\%(^\|[^.:@$]\)\@<=\<end:\@!\>'
|
||||||
|
|
||||||
|
" }}} regex patterns
|
||||||
|
|
||||||
" {{{ vim-side support functions
|
" {{{ vim-side support functions
|
||||||
let s:rubycomplete_debug = 0
|
let s:rubycomplete_debug = 0
|
||||||
|
|
||||||
@@ -103,7 +120,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let curpos = getpos(".")
|
let curpos = getpos(".")
|
||||||
let [enum,ecol] = searchpairpos( crex, '', '\(end\|}\)', 'W' )
|
let [enum,ecol] = searchpairpos( s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'W' )
|
||||||
call cursor(lastpos[1], lastpos[2])
|
call cursor(lastpos[1], lastpos[2])
|
||||||
|
|
||||||
if lnum > enum
|
if lnum > enum
|
||||||
@@ -128,19 +145,28 @@ function! s:IsPosInClassDef(pos)
|
|||||||
return ret
|
return ret
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:IsInComment(pos)
|
||||||
|
let stack = synstack(a:pos[0], a:pos[1])
|
||||||
|
if !empty(stack)
|
||||||
|
return synIDattr(stack[0], 'name') =~ 'ruby\%(.*Comment\|Documentation\)'
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:GetRubyVarType(v)
|
function! s:GetRubyVarType(v)
|
||||||
let stopline = 1
|
let stopline = 1
|
||||||
let vtp = ''
|
let vtp = ''
|
||||||
let pos = getpos('.')
|
let curpos = getpos('.')
|
||||||
let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
|
let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
|
||||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
||||||
if lnum != 0 && lcol != 0
|
if lnum != 0 && lcol != 0
|
||||||
call setpos('.',pos)
|
call setpos('.',curpos)
|
||||||
let str = getline(lnum)
|
let str = getline(lnum)
|
||||||
let vtp = substitute(str,sstr,'\1','')
|
let vtp = substitute(str,sstr,'\1','')
|
||||||
return vtp
|
return vtp
|
||||||
endif
|
endif
|
||||||
call setpos('.',pos)
|
call setpos('.',curpos)
|
||||||
let ctors = '\(now\|new\|open\|get_instance'
|
let ctors = '\(now\|new\|open\|get_instance'
|
||||||
if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1
|
if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1
|
||||||
let ctors = ctors.'\|find\|create'
|
let ctors = ctors.'\|find\|create'
|
||||||
@@ -150,9 +176,13 @@ function! s:GetRubyVarType(v)
|
|||||||
|
|
||||||
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
|
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
|
||||||
let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
|
let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
|
||||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
let pos = searchpos(sstr,'bW')
|
||||||
if lnum != 0 && lcol != 0
|
while pos != [0,0] && s:IsInComment(pos)
|
||||||
let str = matchstr(getline(lnum),fstr,lcol)
|
let pos = searchpos(sstr,'bW')
|
||||||
|
endwhile
|
||||||
|
if pos != [0,0]
|
||||||
|
let [lnum, col] = pos
|
||||||
|
let str = matchstr(getline(lnum),fstr,col)
|
||||||
let str = substitute(str,'^=\s*','','')
|
let str = substitute(str,'^=\s*','','')
|
||||||
|
|
||||||
call setpos('.',pos)
|
call setpos('.',pos)
|
||||||
@@ -174,7 +204,7 @@ function! s:GetRubyVarType(v)
|
|||||||
end
|
end
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
call setpos('.',pos)
|
call setpos('.',curpos)
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -671,11 +701,10 @@ class VimRubyCompletion
|
|||||||
methods.delete_if { |c| c.match( /'/ ) }
|
methods.delete_if { |c| c.match( /'/ ) }
|
||||||
end
|
end
|
||||||
|
|
||||||
when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods
|
when /^::([A-Z][^:\.\(]*)?$/ # Absolute Constant or class methods
|
||||||
dprint "const or cls"
|
dprint "const or cls"
|
||||||
receiver = $1
|
receiver = $1
|
||||||
methods = Object.constants
|
methods = Object.constants.collect{ |c| c.to_s }.grep(/^#{receiver}/)
|
||||||
methods.grep(/^#{receiver}/).collect{|e| "::" + e}
|
|
||||||
|
|
||||||
when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
|
when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
|
||||||
receiver = $1
|
receiver = $1
|
||||||
@@ -684,13 +713,13 @@ class VimRubyCompletion
|
|||||||
load_buffer_class( receiver )
|
load_buffer_class( receiver )
|
||||||
load_buffer_module( receiver )
|
load_buffer_module( receiver )
|
||||||
begin
|
begin
|
||||||
classes = eval("#{receiver}.constants")
|
constants = eval("#{receiver}.constants").collect{ |c| c.to_s }.grep(/^#{message}/)
|
||||||
#methods = eval("#{receiver}.methods")
|
methods = eval("#{receiver}.methods").collect{ |m| m.to_s }.grep(/^#{message}/)
|
||||||
rescue Exception
|
rescue Exception
|
||||||
dprint "exception: %s" % $!
|
dprint "exception: %s" % $!
|
||||||
|
constants = []
|
||||||
methods = []
|
methods = []
|
||||||
end
|
end
|
||||||
methods.grep(/^#{message}/).collect{|e| receiver + "::" + e}
|
|
||||||
|
|
||||||
when /^(:[^:.]+)\.([^.]*)$/ # Symbol
|
when /^(:[^:.]+)\.([^.]*)$/ # Symbol
|
||||||
dprint "symbol"
|
dprint "symbol"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
" tar.vim: Handles browsing tarfiles
|
" tar.vim: Handles browsing tarfiles
|
||||||
" AUTOLOAD PORTION
|
" AUTOLOAD PORTION
|
||||||
" Date: Apr 17, 2013
|
" Date: Jan 07, 2020
|
||||||
" Version: 29
|
" Version: 32
|
||||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||||
" License: Vim License (see vim's :help license)
|
" License: Vim License (see vim's :help license)
|
||||||
"
|
"
|
||||||
" Contains many ideas from Michael Toren's <tar.vim>
|
" Contains many ideas from Michael Toren's <tar.vim>
|
||||||
"
|
"
|
||||||
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell {{{1
|
" Copyright: Copyright (C) 2005-2017 Charles E. Campbell {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
" with or without modifications, provided that this copyright
|
" with or without modifications, provided that this copyright
|
||||||
" notice is copied with it. Like anything else that's free,
|
" notice is copied with it. Like anything else that's free,
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
if &cp || exists("g:loaded_tar")
|
if &cp || exists("g:loaded_tar")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_tar= "v29"
|
let g:loaded_tar= "v32"
|
||||||
if v:version < 702
|
if v:version < 702
|
||||||
echohl WarningMsg
|
echohl WarningMsg
|
||||||
echo "***warning*** this version of tar needs vim 7.2"
|
echo "***warning*** this version of tar needs vim 7.2"
|
||||||
@@ -48,6 +48,9 @@ endif
|
|||||||
if !exists("g:tar_writeoptions")
|
if !exists("g:tar_writeoptions")
|
||||||
let g:tar_writeoptions= "uf"
|
let g:tar_writeoptions= "uf"
|
||||||
endif
|
endif
|
||||||
|
if !exists("g:tar_delfile")
|
||||||
|
let g:tar_delfile="--delete -f"
|
||||||
|
endif
|
||||||
if !exists("g:netrw_cygwin")
|
if !exists("g:netrw_cygwin")
|
||||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||||
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
||||||
@@ -109,6 +112,7 @@ fun! tar#Browse(tarfile)
|
|||||||
" sanity checks
|
" sanity checks
|
||||||
if !executable(g:tar_cmd)
|
if !executable(g:tar_cmd)
|
||||||
redraw!
|
redraw!
|
||||||
|
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
|
||||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Browse")
|
" call Dret("tar#Browse")
|
||||||
@@ -119,6 +123,7 @@ fun! tar#Browse(tarfile)
|
|||||||
if a:tarfile !~# '^\a\+://'
|
if a:tarfile !~# '^\a\+://'
|
||||||
" if it's 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!
|
redraw!
|
||||||
|
" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
|
||||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||||
endif
|
endif
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
@@ -152,12 +157,27 @@ fun! tar#Browse(tarfile)
|
|||||||
" assuming cygwin
|
" assuming cygwin
|
||||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let curlast= line("$")
|
let curlast= line("$")
|
||||||
if tarfile =~# '\.\(gz\|tgz\)$'
|
|
||||||
let gzip_command = s:get_gzip_command(tarfile)
|
if tarfile =~# '\.\(gz\)$'
|
||||||
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
|
|
||||||
|
elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$'
|
||||||
|
if has("unix") && executable("file")
|
||||||
|
let filekind= system("file ".shellescape(tarfile,1)) =~ "bzip2"
|
||||||
|
else
|
||||||
|
let filekind= ""
|
||||||
|
endif
|
||||||
|
|
||||||
|
if filekind =~ "bzip2"
|
||||||
|
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
|
elseif filekind =~ "XZ"
|
||||||
|
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
|
else
|
||||||
|
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
|
endif
|
||||||
|
|
||||||
elseif tarfile =~# '\.lrp'
|
elseif tarfile =~# '\.lrp'
|
||||||
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
@@ -184,7 +204,7 @@ fun! tar#Browse(tarfile)
|
|||||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~# '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
||||||
redraw!
|
redraw!
|
||||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||||
keepj sil! %d
|
keepj sil! %d
|
||||||
@@ -197,8 +217,13 @@ fun! tar#Browse(tarfile)
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" set up maps supported for tar
|
||||||
setlocal noma nomod ro
|
setlocal noma nomod ro
|
||||||
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
|
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
|
||||||
|
noremap <silent> <buffer> x :call tar#Extract()<cr>
|
||||||
|
if &mouse != ""
|
||||||
|
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>TarBrowseSelect()<cr>
|
||||||
|
endif
|
||||||
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
||||||
@@ -235,7 +260,8 @@ fun! s:TarBrowseSelect()
|
|||||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
new
|
" open a new window (tar#Read will read a file into it)
|
||||||
|
noswapfile new
|
||||||
if !exists("g:tar_nomax") || g:tar_nomax == 0
|
if !exists("g:tar_nomax") || g:tar_nomax == 0
|
||||||
wincmd _
|
wincmd _
|
||||||
endif
|
endif
|
||||||
@@ -267,7 +293,7 @@ fun! tar#Read(fname,mode)
|
|||||||
if fname =~ '\.bz2$' && executable("bzcat")
|
if fname =~ '\.bz2$' && executable("bzcat")
|
||||||
let decmp= "|bzcat"
|
let decmp= "|bzcat"
|
||||||
let doro = 1
|
let doro = 1
|
||||||
elseif fname =~ '\.gz$' && executable("zcat")
|
elseif fname =~ '\.t\=gz$' && executable("zcat")
|
||||||
let decmp= "|zcat"
|
let decmp= "|zcat"
|
||||||
let doro = 1
|
let doro = 1
|
||||||
elseif fname =~ '\.lzma$' && executable("lzcat")
|
elseif fname =~ '\.lzma$' && executable("lzcat")
|
||||||
@@ -291,20 +317,29 @@ fun! tar#Read(fname,mode)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if tarfile =~# '\.bz2$'
|
if tarfile =~# '\.bz2$'
|
||||||
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
|
||||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
elseif tarfile =~# '\.\(gz\|tgz\)$'
|
elseif tarfile =~# '\.\(gz\)$'
|
||||||
let gzip_command = s:get_gzip_command(tarfile)
|
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
|
|
||||||
exe "sil! r! " . gzip_command . " -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
|
||||||
|
if has("unix") && executable("file")
|
||||||
|
let filekind= system("file ".shellescape(tarfile,1))
|
||||||
|
else
|
||||||
|
let filekind= ""
|
||||||
|
endif
|
||||||
|
if filekind =~ "bzip2"
|
||||||
|
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
|
elseif filekind =~ "XZ"
|
||||||
|
exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
|
else
|
||||||
|
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
|
endif
|
||||||
|
|
||||||
elseif tarfile =~# '\.lrp$'
|
elseif tarfile =~# '\.lrp$'
|
||||||
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
|
||||||
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
elseif tarfile =~# '\.lzma$'
|
elseif tarfile =~# '\.lzma$'
|
||||||
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
|
||||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||||
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
|
||||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
else
|
else
|
||||||
if tarfile =~ '^\s*-'
|
if tarfile =~ '^\s*-'
|
||||||
@@ -348,13 +383,14 @@ fun! tar#Write(fname)
|
|||||||
" sanity checks
|
" sanity checks
|
||||||
if !executable(g:tar_cmd)
|
if !executable(g:tar_cmd)
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
" call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Write")
|
" call Dret("tar#Write")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if !exists("*mkdir")
|
if !exists("*mkdir")
|
||||||
redraw!
|
redraw!
|
||||||
|
" call Decho("***error*** (tar#Write) sorry, mkdir() doesn't work on your system")
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Write")
|
" call Dret("tar#Write")
|
||||||
@@ -375,6 +411,7 @@ fun! tar#Write(fname)
|
|||||||
exe "cd ".fnameescape(tmpdir)
|
exe "cd ".fnameescape(tmpdir)
|
||||||
catch /^Vim\%((\a\+)\)\=:E344/
|
catch /^Vim\%((\a\+)\)\=:E344/
|
||||||
redraw!
|
redraw!
|
||||||
|
" call Decho("***error*** (tar#Write) cannot cd to temporary directory")
|
||||||
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Write")
|
" call Dret("tar#Write")
|
||||||
@@ -393,8 +430,6 @@ fun! tar#Write(fname)
|
|||||||
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||||
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||||
|
|
||||||
let gzip_command = s:get_gzip_command(tarfile)
|
|
||||||
|
|
||||||
" handle compressed archives
|
" handle compressed archives
|
||||||
if tarfile =~# '\.bz2'
|
if tarfile =~# '\.bz2'
|
||||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||||
@@ -402,12 +437,12 @@ fun! tar#Write(fname)
|
|||||||
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||||
" call Decho("compress<".compress.">")
|
" call Decho("compress<".compress.">")
|
||||||
elseif tarfile =~# '\.gz'
|
elseif tarfile =~# '\.gz'
|
||||||
call system(gzip_command . " -d -- ".shellescape(tarfile,0))
|
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||||
" call Decho("compress<".compress.">")
|
" call Decho("compress<".compress.">")
|
||||||
elseif tarfile =~# '\.tgz'
|
elseif tarfile =~# '\.tgz'
|
||||||
call system(gzip_command . " -d -- ".shellescape(tarfile,0))
|
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||||
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
||||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||||
let tgz = 1
|
let tgz = 1
|
||||||
@@ -427,6 +462,7 @@ fun! tar#Write(fname)
|
|||||||
|
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
|
" call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname)
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
||||||
else
|
else
|
||||||
|
|
||||||
@@ -459,10 +495,11 @@ fun! tar#Write(fname)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" delete old file from tarfile
|
" delete old file from tarfile
|
||||||
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
" call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||||
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
|
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||||
else
|
else
|
||||||
|
|
||||||
@@ -471,6 +508,7 @@ fun! tar#Write(fname)
|
|||||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
|
" call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||||
elseif exists("compress")
|
elseif exists("compress")
|
||||||
" call Decho("call system(".compress.")")
|
" call Decho("call system(".compress.")")
|
||||||
@@ -486,11 +524,11 @@ fun! tar#Write(fname)
|
|||||||
if s:tblfile_{winnr()} =~ '^\a\+://'
|
if s:tblfile_{winnr()} =~ '^\a\+://'
|
||||||
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
||||||
let tblfile= s:tblfile_{winnr()}
|
let tblfile= s:tblfile_{winnr()}
|
||||||
1split|enew
|
1split|noswapfile enew
|
||||||
let binkeep= &l:binary
|
let binkeep= &l:binary
|
||||||
let eikeep = &ei
|
let eikeep = &ei
|
||||||
set binary ei=all
|
set binary ei=all
|
||||||
exe "e! ".fnameescape(tarfile)
|
exe "noswapfile e! ".fnameescape(tarfile)
|
||||||
call netrw#NetWrite(tblfile)
|
call netrw#NetWrite(tblfile)
|
||||||
let &ei = eikeep
|
let &ei = eikeep
|
||||||
let &l:binary = binkeep
|
let &l:binary = binkeep
|
||||||
@@ -524,7 +562,7 @@ fun! tar#Diff(userfname,fname)
|
|||||||
" sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
|
" sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
|
||||||
diffthis
|
diffthis
|
||||||
wincmd v
|
wincmd v
|
||||||
exe "e ".fnameescape(fname)
|
exe "noswapfile e ".fnameescape(fname)
|
||||||
diffthis
|
diffthis
|
||||||
else
|
else
|
||||||
redraw!
|
redraw!
|
||||||
@@ -533,6 +571,119 @@ fun! tar#Diff(userfname,fname)
|
|||||||
" call Dret("tar#Diff")
|
" call Dret("tar#Diff")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
|
" ---------------------------------------------------------------------
|
||||||
|
" tar#Extract: extract a file from a (possibly compressed) tar archive {{{2
|
||||||
|
fun! tar#Extract()
|
||||||
|
" call Dfunc("tar#Extract()")
|
||||||
|
|
||||||
|
let repkeep= &report
|
||||||
|
set report=10
|
||||||
|
let fname= getline(".")
|
||||||
|
" call Decho("fname<".fname.">")
|
||||||
|
|
||||||
|
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||||
|
redraw!
|
||||||
|
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||||
|
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" sanity check
|
||||||
|
if fname =~ '^"'
|
||||||
|
let &report= repkeep
|
||||||
|
" call Dret("TarBrowseSelect")
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
let tarball = expand("%")
|
||||||
|
" call Decho("tarball<".tarball.">")
|
||||||
|
let tarbase = substitute(tarball,'\..*$','','')
|
||||||
|
" call Decho("tarbase<".tarbase.">")
|
||||||
|
|
||||||
|
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||||
|
if filereadable(tarbase.".tar")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif filereadable(tarbase.".tgz")
|
||||||
|
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif filereadable(tarbase.".tar.gz")
|
||||||
|
let extractcmd= substitute(extractcmd,"-","-z","")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif filereadable(tarbase.".tbz")
|
||||||
|
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif filereadable(tarbase.".tar.bz2")
|
||||||
|
let extractcmd= substitute(extractcmd,"-","-j","")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif filereadable(tarbase.".txz")
|
||||||
|
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
|
||||||
|
elseif filereadable(tarbase.".tar.xz")
|
||||||
|
let extractcmd= substitute(extractcmd,"-","-J","")
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
|
||||||
|
if v:shell_error != 0
|
||||||
|
echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
|
||||||
|
" call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!")
|
||||||
|
else
|
||||||
|
echo "***note*** successfully extracted ".fname
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
" restore option
|
||||||
|
let &report= repkeep
|
||||||
|
|
||||||
|
" call Dret("tar#Extract")
|
||||||
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" s:Rmdir: {{{2
|
" s:Rmdir: {{{2
|
||||||
fun! s:Rmdir(fname)
|
fun! s:Rmdir(fname)
|
||||||
@@ -587,10 +738,7 @@ fun! tar#Vimuntar(...)
|
|||||||
|
|
||||||
" if necessary, decompress the tarball; then, extract it
|
" if necessary, decompress the tarball; then, extract it
|
||||||
if tartail =~ '\.tgz'
|
if tartail =~ '\.tgz'
|
||||||
let gzip_command = s:get_gzip_command(tarfile)
|
if executable("gunzip")
|
||||||
if executable(gzip_command)
|
|
||||||
silent exe "!" . gzip_command . " -d ".shellescape(tartail)
|
|
||||||
elseif executable("gunzip")
|
|
||||||
silent exe "!gunzip ".shellescape(tartail)
|
silent exe "!gunzip ".shellescape(tartail)
|
||||||
elseif executable("gzip")
|
elseif executable("gzip")
|
||||||
silent exe "!gzip -d ".shellescape(tartail)
|
silent exe "!gzip -d ".shellescape(tartail)
|
||||||
@@ -628,28 +776,6 @@ fun! tar#Vimuntar(...)
|
|||||||
" call Dret("tar#Vimuntar")
|
" call Dret("tar#Vimuntar")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
func s:get_gzip_command(file)
|
|
||||||
" Try using the "file" command to get the actual compression type, since
|
|
||||||
" there is no standard way for the naming: ".tgz", ".tbz", ".txz", etc.
|
|
||||||
" If the "file" command doesn't work fall back to just using the file name.
|
|
||||||
if a:file =~# 'z$'
|
|
||||||
let filetype = system('file ' . a:file)
|
|
||||||
if filetype =~ 'bzip2 compressed' && executable('bzip2')
|
|
||||||
return 'bzip2'
|
|
||||||
endif
|
|
||||||
if filetype =~ 'XZ compressed' && executable('xz')
|
|
||||||
return 'xz'
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
if a:file =~# 'bz2$'
|
|
||||||
return 'bzip2'
|
|
||||||
endif
|
|
||||||
if a:file =~# 'xz$'
|
|
||||||
return 'xz'
|
|
||||||
endif
|
|
||||||
return 'gzip'
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
" =====================================================================
|
" =====================================================================
|
||||||
" Modelines And Restoration: {{{1
|
" Modelines And Restoration: {{{1
|
||||||
let &cpo= s:keepcpo
|
let &cpo= s:keepcpo
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim autoload file for the tohtml plugin.
|
" Vim autoload file for the tohtml plugin.
|
||||||
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||||
" Last Change: 2018 Nov 11
|
" Last Change: 2019 Aug 16
|
||||||
"
|
"
|
||||||
" Additional contributors:
|
" Additional contributors:
|
||||||
"
|
"
|
||||||
@@ -364,6 +364,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
let body_line = ''
|
let body_line = ''
|
||||||
|
|
||||||
let html = []
|
let html = []
|
||||||
|
let s:html5 = 0
|
||||||
if s:settings.use_xhtml
|
if s:settings.use_xhtml
|
||||||
call add(html, xml_line)
|
call add(html, xml_line)
|
||||||
endif
|
endif
|
||||||
@@ -371,8 +372,9 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
|
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
|
||||||
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
|
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
|
||||||
elseif s:settings.use_css && !s:settings.no_pre
|
elseif s:settings.use_css && !s:settings.no_pre
|
||||||
call add(html, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">")
|
call add(html, "<!DOCTYPE html>")
|
||||||
call add(html, '<html>')
|
call add(html, '<html>')
|
||||||
|
let s:html5 = 1
|
||||||
else
|
else
|
||||||
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
|
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
|
||||||
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
|
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
|
||||||
@@ -383,7 +385,11 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
" include encoding as close to the top as possible, but only if not already
|
" include encoding as close to the top as possible, but only if not already
|
||||||
" contained in XML information
|
" contained in XML information
|
||||||
if s:settings.encoding != "" && !s:settings.use_xhtml
|
if s:settings.encoding != "" && !s:settings.use_xhtml
|
||||||
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
|
if s:html5
|
||||||
|
call add(html, '<meta charset="' . s:settings.encoding . '"' . tag_close)
|
||||||
|
else
|
||||||
|
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call add(html, '<title>diff</title>')
|
call add(html, '<title>diff</title>')
|
||||||
@@ -392,6 +398,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
call add(html, '<meta name="settings" content="'.
|
call add(html, '<meta name="settings" content="'.
|
||||||
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
|
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
|
||||||
\ ',prevent_copy='.s:settings.prevent_copy.
|
\ ',prevent_copy='.s:settings.prevent_copy.
|
||||||
|
\ ',use_input_for_pc='.s:settings.use_input_for_pc.
|
||||||
\ '"'.tag_close)
|
\ '"'.tag_close)
|
||||||
call add(html, '<meta name="colorscheme" content="'.
|
call add(html, '<meta name="colorscheme" content="'.
|
||||||
\ (exists('g:colors_name')
|
\ (exists('g:colors_name')
|
||||||
@@ -400,16 +407,8 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
|
|
||||||
call add(html, '</head>')
|
call add(html, '</head>')
|
||||||
let body_line_num = len(html)
|
let body_line_num = len(html)
|
||||||
if !empty(s:settings.prevent_copy)
|
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
|
||||||
call add(html, "<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>")
|
call add(html, "<table ".(s:settings.use_css? "" : "border='1' width='100%' ")."id='vimCodeElement".s:settings.id_suffix."'>")
|
||||||
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
|
|
||||||
call add(html, "<div id='oneCharWidth'>0</div>")
|
|
||||||
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
|
|
||||||
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
|
|
||||||
else
|
|
||||||
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
|
|
||||||
endif
|
|
||||||
call add(html, "<table border='1' width='100%' id='vimCodeElement".s:settings.id_suffix."'>")
|
|
||||||
|
|
||||||
call add(html, '<tr>')
|
call add(html, '<tr>')
|
||||||
for buf in a:win_list
|
for buf in a:win_list
|
||||||
@@ -443,7 +442,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
" Grab the style information. Some of this will be duplicated so only insert
|
" Grab the style information. Some of this will be duplicated so only insert
|
||||||
" it if it's not already there. {{{
|
" it if it's not already there. {{{
|
||||||
1
|
1
|
||||||
let style_start = search('^<style type="text/css">')
|
let style_start = search('^<style\( type="text/css"\)\?>')
|
||||||
1
|
1
|
||||||
let style_end = search('^</style>')
|
let style_end = search('^</style>')
|
||||||
if style_start > 0 && style_end > 0
|
if style_start > 0 && style_end > 0
|
||||||
@@ -481,7 +480,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
" TODO: restore using grabbed lines if undolevel is 1?
|
" TODO: restore using grabbed lines if undolevel is 1?
|
||||||
normal! 2u
|
normal! 2u
|
||||||
if s:settings.use_css
|
if s:settings.use_css
|
||||||
call add(html, '<td valign="top"><div>')
|
call add(html, '<td><div>')
|
||||||
elseif s:settings.use_xhtml
|
elseif s:settings.use_xhtml
|
||||||
call add(html, '<td nowrap="nowrap" valign="top"><div>')
|
call add(html, '<td nowrap="nowrap" valign="top"><div>')
|
||||||
else
|
else
|
||||||
@@ -515,7 +514,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
|
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
|
||||||
let i += 1
|
let i += 1
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
|
let s:ei_sav = &eventignore
|
||||||
|
set eventignore+=FileType
|
||||||
exe "topleft new " . name
|
exe "topleft new " . name
|
||||||
|
let &eventignore=s:ei_sav
|
||||||
|
unlet s:ei_sav
|
||||||
|
|
||||||
setlocal modifiable
|
setlocal modifiable
|
||||||
|
|
||||||
" just in case some user autocmd creates content in the new buffer, make sure
|
" just in case some user autocmd creates content in the new buffer, make sure
|
||||||
@@ -544,7 +549,7 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
" add required javascript in reverse order so we can just call append again
|
" add required javascript in reverse order so we can just call append again
|
||||||
" and again without adjusting {{{
|
" and again without adjusting {{{
|
||||||
|
|
||||||
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids || !empty(s:settings.prevent_copy)
|
let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids
|
||||||
|
|
||||||
" insert script closing tag if needed
|
" insert script closing tag if needed
|
||||||
if s:uses_script
|
if s:uses_script
|
||||||
@@ -555,31 +560,6 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
\ ])
|
\ ])
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" insert script which corrects the size of small input elements in
|
|
||||||
" prevent_copy mode. See 2html.vim for details on why this is needed and how
|
|
||||||
" it works.
|
|
||||||
if !empty(s:settings.prevent_copy)
|
|
||||||
call append(style_start, [
|
|
||||||
\ '',
|
|
||||||
\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
|
|
||||||
\ 'function FixCharWidth() {',
|
|
||||||
\ ' /* get the hidden element which gives the width of a single character */',
|
|
||||||
\ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
|
|
||||||
\ ' /* get all input elements, we''ll filter on class later */',
|
|
||||||
\ ' var inputTags = document.getElementsByTagName("input");',
|
|
||||||
\ ' var ratio = 5;',
|
|
||||||
\ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
|
|
||||||
\ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;',
|
|
||||||
\ ' if (inputWidth > goodWidth) {',
|
|
||||||
\ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
|
|
||||||
\ ' ratio += 5;',
|
|
||||||
\ ' }',
|
|
||||||
\ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
|
|
||||||
\ ' }',
|
|
||||||
\ '}'
|
|
||||||
\ ])
|
|
||||||
endif
|
|
||||||
|
|
||||||
" insert javascript to get IDs from line numbers, and to open a fold before
|
" insert javascript to get IDs from line numbers, and to open a fold before
|
||||||
" jumping to any lines contained therein
|
" jumping to any lines contained therein
|
||||||
if s:settings.line_ids
|
if s:settings.line_ids
|
||||||
@@ -659,10 +639,9 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if s:uses_script
|
if s:uses_script
|
||||||
" insert script tag; javascript is always needed for the line number
|
" insert script tag if needed
|
||||||
" normalization for URL hashes
|
|
||||||
call append(style_start, [
|
call append(style_start, [
|
||||||
\ "<script type='text/javascript'>",
|
\ "<script" . (s:html5 ? "" : " type='text/javascript'") . ">",
|
||||||
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
|
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -673,11 +652,13 @@ func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
|||||||
" is pretty useless for really long lines. {{{
|
" is pretty useless for really long lines. {{{
|
||||||
if s:settings.use_css
|
if s:settings.use_css
|
||||||
call append(style_start,
|
call append(style_start,
|
||||||
\ ['<style type="text/css">']+
|
\ ['<style' . (s:html5 ? '' : 'type="text/css"') . '>']+
|
||||||
\ style+
|
\ style+
|
||||||
\ [ s:settings.use_xhtml ? '' : '<!--',
|
\ [ s:settings.use_xhtml ? '' : '<!--',
|
||||||
\ 'table { table-layout: fixed; }',
|
\ 'table { table-layout: fixed; }',
|
||||||
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
|
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
|
||||||
|
\ 'table, td, th { border: 1px solid; }',
|
||||||
|
\ 'td { vertical-align: top; }',
|
||||||
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
|
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
|
||||||
\ 'td div { overflow: auto; }',
|
\ 'td div { overflow: auto; }',
|
||||||
\ s:settings.use_xhtml ? '' : '-->',
|
\ s:settings.use_xhtml ? '' : '-->',
|
||||||
@@ -720,21 +701,22 @@ func! tohtml#GetUserSettings() "{{{
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" get current option settings with appropriate defaults {{{
|
" get current option settings with appropriate defaults {{{
|
||||||
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
|
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
|
||||||
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
|
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'number_lines', &number )
|
call tohtml#GetOption(user_settings, 'number_lines', &number )
|
||||||
call tohtml#GetOption(user_settings, 'pre_wrap', &wrap )
|
call tohtml#GetOption(user_settings, 'pre_wrap', &wrap )
|
||||||
call tohtml#GetOption(user_settings, 'use_css', 1 )
|
call tohtml#GetOption(user_settings, 'use_css', 1 )
|
||||||
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
|
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
|
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
|
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding)
|
call tohtml#GetOption(user_settings, 'no_foldcolumn', user_settings.ignore_folding)
|
||||||
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
|
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'no_pre', 0 )
|
call tohtml#GetOption(user_settings, 'no_pre', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'no_invalid', 0 )
|
call tohtml#GetOption(user_settings, 'no_invalid', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
||||||
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
|
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
|
||||||
|
call tohtml#GetOption(user_settings, 'use_input_for_pc', 'fallback')
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" override those settings that need it {{{
|
" override those settings that need it {{{
|
||||||
@@ -868,6 +850,16 @@ func! tohtml#GetUserSettings() "{{{
|
|||||||
let user_settings.no_invalid = 0
|
let user_settings.no_invalid = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" enforce valid values for use_input_for_pc
|
||||||
|
if user_settings.use_input_for_pc !~# 'fallback\|none\|all'
|
||||||
|
let user_settings.use_input_for_pc = 'fallback'
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg '2html: "' . g:html_use_input_for_pc . '" is not valid for g:html_use_input_for_pc'
|
||||||
|
echomsg '2html: defaulting to "' . user_settings.use_input_for_pc . '"'
|
||||||
|
echohl None
|
||||||
|
sleep 3
|
||||||
|
endif
|
||||||
|
|
||||||
if exists('g:html_id_expr')
|
if exists('g:html_id_expr')
|
||||||
let user_settings.id_suffix = eval(g:html_id_expr)
|
let user_settings.id_suffix = eval(g:html_id_expr)
|
||||||
if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$'
|
if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim plugin for formatting XML
|
" Vim plugin for formatting XML
|
||||||
" Last Change: Thu, 07 Dec 2018
|
" Last Change: 2020 Jan 06
|
||||||
" Version: 0.1
|
" Version: 0.3
|
||||||
" Author: Christian Brabandt <cb@256bit.org>
|
" Author: Christian Brabandt <cb@256bit.org>
|
||||||
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
|
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
|
||||||
" License: VIM License
|
" License: VIM License
|
||||||
@@ -15,51 +15,92 @@ let s:keepcpo = &cpo
|
|||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
" Main function: Format the input {{{1
|
" Main function: Format the input {{{1
|
||||||
func! xmlformat#Format()
|
func! xmlformat#Format() abort
|
||||||
" only allow reformatting through the gq command
|
" only allow reformatting through the gq command
|
||||||
" (e.g. Vim is in normal mode)
|
" (e.g. Vim is in normal mode)
|
||||||
if mode() != 'n'
|
if mode() != 'n'
|
||||||
" do not fall back to internal formatting
|
" do not fall back to internal formatting
|
||||||
return 0
|
return 0
|
||||||
endif
|
endif
|
||||||
|
let count_orig = v:count
|
||||||
let sw = shiftwidth()
|
let sw = shiftwidth()
|
||||||
let prev = prevnonblank(v:lnum-1)
|
let prev = prevnonblank(v:lnum-1)
|
||||||
let s:indent = indent(prev)/sw
|
let s:indent = indent(prev)/sw
|
||||||
let result = []
|
let result = []
|
||||||
let lastitem = prev ? getline(prev) : ''
|
let lastitem = prev ? getline(prev) : ''
|
||||||
let is_xml_decl = 0
|
let is_xml_decl = 0
|
||||||
" split on `<`, but don't split on very first opening <
|
" go through every line, but don't join all content together and join it
|
||||||
for item in split(join(getline(v:lnum, (v:lnum + v:count - 1))), '.\@<=[>]\zs')
|
" back. We might lose empty lines
|
||||||
if s:EndTag(item)
|
let list = getline(v:lnum, (v:lnum + count_orig - 1))
|
||||||
let s:indent = s:DecreaseIndent()
|
let current = 0
|
||||||
call add(result, s:Indent(item))
|
for line in list
|
||||||
elseif s:EmptyTag(lastitem)
|
" Keep empty input lines?
|
||||||
call add(result, s:Indent(item))
|
if empty(line)
|
||||||
elseif s:StartTag(lastitem) && s:IsTag(item)
|
call add(result, '')
|
||||||
let s:indent += 1
|
continue
|
||||||
call add(result, s:Indent(item))
|
elseif line !~# '<[/]\?[^>]*>'
|
||||||
else
|
let nextmatch = match(list, '<[/]\?[^>]*>', current)
|
||||||
if !s:IsTag(item)
|
if nextmatch > -1
|
||||||
" Simply split on '<'
|
let line .= ' '. join(list[(current + 1):(nextmatch-1)], " ")
|
||||||
let t=split(item, '.<\@=\zs')
|
call remove(list, current+1, nextmatch-1)
|
||||||
let s:indent+=1
|
|
||||||
call add(result, s:Indent(t[0]))
|
|
||||||
let s:indent = s:DecreaseIndent()
|
|
||||||
call add(result, s:Indent(t[1]))
|
|
||||||
else
|
|
||||||
call add(result, s:Indent(item))
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let lastitem = item
|
" split on `>`, but don't split on very first opening <
|
||||||
endfor
|
" this means, items can be like ['<tag>', 'tag content</tag>']
|
||||||
|
for item in split(line, '.\@<=[>]\zs')
|
||||||
|
if s:EndTag(item)
|
||||||
|
call s:DecreaseIndent()
|
||||||
|
call add(result, s:Indent(item))
|
||||||
|
elseif s:EmptyTag(lastitem)
|
||||||
|
call add(result, s:Indent(item))
|
||||||
|
elseif s:StartTag(lastitem) && s:IsTag(item)
|
||||||
|
let s:indent += 1
|
||||||
|
call add(result, s:Indent(item))
|
||||||
|
else
|
||||||
|
if !s:IsTag(item)
|
||||||
|
" Simply split on '<', if there is one,
|
||||||
|
" but reformat according to &textwidth
|
||||||
|
let t=split(item, '.<\@=\zs')
|
||||||
|
|
||||||
if !empty(result)
|
" if the content fits well within a single line, add it there
|
||||||
exe v:lnum. ",". (v:lnum + v:count - 1). 'd'
|
" so that the output looks like this:
|
||||||
|
"
|
||||||
|
" <foobar>1</foobar>
|
||||||
|
if s:TagContent(lastitem) is# s:TagContent(t[1]) && strlen(result[-1]) + strlen(item) <= s:Textwidth()
|
||||||
|
let result[-1] .= item
|
||||||
|
let lastitem = t[1]
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
" t should only contain 2 items, but just be safe here
|
||||||
|
if s:IsTag(lastitem)
|
||||||
|
let s:indent+=1
|
||||||
|
endif
|
||||||
|
let result+=s:FormatContent([t[0]])
|
||||||
|
if s:EndTag(t[1])
|
||||||
|
call s:DecreaseIndent()
|
||||||
|
endif
|
||||||
|
"for y in t[1:]
|
||||||
|
let result+=s:FormatContent(t[1:])
|
||||||
|
"endfor
|
||||||
|
else
|
||||||
|
call add(result, s:Indent(item))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let lastitem = item
|
||||||
|
endfor
|
||||||
|
let current += 1
|
||||||
|
endfor
|
||||||
|
|
||||||
|
if !empty(result)
|
||||||
|
let lastprevline = getline(v:lnum + count_orig)
|
||||||
|
let delete_lastline = v:lnum + count_orig - 1 == line('$')
|
||||||
|
exe v:lnum. ",". (v:lnum + count_orig - 1). 'd'
|
||||||
call append(v:lnum - 1, result)
|
call append(v:lnum - 1, result)
|
||||||
" Might need to remove the last line, if it became empty because of the
|
" Might need to remove the last line, if it became empty because of the
|
||||||
" append() call
|
" append() call
|
||||||
let last = v:lnum + len(result)
|
let last = v:lnum + len(result)
|
||||||
if getline(last) is ''
|
" do not use empty(), it returns true for `empty(0)`
|
||||||
|
if getline(last) is '' && lastprevline is '' && delete_lastline
|
||||||
exe last. 'd'
|
exe last. 'd'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -68,15 +109,15 @@ func! xmlformat#Format()
|
|||||||
return 0
|
return 0
|
||||||
endfunc
|
endfunc
|
||||||
" Check if given tag is XML Declaration header {{{1
|
" Check if given tag is XML Declaration header {{{1
|
||||||
func! s:IsXMLDecl(tag)
|
func! s:IsXMLDecl(tag) abort
|
||||||
return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$'
|
return a:tag =~? '^\s*<?xml\s\?\%(version="[^"]*"\)\?\s\?\%(encoding="[^"]*"\)\? ?>\s*$'
|
||||||
endfunc
|
endfunc
|
||||||
" Return tag indented by current level {{{1
|
" Return tag indented by current level {{{1
|
||||||
func! s:Indent(item)
|
func! s:Indent(item) abort
|
||||||
return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item)
|
return repeat(' ', shiftwidth()*s:indent). s:Trim(a:item)
|
||||||
endfu
|
endfu
|
||||||
" Return item trimmed from leading whitespace {{{1
|
" Return item trimmed from leading whitespace {{{1
|
||||||
func! s:Trim(item)
|
func! s:Trim(item) abort
|
||||||
if exists('*trim')
|
if exists('*trim')
|
||||||
return trim(a:item)
|
return trim(a:item)
|
||||||
else
|
else
|
||||||
@@ -84,30 +125,77 @@ func! s:Trim(item)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
" Check if tag is a new opening tag <tag> {{{1
|
" Check if tag is a new opening tag <tag> {{{1
|
||||||
func! s:StartTag(tag)
|
func! s:StartTag(tag) abort
|
||||||
let is_comment = s:IsComment(a:tag)
|
let is_comment = s:IsComment(a:tag)
|
||||||
return a:tag =~? '^\s*<[^/?]' && !is_comment
|
return a:tag =~? '^\s*<[^/?]' && !is_comment
|
||||||
endfunc
|
endfunc
|
||||||
func! s:IsComment(tag)
|
" Check if tag is a Comment start {{{1
|
||||||
|
func! s:IsComment(tag) abort
|
||||||
return a:tag =~? '<!--'
|
return a:tag =~? '<!--'
|
||||||
endfunc
|
endfunc
|
||||||
" Remove one level of indentation {{{1
|
" Remove one level of indentation {{{1
|
||||||
func! s:DecreaseIndent()
|
func! s:DecreaseIndent() abort
|
||||||
return (s:indent > 0 ? s:indent - 1 : 0)
|
let s:indent = (s:indent > 0 ? s:indent - 1 : 0)
|
||||||
endfunc
|
endfunc
|
||||||
" Check if tag is a closing tag </tag> {{{1
|
" Check if tag is a closing tag </tag> {{{1
|
||||||
func! s:EndTag(tag)
|
func! s:EndTag(tag) abort
|
||||||
return a:tag =~? '^\s*</'
|
return a:tag =~? '^\s*</'
|
||||||
endfunc
|
endfunc
|
||||||
" Check that the tag is actually a tag and not {{{1
|
" Check that the tag is actually a tag and not {{{1
|
||||||
" something like "foobar</foobar>"
|
" something like "foobar</foobar>"
|
||||||
func! s:IsTag(tag)
|
func! s:IsTag(tag) abort
|
||||||
return s:Trim(a:tag)[0] == '<'
|
return s:Trim(a:tag)[0] == '<'
|
||||||
endfunc
|
endfunc
|
||||||
" Check if tag is empty <tag/> {{{1
|
" Check if tag is empty <tag/> {{{1
|
||||||
func! s:EmptyTag(tag)
|
func! s:EmptyTag(tag) abort
|
||||||
return a:tag =~ '/>\s*$'
|
return a:tag =~ '/>\s*$'
|
||||||
endfunc
|
endfunc
|
||||||
|
func! s:TagContent(tag) abort "{{{1
|
||||||
|
" Return content of a tag
|
||||||
|
return substitute(a:tag, '^\s*<[/]\?\([^>]*\)>\s*$', '\1', '')
|
||||||
|
endfunc
|
||||||
|
func! s:Textwidth() abort "{{{1
|
||||||
|
" return textwidth (or 80 if not set)
|
||||||
|
return &textwidth == 0 ? 80 : &textwidth
|
||||||
|
endfunc
|
||||||
|
" Format input line according to textwidth {{{1
|
||||||
|
func! s:FormatContent(list) abort
|
||||||
|
let result=[]
|
||||||
|
let limit = s:Textwidth()
|
||||||
|
let column=0
|
||||||
|
let idx = -1
|
||||||
|
let add_indent = 0
|
||||||
|
let cnt = 0
|
||||||
|
for item in a:list
|
||||||
|
for word in split(item, '\s\+\S\+\zs')
|
||||||
|
if match(word, '^\s\+$') > -1
|
||||||
|
" skip empty words
|
||||||
|
continue
|
||||||
|
endif
|
||||||
|
let column += strdisplaywidth(word, column)
|
||||||
|
if match(word, "^\\s*\n\\+\\s*$") > -1
|
||||||
|
call add(result, '')
|
||||||
|
let idx += 1
|
||||||
|
let column = 0
|
||||||
|
let add_indent = 1
|
||||||
|
elseif column > limit || cnt == 0
|
||||||
|
let add = s:Indent(s:Trim(word))
|
||||||
|
call add(result, add)
|
||||||
|
let column = strdisplaywidth(add)
|
||||||
|
let idx += 1
|
||||||
|
else
|
||||||
|
if add_indent
|
||||||
|
let result[idx] = s:Indent(s:Trim(word))
|
||||||
|
else
|
||||||
|
let result[idx] .= ' '. s:Trim(word)
|
||||||
|
endif
|
||||||
|
let add_indent = 0
|
||||||
|
endif
|
||||||
|
let cnt += 1
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
return result
|
||||||
|
endfunc
|
||||||
" Restoration And Modelines: {{{1
|
" Restoration And Modelines: {{{1
|
||||||
let &cpo= s:keepcpo
|
let &cpo= s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
" zip.vim: Handles browsing zipfiles
|
" zip.vim: Handles browsing zipfiles
|
||||||
" AUTOLOAD PORTION
|
" AUTOLOAD PORTION
|
||||||
" Date: Sep 13, 2016
|
" Date: Jan 07, 2020
|
||||||
" Version: 28
|
" Version: 30
|
||||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||||
" License: Vim License (see vim's :help license)
|
" License: Vim License (see vim's :help license)
|
||||||
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
|
" Copyright: Copyright (C) 2005-2019 Charles E. Campbell {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
" with or without modifications, provided that this copyright
|
" with or without modifications, provided that this copyright
|
||||||
" notice is copied with it. Like anything else that's free,
|
" notice is copied with it. Like anything else that's free,
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
if &cp || exists("g:loaded_zip")
|
if &cp || exists("g:loaded_zip")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_zip= "v28"
|
let g:loaded_zip= "v30"
|
||||||
if v:version < 702
|
if v:version < 702
|
||||||
echohl WarningMsg
|
echohl WarningMsg
|
||||||
echo "***warning*** this version of zip needs vim 7.2 or later"
|
echo "***warning*** this version of zip needs vim 7.2 or later"
|
||||||
@@ -68,7 +68,7 @@ fun! zip#Browse(zipfile)
|
|||||||
" sanity check: ensure 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")
|
" (zipped files have a leading PK as a "magic cookie")
|
||||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
||||||
exe "noautocmd e ".fnameescape(a:zipfile)
|
exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
|
||||||
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
||||||
return
|
return
|
||||||
" else " Decho
|
" else " Decho
|
||||||
@@ -141,8 +141,11 @@ fun! zip#Browse(zipfile)
|
|||||||
|
|
||||||
" Maps associated with zip plugin
|
" Maps associated with zip plugin
|
||||||
setlocal noma nomod ro
|
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>
|
noremap <silent> <buffer> x :call zip#Extract()<cr>
|
||||||
|
if &mouse != ""
|
||||||
|
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>ZipBrowseSelect()<cr>
|
||||||
|
endif
|
||||||
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("zip#Browse")
|
" call Dret("zip#Browse")
|
||||||
@@ -175,17 +178,17 @@ fun! s:ZipBrowseSelect()
|
|||||||
|
|
||||||
" get zipfile to the new-window
|
" get zipfile to the new-window
|
||||||
let zipfile = b:zipfile
|
let zipfile = b:zipfile
|
||||||
let curfile= expand("%")
|
let curfile = expand("%")
|
||||||
" call Decho("zipfile<".zipfile.">")
|
" call Decho("zipfile<".zipfile.">")
|
||||||
" call Decho("curfile<".curfile.">")
|
" call Decho("curfile<".curfile.">")
|
||||||
|
|
||||||
new
|
noswapfile new
|
||||||
if !exists("g:zip_nomax") || g:zip_nomax == 0
|
if !exists("g:zip_nomax") || g:zip_nomax == 0
|
||||||
wincmd _
|
wincmd _
|
||||||
endif
|
endif
|
||||||
let s:zipfile_{winnr()}= curfile
|
let s:zipfile_{winnr()}= curfile
|
||||||
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
|
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
|
||||||
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
|
exe "noswapfile e ".fnameescape("zipfile:".zipfile.'::'.fname)
|
||||||
filetype detect
|
filetype detect
|
||||||
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
@@ -339,7 +342,7 @@ fun! zip#Write(fname)
|
|||||||
let binkeep= &binary
|
let binkeep= &binary
|
||||||
let eikeep = &ei
|
let eikeep = &ei
|
||||||
set binary ei=all
|
set binary ei=all
|
||||||
exe "e! ".fnameescape(zipfile)
|
exe "noswapfile e! ".fnameescape(zipfile)
|
||||||
call netrw#NetWrite(netzipfile)
|
call netrw#NetWrite(netzipfile)
|
||||||
let &ei = eikeep
|
let &ei = eikeep
|
||||||
let &binary = binkeep
|
let &binary = binkeep
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" The default vimrc file.
|
" The default vimrc file.
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last change: 2019 Feb 18
|
" Last change: 2019 Oct 27
|
||||||
"
|
"
|
||||||
" This is loaded if no vimrc file was found.
|
" This is loaded if no vimrc file was found.
|
||||||
" Except when Vim is run with "-u NONE" or "-C".
|
" Except when Vim is run with "-u NONE" or "-C".
|
||||||
@@ -75,8 +75,14 @@ inoremap <C-U> <C-G>u<C-U>
|
|||||||
|
|
||||||
" In many terminal emulators the mouse works just fine. By enabling it you
|
" In many terminal emulators the mouse works just fine. By enabling it you
|
||||||
" can position the cursor, Visually select and scroll with the mouse.
|
" can position the cursor, Visually select and scroll with the mouse.
|
||||||
|
" Only xterm can grab the mouse events when using the shift key, for other
|
||||||
|
" terminals use ":", select text and press Esc.
|
||||||
if has('mouse')
|
if has('mouse')
|
||||||
set mouse=a
|
if &term =~ 'xterm'
|
||||||
|
set mouse=a
|
||||||
|
else
|
||||||
|
set mouse=nvi
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Switch syntax highlighting on when the terminal has colors or when using the
|
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||||
|
|||||||
@@ -2,30 +2,31 @@
|
|||||||
" Warning: This also deletes all menus defined by the user!
|
" Warning: This also deletes all menus defined by the user!
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2019 Sep 11
|
" Last Change: 2019 Dec 10
|
||||||
|
|
||||||
aunmenu *
|
aunmenu *
|
||||||
tlunmenu *
|
tlunmenu *
|
||||||
|
|
||||||
silent! unlet did_install_default_menus
|
unlet! g:did_install_default_menus
|
||||||
silent! unlet did_install_syntax_menu
|
unlet! g:did_install_syntax_menu
|
||||||
if exists("did_menu_trans")
|
|
||||||
|
if exists('g:did_menu_trans')
|
||||||
menutrans clear
|
menutrans clear
|
||||||
unlet did_menu_trans
|
unlet g:did_menu_trans
|
||||||
endif
|
endif
|
||||||
|
|
||||||
silent! unlet find_help_dialog
|
unlet! g:find_help_dialog
|
||||||
|
|
||||||
silent! unlet menutrans_help_dialog
|
unlet! g:menutrans_fileformat_choices
|
||||||
silent! unlet menutrans_path_dialog
|
unlet! g:menutrans_fileformat_dialog
|
||||||
silent! unlet menutrans_tags_dialog
|
unlet! g:menutrans_help_dialog
|
||||||
silent! unlet menutrans_textwidth_dialog
|
unlet! g:menutrans_no_file
|
||||||
silent! unlet menutrans_fileformat_dialog
|
unlet! g:menutrans_path_dialog
|
||||||
silent! unlet menutrans_fileformat_choices
|
unlet! g:menutrans_set_lang_to
|
||||||
silent! unlet menutrans_no_file
|
unlet! g:menutrans_spell_add_ARG_to_word_list
|
||||||
silent! unlet menutrans_set_lang_to
|
unlet! g:menutrans_spell_change_ARG_to
|
||||||
silent! unlet menutrans_spell_change_ARG_to
|
unlet! g:menutrans_spell_ignore_ARG
|
||||||
silent! unlet menutrans_spell_add_ARG_to_word_list
|
unlet! g:menutrans_tags_dialog
|
||||||
silent! unlet menutrans_spell_ignore_ARG
|
unlet! g:menutrans_textwidth_dialog
|
||||||
|
|
||||||
" vim: set sw=2 :
|
" vim: set sw=2 :
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ DOCS = \
|
|||||||
os_amiga.txt \
|
os_amiga.txt \
|
||||||
os_beos.txt \
|
os_beos.txt \
|
||||||
os_dos.txt \
|
os_dos.txt \
|
||||||
|
os_haiku.txt \
|
||||||
os_mac.txt \
|
os_mac.txt \
|
||||||
os_mint.txt \
|
os_mint.txt \
|
||||||
os_msdos.txt \
|
os_msdos.txt \
|
||||||
@@ -149,6 +150,7 @@ DOCS = \
|
|||||||
version7.txt \
|
version7.txt \
|
||||||
version8.txt \
|
version8.txt \
|
||||||
vi_diff.txt \
|
vi_diff.txt \
|
||||||
|
vim9.txt \
|
||||||
visual.txt \
|
visual.txt \
|
||||||
windows.txt \
|
windows.txt \
|
||||||
workshop.txt
|
workshop.txt
|
||||||
@@ -203,6 +205,7 @@ HTMLS = \
|
|||||||
os_amiga.html \
|
os_amiga.html \
|
||||||
os_beos.html \
|
os_beos.html \
|
||||||
os_dos.html \
|
os_dos.html \
|
||||||
|
os_haiku.html \
|
||||||
os_mac.html \
|
os_mac.html \
|
||||||
os_mint.html \
|
os_mint.html \
|
||||||
os_msdos.html \
|
os_msdos.html \
|
||||||
@@ -289,6 +292,7 @@ HTMLS = \
|
|||||||
version8.html \
|
version8.html \
|
||||||
vi_diff.html \
|
vi_diff.html \
|
||||||
vimindex.html \
|
vimindex.html \
|
||||||
|
vim9.html \
|
||||||
visual.html \
|
visual.html \
|
||||||
windows.html \
|
windows.html \
|
||||||
workshop.html
|
workshop.html
|
||||||
@@ -323,7 +327,7 @@ all: tags vim.man evim.man vimdiff.man vimtutor.man xxd.man $(CONVERTED)
|
|||||||
# Use Vim to generate the tags file. Can only be used when Vim has been
|
# Use Vim to generate the tags file. Can only be used when Vim has been
|
||||||
# compiled and installed. Supports multiple languages.
|
# compiled and installed. Supports multiple languages.
|
||||||
vimtags: $(DOCS)
|
vimtags: $(DOCS)
|
||||||
$(VIMEXE) -u NONE -esX -c "helptags ++t ." -c quit
|
@$(VIMEXE) --clean -esX -V1 -u doctags.vim
|
||||||
|
|
||||||
# Use "doctags" to generate the tags file. Only works for English!
|
# Use "doctags" to generate the tags file. Only works for English!
|
||||||
tags: doctags $(DOCS)
|
tags: doctags $(DOCS)
|
||||||
@@ -420,6 +424,9 @@ os_beos.txt:
|
|||||||
os_dos.txt:
|
os_dos.txt:
|
||||||
touch os_dos.txt
|
touch os_dos.txt
|
||||||
|
|
||||||
|
os_haiku.txt:
|
||||||
|
touch os_haiku.txt
|
||||||
|
|
||||||
os_mac.txt:
|
os_mac.txt:
|
||||||
touch os_mac.txt
|
touch os_mac.txt
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*arabic.txt* For Vim version 8.1. Last change: 2019 May 05
|
*arabic.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Nadim Shaikli
|
VIM REFERENCE MANUAL by Nadim Shaikli
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Jun 26
|
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jan 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -268,7 +268,6 @@ Name triggered by ~
|
|||||||
|BufCreate| just after adding a buffer to the buffer list
|
|BufCreate| just after adding a buffer to the buffer list
|
||||||
|BufDelete| before deleting a buffer from the buffer list
|
|BufDelete| before deleting a buffer from the buffer list
|
||||||
|BufWipeout| before completely deleting a buffer
|
|BufWipeout| before completely deleting a buffer
|
||||||
|TerminalOpen| after a terminal buffer was created
|
|
||||||
|
|
||||||
|BufFilePre| before changing the name of the current buffer
|
|BufFilePre| before changing the name of the current buffer
|
||||||
|BufFilePost| after changing the name of the current buffer
|
|BufFilePost| after changing the name of the current buffer
|
||||||
@@ -302,6 +301,10 @@ Name triggered by ~
|
|||||||
|VimLeavePre| before exiting Vim, before writing the viminfo file
|
|VimLeavePre| before exiting Vim, before writing the viminfo file
|
||||||
|VimLeave| before exiting Vim, after writing the viminfo file
|
|VimLeave| before exiting Vim, after writing the viminfo file
|
||||||
|
|
||||||
|
Terminal
|
||||||
|
|TerminalOpen| after a terminal buffer was created
|
||||||
|
|TerminalWinOpen| after a terminal buffer was created in a new window
|
||||||
|
|
||||||
Various
|
Various
|
||||||
|FileChangedShell| Vim notices that a file changed since editing started
|
|FileChangedShell| Vim notices that a file changed since editing started
|
||||||
|FileChangedShellPost| After handling a file changed since editing started
|
|FileChangedShellPost| After handling a file changed since editing started
|
||||||
@@ -355,6 +358,10 @@ Name triggered by ~
|
|||||||
when popup menu visible
|
when popup menu visible
|
||||||
|TextYankPost| after text has been yanked or deleted
|
|TextYankPost| after text has been yanked or deleted
|
||||||
|
|
||||||
|
|SafeState| nothing pending, going to wait for the user to type a
|
||||||
|
character
|
||||||
|
|SafeStateAgain| repeated SafeState
|
||||||
|
|
||||||
|ColorSchemePre| before loading a color scheme
|
|ColorSchemePre| before loading a color scheme
|
||||||
|ColorScheme| after loading a color scheme
|
|ColorScheme| after loading a color scheme
|
||||||
|
|
||||||
@@ -367,7 +374,10 @@ Name triggered by ~
|
|||||||
|
|
||||||
|MenuPopup| just before showing the popup menu
|
|MenuPopup| just before showing the popup menu
|
||||||
|CompleteChanged| after Insert mode completion menu changed
|
|CompleteChanged| after Insert mode completion menu changed
|
||||||
|CompleteDone| after Insert mode completion is done
|
|CompleteDonePre| after Insert mode completion is done, before clearing
|
||||||
|
info
|
||||||
|
|CompleteDone| after Insert mode completion is done, after clearing
|
||||||
|
info
|
||||||
|
|
||||||
|User| to be used in combination with ":doautocmd"
|
|User| to be used in combination with ":doautocmd"
|
||||||
|
|
||||||
@@ -380,6 +390,8 @@ BufAdd or BufCreate Just after creating a new buffer which is
|
|||||||
to the buffer list.
|
to the buffer list.
|
||||||
Also used just after a buffer in the buffer
|
Also used just after a buffer in the buffer
|
||||||
list has been renamed.
|
list has been renamed.
|
||||||
|
Not triggered for the initial buffers created
|
||||||
|
during startup.
|
||||||
The BufCreate event is for historic reasons.
|
The BufCreate event is for historic reasons.
|
||||||
NOTE: When this autocommand is executed, the
|
NOTE: When this autocommand is executed, the
|
||||||
current buffer "%" may be different from the
|
current buffer "%" may be different from the
|
||||||
@@ -577,11 +589,11 @@ ColorScheme After loading a color scheme. |:colorscheme|
|
|||||||
ColorSchemePre Before loading a color scheme. |:colorscheme|
|
ColorSchemePre Before loading a color scheme. |:colorscheme|
|
||||||
Useful to setup removing things added by a
|
Useful to setup removing things added by a
|
||||||
color scheme, before another one is loaded.
|
color scheme, before another one is loaded.
|
||||||
CompleteChanged *CompleteChanged*
|
CompleteChanged *CompleteChanged*
|
||||||
After each time the Insert mode completion
|
After each time the Insert mode completion
|
||||||
menu changed. Not fired on popup menu hide,
|
menu changed. Not fired on popup menu hide,
|
||||||
use |CompleteDone| for that. Never triggered
|
use |CompleteDonePre| or |CompleteDone| for
|
||||||
recursively.
|
that. Never triggered recursively.
|
||||||
|
|
||||||
Sets these |v:event| keys:
|
Sets these |v:event| keys:
|
||||||
completed_item See |complete-items|.
|
completed_item See |complete-items|.
|
||||||
@@ -597,10 +609,22 @@ CompleteChanged *CompleteChanged*
|
|||||||
The size and position of the popup are also
|
The size and position of the popup are also
|
||||||
available by calling |pum_getpos()|.
|
available by calling |pum_getpos()|.
|
||||||
|
|
||||||
|
*CompleteDonePre*
|
||||||
|
CompleteDonePre After Insert mode completion is done. Either
|
||||||
|
when something was completed or abandoning
|
||||||
|
completion. |ins-completion|
|
||||||
|
|complete_info()| can be used, the info is
|
||||||
|
cleared after triggering CompleteDonePre.
|
||||||
|
The |v:completed_item| variable contains
|
||||||
|
information about the completed item.
|
||||||
|
|
||||||
*CompleteDone*
|
*CompleteDone*
|
||||||
CompleteDone After Insert mode completion is done. Either
|
CompleteDone After Insert mode completion is done. Either
|
||||||
when something was completed or abandoning
|
when something was completed or abandoning
|
||||||
completion. |ins-completion|
|
completion. |ins-completion|
|
||||||
|
|complete_info()| cannot be used, the info is
|
||||||
|
cleared before triggering CompleteDone. Use
|
||||||
|
CompleteDonePre if you need it.
|
||||||
The |v:completed_item| variable contains
|
The |v:completed_item| variable contains
|
||||||
information about the completed item.
|
information about the completed item.
|
||||||
|
|
||||||
@@ -630,7 +654,7 @@ CursorHold When the user doesn't press a key for the time
|
|||||||
Hint: to force an update of the status lines
|
Hint: to force an update of the status lines
|
||||||
use: >
|
use: >
|
||||||
:let &ro = &ro
|
:let &ro = &ro
|
||||||
< {only on Amiga, Unix, Win32, MSDOS and all GUI
|
< {only on Amiga, Unix, Win32 and all GUI
|
||||||
versions}
|
versions}
|
||||||
*CursorHoldI*
|
*CursorHoldI*
|
||||||
CursorHoldI Just like CursorHold, but in Insert mode.
|
CursorHoldI Just like CursorHold, but in Insert mode.
|
||||||
@@ -955,6 +979,32 @@ RemoteReply When a reply from a Vim that functions as
|
|||||||
Note that even if an autocommand is defined,
|
Note that even if an autocommand is defined,
|
||||||
the reply should be read with |remote_read()|
|
the reply should be read with |remote_read()|
|
||||||
to consume it.
|
to consume it.
|
||||||
|
*SafeState*
|
||||||
|
SafeState When nothing is pending, going to wait for the
|
||||||
|
user to type a character.
|
||||||
|
This will not be triggered when:
|
||||||
|
- an operator is pending
|
||||||
|
- a register was entered with "r
|
||||||
|
- halfway executing a command
|
||||||
|
- executing a mapping
|
||||||
|
- there is typeahead
|
||||||
|
- Insert mode completion is active
|
||||||
|
- Command line completion is active
|
||||||
|
You can use `mode()` to find out what state
|
||||||
|
Vim is in. That may be:
|
||||||
|
- VIsual mode
|
||||||
|
- Normal mode
|
||||||
|
- Insert mode
|
||||||
|
- Command-line mode
|
||||||
|
Depending on what you want to do, you may also
|
||||||
|
check more with `state()`, e.g. whether the
|
||||||
|
screen was scrolled for messages.
|
||||||
|
*SafeStateAgain*
|
||||||
|
SafeStateAgain Like SafeState but after processing any
|
||||||
|
messages and invoking callbacks. This may be
|
||||||
|
triggered often, don't do something that takes
|
||||||
|
time.
|
||||||
|
|
||||||
*SessionLoadPost*
|
*SessionLoadPost*
|
||||||
SessionLoadPost After loading the session file created using
|
SessionLoadPost After loading the session file created using
|
||||||
the |:mksession| command.
|
the |:mksession| command.
|
||||||
@@ -1051,6 +1101,12 @@ TerminalOpen Just after a terminal buffer was created, with
|
|||||||
`:terminal` or |term_start()|. This event is
|
`:terminal` or |term_start()|. This event is
|
||||||
triggered even if the buffer is created
|
triggered even if the buffer is created
|
||||||
without a window, with the ++hidden option.
|
without a window, with the ++hidden option.
|
||||||
|
*TerminalWinOpen*
|
||||||
|
TerminalWinOpen Just after a terminal buffer was created, with
|
||||||
|
`:terminal` or |term_start()|. This event is
|
||||||
|
triggered only if the buffer is created
|
||||||
|
with a window. Can be used to set window
|
||||||
|
local options for the terminal window.
|
||||||
*TermResponse*
|
*TermResponse*
|
||||||
TermResponse After the response to |t_RV| is received from
|
TermResponse After the response to |t_RV| is received from
|
||||||
the terminal. The value of |v:termresponse|
|
the terminal. The value of |v:termresponse|
|
||||||
@@ -1087,8 +1143,8 @@ TextYankPost After text has been yanked or deleted in the
|
|||||||
current buffer. The following values of
|
current buffer. The following values of
|
||||||
|v:event| can be used to determine the operation
|
|v:event| can be used to determine the operation
|
||||||
that triggered this autocmd:
|
that triggered this autocmd:
|
||||||
operator The operation performed.
|
operator The operation performed.
|
||||||
regcontents Text that was stored in the
|
regcontents Text that was stored in the
|
||||||
register, as a list of lines,
|
register, as a list of lines,
|
||||||
like with: >
|
like with: >
|
||||||
getreg(r, 1, 1)
|
getreg(r, 1, 1)
|
||||||
@@ -1124,7 +1180,7 @@ VimEnter After doing all the startup stuff, including
|
|||||||
if v:vim_did_enter
|
if v:vim_did_enter
|
||||||
call s:init()
|
call s:init()
|
||||||
else
|
else
|
||||||
au VimEnter * call s:init()
|
au VimEnter * call s:init()
|
||||||
endif
|
endif
|
||||||
< *VimLeave*
|
< *VimLeave*
|
||||||
VimLeave Before exiting Vim, just after writing the
|
VimLeave Before exiting Vim, just after writing the
|
||||||
@@ -1248,8 +1304,8 @@ The pattern is interpreted like mostly used in file names:
|
|||||||
[^ch] match any character but 'c' and 'h'
|
[^ch] match any character but 'c' and 'h'
|
||||||
|
|
||||||
Note that for all systems the '/' character is used for path separator (even
|
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
|
for MS-Windows). This was done because the backslash is difficult to use in a
|
||||||
in a pattern and to make the autocommands portable across different systems.
|
pattern and to make the autocommands portable across different systems.
|
||||||
|
|
||||||
It is possible to use |pattern| items, but they may not work as expected,
|
It is possible to use |pattern| items, but they may not work as expected,
|
||||||
because of the translation done for the above.
|
because of the translation done for the above.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*change.txt* For Vim version 8.1. Last change: 2019 Aug 21
|
*change.txt* For Vim version 8.2. Last change: 2020 Apr 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -209,7 +209,7 @@ gR Enter Virtual Replace mode: Each character you type
|
|||||||
start insert (for {Visual} see |Visual-mode|).
|
start insert (for {Visual} see |Visual-mode|).
|
||||||
|
|
||||||
*v_r*
|
*v_r*
|
||||||
{Visual}["x]r{char} Replace all selected characters by {char}.
|
{Visual}r{char} Replace all selected characters by {char}.
|
||||||
|
|
||||||
*v_C*
|
*v_C*
|
||||||
{Visual}["x]C Delete the highlighted lines [into register x] and
|
{Visual}["x]C Delete the highlighted lines [into register x] and
|
||||||
@@ -611,7 +611,7 @@ attack or other people reading your file). When Vim exits the directory and
|
|||||||
all files in it are deleted. When Vim has the setuid bit set this may cause
|
all files in it are deleted. When Vim has the setuid bit set this may cause
|
||||||
problems, the temp file is owned by the setuid user but the filter command
|
problems, the temp file is owned by the setuid user but the filter command
|
||||||
probably runs as the original user.
|
probably runs as the original user.
|
||||||
On MS-DOS and OS/2 the first of these directories that works is used: $TMP,
|
On MS-Windows the first of these directories that works is used: $TMP,
|
||||||
$TEMP, c:\TMP, c:\TEMP.
|
$TEMP, c:\TMP, c:\TEMP.
|
||||||
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
|
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
|
||||||
For MS-Windows the GetTempFileName() system function is used.
|
For MS-Windows the GetTempFileName() system function is used.
|
||||||
@@ -636,6 +636,8 @@ For other systems the tmpnam() library function is used.
|
|||||||
|cmdline-ranges|.
|
|cmdline-ranges|.
|
||||||
|
|
||||||
See |:s_flags| for [flags].
|
See |:s_flags| for [flags].
|
||||||
|
The delimiter doesn't need to be /, see
|
||||||
|
|pattern-delimiter|.
|
||||||
|
|
||||||
:[range]s[ubstitute] [flags] [count]
|
:[range]s[ubstitute] [flags] [count]
|
||||||
:[range]&[&][flags] [count] *:&*
|
:[range]&[&][flags] [count] *:&*
|
||||||
@@ -775,7 +777,7 @@ This deletes "TESTING" from all lines, but only one per line.
|
|||||||
For compatibility with Vi these two exceptions are allowed:
|
For compatibility with Vi these two exceptions are allowed:
|
||||||
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
|
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
|
||||||
"\&{string}&" does the same as "//{string}/".
|
"\&{string}&" does the same as "//{string}/".
|
||||||
*E146*
|
*pattern-delimiter* *E146*
|
||||||
Instead of the '/' which surrounds the pattern and replacement string, you
|
Instead of the '/' which surrounds the pattern and replacement string, you
|
||||||
can use any other single-byte character, but not an alphanumeric character,
|
can use any other single-byte character, but not an alphanumeric character,
|
||||||
'\', '"' or '|'. This is useful if you want to include a '/' in the search
|
'\', '"' or '|'. This is useful if you want to include a '/' in the search
|
||||||
@@ -994,14 +996,18 @@ inside of strings can change! Also see 'softtabstop' option. >
|
|||||||
5. Copying and moving text *copy-move*
|
5. Copying and moving text *copy-move*
|
||||||
|
|
||||||
*quote*
|
*quote*
|
||||||
"{a-zA-Z0-9.%#:-"} Use register {a-zA-Z0-9.%#:-"} for next delete, yank
|
"{register} Use {register} for next delete, yank or put. Use
|
||||||
or put (use uppercase character to append with
|
an uppercase character to append with delete and yank.
|
||||||
delete and yank) ({.%#:} only work with put).
|
Registers ".", "%", "#" and ":" only work with put.
|
||||||
|
|
||||||
*:reg* *:registers*
|
*:reg* *:registers*
|
||||||
:reg[isters] Display the contents of all numbered and named
|
:reg[isters] Display the type and contents of all numbered and
|
||||||
registers. If a register is written to for |:redir|
|
named registers. If a register is written to for
|
||||||
it will not be listed.
|
|:redir| it will not be listed.
|
||||||
|
Type can be one of:
|
||||||
|
"c" for |characterwise| text
|
||||||
|
"l" for |linewise| text
|
||||||
|
"b" for |blockwise-visual| text
|
||||||
|
|
||||||
|
|
||||||
:reg[isters] {arg} Display the contents of the numbered and named
|
:reg[isters] {arg} Display the contents of the numbered and named
|
||||||
@@ -1172,7 +1178,7 @@ Rationale: In Vi the "y" command followed by a backwards motion would
|
|||||||
With a linewise yank command the cursor is put in the first line, but the
|
With a linewise yank command the cursor is put in the first line, but the
|
||||||
column is unmodified, thus it may not be on the first yanked character.
|
column is unmodified, thus it may not be on the first yanked character.
|
||||||
|
|
||||||
There are ten types of registers: *registers* *E354*
|
There are ten types of registers: *registers* *{register}* *E354*
|
||||||
1. The unnamed register ""
|
1. The unnamed register ""
|
||||||
2. 10 numbered registers "0 to "9
|
2. 10 numbered registers "0 to "9
|
||||||
3. The small delete register "-
|
3. The small delete register "-
|
||||||
@@ -1312,7 +1318,7 @@ When writing to this register, nothing happens. This can be used to delete
|
|||||||
text without affecting the normal registers. When reading from this register,
|
text without affecting the normal registers. When reading from this register,
|
||||||
nothing is returned.
|
nothing is returned.
|
||||||
|
|
||||||
10. Last search pattern register "/ *quote_/* *quote/*
|
10. Last search pattern register "/ *quote_/* *quote/*
|
||||||
Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
|
Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
|
||||||
It is writable with `:let`, you can change it to have 'hlsearch' highlight
|
It is writable with `:let`, you can change it to have 'hlsearch' highlight
|
||||||
other matches without actually searching. You can't yank or delete into this
|
other matches without actually searching. You can't yank or delete into this
|
||||||
@@ -1452,7 +1458,7 @@ text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
|
|||||||
func! format#Format()
|
func! format#Format()
|
||||||
" only reformat on explicit gq command
|
" only reformat on explicit gq command
|
||||||
if mode() != 'n'
|
if mode() != 'n'
|
||||||
" fall back to Vims internal reformatting
|
" fall back to Vim's internal reformatting
|
||||||
return 1
|
return 1
|
||||||
endif
|
endif
|
||||||
let lines = getline(v:lnum, v:lnum + v:count - 1)
|
let lines = getline(v:lnum, v:lnum + v:count - 1)
|
||||||
@@ -1618,8 +1624,6 @@ By default, "b:#" is included. This means that a line that starts with
|
|||||||
"#include" is not recognized as a comment line. But a line that starts with
|
"#include" is not recognized as a comment line. But a line that starts with
|
||||||
"# define" is recognized. This is a compromise.
|
"# define" is recognized. This is a compromise.
|
||||||
|
|
||||||
{not available when compiled without the |+comments| feature}
|
|
||||||
|
|
||||||
*fo-table*
|
*fo-table*
|
||||||
You can use the 'formatoptions' option to influence how Vim formats text.
|
You can use the 'formatoptions' option to influence how Vim formats text.
|
||||||
'formatoptions' is a string that can contain any of the letters below. The
|
'formatoptions' is a string that can contain any of the letters below. The
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*channel.txt* For Vim version 8.1. Last change: 2019 Sep 11
|
*channel.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -120,6 +120,9 @@ Use |ch_status()| to see if the channel could be opened.
|
|||||||
|
|
||||||
{address} has the form "hostname:port". E.g., "localhost:8765".
|
{address} has the form "hostname:port". E.g., "localhost:8765".
|
||||||
|
|
||||||
|
When using an IPv6 address, enclose it within square brackets. E.g.,
|
||||||
|
"[2001:db8::1]:8765".
|
||||||
|
|
||||||
{options} is a dictionary with optional entries: *channel-open-options*
|
{options} is a dictionary with optional entries: *channel-open-options*
|
||||||
|
|
||||||
"mode" can be: *channel-mode*
|
"mode" can be: *channel-mode*
|
||||||
@@ -223,7 +226,7 @@ ch_open() fails quickly. On MS-Windows "waittime" applies.
|
|||||||
*E898* *E901* *E902*
|
*E898* *E901* *E902*
|
||||||
|
|
||||||
If there is an error reading or writing a channel it will be closed.
|
If there is an error reading or writing a channel it will be closed.
|
||||||
*E630* *E631*
|
*E630* *E631*
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
4. Using a JSON or JS channel *channel-use*
|
4. Using a JSON or JS channel *channel-use*
|
||||||
@@ -621,6 +624,9 @@ ch_open({address} [, {options}]) *ch_open()*
|
|||||||
{address} has the form "hostname:port", e.g.,
|
{address} has the form "hostname:port", e.g.,
|
||||||
"localhost:8765".
|
"localhost:8765".
|
||||||
|
|
||||||
|
When using an IPv6 address, enclose it within square brackets.
|
||||||
|
E.g., "[2001:db8::1]:8765".
|
||||||
|
|
||||||
If {options} is given it must be a |Dictionary|.
|
If {options} is given it must be a |Dictionary|.
|
||||||
See |channel-open-options|.
|
See |channel-open-options|.
|
||||||
|
|
||||||
@@ -752,7 +758,7 @@ handle that separately, add an "err_cb" handler: >
|
|||||||
|
|
||||||
If you want to handle both stderr and stdout with one handler use the
|
If you want to handle both stderr and stdout with one handler use the
|
||||||
"callback" option: >
|
"callback" option: >
|
||||||
let job = job_start(command, {"callback": "MyHandler"})
|
let job = job_start(command, {"callback": "MyHandler"})
|
||||||
|
|
||||||
Depending on the system, starting a job can put Vim in the background, the
|
Depending on the system, starting a job can put Vim in the background, the
|
||||||
started job gets the focus. To avoid that, use the `foreground()` function.
|
started job gets the focus. To avoid that, use the `foreground()` function.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*cmdline.txt* For Vim version 8.1. Last change: 2019 Sep 04
|
*cmdline.txt* For Vim version 8.2. Last change: 2020 Apr 23
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -75,12 +75,19 @@ CTRL-V Insert next non-digit literally. Up to three digits form the
|
|||||||
decimal value of a single byte. The non-digit and the three
|
decimal value of a single byte. The non-digit and the three
|
||||||
digits are not considered for mapping. This works the same
|
digits are not considered for mapping. This works the same
|
||||||
way as in Insert mode (see above, |i_CTRL-V|).
|
way as in Insert mode (see above, |i_CTRL-V|).
|
||||||
Note: Under Windows CTRL-V is often mapped to paste text.
|
Note: Under MS-Windows CTRL-V is often mapped to paste text.
|
||||||
Use CTRL-Q instead then.
|
Use CTRL-Q instead then.
|
||||||
|
When |modifyOtherKeys| is enabled then special Escape sequence
|
||||||
|
is converted back to what it was without |modifyOtherKeys|,
|
||||||
|
unless the Shift key is also pressed.
|
||||||
*c_CTRL-Q*
|
*c_CTRL-Q*
|
||||||
CTRL-Q Same as CTRL-V. But with some terminals it is used for
|
CTRL-Q Same as CTRL-V. But with some terminals it is used for
|
||||||
control flow, it doesn't work then.
|
control flow, it doesn't work then.
|
||||||
|
|
||||||
|
CTRL-SHIFT-V *c_CTRL-SHIFT-V* *c_CTRL-SHIFT-Q*
|
||||||
|
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||||
|
then it inserts the Escape sequence for a key with modifiers.
|
||||||
|
|
||||||
*c_<Left>* *c_Left*
|
*c_<Left>* *c_Left*
|
||||||
<Left> cursor left
|
<Left> cursor left
|
||||||
*c_<Right>* *c_Right*
|
*c_<Right>* *c_Right*
|
||||||
@@ -129,7 +136,7 @@ CTRL-K {char1} {char2} *c_CTRL-K*
|
|||||||
enter digraph (see |digraphs|). When {char1} is a special
|
enter digraph (see |digraphs|). When {char1} is a special
|
||||||
key, the code for that key is inserted in <> form.
|
key, the code for that key is inserted in <> form.
|
||||||
|
|
||||||
CTRL-R {0-9a-z"%#:-=.} *c_CTRL-R* *c_<C-R>*
|
CTRL-R {register} *c_CTRL-R* *c_<C-R>*
|
||||||
Insert the contents of a numbered or named register. Between
|
Insert the contents of a numbered or named register. Between
|
||||||
typing CTRL-R and the second character '"' will be displayed
|
typing CTRL-R and the second character '"' will be displayed
|
||||||
to indicate that you are expected to enter the name of a
|
to indicate that you are expected to enter the name of a
|
||||||
@@ -191,8 +198,8 @@ CTRL-R CTRL-L *c_CTRL-R_CTRL-L* *c_<C-R>_<C-L>*
|
|||||||
|
|
||||||
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
||||||
*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
|
*c_CTRL-R_CTRL-O* *c_<C-R>_<C-O>*
|
||||||
CTRL-R CTRL-R {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
CTRL-R CTRL-R {register CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
||||||
CTRL-R CTRL-O {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
CTRL-R CTRL-O {register CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
|
||||||
Insert register or object under the cursor. Works like
|
Insert register or object under the cursor. Works like
|
||||||
|c_CTRL-R| but inserts the text literally. For example, if
|
|c_CTRL-R| but inserts the text literally. For example, if
|
||||||
register a contains "xy^Hz" (where ^H is a backspace),
|
register a contains "xy^Hz" (where ^H is a backspace),
|
||||||
@@ -469,6 +476,10 @@ emulate it. For example, this mimics autolist=ambiguous:
|
|||||||
This will find the longest match with the first 'wildchar', then list all
|
This will find the longest match with the first 'wildchar', then list all
|
||||||
matching files with the next.
|
matching files with the next.
|
||||||
|
|
||||||
|
*complete-script-local-functions*
|
||||||
|
When completing user function names, prepend "s:" to find script-local
|
||||||
|
functions.
|
||||||
|
|
||||||
*suffixes*
|
*suffixes*
|
||||||
For file name completion you can use the 'suffixes' option to set a priority
|
For file name completion you can use the 'suffixes' option to set a priority
|
||||||
between files with almost the same name. If there are multiple matches,
|
between files with almost the same name. If there are multiple matches,
|
||||||
@@ -579,6 +590,7 @@ followed by another Vim command:
|
|||||||
:command
|
:command
|
||||||
:cscope
|
:cscope
|
||||||
:debug
|
:debug
|
||||||
|
:eval
|
||||||
:folddoopen
|
:folddoopen
|
||||||
:folddoclosed
|
:folddoclosed
|
||||||
:function
|
:function
|
||||||
@@ -603,6 +615,7 @@ followed by another Vim command:
|
|||||||
:tcl
|
:tcl
|
||||||
:tcldo
|
:tcldo
|
||||||
:tclfile
|
:tclfile
|
||||||
|
:terminal
|
||||||
:vglobal
|
:vglobal
|
||||||
:windo
|
:windo
|
||||||
:write !
|
:write !
|
||||||
@@ -926,8 +939,7 @@ These modifiers can be given, in this order:
|
|||||||
directory.
|
directory.
|
||||||
:. Reduce file name to be relative to current directory, if
|
:. Reduce file name to be relative to current directory, if
|
||||||
possible. File name is unmodified if it is not below the
|
possible. File name is unmodified if it is not below the
|
||||||
current directory, but on MS-Windows the drive is removed if
|
current directory.
|
||||||
it is the current drive.
|
|
||||||
For maximum shortness, use ":~:.".
|
For maximum shortness, use ":~:.".
|
||||||
:h Head of the file name (the last component and any separators
|
:h Head of the file name (the last component and any separators
|
||||||
removed). Cannot be used with :e, :r or :t.
|
removed). Cannot be used with :e, :r or :t.
|
||||||
@@ -936,9 +948,9 @@ These modifiers can be given, in this order:
|
|||||||
separator is removed. Thus ":p:h" on a directory name results
|
separator is removed. Thus ":p:h" on a directory name results
|
||||||
on the directory name itself (without trailing slash).
|
on the directory name itself (without trailing slash).
|
||||||
When the file name is an absolute path (starts with "/" for
|
When the file name is an absolute path (starts with "/" for
|
||||||
Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), that
|
Unix; "x:\" for Win32; "drive:" for Amiga), that part is not
|
||||||
part is not removed. When there is no head (path is relative
|
removed. When there is no head (path is relative to current
|
||||||
to current directory) the result is empty.
|
directory) the result is empty.
|
||||||
:t Tail of the file name (last component of the name). Must
|
:t Tail of the file name (last component of the name). Must
|
||||||
precede any :r or :e.
|
precede any :r or :e.
|
||||||
:r Root of the file name (the last extension removed). When
|
:r Root of the file name (the last extension removed). When
|
||||||
@@ -1035,12 +1047,12 @@ option contains "sh", this is done twice, to avoid the shell trying to expand
|
|||||||
the "!".
|
the "!".
|
||||||
|
|
||||||
*filename-backslash*
|
*filename-backslash*
|
||||||
For filesystems that use a backslash as directory separator (MS-DOS, Windows,
|
For filesystems that use a backslash as directory separator (MS-Windows), it's
|
||||||
OS/2), it's a bit difficult to recognize a backslash that is used to escape
|
a bit difficult to recognize a backslash that is used to escape the special
|
||||||
the special meaning of the next character. The general rule is: If the
|
meaning of the next character. The general rule is: If the backslash is
|
||||||
backslash is followed by a normal file name character, it does not have a
|
followed by a normal file name character, it does not have a special meaning.
|
||||||
special meaning. Therefore "\file\foo" is a valid file name, you don't have
|
Therefore "\file\foo" is a valid file name, you don't have to type the
|
||||||
to type the backslash twice.
|
backslash twice.
|
||||||
|
|
||||||
An exception is the '$' sign. It is a valid character in a file name. But
|
An exception is the '$' sign. It is a valid character in a file name. But
|
||||||
to avoid a file name like "$home" to be interpreted as an environment variable,
|
to avoid a file name like "$home" to be interpreted as an environment variable,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*debug.txt* For Vim version 8.1. Last change: 2019 May 07
|
*debug.txt* For Vim version 8.2. Last change: 2019 May 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*debugger.txt* For Vim version 8.1. Last change: 2019 Jul 06
|
*debugger.txt* For Vim version 8.2. Last change: 2019 Dec 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Gordon Prieur
|
VIM REFERENCE MANUAL by Gordon Prieur
|
||||||
@@ -12,8 +12,6 @@ For the debugger running in a Vim terminal window see |terminal-debugger|.
|
|||||||
|
|
||||||
1. Debugger Features |debugger-features|
|
1. Debugger Features |debugger-features|
|
||||||
2. Vim Compile Options |debugger-compilation|
|
2. Vim Compile Options |debugger-compilation|
|
||||||
3. Integrated Debuggers |debugger-integration|
|
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
1. Debugger Features *debugger-features*
|
1. Debugger Features *debugger-features*
|
||||||
@@ -114,10 +112,10 @@ other settings apply.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
2. Vim Compile Options *debugger-compilation*
|
2. Vim Compile Options *debugger-compilation*
|
||||||
|
|
||||||
The debugger features were added explicitly for use with Sun's Visual
|
The debugger features were added for use with Sun's Visual WorkShop Integrated
|
||||||
WorkShop Integrated Programming Environment (ipe). However, they were done
|
Programming Environment (ipe). However, they were done in as generic a manner
|
||||||
in as generic a manner as possible so that integration with other debuggers
|
as possible so that integration with other debuggers could also use these
|
||||||
could also use some or all of the tools used with Sun's ipe.
|
features.
|
||||||
|
|
||||||
The following compile time preprocessor variables control the features:
|
The following compile time preprocessor variables control the features:
|
||||||
|
|
||||||
@@ -127,18 +125,10 @@ The following compile time preprocessor variables control the features:
|
|||||||
Message Footer FEAT_FOOTER
|
Message Footer FEAT_FOOTER
|
||||||
Balloon Evaluation FEAT_BEVAL
|
Balloon Evaluation FEAT_BEVAL
|
||||||
|
|
||||||
The first integration with a full IPE/IDE was with Sun Visual WorkShop. To
|
The support specifically for Sun Visual WorkShop has been removed, since the
|
||||||
compile a gvim which interfaces with VWS set the following flag, which sets
|
product no longer exists.
|
||||||
all the above flags:
|
|
||||||
|
|
||||||
Sun Visual WorkShop FEAT_SUN_WORKSHOP
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
3. Integrated Debuggers *debugger-integration*
|
|
||||||
|
|
||||||
One fully integrated debugger/IPE/IDE is Sun's Visual WorkShop Integrated
|
|
||||||
Programming Environment.
|
|
||||||
|
|
||||||
For Sun NetBeans support see |netbeans|.
|
For Sun NetBeans support see |netbeans|.
|
||||||
|
|
||||||
|
|
||||||
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*develop.txt* For Vim version 8.1. Last change: 2019 Aug 05
|
*develop.txt* For Vim version 8.2. Last change: 2020 Apr 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -151,7 +151,8 @@ VIM IS... NOT *design-not*
|
|||||||
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
|
A satirical way to say this: "Unlike Emacs, Vim does not attempt to include
|
||||||
everything but the kitchen sink, but some people say that you can clean one
|
everything but the kitchen sink, but some people say that you can clean one
|
||||||
with it. ;-)"
|
with it. ;-)"
|
||||||
To use Vim with gdb see: http://www.agide.org and http://clewn.sf.net.
|
To use Vim with gdb see |terminal-debugger|. Other (older) tools can be
|
||||||
|
found at http://www.agide.org and http://clewn.sf.net.
|
||||||
- Vim is not a fancy GUI editor that tries to look nice at the cost of
|
- Vim is not a fancy GUI editor that tries to look nice at the cost of
|
||||||
being less consistent over all platforms. But functional GUI features are
|
being less consistent over all platforms. But functional GUI features are
|
||||||
welcomed.
|
welcomed.
|
||||||
@@ -195,10 +196,14 @@ problems for existing patches. Only use them for new and changed code.
|
|||||||
|
|
||||||
Comments ~
|
Comments ~
|
||||||
|
|
||||||
Traditionally Vim uses /* comments */. We intend to keep it that way,
|
Traditionally Vim uses /* comments */. We intend to keep it that way
|
||||||
especially for file and function headers. For new code or lines of code that
|
for file and function headers and larger blocks of code, E.g.:
|
||||||
change, it is allowed to use // comments. Especially when it comes after
|
/*
|
||||||
code:
|
* The "foo" argument does something useful.
|
||||||
|
* Return OK or FAIL.
|
||||||
|
*/
|
||||||
|
For new code or lines of code that change, it is preferred to use // comments.
|
||||||
|
Especially when it comes after code:
|
||||||
int some_var; // single line comment useful here
|
int some_var; // single line comment useful here
|
||||||
|
|
||||||
Enums ~
|
Enums ~
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*diff.txt* For Vim version 8.1. Last change: 2019 Jul 27
|
*diff.txt* For Vim version 8.2. Last change: 2019 Nov 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -68,11 +68,12 @@ reset to the global value.
|
|||||||
The options can still be overruled from a modeline when re-editing the file.
|
The options can still be overruled from a modeline when re-editing the file.
|
||||||
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
|
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
|
||||||
set.
|
set.
|
||||||
|
See `:diffoff` for an easy way to revert the options.
|
||||||
|
|
||||||
The differences shown are actually the differences in the buffer. Thus if you
|
The differences shown are actually the differences in the buffer. Thus if you
|
||||||
make changes after loading a file, these will be included in the displayed
|
make changes after loading a file, these will be included in the displayed
|
||||||
diffs. You might have to do ":diffupdate" now and then, not all changes are
|
diffs. You might have to do ":diffupdate" now and then, not all changes are
|
||||||
immediately taken into account.
|
immediately taken into account, especially when using an external diff command.
|
||||||
|
|
||||||
In your .vimrc file you could do something special when Vim was started in
|
In your .vimrc file you could do something special when Vim was started in
|
||||||
diff mode. You could use a construct like this: >
|
diff mode. You could use a construct like this: >
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*digraph.txt* For Vim version 8.1. Last change: 2019 May 05
|
*digraph.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
13
runtime/doc/doctags.vim
Normal file
13
runtime/doc/doctags.vim
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
" This script makes a tags file for help text.
|
||||||
|
"
|
||||||
|
" Usage: vim -eX -u doctags.vim
|
||||||
|
|
||||||
|
try
|
||||||
|
helptags ++t .
|
||||||
|
echo 'help tags updated'
|
||||||
|
catch
|
||||||
|
echo v:exception
|
||||||
|
echo 'help tags failed update'
|
||||||
|
endtry
|
||||||
|
echo ''
|
||||||
|
qa!
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
*editing.txt* For Vim version 8.1. Last change: 2019 Jun 10
|
*editing.txt* For Vim version 8.2. Last change: 2019 Dec 22
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -131,7 +131,7 @@ You can use this file if you discover that you need the original file. See
|
|||||||
also the 'patchmode' option. The name of the backup file is normally the same
|
also the 'patchmode' option. The name of the backup file is normally the same
|
||||||
as the original file with 'backupext' appended. The default "~" is a bit
|
as the original file with 'backupext' appended. The default "~" is a bit
|
||||||
strange to avoid accidentally overwriting existing files. If you prefer ".bak"
|
strange to avoid accidentally overwriting existing files. If you prefer ".bak"
|
||||||
change the 'backupext' option. Extra dots are replaced with '_' on MS-DOS
|
change the 'backupext' option. Extra dots are replaced with '_' on MS-Windows
|
||||||
machines, when Vim has detected that an MS-DOS-like filesystem is being used
|
machines, when Vim has detected that an MS-DOS-like filesystem is being used
|
||||||
(e.g., messydos or crossdos) or when the 'shortname' option is on. The
|
(e.g., messydos or crossdos) or when the 'shortname' option is on. The
|
||||||
backup file can be placed in another directory by setting 'backupdir'.
|
backup file can be placed in another directory by setting 'backupdir'.
|
||||||
@@ -331,10 +331,13 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
|
|||||||
*gF*
|
*gF*
|
||||||
[count]gF Same as "gf", except if a number follows the file
|
[count]gF Same as "gf", except if a number follows the file
|
||||||
name, then the cursor is positioned on that line in
|
name, then the cursor is positioned on that line in
|
||||||
the file. The file name and the number must be
|
the file.
|
||||||
separated by a non-filename (see 'isfname') and
|
The file name and the number must be separated by a
|
||||||
non-numeric character. White space between the
|
non-filename (see 'isfname') and non-numeric
|
||||||
filename, the separator and the number are ignored.
|
character. " line " is also recognized, like it is
|
||||||
|
used in the output of `:verbose command UserCmd`
|
||||||
|
White space between the filename, the separator and
|
||||||
|
the number are ignored.
|
||||||
Examples:
|
Examples:
|
||||||
eval.c:10 ~
|
eval.c:10 ~
|
||||||
eval.c @ 20 ~
|
eval.c @ 20 ~
|
||||||
@@ -519,9 +522,9 @@ The 'fileformat' option sets the <EOL> style for a file:
|
|||||||
Previously 'textmode' was used. It is obsolete now.
|
Previously 'textmode' was used. It is obsolete now.
|
||||||
|
|
||||||
When reading a file, the mentioned characters are interpreted as the <EOL>.
|
When reading a file, the mentioned characters are interpreted as the <EOL>.
|
||||||
In DOS format (default for MS-DOS, OS/2 and Win32), <CR><NL> and <NL> are both
|
In DOS format (default for Win32), <CR><NL> and <NL> are both interpreted as
|
||||||
interpreted as the <EOL>. Note that when writing the file in DOS format,
|
the <EOL>. Note that when writing the file in DOS format, <CR> characters
|
||||||
<CR> characters will be added for each single <NL>. Also see |file-read|.
|
will be added for each single <NL>. Also see |file-read|.
|
||||||
|
|
||||||
When writing a file, the mentioned characters are used for <EOL>. For DOS
|
When writing a file, the mentioned characters are used for <EOL>. For DOS
|
||||||
format <CR><NL> is used. Also see |DOS-format-write|.
|
format <CR><NL> is used. Also see |DOS-format-write|.
|
||||||
@@ -542,15 +545,16 @@ If you start editing a new file and the 'fileformats' option is not empty
|
|||||||
(which is the default), Vim will try to detect whether the lines in the file
|
(which is the default), Vim will try to detect whether the lines in the file
|
||||||
are separated by the specified formats. When set to "unix,dos", Vim will
|
are separated by the specified formats. When set to "unix,dos", Vim will
|
||||||
check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR>
|
check for lines with a single <NL> (as used on Unix and Amiga) or by a <CR>
|
||||||
<NL> pair (MS-DOS). Only when ALL lines end in <CR><NL>, 'fileformat' is set
|
<NL> pair (MS-Windows). Only when ALL lines end in <CR><NL>, 'fileformat' is
|
||||||
to "dos", otherwise it is set to "unix". When 'fileformats' includes "mac",
|
set to "dos", otherwise it is set to "unix". When 'fileformats' includes
|
||||||
and no <NL> characters are found in the file, 'fileformat' is set to "mac".
|
"mac", and no <NL> characters are found in the file, 'fileformat' is set to
|
||||||
|
"mac".
|
||||||
|
|
||||||
If the 'fileformat' option is set to "dos" on non-MS-DOS systems the message
|
If the 'fileformat' option is set to "dos" on non-MS-Windows systems the
|
||||||
"[dos format]" is shown to remind you that something unusual is happening. On
|
message "[dos format]" is shown to remind you that something unusual is
|
||||||
MS-DOS systems you get the message "[unix format]" if 'fileformat' is set to
|
happening. On MS-Windows systems you get the message "[unix format]" if
|
||||||
"unix". On all systems but the Macintosh you get the message "[mac format]"
|
'fileformat' is set to "unix". On all systems but the Macintosh you get the
|
||||||
if 'fileformat' is set to "mac".
|
message "[mac format]" if 'fileformat' is set to "mac".
|
||||||
|
|
||||||
If the 'fileformats' option is empty and DOS format is used, but while reading
|
If the 'fileformats' option is empty and DOS format is used, but while reading
|
||||||
a file some lines did not end in <CR><NL>, "[CR missing]" will be included in
|
a file some lines did not end in <CR><NL>, "[CR missing]" will be included in
|
||||||
@@ -1023,11 +1027,11 @@ lost the original file.
|
|||||||
|
|
||||||
*DOS-format-write*
|
*DOS-format-write*
|
||||||
If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>. This is default
|
If the 'fileformat' is "dos", <CR> <NL> is used for <EOL>. This is default
|
||||||
for MS-DOS, Win32 and OS/2. On other systems the message "[dos format]" is
|
for Win32. On other systems the message "[dos format]" is shown to remind you
|
||||||
shown to remind you that an unusual <EOL> was used.
|
that an unusual <EOL> was used.
|
||||||
*Unix-format-write*
|
*Unix-format-write*
|
||||||
If the 'fileformat' is "unix", <NL> is used for <EOL>. On MS-DOS, Win32 and
|
If the 'fileformat' is "unix", <NL> is used for <EOL>. On Win32 the message
|
||||||
OS/2 the message "[unix format]" is shown.
|
"[unix format]" is shown.
|
||||||
*Mac-format-write*
|
*Mac-format-write*
|
||||||
If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the
|
If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the
|
||||||
message "[mac format]" is shown.
|
message "[mac format]" is shown.
|
||||||
@@ -1056,11 +1060,11 @@ When the file name is actually a device name, Vim will not make a backup (that
|
|||||||
would be impossible). You need to use "!", since the device already exists.
|
would be impossible). You need to use "!", since the device already exists.
|
||||||
Example for Unix: >
|
Example for Unix: >
|
||||||
:w! /dev/lpt0
|
:w! /dev/lpt0
|
||||||
and for MS-DOS or MS-Windows: >
|
and for MS-Windows: >
|
||||||
:w! lpt0
|
:w! lpt0
|
||||||
For Unix a device is detected when the name doesn't refer to a normal file or
|
For Unix a device is detected when the name doesn't refer to a normal file or
|
||||||
a directory. A fifo or named pipe also looks like a device to Vim.
|
a directory. A fifo or named pipe also looks like a device to Vim.
|
||||||
For MS-DOS and MS-Windows the device is detected by its name:
|
For MS-Windows the device is detected by its name:
|
||||||
AUX
|
AUX
|
||||||
CON
|
CON
|
||||||
CLOCK$
|
CLOCK$
|
||||||
@@ -1294,7 +1298,7 @@ present in 'cpoptions' and "!" is not used in the command.
|
|||||||
Does not change the meaning of an already opened file,
|
Does not change the meaning of an already opened file,
|
||||||
because its full path name is remembered. Files from
|
because its full path name is remembered. Files from
|
||||||
the |arglist| may change though!
|
the |arglist| may change though!
|
||||||
On MS-DOS this also changes the active drive.
|
On MS-Windows this also changes the active drive.
|
||||||
To change to the directory of the current file: >
|
To change to the directory of the current file: >
|
||||||
:cd %:h
|
:cd %:h
|
||||||
<
|
<
|
||||||
@@ -1452,7 +1456,7 @@ Do this before writing the file. When reading an encrypted file it will be
|
|||||||
set automatically to the method used when that file was written. You can
|
set automatically to the method used when that file was written. You can
|
||||||
change 'cryptmethod' before writing that file to change the method.
|
change 'cryptmethod' before writing that file to change the method.
|
||||||
|
|
||||||
To set the default method, used for new files, use this in your |vimrc|
|
To set the default method, used for new files, use this in your |vimrc|
|
||||||
file: >
|
file: >
|
||||||
set cm=blowfish2
|
set cm=blowfish2
|
||||||
Using "blowfish2" is highly recommended. Only use another method if you
|
Using "blowfish2" is highly recommended. Only use another method if you
|
||||||
@@ -1554,7 +1558,7 @@ focus.
|
|||||||
If you want to automatically reload a file when it has been changed outside of
|
If you want to automatically reload a file when it has been changed outside of
|
||||||
Vim, set the 'autoread' option. This doesn't work at the moment you write the
|
Vim, set the 'autoread' option. This doesn't work at the moment you write the
|
||||||
file though, only when the file wasn't changed inside of Vim.
|
file though, only when the file wasn't changed inside of Vim.
|
||||||
|
*ignore-timestamp*
|
||||||
If you do not want to be asked or automatically reload the file, you can use
|
If you do not want to be asked or automatically reload the file, you can use
|
||||||
this: >
|
this: >
|
||||||
set buftype=nofile
|
set buftype=nofile
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
0
runtime/doc/evim-it.1
Executable file → Normal file
0
runtime/doc/evim-it.1
Executable file → Normal file
@@ -1,4 +1,4 @@
|
|||||||
*farsi.txt* For Vim version 8.1. Last change: 2019 May 05
|
*farsi.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
|
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*filetype.txt* For Vim version 8.1. Last change: 2019 Jul 16
|
*filetype.txt* For Vim version 8.2. Last change: 2019 Jul 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -34,8 +34,7 @@ if you didn't do that already.
|
|||||||
Detail: The ":filetype on" command will load one of these files:
|
Detail: The ":filetype on" command will load one of these files:
|
||||||
Amiga $VIMRUNTIME/filetype.vim
|
Amiga $VIMRUNTIME/filetype.vim
|
||||||
Mac $VIMRUNTIME:filetype.vim
|
Mac $VIMRUNTIME:filetype.vim
|
||||||
MS-DOS $VIMRUNTIME\filetype.vim
|
MS-Windows $VIMRUNTIME\filetype.vim
|
||||||
RiscOS Vim:Filetype
|
|
||||||
Unix $VIMRUNTIME/filetype.vim
|
Unix $VIMRUNTIME/filetype.vim
|
||||||
VMS $VIMRUNTIME/filetype.vim
|
VMS $VIMRUNTIME/filetype.vim
|
||||||
This file is a Vim script that defines autocommands for the
|
This file is a Vim script that defines autocommands for the
|
||||||
@@ -308,13 +307,13 @@ all loaded. For example, if this command: >
|
|||||||
|
|
||||||
produces this output:
|
produces this output:
|
||||||
|
|
||||||
runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim60 ~
|
runtimepath=/etc/vim,~/.vim,/usr/local/share/vim/vim82 ~
|
||||||
|
|
||||||
then Vim will load all plugins in these directories and below:
|
then Vim will load all plugins in these directories and below:
|
||||||
|
|
||||||
/etc/vim/plugin/ ~
|
/etc/vim/plugin/ ~
|
||||||
~/.vim/plugin/ ~
|
~/.vim/plugin/ ~
|
||||||
/usr/local/share/vim/vim60/plugin/ ~
|
/usr/local/share/vim/vim82/plugin/ ~
|
||||||
|
|
||||||
Note that the last one is the value of $VIMRUNTIME which has been expanded.
|
Note that the last one is the value of $VIMRUNTIME which has been expanded.
|
||||||
|
|
||||||
@@ -595,6 +594,10 @@ If you do not like the default folding, use an autocommand to add your desired
|
|||||||
folding style instead. For example: >
|
folding style instead. For example: >
|
||||||
autocmd FileType man setlocal foldmethod=indent foldenable
|
autocmd FileType man setlocal foldmethod=indent foldenable
|
||||||
|
|
||||||
|
If you would like :Man {number} {name} to behave like man {number} {name} by
|
||||||
|
not running man {name} if no page is found, then use this: >
|
||||||
|
let g:ft_man_no_sect_fallback = 1
|
||||||
|
|
||||||
You may also want to set 'keywordprg' to make the |K| command open a manual
|
You may also want to set 'keywordprg' to make the |K| command open a manual
|
||||||
page in a Vim window: >
|
page in a Vim window: >
|
||||||
set keywordprg=:Man
|
set keywordprg=:Man
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*fold.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
*fold.txt* For Vim version 8.2. Last change: 2019 Jun 02
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*ft_ada.txt* For Vim version 8.1. Last change: 2010 Jul 20
|
*ft_ada.txt* For Vim version 8.2. Last change: 2010 Jul 20
|
||||||
|
|
||||||
|
|
||||||
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
|
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*ft_rust.txt* For Vim version 8.1. Last change: 2017 Nov 02
|
*ft_rust.txt* For Vim version 8.2. Last change: 2017 Nov 02
|
||||||
|
|
||||||
This is documentation for the Rust filetype plugin.
|
This is documentation for the Rust filetype plugin.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*ft_sql.txt* For Vim version 8.1. Last change: 2013 May 15
|
*ft_sql.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
by David Fishburn
|
by David Fishburn
|
||||||
|
|
||||||
@@ -342,8 +342,8 @@ The defaults static maps are: >
|
|||||||
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
|
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
|
||||||
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
|
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
|
||||||
|
|
||||||
The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it
|
The use of "<C-C>" can be user chosen by using the following in your |.vimrc|
|
||||||
may not work properly on all platforms: >
|
as it may not work properly on all platforms: >
|
||||||
let g:ftplugin_sql_omni_key = '<C-C>'
|
let g:ftplugin_sql_omni_key = '<C-C>'
|
||||||
>
|
>
|
||||||
The static maps (which are based on the syntax highlight groups) follow this
|
The static maps (which are based on the syntax highlight groups) follow this
|
||||||
@@ -522,7 +522,7 @@ The SQL completion plugin can also display a list of columns for particular
|
|||||||
tables. The column completion is trigger via <C-C>c.
|
tables. The column completion is trigger via <C-C>c.
|
||||||
|
|
||||||
NOTE: The following example uses <Right> to trigger a column list while
|
NOTE: The following example uses <Right> to trigger a column list while
|
||||||
the popup window is active.
|
the popup window is active.
|
||||||
|
|
||||||
Example of using column completion:
|
Example of using column completion:
|
||||||
- Press <C-C>t again to display the list of tables.
|
- Press <C-C>t again to display the list of tables.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui.txt* For Vim version 8.1. Last change: 2019 Aug 21
|
*gui.txt* For Vim version 8.2. Last change: 2020 Mar 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -95,12 +95,11 @@ terminal version.
|
|||||||
|
|
||||||
Recommended place for your personal GUI initializations:
|
Recommended place for your personal GUI initializations:
|
||||||
Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
|
Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
|
||||||
OS/2 $HOME/.gvimrc, $HOME/vimfiles/gvimrc
|
Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
|
||||||
or $VIM/.gvimrc
|
|
||||||
MS-DOS and Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
|
|
||||||
or $VIM/_gvimrc
|
or $VIM/_gvimrc
|
||||||
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
|
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
|
||||||
or $VIM/.gvimrc
|
or $VIM/.gvimrc
|
||||||
|
Haiku $HOME/config/settings/vim/gvimrc
|
||||||
|
|
||||||
The personal initialization files are searched in the order specified above
|
The personal initialization files are searched in the order specified above
|
||||||
and only the first one that is found is read.
|
and only the first one that is found is read.
|
||||||
@@ -309,7 +308,7 @@ because the menu command will always be applied to the top window.
|
|||||||
|
|
||||||
If you are on the ':' line (or '/' or '?'), then clicking the left or right
|
If you are on the ':' line (or '/' or '?'), then clicking the left or right
|
||||||
mouse button will position the cursor on the ':' line (if 'mouse' contains
|
mouse button will position the cursor on the ':' line (if 'mouse' contains
|
||||||
'c', 'a' or 'A').
|
'c' or 'a').
|
||||||
|
|
||||||
In any situation the middle mouse button may be clicked to paste the current
|
In any situation the middle mouse button may be clicked to paste the current
|
||||||
selection.
|
selection.
|
||||||
@@ -560,8 +559,9 @@ floating menus that do not appear on the main menu bar.
|
|||||||
*E330* *E327* *E331* *E336* *E333*
|
*E330* *E327* *E331* *E336* *E333*
|
||||||
*E328* *E329* *E337* *E792*
|
*E328* *E329* *E337* *E792*
|
||||||
To create a new menu item, use the ":menu" commands. They are mostly like
|
To create a new menu item, use the ":menu" commands. They are mostly like
|
||||||
the ":map" set of commands but the first argument is a menu item name, given
|
the ":map" set of commands (see |map-modes|), but the first argument is a menu
|
||||||
as a path of menus and submenus with a '.' between them, e.g.: >
|
item name, given as a path of menus and submenus with a '.' between them,
|
||||||
|
e.g.: >
|
||||||
|
|
||||||
:menu File.Save :w<CR>
|
:menu File.Save :w<CR>
|
||||||
:inoremenu File.Save <C-O>:w<CR>
|
:inoremenu File.Save <C-O>:w<CR>
|
||||||
@@ -578,9 +578,11 @@ tooltips for menus. See |terminal-typing|.
|
|||||||
|
|
||||||
Special characters in a menu name:
|
Special characters in a menu name:
|
||||||
|
|
||||||
|
*menu-shortcut*
|
||||||
& The next character is the shortcut key. Make sure each
|
& The next character is the shortcut key. Make sure each
|
||||||
shortcut key is only used once in a (sub)menu. If you want to
|
shortcut key is only used once in a (sub)menu. If you want to
|
||||||
insert a literal "&" in the menu name use "&&".
|
insert a literal "&" in the menu name use "&&".
|
||||||
|
*menu-text*
|
||||||
<Tab> Separates the menu name from right-aligned text. This can be
|
<Tab> Separates the menu name from right-aligned text. This can be
|
||||||
used to show the equivalent typed command. The text "<Tab>"
|
used to show the equivalent typed command. The text "<Tab>"
|
||||||
can be used here for convenience. If you are using a real
|
can be used here for convenience. If you are using a real
|
||||||
@@ -853,6 +855,8 @@ Special characters in the list, just before the rhs:
|
|||||||
* The menu was defined with "nore" to disallow remapping.
|
* The menu was defined with "nore" to disallow remapping.
|
||||||
& The menu was defined with "<script>" to allow remapping script-local
|
& The menu was defined with "<script>" to allow remapping script-local
|
||||||
mappings only.
|
mappings only.
|
||||||
|
s The menu was defined with "<silent>" to avoid showing what it is
|
||||||
|
mapped to when triggered.
|
||||||
- The menu was disabled.
|
- The menu was disabled.
|
||||||
|
|
||||||
Note that hitting <Tab> while entering a menu name after a menu command may
|
Note that hitting <Tab> while entering a menu name after a menu command may
|
||||||
@@ -954,7 +958,7 @@ item for the keyword under the cursor. The register "z" is used. >
|
|||||||
mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
|
mappings, or put these lines in your gvimrc; "<C-R>" is CTRL-R, "<CR>" is
|
||||||
the <CR> key. |<>|)
|
the <CR> key. |<>|)
|
||||||
|
|
||||||
|
*tooltips* *menu-tips*
|
||||||
5.8 Tooltips & Menu tips
|
5.8 Tooltips & Menu tips
|
||||||
|
|
||||||
See section |42.4| in the user manual.
|
See section |42.4| in the user manual.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui_w32.txt* For Vim version 8.1. Last change: 2019 May 05
|
*gui_w32.txt* For Vim version 8.2. Last change: 2020 Mar 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -106,8 +106,6 @@ when you have got a new version):
|
|||||||
You can also install Vim in the "Send To" menu:
|
You can also install Vim in the "Send To" menu:
|
||||||
1. Start a Windows Explorer
|
1. Start a Windows Explorer
|
||||||
2. Navigate to your sendto directory:
|
2. Navigate to your sendto directory:
|
||||||
Windows NT: %windir%\profiles\%user%\sendto (e.g.
|
|
||||||
"c:\winnt\profiles\mattha\sendto")
|
|
||||||
Windows XP: C:\Documents and Settings\%user%\SendTo
|
Windows XP: C:\Documents and Settings\%user%\SendTo
|
||||||
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
|
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
|
||||||
3. Right-click in the file pane and select New->Shortcut
|
3. Right-click in the file pane and select New->Shortcut
|
||||||
@@ -115,7 +113,8 @@ You can also install Vim in the "Send To" menu:
|
|||||||
|
|
||||||
When you 'send a file to Vim', Vim changes to that file's directory. Note,
|
When you 'send a file to Vim', Vim changes to that file's directory. Note,
|
||||||
however, that any long directory names will appear in their short (MS-DOS)
|
however, that any long directory names will appear in their short (MS-DOS)
|
||||||
form. This is a limitation of the Windows "Send To" mechanism.
|
form on some Windows versions. This is a limitation of the Windows "Send To"
|
||||||
|
mechanism.
|
||||||
|
|
||||||
*notepad*
|
*notepad*
|
||||||
You could replace notepad.exe with gvim.exe, but that has a few side effects.
|
You could replace notepad.exe with gvim.exe, but that has a few side effects.
|
||||||
@@ -169,16 +168,16 @@ you can.
|
|||||||
Vim Shell Extension
|
Vim Shell Extension
|
||||||
HKEY_LOCAL_MACHINE\Software\Vim\Gvim
|
HKEY_LOCAL_MACHINE\Software\Vim\Gvim
|
||||||
path {path}\gvim.exe
|
path {path}\gvim.exe
|
||||||
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6
|
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 8.2
|
||||||
DisplayName Vim 5.6: Edit with Vim popup menu entry
|
DisplayName Vim 8.2: Edit with Vim popup menu entry
|
||||||
UninstallString {path}\uninstal.exe
|
UninstallString {path}\uninstall.exe
|
||||||
|
|
||||||
Replace {path} with the path that leads to the executable.
|
Replace {path} with the path that leads to the executable.
|
||||||
Don't type {default}, this is the value for the key itself.
|
Don't type {default}, this is the value for the key itself.
|
||||||
|
|
||||||
To remove "Edit with Vim" from the popup menu, just remove the registry
|
To remove "Edit with Vim" from the popup menu, just remove the registry
|
||||||
entries mentioned above. The "uninstal.exe" program can do this for you. You
|
entries mentioned above. The "uninstall.exe" program can do this for you.
|
||||||
can also use the entry in the Windows standard "Add/Remove Programs" list.
|
You can also use the entry in the Windows standard "Add/Remove Programs" list.
|
||||||
|
|
||||||
If you notice that this entry overrules other file type associations, set
|
If you notice that this entry overrules other file type associations, set
|
||||||
those associations again by hand (using Windows Explorer, see above). This
|
those associations again by hand (using Windows Explorer, see above). This
|
||||||
@@ -200,7 +199,7 @@ With..." menu. This means you can use Vim to edit many files. Not every file
|
|||||||
One reason to add this is to be able to edit HTML files directly from Internet
|
One reason to add this is to be able to edit HTML files directly from Internet
|
||||||
Explorer. To enable this use the "Tools" menu, "Internet Options..." entry.
|
Explorer. To enable this use the "Tools" menu, "Internet Options..." entry.
|
||||||
In the dialog select the "Programs" tab and select Vim in the "HTML editor"
|
In the dialog select the "Programs" tab and select Vim in the "HTML editor"
|
||||||
choice. If it's not there than installing didn't work properly.
|
choice. If it's not there then installing didn't work properly.
|
||||||
|
|
||||||
Doing this manually can be done with this script:
|
Doing this manually can be done with this script:
|
||||||
|
|
||||||
@@ -214,7 +213,7 @@ REGEDIT4
|
|||||||
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]
|
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]
|
||||||
|
|
||||||
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
|
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]
|
||||||
@="c:\\vim\\vim62\\gvim.exe \"%1\""
|
@="c:\\vim\\vim82\\gvim.exe \"%1\""
|
||||||
|
|
||||||
[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]
|
[HKEY_CLASSES_ROOT\.htm\OpenWithList\gvim.exe]
|
||||||
|
|
||||||
@@ -222,7 +221,7 @@ REGEDIT4
|
|||||||
|
|
||||||
----------------------------------------------------------
|
----------------------------------------------------------
|
||||||
|
|
||||||
Change the "c:\\vim\\vim62" bit to where gvim.exe is actually located.
|
Change the "c:\\vim\\vim82" bit to where gvim.exe is actually located.
|
||||||
|
|
||||||
To uninstall this run the Vim uninstall program or manually delete the
|
To uninstall this run the Vim uninstall program or manually delete the
|
||||||
registry entries with "regedit".
|
registry entries with "regedit".
|
||||||
@@ -457,8 +456,12 @@ See the Make_mvc.mak file for instructions, search for XPM.
|
|||||||
|
|
||||||
To try out if XPM support works do this: >
|
To try out if XPM support works do this: >
|
||||||
:help
|
:help
|
||||||
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm'
|
:let runtime = escape($VIMRUNTIME, ' \')
|
||||||
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
|
:exe 'sign define vimxpm icon=' .. runtime .. '\\vim16x16.xpm'
|
||||||
|
:exe 'sign place 1 line=1 name=vimxpm file=' .. expand('%:p')
|
||||||
<
|
<
|
||||||
|
You may need to get the vim16x16.xpm file from github:
|
||||||
|
https://github.com/vim/vim/blob/master/runtime/vim16x16.xpm
|
||||||
|
|
||||||
|
|
||||||
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui_x11.txt* For Vim version 8.1. Last change: 2019 May 05
|
*gui_x11.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,112 +1,17 @@
|
|||||||
*hangulin.txt* For Vim version 8.1. Last change: 2015 Nov 24
|
*hangulin.txt* For Vim version 8.2. Last change: 2019 Nov 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
||||||
|
|
||||||
|
*hangul*
|
||||||
|
Vim had built-in support for hangul, the Korean language, for users without
|
||||||
|
XIM (X Input Method). Since it didn't work well and was not maintained it was
|
||||||
|
removed in Vim 8.1.2327.
|
||||||
|
|
||||||
Introduction *hangul*
|
If you want this hangul input mehod you can go back to Vim 8.1.2326 or
|
||||||
------------
|
earlier. If you think this code is still useful and want to maintain it, make
|
||||||
It is to input hangul, the Korean language, with Vim GUI version.
|
a patch to add it back. However, making it work with UTF-8 encoding would be
|
||||||
If you have a XIM program, you can use another |+xim| feature.
|
best.
|
||||||
Basically, it is for anybody who has no XIM program.
|
|
||||||
|
|
||||||
Compile
|
|
||||||
-------
|
|
||||||
Next is a basic option. You can add any other configure option. >
|
|
||||||
|
|
||||||
./configure --with-x --enable-multibyte --enable-hangulinput \
|
|
||||||
--disable-xim
|
|
||||||
|
|
||||||
And you should check feature.h. If |+hangul_input| feature is enabled
|
|
||||||
by configure, you can select more options such as keyboard type, 2 bulsik
|
|
||||||
or 3 bulsik. You can find keywords like next in there. >
|
|
||||||
|
|
||||||
#define HANGUL_DEFAULT_KEYBOARD 2
|
|
||||||
#define ESC_CHG_TO_ENG_MODE
|
|
||||||
/* #define X_LOCALE */
|
|
||||||
|
|
||||||
Environment variables
|
|
||||||
---------------------
|
|
||||||
You should set LANG variable to Korean locale such as ko, ko_KR.eucKR
|
|
||||||
or ko_KR.UTF-8.
|
|
||||||
If you set LC_ALL variable, it should be set to Korean locale also.
|
|
||||||
|
|
||||||
Vim resource
|
|
||||||
------------
|
|
||||||
You may want to set 'encoding' and 'fileencodings'.
|
|
||||||
Next are examples: >
|
|
||||||
|
|
||||||
:set encoding=euc-kr
|
|
||||||
:set encoding=utf-8
|
|
||||||
:set fileencodings=ucs-bom,utf-8,cp949,euc-kr,latin1
|
|
||||||
|
|
||||||
Keyboard
|
|
||||||
--------
|
|
||||||
You can change keyboard type (2 bulsik or 3 bulsik) using VIM_KEYBOARD
|
|
||||||
or HANGUL_KEYBOARD_TYPE environment variables. For sh, just do (2 bulsik): >
|
|
||||||
|
|
||||||
export VIM_KEYBOARD="2"
|
|
||||||
or >
|
|
||||||
export HANGUL_KEYBOARD_TYPE="2"
|
|
||||||
|
|
||||||
If both are set, VIM_KEYBOARD has higher priority.
|
|
||||||
|
|
||||||
Hangul Fonts
|
|
||||||
------------
|
|
||||||
If you use GTK version of gvim, you should set 'guifont' and 'guifontwide'.
|
|
||||||
For example: >
|
|
||||||
set guifont=Courier\ 12
|
|
||||||
set guifontwide=NanumGothicCoding\ 12
|
|
||||||
|
|
||||||
If you use Motif or Athena version of gvim, you should set 'guifontset' in
|
|
||||||
your vimrc. You can set fontset in the .Xdefaults file.
|
|
||||||
|
|
||||||
$HOME/.gvimrc: >
|
|
||||||
set guifontset=english_font,hangul_font
|
|
||||||
|
|
||||||
$HOME/.Xdefaults: >
|
|
||||||
Vim.font: english_font
|
|
||||||
|
|
||||||
! Nexts are for hangul menu with Athena
|
|
||||||
*international: True
|
|
||||||
Vim*fontSet: english_font,hangul_font
|
|
||||||
|
|
||||||
! Nexts are for hangul menu with Motif
|
|
||||||
*international: True
|
|
||||||
Vim*fontList: english_font;hangul_font:
|
|
||||||
|
|
||||||
attention! the , (comma) or ; (semicolon)
|
|
||||||
|
|
||||||
And there should be no ':set guifont'. If it exists, then gvim ignores
|
|
||||||
':set guifontset'. It means Vim runs without fontset supporting.
|
|
||||||
So, you can see only English. Hangul does not be correctly displayed.
|
|
||||||
|
|
||||||
After "fontset" feature is enabled, Vim does not allow using english
|
|
||||||
font only in "font" setting for syntax.
|
|
||||||
For example, if you use >
|
|
||||||
:set guifontset=eng_font,your_font
|
|
||||||
in your .gvimrc, then you should do for syntax >
|
|
||||||
:hi Comment guifg=Cyan font=another_eng_font,another_your_font
|
|
||||||
If you just do >
|
|
||||||
:hi Comment font=another_eng_font
|
|
||||||
then you can see a error message. Be careful!
|
|
||||||
|
|
||||||
hangul_font width should be twice than english_font width.
|
|
||||||
|
|
||||||
Unsupported Feature
|
|
||||||
-------------------
|
|
||||||
We don't support Johab font.
|
|
||||||
We don't support Hanja input.
|
|
||||||
And We don't have any plan to support them.
|
|
||||||
|
|
||||||
If you really need such features, you can use console version of Vim with a
|
|
||||||
capable terminal emulator.
|
|
||||||
|
|
||||||
Bug or Comment
|
|
||||||
--------------
|
|
||||||
Send comments, patches and suggestions to:
|
|
||||||
|
|
||||||
SungHyun Nam <goweol@gmail.com>
|
|
||||||
Chi-Deok Hwang <...>
|
|
||||||
|
|
||||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*hebrew.txt* For Vim version 8.1. Last change: 2019 May 05
|
*hebrew.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
|
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*help.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*help.txt* For Vim version 8.2. Last change: 2020 Apr 05
|
||||||
|
|
||||||
VIM - main help file
|
VIM - main help file
|
||||||
k
|
k
|
||||||
@@ -31,7 +31,7 @@ Get specific help: It is possible to go directly to whatever you want help
|
|||||||
help entries for "word".
|
help entries for "word".
|
||||||
Or use ":helpgrep word". |:helpgrep|
|
Or use ":helpgrep word". |:helpgrep|
|
||||||
|
|
||||||
Getting started: Do the Vim tutor, a 20 minute interactive training for the
|
Getting started: Do the Vim tutor, a 30-minute interactive course for the
|
||||||
basic commands, see |vimtutor|.
|
basic commands, see |vimtutor|.
|
||||||
Read the user manual from start to end: |usr_01.txt|
|
Read the user manual from start to end: |usr_01.txt|
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ through the help of many others. See |credits|.
|
|||||||
*doc-file-list* *Q_ct*
|
*doc-file-list* *Q_ct*
|
||||||
BASIC:
|
BASIC:
|
||||||
|quickref| Overview of the most common commands you will use
|
|quickref| Overview of the most common commands you will use
|
||||||
|tutor| 20 minutes training course for beginners
|
|tutor| 30-minute interactive course for beginners
|
||||||
|copying| About copyrights
|
|copying| About copyrights
|
||||||
|iccf| Helping poor children in Uganda
|
|iccf| Helping poor children in Uganda
|
||||||
|sponsor| Sponsor Vim development, become a registered Vim user
|
|sponsor| Sponsor Vim development, become a registered Vim user
|
||||||
@@ -144,7 +144,7 @@ Special issues ~
|
|||||||
|remote.txt| using Vim as a server or client
|
|remote.txt| using Vim as a server or client
|
||||||
|term.txt| using different terminals and mice
|
|term.txt| using different terminals and mice
|
||||||
|terminal.txt| Terminal window support
|
|terminal.txt| Terminal window support
|
||||||
|popup.txt| popop window support
|
|popup.txt| popup window support
|
||||||
|
|
||||||
Programming language support ~
|
Programming language support ~
|
||||||
|indent.txt| automatic indenting for C and other languages
|
|indent.txt| automatic indenting for C and other languages
|
||||||
@@ -197,7 +197,8 @@ Remarks about specific systems ~
|
|||||||
|os_390.txt| OS/390 Unix
|
|os_390.txt| OS/390 Unix
|
||||||
|os_amiga.txt| Amiga
|
|os_amiga.txt| Amiga
|
||||||
|os_beos.txt| BeOS and BeBox
|
|os_beos.txt| BeOS and BeBox
|
||||||
|os_dos.txt| MS-DOS and MS-Windows NT/95 common items
|
|os_dos.txt| MS-DOS and MS-Windows common items
|
||||||
|
|os_haiku.txt| Haiku
|
||||||
|os_mac.txt| Macintosh
|
|os_mac.txt| Macintosh
|
||||||
|os_mint.txt| Atari MiNT
|
|os_mint.txt| Atari MiNT
|
||||||
|os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows)
|
|os_msdos.txt| MS-DOS (plain DOS and DOS box under Windows)
|
||||||
@@ -206,7 +207,7 @@ Remarks about specific systems ~
|
|||||||
|os_risc.txt| RISC-OS
|
|os_risc.txt| RISC-OS
|
||||||
|os_unix.txt| Unix
|
|os_unix.txt| Unix
|
||||||
|os_vms.txt| VMS
|
|os_vms.txt| VMS
|
||||||
|os_win32.txt| MS-Windows 95/98/NT
|
|os_win32.txt| MS-Windows
|
||||||
*standard-plugin-list*
|
*standard-plugin-list*
|
||||||
Standard plugins ~
|
Standard plugins ~
|
||||||
|pi_getscript.txt| Downloading latest version of Vim scripts
|
|pi_getscript.txt| Downloading latest version of Vim scripts
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*helphelp.txt* For Vim version 8.1. Last change: 2019 May 04
|
*helphelp.txt* For Vim version 8.2. Last change: 2020 Mar 01
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -102,7 +102,11 @@ Help on help files *helphelp*
|
|||||||
current file. See |help-translated|.
|
current file. See |help-translated|.
|
||||||
|
|
||||||
*:helpc* *:helpclose*
|
*:helpc* *:helpclose*
|
||||||
:helpc[lose] Close one help window, if there is one.
|
:helpc[lose] Close one help window, if there is one.
|
||||||
|
Vim will try to restore the window layout (including
|
||||||
|
cursor position) to the same layout it was before
|
||||||
|
opening the help window initially. This might cause
|
||||||
|
triggering several autocommands.
|
||||||
|
|
||||||
*:helpg* *:helpgrep*
|
*:helpg* *:helpgrep*
|
||||||
:helpg[rep] {pattern}[@xx]
|
:helpg[rep] {pattern}[@xx]
|
||||||
@@ -364,4 +368,15 @@ highlighting. So do these:
|
|||||||
|
|
||||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||||
|
|
||||||
|
*inclusion*
|
||||||
|
Some people make a big deal about using "his" when referring to the user,
|
||||||
|
thinking it means we assume the user is male. That is of course not the case,
|
||||||
|
it's just a habit of writing help text, which quite often is many years old.
|
||||||
|
Also, a lot of the text is written by contributors for who English is not
|
||||||
|
their first language. We do not make any assumptions about the gender of the
|
||||||
|
user, no matter how the text is phrased. And we do not want to waste time on
|
||||||
|
this discussion. The goal is that the reader understands how Vim works, the
|
||||||
|
exact wording is secondary.
|
||||||
|
|
||||||
|
|
||||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*howto.txt* For Vim version 8.1. Last change: 2006 Apr 02
|
*howto.txt* For Vim version 8.2. Last change: 2006 Apr 02
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_cscop.txt* For Vim version 8.1. Last change: 2019 May 05
|
*if_cscop.txt* For Vim version 8.2. Last change: 2019 May 05
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Andy Kahn
|
VIM REFERENCE MANUAL by Andy Kahn
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_lua.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*if_lua.txt* For Vim version 8.2. Last change: 2019 Jul 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Luis Carvalho
|
VIM REFERENCE MANUAL by Luis Carvalho
|
||||||
@@ -32,7 +32,7 @@ Examples:
|
|||||||
:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
|
:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
|
||||||
<
|
<
|
||||||
|
|
||||||
:[range]lua << [endmarker]
|
:[range]lua << [trim] [{endmarker}]
|
||||||
{script}
|
{script}
|
||||||
{endmarker}
|
{endmarker}
|
||||||
Execute Lua script {script}.
|
Execute Lua script {script}.
|
||||||
@@ -40,10 +40,9 @@ Examples:
|
|||||||
feature wasn't compiled in. To avoid errors, see
|
feature wasn't compiled in. To avoid errors, see
|
||||||
|script-here|.
|
|script-here|.
|
||||||
|
|
||||||
The {endmarker} must NOT be preceded by any white space.
|
|
||||||
|
|
||||||
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
|
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
|
||||||
{script}, like for the |:append| and |:insert| commands.
|
{script}, like for the |:append| and |:insert| commands. Refer to
|
||||||
|
|:let-heredoc| for more information.
|
||||||
|
|
||||||
This form of the |:lua| command is mainly useful for including Lua code
|
This form of the |:lua| command is mainly useful for including Lua code
|
||||||
in Vim scripts.
|
in Vim scripts.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_mzsch.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*if_mzsch.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Sergey Khorev
|
VIM REFERENCE MANUAL by Sergey Khorev
|
||||||
@@ -39,7 +39,7 @@ To speed up the process, you might also want to use --disable-gracket and
|
|||||||
:[range]mz[scheme] {stmt}
|
:[range]mz[scheme] {stmt}
|
||||||
Execute MzScheme statement {stmt}.
|
Execute MzScheme statement {stmt}.
|
||||||
|
|
||||||
:[range]mz[scheme] << [endmarker]
|
:[range]mz[scheme] << [trim] [{endmarker}]
|
||||||
{script}
|
{script}
|
||||||
{endmarker}
|
{endmarker}
|
||||||
Execute inlined MzScheme script {script}.
|
Execute inlined MzScheme script {script}.
|
||||||
@@ -47,12 +47,11 @@ To speed up the process, you might also want to use --disable-gracket and
|
|||||||
feature wasn't compiled in. To avoid errors, see
|
feature wasn't compiled in. To avoid errors, see
|
||||||
|script-here|.
|
|script-here|.
|
||||||
|
|
||||||
The {endmarker} below the {script} must NOT be
|
|
||||||
preceded by any white space.
|
|
||||||
|
|
||||||
If [endmarker] is omitted from after the "<<", a dot
|
If [endmarker] is omitted from after the "<<", a dot
|
||||||
'.' must be used after {script}, like for the
|
'.' must be used after {script}, like for the
|
||||||
|:append| and |:insert| commands.
|
|:append| and |:insert| commands. Refer to
|
||||||
|
|:let-heredoc| for more information.
|
||||||
|
|
||||||
|
|
||||||
*:mzfile* *:mzf*
|
*:mzfile* *:mzf*
|
||||||
:[range]mzf[ile] {file} Execute the MzScheme script in {file}.
|
:[range]mzf[ile] {file} Execute the MzScheme script in {file}.
|
||||||
@@ -87,7 +86,7 @@ To avoid clashes with MzScheme, consider using prefix when requiring module,
|
|||||||
e.g.: >
|
e.g.: >
|
||||||
:mzscheme (require (prefix vim- vimext))
|
:mzscheme (require (prefix vim- vimext))
|
||||||
<
|
<
|
||||||
All the examples below assume this naming scheme.
|
All the examples below assume this naming scheme.
|
||||||
|
|
||||||
*mzscheme-sandbox*
|
*mzscheme-sandbox*
|
||||||
When executed in the |sandbox|, access to some filesystem and Vim interface
|
When executed in the |sandbox|, access to some filesystem and Vim interface
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_ole.txt* For Vim version 8.1. Last change: 2019 May 05
|
*if_ole.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Paul Moore
|
VIM REFERENCE MANUAL by Paul Moore
|
||||||
@@ -39,7 +39,7 @@ instance), code similar to the following should be used:
|
|||||||
$vim = new Win32::OLE 'Vim.Application';
|
$vim = new Win32::OLE 'Vim.Application';
|
||||||
|
|
||||||
[C#] >
|
[C#] >
|
||||||
// Add a reference to Vim in your project.
|
// Add a reference to Vim in your project.
|
||||||
// Choose the COM tab.
|
// Choose the COM tab.
|
||||||
// Select "Vim Ole Interface 1.1 Type Library"
|
// Select "Vim Ole Interface 1.1 Type Library"
|
||||||
Vim.Vim vimobj = new Vim.Vim();
|
Vim.Vim vimobj = new Vim.Vim();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_perl.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*if_perl.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||||
@@ -55,14 +55,14 @@ The ActiveState one should work, Strawberry Perl is a good alternative.
|
|||||||
working: >
|
working: >
|
||||||
:perl VIM::Msg("Hello")
|
:perl VIM::Msg("Hello")
|
||||||
|
|
||||||
:pe[rl] << [endpattern]
|
:pe[rl] << [trim] [{endmarker}]
|
||||||
{script}
|
{script}
|
||||||
{endpattern}
|
{endmarker}
|
||||||
Execute Perl script {script}.
|
Execute Perl script {script}.
|
||||||
The {endpattern} after {script} must NOT be preceded
|
The {endmarker} after {script} must NOT be preceded by
|
||||||
by any white space.
|
any white space.
|
||||||
|
|
||||||
If [endpattern] is omitted, it defaults to a dot '.'
|
If [endmarker] is omitted, it defaults to a dot '.'
|
||||||
like for the |:append| and |:insert| commands. Using
|
like for the |:append| and |:insert| commands. Using
|
||||||
'.' helps when inside a function, because "$i;" looks
|
'.' helps when inside a function, because "$i;" looks
|
||||||
like the start of an |:insert| command to Vim.
|
like the start of an |:insert| command to Vim.
|
||||||
@@ -180,7 +180,7 @@ VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
|
|||||||
VIM::DoCommand({cmd}) Executes Ex command {cmd}.
|
VIM::DoCommand({cmd}) Executes Ex command {cmd}.
|
||||||
|
|
||||||
*perl-Eval*
|
*perl-Eval*
|
||||||
VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list
|
VIM::Eval({expr}) Evaluates {expr} and returns (success, value) in list
|
||||||
context or just value in scalar context.
|
context or just value in scalar context.
|
||||||
success=1 indicates that val contains the value of
|
success=1 indicates that val contains the value of
|
||||||
{expr}; success=0 indicates a failure to evaluate
|
{expr}; success=0 indicates a failure to evaluate
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_pyth.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*if_pyth.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Paul Moore
|
VIM REFERENCE MANUAL by Paul Moore
|
||||||
@@ -34,7 +34,7 @@ Both can be available at the same time, but read |python-2-and-3|.
|
|||||||
the `:python` command is working: >
|
the `:python` command is working: >
|
||||||
:python print "Hello"
|
:python print "Hello"
|
||||||
|
|
||||||
:[range]py[thon] << [endmarker]
|
:[range]py[thon] << [trim] [{endmarker}]
|
||||||
{script}
|
{script}
|
||||||
{endmarker}
|
{endmarker}
|
||||||
Execute Python script {script}.
|
Execute Python script {script}.
|
||||||
@@ -42,10 +42,9 @@ Both can be available at the same time, but read |python-2-and-3|.
|
|||||||
feature wasn't compiled in. To avoid errors, see
|
feature wasn't compiled in. To avoid errors, see
|
||||||
|script-here|.
|
|script-here|.
|
||||||
|
|
||||||
The {endmarker} below the {script} must NOT be preceded by any white space.
|
|
||||||
|
|
||||||
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
|
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
|
||||||
{script}, like for the |:append| and |:insert| commands.
|
{script}, like for the |:append| and |:insert| commands. Refer to
|
||||||
|
|:let-heredoc| for more information.
|
||||||
|
|
||||||
This form of the |:python| command is mainly useful for including python code
|
This form of the |:python| command is mainly useful for including python code
|
||||||
in Vim scripts.
|
in Vim scripts.
|
||||||
@@ -183,7 +182,7 @@ vim.eval(str) *python-eval*
|
|||||||
:py text_width = vim.eval("&tw")
|
:py text_width = vim.eval("&tw")
|
||||||
:
|
:
|
||||||
:" contents of the 'a' register
|
:" contents of the 'a' register
|
||||||
:py a_reg = vim.eval("@a")
|
:py a_reg = vim.eval("@a")
|
||||||
:
|
:
|
||||||
:" Result is a string! Use string.atoi() to convert to a number.
|
:" Result is a string! Use string.atoi() to convert to a number.
|
||||||
:py str = vim.eval("12+12")
|
:py str = vim.eval("12+12")
|
||||||
@@ -194,25 +193,25 @@ vim.eval(str) *python-eval*
|
|||||||
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
|
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
|
||||||
|
|
||||||
vim.bindeval(str) *python-bindeval*
|
vim.bindeval(str) *python-bindeval*
|
||||||
Like |python-eval|, but returns special objects described in
|
Like |python-eval|, but returns special objects described in
|
||||||
|python-bindeval-objects|. These python objects let you modify (|List|
|
|python-bindeval-objects|. These python objects let you modify (|List|
|
||||||
or |Dictionary|) or call (|Funcref|) vim objects.
|
or |Dictionary|) or call (|Funcref|) vim objects.
|
||||||
|
|
||||||
vim.strwidth(str) *python-strwidth*
|
vim.strwidth(str) *python-strwidth*
|
||||||
Like |strwidth()|: returns number of display cells str occupies, tab
|
Like |strwidth()|: returns number of display cells str occupies, tab
|
||||||
is counted as one cell.
|
is counted as one cell.
|
||||||
|
|
||||||
vim.foreach_rtp(callable) *python-foreach_rtp*
|
vim.foreach_rtp(callable) *python-foreach_rtp*
|
||||||
Call the given callable for each path in 'runtimepath' until either
|
Call the given callable for each path in 'runtimepath' until either
|
||||||
callable returns something but None, the exception is raised or there
|
callable returns something but None, the exception is raised or there
|
||||||
are no longer paths. If stopped in case callable returned non-None,
|
are no longer paths. If stopped in case callable returned non-None,
|
||||||
vim.foreach_rtp function returns the value returned by callable.
|
vim.foreach_rtp function returns the value returned by callable.
|
||||||
|
|
||||||
vim.chdir(*args, **kwargs) *python-chdir*
|
vim.chdir(*args, **kwargs) *python-chdir*
|
||||||
vim.fchdir(*args, **kwargs) *python-fchdir*
|
vim.fchdir(*args, **kwargs) *python-fchdir*
|
||||||
Run os.chdir or os.fchdir, then all appropriate vim stuff.
|
Run os.chdir or os.fchdir, then all appropriate vim stuff.
|
||||||
Note: you should not use these functions directly, use os.chdir and
|
Note: you should not use these functions directly, use os.chdir and
|
||||||
os.fchdir instead. Behavior of vim.fchdir is undefined in case
|
os.fchdir instead. Behavior of vim.fchdir is undefined in case
|
||||||
os.fchdir does not exist.
|
os.fchdir does not exist.
|
||||||
|
|
||||||
Error object of the "vim" module
|
Error object of the "vim" module
|
||||||
@@ -247,15 +246,15 @@ vim.windows *python-windows*
|
|||||||
:py w in vim.windows # Membership test
|
:py w in vim.windows # Membership test
|
||||||
:py n = len(vim.windows) # Number of elements
|
:py n = len(vim.windows) # Number of elements
|
||||||
:py for w in vim.windows: # Sequential access
|
:py for w in vim.windows: # Sequential access
|
||||||
< Note: vim.windows object always accesses current tab page.
|
< Note: vim.windows object always accesses current tab page.
|
||||||
|python-tabpage|.windows objects are bound to parent |python-tabpage|
|
|python-tabpage|.windows objects are bound to parent |python-tabpage|
|
||||||
object and always use windows from that tab page (or throw vim.error
|
object and always use windows from that tab page (or throw vim.error
|
||||||
in case tab page was deleted). You can keep a reference to both
|
in case tab page was deleted). You can keep a reference to both
|
||||||
without keeping a reference to vim module object or |python-tabpage|,
|
without keeping a reference to vim module object or |python-tabpage|,
|
||||||
they will not lose their properties in this case.
|
they will not lose their properties in this case.
|
||||||
|
|
||||||
vim.tabpages *python-tabpages*
|
vim.tabpages *python-tabpages*
|
||||||
A sequence object providing access to the list of vim tab pages. The
|
A sequence object providing access to the list of vim tab pages. The
|
||||||
object supports the following operations: >
|
object supports the following operations: >
|
||||||
:py t = vim.tabpages[i] # Indexing (read-only)
|
:py t = vim.tabpages[i] # Indexing (read-only)
|
||||||
:py t in vim.tabpages # Membership test
|
:py t in vim.tabpages # Membership test
|
||||||
@@ -276,12 +275,12 @@ vim.current *python-current*
|
|||||||
"current range". A range is a bit like a buffer, but with all access
|
"current range". A range is a bit like a buffer, but with all access
|
||||||
restricted to a subset of lines. See |python-range| for more details.
|
restricted to a subset of lines. See |python-range| for more details.
|
||||||
|
|
||||||
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
|
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
|
||||||
valid |python-buffer|, |python-window| or |python-tabpage| objects
|
valid |python-buffer|, |python-window| or |python-tabpage| objects
|
||||||
respectively. Assigning triggers normal (with |autocommand|s)
|
respectively. Assigning triggers normal (with |autocommand|s)
|
||||||
switching to given buffer, window or tab page. It is the only way to
|
switching to given buffer, window or tab page. It is the only way to
|
||||||
switch UI objects in python: you can't assign to
|
switch UI objects in python: you can't assign to
|
||||||
|python-tabpage|.window attribute. To switch without triggering
|
|python-tabpage|.window attribute. To switch without triggering
|
||||||
autocommands use >
|
autocommands use >
|
||||||
py << EOF
|
py << EOF
|
||||||
saved_eventignore = vim.options['eventignore']
|
saved_eventignore = vim.options['eventignore']
|
||||||
@@ -294,12 +293,12 @@ vim.current *python-current*
|
|||||||
<
|
<
|
||||||
vim.vars *python-vars*
|
vim.vars *python-vars*
|
||||||
vim.vvars *python-vvars*
|
vim.vvars *python-vvars*
|
||||||
Dictionary-like objects holding dictionaries with global (|g:|) and
|
Dictionary-like objects holding dictionaries with global (|g:|) and
|
||||||
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
|
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
|
||||||
but faster.
|
but faster.
|
||||||
|
|
||||||
vim.options *python-options*
|
vim.options *python-options*
|
||||||
Object partly supporting mapping protocol (supports setting and
|
Object partly supporting mapping protocol (supports setting and
|
||||||
getting items) providing a read-write access to global options.
|
getting items) providing a read-write access to global options.
|
||||||
Note: unlike |:set| this provides access only to global options. You
|
Note: unlike |:set| this provides access only to global options. You
|
||||||
cannot use this object to obtain or set local options' values or
|
cannot use this object to obtain or set local options' values or
|
||||||
@@ -310,7 +309,7 @@ vim.options *python-options*
|
|||||||
buffer-local options and |python-window| objects to access to
|
buffer-local options and |python-window| objects to access to
|
||||||
window-local options.
|
window-local options.
|
||||||
|
|
||||||
Type of this object is available via "Options" attribute of vim
|
Type of this object is available via "Options" attribute of vim
|
||||||
module.
|
module.
|
||||||
|
|
||||||
Output from Python *python-output*
|
Output from Python *python-output*
|
||||||
@@ -331,10 +330,10 @@ Output from Python *python-output*
|
|||||||
*python2-directory* *python3-directory* *pythonx-directory*
|
*python2-directory* *python3-directory* *pythonx-directory*
|
||||||
Python 'runtimepath' handling *python-special-path*
|
Python 'runtimepath' handling *python-special-path*
|
||||||
|
|
||||||
In python vim.VIM_SPECIAL_PATH special directory is used as a replacement for
|
In python vim.VIM_SPECIAL_PATH special directory is used as a replacement for
|
||||||
the list of paths found in 'runtimepath': with this directory in sys.path and
|
the list of paths found in 'runtimepath': with this directory in sys.path and
|
||||||
vim.path_hooks in sys.path_hooks python will try to load module from
|
vim.path_hooks in sys.path_hooks python will try to load module from
|
||||||
{rtp}/python2 (or python3) and {rtp}/pythonx (for both python versions) for
|
{rtp}/python2 (or python3) and {rtp}/pythonx (for both python versions) for
|
||||||
each {rtp} found in 'runtimepath'.
|
each {rtp} found in 'runtimepath'.
|
||||||
|
|
||||||
Implementation is similar to the following, but written in C: >
|
Implementation is similar to the following, but written in C: >
|
||||||
@@ -362,8 +361,8 @@ Implementation is similar to the following, but written in C: >
|
|||||||
fmr = find_module(fullname, path)
|
fmr = find_module(fullname, path)
|
||||||
return load_module(fullname, *fmr)
|
return load_module(fullname, *fmr)
|
||||||
|
|
||||||
# It uses vim module itself in place of VimPathFinder class: it does not
|
# It uses vim module itself in place of VimPathFinder class: it does not
|
||||||
# matter for python which object has find_module function attached to as
|
# matter for python which object has find_module function attached to as
|
||||||
# an attribute.
|
# an attribute.
|
||||||
class VimPathFinder(object):
|
class VimPathFinder(object):
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -386,28 +385,28 @@ Implementation is similar to the following, but written in C: >
|
|||||||
sys.path_hooks.append(hook)
|
sys.path_hooks.append(hook)
|
||||||
|
|
||||||
vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH*
|
vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH*
|
||||||
String constant used in conjunction with vim path hook. If path hook
|
String constant used in conjunction with vim path hook. If path hook
|
||||||
installed by vim is requested to handle anything but path equal to
|
installed by vim is requested to handle anything but path equal to
|
||||||
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other
|
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other
|
||||||
case it uses special loader.
|
case it uses special loader.
|
||||||
|
|
||||||
Note: you must not use value of this constant directly, always use
|
Note: you must not use value of this constant directly, always use
|
||||||
vim.VIM_SPECIAL_PATH object.
|
vim.VIM_SPECIAL_PATH object.
|
||||||
|
|
||||||
vim.find_module(...) *python-find_module*
|
vim.find_module(...) *python-find_module*
|
||||||
vim.path_hook(path) *python-path_hook*
|
vim.path_hook(path) *python-path_hook*
|
||||||
Methods or objects used to implement path loading as described above.
|
Methods or objects used to implement path loading as described above.
|
||||||
You should not be using any of these directly except for vim.path_hook
|
You should not be using any of these directly except for vim.path_hook
|
||||||
in case you need to do something with sys.meta_path. It is not
|
in case you need to do something with sys.meta_path. It is not
|
||||||
guaranteed that any of the objects will exist in the future vim
|
guaranteed that any of the objects will exist in the future vim
|
||||||
versions.
|
versions.
|
||||||
|
|
||||||
vim._get_paths *python-_get_paths*
|
vim._get_paths *python-_get_paths*
|
||||||
Methods returning a list of paths which will be searched for by path
|
Methods returning a list of paths which will be searched for by path
|
||||||
hook. You should not rely on this method being present in future
|
hook. You should not rely on this method being present in future
|
||||||
versions, but can use it for debugging.
|
versions, but can use it for debugging.
|
||||||
|
|
||||||
It returns a list of {rtp}/python2 (or {rtp}/python3) and
|
It returns a list of {rtp}/python2 (or {rtp}/python3) and
|
||||||
{rtp}/pythonx directories for each {rtp} in 'runtimepath'.
|
{rtp}/pythonx directories for each {rtp} in 'runtimepath'.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
@@ -436,21 +435,21 @@ line numbers, which start from 1. This is particularly relevant when dealing
|
|||||||
with marks (see below) which use vim line numbers.
|
with marks (see below) which use vim line numbers.
|
||||||
|
|
||||||
The buffer object attributes are:
|
The buffer object attributes are:
|
||||||
b.vars Dictionary-like object used to access
|
b.vars Dictionary-like object used to access
|
||||||
|buffer-variable|s.
|
|buffer-variable|s.
|
||||||
b.options Mapping object (supports item getting, setting and
|
b.options Mapping object (supports item getting, setting and
|
||||||
deleting) that provides access to buffer-local options
|
deleting) that provides access to buffer-local options
|
||||||
and buffer-local values of |global-local| options. Use
|
and buffer-local values of |global-local| options. Use
|
||||||
|python-window|.options if option is window-local,
|
|python-window|.options if option is window-local,
|
||||||
this object will raise KeyError. If option is
|
this object will raise KeyError. If option is
|
||||||
|global-local| and local value is missing getting it
|
|global-local| and local value is missing getting it
|
||||||
will return None.
|
will return None.
|
||||||
b.name String, RW. Contains buffer name (full path).
|
b.name String, RW. Contains buffer name (full path).
|
||||||
Note: when assigning to b.name |BufFilePre| and
|
Note: when assigning to b.name |BufFilePre| and
|
||||||
|BufFilePost| autocommands are launched.
|
|BufFilePost| autocommands are launched.
|
||||||
b.number Buffer number. Can be used as |python-buffers| key.
|
b.number Buffer number. Can be used as |python-buffers| key.
|
||||||
Read-only.
|
Read-only.
|
||||||
b.valid True or False. Buffer object becomes invalid when
|
b.valid True or False. Buffer object becomes invalid when
|
||||||
corresponding buffer is wiped out.
|
corresponding buffer is wiped out.
|
||||||
|
|
||||||
The buffer object methods are:
|
The buffer object methods are:
|
||||||
@@ -538,16 +537,16 @@ Window attributes are:
|
|||||||
This is a tuple, (row,col).
|
This is a tuple, (row,col).
|
||||||
height (read-write) The window height, in rows
|
height (read-write) The window height, in rows
|
||||||
width (read-write) The window width, in columns
|
width (read-write) The window width, in columns
|
||||||
vars (read-only) The window |w:| variables. Attribute is
|
vars (read-only) The window |w:| variables. Attribute is
|
||||||
unassignable, but you can change window
|
unassignable, but you can change window
|
||||||
variables this way
|
variables this way
|
||||||
options (read-only) The window-local options. Attribute is
|
options (read-only) The window-local options. Attribute is
|
||||||
unassignable, but you can change window
|
unassignable, but you can change window
|
||||||
options this way. Provides access only to
|
options this way. Provides access only to
|
||||||
window-local options, for buffer-local use
|
window-local options, for buffer-local use
|
||||||
|python-buffer| and for global ones use
|
|python-buffer| and for global ones use
|
||||||
|python-options|. If option is |global-local|
|
|python-options|. If option is |global-local|
|
||||||
and local value is missing getting it will
|
and local value is missing getting it will
|
||||||
return None.
|
return None.
|
||||||
number (read-only) Window number. The first window has number 1.
|
number (read-only) Window number. The first window has number 1.
|
||||||
This is zero in case it cannot be determined
|
This is zero in case it cannot be determined
|
||||||
@@ -556,7 +555,7 @@ Window attributes are:
|
|||||||
row, col (read-only) On-screen window position in display cells.
|
row, col (read-only) On-screen window position in display cells.
|
||||||
First position is zero.
|
First position is zero.
|
||||||
tabpage (read-only) Window tab page.
|
tabpage (read-only) Window tab page.
|
||||||
valid (read-write) True or False. Window object becomes invalid
|
valid (read-write) True or False. Window object becomes invalid
|
||||||
when corresponding window is closed.
|
when corresponding window is closed.
|
||||||
|
|
||||||
The height attribute is writable only if the screen is split horizontally.
|
The height attribute is writable only if the screen is split horizontally.
|
||||||
@@ -567,21 +566,21 @@ Window object type is available using "Window" attribute of vim module.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
6. Tab page objects *python-tabpage*
|
6. Tab page objects *python-tabpage*
|
||||||
|
|
||||||
Tab page objects represent vim tab pages. You can obtain them in a number of
|
Tab page objects represent vim tab pages. You can obtain them in a number of
|
||||||
ways:
|
ways:
|
||||||
- via vim.current.tabpage (|python-current|)
|
- via vim.current.tabpage (|python-current|)
|
||||||
- from indexing vim.tabpages (|python-tabpages|)
|
- from indexing vim.tabpages (|python-tabpages|)
|
||||||
|
|
||||||
You can use this object to access tab page windows. They have no methods and
|
You can use this object to access tab page windows. They have no methods and
|
||||||
no sequence or other interfaces.
|
no sequence or other interfaces.
|
||||||
|
|
||||||
Tab page attributes are:
|
Tab page attributes are:
|
||||||
number The tab page number like the one returned by
|
number The tab page number like the one returned by
|
||||||
|tabpagenr()|.
|
|tabpagenr()|.
|
||||||
windows Like |python-windows|, but for current tab page.
|
windows Like |python-windows|, but for current tab page.
|
||||||
vars The tab page |t:| variables.
|
vars The tab page |t:| variables.
|
||||||
window Current tabpage window.
|
window Current tabpage window.
|
||||||
valid True or False. Tab page object becomes invalid when
|
valid True or False. Tab page object becomes invalid when
|
||||||
corresponding tab page is closed.
|
corresponding tab page is closed.
|
||||||
|
|
||||||
TabPage object type is available using "TabPage" attribute of vim module.
|
TabPage object type is available using "TabPage" attribute of vim module.
|
||||||
@@ -598,8 +597,8 @@ vim.Dictionary object *python-Dictionary*
|
|||||||
zero Variable is not locked
|
zero Variable is not locked
|
||||||
vim.VAR_LOCKED Variable is locked, but can be unlocked
|
vim.VAR_LOCKED Variable is locked, but can be unlocked
|
||||||
vim.VAR_FIXED Variable is locked and can't be unlocked
|
vim.VAR_FIXED Variable is locked and can't be unlocked
|
||||||
Read-write. You can unlock locked variable by assigning
|
Read-write. You can unlock locked variable by assigning
|
||||||
`True` or `False` to this attribute. No recursive locking
|
`True` or `False` to this attribute. No recursive locking
|
||||||
is supported.
|
is supported.
|
||||||
scope One of
|
scope One of
|
||||||
Value Description ~
|
Value Description ~
|
||||||
@@ -615,23 +614,23 @@ vim.Dictionary object *python-Dictionary*
|
|||||||
update(iterable), update(dictionary), update(**kwargs)
|
update(iterable), update(dictionary), update(**kwargs)
|
||||||
Adds keys to dictionary.
|
Adds keys to dictionary.
|
||||||
get(key[, default=None])
|
get(key[, default=None])
|
||||||
Obtain key from dictionary, returning the default if it is
|
Obtain key from dictionary, returning the default if it is
|
||||||
not present.
|
not present.
|
||||||
pop(key[, default])
|
pop(key[, default])
|
||||||
Remove specified key from dictionary and return
|
Remove specified key from dictionary and return
|
||||||
corresponding value. If key is not found and default is
|
corresponding value. If key is not found and default is
|
||||||
given returns the default, otherwise raises KeyError.
|
given returns the default, otherwise raises KeyError.
|
||||||
popitem()
|
popitem()
|
||||||
Remove random key from dictionary and return (key, value)
|
Remove random key from dictionary and return (key, value)
|
||||||
pair.
|
pair.
|
||||||
has_key(key)
|
has_key(key)
|
||||||
Check whether dictionary contains specified key, similar
|
Check whether dictionary contains specified key, similar
|
||||||
to `key in dict`.
|
to `key in dict`.
|
||||||
|
|
||||||
__new__(), __new__(iterable), __new__(dictionary), __new__(update)
|
__new__(), __new__(iterable), __new__(dictionary), __new__(update)
|
||||||
You can use `vim.Dictionary()` to create new vim
|
You can use `vim.Dictionary()` to create new vim
|
||||||
dictionaries. `d=vim.Dictionary(arg)` is the same as
|
dictionaries. `d=vim.Dictionary(arg)` is the same as
|
||||||
`d=vim.bindeval('{}');d.update(arg)`. Without arguments
|
`d=vim.bindeval('{}');d.update(arg)`. Without arguments
|
||||||
constructs empty dictionary.
|
constructs empty dictionary.
|
||||||
|
|
||||||
Examples: >
|
Examples: >
|
||||||
@@ -652,15 +651,15 @@ vim.Dictionary object *python-Dictionary*
|
|||||||
|
|
||||||
vim.List object *python-List*
|
vim.List object *python-List*
|
||||||
Sequence-like object providing access to vim |List| type.
|
Sequence-like object providing access to vim |List| type.
|
||||||
Supports `.locked` attribute, see |python-.locked|. Also supports the
|
Supports `.locked` attribute, see |python-.locked|. Also supports the
|
||||||
following methods:
|
following methods:
|
||||||
Method Description ~
|
Method Description ~
|
||||||
extend(item) Add items to the list.
|
extend(item) Add items to the list.
|
||||||
|
|
||||||
__new__(), __new__(iterable)
|
__new__(), __new__(iterable)
|
||||||
You can use `vim.List()` to create new vim lists.
|
You can use `vim.List()` to create new vim lists.
|
||||||
`l=vim.List(iterable)` is the same as
|
`l=vim.List(iterable)` is the same as
|
||||||
`l=vim.bindeval('[]');l.extend(iterable)`. Without
|
`l=vim.bindeval('[]');l.extend(iterable)`. Without
|
||||||
arguments constructs empty list.
|
arguments constructs empty list.
|
||||||
Examples: >
|
Examples: >
|
||||||
l = vim.List("abc") # Constructor, result: ['a', 'b', 'c']
|
l = vim.List("abc") # Constructor, result: ['a', 'b', 'c']
|
||||||
@@ -674,24 +673,24 @@ vim.List object *python-List*
|
|||||||
class List(vim.List): # Subclassing
|
class List(vim.List): # Subclassing
|
||||||
|
|
||||||
vim.Function object *python-Function*
|
vim.Function object *python-Function*
|
||||||
Function-like object, acting like vim |Funcref| object. Accepts special
|
Function-like object, acting like vim |Funcref| object. Accepts special
|
||||||
keyword argument `self`, see |Dictionary-function|. You can also use
|
keyword argument `self`, see |Dictionary-function|. You can also use
|
||||||
`vim.Function(name)` constructor, it is the same as
|
`vim.Function(name)` constructor, it is the same as
|
||||||
`vim.bindeval('function(%s)'%json.dumps(name))`.
|
`vim.bindeval('function(%s)'%json.dumps(name))`.
|
||||||
|
|
||||||
Attributes (read-only):
|
Attributes (read-only):
|
||||||
Attribute Description ~
|
Attribute Description ~
|
||||||
name Function name.
|
name Function name.
|
||||||
args `None` or a |python-List| object with arguments. Note
|
args `None` or a |python-List| object with arguments. Note
|
||||||
that this is a copy of the arguments list, constructed
|
that this is a copy of the arguments list, constructed
|
||||||
each time you request this attribute. Modifications made
|
each time you request this attribute. Modifications made
|
||||||
to the list will be ignored (but not to the containers
|
to the list will be ignored (but not to the containers
|
||||||
inside argument list: this is like |copy()| and not
|
inside argument list: this is like |copy()| and not
|
||||||
|deepcopy()|).
|
|deepcopy()|).
|
||||||
self `None` or a |python-Dictionary| object with self
|
self `None` or a |python-Dictionary| object with self
|
||||||
dictionary. Note that explicit `self` keyword used when
|
dictionary. Note that explicit `self` keyword used when
|
||||||
calling resulting object overrides this attribute.
|
calling resulting object overrides this attribute.
|
||||||
auto_rebind Boolean. True if partial created from this Python object
|
auto_rebind Boolean. True if partial created from this Python object
|
||||||
and stored in the Vim script dictionary should be
|
and stored in the Vim script dictionary should be
|
||||||
automatically rebound to the dictionary it is stored in
|
automatically rebound to the dictionary it is stored in
|
||||||
when this dictionary is indexed. Exposes Vim internal
|
when this dictionary is indexed. Exposes Vim internal
|
||||||
@@ -699,11 +698,11 @@ vim.Function object *python-Function*
|
|||||||
`function(dict.func,dict)` (auto_rebind=False). This
|
`function(dict.func,dict)` (auto_rebind=False). This
|
||||||
attribute makes no sense if `self` attribute is `None`.
|
attribute makes no sense if `self` attribute is `None`.
|
||||||
|
|
||||||
Constructor additionally accepts `args`, `self` and `auto_rebind`
|
Constructor additionally accepts `args`, `self` and `auto_rebind`
|
||||||
keywords. If `args` and/or `self` argument is given then it constructs
|
keywords. If `args` and/or `self` argument is given then it constructs
|
||||||
a partial, see |function()|. `auto_rebind` is only used when `self`
|
a partial, see |function()|. `auto_rebind` is only used when `self`
|
||||||
argument is given, otherwise it is assumed to be `True` regardless of
|
argument is given, otherwise it is assumed to be `True` regardless of
|
||||||
whether it was given or not. If `self` is given then it defaults to
|
whether it was given or not. If `self` is given then it defaults to
|
||||||
`False`.
|
`False`.
|
||||||
|
|
||||||
Examples: >
|
Examples: >
|
||||||
@@ -726,7 +725,7 @@ vim.Function object *python-Function*
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
8. pyeval() and py3eval() Vim functions *python-pyeval*
|
8. pyeval() and py3eval() Vim functions *python-pyeval*
|
||||||
|
|
||||||
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
|
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
|
||||||
functions to evaluate Python expressions and pass their values to Vim script.
|
functions to evaluate Python expressions and pass their values to Vim script.
|
||||||
|pyxeval()| is also available.
|
|pyxeval()| is also available.
|
||||||
|
|
||||||
@@ -767,17 +766,28 @@ match the Python 2.x or Python 3 version Vim was compiled with.
|
|||||||
10. Python 3 *python3*
|
10. Python 3 *python3*
|
||||||
|
|
||||||
*:py3* *:python3*
|
*:py3* *:python3*
|
||||||
The `:py3` and `:python3` commands work similar to `:python`. A simple check
|
:[range]py3 {stmt}
|
||||||
if the `:py3` command is working: >
|
:[range]py3 << [trim] [{endmarker}]
|
||||||
:py3 print("Hello")
|
{script}
|
||||||
|
{endmarker}
|
||||||
|
|
||||||
To see what version of Python you have: >
|
:[range]python3 {stmt}
|
||||||
:py3 import sys
|
:[range]python3 << [trim] [{endmarker}]
|
||||||
:py3 print(sys.version)
|
{script}
|
||||||
|
{endmarker}
|
||||||
|
The `:py3` and `:python3` commands work similar to `:python`. A
|
||||||
|
simple check if the `:py3` command is working: >
|
||||||
|
:py3 print("Hello")
|
||||||
|
<
|
||||||
|
To see what version of Python you have: >
|
||||||
|
:py3 import sys
|
||||||
|
:py3 print(sys.version)
|
||||||
< *:py3file*
|
< *:py3file*
|
||||||
The `:py3file` command works similar to `:pyfile`.
|
:[range]py3f[ile] {file}
|
||||||
|
The `:py3file` command works similar to `:pyfile`.
|
||||||
*:py3do*
|
*:py3do*
|
||||||
The `:py3do` command works similar to `:pydo`.
|
:[range]py3do {body}
|
||||||
|
The `:py3do` command works similar to `:pydo`.
|
||||||
|
|
||||||
|
|
||||||
Vim can be built in four ways (:version output):
|
Vim can be built in four ways (:version output):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_ruby.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*if_ruby.txt* For Vim version 8.2. Last change: 2019 Jul 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Shugo Maeda
|
VIM REFERENCE MANUAL by Shugo Maeda
|
||||||
@@ -28,15 +28,15 @@ downloading Ruby there.
|
|||||||
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
|
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
|
||||||
:ruby print "Hello"
|
:ruby print "Hello"
|
||||||
|
|
||||||
:rub[y] << [endpattern]
|
:rub[y] << [trim] [{endmarker}]
|
||||||
{script}
|
{script}
|
||||||
{endpattern}
|
{endmarker}
|
||||||
Execute Ruby script {script}.
|
Execute Ruby script {script}.
|
||||||
The {endpattern} after {script} must NOT be preceded
|
|
||||||
by any white space.
|
|
||||||
|
|
||||||
If [endpattern] is omitted, it defaults to a dot '.'
|
If [endmarker] is omitted, it defaults to a dot '.'
|
||||||
like for the |:append| and |:insert| commands.
|
like for the |:append| and |:insert| commands. Refer
|
||||||
|
to |:let-heredoc| for more information.
|
||||||
|
|
||||||
|
|
||||||
This form of the |:ruby| command is mainly useful for
|
This form of the |:ruby| command is mainly useful for
|
||||||
including ruby code in vim scripts.
|
including ruby code in vim scripts.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_sniff.txt* For Vim version 8.1. Last change: 2016 Feb 27
|
*if_sniff.txt* For Vim version 8.2. Last change: 2016 Feb 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL
|
VIM REFERENCE MANUAL
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_tcl.txt* For Vim version 8.1. Last change: 2019 Jul 21
|
*if_tcl.txt* For Vim version 8.2. Last change: 2019 Jul 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Ingo Wilken
|
VIM REFERENCE MANUAL by Ingo Wilken
|
||||||
@@ -30,7 +30,7 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
|
|||||||
is working: >
|
is working: >
|
||||||
:tcl puts "Hello"
|
:tcl puts "Hello"
|
||||||
|
|
||||||
:[range]tc[l] << [endmarker]
|
:[range]tc[l] << [trim] [{endmarker}]
|
||||||
{script}
|
{script}
|
||||||
{endmarker}
|
{endmarker}
|
||||||
Execute Tcl script {script}.
|
Execute Tcl script {script}.
|
||||||
@@ -38,10 +38,9 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
|
|||||||
wasn't compiled in. To avoid errors, see
|
wasn't compiled in. To avoid errors, see
|
||||||
|script-here|.
|
|script-here|.
|
||||||
|
|
||||||
The {endmarker} after {script} must NOT be preceded by any white space.
|
|
||||||
|
|
||||||
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
|
If [endmarker] is omitted from after the "<<", a dot '.' must be used after
|
||||||
{script}, like for the |:append| and |:insert| commands.
|
{script}, like for the |:append| and |:insert| commands. Refer to
|
||||||
|
|:let-heredoc| for more information.
|
||||||
|
|
||||||
This form of the |:tcl| command is mainly useful for including tcl code in Vim
|
This form of the |:tcl| command is mainly useful for including tcl code in Vim
|
||||||
scripts.
|
scripts.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*indent.txt* For Vim version 8.1. Last change: 2019 Aug 01
|
*indent.txt* For Vim version 8.2. Last change: 2019 Dec 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -532,7 +532,7 @@ The examples below assume a 'shiftwidth' of 4.
|
|||||||
<
|
<
|
||||||
*javascript-cinoptions* *javascript-indenting* *cino-J*
|
*javascript-cinoptions* *javascript-indenting* *cino-J*
|
||||||
JN Indent JavaScript object declarations correctly by not confusing
|
JN Indent JavaScript object declarations correctly by not confusing
|
||||||
them with labels. The value 'N' is currently unused but must be
|
them with labels. The value 'N' is currently unused but must be
|
||||||
non-zero (e.g. 'J1'). If you enable this you probably also want
|
non-zero (e.g. 'J1'). If you enable this you probably also want
|
||||||
to set |cino-j|. >
|
to set |cino-j|. >
|
||||||
|
|
||||||
@@ -541,7 +541,7 @@ The examples below assume a 'shiftwidth' of 4.
|
|||||||
that: this,
|
that: this,
|
||||||
some: ok,
|
some: ok,
|
||||||
},
|
},
|
||||||
"bar":{
|
"bar":{
|
||||||
a : 2,
|
a : 2,
|
||||||
b: "123abc",
|
b: "123abc",
|
||||||
x: 4,
|
x: 4,
|
||||||
@@ -812,6 +812,16 @@ Detail:
|
|||||||
<!-- --> : -1
|
<!-- --> : -1
|
||||||
|
|
||||||
|
|
||||||
|
MATLAB *ft-matlab-indent* *matlab-indent* *matlab-indenting*
|
||||||
|
|
||||||
|
The setting Function indenting format in MATLAB Editor/Debugger Language
|
||||||
|
Preferences corresponds to: >
|
||||||
|
:let g:MATLAB_function_indent = {0, 1 or 2 (default)}
|
||||||
|
|
||||||
|
Where 0 is for Classic, 1 for Indent nested functions and 2 for Indent all
|
||||||
|
functions.
|
||||||
|
|
||||||
|
|
||||||
PHP *ft-php-indent* *php-indent* *php-indenting*
|
PHP *ft-php-indent* *php-indent* *php-indenting*
|
||||||
|
|
||||||
NOTE: PHP files will be indented correctly only if PHP |syntax| is active.
|
NOTE: PHP files will be indented correctly only if PHP |syntax| is active.
|
||||||
@@ -885,7 +895,7 @@ To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
|
|||||||
*PHP_BracesAtCodeLevel*
|
*PHP_BracesAtCodeLevel*
|
||||||
To indent braces at the same level than the code they contain: >
|
To indent braces at the same level than the code they contain: >
|
||||||
:let g:PHP_BracesAtCodeLevel = 1
|
:let g:PHP_BracesAtCodeLevel = 1
|
||||||
|
|
||||||
This will give the following result: >
|
This will give the following result: >
|
||||||
if ($foo)
|
if ($foo)
|
||||||
{
|
{
|
||||||
@@ -949,10 +959,12 @@ Function call arguments will indent 1 extra level. For two-space indentation: >
|
|||||||
-------------
|
-------------
|
||||||
|
|
||||||
*PHP_IndentFunctionDeclarationParameters*
|
*PHP_IndentFunctionDeclarationParameters*
|
||||||
Extra indentation levels to add to arguments in multi-line function definitions. >
|
Extra indentation levels to add to arguments in multi-line function
|
||||||
|
definitions. >
|
||||||
let g:PHP_IndentFunctionDeclarationParameters = 1
|
let g:PHP_IndentFunctionDeclarationParameters = 1
|
||||||
|
|
||||||
Function arguments in declarations will indent 1 extra level. For two-space indentation: >
|
Function arguments in declarations will indent 1 extra level. For two-space
|
||||||
|
indentation: >
|
||||||
|
|
||||||
function call_the_thing(
|
function call_the_thing(
|
||||||
$with_this,
|
$with_this,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*index.txt* For Vim version 8.1. Last change: 2019 Sep 02
|
*index.txt* For Vim version 8.2. Last change: 2020 Apr 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -73,14 +73,16 @@ tag char action in Insert mode ~
|
|||||||
the cursor
|
the cursor
|
||||||
|i_CTRL-Q| CTRL-Q same as CTRL-V, unless used for terminal
|
|i_CTRL-Q| CTRL-Q same as CTRL-V, unless used for terminal
|
||||||
control flow
|
control flow
|
||||||
|i_CTRL-R| CTRL-R {0-9a-z"%#*:=}
|
|i_CTRL-SHIFT-Q| CTRL-SHIFT-Q {char}
|
||||||
|
like CTRL-Q unless |modifyOtherKeys| is active
|
||||||
|
|i_CTRL-R| CTRL-R {register}
|
||||||
insert the contents of a register
|
insert the contents of a register
|
||||||
|i_CTRL-R_CTRL-R| CTRL-R CTRL-R {0-9a-z"%#*:=}
|
|i_CTRL-R_CTRL-R| CTRL-R CTRL-R {register}
|
||||||
insert the contents of a register literally
|
insert the contents of a register literally
|
||||||
|i_CTRL-R_CTRL-O| CTRL-R CTRL-O {0-9a-z"%#*:=}
|
|i_CTRL-R_CTRL-O| CTRL-R CTRL-O {register}
|
||||||
insert the contents of a register literally
|
insert the contents of a register literally
|
||||||
and don't auto-indent
|
and don't auto-indent
|
||||||
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {0-9a-z"%#*:=}
|
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {register}
|
||||||
insert the contents of a register literally
|
insert the contents of a register literally
|
||||||
and fix indent.
|
and fix indent.
|
||||||
CTRL-S (used for terminal control flow)
|
CTRL-S (used for terminal control flow)
|
||||||
@@ -89,6 +91,8 @@ tag char action in Insert mode ~
|
|||||||
|i_CTRL-U| CTRL-U delete all entered characters in the current
|
|i_CTRL-U| CTRL-U delete all entered characters in the current
|
||||||
line
|
line
|
||||||
|i_CTRL-V| CTRL-V {char} insert next non-digit literally
|
|i_CTRL-V| CTRL-V {char} insert next non-digit literally
|
||||||
|
|i_CTRL-SHIFT-V| CTRL-SHIFT-V {char}
|
||||||
|
like CTRL-V unless |modifyOtherKeys| is active
|
||||||
|i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single
|
|i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single
|
||||||
byte.
|
byte.
|
||||||
|i_CTRL-W| CTRL-W delete word before the cursor
|
|i_CTRL-W| CTRL-W delete word before the cursor
|
||||||
@@ -242,8 +246,7 @@ tag char note action in Normal mode ~
|
|||||||
2 filter Nmove text through the {filter}
|
2 filter Nmove text through the {filter}
|
||||||
command
|
command
|
||||||
|!!| !!{filter} 2 filter N lines through the {filter} command
|
|!!| !!{filter} 2 filter N lines through the {filter} command
|
||||||
|quote| "{a-zA-Z0-9.%#:-"} use register {a-zA-Z0-9.%#:-"} for next
|
|quote| "{register} use {register} for next delete, yank or put
|
||||||
delete, yank or put (uppercase to append)
|
|
||||||
({.%#:} only work with put)
|
({.%#:} only work with put)
|
||||||
|#| # 1 search backward for the Nth occurrence of
|
|#| # 1 search backward for the Nth occurrence of
|
||||||
the ident under the cursor
|
the ident under the cursor
|
||||||
@@ -781,6 +784,7 @@ tag char note action in Normal mode ~
|
|||||||
|gn| gn 1,2 find the next match with the last used
|
|gn| gn 1,2 find the next match with the last used
|
||||||
search pattern and Visually select it
|
search pattern and Visually select it
|
||||||
|gm| gm 1 go to character at middle of the screenline
|
|gm| gm 1 go to character at middle of the screenline
|
||||||
|
|gM| gM 1 go to character at middle of the text line
|
||||||
|go| go 1 cursor to byte N in the buffer
|
|go| go 1 cursor to byte N in the buffer
|
||||||
|gp| ["x]gp 2 put the text [from register x] after the
|
|gp| ["x]gp 2 put the text [from register x] after the
|
||||||
cursor N times, leave the cursor after it
|
cursor N times, leave the cursor after it
|
||||||
@@ -1110,7 +1114,7 @@ tag char action in Terminal-Job mode ~
|
|||||||
|t_CTRL-W_:| CTRL-W : enter an Ex command
|
|t_CTRL-W_:| CTRL-W : enter an Ex command
|
||||||
|t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal
|
|t_CTRL-W_.| CTRL-W . type CTRL-W in the terminal
|
||||||
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
|
CTRL-W CTRL-\ send a CTRL-\ to the job in the terminal
|
||||||
|t_CTRL-W_quote| CTRL-W " {0-9a-z"%#*:=}
|
|t_CTRL-W_quote| CTRL-W " {register}
|
||||||
paste register in the terminal
|
paste register in the terminal
|
||||||
|t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job
|
|t_CTRL-W_CTRL-C| CTRL-W CTRL-C forcefully ends the job
|
||||||
|t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
|
|t_CTRL-W_CTRL-W| CTRL-W CTRL-W move focus to the next window
|
||||||
@@ -1255,11 +1259,12 @@ tag command action ~
|
|||||||
|:cunmenu| :cunme[nu] remove menu for Command-line mode
|
|:cunmenu| :cunme[nu] remove menu for Command-line mode
|
||||||
|:cwindow| :cw[indow] open or close quickfix window
|
|:cwindow| :cw[indow] open or close quickfix window
|
||||||
|:delete| :d[elete] delete lines
|
|:delete| :d[elete] delete lines
|
||||||
|:delmarks| :delm[arks] delete marks
|
|
||||||
|:debug| :deb[ug] run a command in debugging mode
|
|:debug| :deb[ug] run a command in debugging mode
|
||||||
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
||||||
|
|:def| :def define a Vim9 user function
|
||||||
|:delcommand| :delc[ommand] delete user-defined command
|
|:delcommand| :delc[ommand] delete user-defined command
|
||||||
|:delfunction| :delf[unction] delete a user function
|
|:delfunction| :delf[unction] delete a user function
|
||||||
|
|:delmarks| :delm[arks] delete marks
|
||||||
|:diffupdate| :dif[fupdate] update 'diff' buffers
|
|:diffupdate| :dif[fupdate] update 'diff' buffers
|
||||||
|:diffget| :diffg[et] remove differences in current buffer
|
|:diffget| :diffg[et] remove differences in current buffer
|
||||||
|:diffoff| :diffo[ff] switch off diff mode
|
|:diffoff| :diffo[ff] switch off diff mode
|
||||||
@@ -1269,9 +1274,9 @@ tag command action ~
|
|||||||
|:diffthis| :diffthis make current window a diff window
|
|:diffthis| :diffthis make current window a diff window
|
||||||
|:digraphs| :dig[raphs] show or enter digraphs
|
|:digraphs| :dig[raphs] show or enter digraphs
|
||||||
|:display| :di[splay] display registers
|
|:display| :di[splay] display registers
|
||||||
|
|:disassemble| :disa[ssemble] disassemble Vim9 user function
|
||||||
|:djump| :dj[ump] jump to #define
|
|:djump| :dj[ump] jump to #define
|
||||||
|:dl| :dl short for |:delete| with the 'l' flag
|
|:dl| :dl short for |:delete| with the 'l' flag
|
||||||
|:del| :del[ete]l short for |:delete| with the 'l' flag
|
|
||||||
|:dlist| :dli[st] list #defines
|
|:dlist| :dli[st] list #defines
|
||||||
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|
||||||
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|
||||||
@@ -1290,15 +1295,17 @@ tag command action ~
|
|||||||
|:else| :el[se] part of an :if command
|
|:else| :el[se] part of an :if command
|
||||||
|:elseif| :elsei[f] part of an :if command
|
|:elseif| :elsei[f] part of an :if command
|
||||||
|:emenu| :em[enu] execute a menu by name
|
|:emenu| :em[enu] execute a menu by name
|
||||||
|
|:enddef| :enddef end of a user function started with :def
|
||||||
|:endif| :en[dif] end previous :if
|
|:endif| :en[dif] end previous :if
|
||||||
|:endfor| :endfo[r] end previous :for
|
|:endfor| :endfo[r] end previous :for
|
||||||
|:endfunction| :endf[unction] end of a user function
|
|:endfunction| :endf[unction] end of a user function started with :function
|
||||||
|:endtry| :endt[ry] end previous :try
|
|:endtry| :endt[ry] end previous :try
|
||||||
|:endwhile| :endw[hile] end previous :while
|
|:endwhile| :endw[hile] end previous :while
|
||||||
|:enew| :ene[w] edit a new, unnamed buffer
|
|:enew| :ene[w] edit a new, unnamed buffer
|
||||||
|:ex| :ex same as ":edit"
|
|:ex| :ex same as ":edit"
|
||||||
|:execute| :exe[cute] execute result of expressions
|
|:execute| :exe[cute] execute result of expressions
|
||||||
|:exit| :exi[t] same as ":xit"
|
|:exit| :exi[t] same as ":xit"
|
||||||
|
|:export| :exp[ort] Vim9: export an item from a script
|
||||||
|:exusage| :exu[sage] overview of Ex commands
|
|:exusage| :exu[sage] overview of Ex commands
|
||||||
|:file| :f[ile] show or set the current file name
|
|:file| :f[ile] show or set the current file name
|
||||||
|:files| :files list all files in the buffer list
|
|:files| :files list all files in the buffer list
|
||||||
@@ -1340,6 +1347,7 @@ tag command action ~
|
|||||||
|:imap| :im[ap] like ":map" but for Insert mode
|
|:imap| :im[ap] like ":map" but for Insert mode
|
||||||
|:imapclear| :imapc[lear] like ":mapclear" but for Insert mode
|
|:imapclear| :imapc[lear] like ":mapclear" but for Insert mode
|
||||||
|:imenu| :ime[nu] add menu for Insert mode
|
|:imenu| :ime[nu] add menu for Insert mode
|
||||||
|
|:import| :imp[ort] Vim9: import an item from another script
|
||||||
|:inoremap| :ino[remap] like ":noremap" but for Insert mode
|
|:inoremap| :ino[remap] like ":noremap" but for Insert mode
|
||||||
|:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode
|
|:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode
|
||||||
|:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode
|
|:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode
|
||||||
@@ -1681,6 +1689,7 @@ tag command action ~
|
|||||||
|:version| :ve[rsion] print version number and other info
|
|:version| :ve[rsion] print version number and other info
|
||||||
|:verbose| :verb[ose] execute command with 'verbose' set
|
|:verbose| :verb[ose] execute command with 'verbose' set
|
||||||
|:vertical| :vert[ical] make following command split vertically
|
|:vertical| :vert[ical] make following command split vertically
|
||||||
|
|:vim9script| :vim9[script] indicates Vim9 script file
|
||||||
|:vimgrep| :vim[grep] search for pattern in files
|
|:vimgrep| :vim[grep] search for pattern in files
|
||||||
|:vimgrepadd| :vimgrepa[dd] like :vimgrep, but append to current list
|
|:vimgrepadd| :vimgrepa[dd] like :vimgrep, but append to current list
|
||||||
|:visual| :vi[sual] same as ":edit", but turns off "Ex" mode
|
|:visual| :vi[sual] same as ":edit", but turns off "Ex" mode
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*insert.txt* For Vim version 8.1. Last change: 2019 Sep 08
|
*insert.txt* For Vim version 8.2. Last change: 2020 Apr 30
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -106,7 +106,7 @@ CTRL-K {char1} [char2]
|
|||||||
CTRL-N Find next keyword (see |i_CTRL-N|).
|
CTRL-N Find next keyword (see |i_CTRL-N|).
|
||||||
CTRL-P Find previous keyword (see |i_CTRL-P|).
|
CTRL-P Find previous keyword (see |i_CTRL-P|).
|
||||||
|
|
||||||
CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
|
CTRL-R {register} *i_CTRL-R*
|
||||||
Insert the contents of a register. Between typing CTRL-R and
|
Insert the contents of a register. Between typing CTRL-R and
|
||||||
the second character, '"' will be displayed to indicate that
|
the second character, '"' will be displayed to indicate that
|
||||||
you are expected to enter the name of a register.
|
you are expected to enter the name of a register.
|
||||||
@@ -143,7 +143,7 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
|
|||||||
sequence will be broken.
|
sequence will be broken.
|
||||||
See |registers| about registers.
|
See |registers| about registers.
|
||||||
|
|
||||||
CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
|
CTRL-R CTRL-R {register} *i_CTRL-R_CTRL-R*
|
||||||
Insert the contents of a register. Works like using a single
|
Insert the contents of a register. Works like using a single
|
||||||
CTRL-R, but the text is inserted literally, not as if typed.
|
CTRL-R, but the text is inserted literally, not as if typed.
|
||||||
This differs when the register contains characters like <BS>.
|
This differs when the register contains characters like <BS>.
|
||||||
@@ -154,8 +154,10 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
|
|||||||
you also want to avoid these, use CTRL-R CTRL-O, see below.
|
you also want to avoid these, use CTRL-R CTRL-O, see below.
|
||||||
The '.' register (last inserted text) is still inserted as
|
The '.' register (last inserted text) is still inserted as
|
||||||
typed.
|
typed.
|
||||||
|
After this command, the '.' register contains the text from
|
||||||
|
the register as if it was inserted by typing it.
|
||||||
|
|
||||||
CTRL-R CTRL-O {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-O*
|
CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
|
||||||
Insert the contents of a register literally and don't
|
Insert the contents of a register literally and don't
|
||||||
auto-indent. Does the same as pasting with the mouse
|
auto-indent. Does the same as pasting with the mouse
|
||||||
|<MiddleMouse>|. When the register is linewise this will
|
|<MiddleMouse>|. When the register is linewise this will
|
||||||
@@ -163,13 +165,19 @@ CTRL-R CTRL-O {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-O*
|
|||||||
Does not replace characters!
|
Does not replace characters!
|
||||||
The '.' register (last inserted text) is still inserted as
|
The '.' register (last inserted text) is still inserted as
|
||||||
typed.
|
typed.
|
||||||
|
After this command, the '.' register contains the command
|
||||||
|
typed and not the text. I.e., the literals "^R^O" and not the
|
||||||
|
text from the register.
|
||||||
|
|
||||||
CTRL-R CTRL-P {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-P*
|
CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
|
||||||
Insert the contents of a register literally and fix the
|
Insert the contents of a register literally and fix the
|
||||||
indent, like |[<MiddleMouse>|.
|
indent, like |[<MiddleMouse>|.
|
||||||
Does not replace characters!
|
Does not replace characters!
|
||||||
The '.' register (last inserted text) is still inserted as
|
The '.' register (last inserted text) is still inserted as
|
||||||
typed.
|
typed.
|
||||||
|
After this command, the '.' register contains the command
|
||||||
|
typed and not the text. I.e., the literals "^R^P" and not the
|
||||||
|
text from the register.
|
||||||
|
|
||||||
*i_CTRL-T*
|
*i_CTRL-T*
|
||||||
CTRL-T Insert one shiftwidth of indent at the start of the current
|
CTRL-T Insert one shiftwidth of indent at the start of the current
|
||||||
@@ -196,12 +204,19 @@ CTRL-V Insert next non-digit literally. For special keys, the
|
|||||||
mapping.
|
mapping.
|
||||||
Note: When CTRL-V is mapped (e.g., to paste text) you can
|
Note: When CTRL-V is mapped (e.g., to paste text) you can
|
||||||
often use CTRL-Q instead |i_CTRL-Q|.
|
often use CTRL-Q instead |i_CTRL-Q|.
|
||||||
|
When |modifyOtherKeys| is enabled then special Escape sequence
|
||||||
|
is converted back to what it was without |modifyOtherKeys|,
|
||||||
|
unless the Shift key is also pressed.
|
||||||
|
|
||||||
*i_CTRL-Q*
|
*i_CTRL-Q*
|
||||||
CTRL-Q Same as CTRL-V.
|
CTRL-Q Same as CTRL-V.
|
||||||
Note: Some terminal connections may eat CTRL-Q, it doesn't
|
Note: Some terminal connections may eat CTRL-Q, it doesn't
|
||||||
work then. It does work in the GUI.
|
work then. It does work in the GUI.
|
||||||
|
|
||||||
|
CTRL-SHIFT-V *i_CTRL-SHIFT-V* *i_CTRL-SHIFT-Q*
|
||||||
|
CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active,
|
||||||
|
then it inserts the Escape sequence for a key with modifiers.
|
||||||
|
|
||||||
CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can
|
CTRL-X Enter CTRL-X mode. This is a sub-mode where commands can
|
||||||
be given to complete words or scroll the window. See
|
be given to complete words or scroll the window. See
|
||||||
|i_CTRL-X| and |ins-completion|.
|
|i_CTRL-X| and |ins-completion|.
|
||||||
@@ -372,8 +387,8 @@ CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
|
|||||||
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
|
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
|
||||||
CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
|
CTRL-G u break undo sequence, start new change *i_CTRL-G_u*
|
||||||
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
|
CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U*
|
||||||
movement, if the cursor stays within
|
movement, if the cursor stays within the
|
||||||
same the line
|
same line
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
|
||||||
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
|
Note: If the cursor keys take you out of Insert mode, check the 'noesckeys'
|
||||||
@@ -651,8 +666,10 @@ Note: The keys that are valid in CTRL-X mode are not mapped. This allows for
|
|||||||
ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
|
ends CTRL-X mode (any key that is not a valid CTRL-X mode command) is mapped.
|
||||||
Also, when doing completion with 'complete' mappings apply as usual.
|
Also, when doing completion with 'complete' mappings apply as usual.
|
||||||
|
|
||||||
Note: While completion is active Insert mode can't be used recursively.
|
*E578* *E565*
|
||||||
Mappings that somehow invoke ":normal i.." will generate an E523 error.
|
Note: While completion is active Insert mode can't be used recursively and
|
||||||
|
buffer text cannot be changed. Mappings that somehow invoke ":normal i.."
|
||||||
|
will generate an E565 error.
|
||||||
|
|
||||||
The following mappings are suggested to make typing the completion commands
|
The following mappings are suggested to make typing the completion commands
|
||||||
a bit easier (although they will hide other commands): >
|
a bit easier (although they will hide other commands): >
|
||||||
@@ -1072,7 +1089,8 @@ If you want to suppress the warning message for an empty result, return
|
|||||||
|
|
||||||
Other items are ignored.
|
Other items are ignored.
|
||||||
|
|
||||||
For acting upon end of completion, see the |CompleteDone| autocommand event.
|
For acting upon end of completion, see the |CompleteDonePre| and
|
||||||
|
|CompleteDone| autocommand event.
|
||||||
|
|
||||||
For example, the function can contain this: >
|
For example, the function can contain this: >
|
||||||
let matches = ... list of words ...
|
let matches = ... list of words ...
|
||||||
@@ -1101,7 +1119,8 @@ items:
|
|||||||
empty when non-zero this match will be added even when it is
|
empty when non-zero this match will be added even when it is
|
||||||
an empty string
|
an empty string
|
||||||
user_data custom data which is associated with the item and
|
user_data custom data which is associated with the item and
|
||||||
available in |v:completed_item|
|
available in |v:completed_item|; it can be any type;
|
||||||
|
defaults to an empty string
|
||||||
|
|
||||||
All of these except "icase", "equal", "dup" and "empty" must be a string. If
|
All of these except "icase", "equal", "dup" and "empty" must be a string. If
|
||||||
an item does not meet these requirements then an error message is given and
|
an item does not meet these requirements then an error message is given and
|
||||||
@@ -1138,6 +1157,27 @@ below the text, and the bottom of the menu otherwise.
|
|||||||
After the info popup is created it can be found with |popup_findinfo()| and
|
After the info popup is created it can be found with |popup_findinfo()| and
|
||||||
properties can be changed with |popup_setoptions()|.
|
properties can be changed with |popup_setoptions()|.
|
||||||
|
|
||||||
|
*complete-popuphidden*
|
||||||
|
If the information for the popup is obtained asynchronously, use "popuphidden"
|
||||||
|
in 'completeopt'. The info popup will then be initially hidden and
|
||||||
|
|popup_show()| must be called once it has been filled with the info. This can
|
||||||
|
be done with a |CompleteChanged| autocommand, something like this: >
|
||||||
|
set completeopt+=popuphidden
|
||||||
|
au CompleteChanged * call UpdateCompleteInfo()
|
||||||
|
func UpdateCompleteInfo()
|
||||||
|
" Cancel any pending info fetch
|
||||||
|
let item = v:event.completed_item
|
||||||
|
" Start fetching info for the item then call ShowCompleteInfo(info)
|
||||||
|
endfunc
|
||||||
|
func ShowCompleteInfo(info)
|
||||||
|
let id = popup_findinfo()
|
||||||
|
if id
|
||||||
|
call popup_settext(id, 'async info: ' .. a:info)
|
||||||
|
call popup_show(id)
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
< *complete-item-kind*
|
||||||
The "kind" item uses a single letter to indicate the kind of completion. This
|
The "kind" item uses a single letter to indicate the kind of completion. This
|
||||||
may be used to show the completion differently (different color or icon).
|
may be used to show the completion differently (different color or icon).
|
||||||
Currently these types can be used:
|
Currently these types can be used:
|
||||||
@@ -1980,11 +2020,11 @@ If the 'fileformats' option is not empty Vim tries to recognize the type of
|
|||||||
changed, the detected format is only used while reading the file.
|
changed, the detected format is only used while reading the file.
|
||||||
A similar thing happens with 'fileencodings'.
|
A similar thing happens with 'fileencodings'.
|
||||||
|
|
||||||
On non-MS-DOS, Win32, and OS/2 systems the message "[dos format]" is shown if
|
On non-Win32 systems the message "[dos format]" is shown if a file is read in
|
||||||
a file is read in DOS format, to remind you that something unusual is done.
|
DOS format, to remind you that something unusual is done.
|
||||||
On Macintosh, MS-DOS, Win32, and OS/2 the message "[unix format]" is shown if
|
On Macintosh and Win32 the message "[unix format]" is shown if a file is read
|
||||||
a file is read in Unix format.
|
in Unix format.
|
||||||
On non-Macintosh systems, the message "[Mac format]" is shown if a file is
|
On non-Macintosh systems, the message "[mac format]" is shown if a file is
|
||||||
read in Mac format.
|
read in Mac format.
|
||||||
|
|
||||||
An example on how to use ":r !": >
|
An example on how to use ":r !": >
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*intro.txt* For Vim version 8.1. Last change: 2019 Aug 16
|
*intro.txt* For Vim version 8.2. Last change: 2019 Nov 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -234,7 +234,7 @@ Vim would never have become what it is now, without the help of these people!
|
|||||||
Sung-Hyun Nam Work on multi-byte versions
|
Sung-Hyun Nam Work on multi-byte versions
|
||||||
Vince Negri Win32 GUI and generic console enhancements
|
Vince Negri Win32 GUI and generic console enhancements
|
||||||
Steve Oualline Author of the first Vim book |frombook|
|
Steve Oualline Author of the first Vim book |frombook|
|
||||||
Dominique Pelle valgrind reports and many fixes
|
Dominique Pelle Valgrind reports and many fixes
|
||||||
A.Politz Many bug reports and some fixes
|
A.Politz Many bug reports and some fixes
|
||||||
George V. Reilly Win32 port, Win32 GUI start-off
|
George V. Reilly Win32 port, Win32 GUI start-off
|
||||||
Stephen Riehm bug collector
|
Stephen Riehm bug collector
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*map.txt* For Vim version 8.1. Last change: 2019 Jun 02
|
*map.txt* For Vim version 8.2. Last change: 2020 Apr 23
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -20,7 +20,8 @@ manual.
|
|||||||
1.8 Examples |map-examples|
|
1.8 Examples |map-examples|
|
||||||
1.9 Using mappings |map-typing|
|
1.9 Using mappings |map-typing|
|
||||||
1.10 Mapping alt-keys |:map-alt-keys|
|
1.10 Mapping alt-keys |:map-alt-keys|
|
||||||
1.11 Mapping an operator |:map-operator|
|
1.11 Mapping in modifyOtherKeys mode |modifyOtherKeys|
|
||||||
|
1.12 Mapping an operator |:map-operator|
|
||||||
2. Abbreviations |abbreviations|
|
2. Abbreviations |abbreviations|
|
||||||
3. Local mappings and functions |script-local|
|
3. Local mappings and functions |script-local|
|
||||||
4. User-defined commands |user-commands|
|
4. User-defined commands |user-commands|
|
||||||
@@ -357,6 +358,8 @@ Some commands work both in Insert mode and Command-line mode, some not:
|
|||||||
:cmap :cnoremap :cunmap :cmapclear - yes -
|
:cmap :cnoremap :cunmap :cmapclear - yes -
|
||||||
:lmap :lnoremap :lunmap :lmapclear yes* yes* yes*
|
:lmap :lnoremap :lunmap :lmapclear yes* yes* yes*
|
||||||
|
|
||||||
|
* If 'iminsert' is 1, see |language-mapping| below.
|
||||||
|
|
||||||
The original Vi did not have separate mappings for
|
The original Vi did not have separate mappings for
|
||||||
Normal/Visual/Operator-pending mode and for Insert/Command-line mode.
|
Normal/Visual/Operator-pending mode and for Insert/Command-line mode.
|
||||||
Therefore the ":map" and ":map!" commands enter and display mappings for
|
Therefore the ":map" and ":map!" commands enter and display mappings for
|
||||||
@@ -777,6 +780,9 @@ In the GUI Vim handles the Alt key itself, thus mapping keys with ALT should
|
|||||||
always work. But in a terminal Vim gets a sequence of bytes and has to figure
|
always work. But in a terminal Vim gets a sequence of bytes and has to figure
|
||||||
out whether ALT was pressed or not.
|
out whether ALT was pressed or not.
|
||||||
|
|
||||||
|
If the terminal supports the modifyOtherKeys mode and it has been enabled,
|
||||||
|
then Vim can recognize more key combinations, see |modifyOtherKeys| below.
|
||||||
|
|
||||||
By default Vim assumes that pressing the ALT key sets the 8th bit of a typed
|
By default Vim assumes that pressing the ALT key sets the 8th bit of a typed
|
||||||
character. Most decent terminals can work that way, such as xterm, aterm and
|
character. Most decent terminals can work that way, such as xterm, aterm and
|
||||||
rxvt. If your <A-k> mappings don't work it might be that the terminal is
|
rxvt. If your <A-k> mappings don't work it might be that the terminal is
|
||||||
@@ -814,7 +820,40 @@ on the terminal; that's a good last resource in case you want to send ESC when
|
|||||||
using other applications but not when inside Vim.
|
using other applications but not when inside Vim.
|
||||||
|
|
||||||
|
|
||||||
1.11 MAPPING AN OPERATOR *:map-operator*
|
1.11 MAPPING IN modifyOtherKeys mode *modifyOtherKeys*
|
||||||
|
|
||||||
|
Xterm and a few other terminals can be put in a mode where keys with modifiers
|
||||||
|
are sent with a special escape code. Vim recognizes these codes and can then
|
||||||
|
make a difference between CTRL-H and Backspace, even when Backspace sends the
|
||||||
|
character 8. And many more special keys.
|
||||||
|
|
||||||
|
For xterm modifyOtherKeys is enabled in the builtin termcap entry. If this is
|
||||||
|
not used you can enable modifyOtherKeys with these lines in your vimrc: >
|
||||||
|
let &t_TI = "\<Esc>[>4;2m"
|
||||||
|
let &t_TE = "\<Esc>[>4;m"
|
||||||
|
|
||||||
|
In case the modifyOtherKeys mode causes problems you can disable it: >
|
||||||
|
let &t_TI = ""
|
||||||
|
let &t_TE = ""
|
||||||
|
It does not take effect immediately. To have this work without restarting Vim
|
||||||
|
execute a shell command, e.g.: `!ls` Or put the lines in your |vimrc|.
|
||||||
|
|
||||||
|
When modifyOtherKeys is enabled you can map <C-[> and <C-S-{>: >
|
||||||
|
imap <C-[> [[[
|
||||||
|
imap <C-S-{> {{{
|
||||||
|
Without modifyOtherKeys <C-[> and <C-S-{> are indistinguishable from Esc.
|
||||||
|
|
||||||
|
A known side effect effect is that in Insert mode the raw escape sequence is
|
||||||
|
inserted after the CTRL-V key. This can be used to check whether
|
||||||
|
modifyOtherKeys is enabled: In Insert mode type CTRL-SHIFT-V CTRL-V, if you
|
||||||
|
get one byte then modifyOtherKeys is off, if you get <1b>27;5;118~ then it is
|
||||||
|
on.
|
||||||
|
|
||||||
|
When the 'esckeys' option is off, then modifyOtherKeys will be disabled in
|
||||||
|
Insert mode to avoid every key with a modifier causing Insert mode to end.
|
||||||
|
|
||||||
|
|
||||||
|
1.12 MAPPING AN OPERATOR *:map-operator*
|
||||||
|
|
||||||
An operator is used before a {motion} command. To define your own operator
|
An operator is used before a {motion} command. To define your own operator
|
||||||
you must create mapping that first sets the 'operatorfunc' option and then
|
you must create mapping that first sets the 'operatorfunc' option and then
|
||||||
@@ -1006,7 +1045,8 @@ See |:verbose-cmd| for more information.
|
|||||||
See |:map-<buffer>| for the optional <buffer> argument.
|
See |:map-<buffer>| for the optional <buffer> argument.
|
||||||
|
|
||||||
*:una* *:unabbreviate*
|
*:una* *:unabbreviate*
|
||||||
:una[bbreviate] {lhs} Remove abbreviation for {lhs} from the list. If none
|
:una[bbreviate] [<buffer>] {lhs}
|
||||||
|
Remove abbreviation for {lhs} from the list. If none
|
||||||
is found, remove abbreviations in which {lhs} matches
|
is found, remove abbreviations in which {lhs} matches
|
||||||
with the {rhs}. This is done so that you can even
|
with the {rhs}. This is done so that you can even
|
||||||
remove abbreviations after expansion. To avoid
|
remove abbreviations after expansion. To avoid
|
||||||
@@ -1021,7 +1061,8 @@ See |:verbose-cmd| for more information.
|
|||||||
Same as ":ab", but for Command-line mode only.
|
Same as ":ab", but for Command-line mode only.
|
||||||
|
|
||||||
*:cuna* *:cunabbrev*
|
*:cuna* *:cunabbrev*
|
||||||
:cuna[bbrev] {lhs} Same as ":una", but for Command-line mode only.
|
:cuna[bbrev] [<buffer>] {lhs}
|
||||||
|
Same as ":una", but for Command-line mode only.
|
||||||
|
|
||||||
*:cnorea* *:cnoreabbrev*
|
*:cnorea* *:cnoreabbrev*
|
||||||
:cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
:cnorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
||||||
@@ -1033,7 +1074,8 @@ See |:verbose-cmd| for more information.
|
|||||||
Same as ":ab", but for Insert mode only.
|
Same as ":ab", but for Insert mode only.
|
||||||
|
|
||||||
*:iuna* *:iunabbrev*
|
*:iuna* *:iunabbrev*
|
||||||
:iuna[bbrev] {lhs} Same as ":una", but for insert mode only.
|
:iuna[bbrev] [<buffer>] {lhs}
|
||||||
|
Same as ":una", but for insert mode only.
|
||||||
|
|
||||||
*:inorea* *:inoreabbrev*
|
*:inorea* *:inoreabbrev*
|
||||||
:inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
:inorea[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
||||||
@@ -1450,7 +1492,7 @@ The valid escape sequences are
|
|||||||
<bang> (See the '-bang' attribute) Expands to a ! if the
|
<bang> (See the '-bang' attribute) Expands to a ! if the
|
||||||
command was executed with a ! modifier, otherwise
|
command was executed with a ! modifier, otherwise
|
||||||
expands to nothing.
|
expands to nothing.
|
||||||
*<mods>*
|
*<mods>* *:command-modifiers*
|
||||||
<mods> The command modifiers, if specified. Otherwise, expands to
|
<mods> The command modifiers, if specified. Otherwise, expands to
|
||||||
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|
||||||
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*mbyte.txt* For Vim version 8.1. Last change: 2019 Jul 04
|
*mbyte.txt* For Vim version 8.2. Last change: 2019 Jul 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user