mirror of
https://github.com/vim/vim
synced 2025-07-17 09:41:54 +00:00
Compare commits
1155 Commits
Author | SHA1 | Date | |
---|---|---|---|
373c65104e | |||
7633fe595e | |||
38041da1c2 | |||
73fef33014 | |||
8d9437968b | |||
7fe875583b | |||
f5433fbfe4 | |||
da58134eed | |||
23c5527373 | |||
e55b1c098d | |||
820ffa567c | |||
a3b7fdc1bb | |||
8c524f76eb | |||
6797966dfc | |||
0cb5bcf583 | |||
845e0ee594 | |||
a190548e91 | |||
b326edf5b3 | |||
ef6746f637 | |||
280b0dc815 | |||
1089374130 | |||
7e380030c1 | |||
20298ce679 | |||
1e0b7b11db | |||
ec9b017b87 | |||
3b74b6b4bb | |||
c785b9a7f4 | |||
128d307963 | |||
c5b1c20b6b | |||
0779fab297 | |||
c8cb883015 | |||
efd8855594 | |||
9b68c82b7c | |||
511feec6f0 | |||
865af6b990 | |||
ceb2e77510 | |||
72abcf42d4 | |||
158ea175a9 | |||
2f03e5a0a9 | |||
3d9207ad2f | |||
856c1110c1 | |||
40a019f157 | |||
e17f8817a1 | |||
9bb3eb3e02 | |||
f7d267ef20 | |||
101f4810e2 | |||
0fe937fd86 | |||
a1bc6f1293 | |||
a6e8bf2d89 | |||
84cf6bd81b | |||
9af78769ee | |||
c70222d12a | |||
fdcbe3c3fe | |||
ab176ce982 | |||
ad72350360 | |||
b340baed9f | |||
47a519a933 | |||
a65d8b5bb9 | |||
65e0d77a66 | |||
8e20f75e58 | |||
0c8059e0b6 | |||
8dff4cbf6d | |||
df7df59d85 | |||
984dddbef4 | |||
f3decc5830 | |||
34db91f7a4 | |||
c82a5b5da5 | |||
142499de33 | |||
0c0eddd3dd | |||
4a021dfbee | |||
c9630d2658 | |||
71ccd03ee8 | |||
722e505d1a | |||
5055c56cfb | |||
37d1673ce0 | |||
6c6be9e88d | |||
f6e020b122 | |||
ec68028604 | |||
9721fb4ea3 | |||
00e260bb6c | |||
1de5f7c81d | |||
2d4070d3b0 | |||
e0ebeda4d8 | |||
215f49c4d7 | |||
f1f0ff9557 | |||
362b44bd4a | |||
be5ee8686a | |||
6ba24d8763 | |||
13b8205b44 | |||
ea1233fccf | |||
d281b7c227 | |||
ab54032f29 | |||
eebd555733 | |||
152e79e94b | |||
253ea9fa42 | |||
32ee627750 | |||
0e390f40e9 | |||
517f00f788 | |||
0ca8b5ba7b | |||
218cb0fb62 | |||
59de417b90 | |||
dcf59c37d0 | |||
a45551a535 | |||
077a1e670a | |||
ec98e93a82 | |||
7ba5a7eff3 | |||
f154f3ab2c | |||
6938e27abd | |||
b5e18f29fa | |||
cc613031b9 | |||
acc2240640 | |||
df44a27b53 | |||
da84ac2a6f | |||
951a2fb1b8 | |||
1f1fd44ef7 | |||
bb861e293e | |||
c82dd86084 | |||
48af321a33 | |||
4fdb8bd054 | |||
5b157fe2ed | |||
673fc3e23f | |||
a9c0104947 | |||
e928366de5 | |||
975a880a13 | |||
adc17a5f9d | |||
d8df304c59 | |||
439c036ed0 | |||
11f1ffd182 | |||
9b7cce28d5 | |||
87fda407f8 | |||
fe712ced6e | |||
8f1dde5021 | |||
002bc79991 | |||
3fffa97159 | |||
07188fc5ef | |||
ea563cc22b | |||
e0c3c3d6cb | |||
46cd43bda1 | |||
852ea366d6 | |||
442a85369f | |||
e52702f003 | |||
9155825b24 | |||
30cc44a97f | |||
6b0e528368 | |||
ebacddbc16 | |||
14681627f3 | |||
408c23b079 | |||
59f88fbf24 | |||
fb517bac23 | |||
c5acc0f7fe | |||
cc836556d9 | |||
1e5f8f6d65 | |||
791fb1bcda | |||
441d60efd8 | |||
57f75a5a36 | |||
c17e66c5c0 | |||
3ac498c8a1 | |||
ea6561af92 | |||
5fbf3bc3f9 | |||
48b1c21809 | |||
d6a77f95ee | |||
109aece79d | |||
f9ca08e95f | |||
85629985b7 | |||
e8f5ec0d30 | |||
950587242c | |||
6c9ba04280 | |||
d14fd5285e | |||
2891459b81 | |||
f15c8b6eb3 | |||
f17e7ea67a | |||
ad772a63ec | |||
858ba06d5f | |||
2245ae18e3 | |||
fccd93f091 | |||
494e9069cb | |||
e35a52aee7 | |||
d881b516da | |||
e023e88bed | |||
b10090928c | |||
cfb4b47de0 | |||
aaad995f83 | |||
f09715bc5c | |||
788fbb4707 | |||
5cd1cb9ff9 | |||
928eec649b | |||
ebe9d34aa0 | |||
363d6148df | |||
ca70c07b72 | |||
d6cd5ffade | |||
f4ae6b245a | |||
95da136142 | |||
041c7107f2 | |||
06b7b58455 | |||
367d59e6ba | |||
d5c2c7763d | |||
87be9be1db | |||
a9d4b84d97 | |||
0016fd2e29 | |||
208534d9ae | |||
823654bc06 | |||
6cb0726215 | |||
b42c0d5427 | |||
09307e3bc1 | |||
b60db8ba14 | |||
14798ab9a5 | |||
c998370562 | |||
3f65c66df9 | |||
ca5bc74607 | |||
a55ba06f69 | |||
f4b68e9056 | |||
80a20df86a | |||
388a5d4f20 | |||
fcb0b61d15 | |||
92c098d18e | |||
285b189260 | |||
ebc3de634f | |||
a14e697547 | |||
1919371b2b | |||
25e0f5863e | |||
2eec37926d | |||
45a1508a22 | |||
6ff71d8b7f | |||
f40e51a880 | |||
822ba24743 | |||
f7271e8316 | |||
87202264f8 | |||
9c65253fe7 | |||
3718427ba3 | |||
591cec8366 | |||
c94c1467b9 | |||
9cdcd1d0dc | |||
2e61e2d083 | |||
5a80f8ad5d | |||
98f1671cc0 | |||
4c9243f9fb | |||
74fae513f8 | |||
fe81389d60 | |||
e5886ccb51 | |||
83a52533b2 | |||
d863728913 | |||
eaa3e0dae5 | |||
a09195f29e | |||
74c6963656 | |||
be593bf135 | |||
904e48a22b | |||
37ebd42f16 | |||
88d68de95d | |||
d098b824c1 | |||
1e1d2e89fa | |||
c33b3216c8 | |||
b5383b174b | |||
843700875e | |||
66b3101672 | |||
deb17451ed | |||
a2e408f598 | |||
0b39ec3c7d | |||
6fc3b59ee9 | |||
94d729cbe8 | |||
c4c9f7e43e | |||
df1643a6a7 | |||
9309eb2f28 | |||
2d2970ea59 | |||
f4e16ae041 | |||
d4a5f40c0c | |||
ed37d9b324 | |||
79ea680e6b | |||
e178ba3654 | |||
eb04f0893a | |||
26e86445bf | |||
3b1f18f785 | |||
df671b4629 | |||
6f5b6dfb16 | |||
aa5fc4ec51 | |||
129d6bf6b3 | |||
e75ba268b3 | |||
645e3fe3fe | |||
e882f7a73c | |||
fd615a3c90 | |||
a6e67e4f41 | |||
4457e1d98f | |||
76cb683097 | |||
4aeeb63938 | |||
4dac32caf3 | |||
270d0388d2 | |||
cb7904016e | |||
4902ab16cb | |||
7e6f3fcc3c | |||
227a69de1e | |||
a5d0077efb | |||
32e351179e | |||
e06a28f5e3 | |||
2b72821924 | |||
7e9f351b2e | |||
37d1b4f941 | |||
55ba4b844f | |||
ef6b979bfa | |||
03a9f84817 | |||
d502aa4c10 | |||
06f0853cb0 | |||
47e13953ff | |||
9e6ba8cbef | |||
5aed0ccb96 | |||
48a687148c | |||
c3fd98cf8e | |||
86181df9f5 | |||
b415168a98 | |||
91689ea8ae | |||
5c3128efe6 | |||
aacc6afdb8 | |||
bc38f25c02 | |||
04816717df | |||
cb2bdb1c6d | |||
f163bd5e41 | |||
7e5bd91dc9 | |||
1cc2a94f80 | |||
89483d4043 | |||
69212b11d1 | |||
d695ba732d | |||
3b6a6eb7b4 | |||
09689a0284 | |||
396f3138ca | |||
1c74721233 | |||
7f14155f42 | |||
497f76bfbf | |||
b1062eb23e | |||
a5565e4189 | |||
7d3664df90 | |||
7d131b0715 | |||
5c2fe64443 | |||
cca34aa4be | |||
f0eefce93b | |||
2cfb4a2a72 | |||
6115481053 | |||
0ff5dedf0f | |||
b2d0e51366 | |||
4a070cc82e | |||
ea554ca4fa | |||
61a8981699 | |||
f391586f3f | |||
8a1c101315 | |||
3657686a0e | |||
f821ddaa0c | |||
b68b346e6d | |||
54ed0dff29 | |||
2a1381c305 | |||
40ee466c36 | |||
015f4267f4 | |||
f9ab52e155 | |||
221fcc741a | |||
0e65d3de0a | |||
04b1269783 | |||
80a8d3889b | |||
2fd4cd755c | |||
4515bcdec8 | |||
7779ee30d9 | |||
5125874951 | |||
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 |
16
.cirrus.yml
Normal file
16
.cirrus.yml
Normal file
@ -0,0 +1,16 @@
|
||||
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:
|
||||
- make test
|
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -8,7 +8,7 @@ labels: enhancement
|
||||
|
||||
_Instructions: Replace the template text and remove irrelevant text (including this line)_
|
||||
|
||||
**Is your feature request related something that is currently hard to do? Please describe.**
|
||||
**Is your feature request about something that is currently impossible or hard to do? Please describe the problem.**
|
||||
A clear and concise description of what is hard to do. Ex. It is difficult to [...] when [...]
|
||||
(If it is related to runtime files, please check their header for where to discuss enhancements.)
|
||||
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -5,9 +5,11 @@ src/xxd/xxd
|
||||
src/auto/if_perl.c
|
||||
src/auto/gui_gtk_gresources.c
|
||||
src/auto/gui_gtk_gresources.h
|
||||
src/auto/os_haiku.rdef
|
||||
src/objects/.dirstamp
|
||||
src/objects
|
||||
src/tags
|
||||
src/types.vim
|
||||
|
||||
# We do need src/auto/configure.
|
||||
src/auto/config.cache
|
||||
@ -50,6 +52,7 @@ nbproject/*
|
||||
|
||||
# Mac OSX
|
||||
src/xxd/xxd.dSYM
|
||||
.DS_Store
|
||||
|
||||
# All platforms
|
||||
*.rej
|
||||
@ -85,6 +88,7 @@ src/kword_test
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/tags
|
||||
runtime/doc/doctags
|
||||
|
||||
# Generated by "make shadow". The directory names could be anything but we
|
||||
# restrict them to shadow (the default) or shadow-*
|
||||
|
@ -10,6 +10,7 @@ src/auto/gui_gtk_gresources.h
|
||||
src/objects/.dirstamp
|
||||
src/objects
|
||||
src/tags
|
||||
src/types.vim
|
||||
|
||||
# We do need src/auto/configure.
|
||||
src/auto/config.cache
|
||||
@ -86,6 +87,7 @@ src/kword_test
|
||||
|
||||
# Generated by "make install"
|
||||
runtime/doc/tags
|
||||
runtime/doc/doctags
|
||||
|
||||
# Generated by "make shadow". The directory names could be anything but we
|
||||
# restrict them to shadow (the default) or shadow-*
|
||||
|
156
.travis.yml
156
.travis.yml
@ -1,35 +1,34 @@
|
||||
language: c
|
||||
|
||||
anchors:
|
||||
_anchors:
|
||||
envs:
|
||||
- &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
|
||||
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
|
||||
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
|
||||
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
|
||||
BUILD=yes TEST="scripttests test_libvterm" COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
BUILD=yes TEST="scripttests test_libvterm" CFLAGS="--coverage -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
- &osx-huge # macOS build
|
||||
BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
"CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
|
||||
BUILD=yes TEST=test FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
|
||||
CONFOPT="--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
|
||||
- &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 -DUSE_GCOV_FLUSH" LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
|
||||
- &asan # ASAN build
|
||||
SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
|
||||
ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
|
||||
- &shadowopt
|
||||
SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow
|
||||
|
||||
linux: &linux
|
||||
os: linux
|
||||
dist: trusty
|
||||
dist: bionic
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
# Need msgfmt 0.19.8 to be able to generate .desktop files
|
||||
- sourceline: 'ppa:ricotz/toolchain'
|
||||
packages:
|
||||
- autoconf
|
||||
- clang
|
||||
@ -39,46 +38,41 @@ anchors:
|
||||
- libperl-dev
|
||||
- python-dev
|
||||
- python3-dev
|
||||
- liblua5.2-dev
|
||||
- lua5.2
|
||||
- liblua5.3-dev
|
||||
- lua5.3
|
||||
- ruby-dev
|
||||
- tcl-dev
|
||||
- cscope
|
||||
- libgtk2.0-dev
|
||||
- desktop-file-utils
|
||||
- libtool-bin
|
||||
services:
|
||||
- xvfb
|
||||
before_install:
|
||||
- rvm reset
|
||||
# Remove /opt/python/3.x.x/bin from $PATH for using system python3.
|
||||
# ("pyenv global system" doesn't seem to work.)
|
||||
- |
|
||||
if [[ "$(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.
|
||||
- |
|
||||
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
|
||||
before_script:
|
||||
# Start virtual framebuffer to be able to test the GUI. Does not work on OS X.
|
||||
- export DISPLAY=:99.0
|
||||
- sh -e /etc/init.d/xvfb start && sleep 3
|
||||
- sudo modprobe snd-dummy
|
||||
- sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0
|
||||
- sudo bash ci/load-snd-dummy.sh || true
|
||||
- sudo usermod -a -G audio $USER
|
||||
- do_test() { sg audio "sg $(id -gn) '$*'"; }
|
||||
|
||||
osx: &osx
|
||||
os: osx
|
||||
before_script:
|
||||
- do_test() { "$@"; }
|
||||
|
||||
homebrew: &osx-homebrew
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
@ -87,25 +81,24 @@ anchors:
|
||||
cache:
|
||||
directories:
|
||||
- /usr/local/Homebrew/Library/Homebrew/vendor/
|
||||
- /usr/local/Homebrew/Library/Taps/
|
||||
- /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
|
||||
before_install:
|
||||
- rvm reset
|
||||
# Lua is not installed on Travis OSX
|
||||
# Lua is not installed on macOS
|
||||
- export LUA_PREFIX=/usr/local
|
||||
before_script:
|
||||
- do_test() { "$@"; }
|
||||
|
||||
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
|
||||
- (cd "${SRCDIR}" && bash <(curl -s https://codecov.io/bash))
|
||||
|
||||
asan_symbolize: &asan_symbolize
|
||||
- |
|
||||
while read log; do
|
||||
asan_symbolize < "${log}"
|
||||
done < <(find . -type f -name 'asan.*' -size +0)
|
||||
|
||||
sudo: false
|
||||
# Update pyenv to fix the error "/opt/pyenv/libexec/pyenv: line 43: cd: asan_symbolize-6.0: Not a directory".
|
||||
# https://github.com/pyenv/pyenv/issues/580
|
||||
- (cd "${PYENV_ROOT}" && git fetch -p origin && git checkout "$(git rev-list --tags -n1)") &>/dev/null || true
|
||||
- find . -type f -name 'asan.*' -size +0 2>/dev/null | xargs grep -l '^==[[:digit:]]*==ERROR:' | xargs -I{} -n1 -t asan_symbolize -l{}
|
||||
|
||||
branches:
|
||||
except:
|
||||
@ -129,31 +122,35 @@ script:
|
||||
- echo -e "\\033[33;1mBuilding Vim\\033[0m" && echo -en "travis_fold:start:build\\r\\033[0K"
|
||||
- |
|
||||
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
|
||||
if [[ "${TRAVIS_OS_NAME}" = "osx" ]]; then
|
||||
# On macOS, the entity of gcc is clang.
|
||||
sed -i.bak -f ci/config.mk.clang.sed ${SRCDIR}/auto/config.mk
|
||||
else
|
||||
sed -i.bak -f ci/config.mk.${CC}.sed ${SRCDIR}/auto/config.mk
|
||||
fi
|
||||
make ${SHADOWOPT} -j${NPROC}
|
||||
fi
|
||||
- echo -en "travis_fold:end:build\\r\\033[0K"
|
||||
- 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.
|
||||
- |
|
||||
if [[ "${BUILD}" = "yes" ]]; then
|
||||
"${SRCDIR}"/vim --version
|
||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-1.vim -c quit > /dev/null
|
||||
"${SRCDIR}"/vim --not-a-term -u NONE -S "${SRCDIR}"/testdir/if_ver-2.vim -c quit > /dev/null
|
||||
cat if_ver.txt
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-1.vim -c quit
|
||||
"${SRCDIR}"/vim -u NONE -i NONE --not-a-term -esNX -V1 -S ci/if_ver-2.vim -c quit
|
||||
fi
|
||||
- >
|
||||
do_test make ${SHADOWOPT} ${TEST} &&
|
||||
make -C runtime/doc vimtags VIMEXE=../../"${SRCDIR}"/vim &&
|
||||
FOLD_MARKER=travis_fold
|
||||
- echo -e "\\033[33;1mTesting Vim\\033[0m" && echo -en "travis_fold:start:test\\r\\033[0K"
|
||||
- do_test make ${SHADOWOPT} ${TEST} && FOLD_MARKER=travis_fold
|
||||
- echo -en "${FOLD_MARKER}:end:test\\r\\033[0K"
|
||||
|
||||
|
||||
# instead of a 2*2*8 matrix (2*os + 2*compiler + 8*env),
|
||||
# exclude some builds on mac os x and linux
|
||||
# on mac os x "tiny" is always without GUI
|
||||
# linux: 2*compiler + 5*env + mac: 2*compiler + 2*env
|
||||
matrix:
|
||||
# Instead of using all environments with both compilers on both systems,
|
||||
# exclude some builds on mac os x and linux.
|
||||
# On mac os x "tiny" is always without GUI, use 2 compilers in 2 environments.
|
||||
# Linux: 2 compilers on some of the environments + gcc on os390
|
||||
jobs:
|
||||
include:
|
||||
- <<: *osx
|
||||
name: tiny-nogui/clang
|
||||
@ -164,10 +161,12 @@ matrix:
|
||||
compiler: gcc
|
||||
env: *tiny-nogui
|
||||
- <<: *osx
|
||||
<<: *osx-homebrew
|
||||
name: huge/clang
|
||||
compiler: clang
|
||||
env: *osx-huge
|
||||
- <<: *osx
|
||||
<<: *osx-homebrew
|
||||
name: huge/gcc
|
||||
compiler: gcc
|
||||
env: *osx-huge
|
||||
@ -194,26 +193,34 @@ matrix:
|
||||
- <<: *linux
|
||||
name: normal/clang
|
||||
compiler: clang
|
||||
env: *normal
|
||||
env:
|
||||
- *normal
|
||||
- *shadowopt
|
||||
- <<: *linux
|
||||
name: normal/gcc
|
||||
compiler: gcc
|
||||
env: *normal
|
||||
env:
|
||||
- *normal
|
||||
- *shadowopt
|
||||
- <<: *linux
|
||||
arch: s390x
|
||||
name: huge/gcc-s390x
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
services: []
|
||||
- <<: *linux
|
||||
name: huge+coverage/clang
|
||||
compiler: clang
|
||||
env: *linux-huge
|
||||
env:
|
||||
- *linux-huge
|
||||
# Clang cannot compile test_libvterm with "--coverage" flag.
|
||||
- TEST=scripttests
|
||||
after_success: *coverage
|
||||
- <<: *linux
|
||||
name: huge+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *linux-huge
|
||||
after_success: *coverage
|
||||
- <<: *linux
|
||||
name: unittests+coverage/gcc
|
||||
compiler: gcc
|
||||
env: *unittests
|
||||
after_success: *coverage
|
||||
- <<: *linux # ASAN
|
||||
name: huge+asan/gcc
|
||||
compiler: gcc
|
||||
@ -228,5 +235,16 @@ matrix:
|
||||
- *linux-huge
|
||||
- TEST="-C src testgui"
|
||||
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:
|
||||
|
108
Filelist
108
Filelist
@ -8,8 +8,12 @@ SRC_ALL = \
|
||||
.hgignore \
|
||||
.lgtm.yml \
|
||||
.travis.yml \
|
||||
.cirrus.yml \
|
||||
appveyor.yml \
|
||||
ci/appveyor.bat \
|
||||
ci/if_ver*.vim \
|
||||
ci/load-snd-dummy.sh \
|
||||
ci/config.mk*.sed \
|
||||
src/Make_all.mak \
|
||||
src/README.md \
|
||||
src/alloc.h \
|
||||
@ -27,6 +31,8 @@ SRC_ALL = \
|
||||
src/channel.c \
|
||||
src/charset.c \
|
||||
src/cindent.c \
|
||||
src/clientserver.c \
|
||||
src/clipboard.c \
|
||||
src/cmdexpand.c \
|
||||
src/cmdhist.c \
|
||||
src/crypt.c \
|
||||
@ -123,7 +129,11 @@ SRC_ALL = \
|
||||
src/term.h \
|
||||
src/termlib.c \
|
||||
src/testing.c \
|
||||
src/textformat.c \
|
||||
src/textobject.c \
|
||||
src/textprop.c \
|
||||
src/time.c \
|
||||
src/typval.c \
|
||||
src/ui.c \
|
||||
src/undo.c \
|
||||
src/usercmd.c \
|
||||
@ -131,6 +141,10 @@ SRC_ALL = \
|
||||
src/version.c \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/vim9.h \
|
||||
src/vim9compile.c \
|
||||
src/vim9execute.c \
|
||||
src/vim9script.c \
|
||||
src/viminfo.c \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
@ -143,20 +157,22 @@ SRC_ALL = \
|
||||
src/testdir/*.py \
|
||||
src/testdir/lsan-suppress.txt \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/summarize.vim \
|
||||
src/testdir/testluaplugin/lua/testluaplugin/*.lua \
|
||||
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/setup_gui.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]*a.ok \
|
||||
src/testdir/test_[a-z]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
@ -171,12 +187,9 @@ SRC_ALL = \
|
||||
src/testdir/python_after/*.py \
|
||||
src/testdir/python_before/*.py \
|
||||
src/testdir/pyxfile/*.py \
|
||||
src/testdir/bench*.in \
|
||||
src/testdir/bench*.vim \
|
||||
src/testdir/dumps/*.dump \
|
||||
src/testdir/samples/*.txt \
|
||||
src/testdir/samples/test000 \
|
||||
src/testdir/if_ver*.vim \
|
||||
src/testdir/color_ramp.vim \
|
||||
src/testdir/silent.wav \
|
||||
src/testdir/popupbounce.vim \
|
||||
@ -194,6 +207,8 @@ SRC_ALL = \
|
||||
src/proto/channel.pro \
|
||||
src/proto/charset.pro \
|
||||
src/proto/cindent.pro \
|
||||
src/proto/clientserver.pro \
|
||||
src/proto/clipboard.pro \
|
||||
src/proto/cmdexpand.pro \
|
||||
src/proto/cmdhist.pro \
|
||||
src/proto/crypt.pro \
|
||||
@ -268,12 +283,19 @@ SRC_ALL = \
|
||||
src/proto/terminal.pro \
|
||||
src/proto/termlib.pro \
|
||||
src/proto/testing.pro \
|
||||
src/proto/textformat.pro \
|
||||
src/proto/textobject.pro \
|
||||
src/proto/textprop.pro \
|
||||
src/proto/time.pro \
|
||||
src/proto/typval.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
src/proto/usercmd.pro \
|
||||
src/proto/userfunc.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/vim9compile.pro \
|
||||
src/proto/vim9execute.pro \
|
||||
src/proto/vim9script.pro \
|
||||
src/proto/viminfo.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
@ -282,13 +304,12 @@ SRC_ALL = \
|
||||
src/libvterm/LICENSE \
|
||||
src/libvterm/Makefile \
|
||||
src/libvterm/README \
|
||||
src/libvterm/CONTRIBUTING \
|
||||
src/libvterm/tbl2inc_c.pl \
|
||||
src/libvterm/vterm.pc.in \
|
||||
src/libvterm/bin/unterm.c \
|
||||
src/libvterm/bin/vterm-ctrl.c \
|
||||
src/libvterm/bin/vterm-dump.c \
|
||||
src/libvterm/doc/URLs \
|
||||
src/libvterm/doc/seqs.txt \
|
||||
src/libvterm/find-wide-chars.pl \
|
||||
src/libvterm/include/vterm.h \
|
||||
src/libvterm/include/vterm_keycodes.h \
|
||||
src/libvterm/src/encoding.c \
|
||||
@ -296,6 +317,7 @@ SRC_ALL = \
|
||||
src/libvterm/src/encoding/DECdrawing.tbl \
|
||||
src/libvterm/src/encoding/uk.inc \
|
||||
src/libvterm/src/encoding/uk.tbl \
|
||||
src/libvterm/src/fullwidth.inc \
|
||||
src/libvterm/src/keyboard.c \
|
||||
src/libvterm/src/mouse.c \
|
||||
src/libvterm/src/parser.c \
|
||||
@ -326,16 +348,18 @@ SRC_ALL = \
|
||||
src/libvterm/t/27state_reset.test \
|
||||
src/libvterm/t/28state_dbl_wh.test \
|
||||
src/libvterm/t/29state_fallback.test \
|
||||
src/libvterm/t/30pen.test \
|
||||
src/libvterm/t/40screen_ascii.test \
|
||||
src/libvterm/t/41screen_unicode.test \
|
||||
src/libvterm/t/42screen_damage.test \
|
||||
src/libvterm/t/43screen_resize.test \
|
||||
src/libvterm/t/44screen_pen.test \
|
||||
src/libvterm/t/45screen_protect.test \
|
||||
src/libvterm/t/46screen_extent.test \
|
||||
src/libvterm/t/47screen_dbl_wh.test \
|
||||
src/libvterm/t/48screen_termprops.test \
|
||||
src/libvterm/t/30state_pen.test \
|
||||
src/libvterm/t/31state_rep.test \
|
||||
src/libvterm/t/32state_flow.test \
|
||||
src/libvterm/t/60screen_ascii.test \
|
||||
src/libvterm/t/61screen_unicode.test \
|
||||
src/libvterm/t/62screen_damage.test \
|
||||
src/libvterm/t/63screen_resize.test \
|
||||
src/libvterm/t/64screen_pen.test \
|
||||
src/libvterm/t/65screen_protect.test \
|
||||
src/libvterm/t/66screen_extent.test \
|
||||
src/libvterm/t/67screen_dbl_wh.test \
|
||||
src/libvterm/t/68screen_termprops.test \
|
||||
src/libvterm/t/90vttest_01-movement-1.test \
|
||||
src/libvterm/t/90vttest_01-movement-2.test \
|
||||
src/libvterm/t/90vttest_01-movement-3.test \
|
||||
@ -395,6 +419,7 @@ SRC_UNIX = \
|
||||
src/gui_gtk_x11.c \
|
||||
src/gui_gtk_res.xml \
|
||||
src/gui_motif.c \
|
||||
src/gui_xim.c \
|
||||
src/gui_xmdlg.c \
|
||||
src/gui_xmebw.c \
|
||||
src/gui_xmebw.h \
|
||||
@ -418,6 +443,7 @@ SRC_UNIX = \
|
||||
src/proto/gui_gtk_x11.pro \
|
||||
src/proto/gui_gtk_gresources.pro \
|
||||
src/proto/gui_motif.pro \
|
||||
src/proto/gui_xim.pro \
|
||||
src/proto/gui_xmdlg.pro \
|
||||
src/proto/gui_x11.pro \
|
||||
src/proto/if_xcmdsrv.pro \
|
||||
@ -523,7 +549,6 @@ SRC_DOS = \
|
||||
src/uninstall.c \
|
||||
src/vim.def \
|
||||
src/vim.rc \
|
||||
src/vimio.h \
|
||||
src/gvim.exe.mnf \
|
||||
src/vimrun.c \
|
||||
src/xpm_w32.c \
|
||||
@ -593,6 +618,15 @@ SRC_AMI = \
|
||||
src/testdir/amiga.vim \
|
||||
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)
|
||||
SRC_MAC = \
|
||||
src/INSTALLmac.txt \
|
||||
@ -628,13 +662,13 @@ SRC_QNX = \
|
||||
src/proto/gui_photon.pro \
|
||||
src/proto/os_qnx.pro \
|
||||
|
||||
|
||||
# source files for the extra archive (all sources that are not for Unix)
|
||||
SRC_EXTRA = \
|
||||
$(SRC_AMI) \
|
||||
$(SRC_AMI_DOS) \
|
||||
$(SRC_DOS) \
|
||||
$(SRC_DOS_BIN) \
|
||||
$(SRC_HAIKU) \
|
||||
$(SRC_MAC) \
|
||||
$(SRC_QNX) \
|
||||
$(SRC_VMS) \
|
||||
@ -642,10 +676,6 @@ SRC_EXTRA = \
|
||||
src/Make_mint.mak \
|
||||
src/infplist.xml \
|
||||
src/link.390 \
|
||||
src/os_beos.c \
|
||||
src/os_beos.h \
|
||||
src/os_beos.rsrc \
|
||||
src/proto/os_beos.pro \
|
||||
src/os_mint.h \
|
||||
src/os_vms_fix.com \
|
||||
src/toolbar.phi \
|
||||
@ -654,6 +684,8 @@ SRC_EXTRA = \
|
||||
RT_ALL = \
|
||||
README.txt \
|
||||
README.md \
|
||||
README_VIM9.md \
|
||||
LICENSE \
|
||||
CONTRIBUTING.md \
|
||||
runtime/bugreport.vim \
|
||||
runtime/doc/*.awk \
|
||||
@ -768,20 +800,20 @@ RT_UNIX = \
|
||||
README_unix.txt \
|
||||
runtime/hi16-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/vim.desktop \
|
||||
|
||||
# Unix and DOS runtime without CR-LF translation
|
||||
RT_UNIX_DOS_BIN = \
|
||||
runtime/vim16x16.gif \
|
||||
runtime/vim16x16.png \
|
||||
runtime/vim16x16.xpm \
|
||||
runtime/vim32x32.gif \
|
||||
runtime/vim32x32.png \
|
||||
runtime/vim32x32.xpm \
|
||||
runtime/vim48x48.gif \
|
||||
runtime/vim48x48.png \
|
||||
runtime/vim48x48.xpm \
|
||||
|
||||
# runtime not for unix or extra
|
||||
RT_NO_UNIX = \
|
||||
@ -940,6 +972,8 @@ LANG_GEN = \
|
||||
runtime/doc/*-pl.UTF-8.1 \
|
||||
runtime/doc/*-ru.1 \
|
||||
runtime/doc/*-ru.UTF-8.1 \
|
||||
runtime/doc/*-tr.1 \
|
||||
runtime/doc/*-tr.UTF-8.1 \
|
||||
runtime/lang/README.txt \
|
||||
runtime/lang/menu_*.vim \
|
||||
runtime/keymap/README.txt \
|
||||
|
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.
|
19
Makefile
19
Makefile
@ -85,19 +85,19 @@ indenttest:
|
||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||
|
||||
MAJOR = 8
|
||||
MINOR = 1
|
||||
MINOR = 2
|
||||
|
||||
# CHECKLIST for creating a new version:
|
||||
#
|
||||
# - Update Vim version number. For a test version in: src/version.h,
|
||||
# READMEdir/Contents, MAJOR/MINOR above, VIMMAJOR and VIMMINOR in
|
||||
# src/Makefile, README.txt, README.md, READMEdir/README*.txt,
|
||||
# src/Makefile, README.txt, README.md, src/README.md, READMEdir/README*.txt,
|
||||
# runtime/doc/*.txt and make nsis/gvim_version.nsh.
|
||||
# For a minor/major version: src/GvimExt/GvimExt.reg, src/vim.def,
|
||||
# src/gvim.exe.mnf.
|
||||
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
|
||||
# you can make it all work), Cscope and "huge" features. Exclude workshop
|
||||
# and SNiFF.
|
||||
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, Lua, Cscope and
|
||||
# "huge" features. Add MZscheme if you can make it work.
|
||||
# Use "make reconfig" after selecting the configure arguments.
|
||||
# - With these features: "make proto" (requires cproto and Motif installed;
|
||||
# ignore warnings for missing include files, fix problems for syntax errors).
|
||||
# - 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
|
||||
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
|
||||
# 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.
|
||||
# - Correct included_patches[] in src/version.c.
|
||||
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
||||
@ -148,7 +145,7 @@ MINOR = 1
|
||||
# - > make dossrc
|
||||
# > make dosrt
|
||||
# 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:
|
||||
# - See src/INSTALLpc.txt for installing the compiler and SDK.
|
||||
# - Set environment for Visual C++ 2015:
|
||||
@ -156,7 +153,7 @@ MINOR = 1
|
||||
# > msvc2015.bat
|
||||
# - Build the console binary:
|
||||
# > 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 test
|
||||
# - Rename (using ../tools/rename.bat):
|
||||
@ -206,7 +203,7 @@ MINOR = 1
|
||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||
# gvimext64.dll can be obtained from:
|
||||
# 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
|
||||
# version). Also put winpty32.dll and winpty-agent.exe there.
|
||||
# - go to ../nsis and do:
|
||||
|
16
README.md
16
README.md
@ -1,7 +1,8 @@
|
||||

|
||||
|
||||
[](https://travis-ci.org/vim/vim)
|
||||
[](https://travis-ci.org/vim/vim)
|
||||
[](https://ci.appveyor.com/project/chrisbra/vim)
|
||||
[](https://cirrus-ci.com/github/vim/vim)
|
||||
[](https://codecov.io/gh/vim/vim?branch=master)
|
||||
[](https://scan.coverity.com/projects/vim)
|
||||
[](https://lgtm.com/projects/g/vim/vim/context:cpp)
|
||||
@ -25,10 +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
|
||||
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
|
||||
almost all flavours of UNIX. Porting to other systems should not be very
|
||||
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga
|
||||
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, Haiku, VMS and almost
|
||||
all flavours of UNIX. Porting to other systems should not be very difficult.
|
||||
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
|
||||
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
For Vim9 script see [README_VIM9](README_VIM9.md).
|
||||
|
||||
## Distribution ##
|
||||
|
||||
@ -69,6 +72,7 @@ archive):
|
||||
README_unix.txt Unix
|
||||
README_dos.txt MS-DOS and MS-Windows
|
||||
README_mac.txt Macintosh
|
||||
README_haiku.txt Haiku
|
||||
README_vms.txt VMS
|
||||
|
||||
There are other `README_*.txt` files, depending on the distribution you used.
|
||||
@ -140,7 +144,7 @@ Send any other comments, patches, flowers and suggestions to:
|
||||
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 ##
|
||||
|
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?
|
||||
@ -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
|
||||
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
|
||||
almost all flavours of UNIX. Porting to other systems should not be very
|
||||
difficult. Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me, Amiga
|
||||
DOS, Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
Vim runs under MS-Windows (XP, Vista, 7, 8, 10), macOS, VMS and almost all
|
||||
flavours of UNIX. Porting to other systems should not be very difficult.
|
||||
Older versions of Vim run on MS-DOS, MS-Windows 95/98/Me/NT/2000, Amiga DOS,
|
||||
Atari MiNT, BeOS, RISC OS and OS/2. These are no longer maintained.
|
||||
|
||||
|
||||
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
|
||||
help, rectangular cut/paste, etc., etc., etc...
|
||||
|
||||
Version 8.1. Also runs under UNIX, MS-Windows, Mac, etc.
|
||||
vim81rt.tgz contains the documentation and syntax files.
|
||||
vim81bin.tgz contains the binaries.
|
||||
vim81src.tgz contains the sources.
|
||||
Version 8.2. Also runs under UNIX, MS-Windows, Mac, etc.
|
||||
vim82rt.tgz contains the documentation and syntax files.
|
||||
vim82bin.tgz contains the binaries.
|
||||
vim82src.tgz contains the sources.
|
||||
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.
|
||||
See README.txt for general information about Vim.
|
||||
@ -16,8 +16,8 @@ easily upgrade to a new version. For example:
|
||||
You would then unpack the archives like this:
|
||||
|
||||
cd dh0:editors
|
||||
tar xf t:vim81bin.tar
|
||||
tar xf t:vim81rt.tar
|
||||
tar xf t:vim82bin.tar
|
||||
tar xf t:vim82rt.tar
|
||||
|
||||
Set the $VIM environment variable to point to the top directory of your Vim
|
||||
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_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
|
||||
|
@ -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_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
|
||||
|
@ -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_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
|
||||
pick only one of them, but it's also possible to install several.
|
||||
These ones are available (the version number may differ):
|
||||
vim81w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim81.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim81ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
vim82w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim82.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim82ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
|
||||
You MUST also get the runtime archive (vim81rt.zip).
|
||||
The sources are also available (vim81src.zip).
|
||||
You MUST also get the runtime archive (vim82rt.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.
|
||||
|
||||
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:
|
||||
set VIM
|
||||
For example, if you have
|
||||
C:\vim\vim81
|
||||
C:\vim\vim82
|
||||
do
|
||||
cd C:\
|
||||
Binary and runtime Vim archives are normally unpacked in the same location,
|
||||
on top of each other.
|
||||
|
||||
2. Unpack the zip archives. This will create a new directory "vim\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
|
||||
name includes the version number, it is unlikely that you overwrite
|
||||
existing files.
|
||||
Examples:
|
||||
pkunzip -d gvim81.zip
|
||||
unzip vim81w32.zip
|
||||
pkunzip -d gvim82.zip
|
||||
unzip vim82w32.zip
|
||||
|
||||
You need to unpack the runtime archive and at least one of the binary
|
||||
archives. When using more than one binary version, be careful not to
|
||||
@ -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
|
||||
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:
|
||||
cd vim\vim81
|
||||
cd vim\vim82
|
||||
Run the "install.exe" program. It will ask you a number of questions about
|
||||
how you would like to have your Vim setup. Among these are:
|
||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||
@ -80,8 +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
|
||||
$PATH. If you skip this, you can add Vim to the search path manually:
|
||||
The simplest is to add a line to your autoexec.bat. Examples:
|
||||
set path=%path%;C:\vim\vim81
|
||||
set path=%path%;D:\editors\vim\vim81
|
||||
set path=%path%;C:\vim\vim82
|
||||
set path=%path%;D:\editors\vim\vim82
|
||||
- Create entries for Vim on the desktop and in the Start menu.
|
||||
|
||||
That's it!
|
||||
@ -93,8 +89,8 @@ Remarks:
|
||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
||||
point to the top directory of your Vim files. Example:
|
||||
set VIM=C:\editors\vim
|
||||
Vim version 8.1 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim81. See ":help $VIM" for more information.
|
||||
Vim version 8.2 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim82. See ":help $VIM" for more information.
|
||||
|
||||
- To avoid confusion between distributed files of different versions and your
|
||||
own modified vim scripts, it is recommended to use this directory layout:
|
||||
@ -105,14 +101,14 @@ Remarks:
|
||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||
C:\vim\... Other files you made.
|
||||
Distributed files:
|
||||
C:\vim\vim81\vim.exe The Vim version 8.1 executable.
|
||||
C:\vim\vim81\doc\*.txt The version 8.1 documentation files.
|
||||
C:\vim\vim81\bugreport.vim A Vim version 8.1 script.
|
||||
C:\vim\vim81\... Other version 8.1 distributed files.
|
||||
C:\vim\vim82\vim.exe The Vim version 8.2 executable.
|
||||
C:\vim\vim82\doc\*.txt The version 8.2 documentation files.
|
||||
C:\vim\vim82\bugreport.vim A Vim version 8.2 script.
|
||||
C:\vim\vim82\... Other version 8.2 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
set VIM=C:\vim
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim81". Don't add
|
||||
"vim81" to $VIM, that won't work.
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim82". Don't add
|
||||
"vim82" to $VIM, that won't work.
|
||||
|
||||
- You can put your Vim executable anywhere else. If the executable is not
|
||||
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||
@ -121,7 +117,7 @@ Remarks:
|
||||
set VIM=d:\editors\vim
|
||||
|
||||
- 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".
|
||||
|
||||
- In Windows 95/98/NT you can create a shortcut to Vim. This works for all
|
||||
@ -136,8 +132,8 @@ Remarks:
|
||||
Select Properties.
|
||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||
Vim executable. Examples:
|
||||
C:\command.com /c C:\vim\vim81\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim81\vim.exe
|
||||
C:\command.com /c C:\vim\vim82\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
|
||||
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
||||
mode".
|
||||
@ -150,5 +146,4 @@ Remarks:
|
||||
|
||||
For further information, type one of these inside Vim:
|
||||
:help dos
|
||||
:help msdos
|
||||
: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
|
||||
the files are for. For general information about Vim, see the "README.txt"
|
||||
@ -13,9 +13,6 @@ src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
|
||||
|
||||
src/os_amiga.* Files for the Amiga port.
|
||||
|
||||
src/gui_beos.*
|
||||
src/os_beos.* Files for the BeOS port.
|
||||
|
||||
src/os_msdos.*
|
||||
src/os_dos.* Files for the MS-DOS port.
|
||||
|
||||
@ -24,9 +21,6 @@ src/os_mac.* Files for the Mac 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_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.
|
||||
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 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.
|
||||
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.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
@ -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.
|
||||
It is packed for Unix systems (NL line separator).
|
||||
|
||||
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!
|
||||
|
@ -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_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
These files are in the runtime archive (vim81rt.zip).
|
||||
See "README_dos.txt" for installation instructions for MS-Windows.
|
||||
These files are in the runtime archive (vim82rt.zip).
|
||||
|
||||
|
||||
The DOS source archive contains the files needed to compile Vim on MS-DOS or
|
||||
MS-Windows. It is packed for DOS systems, with CR-LF. It also includes the
|
||||
VisVim sources.
|
||||
The DOS source archive contains the files needed to compile Vim on MS-Windows.
|
||||
It is packed for MS-Windows systems, with CR-LF. It also includes the VisVim
|
||||
sources.
|
||||
|
||||
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.
|
||||
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.
|
||||
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
|
||||
the Win32s subsystem in MS-Windows 3.1 and 3.11.
|
||||
|
||||
Also see the README_bindos.txt, README_dos.txt and README.txt files.
|
||||
|
||||
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
|
||||
This file used to explain the installation of Vim on 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.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
@ -25,9 +25,9 @@ test_script:
|
||||
- cd src/testdir
|
||||
# Testing with MSVC gvim
|
||||
- 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
|
||||
# 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
|
||||
|
@ -8,6 +8,7 @@ cd src
|
||||
echo "Building MinGW 32bit console version"
|
||||
set PATH=c:\msys64\mingw32\bin;%PATH%
|
||||
mingw32-make.exe -f Make_ming.mak GUI=no OPTIMIZE=speed IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
|
||||
.\vim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
|
||||
:: Save vim.exe before Make clean, moved back below.
|
||||
copy vim.exe testdir
|
||||
mingw32-make.exe -f Make_ming.mak clean
|
||||
@ -20,13 +21,14 @@ if "%FEATURE%" == "HUGE" (
|
||||
) ELSE (
|
||||
mingw32-make.exe -f Make_ming.mak OPTIMIZE=speed GUI=yes IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
|
||||
)
|
||||
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming.txt
|
||||
.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_ming_gui.txt
|
||||
|
||||
:: Filter out the progress bar from the build log
|
||||
sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
|
||||
|
||||
echo "Building MSVC 64bit console Version"
|
||||
nmake -f Make_mvc2.mak CPU=AMD64 OLE=no GUI=no IME=yes ICONV=yes DEBUG=no FEATURES=%FEATURE% || exit 1
|
||||
:: The executable is not used
|
||||
nmake -f Make_mvc2.mak clean
|
||||
|
||||
:: build MSVC huge version with python and channel support
|
||||
@ -43,6 +45,8 @@ if "%FEATURE%" == "HUGE" (
|
||||
move /Y testdir\vim.exe .
|
||||
echo "version output MinGW"
|
||||
type ver_ming.txt
|
||||
echo "version output MinGW GUI"
|
||||
type ver_ming_gui.txt
|
||||
echo "version output MVC"
|
||||
type ver_msvc.txt
|
||||
cd ..
|
||||
|
2
ci/config.mk.clang.sed
Normal file
2
ci/config.mk.clang.sed
Normal file
@ -0,0 +1,2 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
|
||||
/^RUBY_CFLAGS[[:blank:]]*=/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[[:blank:]]*=/s/$/ -Wno-error=maybe-uninitialized/
|
2
ci/config.mk.sed
Normal file
2
ci/config.mk.sed
Normal file
@ -0,0 +1,2 @@
|
||||
/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
|
||||
/^PERL_CFLAGS[[:blank:]]*=/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
|
@ -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
|
||||
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).
|
||||
You can find one in previous Vim versions or in this archive:
|
||||
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.
|
||||
|
||||
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:
|
||||
#!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
|
||||
|
||||
# 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\simpchinese.nsi"
|
||||
!include "lang\tradchinese.nsi"
|
||||
!include "lang\turkish.nsi"
|
||||
!endif
|
||||
|
||||
##########################################################
|
||||
|
@ -2,5 +2,5 @@
|
||||
!ifndef __GVIM_VER__NSH__
|
||||
!define __GVIM_VER__NSH__
|
||||
!define VER_MAJOR 8
|
||||
!define VER_MINOR 1
|
||||
!define VER_MINOR 2
|
||||
!endif
|
||||
|
@ -66,12 +66,12 @@ LangString str_desc_start_menu ${LANG_TURKISH} \
|
||||
LangString str_section_edit_with ${LANG_TURKISH} \
|
||||
"Vim ile Aç"
|
||||
LangString str_desc_edit_with ${LANG_TURKISH} \
|
||||
"Vim'i $\"Birlikte aç$\" sağ tıklama menüsüne ekler."
|
||||
"Vim'i $\"Birlikte aç$\" sağ tık menüsüne ekler."
|
||||
|
||||
LangString str_section_vim_rc ${LANG_TURKISH} \
|
||||
"Bir konfigürasyon dosyası oluştur"
|
||||
"Bir yapılandırma dosyası oluştur"
|
||||
LangString str_desc_vim_rc ${LANG_TURKISH} \
|
||||
"Eğer yoksa bir konfigürasyon dosyası (_vimrc) oluşturur."
|
||||
"Eğer yoksa bir yapılandırma dosyası (_vimrc) oluşturur."
|
||||
|
||||
LangString str_group_plugin ${LANG_TURKISH} \
|
||||
"Eklenti dizinleri oluştur"
|
||||
@ -108,7 +108,7 @@ LangString str_desc_unregister ${LANG_TURKISH} \
|
||||
LangString str_unsection_exe ${LANG_TURKISH} \
|
||||
"Vim programını ve çalıştırma dosyalarını kaldır"
|
||||
LangString str_desc_rm_exe ${LANG_TURKISH} \
|
||||
"Tüm Vim çalıştırılabilir dosyalarını ve diğer dosyaları kaldırır."
|
||||
"Vim çalıştırılabilir dosyalarını ve diğer dosyaları kaldırır."
|
||||
|
||||
LangString str_ungroup_plugin ${LANG_TURKISH} \
|
||||
"Eklenti dizinlerini kaldır"
|
||||
@ -128,7 +128,7 @@ LangString str_desc_rm_plugin_vim ${LANG_TURKISH} \
|
||||
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 konfigürasyon dosyalarını içerir!"
|
||||
"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."
|
||||
|
@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2018 Aug 20
|
||||
" Last Change: 2020 Apr 08
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
@ -635,3 +635,5 @@ endfunc
|
||||
|
||||
let &cpo = 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
|
||||
"
|
||||
" 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
|
||||
" faster.
|
||||
@ -298,7 +298,7 @@ endfunc
|
||||
|
||||
func dist#ft#FTmms()
|
||||
let n = 1
|
||||
while n < 10
|
||||
while n < 20
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*\(%\|//\)' || line =~ '^\*'
|
||||
setf mmix
|
||||
@ -325,7 +325,7 @@ endfunc
|
||||
|
||||
func dist#ft#FTmm()
|
||||
let n = 1
|
||||
while n < 10
|
||||
while n < 20
|
||||
let line = getline(n)
|
||||
if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)'
|
||||
setf objcpp
|
||||
|
@ -22,7 +22,7 @@ if &cp
|
||||
endif
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of getscript needs vim 7.2"
|
||||
echo "***warning*** this version of GetLatestVimScripts needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
|
@ -1,8 +1,8 @@
|
||||
" netrw.vim: Handles file transfer and remote directory listing across
|
||||
" AUTOLOAD SECTION
|
||||
" Date: Nov 06, 2019
|
||||
" Version: 166
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 168
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
@ -13,6 +13,10 @@
|
||||
" expressed or implied. By using this plugin, you agree that
|
||||
" in no event will the copyright holder be liable for any damages
|
||||
" 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()
|
||||
"
|
||||
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
|
||||
@ -39,7 +43,7 @@ if exists("s:needspatches")
|
||||
endfor
|
||||
endif
|
||||
|
||||
let g:loaded_netrw = "v166"
|
||||
let g:loaded_netrw = "v168"
|
||||
if !exists("s:NOTE")
|
||||
let s:NOTE = 0
|
||||
let s:WARNING = 1
|
||||
@ -64,7 +68,7 @@ setl cpo&vim
|
||||
" 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)
|
||||
" (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)
|
||||
" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow)
|
||||
|
||||
@ -443,23 +447,9 @@ if !exists("g:netrw_localmovecmd")
|
||||
let g:netrw_localmovecmd= ""
|
||||
endif
|
||||
endif
|
||||
if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
||||
" 1109 provides for delete(tmpdir,"d") which is what will be used
|
||||
if exists("g:netrw_local_rmdir")
|
||||
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
|
||||
" following serves as an example for how to insert a version&patch specific test
|
||||
"if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
||||
"endif
|
||||
call s:NetrwInit("g:netrw_liststyle" , s:THINLIST)
|
||||
" sanity checks
|
||||
if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST
|
||||
@ -918,8 +908,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40)
|
||||
if has("clipboard")
|
||||
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @* = keepregstar
|
||||
sil! let @+ = keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
sil! let @/ = keepregslash
|
||||
" call Dret("netrw#Explore")
|
||||
@ -944,8 +934,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
|
||||
if has("clipboard")
|
||||
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @* = keepregstar
|
||||
sil! let @+ = keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
sil! let @/ = keepregslash
|
||||
" call Dret("netrw#Explore")
|
||||
@ -1000,8 +990,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif
|
||||
if has("clipboard")
|
||||
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @* = keepregstar
|
||||
sil! let @+ = keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
sil! let @/ = keepregslash
|
||||
" call Dret("netrw#Explore : no files matched pattern")
|
||||
@ -1037,8 +1027,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42)
|
||||
if has("clipboard")
|
||||
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @* = keepregstar
|
||||
sil! let @+ = keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
sil! let @/ = keepregslash
|
||||
" call Dret("netrw#Explore : no files matched")
|
||||
@ -1086,8 +1076,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
endif
|
||||
if has("clipboard")
|
||||
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @* = keepregstar
|
||||
sil! let @+ = keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
sil! let @/ = keepregslash
|
||||
" call Dret("netrw#Explore : missing +path_extra")
|
||||
@ -1160,8 +1150,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
|
||||
let s:netrw_events= 2
|
||||
if has("clipboard")
|
||||
" call Decho("(netrw#Explore) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @* = keepregstar
|
||||
sil! let @+ = keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
sil! let @/ = keepregslash
|
||||
" call Dret("netrw#Explore : @/<".@/.">")
|
||||
@ -1535,7 +1525,8 @@ fun! netrw#Obtain(islocal,fname,...)
|
||||
" -i : turns off interactive prompting from ftp
|
||||
" -n unix : DON'T use <.netrc>, even though it exists
|
||||
" -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)
|
||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||
if getline(1) !~ "^$"
|
||||
@ -2203,7 +2194,7 @@ fun! netrw#NetRead(mode,...)
|
||||
" -i : turns off interactive prompting from ftp
|
||||
" -n unix : DON'T use <.netrc>, even though it exists
|
||||
" -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)
|
||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||
if getline(1) !~ "^$"
|
||||
@ -2303,7 +2294,7 @@ fun! netrw#NetRead(mode,...)
|
||||
NetrwKeepj put ='quit'
|
||||
|
||||
" perform cadaver operation:
|
||||
NetrwKeepj norm! 1Gdd
|
||||
NetrwKeepj norm! 1G"_dd
|
||||
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
|
||||
keepj bd!
|
||||
endif
|
||||
@ -2619,7 +2610,7 @@ fun! netrw#NetWrite(...) range
|
||||
" -i : turns off interactive prompting from ftp
|
||||
" -n unix : DON'T use <.netrc>, even though it exists
|
||||
" -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)
|
||||
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
|
||||
if getline(1) !~ "^$"
|
||||
@ -2685,7 +2676,7 @@ fun! netrw#NetWrite(...) range
|
||||
NetrwKeepj put ='put '.tmpfile.' '.netrw_fname
|
||||
|
||||
" perform cadaver operation:
|
||||
NetrwKeepj norm! 1Gdd
|
||||
NetrwKeepj norm! 1G"_dd
|
||||
call s:NetrwExe(s:netrw_silentxfer."%!".g:netrw_dav_cmd)
|
||||
|
||||
" remove enew buffer (quietly)
|
||||
@ -4367,7 +4358,7 @@ fun! s:NetrwGetWord()
|
||||
let curline= getline('.')
|
||||
|
||||
if curline =~# '"\s*Sorted by\s'
|
||||
NetrwKeepj norm! s
|
||||
NetrwKeepj norm! "_s
|
||||
let s:netrw_skipbrowse= 1
|
||||
echo 'Pressing "s" also works'
|
||||
|
||||
@ -5207,13 +5198,26 @@ endfun
|
||||
" 0=local, 1=remote
|
||||
fun! netrw#BrowseX(fname,remote)
|
||||
let use_ctrlo= 1
|
||||
" call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")")
|
||||
" 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)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:')
|
||||
if a:remote == 0 && isdirectory(a:fname)
|
||||
" 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
|
||||
" call Dret("(netrw#BrowseX) did gf instead")
|
||||
" call Dret("netrw#BrowseX")
|
||||
return
|
||||
endif
|
||||
" call Decho("not a local file nor a webpage request",'~'.expand("<slnum>"))
|
||||
|
||||
let ykeep = @@
|
||||
let screenposn = winsaveview()
|
||||
@ -5467,11 +5471,11 @@ endfun
|
||||
" netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2
|
||||
fun! netrw#BrowseXVis()
|
||||
" call Dfunc("netrw#BrowseXVis()")
|
||||
let atkeep = @@
|
||||
norm! gvy
|
||||
" call Decho("@@<".@@.">",'~'.expand("<slnum>"))
|
||||
call netrw#BrowseX(@@,netrw#CheckIfRemote(@@))
|
||||
let @@ = atkeep
|
||||
let akeep = @a
|
||||
norm! gv"ay
|
||||
let gxfile= @a
|
||||
let @a = akeep
|
||||
call netrw#BrowseX(gxfile,netrw#CheckIfRemote(gxfile))
|
||||
" call Dret("netrw#BrowseXVis")
|
||||
endfun
|
||||
|
||||
@ -6091,8 +6095,8 @@ fun! s:NetrwSLeftrelease(islocal)
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2
|
||||
" separated patterns given in g:netrw_list_hide
|
||||
" s:NetrwListHide: uses [range]g~...~d to delete files that match {{{2
|
||||
" comma-separated patterns given in g:netrw_list_hide
|
||||
fun! s:NetrwListHide()
|
||||
" 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,'$')))
|
||||
@ -6105,8 +6109,8 @@ fun! s:NetrwListHide()
|
||||
" Use the first character left as a separator character.
|
||||
" call Decho("find a character not in the hide string to use as a separator")
|
||||
let listhide= g:netrw_list_hide
|
||||
let sep = strpart(substitute('/~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
|
||||
" call Decho("sep=".sep,'~'.expand("<slnum>"))
|
||||
let sep = strpart(substitute('~@#$%^&*{};:,<.>?|1234567890','['.escape(listhide,'-]^\').']','','ge'),1,1)
|
||||
" call Decho("sep=".sep," (sep not in hide string)'~'.expand("<slnum>"))
|
||||
|
||||
while listhide != ""
|
||||
if listhide =~ ','
|
||||
@ -6116,10 +6120,19 @@ fun! s:NetrwListHide()
|
||||
let hide = listhide
|
||||
let listhide = ""
|
||||
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
|
||||
" call Decho("prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">")
|
||||
" call Decho("..prune the list by hiding any files which ",((g:netrw_hide == 1)? "" : "don't")." match hide<".hide.">")
|
||||
if g:netrw_hide == 1
|
||||
" call Decho("..hiding<".hide.">",'~'.expand("<slnum>"))
|
||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d'
|
||||
@ -6664,9 +6677,9 @@ fun! s:NetrwMarkFiles(islocal,...)
|
||||
while i <= a:0
|
||||
if a:islocal
|
||||
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
|
||||
let mffiles= glob(fnameescape(a:{i}),0,1)
|
||||
let mffiles= glob(a:{i},0,1)
|
||||
endif
|
||||
else
|
||||
let mffiles= [a:{i}]
|
||||
@ -7131,17 +7144,8 @@ fun! s:NetrwMarkFileCopy(islocal,...)
|
||||
" call Dret("s:NetrwMarkFileCopy : lcd failure")
|
||||
return
|
||||
endif
|
||||
if v:version < 704 || (v:version == 704 && !has("patch1107"))
|
||||
call s:NetrwExe("sil !".g:netrw_localrmdir.g:netrw_localrmdiropt." ".s:ShellEscape(tmpdir,1))
|
||||
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
|
||||
if delete(tmpdir,"d")
|
||||
call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103)
|
||||
endif
|
||||
else
|
||||
if s:NetrwLcd(curdir)
|
||||
@ -8718,7 +8722,7 @@ fun! s:NetrwUpload(fname,tgt,...)
|
||||
" -i : turns off interactive prompting from ftp
|
||||
" -n unix : DON'T use <.netrc>, even though it exists
|
||||
" -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)
|
||||
" 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
|
||||
@ -9556,15 +9560,19 @@ fun! s:NetrwWideListing()
|
||||
" fpl: filenames per line
|
||||
" fpc: filenames per column
|
||||
setl ma noro
|
||||
let keepa= @a
|
||||
" call Decho("setl ma noro",'~'.expand("<slnum>"))
|
||||
let b:netrw_cpf= 0
|
||||
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'
|
||||
NetrwKeepj call histdel("/",-1)
|
||||
else
|
||||
let @a= keepa
|
||||
" call Dret("NetrwWideListing")
|
||||
return
|
||||
endif
|
||||
" allow for two spaces to separate columns
|
||||
let b:netrw_cpf= b:netrw_cpf + 2
|
||||
" call Decho("b:netrw_cpf=max_filename_length+2=".b:netrw_cpf,'~'.expand("<slnum>"))
|
||||
|
||||
@ -9592,18 +9600,19 @@ fun! s:NetrwWideListing()
|
||||
if newcolend > line("$") | let newcolend= line("$") | endif
|
||||
let newcolqty= newcolend - newcolstart
|
||||
exe newcolstart
|
||||
" COMBAK: both of the visual-mode using lines below are problematic vis-a-vis @*
|
||||
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
|
||||
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
|
||||
exe "sil! NetrwKeepj ".newcolstart.','.newcolend.'d _'
|
||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt
|
||||
endwhile
|
||||
if has("clipboard")
|
||||
" call Decho("(s:NetrwWideListing) restore @* and @+",'~'.expand("<slnum>"))
|
||||
sil! let @*= keepregstar
|
||||
sil! let @+= keepregplus
|
||||
if @* != keepregstar | sil! let @* = keepregstar | endif
|
||||
if @+ != keepregplus | sil! let @+ = keepregplus | endif
|
||||
endif
|
||||
exe "sil! NetrwKeepj ".w:netrw_bannercnt.',$s/\s\+$//e'
|
||||
NetrwKeepj call histdel("/",-1)
|
||||
@ -9611,6 +9620,7 @@ fun! s:NetrwWideListing()
|
||||
exe 'nno <buffer> <silent> b :call search(''^.\\|\s\s\zs\S'',''bW'')'."\<cr>"
|
||||
" call Decho("NetrwWideListing) setl noma nomod ro",'~'.expand("<slnum>"))
|
||||
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 Dret("NetrwWideListing")
|
||||
return
|
||||
@ -9808,6 +9818,7 @@ fun! s:PerformListing(islocal)
|
||||
exe 'sil NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
|
||||
endif
|
||||
endif
|
||||
|
||||
" remove priority pattern prefix
|
||||
" call Decho("remove priority pattern prefix",'~'.expand("<slnum>"))
|
||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
|
||||
@ -9846,6 +9857,7 @@ fun! s:PerformListing(islocal)
|
||||
" call Decho('exe sil NetrwKeepj '.w:netrw_bannercnt.',$sort!','~'.expand("<slnum>"))
|
||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
|
||||
endif
|
||||
" call Decho("remove leading digits/ (sorting) information from listing",'~'.expand("<slnum>"))
|
||||
exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
|
||||
NetrwKeepj call histdel("/",-1)
|
||||
endif
|
||||
@ -9908,6 +9920,7 @@ fun! s:PerformListing(islocal)
|
||||
" call Decho("exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>"))
|
||||
exe "setl ts=".(g:netrw_maxfilenamelen+1)
|
||||
endif
|
||||
" call Decho("PerformListing buffer:",'~'.expand("<slnum>"))
|
||||
" call DechoBuf(bufnr("%"))
|
||||
|
||||
if exists("s:treecurpos")
|
||||
@ -10943,10 +10956,11 @@ fun! s:LocalListing()
|
||||
|
||||
if g:netrw_sort_by =~# "^t"
|
||||
" 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>"))
|
||||
let t = getftime(filename)
|
||||
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
|
||||
sil! NetrwKeepj put=ftpfile
|
||||
|
||||
@ -11014,9 +11028,10 @@ fun! s:NetrwLocalRename(path) range
|
||||
" call Dfunc("NetrwLocalRename(path<".a:path.">)")
|
||||
|
||||
" preparation for removing multiple files/directories
|
||||
let ykeep = @@
|
||||
let ctr = a:firstline
|
||||
let svpos = winsaveview()
|
||||
let ykeep = @@
|
||||
let ctr = a:firstline
|
||||
let svpos = winsaveview()
|
||||
let all = 0
|
||||
" call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))
|
||||
|
||||
" rename files given by the markfilelist
|
||||
@ -11044,6 +11059,23 @@ fun! s:NetrwLocalRename(path) range
|
||||
let newname = substitute(oldname,subfrom,subto,'')
|
||||
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)
|
||||
endfor
|
||||
call s:NetrwUnmarkList(bufnr("%"),b:netrw_curdir)
|
||||
@ -11067,14 +11099,14 @@ fun! s:NetrwLocalRename(path) range
|
||||
|
||||
NetrwKeepj norm! 0
|
||||
let oldname= s:ComposePath(a:path,curword)
|
||||
" call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
|
||||
" call Decho("oldname<".oldname.">",'~'.expand("<slnum>"))
|
||||
|
||||
call inputsave()
|
||||
let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
|
||||
call inputrestore()
|
||||
|
||||
call rename(oldname,newname)
|
||||
" call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))
|
||||
" call Decho("renaming <".oldname."> to <".newname.">",'~'.expand("<slnum>"))
|
||||
|
||||
let ctr= ctr + 1
|
||||
endwhile
|
||||
@ -11862,6 +11894,9 @@ fun! s:NetrwExe(cmd)
|
||||
" call Decho("exe ".a:cmd,'~'.expand("<slnum>"))
|
||||
exe a:cmd
|
||||
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)
|
||||
endfun
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: Nov 09, 2016
|
||||
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" Version: 16
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
|
@ -3,7 +3,7 @@
|
||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" 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)
|
||||
@ -53,6 +53,23 @@ if !exists("g:rubycomplete_include_objectspace")
|
||||
endif
|
||||
" }}} 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
|
||||
let s:rubycomplete_debug = 0
|
||||
|
||||
@ -103,7 +120,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
|
||||
endif
|
||||
|
||||
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])
|
||||
|
||||
if lnum > enum
|
||||
@ -128,19 +145,28 @@ function! s:IsPosInClassDef(pos)
|
||||
return ret
|
||||
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)
|
||||
let stopline = 1
|
||||
let vtp = ''
|
||||
let pos = getpos('.')
|
||||
let curpos = getpos('.')
|
||||
let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
|
||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
||||
if lnum != 0 && lcol != 0
|
||||
call setpos('.',pos)
|
||||
call setpos('.',curpos)
|
||||
let str = getline(lnum)
|
||||
let vtp = substitute(str,sstr,'\1','')
|
||||
return vtp
|
||||
endif
|
||||
call setpos('.',pos)
|
||||
call setpos('.',curpos)
|
||||
let ctors = '\(now\|new\|open\|get_instance'
|
||||
if exists('g:rubycomplete_rails') && g:rubycomplete_rails == 1 && s:rubycomplete_rails_loaded == 1
|
||||
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 sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
|
||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
||||
if lnum != 0 && lcol != 0
|
||||
let str = matchstr(getline(lnum),fstr,lcol)
|
||||
let pos = searchpos(sstr,'bW')
|
||||
while pos != [0,0] && s:IsInComment(pos)
|
||||
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*','','')
|
||||
|
||||
call setpos('.',pos)
|
||||
@ -174,7 +204,7 @@ function! s:GetRubyVarType(v)
|
||||
end
|
||||
return ''
|
||||
endif
|
||||
call setpos('.',pos)
|
||||
call setpos('.',curpos)
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
@ -671,11 +701,10 @@ class VimRubyCompletion
|
||||
methods.delete_if { |c| c.match( /'/ ) }
|
||||
end
|
||||
|
||||
when /^::([A-Z][^:\.\(]*)$/ # Absolute Constant or class methods
|
||||
when /^::([A-Z][^:\.\(]*)?$/ # Absolute Constant or class methods
|
||||
dprint "const or cls"
|
||||
receiver = $1
|
||||
methods = Object.constants
|
||||
methods.grep(/^#{receiver}/).collect{|e| "::" + e}
|
||||
methods = Object.constants.collect{ |c| c.to_s }.grep(/^#{receiver}/)
|
||||
|
||||
when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
|
||||
receiver = $1
|
||||
@ -684,13 +713,13 @@ class VimRubyCompletion
|
||||
load_buffer_class( receiver )
|
||||
load_buffer_module( receiver )
|
||||
begin
|
||||
classes = eval("#{receiver}.constants")
|
||||
#methods = eval("#{receiver}.methods")
|
||||
constants = eval("#{receiver}.constants").collect{ |c| c.to_s }.grep(/^#{message}/)
|
||||
methods = eval("#{receiver}.methods").collect{ |m| m.to_s }.grep(/^#{message}/)
|
||||
rescue Exception
|
||||
dprint "exception: %s" % $!
|
||||
constants = []
|
||||
methods = []
|
||||
end
|
||||
methods.grep(/^#{message}/).collect{|e| receiver + "::" + e}
|
||||
|
||||
when /^(:[^:.]+)\.([^.]*)$/ # Symbol
|
||||
dprint "symbol"
|
||||
|
@ -1,13 +1,13 @@
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Apr 17, 2013
|
||||
" Version: 29
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 32
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
"
|
||||
" 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,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@ -22,7 +22,7 @@
|
||||
if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v29"
|
||||
let g:loaded_tar= "v32"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
@ -48,6 +48,9 @@ endif
|
||||
if !exists("g:tar_writeoptions")
|
||||
let g:tar_writeoptions= "uf"
|
||||
endif
|
||||
if !exists("g:tar_delfile")
|
||||
let g:tar_delfile="--delete -f"
|
||||
endif
|
||||
if !exists("g:netrw_cygwin")
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
||||
@ -109,6 +112,7 @@ fun! tar#Browse(tarfile)
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
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'
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse")
|
||||
@ -119,6 +123,7 @@ fun! tar#Browse(tarfile)
|
||||
if a:tarfile !~# '^\a\+://'
|
||||
" if it's an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
|
||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||
endif
|
||||
let &report= repkeep
|
||||
@ -152,12 +157,27 @@ fun! tar#Browse(tarfile)
|
||||
" assuming cygwin
|
||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||
endif
|
||||
|
||||
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." - ")
|
||||
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'
|
||||
" 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." - "
|
||||
@ -184,7 +204,7 @@ fun! tar#Browse(tarfile)
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
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!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
keepj sil! %d
|
||||
@ -197,8 +217,13 @@ fun! tar#Browse(tarfile)
|
||||
return
|
||||
endif
|
||||
|
||||
" set up maps supported for tar
|
||||
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
|
||||
" 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')
|
||||
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
|
||||
wincmd _
|
||||
endif
|
||||
@ -267,7 +293,7 @@ fun! tar#Read(fname,mode)
|
||||
if fname =~ '\.bz2$' && executable("bzcat")
|
||||
let decmp= "|bzcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.gz$' && executable("zcat")
|
||||
elseif fname =~ '\.t\=gz$' && executable("zcat")
|
||||
let decmp= "|zcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.lzma$' && executable("lzcat")
|
||||
@ -291,20 +317,29 @@ fun! tar#Read(fname,mode)
|
||||
endif
|
||||
|
||||
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
|
||||
elseif tarfile =~# '\.\(gz\|tgz\)$'
|
||||
let gzip_command = s:get_gzip_command(tarfile)
|
||||
" 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 =~# '\.\(gz\)$'
|
||||
exe "sil! r! gzip -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$'
|
||||
" 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
|
||||
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
|
||||
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
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
@ -348,13 +383,14 @@ fun! tar#Write(fname)
|
||||
" sanity checks
|
||||
if !executable(g:tar_cmd)
|
||||
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
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
endif
|
||||
if !exists("*mkdir")
|
||||
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
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
@ -375,6 +411,7 @@ fun! tar#Write(fname)
|
||||
exe "cd ".fnameescape(tmpdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E344/
|
||||
redraw!
|
||||
" call Decho("***error*** (tar#Write) cannot cd to temporary directory")
|
||||
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
@ -393,8 +430,6 @@ fun! tar#Write(fname)
|
||||
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
|
||||
let gzip_command = s:get_gzip_command(tarfile)
|
||||
|
||||
" handle compressed archives
|
||||
if tarfile =~# '\.bz2'
|
||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||
@ -402,12 +437,12 @@ fun! tar#Write(fname)
|
||||
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
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 compress= "gzip -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
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 compress= "gzip -- ".shellescape(tarfile,0)
|
||||
let tgz = 1
|
||||
@ -427,6 +462,7 @@ fun! tar#Write(fname)
|
||||
|
||||
if v:shell_error != 0
|
||||
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
|
||||
else
|
||||
|
||||
@ -459,10 +495,11 @@ fun! tar#Write(fname)
|
||||
endif
|
||||
|
||||
" delete old file from tarfile
|
||||
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
" call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||
call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
if v:shell_error != 0
|
||||
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
|
||||
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))
|
||||
if v:shell_error != 0
|
||||
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
|
||||
elseif exists("compress")
|
||||
" call Decho("call system(".compress.")")
|
||||
@ -486,11 +524,11 @@ fun! tar#Write(fname)
|
||||
if s:tblfile_{winnr()} =~ '^\a\+://'
|
||||
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
||||
let tblfile= s:tblfile_{winnr()}
|
||||
1split|enew
|
||||
1split|noswapfile enew
|
||||
let binkeep= &l:binary
|
||||
let eikeep = &ei
|
||||
set binary ei=all
|
||||
exe "e! ".fnameescape(tarfile)
|
||||
exe "noswapfile e! ".fnameescape(tarfile)
|
||||
call netrw#NetWrite(tblfile)
|
||||
let &ei = eikeep
|
||||
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)
|
||||
diffthis
|
||||
wincmd v
|
||||
exe "e ".fnameescape(fname)
|
||||
exe "noswapfile e ".fnameescape(fname)
|
||||
diffthis
|
||||
else
|
||||
redraw!
|
||||
@ -533,6 +571,119 @@ fun! tar#Diff(userfname,fname)
|
||||
" call Dret("tar#Diff")
|
||||
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
|
||||
fun! s:Rmdir(fname)
|
||||
@ -587,10 +738,7 @@ fun! tar#Vimuntar(...)
|
||||
|
||||
" if necessary, decompress the tarball; then, extract it
|
||||
if tartail =~ '\.tgz'
|
||||
let gzip_command = s:get_gzip_command(tarfile)
|
||||
if executable(gzip_command)
|
||||
silent exe "!" . gzip_command . " -d ".shellescape(tartail)
|
||||
elseif executable("gunzip")
|
||||
if executable("gunzip")
|
||||
silent exe "!gunzip ".shellescape(tartail)
|
||||
elseif executable("gzip")
|
||||
silent exe "!gzip -d ".shellescape(tartail)
|
||||
@ -628,28 +776,6 @@ fun! tar#Vimuntar(...)
|
||||
" call Dret("tar#Vimuntar")
|
||||
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
|
||||
let &cpo= s:keepcpo
|
||||
|
@ -1,6 +1,6 @@
|
||||
" Vim plugin for formatting XML
|
||||
" Last Change: 2019 Oct 24
|
||||
" Version: 0.2
|
||||
" Last Change: 2020 Jan 06
|
||||
" Version: 0.3
|
||||
" Author: Christian Brabandt <cb@256bit.org>
|
||||
" Repository: https://github.com/chrisbra/vim-xml-ftplugin
|
||||
" License: VIM License
|
||||
@ -15,7 +15,7 @@ let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Main function: Format the input {{{1
|
||||
func! xmlformat#Format()
|
||||
func! xmlformat#Format() abort
|
||||
" only allow reformatting through the gq command
|
||||
" (e.g. Vim is in normal mode)
|
||||
if mode() != 'n'
|
||||
@ -40,14 +40,16 @@ func! xmlformat#Format()
|
||||
continue
|
||||
elseif line !~# '<[/]\?[^>]*>'
|
||||
let nextmatch = match(list, '<[/]\?[^>]*>', current)
|
||||
let line .= join(list[(current + 1):(nextmatch-1)], "\n")
|
||||
call remove(list, current+1, nextmatch-1)
|
||||
if nextmatch > -1
|
||||
let line .= ' '. join(list[(current + 1):(nextmatch-1)], " ")
|
||||
call remove(list, current+1, nextmatch-1)
|
||||
endif
|
||||
endif
|
||||
" split on `>`, but don't split on very first opening <
|
||||
" this means, items can be like ['<tag>', 'tag content</tag>']
|
||||
for item in split(line, '.\@<=[>]\zs')
|
||||
if s:EndTag(item)
|
||||
let s:indent = s:DecreaseIndent()
|
||||
call s:DecreaseIndent()
|
||||
call add(result, s:Indent(item))
|
||||
elseif s:EmptyTag(lastitem)
|
||||
call add(result, s:Indent(item))
|
||||
@ -59,13 +61,23 @@ func! xmlformat#Format()
|
||||
" Simply split on '<', if there is one,
|
||||
" but reformat according to &textwidth
|
||||
let t=split(item, '.<\@=\zs')
|
||||
|
||||
" if the content fits well within a single line, add it there
|
||||
" 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])
|
||||
let s:indent = s:DecreaseIndent()
|
||||
call s:DecreaseIndent()
|
||||
endif
|
||||
"for y in t[1:]
|
||||
let result+=s:FormatContent(t[1:])
|
||||
@ -97,15 +109,15 @@ func! xmlformat#Format()
|
||||
return 0
|
||||
endfunc
|
||||
" 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*$'
|
||||
endfunc
|
||||
" 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)
|
||||
endfu
|
||||
" Return item trimmed from leading whitespace {{{1
|
||||
func! s:Trim(item)
|
||||
func! s:Trim(item) abort
|
||||
if exists('*trim')
|
||||
return trim(a:item)
|
||||
else
|
||||
@ -113,44 +125,53 @@ func! s:Trim(item)
|
||||
endif
|
||||
endfunc
|
||||
" 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)
|
||||
return a:tag =~? '^\s*<[^/?]' && !is_comment
|
||||
endfunc
|
||||
" Check if tag is a Comment start {{{1
|
||||
func! s:IsComment(tag)
|
||||
func! s:IsComment(tag) abort
|
||||
return a:tag =~? '<!--'
|
||||
endfunc
|
||||
" Remove one level of indentation {{{1
|
||||
func! s:DecreaseIndent()
|
||||
return (s:indent > 0 ? s:indent - 1 : 0)
|
||||
func! s:DecreaseIndent() abort
|
||||
let s:indent = (s:indent > 0 ? s:indent - 1 : 0)
|
||||
endfunc
|
||||
" Check if tag is a closing tag </tag> {{{1
|
||||
func! s:EndTag(tag)
|
||||
func! s:EndTag(tag) abort
|
||||
return a:tag =~? '^\s*</'
|
||||
endfunc
|
||||
" Check that the tag is actually a tag and not {{{1
|
||||
" something like "foobar</foobar>"
|
||||
func! s:IsTag(tag)
|
||||
func! s:IsTag(tag) abort
|
||||
return s:Trim(a:tag)[0] == '<'
|
||||
endfunc
|
||||
" Check if tag is empty <tag/> {{{1
|
||||
func! s:EmptyTag(tag)
|
||||
func! s:EmptyTag(tag) abort
|
||||
return a:tag =~ '/>\s*$'
|
||||
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)
|
||||
func! s:FormatContent(list) abort
|
||||
let result=[]
|
||||
let limit = 80
|
||||
if &textwidth > 0
|
||||
let limit = &textwidth
|
||||
endif
|
||||
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, '')
|
||||
|
@ -1,10 +1,10 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Sep 13, 2016
|
||||
" Version: 28
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" Date: Jan 07, 2020
|
||||
" Version: 30
|
||||
" Maintainer: Charles E Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
|
||||
" 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,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@ -20,7 +20,7 @@
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v28"
|
||||
let g:loaded_zip= "v30"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
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
|
||||
" (zipped files have a leading PK as a "magic cookie")
|
||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
||||
exe "noautocmd e ".fnameescape(a:zipfile)
|
||||
exe "noswapfile noautocmd noswapfile e ".fnameescape(a:zipfile)
|
||||
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
||||
return
|
||||
" else " Decho
|
||||
@ -141,8 +141,11 @@ fun! zip#Browse(zipfile)
|
||||
|
||||
" Maps associated with zip plugin
|
||||
setlocal noma nomod ro
|
||||
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||
noremap <silent> <buffer> x :call zip#Extract()<cr>
|
||||
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||
noremap <silent> <buffer> x :call zip#Extract()<cr>
|
||||
if &mouse != ""
|
||||
noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>ZipBrowseSelect()<cr>
|
||||
endif
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("zip#Browse")
|
||||
@ -175,17 +178,17 @@ fun! s:ZipBrowseSelect()
|
||||
|
||||
" get zipfile to the new-window
|
||||
let zipfile = b:zipfile
|
||||
let curfile= expand("%")
|
||||
let curfile = expand("%")
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("curfile<".curfile.">")
|
||||
|
||||
new
|
||||
noswapfile new
|
||||
if !exists("g:zip_nomax") || g:zip_nomax == 0
|
||||
wincmd _
|
||||
endif
|
||||
let s:zipfile_{winnr()}= curfile
|
||||
" call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
|
||||
exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
|
||||
exe "noswapfile e ".fnameescape("zipfile:".zipfile.'::'.fname)
|
||||
filetype detect
|
||||
|
||||
let &report= repkeep
|
||||
@ -339,7 +342,7 @@ fun! zip#Write(fname)
|
||||
let binkeep= &binary
|
||||
let eikeep = &ei
|
||||
set binary ei=all
|
||||
exe "e! ".fnameescape(zipfile)
|
||||
exe "noswapfile e! ".fnameescape(zipfile)
|
||||
call netrw#NetWrite(netzipfile)
|
||||
let &ei = eikeep
|
||||
let &binary = binkeep
|
||||
|
16
runtime/compiler/eslint.vim
Normal file
16
runtime/compiler/eslint.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Vim compiler file
|
||||
" Compiler: ESLint for JavaScript
|
||||
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
|
||||
" Last Change: 2020 May 17
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "eslint"
|
||||
|
||||
if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=eslint\ --format\ compact
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#
|
16
runtime/compiler/standard.vim
Normal file
16
runtime/compiler/standard.vim
Normal file
@ -0,0 +1,16 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Standard for JavaScript
|
||||
" Maintainer: Romain Lafourcade <romainlafourcade@gmail.com>
|
||||
" Last Change: 2020 May 17
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "standard"
|
||||
|
||||
if exists(":CompilerSet") != 2
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=standard
|
||||
CompilerSet errorformat=%f:\ line\ %l\\,\ col\ %c\\,\ %m,%-G%.%#
|
@ -2,30 +2,31 @@
|
||||
" Warning: This also deletes all menus defined by the user!
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2019 Sep 11
|
||||
" Last Change: 2019 Dec 10
|
||||
|
||||
aunmenu *
|
||||
tlunmenu *
|
||||
|
||||
silent! unlet did_install_default_menus
|
||||
silent! unlet did_install_syntax_menu
|
||||
if exists("did_menu_trans")
|
||||
unlet! g:did_install_default_menus
|
||||
unlet! g:did_install_syntax_menu
|
||||
|
||||
if exists('g:did_menu_trans')
|
||||
menutrans clear
|
||||
unlet did_menu_trans
|
||||
unlet g:did_menu_trans
|
||||
endif
|
||||
|
||||
silent! unlet find_help_dialog
|
||||
unlet! g:find_help_dialog
|
||||
|
||||
silent! unlet menutrans_help_dialog
|
||||
silent! unlet menutrans_path_dialog
|
||||
silent! unlet menutrans_tags_dialog
|
||||
silent! unlet menutrans_textwidth_dialog
|
||||
silent! unlet menutrans_fileformat_dialog
|
||||
silent! unlet menutrans_fileformat_choices
|
||||
silent! unlet menutrans_no_file
|
||||
silent! unlet menutrans_set_lang_to
|
||||
silent! unlet menutrans_spell_change_ARG_to
|
||||
silent! unlet menutrans_spell_add_ARG_to_word_list
|
||||
silent! unlet menutrans_spell_ignore_ARG
|
||||
unlet! g:menutrans_fileformat_choices
|
||||
unlet! g:menutrans_fileformat_dialog
|
||||
unlet! g:menutrans_help_dialog
|
||||
unlet! g:menutrans_no_file
|
||||
unlet! g:menutrans_path_dialog
|
||||
unlet! g:menutrans_set_lang_to
|
||||
unlet! g:menutrans_spell_add_ARG_to_word_list
|
||||
unlet! g:menutrans_spell_change_ARG_to
|
||||
unlet! g:menutrans_spell_ignore_ARG
|
||||
unlet! g:menutrans_tags_dialog
|
||||
unlet! g:menutrans_textwidth_dialog
|
||||
|
||||
" vim: set sw=2 :
|
||||
|
@ -64,6 +64,7 @@ DOCS = \
|
||||
os_amiga.txt \
|
||||
os_beos.txt \
|
||||
os_dos.txt \
|
||||
os_haiku.txt \
|
||||
os_mac.txt \
|
||||
os_mint.txt \
|
||||
os_msdos.txt \
|
||||
@ -140,6 +141,7 @@ DOCS = \
|
||||
usr_43.txt \
|
||||
usr_44.txt \
|
||||
usr_45.txt \
|
||||
usr_46.txt \
|
||||
usr_90.txt \
|
||||
usr_toc.txt \
|
||||
various.txt \
|
||||
@ -149,6 +151,7 @@ DOCS = \
|
||||
version7.txt \
|
||||
version8.txt \
|
||||
vi_diff.txt \
|
||||
vim9.txt \
|
||||
visual.txt \
|
||||
windows.txt \
|
||||
workshop.txt
|
||||
@ -203,6 +206,7 @@ HTMLS = \
|
||||
os_amiga.html \
|
||||
os_beos.html \
|
||||
os_dos.html \
|
||||
os_haiku.html \
|
||||
os_mac.html \
|
||||
os_mint.html \
|
||||
os_msdos.html \
|
||||
@ -279,6 +283,7 @@ HTMLS = \
|
||||
usr_43.html \
|
||||
usr_44.html \
|
||||
usr_45.html \
|
||||
usr_46.html \
|
||||
usr_90.html \
|
||||
usr_toc.html \
|
||||
various.html \
|
||||
@ -289,6 +294,7 @@ HTMLS = \
|
||||
version8.html \
|
||||
vi_diff.html \
|
||||
vimindex.html \
|
||||
vim9.html \
|
||||
visual.html \
|
||||
windows.html \
|
||||
workshop.html
|
||||
@ -313,7 +319,11 @@ CONVERTED = \
|
||||
evim-ru.UTF-8.1 \
|
||||
vimdiff-ru.UTF-8.1 \
|
||||
vimtutor-ru.UTF-8.1 \
|
||||
xxd-ru.UTF-8.1
|
||||
xxd-ru.UTF-8.1 \
|
||||
vim-tr.UTF-8.1 \
|
||||
evim-tr.UTF-8.1 \
|
||||
vimdiff-tr.UTF-8.1 \
|
||||
vimtutor-tr.UTF-8.1
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o .txt .html
|
||||
@ -323,10 +333,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
|
||||
# compiled and installed. Supports multiple languages.
|
||||
vimtags: $(DOCS)
|
||||
@if command -v $(VIMEXE); then \
|
||||
$(VIMEXE) --clean -eX -u doctags.vim >/dev/null && \
|
||||
echo "help tags updated"; \
|
||||
else echo "vim executable $(VIMEXE) not found; help tags not updated"; fi
|
||||
@$(VIMEXE) --clean -esX -V1 -u doctags.vim
|
||||
|
||||
# Use "doctags" to generate the tags file. Only works for English!
|
||||
tags: doctags $(DOCS)
|
||||
@ -423,6 +430,9 @@ os_beos.txt:
|
||||
os_dos.txt:
|
||||
touch os_dos.txt
|
||||
|
||||
os_haiku.txt:
|
||||
touch os_haiku.txt
|
||||
|
||||
os_mac.txt:
|
||||
touch os_mac.txt
|
||||
|
||||
@ -505,3 +515,15 @@ vimtutor-ru.UTF-8.1: vimtutor-ru.1
|
||||
|
||||
xxd-ru.UTF-8.1: xxd-ru.1
|
||||
iconv -f KOI8-R -t utf-8 $< >$@
|
||||
|
||||
vim-tr.UTF-8.1: vim-tr.1
|
||||
iconv -f latin5 -t utf-8 $< >$@
|
||||
|
||||
evim-tr.UTF-8.1: evim-tr.1
|
||||
iconv -f latin5 -t utf-8 $< >$@
|
||||
|
||||
vimdiff-tr.UTF-8.1: vimdiff-tr.1
|
||||
iconv -f latin5 -t utf-8 $< >$@
|
||||
|
||||
vimtutor-tr.UTF-8.1: vimtutor-tr.1
|
||||
iconv -f latin5 -t utf-8 $< >$@
|
||||
|
@ -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
|
||||
|
@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.1. Last change: 2019 Sep 16
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2020 Jun 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -374,9 +374,13 @@ Name triggered by ~
|
||||
|
||||
|MenuPopup| just before showing the popup menu
|
||||
|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"
|
||||
|SigUSR1| after the SIGUSR1 signal has been detected
|
||||
|
||||
|
||||
The alphabetical list of autocommand events: *autocmd-events-abc*
|
||||
@ -387,6 +391,8 @@ BufAdd or BufCreate Just after creating a new buffer which is
|
||||
to the buffer list.
|
||||
Also used just after a buffer in the buffer
|
||||
list has been renamed.
|
||||
Not triggered for the initial buffers created
|
||||
during startup.
|
||||
The BufCreate event is for historic reasons.
|
||||
NOTE: When this autocommand is executed, the
|
||||
current buffer "%" may be different from the
|
||||
@ -587,8 +593,8 @@ ColorSchemePre Before loading a color scheme. |:colorscheme|
|
||||
CompleteChanged *CompleteChanged*
|
||||
After each time the Insert mode completion
|
||||
menu changed. Not fired on popup menu hide,
|
||||
use |CompleteDone| for that. Never triggered
|
||||
recursively.
|
||||
use |CompleteDonePre| or |CompleteDone| for
|
||||
that. Never triggered recursively.
|
||||
|
||||
Sets these |v:event| keys:
|
||||
completed_item See |complete-items|.
|
||||
@ -604,10 +610,22 @@ CompleteChanged *CompleteChanged*
|
||||
The size and position of the popup are also
|
||||
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 After Insert mode completion is done. Either
|
||||
when something was completed or abandoning
|
||||
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
|
||||
information about the completed item.
|
||||
|
||||
@ -637,7 +655,7 @@ CursorHold When the user doesn't press a key for the time
|
||||
Hint: to force an update of the status lines
|
||||
use: >
|
||||
:let &ro = &ro
|
||||
< {only on Amiga, Unix, Win32, MSDOS and all GUI
|
||||
< {only on Amiga, Unix, Win32 and all GUI
|
||||
versions}
|
||||
*CursorHoldI*
|
||||
CursorHoldI Just like CursorHold, but in Insert mode.
|
||||
@ -1136,11 +1154,14 @@ TextYankPost After text has been yanked or deleted in the
|
||||
register.
|
||||
regtype Type of the register, see
|
||||
|getregtype()|.
|
||||
visual True if the operation is
|
||||
performed on a |Visual| area.
|
||||
Not triggered when |quote_| is used nor when
|
||||
called recursively.
|
||||
It is not allowed to change the buffer text,
|
||||
see |textlock|.
|
||||
{only when compiled with the +eval feature}
|
||||
|
||||
*User*
|
||||
User Never executed automatically. To be used for
|
||||
autocommands that are only executed with
|
||||
@ -1149,6 +1170,15 @@ User Never executed automatically. To be used for
|
||||
used while there are no matching autocommands,
|
||||
you will get an error. If you don't want
|
||||
that, define a dummy autocommand yourself.
|
||||
|
||||
*SigUSR1*
|
||||
SigUSR1 After the SIGUSR1 signal has been detected.
|
||||
Could be used if other ways of notifying Vim
|
||||
are not feasible. E.g. to check for the
|
||||
result of a build that takes a long time, or
|
||||
when a motion sensor is triggered.
|
||||
{only on Unix}
|
||||
|
||||
*UserGettingBored*
|
||||
UserGettingBored When the user presses the same key 42 times.
|
||||
Just kidding! :-)
|
||||
@ -1287,8 +1317,8 @@ The pattern is interpreted like mostly used in file names:
|
||||
[^ch] match any character but 'c' and 'h'
|
||||
|
||||
Note that for all systems the '/' character is used for path separator (even
|
||||
MS-DOS and OS/2). This was done because the backslash is difficult to use
|
||||
in a pattern and to make the autocommands portable across different systems.
|
||||
for MS-Windows). This was done because the backslash is difficult to use in a
|
||||
pattern and to make the autocommands portable across different systems.
|
||||
|
||||
It is possible to use |pattern| items, but they may not work as expected,
|
||||
because of the translation done for the above.
|
||||
|
@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 8.1. Last change: 2019 Sep 28
|
||||
*change.txt* For Vim version 8.2. Last change: 2020 Jun 04
|
||||
|
||||
|
||||
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|).
|
||||
|
||||
*v_r*
|
||||
{Visual}["x]r{char} Replace all selected characters by {char}.
|
||||
{Visual}r{char} Replace all selected characters by {char}.
|
||||
|
||||
*v_C*
|
||||
{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
|
||||
problems, the temp file is owned by the setuid user but the filter command
|
||||
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.
|
||||
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
|
||||
For MS-Windows the GetTempFileName() system function is used.
|
||||
@ -636,6 +636,8 @@ For other systems the tmpnam() library function is used.
|
||||
|cmdline-ranges|.
|
||||
|
||||
See |:s_flags| for [flags].
|
||||
The delimiter doesn't need to be /, see
|
||||
|pattern-delimiter|.
|
||||
|
||||
:[range]s[ubstitute] [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:
|
||||
"\/{string}/" and "\?{string}?" do the same as "//{string}/r".
|
||||
"\&{string}&" does the same as "//{string}/".
|
||||
*E146*
|
||||
*pattern-delimiter* *E146*
|
||||
Instead of the '/' which surrounds the pattern and replacement string, you
|
||||
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
|
||||
@ -994,9 +996,9 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
5. Copying and moving text *copy-move*
|
||||
|
||||
*quote*
|
||||
"{a-zA-Z0-9.%#:-"} Use register {a-zA-Z0-9.%#:-"} for next delete, yank
|
||||
or put (use uppercase character to append with
|
||||
delete and yank) ({.%#:} only work with put).
|
||||
"{register} Use {register} for next delete, yank or put. Use
|
||||
an uppercase character to append with delete and yank.
|
||||
Registers ".", "%", "#" and ":" only work with put.
|
||||
|
||||
*:reg* *:registers*
|
||||
:reg[isters] Display the type and contents of all numbered and
|
||||
@ -1456,7 +1458,7 @@ text. Put it in your autoload directory, e.g. ~/.vim/autoload/format.vim: >
|
||||
func! format#Format()
|
||||
" only reformat on explicit gq command
|
||||
if mode() != 'n'
|
||||
" fall back to Vims internal reformatting
|
||||
" fall back to Vim's internal reformatting
|
||||
return 1
|
||||
endif
|
||||
let lines = getline(v:lnum, v:lnum + v:count - 1)
|
||||
@ -1686,6 +1688,10 @@ B When joining lines, don't insert a space between two multi-byte
|
||||
characters. Overruled by the 'M' flag.
|
||||
1 Don't break a line after a one-letter word. It's broken before it
|
||||
instead (if possible).
|
||||
] Respect textwidth rigorously. With this flag set, no line can be
|
||||
longer than textwidth, unless line-break-prohibition rules make this
|
||||
impossible. Mainly for CJK scripts and works only if 'encoding' is
|
||||
"utf-8".
|
||||
j Where it makes sense, remove a comment leader when joining lines. For
|
||||
example, joining:
|
||||
int i; // the index ~
|
||||
|
@ -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: 2020 Jun 01
|
||||
|
||||
|
||||
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".
|
||||
|
||||
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*
|
||||
|
||||
"mode" can be: *channel-mode*
|
||||
@ -223,7 +226,7 @@ ch_open() fails quickly. On MS-Windows "waittime" applies.
|
||||
*E898* *E901* *E902*
|
||||
|
||||
If there is an error reading or writing a channel it will be closed.
|
||||
*E630* *E631*
|
||||
*E630* *E631*
|
||||
|
||||
==============================================================================
|
||||
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.,
|
||||
"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|.
|
||||
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
|
||||
"callback" option: >
|
||||
let job = job_start(command, {"callback": "MyHandler"})
|
||||
let job = job_start(command, {"callback": "MyHandler"})
|
||||
|
||||
Depending on the system, starting a job can put Vim in the background, the
|
||||
started job gets the focus. To avoid that, use the `foreground()` function.
|
||||
@ -1229,8 +1235,8 @@ If you want to type input for the job in a Vim window you have a few options:
|
||||
- Use a terminal window. This works well if what you type goes directly to
|
||||
the job and the job output is directly displayed in the window.
|
||||
See |terminal-window|.
|
||||
- Use a prompt window. This works well when entering a line for the job in Vim
|
||||
while displaying (possibly filtered) output from the job.
|
||||
- Use a window with a prompt buffer. This works well when entering a line for
|
||||
the job in Vim while displaying (possibly filtered) output from the job.
|
||||
|
||||
A prompt buffer is created by setting 'buftype' to "prompt". You would
|
||||
normally only do that in a newly created buffer.
|
||||
@ -1264,5 +1270,46 @@ Any command that starts Insert mode, such as "a", "i", "A" and "I", will move
|
||||
the cursor to the last line. "A" will move to the end of the line, "I" to the
|
||||
start of the line.
|
||||
|
||||
Here is an example for Unix. It starts a shell in the background and prompts
|
||||
for the next shell command. Output from the shell is displayed above the
|
||||
prompt. >
|
||||
|
||||
" Create a channel log so we can see what happens.
|
||||
call ch_logfile('logfile', 'w')
|
||||
|
||||
" Function handling a line of text has been typed.
|
||||
func TextEntered(text)
|
||||
" Send the text to a shell with Enter appended.
|
||||
call ch_sendraw(g:shell_job, a:text .. "\n")
|
||||
endfunc
|
||||
|
||||
" Function handling output from the shell: Added above the prompt.
|
||||
func GotOutput(channel, msg)
|
||||
call append(line("$") - 1, "- " . a:msg)
|
||||
endfunc
|
||||
|
||||
" Function handling the shell exist: close the window.
|
||||
func JobExit(job, status)
|
||||
quit!
|
||||
endfunc
|
||||
|
||||
" Start a shell in the background.
|
||||
let shell_job = job_start(["/bin/sh"], #{
|
||||
\ out_cb: function('GotOutput'),
|
||||
\ err_cb: function('GotOutput'),
|
||||
\ exit_cb: function('JobExit'),
|
||||
\ })
|
||||
let shell_ch = job_getchannel(shell_job)
|
||||
|
||||
new
|
||||
set buftype=prompt
|
||||
let buf = bufnr('')
|
||||
call prompt_setcallback(buf, function("TextEntered"))
|
||||
eval prompt_setprompt(buf, "shell command: ")
|
||||
|
||||
" start accepting shell commands
|
||||
startinsert
|
||||
<
|
||||
|
||||
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
|
@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 8.1. Last change: 2019 Sep 27
|
||||
*cmdline.txt* For Vim version 8.2. Last change: 2020 Apr 23
|
||||
|
||||
|
||||
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
|
||||
digits are not considered for mapping. This works the same
|
||||
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.
|
||||
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*
|
||||
CTRL-Q Same as CTRL-V. But with some terminals it is used for
|
||||
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*
|
||||
<Left> cursor left
|
||||
*c_<Right>* *c_Right*
|
||||
@ -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
|
||||
matching files with the next.
|
||||
|
||||
*complete-script-local-functions*
|
||||
When completing user function names, prepend "s:" to find script-local
|
||||
functions.
|
||||
|
||||
*suffixes*
|
||||
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,
|
||||
@ -579,6 +590,7 @@ followed by another Vim command:
|
||||
:command
|
||||
:cscope
|
||||
:debug
|
||||
:eval
|
||||
:folddoopen
|
||||
:folddoclosed
|
||||
:function
|
||||
@ -603,6 +615,7 @@ followed by another Vim command:
|
||||
:tcl
|
||||
:tcldo
|
||||
:tclfile
|
||||
:terminal
|
||||
:vglobal
|
||||
:windo
|
||||
:write !
|
||||
@ -926,8 +939,7 @@ These modifiers can be given, in this order:
|
||||
directory.
|
||||
:. Reduce file name to be relative to current directory, if
|
||||
possible. File name is unmodified if it is not below the
|
||||
current directory, but on MS-Windows the drive is removed if
|
||||
it is the current drive.
|
||||
current directory.
|
||||
For maximum shortness, use ":~:.".
|
||||
:h Head of the file name (the last component and any separators
|
||||
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
|
||||
on the directory name itself (without trailing slash).
|
||||
When the file name is an absolute path (starts with "/" for
|
||||
Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), that
|
||||
part is not removed. When there is no head (path is relative
|
||||
to current directory) the result is empty.
|
||||
Unix; "x:\" for Win32; "drive:" for Amiga), that part is not
|
||||
removed. When there is no head (path is relative to current
|
||||
directory) the result is empty.
|
||||
:t Tail of the file name (last component of the name). Must
|
||||
precede any :r or :e.
|
||||
: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 "!".
|
||||
|
||||
*filename-backslash*
|
||||
For filesystems that use a backslash as directory separator (MS-DOS, Windows,
|
||||
OS/2), it's a bit difficult to recognize a backslash that is used to escape
|
||||
the special meaning of the next character. The general rule is: If the
|
||||
backslash is followed by a normal file name character, it does not have a
|
||||
special meaning. Therefore "\file\foo" is a valid file name, you don't have
|
||||
to type the backslash twice.
|
||||
For filesystems that use a backslash as directory separator (MS-Windows), it's
|
||||
a bit difficult to recognize a backslash that is used to escape the special
|
||||
meaning of the next character. The general rule is: If the backslash is
|
||||
followed by a normal file name character, it does not have a special meaning.
|
||||
Therefore "\file\foo" is a valid file name, you don't have to type the
|
||||
backslash twice.
|
||||
|
||||
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,
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
@ -12,8 +12,6 @@ For the debugger running in a Vim terminal window see |terminal-debugger|.
|
||||
|
||||
1. Debugger Features |debugger-features|
|
||||
2. Vim Compile Options |debugger-compilation|
|
||||
3. Integrated Debuggers |debugger-integration|
|
||||
|
||||
|
||||
==============================================================================
|
||||
1. Debugger Features *debugger-features*
|
||||
@ -114,10 +112,10 @@ other settings apply.
|
||||
==============================================================================
|
||||
2. Vim Compile Options *debugger-compilation*
|
||||
|
||||
The debugger features were added explicitly for use with Sun's Visual
|
||||
WorkShop Integrated Programming Environment (ipe). However, they were done
|
||||
in as generic a manner as possible so that integration with other debuggers
|
||||
could also use some or all of the tools used with Sun's ipe.
|
||||
The debugger features were added for use with Sun's Visual WorkShop Integrated
|
||||
Programming Environment (ipe). However, they were done in as generic a manner
|
||||
as possible so that integration with other debuggers could also use these
|
||||
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
|
||||
Balloon Evaluation FEAT_BEVAL
|
||||
|
||||
The first integration with a full IPE/IDE was with Sun Visual WorkShop. To
|
||||
compile a gvim which interfaces with VWS set the following flag, which sets
|
||||
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.
|
||||
The support specifically for Sun Visual WorkShop has been removed, since the
|
||||
product no longer exists.
|
||||
|
||||
For Sun NetBeans support see |netbeans|.
|
||||
|
||||
|
||||
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
|
||||
@ -151,7 +151,8 @@ VIM IS... NOT *design-not*
|
||||
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
|
||||
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
|
||||
being less consistent over all platforms. But functional GUI features are
|
||||
welcomed.
|
||||
@ -195,10 +196,14 @@ problems for existing patches. Only use them for new and changed code.
|
||||
|
||||
Comments ~
|
||||
|
||||
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
|
||||
change, it is allowed to use // comments. Especially when it comes after
|
||||
code:
|
||||
Traditionally Vim uses /* comments */. We intend to keep it that way
|
||||
for file and function headers and larger blocks of code, E.g.:
|
||||
/*
|
||||
* 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
|
||||
|
||||
Enums ~
|
||||
|
@ -1,4 +1,4 @@
|
||||
*diff.txt* For Vim version 8.1. Last change: 2019 Nov 10
|
||||
*diff.txt* For Vim version 8.2. Last change: 2019 Nov 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@ -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
|
||||
|
@ -2,5 +2,12 @@
|
||||
"
|
||||
" Usage: vim -eX -u doctags.vim
|
||||
|
||||
helptags ++t .
|
||||
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 Sep 27
|
||||
*editing.txt* For Vim version 8.2. Last change: 2020 Jun 05
|
||||
|
||||
|
||||
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
|
||||
as the original file with 'backupext' appended. The default "~" is a bit
|
||||
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
|
||||
(e.g., messydos or crossdos) or when the 'shortname' option is on. The
|
||||
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*
|
||||
[count]gF Same as "gf", except if a number follows the file
|
||||
name, then the cursor is positioned on that line in
|
||||
the file. The file name and the number must be
|
||||
separated by a non-filename (see 'isfname') and
|
||||
non-numeric character. White space between the
|
||||
filename, the separator and the number are ignored.
|
||||
the file.
|
||||
The file name and the number must be separated by a
|
||||
non-filename (see 'isfname') and non-numeric
|
||||
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:
|
||||
eval.c:10 ~
|
||||
eval.c @ 20 ~
|
||||
@ -472,6 +475,9 @@ This edits the same file again with 'fileformat' set to "unix". >
|
||||
:w ++enc=latin1 newfile
|
||||
This writes the current buffer to "newfile" in latin1 format.
|
||||
|
||||
The message given when writing a file will show "[converted]" when
|
||||
'fileencoding' or the value specified with ++enc differs from 'encoding'.
|
||||
|
||||
There may be several ++opt arguments, separated by white space. They must all
|
||||
appear before any |+cmd| argument.
|
||||
|
||||
@ -519,9 +525,9 @@ The 'fileformat' option sets the <EOL> style for a file:
|
||||
Previously 'textmode' was used. It is obsolete now.
|
||||
|
||||
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
|
||||
interpreted as the <EOL>. Note that when writing the file in DOS format,
|
||||
<CR> characters will be added for each single <NL>. Also see |file-read|.
|
||||
In DOS format (default for Win32), <CR><NL> and <NL> are both interpreted as
|
||||
the <EOL>. Note that when writing the file in DOS format, <CR> characters
|
||||
will be added for each single <NL>. Also see |file-read|.
|
||||
|
||||
When writing a file, the mentioned characters are used for <EOL>. For DOS
|
||||
format <CR><NL> is used. Also see |DOS-format-write|.
|
||||
@ -542,15 +548,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
|
||||
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>
|
||||
<NL> pair (MS-DOS). Only when ALL lines end in <CR><NL>, 'fileformat' is set
|
||||
to "dos", otherwise it is set to "unix". When 'fileformats' includes "mac",
|
||||
and no <NL> characters are found in the file, 'fileformat' is set to "mac".
|
||||
<NL> pair (MS-Windows). Only when ALL lines end in <CR><NL>, 'fileformat' is
|
||||
set to "dos", otherwise it is set to "unix". When 'fileformats' includes
|
||||
"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
|
||||
"[dos format]" is shown to remind you that something unusual is happening. On
|
||||
MS-DOS systems you get the message "[unix format]" if 'fileformat' is set to
|
||||
"unix". On all systems but the Macintosh you get the message "[mac format]"
|
||||
if 'fileformat' is set to "mac".
|
||||
If the 'fileformat' option is set to "dos" on non-MS-Windows systems the
|
||||
message "[dos format]" is shown to remind you that something unusual is
|
||||
happening. On MS-Windows systems you get the message "[unix format]" if
|
||||
'fileformat' is set to "unix". On all systems but the Macintosh you get the
|
||||
message "[mac format]" if 'fileformat' is set to "mac".
|
||||
|
||||
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
|
||||
@ -1023,11 +1030,11 @@ lost the original file.
|
||||
|
||||
*DOS-format-write*
|
||||
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
|
||||
shown to remind you that an unusual <EOL> was used.
|
||||
for Win32. On other systems the message "[dos format]" is shown to remind you
|
||||
that an unusual <EOL> was used.
|
||||
*Unix-format-write*
|
||||
If the 'fileformat' is "unix", <NL> is used for <EOL>. On MS-DOS, Win32 and
|
||||
OS/2 the message "[unix format]" is shown.
|
||||
If the 'fileformat' is "unix", <NL> is used for <EOL>. On Win32 the message
|
||||
"[unix format]" is shown.
|
||||
*Mac-format-write*
|
||||
If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the
|
||||
message "[mac format]" is shown.
|
||||
@ -1056,11 +1063,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.
|
||||
Example for Unix: >
|
||||
:w! /dev/lpt0
|
||||
and for MS-DOS or MS-Windows: >
|
||||
and for MS-Windows: >
|
||||
:w! lpt0
|
||||
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.
|
||||
For MS-DOS and MS-Windows the device is detected by its name:
|
||||
For MS-Windows the device is detected by its name:
|
||||
AUX
|
||||
CON
|
||||
CLOCK$
|
||||
@ -1075,9 +1082,9 @@ The names can be in upper- or lowercase.
|
||||
|
||||
*:q* *:quit*
|
||||
:q[uit] Quit the current window. Quit Vim if this is the last
|
||||
window. This fails when changes have been made and
|
||||
Vim refuses to |abandon| the current buffer, and when
|
||||
the last file in the argument list has not been
|
||||
|edit-window|. This fails when changes have been made
|
||||
and Vim refuses to |abandon| the current buffer, and
|
||||
when the last file in the argument list has not been
|
||||
edited.
|
||||
If there are other tab pages and quitting the last
|
||||
window in the current tab page the current tab page is
|
||||
@ -1103,18 +1110,22 @@ The names can be in upper- or lowercase.
|
||||
|quickfix|).
|
||||
|
||||
*:wq*
|
||||
:wq [++opt] Write the current file and quit. Writing fails when
|
||||
the file is read-only or the buffer does not have a
|
||||
name. Quitting fails when the last file in the
|
||||
argument list has not been edited.
|
||||
:wq [++opt] Write the current file and close the window. If this
|
||||
was the last |edit-window| Vim quits.
|
||||
Writing fails when the file is read-only or the buffer
|
||||
does not have a name. Quitting fails when the last
|
||||
file in the argument list has not been edited.
|
||||
|
||||
:wq! [++opt] Write the current file and quit. Writing fails when
|
||||
the current buffer does not have a name.
|
||||
:wq! [++opt] Write the current file and close the window. If this
|
||||
was the last |edit-window| Vim quits. Writing fails
|
||||
when the current buffer does not have a name.
|
||||
|
||||
:wq [++opt] {file} Write to {file} and quit. Quitting fails when the
|
||||
:wq [++opt] {file} Write to {file} and close the window. If this was the
|
||||
last |edit-window| Vim quits. Quitting fails when the
|
||||
last file in the argument list has not been edited.
|
||||
|
||||
:wq! [++opt] {file} Write to {file} and quit.
|
||||
:wq! [++opt] {file} Write to {file} and close the current window. Quit
|
||||
Vim if this was the last |edit-window|.
|
||||
|
||||
:[range]wq[!] [++opt] [file]
|
||||
Same as above, but only write the lines in [range].
|
||||
@ -1131,10 +1142,10 @@ The names can be in upper- or lowercase.
|
||||
Same as :xit.
|
||||
|
||||
*ZZ*
|
||||
ZZ Write current file, if modified, and quit (same as
|
||||
":x"). (Note: If there are several windows for the
|
||||
current file, the file is written if it was modified
|
||||
and the window is closed).
|
||||
ZZ Write current file, if modified, and close the current
|
||||
window (same as ":x").
|
||||
If there are several windows for the current file,
|
||||
only the current window is closed.
|
||||
|
||||
*ZQ*
|
||||
ZQ Quit without checking for changes (same as ":q!").
|
||||
@ -1294,7 +1305,7 @@ present in 'cpoptions' and "!" is not used in the command.
|
||||
Does not change the meaning of an already opened file,
|
||||
because its full path name is remembered. Files from
|
||||
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: >
|
||||
:cd %:h
|
||||
<
|
||||
@ -1315,6 +1326,10 @@ present in 'cpoptions' and "!" is not used in the command.
|
||||
*:tch* *:tchdir*
|
||||
:tch[dir][!] Same as |:tcd|.
|
||||
|
||||
*:tcd-*
|
||||
:tcd[!] - Change to the previous current directory, before the
|
||||
last ":tcd {path}" command.
|
||||
|
||||
*:lc* *:lcd*
|
||||
:lc[d][!] {path} Like |:cd|, but only set the current directory when
|
||||
the cursor is in the current window. The current
|
||||
@ -1324,9 +1339,28 @@ present in 'cpoptions' and "!" is not used in the command.
|
||||
*:lch* *:lchdir*
|
||||
:lch[dir][!] Same as |:lcd|.
|
||||
|
||||
*:lcd-*
|
||||
:lcd[!] - Change to the previous current directory, before the
|
||||
last ":lcd {path}" command.
|
||||
|
||||
*:pw* *:pwd* *E187*
|
||||
:pw[d] Print the current directory name.
|
||||
Also see |getcwd()|.
|
||||
*:pwd-verbose*
|
||||
When 'verbose' is non-zero, |:pwd| will also display
|
||||
what scope the current directory was set. Example: >
|
||||
|
||||
" Set by :cd
|
||||
:verbose pwd
|
||||
[global] /path/to/current
|
||||
|
||||
" Set by :lcd
|
||||
:verbose pwd
|
||||
[window] /path/to/current
|
||||
|
||||
" Set by :tcd
|
||||
:verbose pwd
|
||||
[tabpage] /path/to/current
|
||||
|
||||
So long as no |:lcd| or |:tcd| command has been used, all windows share the
|
||||
same current directory. Using a command to jump to another window doesn't
|
||||
@ -1452,7 +1486,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
|
||||
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: >
|
||||
set cm=blowfish2
|
||||
Using "blowfish2" is highly recommended. Only use another method if you
|
||||
|
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
48
runtime/doc/evim-tr.1
Normal file
48
runtime/doc/evim-tr.1
Normal file
@ -0,0 +1,48 @@
|
||||
.TH EVIM 1 "16 <20>ubat 2002"
|
||||
.SH AD
|
||||
evim \- kolay Vim, bir dosyay<61> Vim ile herhangi bir kip olmadan d<>zenleyin
|
||||
.SH <EFBFBD>ZET
|
||||
.br
|
||||
.B evim
|
||||
[se<73>enekler] [dosya ..]
|
||||
.br
|
||||
.B eview
|
||||
.SH TANIM
|
||||
.B eVim,
|
||||
.B Vim'i
|
||||
ba<EFBFBD>lat<EFBFBD>r ve onu herhangi bir kipsiz d<>zenleyici gibi davranmas<61>n<EFBFBD> sa<73>lar.
|
||||
Bu bildi<64>iniz Vim'dir, ancak bir t<>kla ve yaz d<>zenleyicisi gibi <20>al<61><6C><EFBFBD>r.
|
||||
Bir <20>rnek vermek gerekirse MS-Windows <20>zerindeki Not Defteri gibi d<><64><EFBFBD>n<EFBFBD>n.
|
||||
.B eVim
|
||||
men<EFBFBD>lere ve ara<72> <20>ubuklar<61>na eri<72>im sa<73>layabilmeniz i<>in grafik arabirimde <20>al<61><6C><EFBFBD>r.
|
||||
.PP
|
||||
Yaln<EFBFBD>zca Vim ile normal bi<62>imde <20>al<61><6C>amayan ki<6B>ilerin kullan<61>m<EFBFBD> i<>indir.
|
||||
Dosya d<>zenleme i<>i <20>ok daha verimsiz olacakt<6B>r.
|
||||
.PP
|
||||
.B eview'<27>n
|
||||
ayn<EFBFBD>s<EFBFBD>d<EFBFBD>r, ancak saltokunur kipte ba<62>lar. evim \-R ile de ba<62>lat<61>labilir.
|
||||
.PP
|
||||
Vim hakk<6B>nda ayr<79>nt<6E>l<EFBFBD> bilgi i<>in: vim(1)
|
||||
.PP
|
||||
Do<EFBFBD>rudan metin giri<72>ini sa<73>layabilmek i<>in 'insertmode' se<73>ene<6E>i a<><61>l<EFBFBD>r.
|
||||
.br
|
||||
E<EFBFBD>lemlemeler Kopyala ve Yap<61><70>t<EFBFBD>r MS-Windows ile ayn<79> olacak bi<62>imde ayarlan<61>r.
|
||||
CTRL-X metni keser, CTRL-C metni kopyalar ve CTRL-V metni yap<61><70>t<EFBFBD>r<EFBFBD>r.
|
||||
CTRL-V'nin orijinal i<>levi i<>in CTRL-Q kullan<61>n.
|
||||
.SH SE<EFBFBD>ENEKLER
|
||||
Bilgi i<>in: vim(1).
|
||||
.SH DOSYALAR
|
||||
.TP 15
|
||||
/usr/local/lib/vim/evim.vim
|
||||
eVim'i ilklendirmek i<>in kullan<61>lan betik.
|
||||
.SH NAM-I D<EFBFBD><EFBFBD>ER
|
||||
Nam-<2D> di<64>er "Lastik <20>izmeliler i<>in Vim" (Gumbies, Monty Python).
|
||||
eVim'i kullan<61>rken bir mendili al<61>p iki ucundan birer d<><64><EFBFBD>m yapman<61>z
|
||||
ve kafan<61>za takman<61>z beklenir.
|
||||
.SH AYRICA BAKINIZ
|
||||
vim(1)
|
||||
.SH YAZAR
|
||||
.B Vim'in
|
||||
b<EFBFBD>y<EFBFBD>k <20>o<EFBFBD>unlu<6C>u Bram Moolenaar taraf<61>ndan ba<62>kalar<61>n<EFBFBD>n kayda de<64>er
|
||||
yard<EFBFBD>mlar<EFBFBD>yla yaz<61>lm<6C><6D>t<EFBFBD>r.
|
||||
Ek bilgi i<>in Yard<72>m/Te<54>ekk<6B>rler men<65>s<EFBFBD>ne bak<61>n.
|
48
runtime/doc/evim-tr.UTF-8.1
Normal file
48
runtime/doc/evim-tr.UTF-8.1
Normal file
@ -0,0 +1,48 @@
|
||||
.TH EVIM 1 "16 Şubat 2002"
|
||||
.SH AD
|
||||
evim \- kolay Vim, bir dosyayı Vim ile herhangi bir kip olmadan düzenleyin
|
||||
.SH ÖZET
|
||||
.br
|
||||
.B evim
|
||||
[seçenekler] [dosya ..]
|
||||
.br
|
||||
.B eview
|
||||
.SH TANIM
|
||||
.B eVim,
|
||||
.B Vim'i
|
||||
başlatır ve onu herhangi bir kipsiz düzenleyici gibi davranmasını sağlar.
|
||||
Bu bildiğiniz Vim'dir, ancak bir tıkla ve yaz düzenleyicisi gibi çalışır.
|
||||
Bir örnek vermek gerekirse MS-Windows üzerindeki Not Defteri gibi düşünün.
|
||||
.B eVim
|
||||
menülere ve araç çubuklarına erişim sağlayabilmeniz için grafik arabirimde çalışır.
|
||||
.PP
|
||||
Yalnızca Vim ile normal biçimde çalışamayan kişilerin kullanımı içindir.
|
||||
Dosya düzenleme işi çok daha verimsiz olacaktır.
|
||||
.PP
|
||||
.B eview'ün
|
||||
aynısıdır, ancak saltokunur kipte başlar. evim \-R ile de başlatılabilir.
|
||||
.PP
|
||||
Vim hakkında ayrıntılı bilgi için: vim(1)
|
||||
.PP
|
||||
Doğrudan metin girişini sağlayabilmek için 'insertmode' seçeneği açılır.
|
||||
.br
|
||||
Eşlemlemeler Kopyala ve Yapıştır MS-Windows ile aynı olacak biçimde ayarlanır.
|
||||
CTRL-X metni keser, CTRL-C metni kopyalar ve CTRL-V metni yapıştırır.
|
||||
CTRL-V'nin orijinal işlevi için CTRL-Q kullanın.
|
||||
.SH SEÇENEKLER
|
||||
Bilgi için: vim(1).
|
||||
.SH DOSYALAR
|
||||
.TP 15
|
||||
/usr/local/lib/vim/evim.vim
|
||||
eVim'i ilklendirmek için kullanılan betik.
|
||||
.SH NAM-I DİĞER
|
||||
Nam-ı diğer "Lastik Çizmeliler için Vim" (Gumbies, Monty Python).
|
||||
eVim'i kullanırken bir mendili alıp iki ucundan birer düğüm yapmanız
|
||||
ve kafanıza takmanız beklenir.
|
||||
.SH AYRICA BAKINIZ
|
||||
vim(1)
|
||||
.SH YAZAR
|
||||
.B Vim'in
|
||||
büyük çoğunluğu Bram Moolenaar tarafından başkalarının kayda değer
|
||||
yardımlarıyla yazılmıştır.
|
||||
Ek bilgi için Yardım/Teşekkürler menüsüne bakın.
|
@ -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
|
||||
|
@ -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
|
||||
@ -34,8 +34,7 @@ if you didn't do that already.
|
||||
Detail: The ":filetype on" command will load one of these files:
|
||||
Amiga $VIMRUNTIME/filetype.vim
|
||||
Mac $VIMRUNTIME:filetype.vim
|
||||
MS-DOS $VIMRUNTIME\filetype.vim
|
||||
RiscOS Vim:Filetype
|
||||
MS-Windows $VIMRUNTIME\filetype.vim
|
||||
Unix $VIMRUNTIME/filetype.vim
|
||||
VMS $VIMRUNTIME/filetype.vim
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
/etc/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.
|
||||
|
||||
|
@ -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
|
||||
|
@ -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~
|
||||
|
@ -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.
|
||||
|
||||
|
@ -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
|
||||
|
||||
@ -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>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
|
||||
may not work properly on all platforms: >
|
||||
The use of "<C-C>" can be user chosen by using the following in your |.vimrc|
|
||||
as it may not work properly on all platforms: >
|
||||
let g:ftplugin_sql_omni_key = '<C-C>'
|
||||
>
|
||||
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.
|
||||
|
||||
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:
|
||||
- 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 Nov 16
|
||||
*gui.txt* For Vim version 8.2. Last change: 2020 Mar 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -95,12 +95,11 @@ terminal version.
|
||||
|
||||
Recommended place for your personal GUI initializations:
|
||||
Unix $HOME/.gvimrc or $HOME/.vim/gvimrc
|
||||
OS/2 $HOME/.gvimrc, $HOME/vimfiles/gvimrc
|
||||
or $VIM/.gvimrc
|
||||
MS-DOS and Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
|
||||
Win32 $HOME/_gvimrc, $HOME/vimfiles/gvimrc
|
||||
or $VIM/_gvimrc
|
||||
Amiga s:.gvimrc, home:.gvimrc, home:vimfiles:gvimrc
|
||||
or $VIM/.gvimrc
|
||||
Haiku $HOME/config/settings/vim/gvimrc
|
||||
|
||||
The personal initialization files are searched in the order specified above
|
||||
and only the first one that is found is read.
|
||||
@ -579,9 +578,11 @@ tooltips for menus. See |terminal-typing|.
|
||||
|
||||
Special characters in a menu name:
|
||||
|
||||
*menu-shortcut*
|
||||
& The next character is the shortcut key. Make sure each
|
||||
shortcut key is only used once in a (sub)menu. If you want to
|
||||
insert a literal "&" in the menu name use "&&".
|
||||
*menu-text*
|
||||
<Tab> Separates the menu name from right-aligned text. This can be
|
||||
used to show the equivalent typed command. The text "<Tab>"
|
||||
can be used here for convenience. If you are using a real
|
||||
@ -854,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 "<script>" to allow remapping script-local
|
||||
mappings only.
|
||||
s The menu was defined with "<silent>" to avoid showing what it is
|
||||
mapped to when triggered.
|
||||
- The menu was disabled.
|
||||
|
||||
Note that hitting <Tab> while entering a menu name after a menu command may
|
||||
@ -955,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
|
||||
the <CR> key. |<>|)
|
||||
|
||||
|
||||
*tooltips* *menu-tips*
|
||||
5.8 Tooltips & Menu tips
|
||||
|
||||
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
|
||||
@ -106,8 +106,6 @@ when you have got a new version):
|
||||
You can also install Vim in the "Send To" menu:
|
||||
1. Start a Windows Explorer
|
||||
2. Navigate to your sendto directory:
|
||||
Windows NT: %windir%\profiles\%user%\sendto (e.g.
|
||||
"c:\winnt\profiles\mattha\sendto")
|
||||
Windows XP: C:\Documents and Settings\%user%\SendTo
|
||||
Windows Vista: C:\Users\%user%\AppData\Roaming\Microsoft\Windows\SendTo .
|
||||
3. Right-click in the file pane and select New->Shortcut
|
||||
@ -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,
|
||||
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*
|
||||
You could replace notepad.exe with gvim.exe, but that has a few side effects.
|
||||
@ -169,8 +168,8 @@ you can.
|
||||
Vim Shell Extension
|
||||
HKEY_LOCAL_MACHINE\Software\Vim\Gvim
|
||||
path {path}\gvim.exe
|
||||
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 5.6
|
||||
DisplayName Vim 5.6: Edit with Vim popup menu entry
|
||||
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\vim 8.2
|
||||
DisplayName Vim 8.2: Edit with Vim popup menu entry
|
||||
UninstallString {path}\uninstall.exe
|
||||
|
||||
Replace {path} with the path that leads to the executable.
|
||||
@ -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
|
||||
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"
|
||||
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:
|
||||
|
||||
@ -214,7 +213,7 @@ REGEDIT4
|
||||
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]
|
||||
|
||||
[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]
|
||||
|
||||
@ -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
|
||||
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: >
|
||||
:help
|
||||
:exe 'sign define vimxpm icon=' . $VIMRUNTIME . '\\vim16x16.xpm'
|
||||
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
|
||||
:let runtime = escape($VIMRUNTIME, ' \')
|
||||
: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:
|
||||
|
@ -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: 2020 Jun 05
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -356,6 +356,9 @@ need to set those up in some sort of gtkrc file. You'll have to refer
|
||||
to the GTK documentation, however little there is, on how to do this.
|
||||
See http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html
|
||||
for more information.
|
||||
*gtk3-slow*
|
||||
If you are using GTK3 and Vim appears to be slow, try setting the environment
|
||||
variable $GDK_RENDERING to "image".
|
||||
|
||||
|
||||
Tooltip Colors ~
|
||||
|
@ -1,4 +1,4 @@
|
||||
*hangulin.txt* For Vim version 8.1. Last change: 2019 Nov 21
|
||||
*hangulin.txt* For Vim version 8.2. Last change: 2019 Nov 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
k
|
||||
@ -31,7 +31,7 @@ Get specific help: It is possible to go directly to whatever you want help
|
||||
help entries for "word".
|
||||
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|.
|
||||
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*
|
||||
BASIC:
|
||||
|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
|
||||
|iccf| Helping poor children in Uganda
|
||||
|sponsor| Sponsor Vim development, become a registered Vim user
|
||||
@ -144,7 +144,7 @@ Special issues ~
|
||||
|remote.txt| using Vim as a server or client
|
||||
|term.txt| using different terminals and mice
|
||||
|terminal.txt| Terminal window support
|
||||
|popup.txt| popop window support
|
||||
|popup.txt| popup window support
|
||||
|
||||
Programming language support ~
|
||||
|indent.txt| automatic indenting for C and other languages
|
||||
@ -197,7 +197,8 @@ Remarks about specific systems ~
|
||||
|os_390.txt| OS/390 Unix
|
||||
|os_amiga.txt| Amiga
|
||||
|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_mint.txt| Atari MiNT
|
||||
|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_unix.txt| Unix
|
||||
|os_vms.txt| VMS
|
||||
|os_win32.txt| MS-Windows 95/98/NT
|
||||
|os_win32.txt| MS-Windows
|
||||
*standard-plugin-list*
|
||||
Standard plugins ~
|
||||
|pi_getscript.txt| Downloading latest version of Vim scripts
|
||||
|
@ -1,4 +1,4 @@
|
||||
*helphelp.txt* For Vim version 8.1. Last change: 2019 Oct 18
|
||||
*helphelp.txt* For Vim version 8.2. Last change: 2020 Mar 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -368,4 +368,15 @@ highlighting. So do these:
|
||||
|
||||
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||
|
||||
*inclusion*
|
||||
Some people make a big deal about using "his" when referring to the user,
|
||||
thinking it means we assume the user is male. That is of course not the case,
|
||||
it's just a habit of writing help text, which quite often is many years old.
|
||||
Also, a lot of the text is written by contributors for who English is not
|
||||
their first language. We do not make any assumptions about the gender of the
|
||||
user, no matter how the text is phrased. And we do not want to waste time on
|
||||
this discussion. The goal is that the reader understands how Vim works, the
|
||||
exact wording is secondary.
|
||||
|
||||
|
||||
vim: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
|
||||
|
@ -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
|
||||
|
@ -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: 2020 May 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Luis Carvalho
|
||||
@ -32,7 +32,7 @@ Examples:
|
||||
:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
|
||||
<
|
||||
|
||||
:[range]lua << [endmarker]
|
||||
:[range]lua << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
Execute Lua script {script}.
|
||||
@ -40,10 +40,9 @@ Examples:
|
||||
feature wasn't compiled in. To avoid errors, see
|
||||
|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
|
||||
{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
|
||||
in Vim scripts.
|
||||
@ -200,6 +199,15 @@ Vim evaluation and command execution, and others.
|
||||
returns it. Note that the buffer is not set as
|
||||
current.
|
||||
|
||||
vim.call({name} [,{args}])
|
||||
Proxy to call Vim function named {name} with
|
||||
arguments {args}. Example: >
|
||||
:lua print(vim.call('has', 'timers'))
|
||||
<
|
||||
vim.fn Proxy to call Vim functions. Proxy methods are
|
||||
created on demand. Example: >
|
||||
:lua print(vim.fn.has('timers'))
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
3. List userdata *lua-list*
|
||||
|
@ -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
|
||||
@ -39,7 +39,7 @@ To speed up the process, you might also want to use --disable-gracket and
|
||||
:[range]mz[scheme] {stmt}
|
||||
Execute MzScheme statement {stmt}.
|
||||
|
||||
:[range]mz[scheme] << [endmarker]
|
||||
:[range]mz[scheme] << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
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
|
||||
|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 {script}, like for the
|
||||
|:append| and |:insert| commands.
|
||||
|:append| and |:insert| commands. Refer to
|
||||
|:let-heredoc| for more information.
|
||||
|
||||
|
||||
*:mzfile* *:mzf*
|
||||
:[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.: >
|
||||
:mzscheme (require (prefix vim- vimext))
|
||||
<
|
||||
All the examples below assume this naming scheme.
|
||||
All the examples below assume this naming scheme.
|
||||
|
||||
*mzscheme-sandbox*
|
||||
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
|
||||
@ -39,7 +39,7 @@ instance), code similar to the following should be used:
|
||||
$vim = new Win32::OLE 'Vim.Application';
|
||||
|
||||
[C#] >
|
||||
// Add a reference to Vim in your project.
|
||||
// Add a reference to Vim in your project.
|
||||
// Choose the COM tab.
|
||||
// Select "Vim Ole Interface 1.1 Type Library"
|
||||
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
|
||||
@ -55,7 +55,7 @@ The ActiveState one should work, Strawberry Perl is a good alternative.
|
||||
working: >
|
||||
:perl VIM::Msg("Hello")
|
||||
|
||||
:pe[rl] << [endmarker]
|
||||
:pe[rl] << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
Execute Perl script {script}.
|
||||
@ -180,7 +180,7 @@ VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
|
||||
VIM::DoCommand({cmd}) Executes Ex command {cmd}.
|
||||
|
||||
*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.
|
||||
success=1 indicates that val contains the value of
|
||||
{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
|
||||
@ -34,7 +34,7 @@ Both can be available at the same time, but read |python-2-and-3|.
|
||||
the `:python` command is working: >
|
||||
:python print "Hello"
|
||||
|
||||
:[range]py[thon] << [endmarker]
|
||||
:[range]py[thon] << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
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
|
||||
|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
|
||||
{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
|
||||
in Vim scripts.
|
||||
@ -183,7 +182,7 @@ vim.eval(str) *python-eval*
|
||||
:py text_width = vim.eval("&tw")
|
||||
:
|
||||
:" 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.
|
||||
:py str = vim.eval("12+12")
|
||||
@ -194,25 +193,25 @@ vim.eval(str) *python-eval*
|
||||
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
|
||||
|
||||
vim.bindeval(str) *python-bindeval*
|
||||
Like |python-eval|, but returns special objects described in
|
||||
|python-bindeval-objects|. These python objects let you modify (|List|
|
||||
Like |python-eval|, but returns special objects described in
|
||||
|python-bindeval-objects|. These python objects let you modify (|List|
|
||||
or |Dictionary|) or call (|Funcref|) vim objects.
|
||||
|
||||
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.
|
||||
|
||||
vim.foreach_rtp(callable) *python-foreach_rtp*
|
||||
Call the given callable for each path in 'runtimepath' until either
|
||||
callable returns something but None, the exception is raised or there
|
||||
are no longer paths. If stopped in case callable returned non-None,
|
||||
Call the given callable for each path in 'runtimepath' until either
|
||||
callable returns something but None, the exception is raised or there
|
||||
are no longer paths. If stopped in case callable returned non-None,
|
||||
vim.foreach_rtp function returns the value returned by callable.
|
||||
|
||||
vim.chdir(*args, **kwargs) *python-chdir*
|
||||
vim.fchdir(*args, **kwargs) *python-fchdir*
|
||||
Run os.chdir or os.fchdir, then all appropriate vim stuff.
|
||||
Note: you should not use these functions directly, use os.chdir and
|
||||
os.fchdir instead. Behavior of vim.fchdir is undefined in case
|
||||
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 does not exist.
|
||||
|
||||
Error object of the "vim" module
|
||||
@ -247,15 +246,15 @@ vim.windows *python-windows*
|
||||
:py w in vim.windows # Membership test
|
||||
:py n = len(vim.windows) # Number of elements
|
||||
:py for w in vim.windows: # Sequential access
|
||||
< Note: vim.windows object always accesses current tab page.
|
||||
|python-tabpage|.windows objects are bound to parent |python-tabpage|
|
||||
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
|
||||
without keeping a reference to vim module object or |python-tabpage|,
|
||||
< Note: vim.windows object always accesses current tab page.
|
||||
|python-tabpage|.windows objects are bound to parent |python-tabpage|
|
||||
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
|
||||
without keeping a reference to vim module object or |python-tabpage|,
|
||||
they will not lose their properties in this case.
|
||||
|
||||
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: >
|
||||
:py t = vim.tabpages[i] # Indexing (read-only)
|
||||
: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
|
||||
restricted to a subset of lines. See |python-range| for more details.
|
||||
|
||||
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
|
||||
valid |python-buffer|, |python-window| or |python-tabpage| objects
|
||||
respectively. Assigning triggers normal (with |autocommand|s)
|
||||
switching to given buffer, window or tab page. It is the only way to
|
||||
switch UI objects in python: you can't assign to
|
||||
|python-tabpage|.window attribute. To switch without triggering
|
||||
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
|
||||
valid |python-buffer|, |python-window| or |python-tabpage| objects
|
||||
respectively. Assigning triggers normal (with |autocommand|s)
|
||||
switching to given buffer, window or tab page. It is the only way to
|
||||
switch UI objects in python: you can't assign to
|
||||
|python-tabpage|.window attribute. To switch without triggering
|
||||
autocommands use >
|
||||
py << EOF
|
||||
saved_eventignore = vim.options['eventignore']
|
||||
@ -294,12 +293,12 @@ vim.current *python-current*
|
||||
<
|
||||
vim.vars *python-vars*
|
||||
vim.vvars *python-vvars*
|
||||
Dictionary-like objects holding dictionaries with global (|g:|) and
|
||||
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
|
||||
Dictionary-like objects holding dictionaries with global (|g:|) and
|
||||
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
|
||||
but faster.
|
||||
|
||||
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.
|
||||
Note: unlike |:set| this provides access only to global options. You
|
||||
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
|
||||
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.
|
||||
|
||||
Output from Python *python-output*
|
||||
@ -331,10 +330,10 @@ Output from Python *python-output*
|
||||
*python2-directory* *python3-directory* *pythonx-directory*
|
||||
Python 'runtimepath' handling *python-special-path*
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
each {rtp} found in 'runtimepath'.
|
||||
|
||||
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)
|
||||
return load_module(fullname, *fmr)
|
||||
|
||||
# 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
|
||||
# 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
|
||||
# an attribute.
|
||||
class VimPathFinder(object):
|
||||
@classmethod
|
||||
@ -386,28 +385,28 @@ Implementation is similar to the following, but written in C: >
|
||||
sys.path_hooks.append(hook)
|
||||
|
||||
vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH*
|
||||
String constant used in conjunction with vim path hook. If path hook
|
||||
installed by vim is requested to handle anything but path equal to
|
||||
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other
|
||||
String constant used in conjunction with vim path hook. If path hook
|
||||
installed by vim is requested to handle anything but path equal to
|
||||
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only other
|
||||
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.find_module(...) *python-find_module*
|
||||
vim.path_hook(path) *python-path_hook*
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
versions.
|
||||
|
||||
vim._get_paths *python-_get_paths*
|
||||
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
|
||||
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
|
||||
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'.
|
||||
|
||||
==============================================================================
|
||||
@ -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.
|
||||
|
||||
The buffer object attributes are:
|
||||
b.vars Dictionary-like object used to access
|
||||
b.vars Dictionary-like object used to access
|
||||
|buffer-variable|s.
|
||||
b.options Mapping object (supports item getting, setting and
|
||||
deleting) that provides access to buffer-local options
|
||||
and buffer-local values of |global-local| options. Use
|
||||
|python-window|.options if option is window-local,
|
||||
this object will raise KeyError. If option is
|
||||
|global-local| and local value is missing getting it
|
||||
b.options Mapping object (supports item getting, setting and
|
||||
deleting) that provides access to buffer-local options
|
||||
and buffer-local values of |global-local| options. Use
|
||||
|python-window|.options if option is window-local,
|
||||
this object will raise KeyError. If option is
|
||||
|global-local| and local value is missing getting it
|
||||
will return None.
|
||||
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.
|
||||
b.number Buffer number. Can be used as |python-buffers| key.
|
||||
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.
|
||||
|
||||
The buffer object methods are:
|
||||
@ -538,16 +537,16 @@ Window attributes are:
|
||||
This is a tuple, (row,col).
|
||||
height (read-write) The window height, in rows
|
||||
width (read-write) The window width, in columns
|
||||
vars (read-only) The window |w:| variables. Attribute is
|
||||
unassignable, but you can change window
|
||||
vars (read-only) The window |w:| variables. Attribute is
|
||||
unassignable, but you can change window
|
||||
variables this way
|
||||
options (read-only) The window-local options. Attribute is
|
||||
unassignable, but you can change window
|
||||
options this way. Provides access only to
|
||||
window-local options, for buffer-local use
|
||||
|python-buffer| and for global ones use
|
||||
|python-options|. If option is |global-local|
|
||||
and local value is missing getting it will
|
||||
options (read-only) The window-local options. Attribute is
|
||||
unassignable, but you can change window
|
||||
options this way. Provides access only to
|
||||
window-local options, for buffer-local use
|
||||
|python-buffer| and for global ones use
|
||||
|python-options|. If option is |global-local|
|
||||
and local value is missing getting it will
|
||||
return None.
|
||||
number (read-only) Window number. The first window has number 1.
|
||||
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.
|
||||
First position is zero.
|
||||
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.
|
||||
|
||||
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*
|
||||
|
||||
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:
|
||||
- via vim.current.tabpage (|python-current|)
|
||||
- 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.
|
||||
|
||||
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()|.
|
||||
windows Like |python-windows|, but for current tab page.
|
||||
vars The tab page |t:| variables.
|
||||
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.
|
||||
|
||||
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
|
||||
vim.VAR_LOCKED Variable is locked, but can be unlocked
|
||||
vim.VAR_FIXED Variable is locked and can't be unlocked
|
||||
Read-write. You can unlock locked variable by assigning
|
||||
`True` or `False` to this attribute. No recursive locking
|
||||
Read-write. You can unlock locked variable by assigning
|
||||
`True` or `False` to this attribute. No recursive locking
|
||||
is supported.
|
||||
scope One of
|
||||
Value Description ~
|
||||
@ -615,23 +614,23 @@ vim.Dictionary object *python-Dictionary*
|
||||
update(iterable), update(dictionary), update(**kwargs)
|
||||
Adds keys to dictionary.
|
||||
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.
|
||||
pop(key[, default])
|
||||
Remove specified key from dictionary and return
|
||||
corresponding value. If key is not found and default is
|
||||
Remove specified key from dictionary and return
|
||||
corresponding value. If key is not found and default is
|
||||
given returns the default, otherwise raises KeyError.
|
||||
popitem()
|
||||
Remove random key from dictionary and return (key, value)
|
||||
Remove random key from dictionary and return (key, value)
|
||||
pair.
|
||||
has_key(key)
|
||||
Check whether dictionary contains specified key, similar
|
||||
Check whether dictionary contains specified key, similar
|
||||
to `key in dict`.
|
||||
|
||||
__new__(), __new__(iterable), __new__(dictionary), __new__(update)
|
||||
You can use `vim.Dictionary()` to create new vim
|
||||
dictionaries. `d=vim.Dictionary(arg)` is the same as
|
||||
`d=vim.bindeval('{}');d.update(arg)`. Without arguments
|
||||
You can use `vim.Dictionary()` to create new vim
|
||||
dictionaries. `d=vim.Dictionary(arg)` is the same as
|
||||
`d=vim.bindeval('{}');d.update(arg)`. Without arguments
|
||||
constructs empty dictionary.
|
||||
|
||||
Examples: >
|
||||
@ -652,15 +651,15 @@ vim.Dictionary object *python-Dictionary*
|
||||
|
||||
vim.List object *python-List*
|
||||
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:
|
||||
Method Description ~
|
||||
extend(item) Add items to the list.
|
||||
|
||||
__new__(), __new__(iterable)
|
||||
You can use `vim.List()` to create new vim lists.
|
||||
`l=vim.List(iterable)` is the same as
|
||||
`l=vim.bindeval('[]');l.extend(iterable)`. Without
|
||||
You can use `vim.List()` to create new vim lists.
|
||||
`l=vim.List(iterable)` is the same as
|
||||
`l=vim.bindeval('[]');l.extend(iterable)`. Without
|
||||
arguments constructs empty list.
|
||||
Examples: >
|
||||
l = vim.List("abc") # Constructor, result: ['a', 'b', 'c']
|
||||
@ -674,24 +673,24 @@ vim.List object *python-List*
|
||||
class List(vim.List): # Subclassing
|
||||
|
||||
vim.Function object *python-Function*
|
||||
Function-like object, acting like vim |Funcref| object. Accepts special
|
||||
keyword argument `self`, see |Dictionary-function|. You can also use
|
||||
`vim.Function(name)` constructor, it is the same as
|
||||
Function-like object, acting like vim |Funcref| object. Accepts special
|
||||
keyword argument `self`, see |Dictionary-function|. You can also use
|
||||
`vim.Function(name)` constructor, it is the same as
|
||||
`vim.bindeval('function(%s)'%json.dumps(name))`.
|
||||
|
||||
Attributes (read-only):
|
||||
Attribute Description ~
|
||||
name Function name.
|
||||
args `None` or a |python-List| object with arguments. Note
|
||||
that this is a copy of the arguments list, constructed
|
||||
each time you request this attribute. Modifications made
|
||||
to the list will be ignored (but not to the containers
|
||||
inside argument list: this is like |copy()| and not
|
||||
args `None` or a |python-List| object with arguments. Note
|
||||
that this is a copy of the arguments list, constructed
|
||||
each time you request this attribute. Modifications made
|
||||
to the list will be ignored (but not to the containers
|
||||
inside argument list: this is like |copy()| and not
|
||||
|deepcopy()|).
|
||||
self `None` or a |python-Dictionary| object with self
|
||||
dictionary. Note that explicit `self` keyword used when
|
||||
self `None` or a |python-Dictionary| object with self
|
||||
dictionary. Note that explicit `self` keyword used when
|
||||
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
|
||||
automatically rebound to the dictionary it is stored in
|
||||
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
|
||||
attribute makes no sense if `self` attribute is `None`.
|
||||
|
||||
Constructor additionally accepts `args`, `self` and `auto_rebind`
|
||||
keywords. If `args` and/or `self` argument is given then it constructs
|
||||
a partial, see |function()|. `auto_rebind` is only used when `self`
|
||||
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
|
||||
Constructor additionally accepts `args`, `self` and `auto_rebind`
|
||||
keywords. If `args` and/or `self` argument is given then it constructs
|
||||
a partial, see |function()|. `auto_rebind` is only used when `self`
|
||||
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
|
||||
`False`.
|
||||
|
||||
Examples: >
|
||||
@ -726,7 +725,7 @@ vim.Function object *python-Function*
|
||||
==============================================================================
|
||||
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.
|
||||
|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*
|
||||
|
||||
*:py3* *:python3*
|
||||
The `:py3` and `:python3` commands work similar to `:python`. A simple check
|
||||
if the `:py3` command is working: >
|
||||
:py3 print("Hello")
|
||||
:[range]py3 {stmt}
|
||||
:[range]py3 << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
|
||||
To see what version of Python you have: >
|
||||
:py3 import sys
|
||||
:py3 print(sys.version)
|
||||
:[range]python3 {stmt}
|
||||
:[range]python3 << [trim] [{endmarker}]
|
||||
{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*
|
||||
The `:py3file` command works similar to `:pyfile`.
|
||||
:[range]py3f[ile] {file}
|
||||
The `:py3file` command works similar to `:pyfile`.
|
||||
*: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):
|
||||
|
@ -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
|
||||
@ -28,15 +28,15 @@ downloading Ruby there.
|
||||
:rub[y] {cmd} Execute Ruby command {cmd}. A command to try it out: >
|
||||
:ruby print "Hello"
|
||||
|
||||
:rub[y] << [endmarker]
|
||||
:rub[y] << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
Execute Ruby script {script}.
|
||||
The {endmarker} after {script} must NOT be preceded by
|
||||
any white space.
|
||||
|
||||
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
|
||||
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
|
||||
|
@ -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
|
||||
@ -30,7 +30,7 @@ comments, ideas etc to <Ingo.Wilken@informatik.uni-oldenburg.de>
|
||||
is working: >
|
||||
:tcl puts "Hello"
|
||||
|
||||
:[range]tc[l] << [endmarker]
|
||||
:[range]tc[l] << [trim] [{endmarker}]
|
||||
{script}
|
||||
{endmarker}
|
||||
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
|
||||
|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
|
||||
{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
|
||||
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
|
||||
@ -532,7 +532,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
<
|
||||
*javascript-cinoptions* *javascript-indenting* *cino-J*
|
||||
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
|
||||
to set |cino-j|. >
|
||||
|
||||
@ -541,7 +541,7 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
that: this,
|
||||
some: ok,
|
||||
},
|
||||
"bar":{
|
||||
"bar":{
|
||||
a : 2,
|
||||
b: "123abc",
|
||||
x: 4,
|
||||
@ -570,9 +570,15 @@ The examples below assume a 'shiftwidth' of 4.
|
||||
with "#" does not work.
|
||||
|
||||
|
||||
PN When N is non-zero recognize C pragmas, and indent them like any
|
||||
other code; does not concern other preprocessor directives.
|
||||
When N is zero (default): don't recognize C pragmas, treating
|
||||
them like every other preprocessor directive.
|
||||
|
||||
|
||||
The defaults, spelled out in full, are:
|
||||
cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,E0,ps,ts,is,+s,
|
||||
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
|
||||
c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0,P0
|
||||
|
||||
Vim puts a line in column 1 if:
|
||||
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'.
|
||||
@ -812,6 +818,16 @@ Detail:
|
||||
<!-- --> : -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*
|
||||
|
||||
NOTE: PHP files will be indented correctly only if PHP |syntax| is active.
|
||||
@ -885,7 +901,7 @@ To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
|
||||
*PHP_BracesAtCodeLevel*
|
||||
To indent braces at the same level than the code they contain: >
|
||||
:let g:PHP_BracesAtCodeLevel = 1
|
||||
|
||||
|
||||
This will give the following result: >
|
||||
if ($foo)
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.1. Last change: 2019 Sep 27
|
||||
*index.txt* For Vim version 8.2. Last change: 2020 May 31
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -73,6 +73,8 @@ tag char action in Insert mode ~
|
||||
the cursor
|
||||
|i_CTRL-Q| CTRL-Q same as CTRL-V, unless used for terminal
|
||||
control flow
|
||||
|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
|
||||
|i_CTRL-R_CTRL-R| CTRL-R CTRL-R {register}
|
||||
@ -83,12 +85,14 @@ tag char action in Insert mode ~
|
||||
|i_CTRL-R_CTRL-P| CTRL-R CTRL-P {register}
|
||||
insert the contents of a register literally
|
||||
and fix indent.
|
||||
CTRL-S (used for terminal control flow)
|
||||
CTRL-S not used or used for terminal control flow
|
||||
|i_CTRL-T| CTRL-T insert one shiftwidth of indent in current
|
||||
line
|
||||
|i_CTRL-U| CTRL-U delete all entered characters in the current
|
||||
line
|
||||
|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
|
||||
byte.
|
||||
|i_CTRL-W| CTRL-W delete word before the cursor
|
||||
@ -216,9 +220,9 @@ tag char note action in Normal mode ~
|
||||
|CTRL-N| CTRL-N 1 same as "j"
|
||||
|CTRL-O| CTRL-O 1 go to N older entry in jump list
|
||||
|CTRL-P| CTRL-P 1 same as "k"
|
||||
CTRL-Q (used for terminal control flow)
|
||||
CTRL-Q not used, or used for terminal control flow
|
||||
|CTRL-R| CTRL-R 2 redo changes which were undone with 'u'
|
||||
CTRL-S (used for terminal control flow)
|
||||
CTRL-S not used, or used for terminal control flow
|
||||
|CTRL-T| CTRL-T jump to N older Tag in tag list
|
||||
|CTRL-U| CTRL-U scroll N lines Upwards (default: half a
|
||||
screen)
|
||||
@ -242,8 +246,7 @@ tag char note action in Normal mode ~
|
||||
2 filter Nmove text 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
|
||||
delete, yank or put (uppercase to append)
|
||||
|quote| "{register} use {register} for next delete, yank or put
|
||||
({.%#:} only work with put)
|
||||
|#| # 1 search backward for the Nth occurrence of
|
||||
the ident under the cursor
|
||||
@ -361,8 +364,8 @@ tag char note action in Normal mode ~
|
||||
register x]
|
||||
|Y| ["x]Y yank N lines [into register x]; synonym for
|
||||
"yy"
|
||||
|ZZ| ZZ store current file if modified, and exit
|
||||
|ZQ| ZQ exit current file always
|
||||
|ZZ| ZZ write if buffer changed and close window
|
||||
|ZQ| ZQ close window without writing
|
||||
|[| [{char} square bracket command (see |[| below)
|
||||
\ not used
|
||||
|]| ]{char} square bracket command (see |]| below)
|
||||
@ -825,7 +828,7 @@ tag char note action in Normal mode ~
|
||||
|zD| zD delete folds recursively
|
||||
|zE| zE eliminate all folds
|
||||
|zF| zF create a fold for N lines
|
||||
|zG| zG mark word as good spelled word
|
||||
|zG| zG temporarily mark word as correctly spelled
|
||||
|zH| zH when 'wrap' off scroll half a screenwidth
|
||||
to the right
|
||||
|zL| zL when 'wrap' off scroll half a screenwidth
|
||||
@ -834,7 +837,7 @@ tag char note action in Normal mode ~
|
||||
|zN| zN set 'foldenable'
|
||||
|zO| zO open folds recursively
|
||||
|zR| zR set 'foldlevel' to the deepest fold
|
||||
|zW| zW mark word as wrong (bad) spelled word
|
||||
|zW| zW temporarily mark word as incorrectly spelled
|
||||
|zX| zX re-apply 'foldlevel'
|
||||
|z^| z^ cursor on line N (default line above
|
||||
window), otherwise like "z-"
|
||||
@ -846,7 +849,7 @@ tag char note action in Normal mode ~
|
||||
position the cursor at the end (right side)
|
||||
of the screen
|
||||
|zf| zf{motion} create a fold for Nmove text
|
||||
|zg| zg mark word as good spelled word
|
||||
|zg| zg permanently mark word as correctly spelled
|
||||
|zh| zh when 'wrap' off scroll screen N characters
|
||||
to the right
|
||||
|zi| zi toggle 'foldenable'
|
||||
@ -867,7 +870,7 @@ tag char note action in Normal mode ~
|
||||
|zuW| zuW undo |zW|
|
||||
|zuG| zuG undo |zG|
|
||||
|zv| zv open enough folds to view the cursor line
|
||||
|zw| zw mark word as wrong (bad) spelled word
|
||||
|zw| zw permanently mark word as incorrectly spelled
|
||||
|zx| zx re-apply 'foldlevel' and do "zv"
|
||||
|zz| zz redraw, cursor line at center of window
|
||||
|z<Left>| z<Left> same as "zh"
|
||||
@ -1053,7 +1056,7 @@ tag command action in Command-line editing mode ~
|
||||
|c_CTRL-R_CTRL-O| CTRL-R CTRL-O {regname}
|
||||
insert the contents of a register or object
|
||||
under the cursor literally
|
||||
CTRL-S (used for terminal control flow)
|
||||
CTRL-S not used, or used for terminal control flow
|
||||
|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|
||||
|c_CTRL-U| CTRL-U remove all characters
|
||||
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three
|
||||
@ -1111,7 +1114,7 @@ tag char action in Terminal-Job mode ~
|
||||
|t_CTRL-W_:| CTRL-W : enter an Ex command
|
||||
|t_CTRL-W_.| CTRL-W . type CTRL-W 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
|
||||
|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
|
||||
@ -1256,11 +1259,13 @@ tag command action ~
|
||||
|:cunmenu| :cunme[nu] remove menu for Command-line mode
|
||||
|:cwindow| :cw[indow] open or close quickfix window
|
||||
|:delete| :d[elete] delete lines
|
||||
|:delmarks| :delm[arks] delete marks
|
||||
|:debug| :deb[ug] run a command in debugging mode
|
||||
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|
||||
|:def| :def define a Vim9 user function
|
||||
|:defcompile| :defc[ompile] compile Vim9 user functions in current script
|
||||
|:delcommand| :delc[ommand] delete user-defined command
|
||||
|:delfunction| :delf[unction] delete a user function
|
||||
|:delmarks| :delm[arks] delete marks
|
||||
|:diffupdate| :dif[fupdate] update 'diff' buffers
|
||||
|:diffget| :diffg[et] remove differences in current buffer
|
||||
|:diffoff| :diffo[ff] switch off diff mode
|
||||
@ -1270,9 +1275,9 @@ tag command action ~
|
||||
|:diffthis| :diffthis make current window a diff window
|
||||
|:digraphs| :dig[raphs] show or enter digraphs
|
||||
|:display| :di[splay] display registers
|
||||
|:disassemble| :disa[ssemble] disassemble Vim9 user function
|
||||
|:djump| :dj[ump] jump to #define
|
||||
|: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
|
||||
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|
||||
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|
||||
@ -1291,15 +1296,17 @@ tag command action ~
|
||||
|:else| :el[se] part of an :if command
|
||||
|:elseif| :elsei[f] part of an :if command
|
||||
|:emenu| :em[enu] execute a menu by name
|
||||
|:enddef| :enddef end of a user function started with :def
|
||||
|:endif| :en[dif] end previous :if
|
||||
|: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
|
||||
|:endwhile| :endw[hile] end previous :while
|
||||
|:enew| :ene[w] edit a new, unnamed buffer
|
||||
|:ex| :ex same as ":edit"
|
||||
|:execute| :exe[cute] execute result of expressions
|
||||
|:exit| :exi[t] same as ":xit"
|
||||
|:export| :exp[ort] Vim9: export an item from a script
|
||||
|:exusage| :exu[sage] overview of Ex commands
|
||||
|:file| :f[ile] show or set the current file name
|
||||
|:files| :files list all files in the buffer list
|
||||
@ -1341,6 +1348,7 @@ tag command action ~
|
||||
|:imap| :im[ap] like ":map" but for Insert mode
|
||||
|:imapclear| :imapc[lear] like ":mapclear" but 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
|
||||
|:inoreabbrev| :inorea[bbrev] like ":noreabbrev" but for Insert mode
|
||||
|:inoremenu| :inoreme[nu] like ":noremenu" but for Insert mode
|
||||
@ -1682,6 +1690,7 @@ tag command action ~
|
||||
|:version| :ve[rsion] print version number and other info
|
||||
|:verbose| :verb[ose] execute command with 'verbose' set
|
||||
|:vertical| :vert[ical] make following command split vertically
|
||||
|:vim9script| :vim9[script] indicates Vim9 script file
|
||||
|:vimgrep| :vim[grep] search for pattern in files
|
||||
|:vimgrepadd| :vimgrepa[dd] like :vimgrep, but append to current list
|
||||
|:visual| :vi[sual] same as ":edit", but turns off "Ex" mode
|
||||
@ -1713,7 +1722,7 @@ tag command action ~
|
||||
|:wqall| :wqa[ll] write all changed buffers and quit Vim
|
||||
|:wundo| :wu[ndo] write undo information to a file
|
||||
|:wviminfo| :wv[iminfo] write to viminfo file
|
||||
|:xit| :x[it] write if buffer changed and quit window or Vim
|
||||
|:xit| :x[it] write if buffer changed and close window
|
||||
|:xall| :xa[ll] same as ":wqall"
|
||||
|:xmapclear| :xmapc[lear] remove all mappings for Visual mode
|
||||
|:xmap| :xm[ap] like ":map" but for Visual mode
|
||||
|
@ -1,4 +1,4 @@
|
||||
*insert.txt* For Vim version 8.1. Last change: 2019 Oct 20
|
||||
*insert.txt* For Vim version 8.2. Last change: 2020 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -154,6 +154,8 @@ CTRL-R CTRL-R {register} *i_CTRL-R_CTRL-R*
|
||||
you also want to avoid these, use CTRL-R CTRL-O, see below.
|
||||
The '.' register (last inserted text) is still inserted as
|
||||
typed.
|
||||
After this command, the '.' register contains the text from
|
||||
the register as if it was inserted by typing it.
|
||||
|
||||
CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
|
||||
Insert the contents of a register literally and don't
|
||||
@ -163,6 +165,9 @@ CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
|
||||
Does not replace characters!
|
||||
The '.' register (last inserted text) is still inserted as
|
||||
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 {register} *i_CTRL-R_CTRL-P*
|
||||
Insert the contents of a register literally and fix the
|
||||
@ -170,6 +175,9 @@ CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
|
||||
Does not replace characters!
|
||||
The '.' register (last inserted text) is still inserted as
|
||||
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*
|
||||
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.
|
||||
Note: When CTRL-V is mapped (e.g., to paste text) you can
|
||||
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*
|
||||
CTRL-Q Same as CTRL-V.
|
||||
Note: Some terminal connections may eat CTRL-Q, it doesn't
|
||||
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
|
||||
be given to complete words or scroll the window. See
|
||||
|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-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*
|
||||
movement, if the cursor stays within
|
||||
same the line
|
||||
movement, if the cursor stays within the
|
||||
same line
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
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.
|
||||
Also, when doing completion with 'complete' mappings apply as usual.
|
||||
|
||||
Note: While completion is active Insert mode can't be used recursively.
|
||||
Mappings that somehow invoke ":normal i.." will generate an E523 error.
|
||||
*E578* *E565*
|
||||
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
|
||||
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.
|
||||
|
||||
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: >
|
||||
let matches = ... list of words ...
|
||||
@ -1101,7 +1119,8 @@ items:
|
||||
empty when non-zero this match will be added even when it is
|
||||
an empty string
|
||||
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
|
||||
an item does not meet these requirements then an error message is given and
|
||||
@ -1140,7 +1159,7 @@ 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 initally hidden and
|
||||
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
|
||||
@ -2001,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.
|
||||
A similar thing happens with 'fileencodings'.
|
||||
|
||||
On non-MS-DOS, Win32, and OS/2 systems the message "[dos format]" is shown if
|
||||
a file is read in 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
|
||||
a file is read in Unix format.
|
||||
On non-Macintosh systems, the message "[Mac format]" is shown if a file is
|
||||
On non-Win32 systems the message "[dos format]" is shown if a file is read in
|
||||
DOS format, to remind you that something unusual is done.
|
||||
On Macintosh and Win32 the message "[unix format]" is shown if a file is read
|
||||
in Unix format.
|
||||
On non-Macintosh systems, the message "[mac format]" is shown if a file is
|
||||
read in Mac format.
|
||||
|
||||
An example on how to use ":r !": >
|
||||
|
@ -1,4 +1,4 @@
|
||||
*intro.txt* For Vim version 8.1. Last change: 2019 Nov 11
|
||||
*intro.txt* For Vim version 8.2. Last change: 2020 May 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -121,14 +121,16 @@ http://www.vim.org/maillist.php
|
||||
|
||||
Bug reports: *bugs* *bug-reports* *bugreport.vim*
|
||||
|
||||
There are two ways to report bugs, both work:
|
||||
1. Send bug reports to: Vim Developers <vim-dev@vim.org>
|
||||
There are three ways to report bugs:
|
||||
1. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||
The text will be forwarded to the vim-dev maillist.
|
||||
2. For issues with runtime files, look in the header for an email address or
|
||||
any other way to report it to the maintainer.
|
||||
3. Send bug reports to: Vim Developers <vim-dev@vim.org>
|
||||
This is a maillist, you need to become a member first and many people will
|
||||
see the message. If you don't want that, e.g. because it is a security
|
||||
issue, send it to <bugs@vim.org>, this only goes to the Vim maintainer
|
||||
(that's Bram).
|
||||
2. Open an issue on GitHub: https://github.com/vim/vim/issues
|
||||
The text will be forwarded to the vim-dev maillist.
|
||||
|
||||
Please be brief; all the time that is spent on answering mail is subtracted
|
||||
from the time that is spent on improving Vim! Always give a reproducible
|
||||
|
@ -58,7 +58,7 @@ substr($0,length($0),1) == "~" { print "<B><FONT COLOR=\"PURPLE\">" substr($0,1,
|
||||
#
|
||||
#ad hoc code
|
||||
#
|
||||
/^"\|\& / {gsub(/\|/,"\\|"); }
|
||||
/^"\|& / {gsub(/\|/,"\\|"); }
|
||||
/ = b / {gsub(/ b /," \\b "); }
|
||||
#
|
||||
# one letter tag
|
||||
|
@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.1. Last change: 2019 Nov 09
|
||||
*map.txt* For Vim version 8.2. Last change: 2020 Apr 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -845,8 +845,9 @@ 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-V CTRL-V, if you get
|
||||
one byte then modifyOtherKeys is off, if you get <1b>27;5;118~ then it is on.
|
||||
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.
|
||||
@ -1044,7 +1045,8 @@ See |:verbose-cmd| for more information.
|
||||
See |:map-<buffer>| for the optional <buffer> argument.
|
||||
|
||||
*: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
|
||||
with the {rhs}. This is done so that you can even
|
||||
remove abbreviations after expansion. To avoid
|
||||
@ -1059,7 +1061,8 @@ See |:verbose-cmd| for more information.
|
||||
Same as ":ab", but for Command-line mode only.
|
||||
|
||||
*: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[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
||||
@ -1071,7 +1074,8 @@ See |:verbose-cmd| for more information.
|
||||
Same as ":ab", but for Insert mode only.
|
||||
|
||||
*: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[bbrev] [<expr>] [<buffer>] [lhs] [rhs]
|
||||
@ -1488,7 +1492,7 @@ The valid escape sequences are
|
||||
<bang> (See the '-bang' attribute) Expands to a ! if the
|
||||
command was executed with a ! modifier, otherwise
|
||||
expands to nothing.
|
||||
*<mods>*
|
||||
*<mods>* *:command-modifiers*
|
||||
<mods> The command modifiers, if specified. Otherwise, expands to
|
||||
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|
||||
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|
||||
|
@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 8.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.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user