mirror of
https://github.com/zoriya/vim.git
synced 2025-12-11 17:56:17 +00:00
Compare commits
877 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
32f649e1fc | ||
|
|
2dfb38659c | ||
|
|
10d77eb6ac | ||
|
|
e0659a680c | ||
|
|
adc2182c40 | ||
|
|
337ae06ff9 | ||
|
|
27b6056d85 | ||
|
|
96bcc5e6cd | ||
|
|
42431a7aa0 | ||
|
|
316dca03ca | ||
|
|
4228bec0ae | ||
|
|
30fec7bc7f | ||
|
|
21377c8d5f | ||
|
|
b3c5284c5b | ||
|
|
b05b10a3c0 | ||
|
|
cab49dff91 | ||
|
|
a29a37d533 | ||
|
|
0b2f94db23 | ||
|
|
662db673f9 | ||
|
|
e9d4b58dda | ||
|
|
fd30cd41dc | ||
|
|
f63c49d4e9 | ||
|
|
6eb634ef1f | ||
|
|
ec737235c7 | ||
|
|
b4b0a08c81 | ||
|
|
ba7cc9f83f | ||
|
|
4cf35c2fa4 | ||
|
|
0c1f3f4d49 | ||
|
|
c725c0ad9b | ||
|
|
ede547afcf | ||
|
|
128773b21d | ||
|
|
e698addf88 | ||
|
|
49789dc987 | ||
|
|
2f70a34e2e | ||
|
|
0065402f9a | ||
|
|
c30846f525 | ||
|
|
cab35ad26d | ||
|
|
c2b4c62d0b | ||
|
|
542512a3e5 | ||
|
|
b75d09d42b | ||
|
|
c41fc713ba | ||
|
|
e627fb00fc | ||
|
|
b292a2a04c | ||
|
|
4e509b6369 | ||
|
|
5ec3aea854 | ||
|
|
d58e929fa2 | ||
|
|
95474ca34c | ||
|
|
ba81e4660b | ||
|
|
b18919146d | ||
|
|
1d87f516f2 | ||
|
|
6145285c90 | ||
|
|
acf1728ef5 | ||
|
|
c98d5ee923 | ||
|
|
3c2d6534ef | ||
|
|
5e3d6ca435 | ||
|
|
f3d419d719 | ||
|
|
445edda2f9 | ||
|
|
4124e72373 | ||
|
|
164c60f5b1 | ||
|
|
d2c340a6a6 | ||
|
|
e279335752 | ||
|
|
48ac02c9eb | ||
|
|
2a8a3ecb67 | ||
|
|
13d831ff0c | ||
|
|
fd0e75683f | ||
|
|
6d0efdaab5 | ||
|
|
870b05c4c0 | ||
|
|
d91f704b03 | ||
|
|
7eb4652e74 | ||
|
|
b0d3f878a4 | ||
|
|
9980835c68 | ||
|
|
946ffd4606 | ||
|
|
657ae0bddd | ||
|
|
de1b092c77 | ||
|
|
7a8ef14c69 | ||
|
|
b57aa92d2c | ||
|
|
f82a2d2e5f | ||
|
|
9c26303293 | ||
|
|
0215e8e15b | ||
|
|
540fc6fbdb | ||
|
|
45d9d02d71 | ||
|
|
81af9250a7 | ||
|
|
7c5676b5d6 | ||
|
|
56f7804065 | ||
|
|
3d27070767 | ||
|
|
9c52c3a0a1 | ||
|
|
2e2e13ca14 | ||
|
|
e980d8a934 | ||
|
|
005c3c27ee | ||
|
|
bf9680e441 | ||
|
|
863053d1d4 | ||
|
|
94950a9ee0 | ||
|
|
4161dccada | ||
|
|
d4ddfafc2a | ||
|
|
df6b11e955 | ||
|
|
f666f0e5c0 | ||
|
|
ef2f028a66 | ||
|
|
0785ccf995 | ||
|
|
4dbbff57ba | ||
|
|
0818b87cbf | ||
|
|
96e5ceed93 | ||
|
|
166af9bb6f | ||
|
|
644d37b84d | ||
|
|
00b78c17b2 | ||
|
|
7ad7d01074 | ||
|
|
03531f79c3 | ||
|
|
3c53160348 | ||
|
|
66b4bf8980 | ||
|
|
bf55e1442d | ||
|
|
67b3f99eb0 | ||
|
|
a3e7b1f42b | ||
|
|
2a8caa414e | ||
|
|
37dd018cdd | ||
|
|
27d9eceb66 | ||
|
|
22e193ddd5 | ||
|
|
2d0860d06c | ||
|
|
dba01a0197 | ||
|
|
16a6165bb3 | ||
|
|
0536570fa2 | ||
|
|
2d73ff4500 | ||
|
|
b3ae56cf2b | ||
|
|
ee236d0d19 | ||
|
|
3ca71f1f1f | ||
|
|
beca055b0c | ||
|
|
22df3f90fc | ||
|
|
c395a3aac2 | ||
|
|
fc3c83e47e | ||
|
|
264e9fd61b | ||
|
|
6b5ef067a5 | ||
|
|
786989ba37 | ||
|
|
8bbe993c79 | ||
|
|
ebbcb824ba | ||
|
|
b8e86705ca | ||
|
|
bd74325960 | ||
|
|
727c876b78 | ||
|
|
483c5d80a7 | ||
|
|
680eeca955 | ||
|
|
f75d498844 | ||
|
|
b60574ba21 | ||
|
|
464c92545a | ||
|
|
77a0aa457d | ||
|
|
78f74a91bf | ||
|
|
a4f332b44c | ||
|
|
624891f3ef | ||
|
|
d5784f9fc4 | ||
|
|
423f97277d | ||
|
|
341ad7a699 | ||
|
|
4a74803ef8 | ||
|
|
c2a406b317 | ||
|
|
d622beb3c3 | ||
|
|
a8fc79895e | ||
|
|
173c98550f | ||
|
|
3967692f9e | ||
|
|
417f5e7f11 | ||
|
|
f9b5ef8c88 | ||
|
|
3c9ab1c0e0 | ||
|
|
006590697c | ||
|
|
62b42181fb | ||
|
|
b05034a4ed | ||
|
|
d32a99a6d9 | ||
|
|
3368ea2152 | ||
|
|
2eea198564 | ||
|
|
24ea3babed | ||
|
|
60bb4e1b46 | ||
|
|
217d285fdd | ||
|
|
73a92fe013 | ||
|
|
66e1f8860a | ||
|
|
832f80e310 | ||
|
|
c24b6977a1 | ||
|
|
da9836cfa9 | ||
|
|
7f03644116 | ||
|
|
35f330c0d2 | ||
|
|
db84e4599c | ||
|
|
d04f440259 | ||
|
|
d732f9aee0 | ||
|
|
10d4664330 | ||
|
|
abf39e880d | ||
|
|
e00289df69 | ||
|
|
755bd26c59 | ||
|
|
bb3d5dc320 | ||
|
|
cda000e97f | ||
|
|
4421d6af22 | ||
|
|
bfc8b97639 | ||
|
|
dc685aba75 | ||
|
|
daf3b39559 | ||
|
|
673b87b577 | ||
|
|
35a3423c6a | ||
|
|
4a474d36d7 | ||
|
|
b744b2fa32 | ||
|
|
2a988a162c | ||
|
|
0fcd237614 | ||
|
|
6b6eedfc1c | ||
|
|
580061a821 | ||
|
|
31710268ed | ||
|
|
f354981d4b | ||
|
|
7900f14991 | ||
|
|
8df7f88890 | ||
|
|
2f1e050414 | ||
|
|
0e97531298 | ||
|
|
2bd6a1b542 | ||
|
|
0be992e347 | ||
|
|
d7b734a493 | ||
|
|
ede981a27f | ||
|
|
fae6c1a02d | ||
|
|
9bc040c8e1 | ||
|
|
0ee8df9ce5 | ||
|
|
d70b2a8355 | ||
|
|
7fc0c065f0 | ||
|
|
2d7c47de45 | ||
|
|
d5ee95f964 | ||
|
|
d54a688130 | ||
|
|
9de9997949 | ||
|
|
bc226b6ded | ||
|
|
314f11d44c | ||
|
|
b61f95c31f | ||
|
|
82d1c33a8a | ||
|
|
6af737fdb4 | ||
|
|
4eccc3e301 | ||
|
|
5eba45c74b | ||
|
|
3479c5dc48 | ||
|
|
e2b590ebf6 | ||
|
|
463ee340d0 | ||
|
|
09092155a6 | ||
|
|
83687a7215 | ||
|
|
a0a2d437c2 | ||
|
|
96118f3e38 | ||
|
|
2d231cb89c | ||
|
|
5a7d7cde15 | ||
|
|
db41fa255d | ||
|
|
06583f137b | ||
|
|
1549e29af4 | ||
|
|
c0cba4d9b1 | ||
|
|
b92159d59e | ||
|
|
7ba6ed34fe | ||
|
|
bebca9daa4 | ||
|
|
706e84b3ea | ||
|
|
311dc17d96 | ||
|
|
d3dd26658c | ||
|
|
dd10ce91a8 | ||
|
|
6ab1cc4d65 | ||
|
|
33aea1875c | ||
|
|
0390ded91b | ||
|
|
c3d2c4478d | ||
|
|
3737f8988c | ||
|
|
97cfe90de8 | ||
|
|
e90ee31c40 | ||
|
|
076e8b2a0b | ||
|
|
84f888a5b3 | ||
|
|
74cbdf0334 | ||
|
|
a9d0cba165 | ||
|
|
5c3bd0a0fb | ||
|
|
e4ce65d445 | ||
|
|
257a9c873f | ||
|
|
3ea5fa7a11 | ||
|
|
1affd72471 | ||
|
|
80a7dcf8b5 | ||
|
|
150a1321b2 | ||
|
|
280a29f931 | ||
|
|
a411e5d97d | ||
|
|
3832c466d7 | ||
|
|
f9bb734367 | ||
|
|
006d2b036b | ||
|
|
a68cac57de | ||
|
|
5aae419afe | ||
|
|
245803840b | ||
|
|
7f0f621c4c | ||
|
|
57adda1e90 | ||
|
|
bf65051b7b | ||
|
|
61a91766f7 | ||
|
|
4b22cdb060 | ||
|
|
413177336f | ||
|
|
bdc975cdfe | ||
|
|
bbdcb4848a | ||
|
|
3f97ebf730 | ||
|
|
e04abda52f | ||
|
|
90df5507c0 | ||
|
|
3a0ae77fe6 | ||
|
|
9379f83030 | ||
|
|
4b26dff329 | ||
|
|
92096d529e | ||
|
|
c0f15ce171 | ||
|
|
44886d93c4 | ||
|
|
1a509df322 | ||
|
|
f4274feeef | ||
|
|
f9d5ca1de4 | ||
|
|
7e88c3dc19 | ||
|
|
00ec6854e3 | ||
|
|
95e8579e1c | ||
|
|
121d95f7d1 | ||
|
|
3b0dd7cd35 | ||
|
|
a539df01f8 | ||
|
|
d1cb65e440 | ||
|
|
a621a03839 | ||
|
|
760d14a55c | ||
|
|
7805004319 | ||
|
|
ca8a4dfe7a | ||
|
|
3b1c48569d | ||
|
|
a9d52e3b79 | ||
|
|
a26559b553 | ||
|
|
460fbaca72 | ||
|
|
8408a9ad9b | ||
|
|
f878bcfb2e | ||
|
|
68392724b8 | ||
|
|
8b68277fdc | ||
|
|
0e1673aef4 | ||
|
|
3b72f1d2aa | ||
|
|
48bae372e9 | ||
|
|
30a8635b56 | ||
|
|
40af4e3903 | ||
|
|
1587a1e37d | ||
|
|
8ada2cca0a | ||
|
|
16c98f9c9f | ||
|
|
92048a3110 | ||
|
|
162bd91564 | ||
|
|
8e46927a32 | ||
|
|
1dba0fbb7a | ||
|
|
477db060eb | ||
|
|
6e202e52b7 | ||
|
|
e0021c79a5 | ||
|
|
c6485bceb1 | ||
|
|
2929160846 | ||
|
|
59c0395e6b | ||
|
|
5ac3b1aae2 | ||
|
|
8765a4ac3a | ||
|
|
3b95389d45 | ||
|
|
611df5b96e | ||
|
|
5e109c4ab0 | ||
|
|
0ed0eea206 | ||
|
|
f82bac3717 | ||
|
|
c3301874a6 | ||
|
|
6fc45b55fc | ||
|
|
7fd7320014 | ||
|
|
fa0ff9aedf | ||
|
|
8d9b40e71a | ||
|
|
0fe849a13b | ||
|
|
0ad014c8a0 | ||
|
|
904fb861e7 | ||
|
|
22b306f3e0 | ||
|
|
d68554d4fe | ||
|
|
bed7beca58 | ||
|
|
8220a6813e | ||
|
|
7510fe7433 | ||
|
|
e6dc573b6e | ||
|
|
170bf1aed5 | ||
|
|
365bdf7a7b | ||
|
|
eb80f04f6e | ||
|
|
1b20d3d608 | ||
|
|
1deee627fa | ||
|
|
59f931ef54 | ||
|
|
72ada0f8c2 | ||
|
|
ffbbcb597c | ||
|
|
2c3b1d9976 | ||
|
|
904c622b10 | ||
|
|
5dff57d714 | ||
|
|
9f5e36bc60 | ||
|
|
b31e4383cd | ||
|
|
4f99eae082 | ||
|
|
fa9a37096d | ||
|
|
4c3a326c53 | ||
|
|
2a7e2a6254 | ||
|
|
ca8c9867c2 | ||
|
|
f691b84fba | ||
|
|
f70e3d6c7e | ||
|
|
d497a30cbe | ||
|
|
f5963f719e | ||
|
|
c88ebf7fa8 | ||
|
|
8a09b98ff1 | ||
|
|
27c735b2f8 | ||
|
|
fa5d1e63c7 | ||
|
|
2334b6d594 | ||
|
|
766fb0d2b2 | ||
|
|
c89533b525 | ||
|
|
e06c188bbf | ||
|
|
cdda8fe1c6 | ||
|
|
60aad974be | ||
|
|
ce69e82711 | ||
|
|
b65905262b | ||
|
|
b8521960d6 | ||
|
|
c095b280df | ||
|
|
5bedfc6091 | ||
|
|
9c44972817 | ||
|
|
cb9d45cb84 | ||
|
|
49771f4fb0 | ||
|
|
c7040a5615 | ||
|
|
704ac92541 | ||
|
|
fa01c39d48 | ||
|
|
973bd47c48 | ||
|
|
fcb7ab6117 | ||
|
|
9e193ac732 | ||
|
|
97ff9de4a5 | ||
|
|
25f076536f | ||
|
|
3804aebf60 | ||
|
|
368373e909 | ||
|
|
a7781e0516 | ||
|
|
c400cb9ca7 | ||
|
|
01a8f38fcd | ||
|
|
d160c34019 | ||
|
|
d28478b557 | ||
|
|
16d79a3b62 | ||
|
|
4d32c2d31f | ||
|
|
69154f22a6 | ||
|
|
607cc1e015 | ||
|
|
6df6f47d6d | ||
|
|
dc536095ac | ||
|
|
72597a57b5 | ||
|
|
9855d6b361 | ||
|
|
5074e3018b | ||
|
|
fdf732eed7 | ||
|
|
7c86f4cca3 | ||
|
|
85363abfb1 | ||
|
|
ac550fdb4b | ||
|
|
0d2e4fce8d | ||
|
|
55d5c0348c | ||
|
|
bd5e15fd5c | ||
|
|
02c707a87d | ||
|
|
76b96fc08b | ||
|
|
58f0a1f8e1 | ||
|
|
c5604bc165 | ||
|
|
f91787cb9a | ||
|
|
11505dcd2b | ||
|
|
624c7aa691 | ||
|
|
349b2fb048 | ||
|
|
0ba042961f | ||
|
|
26dcc7e8df | ||
|
|
61623362be | ||
|
|
865242e121 | ||
|
|
23c347c66b | ||
|
|
66bd1c9b54 | ||
|
|
1a38442dbc | ||
|
|
b28ebbca84 | ||
|
|
c8bbaa3b18 | ||
|
|
cc448b373d | ||
|
|
d43848c0dd | ||
|
|
164fca39bd | ||
|
|
7abcaab78d | ||
|
|
0c56c60a0f | ||
|
|
1c727d8208 | ||
|
|
4d770fb566 | ||
|
|
2cefbedaab | ||
|
|
b02cbe3468 | ||
|
|
69f787af84 | ||
|
|
a9dc375744 | ||
|
|
a3f4166286 | ||
|
|
cabf20199a | ||
|
|
dc781a79b4 | ||
|
|
700303e8f7 | ||
|
|
3acfc30409 | ||
|
|
9028b10dfe | ||
|
|
7e6d3bd3da | ||
|
|
893eaab41f | ||
|
|
622925875c | ||
|
|
9c754c4542 | ||
|
|
06a108f34c | ||
|
|
0bc380a96b | ||
|
|
d04b7507fd | ||
|
|
b0b508808f | ||
|
|
84e67dfa9c | ||
|
|
ab8205e8b8 | ||
|
|
ccd9ccfa59 | ||
|
|
e667c95335 | ||
|
|
0af8cebc6c | ||
|
|
996343d38e | ||
|
|
b2c0350c67 | ||
|
|
730cde924c | ||
|
|
a800b42975 | ||
|
|
d69980f9dd | ||
|
|
644044794e | ||
|
|
0eda7ac7f8 | ||
|
|
51f53dfe17 | ||
|
|
182c5be111 | ||
|
|
ba52cde53d | ||
|
|
e242b83535 | ||
|
|
e77fb8ca53 | ||
|
|
f506c5bb1c | ||
|
|
7cfea75ed6 | ||
|
|
370df58df9 | ||
|
|
883f5d08e4 | ||
|
|
a8ffcbbf5d | ||
|
|
191e0a2bc7 | ||
|
|
80794b1ce6 | ||
|
|
31c8f28cca | ||
|
|
46f9d49601 | ||
|
|
9ea339d58c | ||
|
|
8bcf9654dc | ||
|
|
97ea511bbf | ||
|
|
f9b0129f5f | ||
|
|
6f0d3dd270 | ||
|
|
d5b3a2cbd9 | ||
|
|
cdddaa46a2 | ||
|
|
6a3c997104 | ||
|
|
e0c6a656f3 | ||
|
|
9d6650f6c4 | ||
|
|
debe25a2a5 | ||
|
|
fd29f4628e | ||
|
|
1950c3529b | ||
|
|
56be950094 | ||
|
|
860cae1cec | ||
|
|
945e2dbb63 | ||
|
|
f949563afa | ||
|
|
a76638f47d | ||
|
|
2c704a77c1 | ||
|
|
9160441955 | ||
|
|
bbd6afe03e | ||
|
|
04c9bafa71 | ||
|
|
8cd213c09a | ||
|
|
83d09bb85e | ||
|
|
914703bee2 | ||
|
|
20a825ae0f | ||
|
|
a3ff49fdcc | ||
|
|
6ed8ed84f9 | ||
|
|
fd3e5dc97f | ||
|
|
a17d4c1934 | ||
|
|
504a82173c | ||
|
|
d96699e696 | ||
|
|
8f1f629d85 | ||
|
|
6773b2ba7e | ||
|
|
644fdff7c1 | ||
|
|
9db580634c | ||
|
|
f05e3b0220 | ||
|
|
cdf04208f3 | ||
|
|
97bc5a52c9 | ||
|
|
bc42c1e427 | ||
|
|
5d4c25b335 | ||
|
|
04fa5427b8 | ||
|
|
0e1e25fb0a | ||
|
|
1d68952a3e | ||
|
|
167632fcdd | ||
|
|
6a18eb6f62 | ||
|
|
83ad0147c0 | ||
|
|
07e8db1da5 | ||
|
|
64354da438 | ||
|
|
b230bd5a16 | ||
|
|
9d72807646 | ||
|
|
6a244fefd9 | ||
|
|
442b4225d3 | ||
|
|
e66194a54e | ||
|
|
7db5fc838a | ||
|
|
55debbe384 | ||
|
|
c39125d7c4 | ||
|
|
1d2beae176 | ||
|
|
be18d10fd4 | ||
|
|
b26e6327e6 | ||
|
|
67c5384434 | ||
|
|
ca7e1f2066 | ||
|
|
06b5d5167a | ||
|
|
db7c686ea5 | ||
|
|
b382ad13ca | ||
|
|
f50a2533d0 | ||
|
|
6dc79f2890 | ||
|
|
6019078ece | ||
|
|
7a329911b9 | ||
|
|
c6af8125c7 | ||
|
|
218116c1d0 | ||
|
|
fa7584cb86 | ||
|
|
b702c84d0d | ||
|
|
4890f1f7f4 | ||
|
|
6323508e5e | ||
|
|
4a9b19ace8 | ||
|
|
76e69cef0c | ||
|
|
edac185487 | ||
|
|
927edbd134 | ||
|
|
30bb41445c | ||
|
|
cfc0eee85f | ||
|
|
0bbabe8080 | ||
|
|
823a165119 | ||
|
|
40e6a71c67 | ||
|
|
64486671c3 | ||
|
|
13c4c5da67 | ||
|
|
ff312a4eb8 | ||
|
|
8ce55d13c4 | ||
|
|
2767c60008 | ||
|
|
2e530fa526 | ||
|
|
281798deab | ||
|
|
34b4daf2b7 | ||
|
|
4137564709 | ||
|
|
546b35e190 | ||
|
|
2dfa4d7c13 | ||
|
|
23d99ec5f7 | ||
|
|
fc2d5bdfc6 | ||
|
|
864665d1b2 | ||
|
|
abb8d0b23a | ||
|
|
0b65f8938b | ||
|
|
fff2beeeaa | ||
|
|
00a927d62b | ||
|
|
f1eeae94fd | ||
|
|
70b11cdd56 | ||
|
|
7871a50071 | ||
|
|
9c0044df7c | ||
|
|
2efbc66e26 | ||
|
|
f9ddb94283 | ||
|
|
9dbe4758b1 | ||
|
|
6af0506370 | ||
|
|
2321c9255e | ||
|
|
e685079848 | ||
|
|
9577c3e973 | ||
|
|
54ab0f1e54 | ||
|
|
38ab0e21b8 | ||
|
|
eb4883fabc | ||
|
|
103e6efc84 | ||
|
|
ccbab93b42 | ||
|
|
ae61bcf0ab | ||
|
|
0387e653c8 | ||
|
|
ad249fb74c | ||
|
|
ceb45be4d3 | ||
|
|
317fd3ae3b | ||
|
|
5ea0ac77b3 | ||
|
|
dfdf3c446f | ||
|
|
63fa526b50 | ||
|
|
d25bc23870 | ||
|
|
46475520d7 | ||
|
|
06975a4a98 | ||
|
|
70c49c1af4 | ||
|
|
53339b2877 | ||
|
|
216b71069a | ||
|
|
94127e4abc | ||
|
|
b52073ac11 | ||
|
|
baff0fec3f | ||
|
|
b91e59b0f3 | ||
|
|
639a2554e4 | ||
|
|
8c79cafcfa | ||
|
|
9b73a78ed7 | ||
|
|
08bb82e8c5 | ||
|
|
9c27fc3dba | ||
|
|
97e7a84b6d | ||
|
|
33cfa2b0ee | ||
|
|
595a7bee57 | ||
|
|
581f6dc94d | ||
|
|
37d619f896 | ||
|
|
be678f86d1 | ||
|
|
12682fda7a | ||
|
|
66ca320d9e | ||
|
|
42d57f0017 | ||
|
|
42624592cb | ||
|
|
f679a43dbb | ||
|
|
2498b3ab10 | ||
|
|
8b9c05fa54 | ||
|
|
8006d69d3c | ||
|
|
5e3dae8b6b | ||
|
|
42b4ddab95 | ||
|
|
58cb0898a3 | ||
|
|
8cac9fd020 | ||
|
|
1a89bbe849 | ||
|
|
86ce1cc086 | ||
|
|
72b73c12dc | ||
|
|
89c0ea4ea1 | ||
|
|
3fac56e87e | ||
|
|
a4e782eee0 | ||
|
|
48f80c276b | ||
|
|
25153e127d | ||
|
|
f4d7f944ba | ||
|
|
54c1b4965b | ||
|
|
83bac8b756 | ||
|
|
8a33e74dd2 | ||
|
|
bacd9da40e | ||
|
|
8c83ac3d83 | ||
|
|
175aa24846 | ||
|
|
3a0573acae | ||
|
|
33d0b69ab8 | ||
|
|
165641da25 | ||
|
|
0b69c73411 | ||
|
|
0ca4b350f0 | ||
|
|
b4990bf90b | ||
|
|
0413d48711 | ||
|
|
6dfc28be25 | ||
|
|
cee6a352b2 | ||
|
|
6427c608e7 | ||
|
|
990bb661a1 | ||
|
|
f86f26c06a | ||
|
|
4d526ad35a | ||
|
|
d21d9a6c61 | ||
|
|
c5d5d01ad9 | ||
|
|
6d1dcffc35 | ||
|
|
da4d7a92d5 | ||
|
|
0dbf720d86 | ||
|
|
38ef43b262 | ||
|
|
5075aad6a8 | ||
|
|
7ad01410da | ||
|
|
8d8ef0b0b9 | ||
|
|
fc307fa1a6 | ||
|
|
d836bb90ab | ||
|
|
e4ebd29ea9 | ||
|
|
3ee0229f64 | ||
|
|
c4e4198730 | ||
|
|
6b29b0e809 | ||
|
|
3d63e3f160 | ||
|
|
7e506b6a42 | ||
|
|
6d8027a6c2 | ||
|
|
8065d7fd9c | ||
|
|
2660c0ea9b | ||
|
|
3ea38ef239 | ||
|
|
f68f656213 | ||
|
|
c0880db674 | ||
|
|
9db9d9ce05 | ||
|
|
555cdc2f8c | ||
|
|
3e8cb58725 | ||
|
|
5890b2cf9e | ||
|
|
e37d79928d | ||
|
|
ef3c1a7fd7 | ||
|
|
a17c9cebd3 | ||
|
|
7608643f38 | ||
|
|
d8e21d3deb | ||
|
|
5c73622a90 | ||
|
|
8f3f58f2c3 | ||
|
|
28c3795987 | ||
|
|
ba07ce32cc | ||
|
|
6f97701373 | ||
|
|
70d60e9da1 | ||
|
|
742d1ecd17 | ||
|
|
281daf62aa | ||
|
|
3084894793 | ||
|
|
c7be3f30d0 | ||
|
|
0a1c0ece44 | ||
|
|
088598d7d6 | ||
|
|
5d985b9cca | ||
|
|
f5b6386f4f | ||
|
|
56d1db3067 | ||
|
|
72951077b9 | ||
|
|
d7cd61723e | ||
|
|
d7834d3065 | ||
|
|
243973325e | ||
|
|
f4888d0535 | ||
|
|
43b36a3bc6 | ||
|
|
d32a319f40 | ||
|
|
5ea08a893a | ||
|
|
d3005803d5 | ||
|
|
099d01d4a7 | ||
|
|
19f990e497 | ||
|
|
331dafdbb8 | ||
|
|
4592dee576 | ||
|
|
f11021be13 | ||
|
|
97b9810bdf | ||
|
|
f05da21900 | ||
|
|
2d7ff056e1 | ||
|
|
50daf405f7 | ||
|
|
cde547a8f3 | ||
|
|
34ef52dd56 | ||
|
|
627b1d3862 | ||
|
|
eaf0339211 | ||
|
|
d7d5b47dc7 | ||
|
|
be1138baba | ||
|
|
5462018872 | ||
|
|
21160b9808 | ||
|
|
f6f95d962f | ||
|
|
be2c9ae915 | ||
|
|
954e8c54a0 | ||
|
|
ef94eec644 | ||
|
|
76675565ac | ||
|
|
3234cc6a31 | ||
|
|
e161c791f6 | ||
|
|
eda6eb9f00 | ||
|
|
bb6a705451 | ||
|
|
362f3569ae | ||
|
|
a1381de5f3 | ||
|
|
5b88ba47e8 | ||
|
|
fa316dd1f7 | ||
|
|
2ac5e603d8 | ||
|
|
740885b78b | ||
|
|
ec98647b1c | ||
|
|
2f59b5c1cc | ||
|
|
d0ba34a6e5 | ||
|
|
0af561dbf2 | ||
|
|
60462877cb | ||
|
|
3f269675d4 | ||
|
|
badfde1bfe | ||
|
|
8701cd6a22 | ||
|
|
da9591ecfd | ||
|
|
becf428bc0 | ||
|
|
09736232af | ||
|
|
79ef6d642e | ||
|
|
67b891e16c | ||
|
|
194b94c5a8 | ||
|
|
2db24dc29b | ||
|
|
5b7880dea2 | ||
|
|
86c800a1b3 | ||
|
|
5e69de4421 | ||
|
|
bef9d835f5 | ||
|
|
319bdbd5ef | ||
|
|
c066202665 | ||
|
|
fa68b0fc1a | ||
|
|
183bb3e4b6 | ||
|
|
1d7ad738e5 | ||
|
|
dc7e00e848 | ||
|
|
1c6136a8a5 | ||
|
|
2d6db76d97 | ||
|
|
e484c94514 | ||
|
|
8ae39d8432 | ||
|
|
b5cdf2eab3 | ||
|
|
32b485f2b0 | ||
|
|
5e9b4540fd | ||
|
|
801f8b865c | ||
|
|
6bef63c651 | ||
|
|
9f8650c969 | ||
|
|
6ec0a6c43d | ||
|
|
363cb67afa | ||
|
|
20de1c20e6 | ||
|
|
996b6d86cc | ||
|
|
b245016c15 | ||
|
|
055a2ba10e | ||
|
|
a2974d70f1 | ||
|
|
2572492eba | ||
|
|
3f947ead6f | ||
|
|
d31aca26de | ||
|
|
262735ed58 | ||
|
|
9fa49da747 | ||
|
|
fcfbc670c7 | ||
|
|
cdcaa58929 | ||
|
|
13df0fea4b | ||
|
|
031e0dd663 | ||
|
|
8e258a4a94 | ||
|
|
8d5946760b | ||
|
|
bbc936bebe | ||
|
|
2bc76e617b | ||
|
|
a0b1997e13 | ||
|
|
a48b1659b3 | ||
|
|
0c77b7ba51 | ||
|
|
b849e713e2 | ||
|
|
f061e0befb | ||
|
|
8d3b8c4a8a | ||
|
|
0dc79e8594 | ||
|
|
fab578f605 | ||
|
|
782027ee28 | ||
|
|
85388b5652 | ||
|
|
dc40a2b5f5 | ||
|
|
2a7b9ee0a7 | ||
|
|
adb09c2e69 | ||
|
|
bd42a0f5e6 | ||
|
|
1e7ac8596a | ||
|
|
da2f99aa8a | ||
|
|
746ebd3b6a | ||
|
|
8b38e2416c | ||
|
|
3a6eaa58d5 | ||
|
|
feba08b22a | ||
|
|
bfa2824d7e | ||
|
|
0bd40c0c0a | ||
|
|
446b179cac | ||
|
|
f56322c8b3 | ||
|
|
9085f80276 | ||
|
|
535c540085 | ||
|
|
cdb92aff69 | ||
|
|
2c2398c0aa | ||
|
|
9e70cf192e | ||
|
|
42b9436cf8 | ||
|
|
4be506815d | ||
|
|
c0a6fac5af | ||
|
|
a41b1395cb | ||
|
|
30f9ca9f59 | ||
|
|
cd8b20a914 | ||
|
|
4bdbbf7066 | ||
|
|
32f31b1a0f | ||
|
|
a9d455172f | ||
|
|
b85cb21cb1 | ||
|
|
2c4278fc73 | ||
|
|
bf0c4526bf | ||
|
|
e1fbddcd62 | ||
|
|
af0167fa39 | ||
|
|
8f0b2d46c7 | ||
|
|
856b9fef3a | ||
|
|
78a1531005 | ||
|
|
0c094b9d7f | ||
|
|
d30f9d92c4 | ||
|
|
985cb44573 | ||
|
|
f1726cc8d6 | ||
|
|
5fd0ca70d3 | ||
|
|
0c7ce77a00 | ||
|
|
4221e5fa6c | ||
|
|
0ab2a8870c | ||
|
|
3c65e314b4 | ||
|
|
5135d46481 | ||
|
|
81d00078be | ||
|
|
876f6d7f3c | ||
|
|
04c0f8a9b0 | ||
|
|
bd1e5d2e1d | ||
|
|
f242762d0d | ||
|
|
94ba1ce055 | ||
|
|
92a990ba84 | ||
|
|
fe81d45db4 | ||
|
|
7bfef80fab |
51
.gitignore
vendored
Normal file
51
.gitignore
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Unixen: object and executable files.
|
||||||
|
*.o
|
||||||
|
src/vim
|
||||||
|
src/xxd/xxd
|
||||||
|
src/auto/if_perl.c
|
||||||
|
src/tags
|
||||||
|
|
||||||
|
# We do need src/auto/configure.
|
||||||
|
src/auto/config.aap
|
||||||
|
src/auto/config.cache
|
||||||
|
src/auto/config.h
|
||||||
|
src/auto/config.log
|
||||||
|
src/auto/config.mk
|
||||||
|
src/auto/config.status
|
||||||
|
src/auto/configure.aap
|
||||||
|
src/auto/osdef.h
|
||||||
|
src/auto/link.log
|
||||||
|
src/auto/link.sed
|
||||||
|
src/auto/pathdef.c
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
*.exe
|
||||||
|
*.idb
|
||||||
|
*.manifest
|
||||||
|
*.exp
|
||||||
|
*.obj
|
||||||
|
*.pdb
|
||||||
|
*.ilk
|
||||||
|
*.sln
|
||||||
|
*.suo
|
||||||
|
*.res
|
||||||
|
*.RES
|
||||||
|
src/pathdef.c
|
||||||
|
src/Obj*/pathdef.c
|
||||||
|
gvimext.dll
|
||||||
|
gvimext.lib
|
||||||
|
|
||||||
|
# All platforms
|
||||||
|
*.rej
|
||||||
|
*.orig
|
||||||
|
*.mo
|
||||||
|
*.swp
|
||||||
|
*~
|
||||||
|
|
||||||
|
# Generated by "make test"
|
||||||
|
src/po/*.ck
|
||||||
|
src/testdir/mbyte.vim
|
||||||
|
src/testdir/mzscheme.vim
|
||||||
|
src/testdir/small.vim
|
||||||
|
src/testdir/tiny.vim
|
||||||
|
src/testdir/test*.out
|
||||||
8
Contents
8
Contents
@@ -9,10 +9,10 @@ Vim Vi IMproved. A clone of the UNIX text editor Vi. Very useful
|
|||||||
messages, shows current file name in window title, on-line
|
messages, shows current file name in window title, on-line
|
||||||
help, rectangular cut/paste, etc., etc., etc...
|
help, rectangular cut/paste, etc., etc., etc...
|
||||||
|
|
||||||
Version 7.2. Also runs under UNIX, MSDOS and other systems.
|
Version 7.3. Also runs under UNIX, MSDOS and other systems.
|
||||||
vim72rt.tgz contains the documentation and syntax files.
|
vim73rt.tgz contains the documentation and syntax files.
|
||||||
vim72bin.tgz contains the binaries.
|
vim73bin.tgz contains the binaries.
|
||||||
vim72src.tgz contains the sources.
|
vim73src.tgz contains the sources.
|
||||||
Author: Bram Moolenaar et al.
|
Author: Bram Moolenaar et al.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
24
Filelist
24
Filelist
@@ -7,6 +7,7 @@ SRC_ALL = \
|
|||||||
src/arabic.c \
|
src/arabic.c \
|
||||||
src/arabic.h \
|
src/arabic.h \
|
||||||
src/ascii.h \
|
src/ascii.h \
|
||||||
|
src/blowfish.c \
|
||||||
src/buffer.c \
|
src/buffer.c \
|
||||||
src/charset.c \
|
src/charset.c \
|
||||||
src/diff.c \
|
src/diff.c \
|
||||||
@@ -38,6 +39,7 @@ SRC_ALL = \
|
|||||||
src/mark.c \
|
src/mark.c \
|
||||||
src/mbyte.c \
|
src/mbyte.c \
|
||||||
src/memfile.c \
|
src/memfile.c \
|
||||||
|
src/memfile_test.c \
|
||||||
src/memline.c \
|
src/memline.c \
|
||||||
src/menu.c \
|
src/menu.c \
|
||||||
src/message.c \
|
src/message.c \
|
||||||
@@ -58,6 +60,7 @@ SRC_ALL = \
|
|||||||
src/regexp.h \
|
src/regexp.h \
|
||||||
src/screen.c \
|
src/screen.c \
|
||||||
src/search.c \
|
src/search.c \
|
||||||
|
src/sha256.c \
|
||||||
src/structs.h \
|
src/structs.h \
|
||||||
src/spell.c \
|
src/spell.c \
|
||||||
src/syntax.c \
|
src/syntax.c \
|
||||||
@@ -79,6 +82,7 @@ SRC_ALL = \
|
|||||||
src/testdir/test49.vim \
|
src/testdir/test49.vim \
|
||||||
src/testdir/test60.vim \
|
src/testdir/test60.vim \
|
||||||
src/proto.h \
|
src/proto.h \
|
||||||
|
src/proto/blowfish.pro \
|
||||||
src/proto/buffer.pro \
|
src/proto/buffer.pro \
|
||||||
src/proto/charset.pro \
|
src/proto/charset.pro \
|
||||||
src/proto/diff.pro \
|
src/proto/diff.pro \
|
||||||
@@ -116,6 +120,7 @@ SRC_ALL = \
|
|||||||
src/proto/regexp.pro \
|
src/proto/regexp.pro \
|
||||||
src/proto/screen.pro \
|
src/proto/screen.pro \
|
||||||
src/proto/search.pro \
|
src/proto/search.pro \
|
||||||
|
src/proto/sha256.pro \
|
||||||
src/proto/spell.pro \
|
src/proto/spell.pro \
|
||||||
src/proto/syntax.pro \
|
src/proto/syntax.pro \
|
||||||
src/proto/tag.pro \
|
src/proto/tag.pro \
|
||||||
@@ -206,19 +211,24 @@ SRC_UNIX = \
|
|||||||
SRC_DOS_UNIX = \
|
SRC_DOS_UNIX = \
|
||||||
src/if_cscope.c \
|
src/if_cscope.c \
|
||||||
src/if_cscope.h \
|
src/if_cscope.h \
|
||||||
|
src/if_lua.c \
|
||||||
src/if_mzsch.c \
|
src/if_mzsch.c \
|
||||||
src/if_mzsch.h \
|
src/if_mzsch.h \
|
||||||
src/if_perl.xs \
|
src/if_perl.xs \
|
||||||
src/if_perlsfio.c \
|
src/if_perlsfio.c \
|
||||||
src/if_python.c \
|
src/if_python.c \
|
||||||
|
src/if_python3.c \
|
||||||
|
src/if_py_both.h \
|
||||||
src/if_ruby.c \
|
src/if_ruby.c \
|
||||||
src/if_sniff.h \
|
src/if_sniff.h \
|
||||||
src/if_tcl.c \
|
src/if_tcl.c \
|
||||||
src/proto/if_cscope.pro \
|
src/proto/if_cscope.pro \
|
||||||
|
src/proto/if_lua.pro \
|
||||||
src/proto/if_mzsch.pro \
|
src/proto/if_mzsch.pro \
|
||||||
src/proto/if_perl.pro \
|
src/proto/if_perl.pro \
|
||||||
src/proto/if_perlsfio.pro \
|
src/proto/if_perlsfio.pro \
|
||||||
src/proto/if_python.pro \
|
src/proto/if_python.pro \
|
||||||
|
src/proto/if_python3.pro \
|
||||||
src/proto/if_ruby.pro \
|
src/proto/if_ruby.pro \
|
||||||
src/proto/if_tcl.pro \
|
src/proto/if_tcl.pro \
|
||||||
src/typemap \
|
src/typemap \
|
||||||
@@ -369,7 +379,7 @@ SRC_MAC = \
|
|||||||
src/os_mac.h \
|
src/os_mac.h \
|
||||||
src/os_mac.rsr.hqx \
|
src/os_mac.rsr.hqx \
|
||||||
src/os_mac_conv.c \
|
src/os_mac_conv.c \
|
||||||
src/os_macosx.c \
|
src/os_macosx.m \
|
||||||
src/proto/gui_mac.pro \
|
src/proto/gui_mac.pro \
|
||||||
src/proto/os_mac_conv.pro \
|
src/proto/os_mac_conv.pro \
|
||||||
|
|
||||||
@@ -654,13 +664,12 @@ EXTRA = \
|
|||||||
farsi/fonts/*/far-* \
|
farsi/fonts/*/far-* \
|
||||||
runtime/vimlogo.xpm \
|
runtime/vimlogo.xpm \
|
||||||
src/swis.s \
|
src/swis.s \
|
||||||
src/tee/Makefile* \
|
src/tee/Makefile \
|
||||||
src/tee/tee.c \
|
src/tee/tee.c \
|
||||||
csdpmi4b.zip \
|
csdpmi4b.zip \
|
||||||
|
|
||||||
# generic language files
|
# generic language files
|
||||||
LANG_GEN = \
|
LANG_GEN = \
|
||||||
README_lang.txt \
|
|
||||||
runtime/doc/*-fr.1 \
|
runtime/doc/*-fr.1 \
|
||||||
runtime/doc/*-fr.UTF-8.1 \
|
runtime/doc/*-fr.UTF-8.1 \
|
||||||
runtime/doc/*-it.1 \
|
runtime/doc/*-it.1 \
|
||||||
@@ -678,14 +687,19 @@ LANG_GEN = \
|
|||||||
runtime/tutor/tutor.utf-8 \
|
runtime/tutor/tutor.utf-8 \
|
||||||
runtime/tutor/tutor.?? \
|
runtime/tutor/tutor.?? \
|
||||||
runtime/tutor/tutor.??.* \
|
runtime/tutor/tutor.??.* \
|
||||||
|
runtime/tutor/tutor.bar \
|
||||||
|
runtime/tutor/tutor.bar.* \
|
||||||
runtime/spell/README.txt \
|
runtime/spell/README.txt \
|
||||||
runtime/spell/??/*.diff \
|
runtime/spell/??/*.diff \
|
||||||
runtime/spell/??/main.aap \
|
runtime/spell/??/main.aap \
|
||||||
|
runtime/spell/tet/*.diff \
|
||||||
|
runtime/spell/tet/main.aap \
|
||||||
|
runtime/spell/check/main.aap \
|
||||||
|
runtime/spell/check/*.aff \
|
||||||
|
runtime/spell/check/*.dic \
|
||||||
runtime/spell/yi/README.txt \
|
runtime/spell/yi/README.txt \
|
||||||
runtime/spell/main.aap \
|
runtime/spell/main.aap \
|
||||||
runtime/spell/cleanadd.vim \
|
|
||||||
runtime/spell/*.vim \
|
runtime/spell/*.vim \
|
||||||
runtime/spell/fixdup \
|
|
||||||
|
|
||||||
# generic language files, binary
|
# generic language files, binary
|
||||||
LANG_GEN_BIN = \
|
LANG_GEN_BIN = \
|
||||||
|
|||||||
232
Makefile
232
Makefile
@@ -3,8 +3,10 @@
|
|||||||
# 2. Creating the various distribution files.
|
# 2. Creating the various distribution files.
|
||||||
|
|
||||||
|
|
||||||
# 1. Using this Makefile without an argument will compile Vim for Unix.
|
#########################################################################
|
||||||
|
# 1. Starting the compilation of Vim for Unix.
|
||||||
#
|
#
|
||||||
|
# Using this Makefile without an argument will compile Vim for Unix.
|
||||||
# "make install" is also possible.
|
# "make install" is also possible.
|
||||||
#
|
#
|
||||||
# NOTE: If this doesn't work properly, first change directory to "src" and use
|
# NOTE: If this doesn't work properly, first change directory to "src" and use
|
||||||
@@ -21,6 +23,9 @@
|
|||||||
# has run can result in compiling with $(CC) empty.
|
# has run can result in compiling with $(CC) empty.
|
||||||
|
|
||||||
first:
|
first:
|
||||||
|
@if test ! -f src/auto/config.mk; then \
|
||||||
|
cp src/config.mk.dist src/auto/config.mk; \
|
||||||
|
fi
|
||||||
@echo "Starting make in the src directory."
|
@echo "Starting make in the src directory."
|
||||||
@echo "If there are problems, cd to the src directory and run make there"
|
@echo "If there are problems, cd to the src directory and run make there"
|
||||||
cd src && $(MAKE) $@
|
cd src && $(MAKE) $@
|
||||||
@@ -28,25 +33,22 @@ first:
|
|||||||
# Some make programs use the last target for the $@ default; put the other
|
# Some make programs use the last target for the $@ default; put the other
|
||||||
# targets separately to always let $@ expand to "first" by default.
|
# targets separately to always let $@ expand to "first" by default.
|
||||||
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
|
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
|
||||||
|
@if test ! -f src/auto/config.mk; then \
|
||||||
|
cp src/config.mk.dist src/auto/config.mk; \
|
||||||
|
fi
|
||||||
@echo "Starting make in the src directory."
|
@echo "Starting make in the src directory."
|
||||||
@echo "If there are problems, cd to the src directory and run make there"
|
@echo "If there are problems, cd to the src directory and run make there"
|
||||||
cd src && $(MAKE) $@
|
cd src && $(MAKE) $@
|
||||||
|
|
||||||
|
|
||||||
# 2. Create the various distributions:
|
#########################################################################
|
||||||
|
# 2. Creating the various distribution files.
|
||||||
#
|
#
|
||||||
# TARGET PRODUCES CONTAINS
|
# TARGET PRODUCES CONTAINS
|
||||||
# unixall vim-#.#.tar.bz2 Runtime files and Sources for Unix
|
# unixall vim-#.#.tar.bz2 All runtime files and sources, for Unix
|
||||||
#
|
|
||||||
# extra vim-#.#-extra.tar.gz Extra source and runtime files
|
|
||||||
# lang vim-#.#-lang.tar.gz multi-language files
|
|
||||||
#
|
#
|
||||||
# html vim##html.zip HTML docs
|
# html vim##html.zip HTML docs
|
||||||
#
|
#
|
||||||
# amisrc vim##src.tgz sources for Amiga
|
|
||||||
# amirt vim##rt.tgz runtime for Amiga
|
|
||||||
# amibin vim##bin.tgz binary for Amiga
|
|
||||||
#
|
|
||||||
# dossrc vim##src.zip sources for MS-DOS
|
# dossrc vim##src.zip sources for MS-DOS
|
||||||
# dosrt vim##rt.zip runtime for MS-DOS
|
# dosrt vim##rt.zip runtime for MS-DOS
|
||||||
# dosbin vim##d16.zip binary for MS-DOS 16 bits
|
# dosbin vim##d16.zip binary for MS-DOS 16 bits
|
||||||
@@ -55,7 +57,11 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
|||||||
# gvim##.zip binary for GUI Win32
|
# gvim##.zip binary for GUI Win32
|
||||||
# gvim##ole.zip OLE exe for Win32 GUI
|
# gvim##ole.zip OLE exe for Win32 GUI
|
||||||
# gvim##_s.zip exe for Win32s GUI
|
# gvim##_s.zip exe for Win32s GUI
|
||||||
# doslang vim##lang.zip language files for Win32
|
#
|
||||||
|
# OBSOLETE
|
||||||
|
# amisrc vim##src.tgz sources for Amiga
|
||||||
|
# amirt vim##rt.tgz runtime for Amiga
|
||||||
|
# amibin vim##bin.tgz binary for Amiga
|
||||||
#
|
#
|
||||||
# os2bin vim##os2.zip binary for OS/2
|
# os2bin vim##os2.zip binary for OS/2
|
||||||
# (use RT from dosrt)
|
# (use RT from dosrt)
|
||||||
@@ -64,29 +70,35 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
|||||||
#
|
#
|
||||||
# All output files are created in the "dist" directory. Existing files are
|
# All output files are created in the "dist" directory. Existing files are
|
||||||
# overwritten!
|
# overwritten!
|
||||||
# To do all this you need the unix, extra and lang archives, and
|
# To do all this you need the Unix archive and compiled binaries.
|
||||||
# compiled binaries.
|
|
||||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||||
|
|
||||||
MAJOR = 7
|
MAJOR = 7
|
||||||
MINOR = 2
|
MINOR = 3
|
||||||
|
|
||||||
# Uncomment this line if the Win32s version is to be included.
|
# Uncomment this line if the Win32s version is to be included.
|
||||||
DOSBIN_S = dosbin_s
|
DOSBIN_S = dosbin_s
|
||||||
|
|
||||||
|
# Uncomment this line if the 16 bit DOS version is to be included.
|
||||||
|
# DOSBIN_D16 = dosbin_d16
|
||||||
|
|
||||||
# CHECKLIST for creating a new version:
|
# CHECKLIST for creating a new version:
|
||||||
#
|
#
|
||||||
# - Update Vim version number. For a test version in: src/version.h, Contents,
|
# - Update Vim version number. For a test version in: src/version.h, Contents,
|
||||||
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
|
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
|
||||||
# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a
|
# runtime/doc/*.txt and nsis/gvim.nsi. Other things in README_os2.txt. For a
|
||||||
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def.
|
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def,
|
||||||
|
# src/gvim.exe.mnf.
|
||||||
|
# - Adjust the date and other info in src/version.h.
|
||||||
# - Correct included_patches[] in src/version.c.
|
# - Correct included_patches[] in src/version.c.
|
||||||
# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme (if you can make it
|
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
|
||||||
# work), Cscope and "huge" features. Exclude workshop and SNiFF.
|
# you can make it all work), Cscope and "huge" features. Exclude workshop
|
||||||
|
# and SNiFF.
|
||||||
# - With these features: "make proto" (requires cproto and Motif installed;
|
# - With these features: "make proto" (requires cproto and Motif installed;
|
||||||
# ignore warnings for missing include files, fix problems for syntax errors).
|
# ignore warnings for missing include files, fix problems for syntax errors).
|
||||||
# - With these features: "make depend" (works best with gcc).
|
# - With these features: "make depend" (works best with gcc).
|
||||||
# - "make lint" and check the output (ignore GTK warnings).
|
# - If you have a lint program: "make lint" and check the output (ignore GTK
|
||||||
|
# warnings).
|
||||||
# - Enable the efence library in "src/Makefile" and run "make test". Disable
|
# - Enable the efence library in "src/Makefile" and run "make test". Disable
|
||||||
# Python and Ruby to avoid trouble with threads (efence is not threadsafe).
|
# Python and Ruby to avoid trouble with threads (efence is not threadsafe).
|
||||||
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
||||||
@@ -102,10 +114,10 @@ DOSBIN_S = dosbin_s
|
|||||||
# the "check" script).
|
# the "check" script).
|
||||||
# - Check compiling on Amiga, MS-DOS and MS-Windows.
|
# - Check compiling on Amiga, MS-DOS and MS-Windows.
|
||||||
# - Delete all *~, *.sw?, *.orig, *.rej files
|
# - Delete all *~, *.sw?, *.orig, *.rej files
|
||||||
# - "make unixall", "make extra", "make lang", "make html"
|
# - "make unixall", "make html"
|
||||||
# - Make diff files against the previous release: "makediff7 7.1 7.2"
|
# - Make diff files against the previous release: "makediff7 7.1 7.2"
|
||||||
#
|
#
|
||||||
# Amiga:
|
# Amiga: (OBSOLETE, Amiga files are no longer distributed)
|
||||||
# - "make amisrc", move the archive to the Amiga and compile:
|
# - "make amisrc", move the archive to the Amiga and compile:
|
||||||
# "make -f Make_manx.mak" (will use "big" features by default).
|
# "make -f Make_manx.mak" (will use "big" features by default).
|
||||||
# - Run the tests: "make -f Make_manx.mak test"
|
# - Run the tests: "make -f Make_manx.mak test"
|
||||||
@@ -114,8 +126,9 @@ DOSBIN_S = dosbin_s
|
|||||||
# - "make amirt", "make amibin".
|
# - "make amirt", "make amibin".
|
||||||
#
|
#
|
||||||
# PC:
|
# PC:
|
||||||
|
# - Run make on Unix to update the ".mo" files.
|
||||||
# - "make dossrc" and "make dosrt". Unpack the archives on a PC.
|
# - "make dossrc" and "make dosrt". Unpack the archives on a PC.
|
||||||
# 16 bit DOS version:
|
# 16 bit DOS version: (OBSOLETE, 16 bit version doesn't build)
|
||||||
# - Set environment for compiling with Borland C++ 3.1.
|
# - Set environment for compiling with Borland C++ 3.1.
|
||||||
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
|
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
|
||||||
# case set environment for compiling with Borland C++ 4.0 and do
|
# case set environment for compiling with Borland C++ 4.0 and do
|
||||||
@@ -131,9 +144,11 @@ DOSBIN_S = dosbin_s
|
|||||||
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
|
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
|
||||||
# "uninstald32.exe".
|
# "uninstald32.exe".
|
||||||
# Win32 console version:
|
# Win32 console version:
|
||||||
# - Set environment for Visual C++ 2008 Express Edition: "msvc2008.bat". Or,
|
# - Set environment for Visual C++ 2008, e.g.:
|
||||||
# when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths
|
# "E:\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat". Or, when using the
|
||||||
# when necessary). For Windows 98 the 2003 version is required.
|
# Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths when necessary).
|
||||||
|
# For Windows 98/ME the 2003 version is required, but then it won't work on
|
||||||
|
# Windows 7 and 64 bit.
|
||||||
# - "nmake -f Make_mvc.mak"
|
# - "nmake -f Make_mvc.mak"
|
||||||
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
|
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
|
||||||
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
|
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
|
||||||
@@ -154,8 +169,8 @@ DOSBIN_S = dosbin_s
|
|||||||
# - Delete install.exe and uninstal.exe.
|
# - Delete install.exe and uninstal.exe.
|
||||||
# - If building the Win32s version delete vimrun.exe.
|
# - If building the Win32s version delete vimrun.exe.
|
||||||
# Win32s GUI version:
|
# Win32s GUI version:
|
||||||
# - Set environment for Visual C++ 4.1 (requires a new console window)
|
# - Set environment for Visual C++ 4.1 (requires a new console window):
|
||||||
# - "vcvars32" (use the path for VC 4.1 e:\msdev\bin)
|
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
|
||||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
|
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
|
||||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
|
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
|
||||||
# - Rename "gvim.exe" to "gvim_w32s.exe".
|
# - Rename "gvim.exe" to "gvim_w32s.exe".
|
||||||
@@ -166,21 +181,23 @@ DOSBIN_S = dosbin_s
|
|||||||
# - Copy all the "*.exe" files to where this Makefile is.
|
# - Copy all the "*.exe" files to where this Makefile is.
|
||||||
# - Copy all the "*.pdb" files to where this Makefile is.
|
# - Copy all the "*.pdb" files to where this Makefile is.
|
||||||
# - "make dosbin".
|
# - "make dosbin".
|
||||||
# - Run make on Unix to update the ".mo" files.
|
|
||||||
# - "make doslang".
|
|
||||||
# NSIS self installing exe:
|
# NSIS self installing exe:
|
||||||
# - Unpack the doslang archive on the PC.
|
# - To get NSIS see http://nsis.sourceforge.net
|
||||||
# - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe,
|
# - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe,
|
||||||
# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
|
# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
|
||||||
# - put gvimext.dll in src/GvimExt and VisVim.dll in src/VisVim (get them
|
# - copy these files (get them from a binary archive or build them):
|
||||||
# from a binary archive or build them)
|
# gvimext.dll in src/GvimExt
|
||||||
|
# gvimext64.dll in src/GvimExt
|
||||||
|
# VisVim.dll in src/VisVim
|
||||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||||
|
# gvimext64.dll can be obtained from http://code.google.com/p/vim-win3264/
|
||||||
|
# It is part of vim72.zip as vim72/gvimext.dll.
|
||||||
# - make sure there is a diff.exe two levels up
|
# - make sure there is a diff.exe two levels up
|
||||||
# - go to ../nsis and do "makensis gvim.nsi".
|
# - go to ../nsis and do "makensis gvim.nsi" (takes a few minutes).
|
||||||
# - Copy gvim##.exe to the dist directory.
|
# - Copy gvim##.exe to the dist directory.
|
||||||
#
|
#
|
||||||
# OS/2:
|
# OS/2: (OBSOLETE, OS/2 version is no longer distributed)
|
||||||
# - Unpack the Unix "src", "extra" and "rt" archives.
|
# - Unpack the Unix archive.
|
||||||
# - "make -f Make_os2.mak".
|
# - "make -f Make_os2.mak".
|
||||||
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
|
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
|
||||||
# them to here.
|
# them to here.
|
||||||
@@ -215,8 +232,6 @@ dist/comment:
|
|||||||
mkdir dist/comment
|
mkdir dist/comment
|
||||||
|
|
||||||
COMMENT_RT = comment/$(VERSION)-rt
|
COMMENT_RT = comment/$(VERSION)-rt
|
||||||
COMMENT_RT1 = comment/$(VERSION)-rt1
|
|
||||||
COMMENT_RT2 = comment/$(VERSION)-rt2
|
|
||||||
COMMENT_D16 = comment/$(VERSION)-bin-d16
|
COMMENT_D16 = comment/$(VERSION)-bin-d16
|
||||||
COMMENT_D32 = comment/$(VERSION)-bin-d32
|
COMMENT_D32 = comment/$(VERSION)-bin-d32
|
||||||
COMMENT_W32 = comment/$(VERSION)-bin-w32
|
COMMENT_W32 = comment/$(VERSION)-bin-w32
|
||||||
@@ -227,17 +242,10 @@ COMMENT_SRC = comment/$(VERSION)-src
|
|||||||
COMMENT_OS2 = comment/$(VERSION)-bin-os2
|
COMMENT_OS2 = comment/$(VERSION)-bin-os2
|
||||||
COMMENT_HTML = comment/$(VERSION)-html
|
COMMENT_HTML = comment/$(VERSION)-html
|
||||||
COMMENT_FARSI = comment/$(VERSION)-farsi
|
COMMENT_FARSI = comment/$(VERSION)-farsi
|
||||||
COMMENT_LANG = comment/$(VERSION)-lang
|
|
||||||
|
|
||||||
dist/$(COMMENT_RT): dist/comment
|
dist/$(COMMENT_RT): dist/comment
|
||||||
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
|
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
|
||||||
|
|
||||||
dist/$(COMMENT_RT1): dist/comment
|
|
||||||
echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 1) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT1)
|
|
||||||
|
|
||||||
dist/$(COMMENT_RT2): dist/comment
|
|
||||||
echo "Vim - Vi IMproved - v$(VDOT) runtime files (PART 2) for MS-DOS and MS-Windows" > dist/$(COMMENT_RT2)
|
|
||||||
|
|
||||||
dist/$(COMMENT_D16): dist/comment
|
dist/$(COMMENT_D16): dist/comment
|
||||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
|
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
|
||||||
|
|
||||||
@@ -268,9 +276,6 @@ dist/$(COMMENT_HTML): dist/comment
|
|||||||
dist/$(COMMENT_FARSI): dist/comment
|
dist/$(COMMENT_FARSI): dist/comment
|
||||||
echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI)
|
echo "Vim - Vi IMproved - v$(VDOT) Farsi language files" > dist/$(COMMENT_FARSI)
|
||||||
|
|
||||||
dist/$(COMMENT_LANG): dist/comment
|
|
||||||
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows language files" > dist/$(COMMENT_LANG)
|
|
||||||
|
|
||||||
unixall: dist prepare
|
unixall: dist prepare
|
||||||
-rm -f dist/$(VIMVER).tar.bz2
|
-rm -f dist/$(VIMVER).tar.bz2
|
||||||
-rm -rf dist/$(VIMRTDIR)
|
-rm -rf dist/$(VIMRTDIR)
|
||||||
@@ -286,6 +291,8 @@ unixall: dist prepare
|
|||||||
$(SRC_ALL) \
|
$(SRC_ALL) \
|
||||||
$(SRC_UNIX) \
|
$(SRC_UNIX) \
|
||||||
$(SRC_DOS_UNIX) \
|
$(SRC_DOS_UNIX) \
|
||||||
|
$(EXTRA) \
|
||||||
|
$(LANG_SRC) \
|
||||||
| (cd dist/$(VIMRTDIR); tar xf -)
|
| (cd dist/$(VIMRTDIR); tar xf -)
|
||||||
# Need to use a "distclean" config.mk file
|
# Need to use a "distclean" config.mk file
|
||||||
cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
|
cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
|
||||||
@@ -293,26 +300,6 @@ unixall: dist prepare
|
|||||||
touch dist/$(VIMRTDIR)/src/auto/config.h
|
touch dist/$(VIMRTDIR)/src/auto/config.h
|
||||||
# Make sure configure is newer than config.mk to force it to be generated
|
# Make sure configure is newer than config.mk to force it to be generated
|
||||||
touch dist/$(VIMRTDIR)/src/configure
|
touch dist/$(VIMRTDIR)/src/configure
|
||||||
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
|
|
||||||
bzip2 dist/$(VIMVER).tar
|
|
||||||
|
|
||||||
extra: dist prepare
|
|
||||||
-rm -f dist/$(VIMVER)-extra.tar.gz
|
|
||||||
-rm -rf dist/$(VIMRTDIR)
|
|
||||||
mkdir dist/$(VIMRTDIR)
|
|
||||||
tar cf - \
|
|
||||||
$(EXTRA) \
|
|
||||||
| (cd dist/$(VIMRTDIR); tar xf -)
|
|
||||||
cd dist && tar cf $(VIMVER)-extra.tar $(VIMRTDIR)
|
|
||||||
gzip -9 dist/$(VIMVER)-extra.tar
|
|
||||||
|
|
||||||
lang: dist prepare
|
|
||||||
-rm -f dist/$(VIMVER)-lang.tar.gz
|
|
||||||
-rm -rf dist/$(VIMRTDIR)
|
|
||||||
mkdir dist/$(VIMRTDIR)
|
|
||||||
tar cf - \
|
|
||||||
$(LANG_SRC) \
|
|
||||||
| (cd dist/$(VIMRTDIR); tar xf -)
|
|
||||||
# Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated.
|
# Make sure ja.sjis.po is newer than ja.po to avoid it being regenerated.
|
||||||
# Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po.
|
# Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.po.
|
||||||
touch dist/$(VIMRTDIR)/src/po/ja.sjis.po
|
touch dist/$(VIMRTDIR)/src/po/ja.sjis.po
|
||||||
@@ -322,9 +309,11 @@ lang: dist prepare
|
|||||||
touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
|
touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
|
||||||
touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
|
touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
|
||||||
touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
|
touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
|
||||||
cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR)
|
# Create the archive.
|
||||||
gzip -9 dist/$(VIMVER)-lang.tar
|
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
|
||||||
|
bzip2 dist/$(VIMVER).tar
|
||||||
|
|
||||||
|
# Amiga runtime - OBSOLETE
|
||||||
amirt: dist prepare
|
amirt: dist prepare
|
||||||
-rm -f dist/vim$(VERSION)rt.tar.gz
|
-rm -f dist/vim$(VERSION)rt.tar.gz
|
||||||
-rm -rf dist/Vim
|
-rm -rf dist/Vim
|
||||||
@@ -347,6 +336,7 @@ amirt: dist prepare
|
|||||||
gzip -9 dist/vim$(VERSION)rt.tar
|
gzip -9 dist/vim$(VERSION)rt.tar
|
||||||
mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
|
mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
|
||||||
|
|
||||||
|
# Amiga binaries - OBSOLETE
|
||||||
amibin: dist prepare
|
amibin: dist prepare
|
||||||
-rm -f dist/vim$(VERSION)bin.tar.gz
|
-rm -f dist/vim$(VERSION)bin.tar.gz
|
||||||
-rm -rf dist/Vim
|
-rm -rf dist/Vim
|
||||||
@@ -364,6 +354,7 @@ amibin: dist prepare
|
|||||||
gzip -9 dist/vim$(VERSION)bin.tar
|
gzip -9 dist/vim$(VERSION)bin.tar
|
||||||
mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
|
mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
|
||||||
|
|
||||||
|
# Amiga sources - OBSOLETE
|
||||||
amisrc: dist prepare
|
amisrc: dist prepare
|
||||||
-rm -f dist/vim$(VERSION)src.tar.gz
|
-rm -f dist/vim$(VERSION)src.tar.gz
|
||||||
-rm -rf dist/Vim
|
-rm -rf dist/Vim
|
||||||
@@ -384,15 +375,41 @@ amisrc: dist prepare
|
|||||||
no_title.vim: Makefile
|
no_title.vim: Makefile
|
||||||
echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
|
echo "set notitle noicon nocp nomodeline viminfo=" >no_title.vim
|
||||||
|
|
||||||
|
# MS-DOS sources
|
||||||
|
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
|
||||||
|
-rm -rf dist/vim$(VERSION)src.zip
|
||||||
|
-rm -rf dist/vim
|
||||||
|
mkdir dist/vim
|
||||||
|
mkdir dist/vim/$(VIMRTDIR)
|
||||||
|
tar cf - \
|
||||||
|
$(SRC_ALL) \
|
||||||
|
$(SRC_DOS) \
|
||||||
|
$(SRC_AMI_DOS) \
|
||||||
|
$(SRC_DOS_UNIX) \
|
||||||
|
runtime/doc/uganda.nsis.txt \
|
||||||
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
|
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
||||||
|
rmdir dist/vim/$(VIMRTDIR)/runtime
|
||||||
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
|
tar cf - \
|
||||||
|
$(SRC_DOS_BIN) \
|
||||||
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
|
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
|
||||||
|
|
||||||
|
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
|
||||||
|
cd runtime/doc && $(MAKE) uganda.nsis.txt
|
||||||
|
|
||||||
dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos
|
dosrt: dist dist/$(COMMENT_RT) dosrt_unix2dos
|
||||||
-rm -rf dist/vim$(VERSION)rt.zip
|
-rm -rf dist/vim$(VERSION)rt.zip
|
||||||
cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
|
cd dist && zip -9 -rD -z vim$(VERSION)rt.zip vim <$(COMMENT_RT)
|
||||||
|
|
||||||
# Split in two parts to avoid a "argument list too long" error.
|
# Split in two parts to avoid an "argument list too long" error.
|
||||||
dosrt_unix2dos: dist prepare no_title.vim
|
dosrt_unix2dos: dist prepare no_title.vim
|
||||||
-rm -rf dist/vim
|
-rm -rf dist/vim
|
||||||
mkdir dist/vim
|
mkdir dist/vim
|
||||||
mkdir dist/vim/$(VIMRTDIR)
|
mkdir dist/vim/$(VIMRTDIR)
|
||||||
|
mkdir dist/vim/$(VIMRTDIR)/lang
|
||||||
|
cd src && MAKEMO=yes $(MAKE) languages
|
||||||
tar cf - \
|
tar cf - \
|
||||||
$(RT_ALL) \
|
$(RT_ALL) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
@@ -403,7 +420,7 @@ dosrt_unix2dos: dist prepare no_title.vim
|
|||||||
$(RT_AMI_DOS) \
|
$(RT_AMI_DOS) \
|
||||||
$(LANG_GEN) \
|
$(LANG_GEN) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
tar cf - \
|
tar cf - \
|
||||||
$(RT_UNIX_DOS_BIN) \
|
$(RT_UNIX_DOS_BIN) \
|
||||||
$(RT_ALL_BIN) \
|
$(RT_ALL_BIN) \
|
||||||
@@ -412,6 +429,18 @@ dosrt_unix2dos: dist prepare no_title.vim
|
|||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
||||||
rmdir dist/vim/$(VIMRTDIR)/runtime
|
rmdir dist/vim/$(VIMRTDIR)/runtime
|
||||||
|
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
|
||||||
|
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
|
||||||
|
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
|
||||||
|
for i in $(LANG_DOS); do \
|
||||||
|
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
|
||||||
|
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
|
||||||
|
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
|
||||||
|
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
|
||||||
|
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||||
|
fi \
|
||||||
|
done
|
||||||
|
cp libintl.dll dist/vim/$(VIMRTDIR)/
|
||||||
|
|
||||||
|
|
||||||
# Convert runtime files from Unix fileformat to dos fileformat.
|
# Convert runtime files from Unix fileformat to dos fileformat.
|
||||||
@@ -421,7 +450,7 @@ runtime_unix2dos: dosrt_unix2dos
|
|||||||
cd dist/vim/$(VIMRTDIR); tar cf - * \
|
cd dist/vim/$(VIMRTDIR); tar cf - * \
|
||||||
| (cd ../../../runtime/dos; tar xf -)
|
| (cd ../../../runtime/dos; tar xf -)
|
||||||
|
|
||||||
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_d16 dosbin_ole $(DOSBIN_S)
|
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_ole $(DOSBIN_S) $(DOSBIN_D16)
|
||||||
|
|
||||||
# make Win32 gvim
|
# make Win32 gvim
|
||||||
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||||
@@ -432,7 +461,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_DOS) \
|
$(BIN_DOS) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||||
@@ -451,7 +480,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_DOS) \
|
$(BIN_DOS) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
@@ -468,7 +497,7 @@ dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_DOS) \
|
$(BIN_DOS) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
@@ -485,7 +514,7 @@ dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_DOS) \
|
$(BIN_DOS) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
|
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||||
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
|
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||||
@@ -501,7 +530,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_DOS) \
|
$(BIN_DOS) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||||
@@ -523,7 +552,7 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_DOS) \
|
$(BIN_DOS) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp README_w32s.txt dist/vim/$(VIMRTDIR)
|
cp README_w32s.txt dist/vim/$(VIMRTDIR)
|
||||||
@@ -531,53 +560,6 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
|
|||||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||||
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
|
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
|
||||||
|
|
||||||
# make Win32 lang archive
|
|
||||||
doslang: dist prepare no_title.vim dist/$(COMMENT_LANG)
|
|
||||||
-rm -rf dist/vim$(VERSION)lang.zip
|
|
||||||
-rm -rf dist/vim
|
|
||||||
mkdir dist/vim
|
|
||||||
mkdir dist/vim/$(VIMRTDIR)
|
|
||||||
mkdir dist/vim/$(VIMRTDIR)/lang
|
|
||||||
cd src && MAKEMO=yes $(MAKE) languages
|
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
|
||||||
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
|
|
||||||
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
|
|
||||||
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
|
|
||||||
for i in $(LANG_DOS); do \
|
|
||||||
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
|
|
||||||
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
|
|
||||||
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
|
|
||||||
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
|
|
||||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
|
||||||
fi \
|
|
||||||
done
|
|
||||||
cp libintl.dll dist/vim/$(VIMRTDIR)/
|
|
||||||
cd dist && zip -9 -rD -z vim$(VERSION)lang.zip vim <$(COMMENT_LANG)
|
|
||||||
|
|
||||||
# MS-DOS sources
|
|
||||||
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
|
|
||||||
-rm -rf dist/vim$(VERSION)src.zip
|
|
||||||
-rm -rf dist/vim
|
|
||||||
mkdir dist/vim
|
|
||||||
mkdir dist/vim/$(VIMRTDIR)
|
|
||||||
tar cf - \
|
|
||||||
$(SRC_ALL) \
|
|
||||||
$(SRC_DOS) \
|
|
||||||
$(SRC_AMI_DOS) \
|
|
||||||
$(SRC_DOS_UNIX) \
|
|
||||||
runtime/doc/uganda.nsis.txt \
|
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
|
||||||
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
|
||||||
rmdir dist/vim/$(VIMRTDIR)/runtime
|
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
|
||||||
tar cf - \
|
|
||||||
$(SRC_DOS_BIN) \
|
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
|
||||||
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
|
|
||||||
|
|
||||||
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
|
|
||||||
cd runtime/doc && $(MAKE) uganda.nsis.txt
|
|
||||||
|
|
||||||
os2bin: dist no_title.vim dist/$(COMMENT_OS2)
|
os2bin: dist no_title.vim dist/$(COMMENT_OS2)
|
||||||
-rm -rf dist/vim$(VERSION)os2.zip
|
-rm -rf dist/vim$(VERSION)os2.zip
|
||||||
-rm -rf dist/vim
|
-rm -rf dist/vim
|
||||||
@@ -586,7 +568,7 @@ os2bin: dist no_title.vim dist/$(COMMENT_OS2)
|
|||||||
tar cf - \
|
tar cf - \
|
||||||
$(BIN_OS2) \
|
$(BIN_OS2) \
|
||||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||||
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
|
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||||
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||||
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
|
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||||
|
|||||||
49
README.txt
49
README.txt
@@ -1,4 +1,4 @@
|
|||||||
README.txt for version 7.2 of Vim: Vi IMproved.
|
README.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
|
|
||||||
WHAT IS VIM
|
WHAT IS VIM
|
||||||
@@ -9,13 +9,13 @@ on-line help, spell checking, filename completion, block operations, etc.
|
|||||||
There is also a Graphical User Interface (GUI) available. See
|
There is also a Graphical User Interface (GUI) available. See
|
||||||
"runtime/doc/vi_diff.txt" for differences with Vi.
|
"runtime/doc/vi_diff.txt" for differences with Vi.
|
||||||
|
|
||||||
This editor is very useful for editing programs and other plain ASCII files.
|
This editor is very useful for editing programs and other plain text files.
|
||||||
All commands are given with normal keyboard characters, so those who can type
|
All commands are given with normal keyboard characters, so those who can type
|
||||||
with ten fingers can work very fast. Additionally, function keys can be
|
with ten fingers can work very fast. Additionally, function keys can be
|
||||||
defined by the user, and the mouse can be used.
|
defined by the user, and the mouse can be used.
|
||||||
|
|
||||||
Vim currently runs under Amiga DOS, MS-DOS, MS-Windows 95/98/Me/NT/2000/XP,
|
Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista,
|
||||||
Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
|
7), Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
|
||||||
UNIX. Porting to other systems should not be very difficult.
|
UNIX. Porting to other systems should not be very difficult.
|
||||||
|
|
||||||
|
|
||||||
@@ -32,19 +32,19 @@ an overview of currently available distributions.
|
|||||||
|
|
||||||
DOCUMENTATION
|
DOCUMENTATION
|
||||||
|
|
||||||
|
The vim tutor is a one hour training course for beginners. Mostly it can be
|
||||||
|
started as "vimtutor". See ":help tutor" for more information.
|
||||||
|
|
||||||
The best is to use ":help" in Vim. If you don't have an executable yet, read
|
The best is to use ":help" in Vim. If you don't have an executable yet, read
|
||||||
"runtime/doc/help.txt". It contains pointers to the other documentation
|
"runtime/doc/help.txt". It contains pointers to the other documentation
|
||||||
files. The User Manual reads like a book and is recommended to learn to use
|
files. The User Manual reads like a book and is recommended to learn to use
|
||||||
Vim. See ":help user-manual".
|
Vim. See ":help user-manual".
|
||||||
|
|
||||||
The vim tutor is a one hour training course for beginners. Mostly it can be
|
|
||||||
started as "vimtutor". See ":help tutor" for more information.
|
|
||||||
|
|
||||||
|
|
||||||
COPYING
|
COPYING
|
||||||
|
|
||||||
Vim is Charityware. You can use and copy it as much as you like, but you are
|
Vim is Charityware. You can use and copy it as much as you like, but you are
|
||||||
encouraged to make a donation to orphans in Uganda. Please read the file
|
encouraged to make a donation to help orphans in Uganda. Please read the file
|
||||||
"runtime/doc/uganda.txt" for details (do ":help uganda" inside Vim).
|
"runtime/doc/uganda.txt" for details (do ":help uganda" inside Vim).
|
||||||
|
|
||||||
Summary of the license: There are no restrictions on using or distributing an
|
Summary of the license: There are no restrictions on using or distributing an
|
||||||
@@ -86,6 +86,8 @@ README_os2.txt OS/2
|
|||||||
README_mac.txt Macintosh
|
README_mac.txt Macintosh
|
||||||
README_vms.txt VMS
|
README_vms.txt VMS
|
||||||
|
|
||||||
|
There are more README_*.txt files, depending on the distribution you used.
|
||||||
|
|
||||||
|
|
||||||
INFORMATION
|
INFORMATION
|
||||||
|
|
||||||
@@ -98,39 +100,12 @@ If you have problems, have a look at the Vim FAQ:
|
|||||||
Send bug reports to:
|
Send bug reports to:
|
||||||
Bram Moolenaar <Bram@vim.org>
|
Bram Moolenaar <Bram@vim.org>
|
||||||
|
|
||||||
There are five mailing lists for Vim:
|
There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
|
||||||
<vim@vim.org>
|
|
||||||
For discussions about using existing versions of Vim: Useful mappings,
|
|
||||||
questions, answers, where to get a specific version, etc.
|
|
||||||
<vim-dev@vim.org>
|
|
||||||
For discussions about changing Vim: New features, porting, beta-test
|
|
||||||
versions, etc.
|
|
||||||
<vim-announce@vim.org>
|
|
||||||
Announcements about new versions of Vim; also beta-test versions and
|
|
||||||
ports to different systems.
|
|
||||||
<vim-multibyte@vim.org>
|
|
||||||
For discussions about using and improving the multi-byte aspects of
|
|
||||||
Vim: XIM, Hangul, fontset, etc.
|
|
||||||
<vim-mac@vim.org>
|
|
||||||
For discussions about using and improving Vim on the Macintosh.
|
|
||||||
|
|
||||||
For more info and URLs of the archives see "http://www.vim.org/maillist.php".
|
|
||||||
|
|
||||||
NOTE:
|
|
||||||
- You can only send messages to these lists if you have subscribed!
|
|
||||||
- You need to send the messages from the same location as where you subscribed
|
|
||||||
from (to avoid spam mail).
|
|
||||||
- Maximum message size is 40000 characters.
|
|
||||||
|
|
||||||
If you want to join a maillist, send a message to
|
|
||||||
<vim-help@vim.org>
|
|
||||||
Make sure that your "From:" address is correct. Then the list server will
|
|
||||||
send you a help message.
|
|
||||||
|
|
||||||
|
|
||||||
MAIN AUTHOR
|
MAIN AUTHOR
|
||||||
|
|
||||||
Send any other comments, patches, pizza and suggestions to:
|
Send any other comments, patches, flowers and suggestions to:
|
||||||
|
|
||||||
Bram Moolenaar E-mail: Bram@vim.org
|
Bram Moolenaar E-mail: Bram@vim.org
|
||||||
Finsterruetihof 1
|
Finsterruetihof 1
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_ami.txt for version 7.2 of Vim: Vi IMproved.
|
README_ami.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on Amiga systems.
|
This file explains the installation of Vim on Amiga systems.
|
||||||
See README.txt for general information about Vim.
|
See README.txt for general information about Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_amibin.txt for version 7.2 of Vim: Vi IMproved.
|
README_amibin.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_ami.txt" for installation instructions for the Amiga.
|
See "README_ami.txt" for installation instructions for the Amiga.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_amisrc.txt for version 7.2 of Vim: Vi IMproved.
|
README_amisrc.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_ami.txt" for installation instructions for the Amiga.
|
See "README_ami.txt" for installation instructions for the Amiga.
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
README_bindos.txt for version 7.2 of Vim: Vi IMproved.
|
README_bindos.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||||
These files are in the runtime archive (vim72rt.zip).
|
These files are in the runtime archive (vim73rt.zip).
|
||||||
|
|
||||||
|
|
||||||
There are several binary distributions of Vim for the PC. You would normally
|
There are several binary distributions of Vim for the PC. You would normally
|
||||||
pick only one of them, but it's also possible to install several.
|
pick only one of them, but it's also possible to install several.
|
||||||
These ones are available (the version number may differ):
|
These ones are available (the version number may differ):
|
||||||
vim72d16.zip 16 bit DOS version
|
vim73d16.zip 16 bit DOS version
|
||||||
vim72d32.zip 32 bit DOS version
|
vim73d32.zip 32 bit DOS version
|
||||||
vim72w32.zip Windows 95/98/NT/etc. console version
|
vim73w32.zip Windows 95/98/NT/etc. console version
|
||||||
gvim72.zip Windows 95/98/NT/etc. GUI version
|
gvim73.zip Windows 95/98/NT/etc. GUI version
|
||||||
gvim72ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
gvim73ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||||
gvim72_s.zip Windows 3.1 GUI version
|
gvim73_s.zip Windows 3.1 GUI version
|
||||||
|
|
||||||
You MUST also get the runtime archive (vim72rt.zip).
|
You MUST also get the runtime archive (vim73rt.zip).
|
||||||
The sources are also available (vim72src.zip).
|
The sources are also available (vim73src.zip).
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_dos.txt for version 7.2 of Vim: Vi IMproved.
|
README_dos.txt for version 7.3 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-DOS and MS-Windows systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
@@ -47,13 +47,13 @@ These are the normal steps to install Vim from the .zip archives:
|
|||||||
Binary and runtime Vim archives are normally unpacked in the same location,
|
Binary and runtime Vim archives are normally unpacked in the same location,
|
||||||
on top of each other.
|
on top of each other.
|
||||||
|
|
||||||
2. Unpack the zip archives. This will create a new directory "vim\vim72",
|
2. Unpack the zip archives. This will create a new directory "vim\vim73",
|
||||||
in which all the distributed Vim files are placed. Since the directory
|
in which all the distributed Vim files are placed. Since the directory
|
||||||
name includes the version number, it is unlikely that you overwrite
|
name includes the version number, it is unlikely that you overwrite
|
||||||
existing files.
|
existing files.
|
||||||
Examples:
|
Examples:
|
||||||
pkunzip -d gvim72.zip
|
pkunzip -d gvim73.zip
|
||||||
unzip vim72w32.zip
|
unzip vim73w32.zip
|
||||||
|
|
||||||
You need to unpack the runtime archive and at least one of the binary
|
You need to unpack the runtime archive and at least one of the binary
|
||||||
archives. When using more than one binary version, be careful not to
|
archives. When using more than one binary version, be careful not to
|
||||||
@@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
|
|||||||
archive and follow the instructions in the documentation.
|
archive and follow the instructions in the documentation.
|
||||||
|
|
||||||
3. Change to the new directory:
|
3. Change to the new directory:
|
||||||
cd vim\vim72
|
cd vim\vim73
|
||||||
Run the "install.exe" program. It will ask you a number of questions about
|
Run the "install.exe" program. It will ask you a number of questions about
|
||||||
how you would like to have your Vim setup. Among these are:
|
how you would like to have your Vim setup. Among these are:
|
||||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||||
@@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
|
|||||||
console or in a shell. You can select one of the directories in your
|
console or in a shell. You can select one of the directories in your
|
||||||
$PATH. If you skip this, you can add Vim to the search path manually:
|
$PATH. If you skip this, you can add Vim to the search path manually:
|
||||||
The simplest is to add a line to your autoexec.bat. Examples:
|
The simplest is to add a line to your autoexec.bat. Examples:
|
||||||
set path=%path%;C:\vim\vim72
|
set path=%path%;C:\vim\vim73
|
||||||
set path=%path%;D:\editors\vim\vim72
|
set path=%path%;D:\editors\vim\vim73
|
||||||
- Create entries for Vim on the desktop and in the Start menu.
|
- Create entries for Vim on the desktop and in the Start menu.
|
||||||
|
|
||||||
That's it!
|
That's it!
|
||||||
@@ -93,8 +93,8 @@ Remarks:
|
|||||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
won't show a menubar. Then you need to set the $VIM environment variable to
|
||||||
point to the top directory of your Vim files. Example:
|
point to the top directory of your Vim files. Example:
|
||||||
set VIM=C:\editors\vim
|
set VIM=C:\editors\vim
|
||||||
Vim version 6.0 will look for your vimrc file in $VIM, and for the runtime
|
Vim version 7.3 will look for your vimrc file in $VIM, and for the runtime
|
||||||
files in $VIM/vim72. See ":help $VIM" for more information.
|
files in $VIM/vim73. See ":help $VIM" for more information.
|
||||||
|
|
||||||
- To avoid confusion between distributed files of different versions and your
|
- To avoid confusion between distributed files of different versions and your
|
||||||
own modified vim scripts, it is recommended to use this directory layout:
|
own modified vim scripts, it is recommended to use this directory layout:
|
||||||
@@ -105,14 +105,14 @@ Remarks:
|
|||||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||||
C:\vim\... Other files you made.
|
C:\vim\... Other files you made.
|
||||||
Distributed files:
|
Distributed files:
|
||||||
C:\vim\vim72\vim.exe The Vim version 6.0 executable.
|
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
|
||||||
C:\vim\vim72\doc\*.txt The version 6.0 documentation files.
|
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
|
||||||
C:\vim\vim72\bugreport.vim A Vim version 6.0 script.
|
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
|
||||||
C:\vim\vim72\... Other version 6.0 distributed files.
|
C:\vim\vim73\... Other version 7.3 distributed files.
|
||||||
In this case the $VIM environment variable would be set like this:
|
In this case the $VIM environment variable would be set like this:
|
||||||
set VIM=C:\vim
|
set VIM=C:\vim
|
||||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim72". Don't add
|
Then $VIMRUNTIME will automatically be set to "$VIM\vim73". Don't add
|
||||||
"vim72" to $VIM, that won't work.
|
"vim73" to $VIM, that won't work.
|
||||||
|
|
||||||
- You can put your Vim executable anywhere else. If the executable is not
|
- You can put your Vim executable anywhere else. If the executable is not
|
||||||
with the other Vim files, you should set $VIM. The simplest is to add a line
|
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||||
@@ -136,8 +136,8 @@ Remarks:
|
|||||||
Select Properties.
|
Select Properties.
|
||||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||||
Vim executable. Examples:
|
Vim executable. Examples:
|
||||||
C:\command.com /c C:\vim\vim72\vim.exe
|
C:\command.com /c C:\vim\vim73\vim.exe
|
||||||
C:\command.com /c D:\editors\vim\vim72\vim.exe
|
C:\command.com /c D:\editors\vim\vim73\vim.exe
|
||||||
6. Select the font, window size, etc. that you like. If this isn't
|
6. Select the font, window size, etc. that you like. If this isn't
|
||||||
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
||||||
mode".
|
mode".
|
||||||
|
|||||||
@@ -1,61 +1,54 @@
|
|||||||
README_extra.txt for version 7.2 of Vim: Vi IMproved.
|
README_extra.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
The extra archive of Vim is to be used in combination with the source archive
|
These extra files of Vim are for special purposes. This README explains what
|
||||||
(vim-7.0-src.tar.gz). The extra archive is useless without it.
|
the files are for. For general information about Vim, see the "README.txt"
|
||||||
|
file.
|
||||||
For more information, see the "README.txt" file that comes with the runtime
|
|
||||||
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
|
||||||
archive too!
|
|
||||||
|
|
||||||
The extra archive plus the source and runtime achives make up the complete
|
|
||||||
sources of Vim for all systems.
|
|
||||||
|
|
||||||
|
|
||||||
Some of the things that the extra archive contains:
|
farsi/* Files for the Farsi (persian) language. If you don't
|
||||||
|
know what Farsi is, this is not for you.
|
||||||
|
|
||||||
Farsi Files for the Farsi (persian) language. If you don't know
|
src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
|
||||||
what Farsi is, this is not for you.
|
this is not for you.
|
||||||
|
|
||||||
if_sniff Interface to SNiFF. If you don't know what SNiFF is, this is
|
src/os_amiga.* Files for the Amiga port.
|
||||||
not for you.
|
|
||||||
|
|
||||||
os_amiga Files for the Amiga port.
|
src/gui_riscos.*
|
||||||
|
src/os_riscos.* Files for the RISC OS port.
|
||||||
|
|
||||||
gui_riscos
|
src/gui_beos.*
|
||||||
os_riscos Files for the RISC OS port.
|
src/os_beos.* Files for the BeOS port.
|
||||||
|
|
||||||
gui_beos
|
src/os_msdos.*
|
||||||
os_beos Files for the BeOS port.
|
src/os_dos.* Files for the MS-DOS port.
|
||||||
|
|
||||||
os_msdos
|
src/gui_mac.*
|
||||||
os_dos Files for the MS-DOS port.
|
src/os_mac.* Files for the Mac port.
|
||||||
|
|
||||||
gui_mac
|
src/os_mint.8 Files for the Atari Mint port.
|
||||||
os_mac Files for the Mac port.
|
|
||||||
|
|
||||||
os_mint Files for the Atari Mint port.
|
src/os_os2* Files for the OS/2 port.
|
||||||
|
src/tee/* Extra program for OS/2.
|
||||||
|
|
||||||
os_os2 Files for the OS/2 port.
|
src/os_vms* Files for the VMS port.
|
||||||
tee Extra program for OS/2.
|
|
||||||
|
|
||||||
os_vms Files for the VMS port.
|
src/os_w32*
|
||||||
|
src/os_win32.* Files for the Win32 port.
|
||||||
|
|
||||||
os_w32
|
src/gui_w32.* Files for the Win32 GUI.
|
||||||
os_win32 Files for the Win32 port.
|
src/gui_w48.* Files for the Win32 and Win16 GUI.
|
||||||
|
src/Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
|
||||||
|
runtime/rgb.txt File with color definitions for the Win32 GUI.
|
||||||
|
|
||||||
gui_w32 Files for the Win32 GUI.
|
src/if_ole.* OLE automation interface, for MS Windows 95 and NT.
|
||||||
gui_w48 Files for the Win32 and Win16 GUI.
|
|
||||||
Make_mvc.mak MS Visual C++ makefile for the Win32 GUI.
|
|
||||||
rgb.txt File with color definitions for the Win32 GUI.
|
|
||||||
|
|
||||||
if_ole OLE automation interface, for MS Windows 95 and NT.
|
src/VisVim/* Integration of Win32 GUI with MS Visual Developer
|
||||||
|
Studio.
|
||||||
|
|
||||||
VisVim Integration of Win32 GUI with MS Visual Developer Studio.
|
src/GvimExt/* DLL for the "Edit with Vim" context menu entry
|
||||||
|
|
||||||
GvimExt DLL for the "Edit with Vim" context menu entry
|
nsis/* NSIS script to build the self-installing MS-Windows exe
|
||||||
|
|
||||||
nsis NSIS script to build the self-installing MS-Windows exe
|
runtime/doc/*.man Preprocessed manual pages.
|
||||||
|
|
||||||
*.man Preprocessed manual pages.
|
runtime/macros/file_select.vim Vim script to browse directories (Unix only).
|
||||||
|
|
||||||
file_select.vim Vim script to browse directories (Unix only).
|
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
README_lang.txt for version 7.2 of Vim: Vi IMproved.
|
|
||||||
|
|
||||||
This file contains files for non-English languages:
|
|
||||||
- Translated messages.
|
|
||||||
- Translated menus.
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
README_mac.txt for version 7.2 of Vim: Vi IMproved.
|
README_mac.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on Macintosh systems.
|
This file explains the installation of Vim on Macintosh systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_ole.txt for version 7.2 of Vim: Vi IMproved.
|
README_ole.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This archive contains gvim.exe with OLE interface and VisVim.
|
This archive contains gvim.exe with OLE interface and VisVim.
|
||||||
This version of gvim.exe can also load a number of interface dynamically (you
|
This version of gvim.exe can also load a number of interface dynamically (you
|
||||||
@@ -16,5 +16,5 @@ Win32 with OLE - "MS-Windows 32 bit GUI version with OLE support"
|
|||||||
For further information, type this inside Vim:
|
For further information, type this inside Vim:
|
||||||
:help if_ole
|
:help if_ole
|
||||||
|
|
||||||
Futhermore, this archive contains VISVIM.DLL. It can be used to integrate
|
Furthermore, this archive contains VISVIM.DLL. It can be used to integrate
|
||||||
the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt.
|
the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt.
|
||||||
|
|||||||
@@ -1,32 +1,32 @@
|
|||||||
README_os2.txt for version 7.2 of Vim: Vi IMproved.
|
README_os2.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on OS/2 systems.
|
This file explains the installation of Vim on OS/2 systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
|
|
||||||
|
|
||||||
NOTE: You will need two archives:
|
NOTE: You will need two archives:
|
||||||
vim72rt.zip contains the runtime files (same as for the PC version)
|
vim73rt.zip contains the runtime files (same as for the PC version)
|
||||||
vim72os2.zip contains the OS/2 executables
|
vim73os2.zip contains the OS/2 executables
|
||||||
|
|
||||||
1. Go to the directory where you want to put the Vim files. Examples:
|
1. Go to the directory where you want to put the Vim files. Examples:
|
||||||
cd C:\
|
cd C:\
|
||||||
cd D:\editors
|
cd D:\editors
|
||||||
|
|
||||||
2. Unpack the zip archives. This will create a new directory "vim/vim72",
|
2. Unpack the zip archives. This will create a new directory "vim/vim73",
|
||||||
in which all the distributed Vim files are placed. Since the directory
|
in which all the distributed Vim files are placed. Since the directory
|
||||||
name includes the version number, it is unlikely that you overwrite
|
name includes the version number, it is unlikely that you overwrite
|
||||||
existing files.
|
existing files.
|
||||||
Examples:
|
Examples:
|
||||||
pkunzip -d vim72os2.zip
|
pkunzip -d vim73os2.zip
|
||||||
unzip vim72os2.zip
|
unzip vim73os2.zip
|
||||||
|
|
||||||
After you unpacked the files, you can still move the whole directory tree
|
After you unpacked the files, you can still move the whole directory tree
|
||||||
to another location.
|
to another location.
|
||||||
|
|
||||||
3. Add the directory where vim.exe is to your path. The simplest is to add a
|
3. Add the directory where vim.exe is to your path. The simplest is to add a
|
||||||
line to your autoexec.bat. Examples:
|
line to your autoexec.bat. Examples:
|
||||||
set path=%path%;C:\vim\vim72
|
set path=%path%;C:\vim\vim73
|
||||||
set path=%path%;D:\editors\vim\vim72
|
set path=%path%;D:\editors\vim\vim73
|
||||||
|
|
||||||
That's it!
|
That's it!
|
||||||
|
|
||||||
@@ -41,10 +41,10 @@ Extra remarks:
|
|||||||
C:\vim\_viminfo Dynamic info for 'viminfo'.
|
C:\vim\_viminfo Dynamic info for 'viminfo'.
|
||||||
C:\vim\... Other files you made.
|
C:\vim\... Other files you made.
|
||||||
Distributed files:
|
Distributed files:
|
||||||
C:\vim\vim72\vim.exe The Vim version 7.1 executable.
|
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
|
||||||
C:\vim\vim72\doc\*.txt The version 7.1 documentation files.
|
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
|
||||||
C:\vim\vim72\bugreport.vim A Vim version 7.1 script.
|
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
|
||||||
C:\vim\vim72\... Other version 7.1 distributed files.
|
C:\vim\vim73\... Other version 7.3 distributed files.
|
||||||
In this case the $VIM environment variable would be set like this:
|
In this case the $VIM environment variable would be set like this:
|
||||||
set VIM=C:\vim
|
set VIM=C:\vim
|
||||||
|
|
||||||
|
|||||||
123
README_os390.txt
123
README_os390.txt
@@ -1,51 +1,84 @@
|
|||||||
README_os_390.txt for version 7.2 of Vim: Vi IMproved.
|
README_zOS.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
Welcome to the OS/390 Unix port of VIM.
|
This readme explains how to build Vim on z/OS. Formerly called OS/390.
|
||||||
|
See "README.txt" for general information about Vim.
|
||||||
|
|
||||||
ATTENTION: THIS IS AN _ALPHA_ VERSION!!!
|
Most likely there are not many users out there using Vim on z/OS. So chances
|
||||||
I expect you to know how to handle alpha software!
|
are good, that some bugs are still undiscovered.
|
||||||
|
|
||||||
This port was done by Ralf Schandl <schandl@de.ibm.com>.
|
Getting the source to z/OS:
|
||||||
This port is not maintained or supported by IBM!!
|
==========================
|
||||||
|
|
||||||
|
First get the source code in one big tar file and ftp it a binary to z/OS. If
|
||||||
|
the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2)
|
||||||
|
uncompress it on your PC, as this tools are (most likely) not available on the
|
||||||
|
mainframe.
|
||||||
|
|
||||||
For the list of changes see runtime/doc/os_390.txt.
|
To reduce the size of the tar file you might compress it into a zip file. On
|
||||||
|
z/OS Unix you might have the command "jar" from java to uncompress a zip. Use:
|
||||||
|
jar xvf <zip file name>
|
||||||
|
|
||||||
|
Unpack the tar file on z/OS with
|
||||||
|
pax -o from=ISO8859-1,to=IBM-1047 -rf vim.tar
|
||||||
|
|
||||||
|
Note: The Vim source contains a few bitmaps etc which will be destroyed by
|
||||||
|
this command, but these files are not needed on zOS (at least not for the
|
||||||
|
console version).
|
||||||
|
|
||||||
|
|
||||||
Compiling:
|
Compiling:
|
||||||
----------
|
==========
|
||||||
|
|
||||||
Note: After the file configure was created via autoconf, it had been
|
Vim can be compiled with or without GUI support. For 7.3 only the compilation
|
||||||
handedited, to make the test for ICEConnectionNumber work.
|
without GUI was tested. Below is a section about compiling with X11 but this
|
||||||
DO NOT run autoconf again!
|
is from an earlier version of Vim.
|
||||||
|
|
||||||
Without X11:
|
Console only:
|
||||||
|
-------------
|
||||||
|
|
||||||
If you build VIM without X11 support, compiling and building is nearly
|
If you build VIM without X11 support, compiling and building is nearly
|
||||||
straightforward. The only restriction is, that you can't call make from the
|
straightforward.
|
||||||
VIM toplevel directory. Change to the src directory first and call make from
|
|
||||||
there. Here is a what to do:
|
Change to the vim directory and do:
|
||||||
|
|
||||||
# Don't use c89!
|
# Don't use c89!
|
||||||
# Make additional symbols visible.
|
|
||||||
# Allow intermixing of compiler options and files.
|
# Allow intermixing of compiler options and files.
|
||||||
|
|
||||||
$ export CC=cc
|
$ export CC=cc
|
||||||
$ export CFLAGS=-D_ALL_SOURCE
|
|
||||||
$ export _CC_CCMODE=1
|
$ export _CC_CCMODE=1
|
||||||
$./configure --enable-max-features --without-x --enable-gui=no
|
$./configure --with-features=big --without-x --enable-gui=no
|
||||||
$ cd src
|
$ cd src
|
||||||
$ make
|
$ make
|
||||||
|
|
||||||
|
There may be warnings:
|
||||||
|
- include files not found (libc, sys/param.h, ...)
|
||||||
|
- Redeclaration of ... differs from ...
|
||||||
|
-- just ignore them.
|
||||||
|
|
||||||
$ make test
|
$ make test
|
||||||
|
|
||||||
Note: Test 28 will be reported as failed. This is because diff can't
|
This will produce lots of garbage on your screen (including error
|
||||||
compare files containing '\0' characters. Test 11 will fail if you
|
messages). Don't worry.
|
||||||
don't have gzip.
|
|
||||||
|
If the test stops at one point in vim (might happen in test 11), just
|
||||||
|
press :q!
|
||||||
|
|
||||||
|
Expected test failures:
|
||||||
|
11: If you don't have gzip installed
|
||||||
|
24: test of backslash sequences in regexp are ASCII dependent
|
||||||
|
42: Multibyte is not supported on z/OS
|
||||||
|
55: ASCII<->EBCDIC sorting
|
||||||
|
57: ASCII<->EBCDIC sorting
|
||||||
|
58: Spell checking is not supported with EBCDIC
|
||||||
|
71: Blowfish encryption doesn't work
|
||||||
|
|
||||||
$ make install
|
$ make install
|
||||||
|
|
||||||
|
|
||||||
With X11:
|
With X11:
|
||||||
|
---------
|
||||||
|
|
||||||
|
WARNING: This instruction was not tested with Vim 7.3.
|
||||||
|
|
||||||
There are two ways for building VIM with X11 support. The first way is simple
|
There are two ways for building VIM with X11 support. The first way is simple
|
||||||
and results in a big executable (~13 Mb), the second needs a few additional
|
and results in a big executable (~13 Mb), the second needs a few additional
|
||||||
@@ -54,8 +87,6 @@ you want Motif.
|
|||||||
|
|
||||||
The easy way:
|
The easy way:
|
||||||
$ export CC=cc
|
$ export CC=cc
|
||||||
$ export CFLAGS="-D_ALL_SOURCE -W c,dll"
|
|
||||||
$ export LDFLAGS="-W l,dll"
|
|
||||||
$ export _CC_CCMODE=1
|
$ export _CC_CCMODE=1
|
||||||
$ ./configure --enable-max-features --enable-gui=motif
|
$ ./configure --enable-max-features --enable-gui=motif
|
||||||
$ cd src
|
$ cd src
|
||||||
@@ -65,7 +96,7 @@ you want Motif.
|
|||||||
|
|
||||||
The smarter way:
|
The smarter way:
|
||||||
Make VIM as described above. Then create a file named 'link.sed' with the
|
Make VIM as described above. Then create a file named 'link.sed' with the
|
||||||
following contense:
|
following content (see src/link.390):
|
||||||
|
|
||||||
s/-lXext *//g
|
s/-lXext *//g
|
||||||
s/-lXmu *//g
|
s/-lXmu *//g
|
||||||
@@ -84,47 +115,3 @@ you want Motif.
|
|||||||
See the Makefile and the file link.sh on how link.sed is used.
|
See the Makefile and the file link.sh on how link.sed is used.
|
||||||
|
|
||||||
|
|
||||||
Hint:
|
|
||||||
-----
|
|
||||||
Use the online help! (See weaknesses below.)
|
|
||||||
|
|
||||||
Example:
|
|
||||||
Enter ':help syntax' and then press <TAB> several times, you will switch
|
|
||||||
through all help items containing 'syntax'. Press <ENTER> on the one you are
|
|
||||||
interested at. Or press <Ctrl-D> and you will get a list of all items printed
|
|
||||||
that contain 'syntax'.
|
|
||||||
|
|
||||||
The helpfiles contains cross-references. Links are between '|'. Position the
|
|
||||||
cursor on them and press <Ctrl-]> to follow this link. Use <Ctrl-T> to jump
|
|
||||||
back.
|
|
||||||
|
|
||||||
Known weaknesses:
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
- You can't call make from the toplevel directory, you have to do a 'cd src'
|
|
||||||
first. If you do it, make will call configure again. I don't know why and
|
|
||||||
didn't investigate it, there were more important things to do. If you can
|
|
||||||
make it work drop me a note.
|
|
||||||
|
|
||||||
- The documentation was not updated for this alpha release. It contains lot of
|
|
||||||
ASCII dependencies, especially in examples.
|
|
||||||
|
|
||||||
- Digraphs are dependent on code page 1047. Digraphs are used to enter
|
|
||||||
characters that normally cannot be entered by an ordinary keyboard.
|
|
||||||
See ":help digraphs".
|
|
||||||
|
|
||||||
- Using 'ga' to show the code of the character under the cursor shows the
|
|
||||||
correct dec/hex/oct values, but the other informations might be missing or
|
|
||||||
wrong.
|
|
||||||
|
|
||||||
- The sed syntax file doesn't work, it is ASCII dependent.
|
|
||||||
|
|
||||||
Bugs:
|
|
||||||
-----
|
|
||||||
If you find a bug please inform me (schandl@de.ibm.com), don't disturb Bram
|
|
||||||
Moolenaar. It's most likely a bug I introduced during porting or some ASCII
|
|
||||||
dependency I didn't notice.
|
|
||||||
|
|
||||||
Feedback:
|
|
||||||
---------
|
|
||||||
Feedback welcome! Just drop me a note.
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
README_src.txt for version 7.2 of Vim: Vi IMproved.
|
README_src.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
The source archive contains the files needed to compile Vim on Unix systems.
|
The source archive contains the files needed to compile Vim on Unix systems.
|
||||||
It is packed for Unix systems (NL line separator). It is also used for other
|
It is packed for Unix systems (NL line separator). It is also used for other
|
||||||
systems in combination with the extra archive (vim-7.0-extra.tar.gz, in the
|
systems in combination with the extra archive (vim-7.3-extra.tar.gz, in the
|
||||||
"extra" directory of ftp.vim.org).
|
"extra" directory of ftp.vim.org).
|
||||||
|
|
||||||
For more information, see the README.txt file that comes with the runtime
|
For more information, see the README.txt file that comes with the runtime
|
||||||
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
archive (vim-7.3-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||||
archive too!
|
archive too!
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
README_srcdos.txt for version 7.2 of Vim: Vi IMproved.
|
README_srcdos.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||||
These files are in the runtime archive (vim72rt.zip).
|
These files are in the runtime archive (vim73rt.zip).
|
||||||
|
|
||||||
|
|
||||||
The DOS source archive contains the files needed to compile Vim on MS-DOS or
|
The DOS source archive contains the files needed to compile Vim on MS-DOS or
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_unix.txt for version 7.2 of Vim: Vi IMproved.
|
README_unix.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on Unix systems.
|
This file explains the installation of Vim on Unix systems.
|
||||||
See "README.txt" for general information about Vim.
|
See "README.txt" for general information about Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_vms.txt for version 7.2 of Vim: Vi IMproved.
|
README_vms.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This file explains the installation of Vim on VMS systems.
|
This file explains the installation of Vim on VMS systems.
|
||||||
See "README.txt" in the runtime archive for information about Vim.
|
See "README.txt" in the runtime archive for information about Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
README_w32s.txt for version 7.2 of Vim: Vi IMproved.
|
README_w32s.txt for version 7.3 of Vim: Vi IMproved.
|
||||||
|
|
||||||
This archive contains the gvim.exe that was specifically compiled for use in
|
This archive contains the gvim.exe that was specifically compiled for use in
|
||||||
the Win32s subsystem in MS-Windows 3.1 and 3.11.
|
the Win32s subsystem in MS-Windows 3.1 and 3.11.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# NSIS file to create a self-installing exe for Vim.
|
# NSIS file to create a self-installing exe for Vim.
|
||||||
# It requires NSIS version 2.0 or later.
|
# It requires NSIS version 2.0 or later.
|
||||||
# Last change: 2004 May 02
|
# Last Change: 2010 Jul 30
|
||||||
|
|
||||||
# WARNING: if you make changes to this script, look out for $0 to be valid,
|
# WARNING: if you make changes to this script, look out for $0 to be valid,
|
||||||
# because uninstall deletes most files in $0.
|
# because uninstall deletes most files in $0.
|
||||||
@@ -22,17 +22,20 @@
|
|||||||
!define HAVE_NLS
|
!define HAVE_NLS
|
||||||
|
|
||||||
!define VER_MAJOR 7
|
!define VER_MAJOR 7
|
||||||
!define VER_MINOR 2
|
!define VER_MINOR 3
|
||||||
|
|
||||||
# ----------- No configurable settings below this line -----------
|
# ----------- No configurable settings below this line -----------
|
||||||
|
|
||||||
!include UpgradeDLL.nsh # for VisVim.dll
|
!include UpgradeDLL.nsh # for VisVim.dll
|
||||||
|
!include LogicLib.nsh
|
||||||
|
!include x64.nsh
|
||||||
|
|
||||||
Name "Vim ${VER_MAJOR}.${VER_MINOR}"
|
Name "Vim ${VER_MAJOR}.${VER_MINOR}"
|
||||||
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
|
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
|
||||||
CRCCheck force
|
CRCCheck force
|
||||||
SetCompressor lzma
|
SetCompressor lzma
|
||||||
SetDatablockOptimize on
|
SetDatablockOptimize on
|
||||||
|
RequestExecutionLevel highest
|
||||||
|
|
||||||
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
|
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
|
||||||
DirText "Choose a directory to install Vim (must end in 'vim')"
|
DirText "Choose a directory to install Vim (must end in 'vim')"
|
||||||
@@ -290,13 +293,21 @@ Section "Add an Edit-with-Vim context menu entry"
|
|||||||
SetOutPath $0
|
SetOutPath $0
|
||||||
ClearErrors
|
ClearErrors
|
||||||
SetOverwrite try
|
SetOverwrite try
|
||||||
|
${If} ${RunningX64}
|
||||||
|
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||||
|
${Else}
|
||||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||||
|
${EndIf}
|
||||||
IfErrors 0 GvimExtDone
|
IfErrors 0 GvimExtDone
|
||||||
|
|
||||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||||
# next reboot.
|
# next reboot.
|
||||||
GetTempFileName $3 $0
|
GetTempFileName $3 $0
|
||||||
|
${If} ${RunningX64}
|
||||||
|
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||||
|
${Else}
|
||||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||||
|
${EndIf}
|
||||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
Rename /REBOOTOK $3 $0\gvimext.dll
|
||||||
|
|
||||||
GvimExtDone:
|
GvimExtDone:
|
||||||
@@ -438,8 +449,8 @@ Section Uninstall
|
|||||||
|
|
||||||
AskRemove:
|
AskRemove:
|
||||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||||
"Remove all files in your $1\vimfiles directory? \
|
"Remove all files in your $1\vimfiles directory?$\n \
|
||||||
$\nIf you have created something there that you want to keep, click No" IDNO Fin
|
$\nCAREFUL: If you have created something there that you want to keep, click No" IDNO Fin
|
||||||
RMDir /r $1\vimfiles
|
RMDir /r $1\vimfiles
|
||||||
NoRemove:
|
NoRemove:
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
"------------------------------------------------------------------------------
|
"------------------------------------------------------------------------------
|
||||||
" Description: Perform Ada specific completion & tagging.
|
" Description: Perform Ada specific completion & tagging.
|
||||||
" Language: Ada (2005)
|
" Language: Ada (2005)
|
||||||
" $Id$
|
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
|
||||||
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
||||||
" Taylor Venable <taylor@metasyntax.net>
|
" Taylor Venable <taylor@metasyntax.net>
|
||||||
" Neil Bird <neil@fnxweb.com>
|
" Neil Bird <neil@fnxweb.com>
|
||||||
" Ned Okie <nokie@radford.edu>
|
" Ned Okie <nokie@radford.edu>
|
||||||
" $Author$
|
" $Author: krischik $
|
||||||
" $Date$
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||||
" Version: 4.6
|
" Version: 4.6
|
||||||
" $Revision$
|
" $Revision: 887 $
|
||||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
|
||||||
" History: 24.05.2006 MK Unified Headers
|
" History: 24.05.2006 MK Unified Headers
|
||||||
" 26.05.2006 MK ' should not be in iskeyword.
|
" 26.05.2006 MK ' should not be in iskeyword.
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
"------------------------------------------------------------------------------
|
"------------------------------------------------------------------------------
|
||||||
" Description: Vim Ada omnicompletion file
|
" Description: Vim Ada omnicompletion file
|
||||||
" Language: Ada (2005)
|
" Language: Ada (2005)
|
||||||
" $Id$
|
" $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
|
||||||
" Maintainer: Martin Krischik
|
" Maintainer: Martin Krischik
|
||||||
" $Author$
|
" $Author: krischik $
|
||||||
" $Date$
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||||
" Version: 4.6
|
" Version: 4.6
|
||||||
" $Revision$
|
" $Revision: 887 $
|
||||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
|
||||||
" History: 24.05.2006 MK Unified Headers
|
" History: 24.05.2006 MK Unified Headers
|
||||||
" 26.05.2006 MK improved search for begin of word.
|
" 26.05.2006 MK improved search for begin of word.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: C
|
" Language: C
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2007 Aug 30
|
" Last Change: 2010 Mar 23
|
||||||
|
|
||||||
|
|
||||||
" This function is used for the 'omnifunc' option.
|
" This function is used for the 'omnifunc' option.
|
||||||
@@ -161,7 +161,7 @@ function! ccomplete#Complete(findstart, base)
|
|||||||
let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
|
let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
|
||||||
else
|
else
|
||||||
" Completing "var.", "var.something", etc.
|
" Completing "var.", "var.something", etc.
|
||||||
let res = s:Nextitem(strpart(line, 0, col), items[-1], 0, 1)
|
let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
"------------------------------------------------------------------------------
|
"------------------------------------------------------------------------------
|
||||||
" Description: Vim Ada/Dec Ada compiler file
|
" Description: Vim Ada/Dec Ada compiler file
|
||||||
" Language: Ada (Dec Ada)
|
" Language: Ada (Dec Ada)
|
||||||
" $Id$
|
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
|
||||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||||
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
||||||
" $Author$
|
" $Author: krischik $
|
||||||
" $Date$
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||||
" Version: 4.6
|
" Version: 4.6
|
||||||
" $Revision$
|
" $Revision: 887 $
|
||||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
|
||||||
" History: 21.07.2006 MK New Dec Ada
|
" History: 21.07.2006 MK New Dec Ada
|
||||||
" 15.10.2006 MK Bram's suggestion for runtime integration
|
" 15.10.2006 MK Bram's suggestion for runtime integration
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" getscript.vim
|
" getscript.vim
|
||||||
" Author: Charles E. Campbell, Jr.
|
" Author: Charles E. Campbell, Jr.
|
||||||
" Date: Jul 10, 2008
|
" Date: Dec 28, 2009
|
||||||
" Version: 31
|
" Version: 32
|
||||||
" Installing: :help glvs-install
|
" Installing: :help glvs-install
|
||||||
" Usage: :help glvs
|
" Usage: :help glvs
|
||||||
"
|
"
|
||||||
@@ -12,19 +12,24 @@
|
|||||||
" Initialization: {{{1
|
" Initialization: {{{1
|
||||||
" if you're sourcing this file, surely you can't be
|
" if you're sourcing this file, surely you can't be
|
||||||
" expecting vim to be in its vi-compatible mode!
|
" expecting vim to be in its vi-compatible mode!
|
||||||
|
if exists("g:loaded_getscript")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_getscript= "v32"
|
||||||
if &cp
|
if &cp
|
||||||
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
if v:version < 702
|
||||||
|
echohl WarningMsg
|
||||||
|
echo "***warning*** this version of getscript needs vim 7.2"
|
||||||
|
echohl Normal
|
||||||
|
finish
|
||||||
|
endif
|
||||||
let s:keepcpo = &cpo
|
let s:keepcpo = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
"DechoTabOn
|
"DechoTabOn
|
||||||
|
|
||||||
if exists("g:loaded_getscript")
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
let g:loaded_getscript= "v31"
|
|
||||||
|
|
||||||
" ---------------------------
|
" ---------------------------
|
||||||
" Global Variables: {{{1
|
" Global Variables: {{{1
|
||||||
" ---------------------------
|
" ---------------------------
|
||||||
@@ -40,25 +45,6 @@ if !exists("g:getscript_cygwin")
|
|||||||
let g:getscript_cygwin= 0
|
let g:getscript_cygwin= 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
" shell quoting character {{{2
|
|
||||||
if exists("g:netrw_shq") && !exists("g:getscript_shq")
|
|
||||||
let g:getscript_shq= g:netrw_shq
|
|
||||||
elseif !exists("g:getscript_shq")
|
|
||||||
if exists("&shq") && &shq != ""
|
|
||||||
let g:getscript_shq= &shq
|
|
||||||
elseif exists("&sxq") && &sxq != ""
|
|
||||||
let g:getscript_shq= &sxq
|
|
||||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
|
||||||
if g:getscript_cygwin
|
|
||||||
let g:getscript_shq= "'"
|
|
||||||
else
|
|
||||||
let g:getscript_shq= '"'
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let g:getscript_shq= "'"
|
|
||||||
endif
|
|
||||||
" call Decho("g:getscript_shq<".g:getscript_shq.">")
|
|
||||||
endif
|
|
||||||
|
|
||||||
" wget vs curl {{{2
|
" wget vs curl {{{2
|
||||||
if !exists("g:GetLatestVimScripts_wget")
|
if !exists("g:GetLatestVimScripts_wget")
|
||||||
@@ -112,7 +98,9 @@ if g:GetLatestVimScripts_allowautoinstall
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
|
if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir)
|
||||||
|
let s:autoinstall= g:GetLatestVimScripts_autoinstalldir"
|
||||||
|
elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
|
||||||
let s:autoinstall= $HOME."/".s:dotvim
|
let s:autoinstall= $HOME."/".s:dotvim
|
||||||
endif
|
endif
|
||||||
" call Decho("s:autoinstall<".s:autoinstall.">")
|
" call Decho("s:autoinstall<".s:autoinstall.">")
|
||||||
@@ -165,7 +153,6 @@ fun! getscript#GetLatestVimScripts()
|
|||||||
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
|
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if filewritable(datadir) != 2
|
if filewritable(datadir) != 2
|
||||||
echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
|
echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
|
||||||
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
|
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
|
||||||
@@ -182,16 +169,24 @@ fun! getscript#GetLatestVimScripts()
|
|||||||
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
|
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
" --------------------
|
||||||
|
" Passed sanity checks
|
||||||
|
" --------------------
|
||||||
|
|
||||||
" call Decho("datadir <".datadir.">")
|
" call Decho("datadir <".datadir.">")
|
||||||
" call Decho("datafile <".datafile.">")
|
" call Decho("datafile <".datafile.">")
|
||||||
|
|
||||||
" don't let any events interfere (like winmanager's, taglist's, etc)
|
" don't let any event handlers interfere (like winmanager's, taglist's, etc)
|
||||||
let eikeep = &ei
|
let eikeep = &ei
|
||||||
let hlskeep = &hls
|
let hlskeep = &hls
|
||||||
set ei=all hls&vim
|
let acdkeep = &acd
|
||||||
|
set ei=all hls&vim noacd
|
||||||
|
|
||||||
" record current directory, change to datadir, open split window with
|
" Edit the datafile (ie. GetLatestVimScripts.dat):
|
||||||
" datafile
|
" 1. record current directory (origdir),
|
||||||
|
" 2. change directory to datadir,
|
||||||
|
" 3. split window
|
||||||
|
" 4. edit datafile
|
||||||
let origdir= getcwd()
|
let origdir= getcwd()
|
||||||
" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
|
" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
|
||||||
exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
|
exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
|
||||||
@@ -207,56 +202,55 @@ fun! getscript#GetLatestVimScripts()
|
|||||||
" call Decho("searching plugins for GetLatestVimScripts dependencies")
|
" call Decho("searching plugins for GetLatestVimScripts dependencies")
|
||||||
let lastline = line("$")
|
let lastline = line("$")
|
||||||
" call Decho("lastline#".lastline)
|
" call Decho("lastline#".lastline)
|
||||||
let plugins = split(globpath(&rtp,"plugin/*.vim"),'\n')
|
let firstdir = substitute(&rtp,',.*$','','')
|
||||||
|
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
|
||||||
|
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
|
||||||
let foundscript = 0
|
let foundscript = 0
|
||||||
let firstdir= ""
|
|
||||||
|
|
||||||
|
" this loop updates the GetLatestVimScripts.dat file
|
||||||
|
" with dependencies explicitly mentioned in the plugins
|
||||||
|
" via GetLatestVimScripts: ... lines
|
||||||
|
" It reads the plugin script at the end of the GetLatestVimScripts.dat
|
||||||
|
" file, examines it, and then removes it.
|
||||||
for plugin in plugins
|
for plugin in plugins
|
||||||
|
" call Decho(" ")
|
||||||
" call Decho("plugin<".plugin.">")
|
" call Decho("plugin<".plugin.">")
|
||||||
|
|
||||||
" don't process plugins in system directories
|
|
||||||
if firstdir == ""
|
|
||||||
let firstdir= substitute(plugin,'[/\\][^/\\]\+$','','')
|
|
||||||
" call Decho("setting firstdir<".firstdir.">")
|
|
||||||
else
|
|
||||||
let curdir= substitute(plugin,'[/\\][^/\\]\+$','','')
|
|
||||||
" call Decho("curdir<".curdir.">")
|
|
||||||
if curdir != firstdir
|
|
||||||
" call Decho("skipping subsequent plugins: curdir<".curdir."> != firstdir<".firstdir.">")
|
|
||||||
break
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" read plugin in
|
" read plugin in
|
||||||
" evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
|
" evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
|
||||||
$
|
$
|
||||||
" call Decho(" ")
|
|
||||||
" call Decho(".dependency checking<".plugin."> line$=".line("$"))
|
" call Decho(".dependency checking<".plugin."> line$=".line("$"))
|
||||||
" call Decho("exe silent r ".fnameescape(plugin))
|
" call Decho("..exe silent r ".fnameescape(plugin))
|
||||||
exe "silent r ".fnameescape(plugin)
|
exe "silent r ".fnameescape(plugin)
|
||||||
exe "silent bwipe ".bufnr("#")
|
exe "silent bwipe ".bufnr("#")
|
||||||
|
|
||||||
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
|
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
|
||||||
let newscript= substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
|
let depscript = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
|
||||||
|
let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','')
|
||||||
let llp1 = lastline+1
|
let llp1 = lastline+1
|
||||||
" call Decho("..newscript<".newscript.">")
|
" call Decho("..depscript<".depscript.">")
|
||||||
|
|
||||||
" don't process ""GetLatestVimScripts lines -- those that have been doubly-commented out
|
" found a "GetLatestVimScripts: # #" line in the script;
|
||||||
if newscript !~ '^"'
|
" check if its already in the datafile by searching backwards from llp1,
|
||||||
" found a "GetLatestVimScripts: # #" line in the script; check if its already in the datafile
|
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
|
||||||
|
" for the script-id with no wrapping allowed.
|
||||||
let curline = line(".")
|
let curline = line(".")
|
||||||
let noai_script = substitute(newscript,'\s*:AutoInstall:\s*','','e')
|
let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e')
|
||||||
exe llp1
|
exe llp1
|
||||||
|
let srchline = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW')
|
||||||
|
if srchline == 0
|
||||||
|
" this second search is taken when, for example, a 0 0 scriptname is to be skipped over
|
||||||
let srchline= search('\<'.noai_script.'\>','bW')
|
let srchline= search('\<'.noai_script.'\>','bW')
|
||||||
" call Decho("..noai_script<".noai_script."> srch=".srchline."curline#".line(".")." lastline#".lastline)
|
endif
|
||||||
|
" call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline)
|
||||||
|
|
||||||
if srchline == 0
|
if srchline == 0
|
||||||
" found a new script to permanently include in the datafile
|
" found a new script to permanently include in the datafile
|
||||||
let keep_rega = @a
|
let keep_rega = @a
|
||||||
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
|
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
|
||||||
|
echomsg "Appending <".@a."> to ".datafile." for ".depscript
|
||||||
|
" call Decho("..Appending <".@a."> to ".datafile." for ".depscript)
|
||||||
exe lastline."put a"
|
exe lastline."put a"
|
||||||
echomsg "Appending <".@a."> to ".datafile." for ".newscript
|
|
||||||
" call Decho("..APPEND (".noai_script.")<".@a."> to GetLatestVimScripts.dat")
|
|
||||||
let @a = keep_rega
|
let @a = keep_rega
|
||||||
let lastline = llp1
|
let lastline = llp1
|
||||||
let curline = curline + 1
|
let curline = curline + 1
|
||||||
@@ -267,9 +261,9 @@ fun! getscript#GetLatestVimScripts()
|
|||||||
|
|
||||||
let curline = curline + 1
|
let curline = curline + 1
|
||||||
exe curline
|
exe curline
|
||||||
endif
|
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
|
" llp1: last line plus one
|
||||||
let llp1= lastline + 1
|
let llp1= lastline + 1
|
||||||
" call Decho(".deleting lines: ".llp1.",$d")
|
" call Decho(".deleting lines: ".llp1.",$d")
|
||||||
exe "silent! ".llp1.",$d"
|
exe "silent! ".llp1.",$d"
|
||||||
@@ -282,7 +276,9 @@ fun! getscript#GetLatestVimScripts()
|
|||||||
setlocal nomod
|
setlocal nomod
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" --------------------------------------------------------------------
|
||||||
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
|
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
|
||||||
|
" --------------------------------------------------------------------
|
||||||
" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
|
" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
|
||||||
setlocal lz
|
setlocal lz
|
||||||
1
|
1
|
||||||
@@ -324,6 +320,7 @@ fun! getscript#GetLatestVimScripts()
|
|||||||
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
|
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
|
||||||
let &ei = eikeep
|
let &ei = eikeep
|
||||||
let &hls = hlskeep
|
let &hls = hlskeep
|
||||||
|
let &acd = acdkeep
|
||||||
setlocal nolz
|
setlocal nolz
|
||||||
" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
|
" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
|
||||||
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
|
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
|
||||||
@@ -333,7 +330,7 @@ endfun
|
|||||||
" GetOneScript: (Get Latest Vim Script) this function operates {{{1
|
" GetOneScript: (Get Latest Vim Script) this function operates {{{1
|
||||||
" on the current line, interpreting two numbers and text as
|
" on the current line, interpreting two numbers and text as
|
||||||
" ScriptID, SourceID, and Filename.
|
" ScriptID, SourceID, and Filename.
|
||||||
" It downloads any scripts that have newer versions from vim.sf.net.
|
" It downloads any scripts that have newer versions from vim.sourceforge.net.
|
||||||
fun! s:GetOneScript(...)
|
fun! s:GetOneScript(...)
|
||||||
" call Dfunc("GetOneScript()")
|
" call Dfunc("GetOneScript()")
|
||||||
|
|
||||||
@@ -391,6 +388,7 @@ fun! s:GetOneScript(...)
|
|||||||
" call Decho("fname <".fname.">")
|
" call Decho("fname <".fname.">")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" plugin author protection from downloading his/her own scripts atop their latest work
|
||||||
if scriptid == 0 || srcid == 0
|
if scriptid == 0 || srcid == 0
|
||||||
" When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname
|
" When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname
|
||||||
let @a= rega
|
let @a= rega
|
||||||
@@ -416,21 +414,21 @@ fun! s:GetOneScript(...)
|
|||||||
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
|
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
|
||||||
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
|
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
|
||||||
|
|
||||||
" grab a copy of the plugin's vim.sf.net webpage
|
" grab a copy of the plugin's vim.sourceforge.net webpage
|
||||||
let scriptaddr = 'http://vim.sf.net/script.php?script_id='.scriptid
|
let scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='.scriptid
|
||||||
let tmpfile = tempname()
|
let tmpfile = tempname()
|
||||||
let v:errmsg = ""
|
let v:errmsg = ""
|
||||||
|
|
||||||
" make up to three tries at downloading the description
|
" make up to three tries at downloading the description
|
||||||
let itry= 1
|
let itry= 1
|
||||||
while itry <= 3
|
while itry <= 3
|
||||||
" call Decho("try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
|
" call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
|
||||||
if has("win32") || has("win16") || has("win95")
|
if has("win32") || has("win16") || has("win95")
|
||||||
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)."|bw!")
|
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!")
|
||||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)|bw!
|
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
|
||||||
else
|
else
|
||||||
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr))
|
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr))
|
||||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr)
|
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
|
||||||
endif
|
endif
|
||||||
if itry == 1
|
if itry == 1
|
||||||
exe "silent vsplit ".fnameescape(tmpfile)
|
exe "silent vsplit ".fnameescape(tmpfile)
|
||||||
@@ -495,8 +493,7 @@ fun! s:GetOneScript(...)
|
|||||||
let latestsrcid = latestsrcid + 0
|
let latestsrcid = latestsrcid + 0
|
||||||
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")
|
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")
|
||||||
|
|
||||||
" has the plugin's most-recent srcid increased, which indicates
|
" has the plugin's most-recent srcid increased, which indicates that it has been updated
|
||||||
" that it has been updated
|
|
||||||
if latestsrcid > srcid
|
if latestsrcid > srcid
|
||||||
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")
|
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")
|
||||||
|
|
||||||
@@ -506,65 +503,103 @@ fun! s:GetOneScript(...)
|
|||||||
let sname= "NEW_".sname
|
let sname= "NEW_".sname
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" -----------------------------------------------------------------------------
|
||||||
" the plugin has been updated since we last obtained it, so download a new copy
|
" the plugin has been updated since we last obtained it, so download a new copy
|
||||||
" call Decho("...downloading new <".sname.">")
|
" -----------------------------------------------------------------------------
|
||||||
echomsg "...downloading new <".sname.">"
|
" call Decho(".downloading new <".sname.">")
|
||||||
|
echomsg ".downloading new <".sname.">"
|
||||||
if has("win32") || has("win16") || has("win95")
|
if has("win32") || has("win16") || has("win95")
|
||||||
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
|
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
|
||||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)|q
|
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q
|
||||||
else
|
else
|
||||||
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='))
|
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='))
|
||||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id=').latestsrcid
|
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" --------------------------------------------------------------------------
|
||||||
" AutoInstall: only if doautoinstall has been requested by the plugin itself
|
" AutoInstall: only if doautoinstall has been requested by the plugin itself
|
||||||
|
" --------------------------------------------------------------------------
|
||||||
if doautoinstall
|
if doautoinstall
|
||||||
" call Decho("attempting to do autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
|
" call Decho(" ")
|
||||||
|
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
|
||||||
if filereadable(sname)
|
if filereadable(sname)
|
||||||
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall))
|
" call Decho("<".sname."> is readable")
|
||||||
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall)
|
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall))
|
||||||
|
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".shellescape(s:autoinstall)
|
||||||
let curdir = escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
|
let curdir = escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
|
||||||
let installdir= curdir."/Installed"
|
let installdir= curdir."/Installed"
|
||||||
if !isdirectory(installdir)
|
if !isdirectory(installdir)
|
||||||
call mkdir(installdir)
|
call mkdir(installdir)
|
||||||
endif
|
endif
|
||||||
|
" call Decho("curdir<".curdir."> installdir<".installdir.">")
|
||||||
" call Decho("exe cd ".fnameescape(s:autoinstall))
|
" call Decho("exe cd ".fnameescape(s:autoinstall))
|
||||||
exe "cd ".fnameescape(s:autoinstall)
|
exe "cd ".fnameescape(s:autoinstall)
|
||||||
|
|
||||||
|
" determine target directory for moves
|
||||||
|
let firstdir= substitute(&rtp,',.*$','','')
|
||||||
|
let pname = substitute(sname,'\..*','.vim','')
|
||||||
|
" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
|
||||||
|
if filereadable(firstdir.'/AsNeeded/'.pname)
|
||||||
|
let tgtdir= "AsNeeded"
|
||||||
|
else
|
||||||
|
let tgtdir= "plugin"
|
||||||
|
endif
|
||||||
|
" call Decho("tgtdir<".tgtdir."> pname<".pname.">")
|
||||||
|
|
||||||
" decompress
|
" decompress
|
||||||
if sname =~ '\.bz2$'
|
if sname =~ '\.bz2$'
|
||||||
" call Decho("decompress: attempt to bunzip2 ".sname)
|
" call Decho("decompress: attempt to bunzip2 ".sname)
|
||||||
exe "silent !bunzip2 ".s:Escape(sname)
|
exe "silent !bunzip2 ".shellescape(sname)
|
||||||
let sname= substitute(sname,'\.bz2$','','')
|
let sname= substitute(sname,'\.bz2$','','')
|
||||||
" call Decho("decompress: new sname<".sname."> after bunzip2")
|
" call Decho("decompress: new sname<".sname."> after bunzip2")
|
||||||
elseif sname =~ '\.gz$'
|
elseif sname =~ '\.gz$'
|
||||||
" call Decho("decompress: attempt to gunzip ".sname)
|
" call Decho("decompress: attempt to gunzip ".sname)
|
||||||
exe "silent !gunzip ".s:Escape(sname)
|
exe "silent !gunzip ".shellescape(sname)
|
||||||
let sname= substitute(sname,'\.gz$','','')
|
let sname= substitute(sname,'\.gz$','','')
|
||||||
" call Decho("decompress: new sname<".sname."> after gunzip")
|
" call Decho("decompress: new sname<".sname."> after gunzip")
|
||||||
|
else
|
||||||
|
" call Decho("no decompression needed")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" distribute archive(.zip, .tar, .vba) contents
|
" distribute archive(.zip, .tar, .vba) contents
|
||||||
if sname =~ '\.zip$'
|
if sname =~ '\.zip$'
|
||||||
" call Decho("dearchive: attempt to unzip ".sname)
|
" call Decho("dearchive: attempt to unzip ".sname)
|
||||||
exe "silent !unzip -o ".s:Escape(sname)
|
exe "silent !unzip -o ".shellescape(sname)
|
||||||
elseif sname =~ '\.tar$'
|
elseif sname =~ '\.tar$'
|
||||||
" call Decho("dearchive: attempt to untar ".sname)
|
" call Decho("dearchive: attempt to untar ".sname)
|
||||||
exe "silent !tar -xvf ".s:Escape(sname)
|
exe "silent !tar -xvf ".shellescape(sname)
|
||||||
elseif sname =~ '\.vba$'
|
elseif sname =~ '\.vba$'
|
||||||
" call Decho("dearchive: attempt to handle a vimball: ".sname)
|
" call Decho("dearchive: attempt to handle a vimball: ".sname)
|
||||||
silent 1split
|
silent 1split
|
||||||
|
if exists("g:vimball_home")
|
||||||
|
let oldvimballhome= g:vimball_home
|
||||||
|
endif
|
||||||
|
let g:vimball_home= s:autoinstall
|
||||||
exe "silent e ".fnameescape(sname)
|
exe "silent e ".fnameescape(sname)
|
||||||
silent so %
|
silent so %
|
||||||
silent q
|
silent q
|
||||||
|
if exists("oldvimballhome")
|
||||||
|
let g:vimball_home= oldvimballhome
|
||||||
|
else
|
||||||
|
unlet g:vimball_home
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" call Decho("no dearchiving needed")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" ---------------------------------------------
|
||||||
|
" move plugin to plugin/ or AsNeeded/ directory
|
||||||
|
" ---------------------------------------------
|
||||||
if sname =~ '.vim$'
|
if sname =~ '.vim$'
|
||||||
" call Decho("dearchive: attempt to simply move ".sname." to plugin")
|
" call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
|
||||||
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." plugin"
|
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
|
||||||
else
|
else
|
||||||
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
|
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
|
||||||
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".installdir
|
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
|
||||||
|
endif
|
||||||
|
if tgtdir != "plugin"
|
||||||
|
" call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir)
|
||||||
|
exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" helptags step
|
" helptags step
|
||||||
@@ -599,20 +634,6 @@ fun! s:GetOneScript(...)
|
|||||||
" call Dret("GetOneScript")
|
" call Dret("GetOneScript")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" s:Escape: makes a string safe&suitable for the shell {{{2
|
|
||||||
fun! s:Escape(name)
|
|
||||||
" call Dfunc("s:Escape(name<".a:name.">)")
|
|
||||||
if exists("*shellescape")
|
|
||||||
" shellescape() was added by patch 7.0.111
|
|
||||||
let name= shellescape(a:name)
|
|
||||||
else
|
|
||||||
let name= g:getscript_shq . a:name . g:getscript_shq
|
|
||||||
endif
|
|
||||||
" call Dret("s:Escape ".name)
|
|
||||||
return name
|
|
||||||
endfun
|
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Restore Options: {{{1
|
" Restore Options: {{{1
|
||||||
let &cpo= s:keepcpo
|
let &cpo= s:keepcpo
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
"------------------------------------------------------------------------------
|
"------------------------------------------------------------------------------
|
||||||
" Description: Vim Ada/GNAT compiler file
|
" Description: Vim Ada/GNAT compiler file
|
||||||
" Language: Ada (GNAT)
|
" Language: Ada (GNAT)
|
||||||
" $Id$
|
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
|
||||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||||
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
||||||
" Ned Okie <nokie@radford.edu>
|
" Ned Okie <nokie@radford.edu>
|
||||||
" $Author$
|
" $Author: krischik $
|
||||||
" $Date$
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||||
" Version: 4.6
|
" Version: 4.6
|
||||||
" $Revision$
|
" $Revision: 887 $
|
||||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
|
||||||
" History: 24.05.2006 MK Unified Headers
|
" History: 24.05.2006 MK Unified Headers
|
||||||
" 16.07.2006 MK Ada-Mode as vim-ball
|
" 16.07.2006 MK Ada-Mode as vim-ball
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
|||||||
" netrwFileHandlers: contains various extension-based file handlers for
|
" netrwFileHandlers: contains various extension-based file handlers for
|
||||||
" netrw's browsers' x command ("eXecute launcher")
|
" netrw's browsers' x command ("eXecute launcher")
|
||||||
" Author: Charles E. Campbell, Jr.
|
" Author: Charles E. Campbell, Jr.
|
||||||
" Date: May 30, 2006
|
" Date: Sep 30, 2008
|
||||||
" Version: 9
|
" Version: 10
|
||||||
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
|
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
" with or without modifications, provided that this copyright
|
" with or without modifications, provided that this copyright
|
||||||
" notice is copied with it. Like anything else that's free,
|
" notice is copied with it. Like anything else that's free,
|
||||||
@@ -20,9 +20,15 @@
|
|||||||
if exists("g:loaded_netrwFileHandlers") || &cp
|
if exists("g:loaded_netrwFileHandlers") || &cp
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
let g:loaded_netrwFileHandlers= "v10"
|
||||||
|
if v:version < 702
|
||||||
|
echohl WarningMsg
|
||||||
|
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
|
||||||
|
echohl Normal
|
||||||
|
finish
|
||||||
|
endif
|
||||||
let s:keepcpo= &cpo
|
let s:keepcpo= &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
let g:loaded_netrwFileHandlers= "v9"
|
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" netrwFileHandlers#Invoke: {{{1
|
" netrwFileHandlers#Invoke: {{{1
|
||||||
@@ -73,10 +79,10 @@ fun! s:NFH_html(pagefile)
|
|||||||
|
|
||||||
if executable("mozilla")
|
if executable("mozilla")
|
||||||
" call Decho("executing !mozilla ".page)
|
" call Decho("executing !mozilla ".page)
|
||||||
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
|
exe "!mozilla ".shellescape(page,1)
|
||||||
elseif executable("netscape")
|
elseif executable("netscape")
|
||||||
" call Decho("executing !netscape ".page)
|
" call Decho("executing !netscape ".page)
|
||||||
exe "!netscape ".g:netrw_shq..page.g:netrw_shq
|
exe "!netscape ".shellescape(page,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_html 0")
|
" call Dret("s:NFH_html 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -96,10 +102,10 @@ fun! s:NFH_htm(pagefile)
|
|||||||
|
|
||||||
if executable("mozilla")
|
if executable("mozilla")
|
||||||
" call Decho("executing !mozilla ".page)
|
" call Decho("executing !mozilla ".page)
|
||||||
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
|
exe "!mozilla ".shellescape(page,1)
|
||||||
elseif executable("netscape")
|
elseif executable("netscape")
|
||||||
" call Decho("executing !netscape ".page)
|
" call Decho("executing !netscape ".page)
|
||||||
exe "!netscape ".g:netrw_shq.page.g:netrw_shq
|
exe "!netscape ".shellescape(page,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_htm 0")
|
" call Dret("s:NFH_htm 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -115,10 +121,10 @@ fun! s:NFH_jpg(jpgfile)
|
|||||||
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
|
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
|
||||||
|
|
||||||
if executable("gimp")
|
if executable("gimp")
|
||||||
exe "silent! !gimp -s ".g:netrw_shq.a:jpgfile.g:netrw_shq
|
exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
|
||||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||||
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
|
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
|
||||||
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:jpgfile.g:netrw_shq
|
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_jpg 0")
|
" call Dret("s:NFH_jpg 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -134,9 +140,9 @@ fun! s:NFH_gif(giffile)
|
|||||||
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
|
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
|
||||||
|
|
||||||
if executable("gimp")
|
if executable("gimp")
|
||||||
exe "silent! !gimp -s ".g:netrw_shq.a:giffile.g:netrw_shq
|
exe "silent! !gimp -s ".shellescape(a:giffile,1)
|
||||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:giffile.g:netrw_shq
|
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_gif 0")
|
" call Dret("s:NFH_gif 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -152,9 +158,9 @@ fun! s:NFH_png(pngfile)
|
|||||||
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
|
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
|
||||||
|
|
||||||
if executable("gimp")
|
if executable("gimp")
|
||||||
exe "silent! !gimp -s ".g:netrw_shq.a:pngfile.g:netrw_shq
|
exe "silent! !gimp -s ".shellescape(a:pngfile,1)
|
||||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pngfile.g:netrw_shq
|
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_png 0")
|
" call Dret("s:NFH_png 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -170,9 +176,9 @@ fun! s:NFH_pnm(pnmfile)
|
|||||||
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
|
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
|
||||||
|
|
||||||
if executable("gimp")
|
if executable("gimp")
|
||||||
exe "silent! !gimp -s ".g:netrw_shq.a:pnmfile.g:netrw_shq
|
exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
|
||||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pnmfile.g:netrw_shq
|
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_pnm 0")
|
" call Dret("s:NFH_pnm 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -190,7 +196,7 @@ fun! s:NFH_bmp(bmpfile)
|
|||||||
if executable("gimp")
|
if executable("gimp")
|
||||||
exe "silent! !gimp -s ".a:bmpfile
|
exe "silent! !gimp -s ".a:bmpfile
|
||||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:bmpfile.g:netrw_shq
|
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_bmp 0")
|
" call Dret("s:NFH_bmp 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -205,9 +211,9 @@ endfun
|
|||||||
fun! s:NFH_pdf(pdf)
|
fun! s:NFH_pdf(pdf)
|
||||||
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
|
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
|
||||||
if executable("gs")
|
if executable("gs")
|
||||||
exe 'silent! !gs '.g:netrw_shq.a:pdf.g:netrw_shq
|
exe 'silent! !gs '.shellescape(a:pdf,1)
|
||||||
elseif executable("pdftotext")
|
elseif executable("pdftotext")
|
||||||
exe 'silent! pdftotext -nopgbrk '.g:netrw_shq.a:pdf.g:netrw_shq
|
exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_pdf 0")
|
" call Dret("s:NFH_pdf 0")
|
||||||
return 0
|
return 0
|
||||||
@@ -223,7 +229,7 @@ fun! s:NFH_doc(doc)
|
|||||||
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
|
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
|
||||||
|
|
||||||
if executable("oowriter")
|
if executable("oowriter")
|
||||||
exe 'silent! !oowriter '.g:netrw_shq.a:doc.g:netrw_shq
|
exe 'silent! !oowriter '.shellescape(a:doc,1)
|
||||||
redraw!
|
redraw!
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_doc 0")
|
" call Dret("s:NFH_doc 0")
|
||||||
@@ -240,7 +246,7 @@ fun! s:NFH_sxw(sxw)
|
|||||||
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
|
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
|
||||||
|
|
||||||
if executable("oowriter")
|
if executable("oowriter")
|
||||||
exe 'silent! !oowriter '.g:netrw_shq.a:sxw.g:netrw_shq
|
exe 'silent! !oowriter '.shellescape(a:sxw,1)
|
||||||
redraw!
|
redraw!
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_sxw 0")
|
" call Dret("s:NFH_sxw 0")
|
||||||
@@ -257,7 +263,7 @@ fun! s:NFH_xls(xls)
|
|||||||
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
|
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
|
||||||
|
|
||||||
if executable("oocalc")
|
if executable("oocalc")
|
||||||
exe 'silent! !oocalc '.g:netrw_shq.a:xls.g:netrw_shq
|
exe 'silent! !oocalc '.shellescape(a:xls,1)
|
||||||
redraw!
|
redraw!
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_xls 0")
|
" call Dret("s:NFH_xls 0")
|
||||||
@@ -274,15 +280,15 @@ fun! s:NFH_ps(ps)
|
|||||||
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
|
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
|
||||||
if executable("gs")
|
if executable("gs")
|
||||||
" call Decho("exe silent! !gs ".a:ps)
|
" call Decho("exe silent! !gs ".a:ps)
|
||||||
exe "silent! !gs ".g:netrw_shq.a:ps.g:netrw_shq
|
exe "silent! !gs ".shellescape(a:ps,1)
|
||||||
redraw!
|
redraw!
|
||||||
elseif executable("ghostscript")
|
elseif executable("ghostscript")
|
||||||
" call Decho("exe silent! !ghostscript ".a:ps)
|
" call Decho("exe silent! !ghostscript ".a:ps)
|
||||||
exe "silent! !ghostscript ".g:netrw_shq.a:ps.g:netrw_shq
|
exe "silent! !ghostscript ".shellescape(a:ps,1)
|
||||||
redraw!
|
redraw!
|
||||||
elseif executable("gswin32")
|
elseif executable("gswin32")
|
||||||
" call Decho("exe silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq)
|
" call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
|
||||||
exe "silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq
|
exe "silent! !gswin32 ".shellescape(a:ps,1)
|
||||||
redraw!
|
redraw!
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_ps 0")
|
" call Dret("s:NFH_ps 0")
|
||||||
@@ -298,16 +304,16 @@ endfun
|
|||||||
fun! s:NFH_eps(eps)
|
fun! s:NFH_eps(eps)
|
||||||
" call Dfunc("s:NFH_eps()")
|
" call Dfunc("s:NFH_eps()")
|
||||||
if executable("gs")
|
if executable("gs")
|
||||||
exe "silent! !gs ".g:netrw_shq.a:eps.g:netrw_shq
|
exe "silent! !gs ".shellescape(a:eps,1)
|
||||||
redraw!
|
redraw!
|
||||||
elseif executable("ghostscript")
|
elseif executable("ghostscript")
|
||||||
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
|
exe "silent! !ghostscript ".shellescape(a:eps,1)
|
||||||
redraw!
|
redraw!
|
||||||
elseif executable("ghostscript")
|
elseif executable("ghostscript")
|
||||||
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
|
exe "silent! !ghostscript ".shellescape(a:eps,1)
|
||||||
redraw!
|
redraw!
|
||||||
elseif executable("gswin32")
|
elseif executable("gswin32")
|
||||||
exe "silent! !gswin32 ".g:netrw_shq.a:eps.g:netrw_shq
|
exe "silent! !gswin32 ".shellescape(a:eps,1)
|
||||||
redraw!
|
redraw!
|
||||||
else
|
else
|
||||||
" call Dret("s:NFH_eps 0")
|
" call Dret("s:NFH_eps 0")
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" netrwSettings.vim: makes netrw settings simpler
|
" netrwSettings.vim: makes netrw settings simpler
|
||||||
" Date: Jul 02, 2008
|
" Date: Sep 03, 2008
|
||||||
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
|
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
|
||||||
" Version: 12
|
" Version: 13
|
||||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
|
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell, Jr. {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
" with or without modifications, provided that this copyright
|
" with or without modifications, provided that this copyright
|
||||||
@@ -19,7 +19,13 @@
|
|||||||
if exists("g:loaded_netrwSettings") || &cp
|
if exists("g:loaded_netrwSettings") || &cp
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_netrwSettings = "v12"
|
let g:loaded_netrwSettings = "v13"
|
||||||
|
if v:version < 700
|
||||||
|
echohl WarningMsg
|
||||||
|
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||||
|
echohl Normal
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" NetrwSettings: {{{1
|
" NetrwSettings: {{{1
|
||||||
@@ -100,6 +106,7 @@ fun! netrwSettings#NetrwSettings()
|
|||||||
put = 'let g:netrw_browsex_viewer = (not defined)'
|
put = 'let g:netrw_browsex_viewer = (not defined)'
|
||||||
endif
|
endif
|
||||||
put = 'let g:netrw_compress = '.g:netrw_compress
|
put = 'let g:netrw_compress = '.g:netrw_compress
|
||||||
|
put = 'let g:netrw_cursorline = '.g:netrw_cursorline
|
||||||
let decompressline= line("$")
|
let decompressline= line("$")
|
||||||
put ='let g:netrw_decompress...'
|
put ='let g:netrw_decompress...'
|
||||||
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
|
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
|
||||||
@@ -138,6 +145,7 @@ fun! netrwSettings#NetrwSettings()
|
|||||||
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
|
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
|
||||||
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
|
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
|
||||||
put = 'let g:netrw_scpport = '.g:netrw_scpport
|
put = 'let g:netrw_scpport = '.g:netrw_scpport
|
||||||
|
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
|
||||||
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
||||||
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
|
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
|
||||||
let tmpfileescline= line("$")
|
let tmpfileescline= line("$")
|
||||||
|
|||||||
606
runtime/autoload/python3complete.vim
Normal file
606
runtime/autoload/python3complete.vim
Normal file
@@ -0,0 +1,606 @@
|
|||||||
|
"python3complete.vim - Omni Completion for python
|
||||||
|
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||||
|
" Version: 0.9
|
||||||
|
" Last Updated: 18 Jun 2009
|
||||||
|
"
|
||||||
|
" Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim
|
||||||
|
"
|
||||||
|
" Changes
|
||||||
|
" TODO:
|
||||||
|
" 'info' item output can use some formatting work
|
||||||
|
" Add an "unsafe eval" mode, to allow for return type evaluation
|
||||||
|
" Complete basic syntax along with import statements
|
||||||
|
" i.e. "import url<c-x,c-o>"
|
||||||
|
" Continue parsing on invalid line??
|
||||||
|
"
|
||||||
|
" v 0.9
|
||||||
|
" * Fixed docstring parsing for classes and functions
|
||||||
|
" * Fixed parsing of *args and **kwargs type arguments
|
||||||
|
" * Better function param parsing to handle things like tuples and
|
||||||
|
" lambda defaults args
|
||||||
|
"
|
||||||
|
" v 0.8
|
||||||
|
" * Fixed an issue where the FIRST assignment was always used instead of
|
||||||
|
" using a subsequent assignment for a variable
|
||||||
|
" * Fixed a scoping issue when working inside a parameterless function
|
||||||
|
"
|
||||||
|
"
|
||||||
|
" v 0.7
|
||||||
|
" * Fixed function list sorting (_ and __ at the bottom)
|
||||||
|
" * Removed newline removal from docs. It appears vim handles these better in
|
||||||
|
" recent patches
|
||||||
|
"
|
||||||
|
" v 0.6:
|
||||||
|
" * Fixed argument completion
|
||||||
|
" * Removed the 'kind' completions, as they are better indicated
|
||||||
|
" with real syntax
|
||||||
|
" * Added tuple assignment parsing (whoops, that was forgotten)
|
||||||
|
" * Fixed import handling when flattening scope
|
||||||
|
"
|
||||||
|
" v 0.5:
|
||||||
|
" Yeah, I skipped a version number - 0.4 was never public.
|
||||||
|
" It was a bugfix version on top of 0.3. This is a complete
|
||||||
|
" rewrite.
|
||||||
|
"
|
||||||
|
|
||||||
|
if !has('python3')
|
||||||
|
echo "Error: Required vim compiled with +python3"
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! python3complete#Complete(findstart, base)
|
||||||
|
"findstart = 1 when we need to get the text length
|
||||||
|
if a:findstart == 1
|
||||||
|
let line = getline('.')
|
||||||
|
let idx = col('.')
|
||||||
|
while idx > 0
|
||||||
|
let idx -= 1
|
||||||
|
let c = line[idx]
|
||||||
|
if c =~ '\w'
|
||||||
|
continue
|
||||||
|
elseif ! c =~ '\.'
|
||||||
|
let idx = -1
|
||||||
|
break
|
||||||
|
else
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
return idx
|
||||||
|
"findstart = 0 when we need to return the list of completions
|
||||||
|
else
|
||||||
|
"vim no longer moves the cursor upon completion... fix that
|
||||||
|
let line = getline('.')
|
||||||
|
let idx = col('.')
|
||||||
|
let cword = ''
|
||||||
|
while idx > 0
|
||||||
|
let idx -= 1
|
||||||
|
let c = line[idx]
|
||||||
|
if c =~ '\w' || c =~ '\.'
|
||||||
|
let cword = c . cword
|
||||||
|
continue
|
||||||
|
elseif strlen(cword) > 0 || idx == 0
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
endwhile
|
||||||
|
execute "py3 vimpy3complete('" . cword . "', '" . a:base . "')"
|
||||||
|
return g:python3complete_completions
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! s:DefPython()
|
||||||
|
py3 << PYTHONEOF
|
||||||
|
import sys, tokenize, io, types
|
||||||
|
from token import NAME, DEDENT, NEWLINE, STRING
|
||||||
|
|
||||||
|
debugstmts=[]
|
||||||
|
def dbg(s): debugstmts.append(s)
|
||||||
|
def showdbg():
|
||||||
|
for d in debugstmts: print("DBG: %s " % d)
|
||||||
|
|
||||||
|
def vimpy3complete(context,match):
|
||||||
|
global debugstmts
|
||||||
|
debugstmts = []
|
||||||
|
try:
|
||||||
|
import vim
|
||||||
|
cmpl = Completer()
|
||||||
|
cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')"))
|
||||||
|
all = cmpl.get_completions(context,match)
|
||||||
|
all.sort(key=lambda x:x['abbr'].replace('_','z'))
|
||||||
|
dictstr = '['
|
||||||
|
# have to do this for double quoting
|
||||||
|
for cmpl in all:
|
||||||
|
dictstr += '{'
|
||||||
|
for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x])
|
||||||
|
dictstr += '"icase":0},'
|
||||||
|
if dictstr[-1] == ',': dictstr = dictstr[:-1]
|
||||||
|
dictstr += ']'
|
||||||
|
#dbg("dict: %s" % dictstr)
|
||||||
|
vim.command("silent let g:python3complete_completions = %s" % dictstr)
|
||||||
|
#dbg("Completion dict:\n%s" % all)
|
||||||
|
except vim.error:
|
||||||
|
dbg("VIM Error: %s" % vim.error)
|
||||||
|
|
||||||
|
class Completer(object):
|
||||||
|
def __init__(self):
|
||||||
|
self.compldict = {}
|
||||||
|
self.parser = PyParser()
|
||||||
|
|
||||||
|
def evalsource(self,text,line=0):
|
||||||
|
sc = self.parser.parse(text,line)
|
||||||
|
src = sc.get_code()
|
||||||
|
dbg("source: %s" % src)
|
||||||
|
try: exec(src,self.compldict)
|
||||||
|
except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1]))
|
||||||
|
for l in sc.locals:
|
||||||
|
try: exec(l,self.compldict)
|
||||||
|
except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l))
|
||||||
|
|
||||||
|
def _cleanstr(self,doc):
|
||||||
|
return doc.replace('"',' ').replace("'",' ')
|
||||||
|
|
||||||
|
def get_arguments(self,func_obj):
|
||||||
|
def _ctor(class_ob):
|
||||||
|
try: return class_ob.__init__
|
||||||
|
except AttributeError:
|
||||||
|
for base in class_ob.__bases__:
|
||||||
|
rc = _ctor(base)
|
||||||
|
if rc is not None: return rc
|
||||||
|
return None
|
||||||
|
|
||||||
|
arg_offset = 1
|
||||||
|
if type(func_obj) == type: func_obj = _ctor(func_obj)
|
||||||
|
elif type(func_obj) == types.MethodType: arg_offset = 1
|
||||||
|
else: arg_offset = 0
|
||||||
|
|
||||||
|
arg_text=''
|
||||||
|
if type(func_obj) in [types.FunctionType, types.LambdaType,types.MethodType]:
|
||||||
|
try:
|
||||||
|
cd = func_obj.__code__
|
||||||
|
real_args = cd.co_varnames[arg_offset:cd.co_argcount]
|
||||||
|
defaults = func_obj.__defaults__ or []
|
||||||
|
defaults = ["=%s" % name for name in defaults]
|
||||||
|
defaults = [""] * (len(real_args)-len(defaults)) + defaults
|
||||||
|
items = [a+d for a,d in zip(real_args,defaults)]
|
||||||
|
if func_obj.__code__.co_flags & 0x4:
|
||||||
|
items.append("...")
|
||||||
|
if func_obj.__code__.co_flags & 0x8:
|
||||||
|
items.append("***")
|
||||||
|
arg_text = (','.join(items)) + ')'
|
||||||
|
except:
|
||||||
|
dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
|
||||||
|
pass
|
||||||
|
if len(arg_text) == 0:
|
||||||
|
# The doc string sometimes contains the function signature
|
||||||
|
# this works for alot of C modules that are part of the
|
||||||
|
# standard library
|
||||||
|
doc = func_obj.__doc__
|
||||||
|
if doc:
|
||||||
|
doc = doc.lstrip()
|
||||||
|
pos = doc.find('\n')
|
||||||
|
if pos > 0:
|
||||||
|
sigline = doc[:pos]
|
||||||
|
lidx = sigline.find('(')
|
||||||
|
ridx = sigline.find(')')
|
||||||
|
if lidx > 0 and ridx > 0:
|
||||||
|
arg_text = sigline[lidx+1:ridx] + ')'
|
||||||
|
if len(arg_text) == 0: arg_text = ')'
|
||||||
|
return arg_text
|
||||||
|
|
||||||
|
def get_completions(self,context,match):
|
||||||
|
#dbg("get_completions('%s','%s')" % (context,match))
|
||||||
|
stmt = ''
|
||||||
|
if context: stmt += str(context)
|
||||||
|
if match: stmt += str(match)
|
||||||
|
try:
|
||||||
|
result = None
|
||||||
|
all = {}
|
||||||
|
ridx = stmt.rfind('.')
|
||||||
|
if len(stmt) > 0 and stmt[-1] == '(':
|
||||||
|
result = eval(_sanitize(stmt[:-1]), self.compldict)
|
||||||
|
doc = result.__doc__
|
||||||
|
if doc is None: doc = ''
|
||||||
|
args = self.get_arguments(result)
|
||||||
|
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
|
||||||
|
elif ridx == -1:
|
||||||
|
match = stmt
|
||||||
|
all = self.compldict
|
||||||
|
else:
|
||||||
|
match = stmt[ridx+1:]
|
||||||
|
stmt = _sanitize(stmt[:ridx])
|
||||||
|
result = eval(stmt, self.compldict)
|
||||||
|
all = dir(result)
|
||||||
|
|
||||||
|
dbg("completing: stmt:%s" % stmt)
|
||||||
|
completions = []
|
||||||
|
|
||||||
|
try: maindoc = result.__doc__
|
||||||
|
except: maindoc = ' '
|
||||||
|
if maindoc is None: maindoc = ' '
|
||||||
|
for m in all:
|
||||||
|
if m == "_PyCmplNoType": continue #this is internal
|
||||||
|
try:
|
||||||
|
dbg('possible completion: %s' % m)
|
||||||
|
if m.find(match) == 0:
|
||||||
|
if result is None: inst = all[m]
|
||||||
|
else: inst = getattr(result,m)
|
||||||
|
try: doc = inst.__doc__
|
||||||
|
except: doc = maindoc
|
||||||
|
typestr = str(inst)
|
||||||
|
if doc is None or doc == '': doc = maindoc
|
||||||
|
|
||||||
|
wrd = m[len(match):]
|
||||||
|
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
|
||||||
|
if "function" in typestr:
|
||||||
|
c['word'] += '('
|
||||||
|
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
|
||||||
|
elif "method" in typestr:
|
||||||
|
c['word'] += '('
|
||||||
|
c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst))
|
||||||
|
elif "module" in typestr:
|
||||||
|
c['word'] += '.'
|
||||||
|
elif "type" in typestr:
|
||||||
|
c['word'] += '('
|
||||||
|
c['abbr'] += '('
|
||||||
|
completions.append(c)
|
||||||
|
except:
|
||||||
|
i = sys.exc_info()
|
||||||
|
dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
|
||||||
|
return completions
|
||||||
|
except:
|
||||||
|
i = sys.exc_info()
|
||||||
|
dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt))
|
||||||
|
return []
|
||||||
|
|
||||||
|
class Scope(object):
|
||||||
|
def __init__(self,name,indent,docstr=''):
|
||||||
|
self.subscopes = []
|
||||||
|
self.docstr = docstr
|
||||||
|
self.locals = []
|
||||||
|
self.parent = None
|
||||||
|
self.name = name
|
||||||
|
self.indent = indent
|
||||||
|
|
||||||
|
def add(self,sub):
|
||||||
|
#print('push scope: [%s@%s]' % (sub.name,sub.indent))
|
||||||
|
sub.parent = self
|
||||||
|
self.subscopes.append(sub)
|
||||||
|
return sub
|
||||||
|
|
||||||
|
def doc(self,str):
|
||||||
|
""" Clean up a docstring """
|
||||||
|
d = str.replace('\n',' ')
|
||||||
|
d = d.replace('\t',' ')
|
||||||
|
while d.find(' ') > -1: d = d.replace(' ',' ')
|
||||||
|
while d[0] in '"\'\t ': d = d[1:]
|
||||||
|
while d[-1] in '"\'\t ': d = d[:-1]
|
||||||
|
dbg("Scope(%s)::docstr = %s" % (self,d))
|
||||||
|
self.docstr = d
|
||||||
|
|
||||||
|
def local(self,loc):
|
||||||
|
self._checkexisting(loc)
|
||||||
|
self.locals.append(loc)
|
||||||
|
|
||||||
|
def copy_decl(self,indent=0):
|
||||||
|
""" Copy a scope's declaration only, at the specified indent level - not local variables """
|
||||||
|
return Scope(self.name,indent,self.docstr)
|
||||||
|
|
||||||
|
def _checkexisting(self,test):
|
||||||
|
"Convienance function... keep out duplicates"
|
||||||
|
if test.find('=') > -1:
|
||||||
|
var = test.split('=')[0].strip()
|
||||||
|
for l in self.locals:
|
||||||
|
if l.find('=') > -1 and var == l.split('=')[0].strip():
|
||||||
|
self.locals.remove(l)
|
||||||
|
|
||||||
|
def get_code(self):
|
||||||
|
str = ""
|
||||||
|
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
|
||||||
|
for l in self.locals:
|
||||||
|
if l.startswith('import'): str += l+'\n'
|
||||||
|
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
|
||||||
|
for sub in self.subscopes:
|
||||||
|
str += sub.get_code()
|
||||||
|
for l in self.locals:
|
||||||
|
if not l.startswith('import'): str += l+'\n'
|
||||||
|
|
||||||
|
return str
|
||||||
|
|
||||||
|
def pop(self,indent):
|
||||||
|
#print('pop scope: [%s] to [%s]' % (self.indent,indent))
|
||||||
|
outer = self
|
||||||
|
while outer.parent != None and outer.indent >= indent:
|
||||||
|
outer = outer.parent
|
||||||
|
return outer
|
||||||
|
|
||||||
|
def currentindent(self):
|
||||||
|
#print('parse current indent: %s' % self.indent)
|
||||||
|
return ' '*self.indent
|
||||||
|
|
||||||
|
def childindent(self):
|
||||||
|
#print('parse child indent: [%s]' % (self.indent+1))
|
||||||
|
return ' '*(self.indent+1)
|
||||||
|
|
||||||
|
class Class(Scope):
|
||||||
|
def __init__(self, name, supers, indent, docstr=''):
|
||||||
|
Scope.__init__(self,name,indent, docstr)
|
||||||
|
self.supers = supers
|
||||||
|
def copy_decl(self,indent=0):
|
||||||
|
c = Class(self.name,self.supers,indent, self.docstr)
|
||||||
|
for s in self.subscopes:
|
||||||
|
c.add(s.copy_decl(indent+1))
|
||||||
|
return c
|
||||||
|
def get_code(self):
|
||||||
|
str = '%sclass %s' % (self.currentindent(),self.name)
|
||||||
|
if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers)
|
||||||
|
str += ':\n'
|
||||||
|
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
|
||||||
|
if len(self.subscopes) > 0:
|
||||||
|
for s in self.subscopes: str += s.get_code()
|
||||||
|
else:
|
||||||
|
str += '%spass\n' % self.childindent()
|
||||||
|
return str
|
||||||
|
|
||||||
|
|
||||||
|
class Function(Scope):
|
||||||
|
def __init__(self, name, params, indent, docstr=''):
|
||||||
|
Scope.__init__(self,name,indent, docstr)
|
||||||
|
self.params = params
|
||||||
|
def copy_decl(self,indent=0):
|
||||||
|
return Function(self.name,self.params,indent, self.docstr)
|
||||||
|
def get_code(self):
|
||||||
|
str = "%sdef %s(%s):\n" % \
|
||||||
|
(self.currentindent(),self.name,','.join(self.params))
|
||||||
|
if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n'
|
||||||
|
str += "%spass\n" % self.childindent()
|
||||||
|
return str
|
||||||
|
|
||||||
|
class PyParser:
|
||||||
|
def __init__(self):
|
||||||
|
self.top = Scope('global',0)
|
||||||
|
self.scope = self.top
|
||||||
|
|
||||||
|
def _parsedotname(self,pre=None):
|
||||||
|
#returns (dottedname, nexttoken)
|
||||||
|
name = []
|
||||||
|
if pre is None:
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if tokentype != NAME and token != '*':
|
||||||
|
return ('', token)
|
||||||
|
else: token = pre
|
||||||
|
name.append(token)
|
||||||
|
while True:
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if token != '.': break
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if tokentype != NAME: break
|
||||||
|
name.append(token)
|
||||||
|
return (".".join(name), token)
|
||||||
|
|
||||||
|
def _parseimportlist(self):
|
||||||
|
imports = []
|
||||||
|
while True:
|
||||||
|
name, token = self._parsedotname()
|
||||||
|
if not name: break
|
||||||
|
name2 = ''
|
||||||
|
if token == 'as': name2, token = self._parsedotname()
|
||||||
|
imports.append((name, name2))
|
||||||
|
while token != "," and "\n" not in token:
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if token != ",": break
|
||||||
|
return imports
|
||||||
|
|
||||||
|
def _parenparse(self):
|
||||||
|
name = ''
|
||||||
|
names = []
|
||||||
|
level = 1
|
||||||
|
while True:
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if token in (')', ',') and level == 1:
|
||||||
|
if '=' not in name: name = name.replace(' ', '')
|
||||||
|
names.append(name.strip())
|
||||||
|
name = ''
|
||||||
|
if token == '(':
|
||||||
|
level += 1
|
||||||
|
name += "("
|
||||||
|
elif token == ')':
|
||||||
|
level -= 1
|
||||||
|
if level == 0: break
|
||||||
|
else: name += ")"
|
||||||
|
elif token == ',' and level == 1:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
name += "%s " % str(token)
|
||||||
|
return names
|
||||||
|
|
||||||
|
def _parsefunction(self,indent):
|
||||||
|
self.scope=self.scope.pop(indent)
|
||||||
|
tokentype, fname, ind = self.donext()
|
||||||
|
if tokentype != NAME: return None
|
||||||
|
|
||||||
|
tokentype, open, ind = self.donext()
|
||||||
|
if open != '(': return None
|
||||||
|
params=self._parenparse()
|
||||||
|
|
||||||
|
tokentype, colon, ind = self.donext()
|
||||||
|
if colon != ':': return None
|
||||||
|
|
||||||
|
return Function(fname,params,indent)
|
||||||
|
|
||||||
|
def _parseclass(self,indent):
|
||||||
|
self.scope=self.scope.pop(indent)
|
||||||
|
tokentype, cname, ind = self.donext()
|
||||||
|
if tokentype != NAME: return None
|
||||||
|
|
||||||
|
super = []
|
||||||
|
tokentype, thenext, ind = self.donext()
|
||||||
|
if thenext == '(':
|
||||||
|
super=self._parenparse()
|
||||||
|
elif thenext != ':': return None
|
||||||
|
|
||||||
|
return Class(cname,super,indent)
|
||||||
|
|
||||||
|
def _parseassignment(self):
|
||||||
|
assign=''
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if tokentype == tokenize.STRING or token == 'str':
|
||||||
|
return '""'
|
||||||
|
elif token == '(' or token == 'tuple':
|
||||||
|
return '()'
|
||||||
|
elif token == '[' or token == 'list':
|
||||||
|
return '[]'
|
||||||
|
elif token == '{' or token == 'dict':
|
||||||
|
return '{}'
|
||||||
|
elif tokentype == tokenize.NUMBER:
|
||||||
|
return '0'
|
||||||
|
elif token == 'open' or token == 'file':
|
||||||
|
return 'file'
|
||||||
|
elif token == 'None':
|
||||||
|
return '_PyCmplNoType()'
|
||||||
|
elif token == 'type':
|
||||||
|
return 'type(_PyCmplNoType)' #only for method resolution
|
||||||
|
else:
|
||||||
|
assign += token
|
||||||
|
level = 0
|
||||||
|
while True:
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
if token in ('(','{','['):
|
||||||
|
level += 1
|
||||||
|
elif token in (']','}',')'):
|
||||||
|
level -= 1
|
||||||
|
if level == 0: break
|
||||||
|
elif level == 0:
|
||||||
|
if token in (';','\n'): break
|
||||||
|
assign += token
|
||||||
|
return "%s" % assign
|
||||||
|
|
||||||
|
def donext(self):
|
||||||
|
type, token, (lineno, indent), end, self.parserline = next(self.gen)
|
||||||
|
if lineno == self.curline:
|
||||||
|
#print('line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name))
|
||||||
|
self.currentscope = self.scope
|
||||||
|
return (type, token, indent)
|
||||||
|
|
||||||
|
def _adjustvisibility(self):
|
||||||
|
newscope = Scope('result',0)
|
||||||
|
scp = self.currentscope
|
||||||
|
while scp != None:
|
||||||
|
if type(scp) == Function:
|
||||||
|
slice = 0
|
||||||
|
#Handle 'self' params
|
||||||
|
if scp.parent != None and type(scp.parent) == Class:
|
||||||
|
slice = 1
|
||||||
|
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
|
||||||
|
for p in scp.params[slice:]:
|
||||||
|
i = p.find('=')
|
||||||
|
if len(p) == 0: continue
|
||||||
|
pvar = ''
|
||||||
|
ptype = ''
|
||||||
|
if i == -1:
|
||||||
|
pvar = p
|
||||||
|
ptype = '_PyCmplNoType()'
|
||||||
|
else:
|
||||||
|
pvar = p[:i]
|
||||||
|
ptype = _sanitize(p[i+1:])
|
||||||
|
if pvar.startswith('**'):
|
||||||
|
pvar = pvar[2:]
|
||||||
|
ptype = '{}'
|
||||||
|
elif pvar.startswith('*'):
|
||||||
|
pvar = pvar[1:]
|
||||||
|
ptype = '[]'
|
||||||
|
|
||||||
|
newscope.local('%s = %s' % (pvar,ptype))
|
||||||
|
|
||||||
|
for s in scp.subscopes:
|
||||||
|
ns = s.copy_decl(0)
|
||||||
|
newscope.add(ns)
|
||||||
|
for l in scp.locals: newscope.local(l)
|
||||||
|
scp = scp.parent
|
||||||
|
|
||||||
|
self.currentscope = newscope
|
||||||
|
return self.currentscope
|
||||||
|
|
||||||
|
#p.parse(vim.current.buffer[:],vim.eval("line('.')"))
|
||||||
|
def parse(self,text,curline=0):
|
||||||
|
self.curline = int(curline)
|
||||||
|
buf = io.StringIO(''.join(text) + '\n')
|
||||||
|
self.gen = tokenize.generate_tokens(buf.readline)
|
||||||
|
self.currentscope = self.scope
|
||||||
|
|
||||||
|
try:
|
||||||
|
freshscope=True
|
||||||
|
while True:
|
||||||
|
tokentype, token, indent = self.donext()
|
||||||
|
#dbg( 'main: token=[%s] indent=[%s]' % (token,indent))
|
||||||
|
|
||||||
|
if tokentype == DEDENT or token == "pass":
|
||||||
|
self.scope = self.scope.pop(indent)
|
||||||
|
elif token == 'def':
|
||||||
|
func = self._parsefunction(indent)
|
||||||
|
if func is None:
|
||||||
|
print("function: syntax error...")
|
||||||
|
continue
|
||||||
|
dbg("new scope: function")
|
||||||
|
freshscope = True
|
||||||
|
self.scope = self.scope.add(func)
|
||||||
|
elif token == 'class':
|
||||||
|
cls = self._parseclass(indent)
|
||||||
|
if cls is None:
|
||||||
|
print("class: syntax error...")
|
||||||
|
continue
|
||||||
|
freshscope = True
|
||||||
|
dbg("new scope: class")
|
||||||
|
self.scope = self.scope.add(cls)
|
||||||
|
|
||||||
|
elif token == 'import':
|
||||||
|
imports = self._parseimportlist()
|
||||||
|
for mod, alias in imports:
|
||||||
|
loc = "import %s" % mod
|
||||||
|
if len(alias) > 0: loc += " as %s" % alias
|
||||||
|
self.scope.local(loc)
|
||||||
|
freshscope = False
|
||||||
|
elif token == 'from':
|
||||||
|
mod, token = self._parsedotname()
|
||||||
|
if not mod or token != "import":
|
||||||
|
print("from: syntax error...")
|
||||||
|
continue
|
||||||
|
names = self._parseimportlist()
|
||||||
|
for name, alias in names:
|
||||||
|
loc = "from %s import %s" % (mod,name)
|
||||||
|
if len(alias) > 0: loc += " as %s" % alias
|
||||||
|
self.scope.local(loc)
|
||||||
|
freshscope = False
|
||||||
|
elif tokentype == STRING:
|
||||||
|
if freshscope: self.scope.doc(token)
|
||||||
|
elif tokentype == NAME:
|
||||||
|
name,token = self._parsedotname(token)
|
||||||
|
if token == '=':
|
||||||
|
stmt = self._parseassignment()
|
||||||
|
dbg("parseassignment: %s = %s" % (name, stmt))
|
||||||
|
if stmt != None:
|
||||||
|
self.scope.local("%s = %s" % (name,stmt))
|
||||||
|
freshscope = False
|
||||||
|
except StopIteration: #thrown on EOF
|
||||||
|
pass
|
||||||
|
except:
|
||||||
|
dbg("parse error: %s, %s @ %s" %
|
||||||
|
(sys.exc_info()[0], sys.exc_info()[1], self.parserline))
|
||||||
|
return self._adjustvisibility()
|
||||||
|
|
||||||
|
def _sanitize(str):
|
||||||
|
val = ''
|
||||||
|
level = 0
|
||||||
|
for c in str:
|
||||||
|
if c in ('(','{','['):
|
||||||
|
level += 1
|
||||||
|
elif c in (']','}',')'):
|
||||||
|
level -= 1
|
||||||
|
elif level == 0:
|
||||||
|
val += c
|
||||||
|
return val
|
||||||
|
|
||||||
|
sys.path.extend(['.','..'])
|
||||||
|
PYTHONEOF
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
call s:DefPython()
|
||||||
@@ -1,17 +1,28 @@
|
|||||||
"pythoncomplete.vim - Omni Completion for python
|
"pythoncomplete.vim - Omni Completion for python
|
||||||
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||||
" Version: 0.7
|
" Version: 0.9
|
||||||
" Last Updated: 19 Oct 2006
|
" Last Updated: 18 Jun 2009
|
||||||
"
|
"
|
||||||
" Changes
|
" Changes
|
||||||
" TODO:
|
" TODO:
|
||||||
" User defined docstrings aren't handled right...
|
|
||||||
" 'info' item output can use some formatting work
|
" 'info' item output can use some formatting work
|
||||||
" Add an "unsafe eval" mode, to allow for return type evaluation
|
" Add an "unsafe eval" mode, to allow for return type evaluation
|
||||||
" Complete basic syntax along with import statements
|
" Complete basic syntax along with import statements
|
||||||
" i.e. "import url<c-x,c-o>"
|
" i.e. "import url<c-x,c-o>"
|
||||||
" Continue parsing on invalid line??
|
" Continue parsing on invalid line??
|
||||||
"
|
"
|
||||||
|
" v 0.9
|
||||||
|
" * Fixed docstring parsing for classes and functions
|
||||||
|
" * Fixed parsing of *args and **kwargs type arguments
|
||||||
|
" * Better function param parsing to handle things like tuples and
|
||||||
|
" lambda defaults args
|
||||||
|
"
|
||||||
|
" v 0.8
|
||||||
|
" * Fixed an issue where the FIRST assignment was always used instead of
|
||||||
|
" using a subsequent assignment for a variable
|
||||||
|
" * Fixed a scoping issue when working inside a parameterless function
|
||||||
|
"
|
||||||
|
"
|
||||||
" v 0.7
|
" v 0.7
|
||||||
" * Fixed function list sorting (_ and __ at the bottom)
|
" * Fixed function list sorting (_ and __ at the bottom)
|
||||||
" * Removed newline removal from docs. It appears vim handles these better in
|
" * Removed newline removal from docs. It appears vim handles these better in
|
||||||
@@ -63,7 +74,7 @@ function! pythoncomplete#Complete(findstart, base)
|
|||||||
while idx > 0
|
while idx > 0
|
||||||
let idx -= 1
|
let idx -= 1
|
||||||
let c = line[idx]
|
let c = line[idx]
|
||||||
if c =~ '\w' || c =~ '\.' || c == '('
|
if c =~ '\w' || c =~ '\.'
|
||||||
let cword = c . cword
|
let cword = c . cword
|
||||||
continue
|
continue
|
||||||
elseif strlen(cword) > 0 || idx == 0
|
elseif strlen(cword) > 0 || idx == 0
|
||||||
@@ -206,7 +217,7 @@ class Completer(object):
|
|||||||
if len(stmt) > 0 and stmt[-1] == '(':
|
if len(stmt) > 0 and stmt[-1] == '(':
|
||||||
result = eval(_sanitize(stmt[:-1]), self.compldict)
|
result = eval(_sanitize(stmt[:-1]), self.compldict)
|
||||||
doc = result.__doc__
|
doc = result.__doc__
|
||||||
if doc == None: doc = ''
|
if doc is None: doc = ''
|
||||||
args = self.get_arguments(result)
|
args = self.get_arguments(result)
|
||||||
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
|
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
|
||||||
elif ridx == -1:
|
elif ridx == -1:
|
||||||
@@ -223,18 +234,18 @@ class Completer(object):
|
|||||||
|
|
||||||
try: maindoc = result.__doc__
|
try: maindoc = result.__doc__
|
||||||
except: maindoc = ' '
|
except: maindoc = ' '
|
||||||
if maindoc == None: maindoc = ' '
|
if maindoc is None: maindoc = ' '
|
||||||
for m in all:
|
for m in all:
|
||||||
if m == "_PyCmplNoType": continue #this is internal
|
if m == "_PyCmplNoType": continue #this is internal
|
||||||
try:
|
try:
|
||||||
dbg('possible completion: %s' % m)
|
dbg('possible completion: %s' % m)
|
||||||
if m.find(match) == 0:
|
if m.find(match) == 0:
|
||||||
if result == None: inst = all[m]
|
if result is None: inst = all[m]
|
||||||
else: inst = getattr(result,m)
|
else: inst = getattr(result,m)
|
||||||
try: doc = inst.__doc__
|
try: doc = inst.__doc__
|
||||||
except: doc = maindoc
|
except: doc = maindoc
|
||||||
typestr = str(inst)
|
typestr = str(inst)
|
||||||
if doc == None or doc == '': doc = maindoc
|
if doc is None or doc == '': doc = maindoc
|
||||||
|
|
||||||
wrd = m[len(match):]
|
wrd = m[len(match):]
|
||||||
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
|
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
|
||||||
@@ -260,9 +271,9 @@ class Completer(object):
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
class Scope(object):
|
class Scope(object):
|
||||||
def __init__(self,name,indent):
|
def __init__(self,name,indent,docstr=''):
|
||||||
self.subscopes = []
|
self.subscopes = []
|
||||||
self.docstr = ''
|
self.docstr = docstr
|
||||||
self.locals = []
|
self.locals = []
|
||||||
self.parent = None
|
self.parent = None
|
||||||
self.name = name
|
self.name = name
|
||||||
@@ -281,29 +292,28 @@ class Scope(object):
|
|||||||
while d.find(' ') > -1: d = d.replace(' ',' ')
|
while d.find(' ') > -1: d = d.replace(' ',' ')
|
||||||
while d[0] in '"\'\t ': d = d[1:]
|
while d[0] in '"\'\t ': d = d[1:]
|
||||||
while d[-1] in '"\'\t ': d = d[:-1]
|
while d[-1] in '"\'\t ': d = d[:-1]
|
||||||
|
dbg("Scope(%s)::docstr = %s" % (self,d))
|
||||||
self.docstr = d
|
self.docstr = d
|
||||||
|
|
||||||
def local(self,loc):
|
def local(self,loc):
|
||||||
if not self._hasvaralready(loc):
|
self._checkexisting(loc)
|
||||||
self.locals.append(loc)
|
self.locals.append(loc)
|
||||||
|
|
||||||
def copy_decl(self,indent=0):
|
def copy_decl(self,indent=0):
|
||||||
""" Copy a scope's declaration only, at the specified indent level - not local variables """
|
""" Copy a scope's declaration only, at the specified indent level - not local variables """
|
||||||
return Scope(self.name,indent)
|
return Scope(self.name,indent,self.docstr)
|
||||||
|
|
||||||
def _hasvaralready(self,test):
|
def _checkexisting(self,test):
|
||||||
"Convienance function... keep out duplicates"
|
"Convienance function... keep out duplicates"
|
||||||
if test.find('=') > -1:
|
if test.find('=') > -1:
|
||||||
var = test.split('=')[0].strip()
|
var = test.split('=')[0].strip()
|
||||||
for l in self.locals:
|
for l in self.locals:
|
||||||
if l.find('=') > -1 and var == l.split('=')[0].strip():
|
if l.find('=') > -1 and var == l.split('=')[0].strip():
|
||||||
return True
|
self.locals.remove(l)
|
||||||
return False
|
|
||||||
|
|
||||||
def get_code(self):
|
def get_code(self):
|
||||||
# we need to start with this, to fix up broken completions
|
str = ""
|
||||||
# hopefully this name is unique enough...
|
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
|
||||||
str = '"""'+self.docstr+'"""\n'
|
|
||||||
for l in self.locals:
|
for l in self.locals:
|
||||||
if l.startswith('import'): str += l+'\n'
|
if l.startswith('import'): str += l+'\n'
|
||||||
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
|
str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n'
|
||||||
@@ -330,11 +340,11 @@ class Scope(object):
|
|||||||
return ' '*(self.indent+1)
|
return ' '*(self.indent+1)
|
||||||
|
|
||||||
class Class(Scope):
|
class Class(Scope):
|
||||||
def __init__(self, name, supers, indent):
|
def __init__(self, name, supers, indent, docstr=''):
|
||||||
Scope.__init__(self,name,indent)
|
Scope.__init__(self,name,indent, docstr)
|
||||||
self.supers = supers
|
self.supers = supers
|
||||||
def copy_decl(self,indent=0):
|
def copy_decl(self,indent=0):
|
||||||
c = Class(self.name,self.supers,indent)
|
c = Class(self.name,self.supers,indent, self.docstr)
|
||||||
for s in self.subscopes:
|
for s in self.subscopes:
|
||||||
c.add(s.copy_decl(indent+1))
|
c.add(s.copy_decl(indent+1))
|
||||||
return c
|
return c
|
||||||
@@ -351,11 +361,11 @@ class Class(Scope):
|
|||||||
|
|
||||||
|
|
||||||
class Function(Scope):
|
class Function(Scope):
|
||||||
def __init__(self, name, params, indent):
|
def __init__(self, name, params, indent, docstr=''):
|
||||||
Scope.__init__(self,name,indent)
|
Scope.__init__(self,name,indent, docstr)
|
||||||
self.params = params
|
self.params = params
|
||||||
def copy_decl(self,indent=0):
|
def copy_decl(self,indent=0):
|
||||||
return Function(self.name,self.params,indent)
|
return Function(self.name,self.params,indent, self.docstr)
|
||||||
def get_code(self):
|
def get_code(self):
|
||||||
str = "%sdef %s(%s):\n" % \
|
str = "%sdef %s(%s):\n" % \
|
||||||
(self.currentindent(),self.name,','.join(self.params))
|
(self.currentindent(),self.name,','.join(self.params))
|
||||||
@@ -371,7 +381,7 @@ class PyParser:
|
|||||||
def _parsedotname(self,pre=None):
|
def _parsedotname(self,pre=None):
|
||||||
#returns (dottedname, nexttoken)
|
#returns (dottedname, nexttoken)
|
||||||
name = []
|
name = []
|
||||||
if pre == None:
|
if pre is None:
|
||||||
tokentype, token, indent = self.next()
|
tokentype, token, indent = self.next()
|
||||||
if tokentype != NAME and token != '*':
|
if tokentype != NAME and token != '*':
|
||||||
return ('', token)
|
return ('', token)
|
||||||
@@ -405,17 +415,20 @@ class PyParser:
|
|||||||
while True:
|
while True:
|
||||||
tokentype, token, indent = self.next()
|
tokentype, token, indent = self.next()
|
||||||
if token in (')', ',') and level == 1:
|
if token in (')', ',') and level == 1:
|
||||||
names.append(name)
|
if '=' not in name: name = name.replace(' ', '')
|
||||||
|
names.append(name.strip())
|
||||||
name = ''
|
name = ''
|
||||||
if token == '(':
|
if token == '(':
|
||||||
level += 1
|
level += 1
|
||||||
|
name += "("
|
||||||
elif token == ')':
|
elif token == ')':
|
||||||
level -= 1
|
level -= 1
|
||||||
if level == 0: break
|
if level == 0: break
|
||||||
|
else: name += ")"
|
||||||
elif token == ',' and level == 1:
|
elif token == ',' and level == 1:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
name += str(token)
|
name += "%s " % str(token)
|
||||||
return names
|
return names
|
||||||
|
|
||||||
def _parsefunction(self,indent):
|
def _parsefunction(self,indent):
|
||||||
@@ -495,16 +508,26 @@ class PyParser:
|
|||||||
#Handle 'self' params
|
#Handle 'self' params
|
||||||
if scp.parent != None and type(scp.parent) == Class:
|
if scp.parent != None and type(scp.parent) == Class:
|
||||||
slice = 1
|
slice = 1
|
||||||
p = scp.params[0]
|
|
||||||
i = p.find('=')
|
|
||||||
if i != -1: p = p[:i]
|
|
||||||
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
|
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
|
||||||
for p in scp.params[slice:]:
|
for p in scp.params[slice:]:
|
||||||
i = p.find('=')
|
i = p.find('=')
|
||||||
|
if len(p) == 0: continue
|
||||||
|
pvar = ''
|
||||||
|
ptype = ''
|
||||||
if i == -1:
|
if i == -1:
|
||||||
newscope.local('%s = _PyCmplNoType()' % p)
|
pvar = p
|
||||||
|
ptype = '_PyCmplNoType()'
|
||||||
else:
|
else:
|
||||||
newscope.local('%s = %s' % (p[:i],_sanitize(p[i+1])))
|
pvar = p[:i]
|
||||||
|
ptype = _sanitize(p[i+1:])
|
||||||
|
if pvar.startswith('**'):
|
||||||
|
pvar = pvar[2:]
|
||||||
|
ptype = '{}'
|
||||||
|
elif pvar.startswith('*'):
|
||||||
|
pvar = pvar[1:]
|
||||||
|
ptype = '[]'
|
||||||
|
|
||||||
|
newscope.local('%s = %s' % (pvar,ptype))
|
||||||
|
|
||||||
for s in scp.subscopes:
|
for s in scp.subscopes:
|
||||||
ns = s.copy_decl(0)
|
ns = s.copy_decl(0)
|
||||||
@@ -532,17 +555,19 @@ class PyParser:
|
|||||||
self.scope = self.scope.pop(indent)
|
self.scope = self.scope.pop(indent)
|
||||||
elif token == 'def':
|
elif token == 'def':
|
||||||
func = self._parsefunction(indent)
|
func = self._parsefunction(indent)
|
||||||
if func == None:
|
if func is None:
|
||||||
print "function: syntax error..."
|
print "function: syntax error..."
|
||||||
continue
|
continue
|
||||||
|
dbg("new scope: function")
|
||||||
freshscope = True
|
freshscope = True
|
||||||
self.scope = self.scope.add(func)
|
self.scope = self.scope.add(func)
|
||||||
elif token == 'class':
|
elif token == 'class':
|
||||||
cls = self._parseclass(indent)
|
cls = self._parseclass(indent)
|
||||||
if cls == None:
|
if cls is None:
|
||||||
print "class: syntax error..."
|
print "class: syntax error..."
|
||||||
continue
|
continue
|
||||||
freshscope = True
|
freshscope = True
|
||||||
|
dbg("new scope: class")
|
||||||
self.scope = self.scope.add(cls)
|
self.scope = self.scope.add(cls)
|
||||||
|
|
||||||
elif token == 'import':
|
elif token == 'import':
|
||||||
@@ -569,6 +594,7 @@ class PyParser:
|
|||||||
name,token = self._parsedotname(token)
|
name,token = self._parsedotname(token)
|
||||||
if token == '=':
|
if token == '=':
|
||||||
stmt = self._parseassignment()
|
stmt = self._parseassignment()
|
||||||
|
dbg("parseassignment: %s = %s" % (name, stmt))
|
||||||
if stmt != None:
|
if stmt != None:
|
||||||
self.scope.local("%s = %s" % (name,stmt))
|
self.scope.local("%s = %s" % (name,stmt))
|
||||||
freshscope = False
|
freshscope = False
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: Ruby
|
" Language: Ruby
|
||||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||||
" Info: $Id$
|
" Last Change: 2009 Sep 28
|
||||||
" URL: http://vim-ruby.rubyforge.org
|
" URL: http://vim-ruby.rubyforge.org
|
||||||
" Anon CVS: See above site
|
" Anon CVS: See above site
|
||||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||||
" Maintainer Version: 0.8
|
" Maintainer Version: 0.8.1
|
||||||
" ----------------------------------------------------------------------------
|
" ----------------------------------------------------------------------------
|
||||||
"
|
"
|
||||||
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
|
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
|
||||||
@@ -325,7 +325,7 @@ class VimRubyCompletion
|
|||||||
ln = buf[x]
|
ln = buf[x]
|
||||||
if /^\s*(module|class|def|include)\s+/.match(ln)
|
if /^\s*(module|class|def|include)\s+/.match(ln)
|
||||||
clscnt += 1 if $1 == "class"
|
clscnt += 1 if $1 == "class"
|
||||||
#dprint "\$1: %s" % $1
|
#dprint "\$1$1
|
||||||
classdef += "%s\n" % ln
|
classdef += "%s\n" % ln
|
||||||
classdef += "end\n" if /def\s+/.match(ln)
|
classdef += "end\n" if /def\s+/.match(ln)
|
||||||
dprint ln
|
dprint ln
|
||||||
@@ -632,7 +632,7 @@ class VimRubyCompletion
|
|||||||
methods = Object.constants
|
methods = Object.constants
|
||||||
methods.grep(/^#{receiver}/).collect{|e| "::" + e}
|
methods.grep(/^#{receiver}/).collect{|e| "::" + e}
|
||||||
|
|
||||||
when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ # Constant or class methods
|
when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
|
||||||
receiver = $1
|
receiver = $1
|
||||||
message = Regexp.quote($4)
|
message = Regexp.quote($4)
|
||||||
dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ]
|
dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ]
|
||||||
@@ -666,7 +666,7 @@ class VimRubyCompletion
|
|||||||
dprint "global"
|
dprint "global"
|
||||||
methods = global_variables.grep(Regexp.new(Regexp.quote($1)))
|
methods = global_variables.grep(Regexp.new(Regexp.quote($1)))
|
||||||
|
|
||||||
when /^((\.?[^.]+)+)\.([^.]*)$/ # variable
|
when /^((\.?[^.]+)+?)\.([^.]*)$/ # variable
|
||||||
dprint "variable"
|
dprint "variable"
|
||||||
receiver = $1
|
receiver = $1
|
||||||
message = Regexp.quote($3)
|
message = Regexp.quote($3)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim script to download a missing spell file
|
" Vim script to download a missing spell file
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2008 Jun 27
|
" Last Change: 2008 Nov 29
|
||||||
|
|
||||||
if !exists('g:spellfile_URL')
|
if !exists('g:spellfile_URL')
|
||||||
" Prefer using http:// when netrw should be able to use it, since
|
" Prefer using http:// when netrw should be able to use it, since
|
||||||
@@ -39,20 +39,23 @@ function! spellfile#LoadFile(lang)
|
|||||||
let s:donedict[a:lang . &enc] = 1
|
let s:donedict[a:lang . &enc] = 1
|
||||||
|
|
||||||
" Find spell directories we can write in.
|
" Find spell directories we can write in.
|
||||||
let dirlist = []
|
let [dirlist, dirchoices] = spellfile#GetDirChoices()
|
||||||
let dirchoices = '&Cancel'
|
|
||||||
for dir in split(globpath(&rtp, 'spell'), "\n")
|
|
||||||
if filewritable(dir) == 2
|
|
||||||
call add(dirlist, dir)
|
|
||||||
let dirchoices .= "\n&" . len(dirlist)
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
if len(dirlist) == 0
|
if len(dirlist) == 0
|
||||||
if &verbose
|
let dir_to_create = spellfile#WritableSpellDir()
|
||||||
|
if &verbose || dir_to_create != ''
|
||||||
echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
|
echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
|
||||||
endif
|
endif
|
||||||
|
if dir_to_create != ''
|
||||||
|
if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
|
||||||
|
" After creating the directory it should show up in the list.
|
||||||
|
call mkdir(dir_to_create, "p")
|
||||||
|
let [dirlist, dirchoices] = spellfile#GetDirChoices()
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if len(dirlist) == 0
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
|
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
|
||||||
let msg .= "\nDo you want me to try downloading it?"
|
let msg .= "\nDo you want me to try downloading it?"
|
||||||
@@ -177,3 +180,29 @@ function! spellfile#Nread(fname)
|
|||||||
unlet g:netrw_use_errorwindow
|
unlet g:netrw_use_errorwindow
|
||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Get a list of writable spell directories and choices for confirm().
|
||||||
|
function! spellfile#GetDirChoices()
|
||||||
|
let dirlist = []
|
||||||
|
let dirchoices = '&Cancel'
|
||||||
|
for dir in split(globpath(&rtp, 'spell'), "\n")
|
||||||
|
if filewritable(dir) == 2
|
||||||
|
call add(dirlist, dir)
|
||||||
|
let dirchoices .= "\n&" . len(dirlist)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return [dirlist, dirchoices]
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
function! spellfile#WritableSpellDir()
|
||||||
|
if has("unix")
|
||||||
|
" For Unix always use the $HOME/.vim directory
|
||||||
|
return $HOME . "/.vim/spell"
|
||||||
|
endif
|
||||||
|
for dir in split(&rtp, ',')
|
||||||
|
if filewritable(dir) == 2
|
||||||
|
return dir . "/spell"
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return ''
|
||||||
|
endfunction
|
||||||
|
|||||||
@@ -1,13 +1,47 @@
|
|||||||
" Vim OMNI completion script for SQL
|
" Vim OMNI completion script for SQL
|
||||||
" Language: SQL
|
" Language: SQL
|
||||||
" Maintainer: David Fishburn <fishburn@ianywhere.com>
|
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||||
" Version: 6.0
|
" Version: 10.0
|
||||||
" Last Change: Thu 03 Apr 2008 10:37:54 PM Eastern Daylight Time
|
" Last Change: 2010 Jun 11
|
||||||
" Usage: For detailed help
|
" Usage: For detailed help
|
||||||
" ":help sql.txt"
|
" ":help sql.txt"
|
||||||
" or ":help ft-sql-omni"
|
" or ":help ft-sql-omni"
|
||||||
" or read $VIMRUNTIME/doc/sql.txt
|
" or read $VIMRUNTIME/doc/sql.txt
|
||||||
|
|
||||||
|
" History
|
||||||
|
" Version 10.0
|
||||||
|
" Updated PreCacheSyntax()
|
||||||
|
" - Now returns a List of the syntax items it finds.
|
||||||
|
" This allows other plugins / scripts to use this list for their own
|
||||||
|
" purposes. In this case XPTemplate can use them for a Choose list.
|
||||||
|
" - Verifies the parameters are the correct type and displays a
|
||||||
|
" warning if not.
|
||||||
|
" - Verifies the parameters are the correct type and displays a
|
||||||
|
" warning if not.
|
||||||
|
" Updated SQLCWarningMsg()
|
||||||
|
" - Prepends warning message with SQLComplete so you know who issued
|
||||||
|
" the warning.
|
||||||
|
" Updated SQLCErrorMsg()
|
||||||
|
" - Prepends error message with SQLComplete so you know who issued
|
||||||
|
" the error.
|
||||||
|
"
|
||||||
|
" Version 9.0
|
||||||
|
" This change removes some of the support for tables with spaces in their
|
||||||
|
" names in order to simplify the regexes used to pull out query table
|
||||||
|
" aliases for more robust table name and column name code completion.
|
||||||
|
" Full support for "table names with spaces" can be added in again
|
||||||
|
" after 7.3.
|
||||||
|
"
|
||||||
|
" Version 8.0
|
||||||
|
" Incorrectly re-executed the g:ftplugin_sql_omni_key_right and g:ftplugin_sql_omni_key_left
|
||||||
|
" when drilling in and out of a column list for a table.
|
||||||
|
"
|
||||||
|
" Version 7.0
|
||||||
|
" Better handling of object names
|
||||||
|
"
|
||||||
|
" Version 6.0
|
||||||
|
" Supports object names with spaces "my table name"
|
||||||
|
"
|
||||||
" Set completion with CTRL-X CTRL-O to autoloaded function.
|
" Set completion with CTRL-X CTRL-O to autoloaded function.
|
||||||
" This check is in place in case this script is
|
" This check is in place in case this script is
|
||||||
" sourced directly instead of using the autoload feature.
|
" sourced directly instead of using the autoload feature.
|
||||||
@@ -22,7 +56,7 @@ endif
|
|||||||
if exists('g:loaded_sql_completion')
|
if exists('g:loaded_sql_completion')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_sql_completion = 50
|
let g:loaded_sql_completion = 100
|
||||||
|
|
||||||
" Maintains filename of dictionary
|
" Maintains filename of dictionary
|
||||||
let s:sql_file_table = ""
|
let s:sql_file_table = ""
|
||||||
@@ -106,10 +140,23 @@ function! sqlcomplete#Complete(findstart, base)
|
|||||||
let begindot = 1
|
let begindot = 1
|
||||||
endif
|
endif
|
||||||
while start > 0
|
while start > 0
|
||||||
if line[start - 1] =~ '\(\w\|\s\+\)'
|
" Additional code was required to handle objects which
|
||||||
|
" can contain spaces like "my table name".
|
||||||
|
if line[start - 1] !~ '\(\w\|\.\)'
|
||||||
|
" If the previous character is not a period or word character
|
||||||
|
break
|
||||||
|
" elseif line[start - 1] =~ '\(\w\|\s\+\)'
|
||||||
|
" let start -= 1
|
||||||
|
elseif line[start - 1] =~ '\w'
|
||||||
|
" If the previous character is word character continue back
|
||||||
let start -= 1
|
let start -= 1
|
||||||
elseif line[start - 1] =~ '\.' &&
|
elseif line[start - 1] =~ '\.' &&
|
||||||
\ compl_type =~ 'column\|table\|view\|procedure'
|
\ compl_type =~ 'column\|table\|view\|procedure'
|
||||||
|
" If the previous character is a period and we are completing
|
||||||
|
" an object which can be specified with a period like this:
|
||||||
|
" table_name.column_name
|
||||||
|
" owner_name.table_name
|
||||||
|
|
||||||
" If lastword has already been set for column completion
|
" If lastword has already been set for column completion
|
||||||
" break from the loop, since we do not also want to pickup
|
" break from the loop, since we do not also want to pickup
|
||||||
" a table name if it was also supplied.
|
" a table name if it was also supplied.
|
||||||
@@ -184,9 +231,10 @@ function! sqlcomplete#Complete(findstart, base)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
|
let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
|
||||||
if s:sql_file_{compl_type} == ""
|
" Same call below, no need to do it twice
|
||||||
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
" if s:sql_file_{compl_type} == ""
|
||||||
endif
|
" let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
||||||
|
" endif
|
||||||
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
||||||
if s:sql_file_{compl_type} != ""
|
if s:sql_file_{compl_type} != ""
|
||||||
if filereadable(s:sql_file_{compl_type})
|
if filereadable(s:sql_file_{compl_type})
|
||||||
@@ -230,7 +278,7 @@ function! sqlcomplete#Complete(findstart, base)
|
|||||||
" 1. Check if the dbext plugin has the option turned
|
" 1. Check if the dbext plugin has the option turned
|
||||||
" on to even allow owners
|
" on to even allow owners
|
||||||
" 2. Based on 1, if the user is showing a table list
|
" 2. Based on 1, if the user is showing a table list
|
||||||
" and the DrillIntoTable (using <C-Right>) then
|
" and the DrillIntoTable (using <Right>) then
|
||||||
" this will be owner.table. In this case, we can
|
" this will be owner.table. In this case, we can
|
||||||
" check to see the table.column exists in the
|
" check to see the table.column exists in the
|
||||||
" cached table list. If it does, then we have
|
" cached table list. If it does, then we have
|
||||||
@@ -312,9 +360,16 @@ function! sqlcomplete#Complete(findstart, base)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if base != ''
|
if base != ''
|
||||||
" Filter the list based on the first few characters the user
|
" Filter the list based on the first few characters the user entered.
|
||||||
" entered
|
" Check if the text matches at the beginning
|
||||||
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
|
" or
|
||||||
|
" Match to a owner.table or alias.column type match
|
||||||
|
" or
|
||||||
|
" Handle names with spaces "my table name"
|
||||||
|
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
|
||||||
|
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\)"'
|
||||||
|
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\(\\.\\)\\?'.base.'\\)"'
|
||||||
|
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
|
||||||
let compl_list = filter(deepcopy(compl_list), expr)
|
let compl_list = filter(deepcopy(compl_list), expr)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -327,7 +382,13 @@ endfunc
|
|||||||
|
|
||||||
function! sqlcomplete#PreCacheSyntax(...)
|
function! sqlcomplete#PreCacheSyntax(...)
|
||||||
let syn_group_arr = []
|
let syn_group_arr = []
|
||||||
|
let syn_items = []
|
||||||
|
|
||||||
if a:0 > 0
|
if a:0 > 0
|
||||||
|
if type(a:1) != 3
|
||||||
|
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
let syn_group_arr = a:1
|
let syn_group_arr = a:1
|
||||||
else
|
else
|
||||||
let syn_group_arr = g:omni_sql_precache_syntax_groups
|
let syn_group_arr = g:omni_sql_precache_syntax_groups
|
||||||
@@ -336,7 +397,36 @@ function! sqlcomplete#PreCacheSyntax(...)
|
|||||||
" the sytnax items.
|
" the sytnax items.
|
||||||
if !empty(syn_group_arr)
|
if !empty(syn_group_arr)
|
||||||
for group_name in syn_group_arr
|
for group_name in syn_group_arr
|
||||||
call s:SQLCGetSyntaxList(group_name)
|
let syn_items = extend( syn_items, s:SQLCGetSyntaxList(group_name) )
|
||||||
|
endfor
|
||||||
|
endif
|
||||||
|
|
||||||
|
return syn_items
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! sqlcomplete#ResetCacheSyntax(...)
|
||||||
|
let syn_group_arr = []
|
||||||
|
|
||||||
|
if a:0 > 0
|
||||||
|
if type(a:1) != 3
|
||||||
|
call s:SQLCWarningMsg("Parameter is not a list. Example:['syntaxGroup1', 'syntaxGroup2']")
|
||||||
|
return ''
|
||||||
|
endif
|
||||||
|
let syn_group_arr = a:1
|
||||||
|
else
|
||||||
|
let syn_group_arr = g:omni_sql_precache_syntax_groups
|
||||||
|
endif
|
||||||
|
" For each group specified in the list, precache all
|
||||||
|
" the sytnax items.
|
||||||
|
if !empty(syn_group_arr)
|
||||||
|
for group_name in syn_group_arr
|
||||||
|
let list_idx = index(s:syn_list, group_name, 0, &ignorecase)
|
||||||
|
if list_idx > -1
|
||||||
|
" Remove from list of groups
|
||||||
|
call remove( s:syn_list, list_idx )
|
||||||
|
" Remove from list of keywords
|
||||||
|
call remove( s:syn_value, list_idx )
|
||||||
|
endif
|
||||||
endfor
|
endfor
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
@@ -363,13 +453,14 @@ function! sqlcomplete#DrillIntoTable()
|
|||||||
call sqlcomplete#Map('column')
|
call sqlcomplete#Map('column')
|
||||||
" C-Y, makes the currently highlighted entry active
|
" C-Y, makes the currently highlighted entry active
|
||||||
" and trigger the omni popup to be redisplayed
|
" and trigger the omni popup to be redisplayed
|
||||||
call feedkeys("\<C-Y>\<C-X>\<C-O>")
|
call feedkeys("\<C-Y>\<C-X>\<C-O>", 'n')
|
||||||
else
|
else
|
||||||
if has('win32')
|
|
||||||
" If the popup is not visible, simple perform the normal
|
" If the popup is not visible, simple perform the normal
|
||||||
" <C-Right> behaviour
|
" key behaviour.
|
||||||
exec "normal! \<C-Right>"
|
" Must use exec since they key must be preceeded by "\"
|
||||||
endif
|
" or feedkeys will simply push each character of the string
|
||||||
|
" rather than the "key press".
|
||||||
|
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_right.'", "n")'
|
||||||
endif
|
endif
|
||||||
return ""
|
return ""
|
||||||
endfunction
|
endfunction
|
||||||
@@ -381,24 +472,25 @@ function! sqlcomplete#DrillOutOfColumns()
|
|||||||
" Trigger the omni popup to be redisplayed
|
" Trigger the omni popup to be redisplayed
|
||||||
call feedkeys("\<C-X>\<C-O>")
|
call feedkeys("\<C-X>\<C-O>")
|
||||||
else
|
else
|
||||||
if has('win32')
|
|
||||||
" If the popup is not visible, simple perform the normal
|
" If the popup is not visible, simple perform the normal
|
||||||
" <C-Left> behaviour
|
" key behaviour.
|
||||||
exec "normal! \<C-Left>"
|
" Must use exec since they key must be preceeded by "\"
|
||||||
endif
|
" or feedkeys will simply push each character of the string
|
||||||
|
" rather than the "key press".
|
||||||
|
exec 'call feedkeys("\'.g:ftplugin_sql_omni_key_left.'", "n")'
|
||||||
endif
|
endif
|
||||||
return ""
|
return ""
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:SQLCWarningMsg(msg)
|
function! s:SQLCWarningMsg(msg)
|
||||||
echohl WarningMsg
|
echohl WarningMsg
|
||||||
echomsg a:msg
|
echomsg 'SQLComplete:'.a:msg
|
||||||
echohl None
|
echohl None
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:SQLCErrorMsg(msg)
|
function! s:SQLCErrorMsg(msg)
|
||||||
echohl ErrorMsg
|
echohl ErrorMsg
|
||||||
echomsg a:msg
|
echomsg 'SQLComplete:'.a:msg
|
||||||
echohl None
|
echohl None
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -424,7 +516,7 @@ function! s:SQLCGetSyntaxList(syn_group)
|
|||||||
let g:omni_syntax_group_include_sql = syn_group
|
let g:omni_syntax_group_include_sql = syn_group
|
||||||
endif
|
endif
|
||||||
let g:omni_syntax_group_exclude_sql = ''
|
let g:omni_syntax_group_exclude_sql = ''
|
||||||
let syn_value = OmniSyntaxList()
|
let syn_value = syntaxcomplete#OmniSyntaxList()
|
||||||
let g:omni_syntax_group_include_sql = s:save_inc
|
let g:omni_syntax_group_include_sql = s:save_inc
|
||||||
let g:omni_syntax_group_exclude_sql = s:save_exc
|
let g:omni_syntax_group_exclude_sql = s:save_exc
|
||||||
" Cache these values for later use
|
" Cache these values for later use
|
||||||
@@ -582,7 +674,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
|||||||
" Search backwards to the beginning of the statement
|
" Search backwards to the beginning of the statement
|
||||||
" and do NOT wrap
|
" and do NOT wrap
|
||||||
" exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
|
" exec 'silent! normal! v?\<\(select\|update\|delete\|;\)\>'."\n".'"yy'
|
||||||
exec 'silent! normal! ?\<\(select\|update\|delete\|;\)\>'."\n"
|
exec 'silent! normal! ?\<\c\(select\|update\|delete\|;\)\>'."\n"
|
||||||
|
|
||||||
" Start characterwise visual mode
|
" Start characterwise visual mode
|
||||||
" Advance right one character
|
" Advance right one character
|
||||||
@@ -591,27 +683,38 @@ function! s:SQLCGetColumns(table_name, list_type)
|
|||||||
" 2. A ; at the end of a line (the delimiter)
|
" 2. A ; at the end of a line (the delimiter)
|
||||||
" 3. The end of the file (incase no delimiter)
|
" 3. The end of the file (incase no delimiter)
|
||||||
" Yank the visually selected text into the "y register.
|
" Yank the visually selected text into the "y register.
|
||||||
exec 'silent! normal! vl/\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
|
exec 'silent! normal! vl/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
|
||||||
|
|
||||||
let query = @y
|
let query = @y
|
||||||
let query = substitute(query, "\n", ' ', 'g')
|
let query = substitute(query, "\n", ' ', 'g')
|
||||||
let found = 0
|
let found = 0
|
||||||
|
|
||||||
" if query =~? '^\(select\|update\|delete\)'
|
" if query =~? '^\c\(select\)'
|
||||||
if query =~? '^\(select\)'
|
if query =~? '^\(select\|update\|delete\)'
|
||||||
let found = 1
|
let found = 1
|
||||||
" \(\(\<\w\+\>\)\.\)\? -
|
" \(\(\<\w\+\>\)\.\)\? -
|
||||||
" 'from.\{-}' - Starting at the from clause
|
" '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
|
||||||
" '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
|
" '\zs\(\(\<\w\+\>\)\.\)\?' - Get the owner name (optional)
|
||||||
" '\<\w\+\>\ze' - Get the table name
|
" '\<\w\+\>\ze' - Get the table name
|
||||||
" '\s\+\<'.table_name.'\>' - Followed by the alias
|
" '\s\+\<'.table_name.'\>' - Followed by the alias
|
||||||
" '\s*\.\@!.*' - Cannot be followed by a .
|
" '\s*\.\@!.*' - Cannot be followed by a .
|
||||||
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
|
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
|
||||||
" '.*' - Exclude the rest of the line in the match
|
" '.*' - Exclude the rest of the line in the match
|
||||||
|
" let table_name_new = matchstr(@y,
|
||||||
|
" \ '\c\(from\|join\|,\).\{-}'.
|
||||||
|
" \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
|
||||||
|
" \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
|
||||||
|
" \ '\s\+\%(as\s\+\)\?\<'.
|
||||||
|
" \ matchstr(table_name, '.\{-}\ze\.\?$').
|
||||||
|
" \ '\>'.
|
||||||
|
" \ '\s*\.\@!.*'.
|
||||||
|
" \ '\(\<where\>\|$\)'.
|
||||||
|
" \ '.*'
|
||||||
|
" \ )
|
||||||
let table_name_new = matchstr(@y,
|
let table_name_new = matchstr(@y,
|
||||||
\ 'from.\{-}'.
|
\ '\c\(\<from\>\|\<join\>\|,\)\s*'.
|
||||||
\ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
|
\ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
|
||||||
\ '\("\|\[\)\?.\{-}\("\|\]\)\ze'.
|
\ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
|
||||||
\ '\s\+\%(as\s\+\)\?\<'.
|
\ '\s\+\%(as\s\+\)\?\<'.
|
||||||
\ matchstr(table_name, '.\{-}\ze\.\?$').
|
\ matchstr(table_name, '.\{-}\ze\.\?$').
|
||||||
\ '\>'.
|
\ '\>'.
|
||||||
@@ -622,7 +725,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
|||||||
|
|
||||||
if table_name_new != ''
|
if table_name_new != ''
|
||||||
let table_alias = table_name
|
let table_alias = table_name
|
||||||
let table_name = table_name_new
|
let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
|
||||||
|
|
||||||
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
|
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
|
||||||
if list_idx > -1
|
if list_idx > -1
|
||||||
@@ -690,4 +793,3 @@ function! s:SQLCGetColumns(table_name, list_type)
|
|||||||
|
|
||||||
return table_cols
|
return table_cols
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,35 @@
|
|||||||
" Vim completion script
|
" Vim completion script
|
||||||
" Language: All languages, uses existing syntax highlighting rules
|
" Language: All languages, uses existing syntax highlighting rules
|
||||||
" Maintainer: David Fishburn <dfishburn.vim@gmail.com>
|
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||||
" Version: 4.0
|
" Version: 7.0
|
||||||
" Last Change: Fri 26 Oct 2007 05:27:03 PM Eastern Daylight Time
|
" Last Change: 2010 Jul 29
|
||||||
" Usage: For detailed help, ":help ft-syntax-omni"
|
" Usage: For detailed help, ":help ft-syntax-omni"
|
||||||
|
|
||||||
|
" History
|
||||||
|
"
|
||||||
|
" Version 7.0
|
||||||
|
" Updated syntaxcomplete#OmniSyntaxList()
|
||||||
|
" - Looking up the syntax groups defined from a syntax file
|
||||||
|
" looked for only 1 format of {filetype}GroupName, but some
|
||||||
|
" syntax writers use this format as well:
|
||||||
|
" {b:current_syntax}GroupName
|
||||||
|
" OmniSyntaxList() will now check for both if the first
|
||||||
|
" method does not find a match.
|
||||||
|
"
|
||||||
|
" Version 6.0
|
||||||
|
" Added syntaxcomplete#OmniSyntaxList()
|
||||||
|
" - Allows other plugins to use this for their own
|
||||||
|
" purposes.
|
||||||
|
" - It will return a List of all syntax items for the
|
||||||
|
" syntax group name passed in.
|
||||||
|
" - XPTemplate for SQL will use this function via the
|
||||||
|
" sqlcomplete plugin to populate a Choose box.
|
||||||
|
"
|
||||||
|
" Version 5.0
|
||||||
|
" Updated SyntaxCSyntaxGroupItems()
|
||||||
|
" - When processing a list of syntax groups, the final group
|
||||||
|
" was missed in function SyntaxCSyntaxGroupItems.
|
||||||
|
"
|
||||||
" Set completion with CTRL-X CTRL-O to autoloaded function.
|
" Set completion with CTRL-X CTRL-O to autoloaded function.
|
||||||
" This check is in place in case this script is
|
" This check is in place in case this script is
|
||||||
" sourced directly instead of using the autoload feature.
|
" sourced directly instead of using the autoload feature.
|
||||||
@@ -19,7 +44,7 @@ endif
|
|||||||
if exists('g:loaded_syntax_completion')
|
if exists('g:loaded_syntax_completion')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_syntax_completion = 40
|
let g:loaded_syntax_completion = 70
|
||||||
|
|
||||||
" Set ignorecase to the ftplugin standard
|
" Set ignorecase to the ftplugin standard
|
||||||
" This is the default setting, but if you define a buffer local
|
" This is the default setting, but if you define a buffer local
|
||||||
@@ -123,7 +148,30 @@ function! syntaxcomplete#Complete(findstart, base)
|
|||||||
return compl_list
|
return compl_list
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function! OmniSyntaxList()
|
function! syntaxcomplete#OmniSyntaxList(...)
|
||||||
|
if a:0 > 0
|
||||||
|
let parms = []
|
||||||
|
if 3 == type(a:1)
|
||||||
|
let parms = a:1
|
||||||
|
elseif 1 == type(a:1)
|
||||||
|
let parms = split(a:1, ',')
|
||||||
|
endif
|
||||||
|
return OmniSyntaxList( parms )
|
||||||
|
else
|
||||||
|
return OmniSyntaxList()
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
function! OmniSyntaxList(...)
|
||||||
|
let list_parms = []
|
||||||
|
if a:0 > 0
|
||||||
|
if 3 == type(a:1)
|
||||||
|
let list_parms = a:1
|
||||||
|
elseif 1 == type(a:1)
|
||||||
|
let list_parms = split(a:1, ',')
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
" Default to returning a dictionary, if use_dictionary is set to 0
|
" Default to returning a dictionary, if use_dictionary is set to 0
|
||||||
" a list will be returned.
|
" a list will be returned.
|
||||||
" let use_dictionary = 1
|
" let use_dictionary = 1
|
||||||
@@ -152,6 +200,26 @@ function! OmniSyntaxList()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let saveL = @l
|
let saveL = @l
|
||||||
|
let filetype = substitute(&filetype, '\.', '_', 'g')
|
||||||
|
|
||||||
|
if empty(list_parms)
|
||||||
|
" Default the include group to include the requested syntax group
|
||||||
|
let syntax_group_include_{filetype} = ''
|
||||||
|
" Check if there are any overrides specified for this filetype
|
||||||
|
if exists('g:omni_syntax_group_include_'.filetype)
|
||||||
|
let syntax_group_include_{filetype} =
|
||||||
|
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
|
||||||
|
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
|
||||||
|
if syntax_group_include_{filetype} =~ '\w'
|
||||||
|
let syntax_group_include_{filetype} =
|
||||||
|
\ substitute( syntax_group_include_{filetype},
|
||||||
|
\ '\s*,\s*', '\\|', 'g'
|
||||||
|
\ )
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" A specific list was provided, use it
|
||||||
|
endif
|
||||||
|
|
||||||
" Loop through all the syntax groupnames, and build a
|
" Loop through all the syntax groupnames, and build a
|
||||||
" syntax file which contains these names. This can
|
" syntax file which contains these names. This can
|
||||||
@@ -159,9 +227,13 @@ function! OmniSyntaxList()
|
|||||||
" have a plugin defined.
|
" have a plugin defined.
|
||||||
" This ASSUMES the syntax groupname BEGINS with the name
|
" This ASSUMES the syntax groupname BEGINS with the name
|
||||||
" of the filetype. From my casual viewing of the vim7\syntax
|
" of the filetype. From my casual viewing of the vim7\syntax
|
||||||
" directory.
|
" directory this is true for almost all syntax definitions.
|
||||||
|
" As an example, the SQL syntax groups have this pattern:
|
||||||
|
" sqlType
|
||||||
|
" sqlOperators
|
||||||
|
" sqlKeyword ...
|
||||||
redir @l
|
redir @l
|
||||||
silent! exec 'syntax list '
|
silent! exec 'syntax list '.join(list_parms)
|
||||||
redir END
|
redir END
|
||||||
|
|
||||||
let syntax_full = "\n".@l
|
let syntax_full = "\n".@l
|
||||||
@@ -176,26 +248,17 @@ function! OmniSyntaxList()
|
|||||||
|
|
||||||
let filetype = substitute(&filetype, '\.', '_', 'g')
|
let filetype = substitute(&filetype, '\.', '_', 'g')
|
||||||
|
|
||||||
" Default the include group to include the requested syntax group
|
let list_exclude_groups = []
|
||||||
let syntax_group_include_{filetype} = ''
|
if a:0 > 0
|
||||||
" Check if there are any overrides specified for this filetype
|
" Do nothing since we have specific a specific list of groups
|
||||||
if exists('g:omni_syntax_group_include_'.filetype)
|
else
|
||||||
let syntax_group_include_{filetype} =
|
|
||||||
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
|
|
||||||
if syntax_group_include_{filetype} =~ '\w'
|
|
||||||
let syntax_group_include_{filetype} =
|
|
||||||
\ substitute( syntax_group_include_{filetype},
|
|
||||||
\ '\s*,\s*', '\\|', 'g'
|
|
||||||
\ )
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Default the exclude group to nothing
|
" Default the exclude group to nothing
|
||||||
let syntax_group_exclude_{filetype} = ''
|
let syntax_group_exclude_{filetype} = ''
|
||||||
" Check if there are any overrides specified for this filetype
|
" Check if there are any overrides specified for this filetype
|
||||||
if exists('g:omni_syntax_group_exclude_'.filetype)
|
if exists('g:omni_syntax_group_exclude_'.filetype)
|
||||||
let syntax_group_exclude_{filetype} =
|
let syntax_group_exclude_{filetype} =
|
||||||
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
|
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
|
||||||
|
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
|
||||||
if syntax_group_exclude_{filetype} =~ '\w'
|
if syntax_group_exclude_{filetype} =~ '\w'
|
||||||
let syntax_group_exclude_{filetype} =
|
let syntax_group_exclude_{filetype} =
|
||||||
\ substitute( syntax_group_exclude_{filetype},
|
\ substitute( syntax_group_exclude_{filetype},
|
||||||
@@ -203,6 +266,7 @@ function! OmniSyntaxList()
|
|||||||
\ )
|
\ )
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
" Sometimes filetypes can be composite names, like c.doxygen
|
" Sometimes filetypes can be composite names, like c.doxygen
|
||||||
" Loop through each individual part looking for the syntax
|
" Loop through each individual part looking for the syntax
|
||||||
@@ -225,47 +289,51 @@ function! OmniSyntaxList()
|
|||||||
let index = 0
|
let index = 0
|
||||||
let index = match(syntax_full, next_group_regex, index)
|
let index = match(syntax_full, next_group_regex, index)
|
||||||
|
|
||||||
|
if index == -1 && exists('b:current_syntax') && ft_part_name != b:current_syntax
|
||||||
|
" There appears to be two standards when writing syntax files.
|
||||||
|
" Either items begin as:
|
||||||
|
" syn keyword {filetype}Keyword values ...
|
||||||
|
" let b:current_syntax = "sql"
|
||||||
|
" let b:current_syntax = "sqlanywhere"
|
||||||
|
" Or
|
||||||
|
" syn keyword {syntax_filename}Keyword values ...
|
||||||
|
" let b:current_syntax = "mysql"
|
||||||
|
" So, we will make the format of finding the syntax group names
|
||||||
|
" a bit more flexible and look for both if the first fails to
|
||||||
|
" find a match.
|
||||||
|
let next_group_regex = '\n' .
|
||||||
|
\ '\zs'.b:current_syntax.'\w\+\ze'.
|
||||||
|
\ '\s\+xxx\s\+'
|
||||||
|
let index = 0
|
||||||
|
let index = match(syntax_full, next_group_regex, index)
|
||||||
|
endif
|
||||||
|
|
||||||
while index > -1
|
while index > -1
|
||||||
let group_name = matchstr( syntax_full, '\w\+', index )
|
let group_name = matchstr( syntax_full, '\w\+', index )
|
||||||
|
|
||||||
let get_syn_list = 1
|
let get_syn_list = 1
|
||||||
" if syntax_group_include_{&filetype} == ''
|
for exclude_group_name in list_exclude_groups
|
||||||
" if syntax_group_exclude_{&filetype} != ''
|
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
|
||||||
" if '\<'.syntax_group_exclude_{&filetype}.'\>' =~ '\<'.group_name.'\>'
|
|
||||||
" let get_syn_list = 0
|
|
||||||
" endif
|
|
||||||
" endif
|
|
||||||
" else
|
|
||||||
" if '\<'.syntax_group_include_{&filetype}.'\>' !~ '\<'.group_name.'\>'
|
|
||||||
" let get_syn_list = 0
|
|
||||||
" endif
|
|
||||||
" endif
|
|
||||||
if syntax_group_exclude_{filetype} != ''
|
|
||||||
if '\<'.syntax_group_exclude_{filetype}.'\>' =~ '\<'.group_name.'\>'
|
|
||||||
let get_syn_list = 0
|
let get_syn_list = 0
|
||||||
endif
|
endif
|
||||||
endif
|
endfor
|
||||||
|
|
||||||
if get_syn_list == 1
|
" This code is no longer needed in version 6.0 since we have
|
||||||
if syntax_group_include_{filetype} != ''
|
" augmented the syntax list command to only retrieve the syntax
|
||||||
if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
|
" groups we are interested in.
|
||||||
let get_syn_list = 0
|
"
|
||||||
endif
|
" if get_syn_list == 1
|
||||||
endif
|
" if syntax_group_include_{filetype} != ''
|
||||||
endif
|
" if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
|
||||||
|
" let get_syn_list = 0
|
||||||
|
" endif
|
||||||
|
" endif
|
||||||
|
" endif
|
||||||
|
|
||||||
if get_syn_list == 1
|
if get_syn_list == 1
|
||||||
" Pass in the full syntax listing, plus the group name we
|
" Pass in the full syntax listing, plus the group name we
|
||||||
" are interested in.
|
" are interested in.
|
||||||
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
|
let extra_syn_list = s:SyntaxCSyntaxGroupItems(group_name, syntax_full)
|
||||||
|
|
||||||
" if !empty(extra_syn_list)
|
|
||||||
" for elem in extra_syn_list
|
|
||||||
" let item = {'word':elem, 'kind':'t', 'info':group_name}
|
|
||||||
" let compl_list += [item]
|
|
||||||
" endfor
|
|
||||||
" endif
|
|
||||||
|
|
||||||
let syn_list = syn_list . extra_syn_list . "\n"
|
let syn_list = syn_list . extra_syn_list . "\n"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -312,9 +380,13 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
|||||||
" \zs - start the match
|
" \zs - start the match
|
||||||
" .\{-} - everything ...
|
" .\{-} - everything ...
|
||||||
" \ze - end the match
|
" \ze - end the match
|
||||||
|
" \( - start a group or 2 potential matches
|
||||||
" \n\w - at the first newline starting with a character
|
" \n\w - at the first newline starting with a character
|
||||||
|
" \| - 2nd potential match
|
||||||
|
" \%$ - matches end of the file or string
|
||||||
|
" \) - end a group
|
||||||
let syntax_group = matchstr(a:syntax_full,
|
let syntax_group = matchstr(a:syntax_full,
|
||||||
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze'."\n".'\w'
|
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
|
||||||
\ )
|
\ )
|
||||||
|
|
||||||
if syntax_group != ""
|
if syntax_group != ""
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
" tar.vim: Handles browsing tarfiles
|
" tar.vim: Handles browsing tarfiles
|
||||||
" AUTOLOAD PORTION
|
" AUTOLOAD PORTION
|
||||||
" Date: Aug 08, 2008
|
" Date: Aug 09, 2010
|
||||||
" Version: 23 + modifications by Bram
|
" Version: 26
|
||||||
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||||
" License: Vim License (see vim's :help license)
|
" License: Vim License (see vim's :help license)
|
||||||
"
|
"
|
||||||
" Contains many ideas from Michael Toren's <tar.vim>
|
" Contains many ideas from Michael Toren's <tar.vim>
|
||||||
"
|
"
|
||||||
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
|
" Copyright: Copyright (C) 2005-2009 Charles E. Campbell, Jr. {{{1
|
||||||
" Permission is hereby granted to use and distribute this code,
|
" Permission is hereby granted to use and distribute this code,
|
||||||
" with or without modifications, provided that this copyright
|
" with or without modifications, provided that this copyright
|
||||||
" notice is copied with it. Like anything else that's free,
|
" notice is copied with it. Like anything else that's free,
|
||||||
@@ -16,19 +16,22 @@
|
|||||||
" By using this plugin, you agree that in no event will the
|
" By using this plugin, you agree that in no event will the
|
||||||
" copyright holder be liable for any damages resulting from
|
" copyright holder be liable for any damages resulting from
|
||||||
" the use of this software.
|
" the use of this software.
|
||||||
|
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Load Once: {{{1
|
" Load Once: {{{1
|
||||||
let s:keepcpo= &cpo
|
if &cp || exists("g:loaded_tar")
|
||||||
set cpo&vim
|
|
||||||
if &cp || exists("g:loaded_tar") || v:version < 700
|
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let g:loaded_tar= "v23b"
|
let g:loaded_tar= "v26"
|
||||||
"call Decho("loading autoload/tar.vim")
|
if v:version < 702
|
||||||
if v:version < 701 || (v:version == 701 && !has("patch299"))
|
echohl WarningMsg
|
||||||
echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299"
|
echo "***warning*** this version of tar needs vim 7.2"
|
||||||
|
echohl Normal
|
||||||
|
finish
|
||||||
endif
|
endif
|
||||||
|
let s:keepcpo= &cpo
|
||||||
|
set cpo&vim
|
||||||
|
"call Decho("loading autoload/tar.vim")
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Default Settings: {{{1
|
" Default Settings: {{{1
|
||||||
@@ -44,7 +47,22 @@ endif
|
|||||||
if !exists("g:tar_writeoptions")
|
if !exists("g:tar_writeoptions")
|
||||||
let g:tar_writeoptions= "uf"
|
let g:tar_writeoptions= "uf"
|
||||||
endif
|
endif
|
||||||
|
if !exists("g:tar_copycmd")
|
||||||
|
if !exists("g:netrw_localcopycmd")
|
||||||
|
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||||
|
if g:netrw_cygwin
|
||||||
|
let g:netrw_localcopycmd= "cp"
|
||||||
|
else
|
||||||
|
let g:netrw_localcopycmd= "copy"
|
||||||
|
endif
|
||||||
|
elseif has("unix") || has("macunix")
|
||||||
|
let g:netrw_localcopycmd= "cp"
|
||||||
|
else
|
||||||
|
let g:netrw_localcopycmd= ""
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
let g:tar_copycmd= g:netrw_localcopycmd
|
||||||
|
endif
|
||||||
if !exists("g:netrw_cygwin")
|
if !exists("g:netrw_cygwin")
|
||||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||||
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
||||||
@@ -56,6 +74,9 @@ if !exists("g:netrw_cygwin")
|
|||||||
let g:netrw_cygwin= 0
|
let g:netrw_cygwin= 0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
if !exists("g:tar_extractcmd")
|
||||||
|
let g:tar_extractcmd= "tar -xf"
|
||||||
|
endif
|
||||||
|
|
||||||
" set up shell quoting character
|
" set up shell quoting character
|
||||||
if !exists("g:tar_shq")
|
if !exists("g:tar_shq")
|
||||||
@@ -88,7 +109,6 @@ fun! tar#Browse(tarfile)
|
|||||||
if !executable(g:tar_cmd)
|
if !executable(g:tar_cmd)
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Browse")
|
" call Dret("tar#Browse")
|
||||||
return
|
return
|
||||||
@@ -99,7 +119,6 @@ fun! tar#Browse(tarfile)
|
|||||||
" if its an url, don't complain, let url-handlers such as vim do its thing
|
" if its an url, don't complain, let url-handlers such as vim do its thing
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
endif
|
endif
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
|
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
|
||||||
@@ -108,7 +127,7 @@ fun! tar#Browse(tarfile)
|
|||||||
if &ma != 1
|
if &ma != 1
|
||||||
set ma
|
set ma
|
||||||
endif
|
endif
|
||||||
let w:tarfile= a:tarfile
|
let b:tarfile= a:tarfile
|
||||||
|
|
||||||
setlocal noswapfile
|
setlocal noswapfile
|
||||||
setlocal buftype=nofile
|
setlocal buftype=nofile
|
||||||
@@ -130,37 +149,41 @@ fun! tar#Browse(tarfile)
|
|||||||
let tarfile= a:tarfile
|
let tarfile= a:tarfile
|
||||||
if has("win32") && executable("cygpath")
|
if has("win32") && executable("cygpath")
|
||||||
" assuming cygwin
|
" assuming cygwin
|
||||||
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
|
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||||
endif
|
endif
|
||||||
let curlast= line("$")
|
let curlast= line("$")
|
||||||
if tarfile =~# '\.\(gz\|tgz\)$'
|
if tarfile =~# '\.\(gz\|tgz\)$'
|
||||||
" call Decho("1: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
exe "silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
elseif tarfile =~# '\.lrp'
|
elseif tarfile =~# '\.lrp'
|
||||||
" call Decho("2: exe silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
exe "silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
exe "silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
elseif tarfile =~# '\.bz2$'
|
elseif tarfile =~# '\.bz2$'
|
||||||
" call Decho("3: exe silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
|
elseif tarfile =~# '\.lzma$'
|
||||||
|
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
|
exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
|
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||||
|
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||||
|
exe "silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||||
else
|
else
|
||||||
if tarfile =~ '^\s*-'
|
if tarfile =~ '^\s*-'
|
||||||
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
|
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||||
let tarfile = substitute(tarfile, '-', './-', '')
|
let tarfile = substitute(tarfile, '-', './-', '')
|
||||||
endif
|
endif
|
||||||
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1))
|
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
|
||||||
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1)
|
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||||
endif
|
endif
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
|
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
||||||
redraw!
|
redraw!
|
||||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
silent %d
|
silent %d
|
||||||
let eikeep= &ei
|
let eikeep= &ei
|
||||||
set ei=BufReadCmd,FileReadCmd
|
set ei=BufReadCmd,FileReadCmd
|
||||||
@@ -175,13 +198,13 @@ fun! tar#Browse(tarfile)
|
|||||||
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
|
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
|
||||||
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
|
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" TarBrowseSelect: {{{2
|
" TarBrowseSelect: {{{2
|
||||||
fun! s:TarBrowseSelect()
|
fun! s:TarBrowseSelect()
|
||||||
" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">")
|
" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
|
||||||
let repkeep= &report
|
let repkeep= &report
|
||||||
set report=10
|
set report=10
|
||||||
let fname= getline(".")
|
let fname= getline(".")
|
||||||
@@ -189,7 +212,7 @@ fun! s:TarBrowseSelect()
|
|||||||
|
|
||||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||||
redraw!
|
redraw!
|
||||||
echohl WarningMsg | echo '***error*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"; See :help tar-options'
|
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||||
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@@ -201,12 +224,12 @@ fun! s:TarBrowseSelect()
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" about to make a new window, need to use w:tarfile
|
" about to make a new window, need to use b:tarfile
|
||||||
let tarfile= w:tarfile
|
let tarfile= b:tarfile
|
||||||
let curfile= expand("%")
|
let curfile= expand("%")
|
||||||
if has("win32") && executable("cygpath")
|
if has("win32") && executable("cygpath")
|
||||||
" assuming cygwin
|
" assuming cygwin
|
||||||
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
|
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
new
|
new
|
||||||
@@ -231,21 +254,27 @@ fun! tar#Read(fname,mode)
|
|||||||
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||||
if has("win32") && executable("cygpath")
|
if has("win32") && executable("cygpath")
|
||||||
" assuming cygwin
|
" assuming cygwin
|
||||||
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
|
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||||
endif
|
endif
|
||||||
" call Decho("tarfile<".tarfile.">")
|
" call Decho("tarfile<".tarfile.">")
|
||||||
" call Decho("fname<".fname.">")
|
" call Decho("fname<".fname.">")
|
||||||
|
|
||||||
if fname =~ '\.gz$' && executable("zcat")
|
if fname =~ '\.bz2$' && executable("bzcat")
|
||||||
|
let decmp= "|bzcat"
|
||||||
|
let doro = 1
|
||||||
|
elseif fname =~ '\.gz$' && executable("zcat")
|
||||||
let decmp= "|zcat"
|
let decmp= "|zcat"
|
||||||
let doro = 1
|
let doro = 1
|
||||||
elseif fname =~ '\.bz2$' && executable("bzcat")
|
elseif fname =~ '\.lzma$' && executable("lzcat")
|
||||||
let decmp= "|bzcat"
|
let decmp= "|lzcat"
|
||||||
|
let doro = 1
|
||||||
|
elseif fname =~ '\.xz$' && executable("xzcat")
|
||||||
|
let decmp= "|xzcat"
|
||||||
let doro = 1
|
let doro = 1
|
||||||
else
|
else
|
||||||
let decmp=""
|
let decmp=""
|
||||||
let doro = 0
|
let doro = 0
|
||||||
if fname =~ '\.gz$\|\.bz2$\|\.Z$\|\.zip$'
|
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||||
setlocal bin
|
setlocal bin
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -255,22 +284,28 @@ fun! tar#Read(fname,mode)
|
|||||||
else
|
else
|
||||||
let tar_secure= " "
|
let tar_secure= " "
|
||||||
endif
|
endif
|
||||||
if tarfile =~# '\.\(gz\|tgz\)$'
|
if tarfile =~# '\.bz2$'
|
||||||
" call Decho("5: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.s:Escape(fname,1))
|
" 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 "silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
|
exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
|
elseif tarfile =~# '\.\(gz\|tgz\)$'
|
||||||
|
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
|
||||||
|
exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
elseif tarfile =~# '\.lrp$'
|
elseif tarfile =~# '\.lrp$'
|
||||||
" call Decho("6: exe silent r! cat ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp)
|
" 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 "silent r! cat -- ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
|
exe "silent r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
elseif tarfile =~# '\.bz2$'
|
elseif tarfile =~# '\.lzma$'
|
||||||
" call Decho("7: exe silent r! bzip2 -d -c ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp)
|
" 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 "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
|
exe "silent 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 "silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||||
else
|
else
|
||||||
if tarfile =~ '^\s*-'
|
if tarfile =~ '^\s*-'
|
||||||
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
|
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||||
let tarfile = substitute(tarfile, '-', './-', '')
|
let tarfile = substitute(tarfile, '-', './-', '')
|
||||||
endif
|
endif
|
||||||
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions." "s:Escape(tarfile,1).tar_secure..s:Escape(fname,1).decmp)
|
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
|
||||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".s:Escape(tarfile,1).tar_secure.s:Escape(fname,1).decmp
|
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if doro
|
if doro
|
||||||
@@ -278,7 +313,7 @@ fun! tar#Read(fname,mode)
|
|||||||
setlocal ro
|
setlocal ro
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let w:tarfile= a:fname
|
let b:tarfile= a:fname
|
||||||
exe "file tarfile::".fnameescape(fname)
|
exe "file tarfile::".fnameescape(fname)
|
||||||
|
|
||||||
" cleanup
|
" cleanup
|
||||||
@@ -286,19 +321,19 @@ fun! tar#Read(fname,mode)
|
|||||||
set nomod
|
set nomod
|
||||||
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Read : w:tarfile<".w:tarfile.">")
|
" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" tar#Write: {{{2
|
" tar#Write: {{{2
|
||||||
fun! tar#Write(fname)
|
fun! tar#Write(fname)
|
||||||
" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||||
let repkeep= &report
|
let repkeep= &report
|
||||||
set report=10
|
set report=10
|
||||||
|
|
||||||
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
|
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
|
||||||
redraw!
|
redraw!
|
||||||
echohl WarningMsg | echo '***error*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"; See :help tar-options'
|
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
|
||||||
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@@ -307,7 +342,6 @@ fun! tar#Write(fname)
|
|||||||
if !executable(g:tar_cmd)
|
if !executable(g:tar_cmd)
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Write")
|
" call Dret("tar#Write")
|
||||||
return
|
return
|
||||||
@@ -315,7 +349,6 @@ fun! tar#Write(fname)
|
|||||||
if !exists("*mkdir")
|
if !exists("*mkdir")
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Write")
|
" call Dret("tar#Write")
|
||||||
return
|
return
|
||||||
@@ -336,7 +369,6 @@ fun! tar#Write(fname)
|
|||||||
catch /^Vim\%((\a\+)\)\=:E344/
|
catch /^Vim\%((\a\+)\)\=:E344/
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
let &report= repkeep
|
let &report= repkeep
|
||||||
" call Dret("tar#Write")
|
" call Dret("tar#Write")
|
||||||
return
|
return
|
||||||
@@ -351,25 +383,35 @@ fun! tar#Write(fname)
|
|||||||
cd _ZIPVIM_
|
cd _ZIPVIM_
|
||||||
" call Decho("current directory now: ".getcwd())
|
" call Decho("current directory now: ".getcwd())
|
||||||
|
|
||||||
let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||||
let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||||
|
|
||||||
" handle compressed archives
|
" handle compressed archives
|
||||||
if tarfile =~# '\.gz'
|
if tarfile =~# '\.bz2'
|
||||||
call system("gzip -d -- ".s:Escape(tarfile,0))
|
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||||
|
let tarfile = substitute(tarfile,'\.bz2','','e')
|
||||||
|
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||||
|
" call Decho("compress<".compress.">")
|
||||||
|
elseif tarfile =~# '\.gz'
|
||||||
|
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||||
let compress= "gzip -- ".s:Escape(tarfile,0)
|
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||||
" call Decho("compress<".compress.">")
|
" call Decho("compress<".compress.">")
|
||||||
elseif tarfile =~# '\.tgz'
|
elseif tarfile =~# '\.tgz'
|
||||||
call system("gzip -d -- ".s:Escape(tarfile,0))
|
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||||
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
||||||
let compress= "gzip -- ".s:Escape(tarfile,0)
|
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||||
let tgz = 1
|
let tgz = 1
|
||||||
" call Decho("compress<".compress.">")
|
" call Decho("compress<".compress.">")
|
||||||
elseif tarfile =~# '\.bz2'
|
elseif tarfile =~# '\.xz'
|
||||||
call system("bzip2 -d -- ".s:Escape(tarfile,0))
|
call system("xz -d -- ".shellescape(tarfile,0))
|
||||||
let tarfile = substitute(tarfile,'\.bz2','','e')
|
let tarfile = substitute(tarfile,'\.xz','','e')
|
||||||
let compress= "bzip2 -- ".s:Escape(tarfile,0)
|
let compress= "xz -- ".shellescape(tarfile,0)
|
||||||
|
" call Decho("compress<".compress.">")
|
||||||
|
elseif tarfile =~# '\.lzma'
|
||||||
|
call system("lzma -d -- ".shellescape(tarfile,0))
|
||||||
|
let tarfile = substitute(tarfile,'\.lzma','','e')
|
||||||
|
let compress= "lzma -- ".shellescape(tarfile,0)
|
||||||
" call Decho("compress<".compress.">")
|
" call Decho("compress<".compress.">")
|
||||||
endif
|
endif
|
||||||
" call Decho("tarfile<".tarfile.">")
|
" call Decho("tarfile<".tarfile.">")
|
||||||
@@ -377,7 +419,6 @@ fun! tar#Write(fname)
|
|||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
else
|
else
|
||||||
|
|
||||||
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
||||||
@@ -385,7 +426,7 @@ fun! tar#Write(fname)
|
|||||||
if fname =~ '/'
|
if fname =~ '/'
|
||||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||||
if executable("cygpath")
|
if executable("cygpath")
|
||||||
let dirpath = substitute(system("cygpath ".s:Escape(dirpath, 0)),'\n','','e')
|
let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
|
||||||
endif
|
endif
|
||||||
call mkdir(dirpath,"p")
|
call mkdir(dirpath,"p")
|
||||||
endif
|
endif
|
||||||
@@ -405,25 +446,23 @@ fun! tar#Write(fname)
|
|||||||
endif
|
endif
|
||||||
exe "w! ".fnameescape(fname)
|
exe "w! ".fnameescape(fname)
|
||||||
if executable("cygpath")
|
if executable("cygpath")
|
||||||
let tarfile = substitute(system("cygpath ".s:Escape(tarfile,0)),'\n','','e')
|
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" delete old file from tarfile
|
" delete old file from tarfile
|
||||||
" call Decho("system(".g:tar_cmd." --delete -f ".s:Escape(tarfile,0)." -- ".s:Escape(fname,0).")")
|
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||||
call system(g:tar_cmd." --delete -f ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
|
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
else
|
else
|
||||||
|
|
||||||
" update tarfile with new file
|
" update tarfile with new file
|
||||||
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
|
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
|
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
redraw!
|
redraw!
|
||||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
|
||||||
elseif exists("compress")
|
elseif exists("compress")
|
||||||
" call Decho("call system(".compress.")")
|
" call Decho("call system(".compress.")")
|
||||||
call system(compress)
|
call system(compress)
|
||||||
@@ -439,13 +478,13 @@ fun! tar#Write(fname)
|
|||||||
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
||||||
let tblfile= s:tblfile_{winnr()}
|
let tblfile= s:tblfile_{winnr()}
|
||||||
1split|enew
|
1split|enew
|
||||||
let binkeep= &binary
|
let binkeep= &l:binary
|
||||||
let eikeep = &ei
|
let eikeep = &ei
|
||||||
set binary ei=all
|
set binary ei=all
|
||||||
exe "e! ".fnameescape(tarfile)
|
exe "e! ".fnameescape(tarfile)
|
||||||
call netrw#NetWrite(tblfile)
|
call netrw#NetWrite(tblfile)
|
||||||
let &ei = eikeep
|
let &ei = eikeep
|
||||||
let &binary = binkeep
|
let &l:binary = binkeep
|
||||||
q!
|
q!
|
||||||
unlet s:tblfile_{winnr()}
|
unlet s:tblfile_{winnr()}
|
||||||
endif
|
endif
|
||||||
@@ -462,38 +501,98 @@ fun! tar#Write(fname)
|
|||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Rmdir: {{{2
|
" s:Rmdir: {{{2
|
||||||
fun! s:Rmdir(fname)
|
fun! s:Rmdir(fname)
|
||||||
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
||||||
if has("unix")
|
if has("unix")
|
||||||
call system("/bin/rm -rf -- ".s:Escape(a:fname,0))
|
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||||
if &shell =~? "sh$"
|
if &shell =~? "sh$"
|
||||||
call system("/bin/rm -rf -- ".s:Escape(a:fname,0))
|
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||||
else
|
else
|
||||||
call system("del /S ".s:Escape(a:fname,0))
|
call system("del /S ".shellescape(a:fname,0))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
" call Dret("Rmdir")
|
" call Dret("Rmdir")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" s:Escape: {{{2
|
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
|
||||||
fun s:Escape(name,isfilt)
|
fun! tar#Vimuntar(...)
|
||||||
" shellescape() was added by patch 7.0.111
|
" call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
|
||||||
if exists("*shellescape")
|
let tarball = expand("%")
|
||||||
if a:isfilt
|
" call Decho("tarball<".tarball.">")
|
||||||
let qnameq= shellescape(a:name,1)
|
let tarbase = substitute(tarball,'\..*$','','')
|
||||||
|
" call Decho("tarbase<".tarbase.">")
|
||||||
|
let tarhome = expand("%:p")
|
||||||
|
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||||
|
let tarhome= substitute(tarhome,'\\','/','g')
|
||||||
|
endif
|
||||||
|
let tarhome= substitute(tarhome,'/[^/]*$','','')
|
||||||
|
" call Decho("tarhome<".tarhome.">")
|
||||||
|
let tartail = expand("%:t")
|
||||||
|
" call Decho("tartail<".tartail.">")
|
||||||
|
let curdir = getcwd()
|
||||||
|
" call Decho("curdir <".curdir.">")
|
||||||
|
" set up vimhome
|
||||||
|
if a:0 > 0 && a:1 != ""
|
||||||
|
let vimhome= a:1
|
||||||
else
|
else
|
||||||
let qnameq= shellescape(a:name)
|
let vimhome= vimball#VimballHome()
|
||||||
|
endif
|
||||||
|
" call Decho("vimhome<".vimhome.">")
|
||||||
|
|
||||||
|
" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
|
||||||
|
if simplify(curdir) != simplify(vimhome)
|
||||||
|
" copy (possibly compressed) tarball to .vim/vimfiles
|
||||||
|
" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||||
|
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||||
|
" call Decho("exe cd ".fnameescape(vimhome))
|
||||||
|
exe "cd ".fnameescape(vimhome)
|
||||||
|
endif
|
||||||
|
" call Decho("getcwd<".getcwd().">")
|
||||||
|
|
||||||
|
" if necessary, decompress the tarball; then, extract it
|
||||||
|
if tartail =~ '\.tgz'
|
||||||
|
if executable("gunzip")
|
||||||
|
silent exe "!gunzip ".shellescape(tartail)
|
||||||
|
elseif executable("gzip")
|
||||||
|
silent exe "!gzip -d ".shellescape(tartail)
|
||||||
|
else
|
||||||
|
echoerr "unable to decompress<".tartail."> on this sytem"
|
||||||
|
if simplify(curdir) != simplify(tarhome)
|
||||||
|
" remove decompressed tarball, restore directory
|
||||||
|
" call Decho("delete(".tartail.".tar)")
|
||||||
|
call delete(tartail.".tar")
|
||||||
|
" call Decho("exe cd ".fnameescape(curdir))
|
||||||
|
exe "cd ".fnameescape(curdir)
|
||||||
|
endif
|
||||||
|
" call Dret("tar#Vimuntar")
|
||||||
|
return
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
let qnameq= g:tar_shq . a:name . g:tar_shq
|
call vimball#Decompress(tartail,0)
|
||||||
endif
|
endif
|
||||||
return qnameq
|
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||||
|
" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
|
||||||
|
call system(extractcmd." ".shellescape(tarbase.".tar"))
|
||||||
|
|
||||||
|
" set up help
|
||||||
|
if filereadable("doc/".tarbase.".txt")
|
||||||
|
" call Decho("exe helptags ".getcwd()."/doc")
|
||||||
|
exe "helptags ".getcwd()."/doc"
|
||||||
|
endif
|
||||||
|
|
||||||
|
if simplify(tarhome) != simplify(vimhome)
|
||||||
|
" remove decompressed tarball, restore directory
|
||||||
|
call delete(vimhome."/".tarbase.".tar")
|
||||||
|
exe "cd ".fnameescape(curdir)
|
||||||
|
endif
|
||||||
|
|
||||||
|
" call Dret("tar#Vimuntar")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" =====================================================================
|
||||||
" Modelines And Restoration: {{{1
|
" Modelines And Restoration: {{{1
|
||||||
let &cpo= s:keepcpo
|
let &cpo= s:keepcpo
|
||||||
unlet s:keepcpo
|
unlet s:keepcpo
|
||||||
|
|||||||
743
runtime/autoload/tohtml.vim
Normal file
743
runtime/autoload/tohtml.vim
Normal file
@@ -0,0 +1,743 @@
|
|||||||
|
" Vim autoload file for the tohtml plugin.
|
||||||
|
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||||
|
" Last Change: 2011 Jan 05
|
||||||
|
"
|
||||||
|
" Additional contributors:
|
||||||
|
"
|
||||||
|
" Original by Bram Moolenaar <Bram@vim.org>
|
||||||
|
" Diff2HTML() added by Christian Brabandt <cb@256bit.org>
|
||||||
|
"
|
||||||
|
" See Mercurial change logs for more!
|
||||||
|
|
||||||
|
" this file uses line continuations
|
||||||
|
let s:cpo_sav = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
|
||||||
|
" Automatically find charsets from all encodings supported natively by Vim. With
|
||||||
|
" the 8bit- and 2byte- prefixes, Vim can actually support more encodings than
|
||||||
|
" this. Let the user specify these however since they won't be supported on
|
||||||
|
" every system. TODO: how? g:html_charsets and g:html_encodings?
|
||||||
|
"
|
||||||
|
" Note, not all of Vim's supported encodings have a charset to use.
|
||||||
|
"
|
||||||
|
" Names in this list are from:
|
||||||
|
" http://www.iana.org/assignments/character-sets
|
||||||
|
" g:tohtml#encoding_to_charset: {{{
|
||||||
|
let g:tohtml#encoding_to_charset = {
|
||||||
|
\ 'latin1' : 'ISO-8859-1',
|
||||||
|
\ 'iso-8859-2' : 'ISO-8859-2',
|
||||||
|
\ 'iso-8859-3' : 'ISO-8859-3',
|
||||||
|
\ 'iso-8859-4' : 'ISO-8859-4',
|
||||||
|
\ 'iso-8859-5' : 'ISO-8859-5',
|
||||||
|
\ 'iso-8859-6' : 'ISO-8859-6',
|
||||||
|
\ 'iso-8859-7' : 'ISO-8859-7',
|
||||||
|
\ 'iso-8859-8' : 'ISO-8859-8',
|
||||||
|
\ 'iso-8859-9' : 'ISO-8859-9',
|
||||||
|
\ 'iso-8859-10' : '',
|
||||||
|
\ 'iso-8859-13' : 'ISO-8859-13',
|
||||||
|
\ 'iso-8859-14' : '',
|
||||||
|
\ 'iso-8859-15' : 'ISO-8859-15',
|
||||||
|
\ 'koi8-r' : 'KOI8-R',
|
||||||
|
\ 'koi8-u' : 'KOI8-U',
|
||||||
|
\ 'macroman' : 'macintosh',
|
||||||
|
\ 'cp437' : '',
|
||||||
|
\ 'cp775' : '',
|
||||||
|
\ 'cp850' : '',
|
||||||
|
\ 'cp852' : '',
|
||||||
|
\ 'cp855' : '',
|
||||||
|
\ 'cp857' : '',
|
||||||
|
\ 'cp860' : '',
|
||||||
|
\ 'cp861' : '',
|
||||||
|
\ 'cp862' : '',
|
||||||
|
\ 'cp863' : '',
|
||||||
|
\ 'cp865' : '',
|
||||||
|
\ 'cp866' : 'IBM866',
|
||||||
|
\ 'cp869' : '',
|
||||||
|
\ 'cp874' : '',
|
||||||
|
\ 'cp1250' : 'windows-1250',
|
||||||
|
\ 'cp1251' : 'windows-1251',
|
||||||
|
\ 'cp1253' : 'windows-1253',
|
||||||
|
\ 'cp1254' : 'windows-1254',
|
||||||
|
\ 'cp1255' : 'windows-1255',
|
||||||
|
\ 'cp1256' : 'windows-1256',
|
||||||
|
\ 'cp1257' : 'windows-1257',
|
||||||
|
\ 'cp1258' : 'windows-1258',
|
||||||
|
\ 'euc-jp' : 'EUC-JP',
|
||||||
|
\ 'sjis' : 'Shift_JIS',
|
||||||
|
\ 'cp932' : 'Shift_JIS',
|
||||||
|
\ 'cp949' : '',
|
||||||
|
\ 'euc-kr' : 'EUC-KR',
|
||||||
|
\ 'cp936' : 'GBK',
|
||||||
|
\ 'euc-cn' : 'GB2312',
|
||||||
|
\ 'big5' : 'Big5',
|
||||||
|
\ 'cp950' : 'Big5',
|
||||||
|
\ 'utf-8' : 'UTF-8',
|
||||||
|
\ 'ucs-2' : 'UTF-8',
|
||||||
|
\ 'ucs-2le' : 'UTF-8',
|
||||||
|
\ 'utf-16' : 'UTF-8',
|
||||||
|
\ 'utf-16le' : 'UTF-8',
|
||||||
|
\ 'ucs-4' : 'UTF-8',
|
||||||
|
\ 'ucs-4le' : 'UTF-8',
|
||||||
|
\ }
|
||||||
|
lockvar g:tohtml#encoding_to_charset
|
||||||
|
" Notes:
|
||||||
|
" 1. All UCS/UTF are converted to UTF-8 because it is much better supported
|
||||||
|
" 2. Any blank spaces are there because Vim supports it but at least one major
|
||||||
|
" web browser does not according to http://wiki.whatwg.org/wiki/Web_Encodings.
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" Only automatically find encodings supported natively by Vim, let the user
|
||||||
|
" specify the encoding if it's not natively supported. This function is only
|
||||||
|
" used when the user specifies the charset, they better know what they are
|
||||||
|
" doing!
|
||||||
|
"
|
||||||
|
" Names in this list are from:
|
||||||
|
" http://www.iana.org/assignments/character-sets
|
||||||
|
" g:tohtml#charset_to_encoding: {{{
|
||||||
|
let g:tohtml#charset_to_encoding = {
|
||||||
|
\ 'iso_8859-1:1987' : 'latin1',
|
||||||
|
\ 'iso-ir-100' : 'latin1',
|
||||||
|
\ 'iso_8859-1' : 'latin1',
|
||||||
|
\ 'iso-8859-1' : 'latin1',
|
||||||
|
\ 'latin1' : 'latin1',
|
||||||
|
\ 'l1' : 'latin1',
|
||||||
|
\ 'ibm819' : 'latin1',
|
||||||
|
\ 'cp819' : 'latin1',
|
||||||
|
\ 'csisolatin1' : 'latin1',
|
||||||
|
\ 'iso_8859-2:1987' : 'iso-8859-2',
|
||||||
|
\ 'iso-ir-101' : 'iso-8859-2',
|
||||||
|
\ 'iso_8859-2' : 'iso-8859-2',
|
||||||
|
\ 'iso-8859-2' : 'iso-8859-2',
|
||||||
|
\ 'latin2' : 'iso-8859-2',
|
||||||
|
\ 'l2' : 'iso-8859-2',
|
||||||
|
\ 'csisolatin2' : 'iso-8859-2',
|
||||||
|
\ 'iso_8859-3:1988' : 'iso-8859-3',
|
||||||
|
\ 'iso-ir-109' : 'iso-8859-3',
|
||||||
|
\ 'iso_8859-3' : 'iso-8859-3',
|
||||||
|
\ 'iso-8859-3' : 'iso-8859-3',
|
||||||
|
\ 'latin3' : 'iso-8859-3',
|
||||||
|
\ 'l3' : 'iso-8859-3',
|
||||||
|
\ 'csisolatin3' : 'iso-8859-3',
|
||||||
|
\ 'iso_8859-4:1988' : 'iso-8859-4',
|
||||||
|
\ 'iso-ir-110' : 'iso-8859-4',
|
||||||
|
\ 'iso_8859-4' : 'iso-8859-4',
|
||||||
|
\ 'iso-8859-4' : 'iso-8859-4',
|
||||||
|
\ 'latin4' : 'iso-8859-4',
|
||||||
|
\ 'l4' : 'iso-8859-4',
|
||||||
|
\ 'csisolatin4' : 'iso-8859-4',
|
||||||
|
\ 'iso_8859-5:1988' : 'iso-8859-5',
|
||||||
|
\ 'iso-ir-144' : 'iso-8859-5',
|
||||||
|
\ 'iso_8859-5' : 'iso-8859-5',
|
||||||
|
\ 'iso-8859-5' : 'iso-8859-5',
|
||||||
|
\ 'cyrillic' : 'iso-8859-5',
|
||||||
|
\ 'csisolatincyrillic' : 'iso-8859-5',
|
||||||
|
\ 'iso_8859-6:1987' : 'iso-8859-6',
|
||||||
|
\ 'iso-ir-127' : 'iso-8859-6',
|
||||||
|
\ 'iso_8859-6' : 'iso-8859-6',
|
||||||
|
\ 'iso-8859-6' : 'iso-8859-6',
|
||||||
|
\ 'ecma-114' : 'iso-8859-6',
|
||||||
|
\ 'asmo-708' : 'iso-8859-6',
|
||||||
|
\ 'arabic' : 'iso-8859-6',
|
||||||
|
\ 'csisolatinarabic' : 'iso-8859-6',
|
||||||
|
\ 'iso_8859-7:1987' : 'iso-8859-7',
|
||||||
|
\ 'iso-ir-126' : 'iso-8859-7',
|
||||||
|
\ 'iso_8859-7' : 'iso-8859-7',
|
||||||
|
\ 'iso-8859-7' : 'iso-8859-7',
|
||||||
|
\ 'elot_928' : 'iso-8859-7',
|
||||||
|
\ 'ecma-118' : 'iso-8859-7',
|
||||||
|
\ 'greek' : 'iso-8859-7',
|
||||||
|
\ 'greek8' : 'iso-8859-7',
|
||||||
|
\ 'csisolatingreek' : 'iso-8859-7',
|
||||||
|
\ 'iso_8859-8:1988' : 'iso-8859-8',
|
||||||
|
\ 'iso-ir-138' : 'iso-8859-8',
|
||||||
|
\ 'iso_8859-8' : 'iso-8859-8',
|
||||||
|
\ 'iso-8859-8' : 'iso-8859-8',
|
||||||
|
\ 'hebrew' : 'iso-8859-8',
|
||||||
|
\ 'csisolatinhebrew' : 'iso-8859-8',
|
||||||
|
\ 'iso_8859-9:1989' : 'iso-8859-9',
|
||||||
|
\ 'iso-ir-148' : 'iso-8859-9',
|
||||||
|
\ 'iso_8859-9' : 'iso-8859-9',
|
||||||
|
\ 'iso-8859-9' : 'iso-8859-9',
|
||||||
|
\ 'latin5' : 'iso-8859-9',
|
||||||
|
\ 'l5' : 'iso-8859-9',
|
||||||
|
\ 'csisolatin5' : 'iso-8859-9',
|
||||||
|
\ 'iso-8859-10' : 'iso-8859-10',
|
||||||
|
\ 'iso-ir-157' : 'iso-8859-10',
|
||||||
|
\ 'l6' : 'iso-8859-10',
|
||||||
|
\ 'iso_8859-10:1992' : 'iso-8859-10',
|
||||||
|
\ 'csisolatin6' : 'iso-8859-10',
|
||||||
|
\ 'latin6' : 'iso-8859-10',
|
||||||
|
\ 'iso-8859-13' : 'iso-8859-13',
|
||||||
|
\ 'iso-8859-14' : 'iso-8859-14',
|
||||||
|
\ 'iso-ir-199' : 'iso-8859-14',
|
||||||
|
\ 'iso_8859-14:1998' : 'iso-8859-14',
|
||||||
|
\ 'iso_8859-14' : 'iso-8859-14',
|
||||||
|
\ 'latin8' : 'iso-8859-14',
|
||||||
|
\ 'iso-celtic' : 'iso-8859-14',
|
||||||
|
\ 'l8' : 'iso-8859-14',
|
||||||
|
\ 'iso-8859-15' : 'iso-8859-15',
|
||||||
|
\ 'iso_8859-15' : 'iso-8859-15',
|
||||||
|
\ 'latin-9' : 'iso-8859-15',
|
||||||
|
\ 'koi8-r' : 'koi8-r',
|
||||||
|
\ 'cskoi8r' : 'koi8-r',
|
||||||
|
\ 'koi8-u' : 'koi8-u',
|
||||||
|
\ 'macintosh' : 'macroman',
|
||||||
|
\ 'mac' : 'macroman',
|
||||||
|
\ 'csmacintosh' : 'macroman',
|
||||||
|
\ 'ibm437' : 'cp437',
|
||||||
|
\ 'cp437' : 'cp437',
|
||||||
|
\ '437' : 'cp437',
|
||||||
|
\ 'cspc8codepage437' : 'cp437',
|
||||||
|
\ 'ibm775' : 'cp775',
|
||||||
|
\ 'cp775' : 'cp775',
|
||||||
|
\ 'cspc775baltic' : 'cp775',
|
||||||
|
\ 'ibm850' : 'cp850',
|
||||||
|
\ 'cp850' : 'cp850',
|
||||||
|
\ '850' : 'cp850',
|
||||||
|
\ 'cspc850multilingual' : 'cp850',
|
||||||
|
\ 'ibm852' : 'cp852',
|
||||||
|
\ 'cp852' : 'cp852',
|
||||||
|
\ '852' : 'cp852',
|
||||||
|
\ 'cspcp852' : 'cp852',
|
||||||
|
\ 'ibm855' : 'cp855',
|
||||||
|
\ 'cp855' : 'cp855',
|
||||||
|
\ '855' : 'cp855',
|
||||||
|
\ 'csibm855' : 'cp855',
|
||||||
|
\ 'ibm857' : 'cp857',
|
||||||
|
\ 'cp857' : 'cp857',
|
||||||
|
\ '857' : 'cp857',
|
||||||
|
\ 'csibm857' : 'cp857',
|
||||||
|
\ 'ibm860' : 'cp860',
|
||||||
|
\ 'cp860' : 'cp860',
|
||||||
|
\ '860' : 'cp860',
|
||||||
|
\ 'csibm860' : 'cp860',
|
||||||
|
\ 'ibm861' : 'cp861',
|
||||||
|
\ 'cp861' : 'cp861',
|
||||||
|
\ '861' : 'cp861',
|
||||||
|
\ 'cp-is' : 'cp861',
|
||||||
|
\ 'csibm861' : 'cp861',
|
||||||
|
\ 'ibm862' : 'cp862',
|
||||||
|
\ 'cp862' : 'cp862',
|
||||||
|
\ '862' : 'cp862',
|
||||||
|
\ 'cspc862latinhebrew' : 'cp862',
|
||||||
|
\ 'ibm863' : 'cp863',
|
||||||
|
\ 'cp863' : 'cp863',
|
||||||
|
\ '863' : 'cp863',
|
||||||
|
\ 'csibm863' : 'cp863',
|
||||||
|
\ 'ibm865' : 'cp865',
|
||||||
|
\ 'cp865' : 'cp865',
|
||||||
|
\ '865' : 'cp865',
|
||||||
|
\ 'csibm865' : 'cp865',
|
||||||
|
\ 'ibm866' : 'cp866',
|
||||||
|
\ 'cp866' : 'cp866',
|
||||||
|
\ '866' : 'cp866',
|
||||||
|
\ 'csibm866' : 'cp866',
|
||||||
|
\ 'ibm869' : 'cp869',
|
||||||
|
\ 'cp869' : 'cp869',
|
||||||
|
\ '869' : 'cp869',
|
||||||
|
\ 'cp-gr' : 'cp869',
|
||||||
|
\ 'csibm869' : 'cp869',
|
||||||
|
\ 'windows-1250' : 'cp1250',
|
||||||
|
\ 'windows-1251' : 'cp1251',
|
||||||
|
\ 'windows-1253' : 'cp1253',
|
||||||
|
\ 'windows-1254' : 'cp1254',
|
||||||
|
\ 'windows-1255' : 'cp1255',
|
||||||
|
\ 'windows-1256' : 'cp1256',
|
||||||
|
\ 'windows-1257' : 'cp1257',
|
||||||
|
\ 'windows-1258' : 'cp1258',
|
||||||
|
\ 'extended_unix_code_packed_format_for_japanese' : 'euc-jp',
|
||||||
|
\ 'cseucpkdfmtjapanese' : 'euc-jp',
|
||||||
|
\ 'euc-jp' : 'euc-jp',
|
||||||
|
\ 'shift_jis' : 'sjis',
|
||||||
|
\ 'ms_kanji' : 'sjis',
|
||||||
|
\ 'sjis' : 'sjis',
|
||||||
|
\ 'csshiftjis' : 'sjis',
|
||||||
|
\ 'ibm-thai' : 'cp874',
|
||||||
|
\ 'csibmthai' : 'cp874',
|
||||||
|
\ 'ks_c_5601-1987' : 'cp949',
|
||||||
|
\ 'iso-ir-149' : 'cp949',
|
||||||
|
\ 'ks_c_5601-1989' : 'cp949',
|
||||||
|
\ 'ksc_5601' : 'cp949',
|
||||||
|
\ 'korean' : 'cp949',
|
||||||
|
\ 'csksc56011987' : 'cp949',
|
||||||
|
\ 'euc-kr' : 'euc-kr',
|
||||||
|
\ 'cseuckr' : 'euc-kr',
|
||||||
|
\ 'gbk' : 'cp936',
|
||||||
|
\ 'cp936' : 'cp936',
|
||||||
|
\ 'ms936' : 'cp936',
|
||||||
|
\ 'windows-936' : 'cp936',
|
||||||
|
\ 'gb_2312-80' : 'euc-cn',
|
||||||
|
\ 'iso-ir-58' : 'euc-cn',
|
||||||
|
\ 'chinese' : 'euc-cn',
|
||||||
|
\ 'csiso58gb231280' : 'euc-cn',
|
||||||
|
\ 'big5' : 'big5',
|
||||||
|
\ 'csbig5' : 'big5',
|
||||||
|
\ 'utf-8' : 'utf-8',
|
||||||
|
\ 'iso-10646-ucs-2' : 'ucs-2',
|
||||||
|
\ 'csunicode' : 'ucs-2',
|
||||||
|
\ 'utf-16' : 'utf-16',
|
||||||
|
\ 'utf-16be' : 'utf-16',
|
||||||
|
\ 'utf-16le' : 'utf-16le',
|
||||||
|
\ 'utf-32' : 'ucs-4',
|
||||||
|
\ 'utf-32be' : 'ucs-4',
|
||||||
|
\ 'utf-32le' : 'ucs-4le',
|
||||||
|
\ 'iso-10646-ucs-4' : 'ucs-4',
|
||||||
|
\ 'csucs4' : 'ucs-4'
|
||||||
|
\ }
|
||||||
|
lockvar g:tohtml#charset_to_encoding
|
||||||
|
"}}}
|
||||||
|
|
||||||
|
func! tohtml#Convert2HTML(line1, line2) "{{{
|
||||||
|
let s:settings = tohtml#GetUserSettings()
|
||||||
|
|
||||||
|
if !&diff || s:settings.diff_one_file "{{{
|
||||||
|
if a:line2 >= a:line1
|
||||||
|
let g:html_start_line = a:line1
|
||||||
|
let g:html_end_line = a:line2
|
||||||
|
else
|
||||||
|
let g:html_start_line = a:line2
|
||||||
|
let g:html_end_line = a:line1
|
||||||
|
endif
|
||||||
|
runtime syntax/2html.vim "}}}
|
||||||
|
else "{{{
|
||||||
|
let win_list = []
|
||||||
|
let buf_list = []
|
||||||
|
windo | if &diff | call add(win_list, winbufnr(0)) | endif
|
||||||
|
let s:settings.whole_filler = 1
|
||||||
|
let g:html_diff_win_num = 0
|
||||||
|
for window in win_list
|
||||||
|
" switch to the next buffer to convert
|
||||||
|
exe ":" . bufwinnr(window) . "wincmd w"
|
||||||
|
|
||||||
|
" figure out whether current charset and encoding will work, if not
|
||||||
|
" default to UTF-8
|
||||||
|
if !exists('g:html_use_encoding') &&
|
||||||
|
\ (&l:fileencoding!='' && &l:fileencoding!=s:settings.vim_encoding ||
|
||||||
|
\ &l:fileencoding=='' && &encoding!=s:settings.vim_encoding)
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg "TOhtml: mismatched file encodings in Diff buffers, using UTF-8"
|
||||||
|
echohl None
|
||||||
|
let s:settings.vim_encoding = 'utf-8'
|
||||||
|
let s:settings.encoding = 'UTF-8'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" set up for diff-mode conversion
|
||||||
|
let g:html_start_line = 1
|
||||||
|
let g:html_end_line = line('$')
|
||||||
|
let g:html_diff_win_num += 1
|
||||||
|
|
||||||
|
" convert this file
|
||||||
|
runtime syntax/2html.vim
|
||||||
|
|
||||||
|
" remember the HTML buffer for later combination
|
||||||
|
call add(buf_list, bufnr('%'))
|
||||||
|
endfor
|
||||||
|
unlet g:html_diff_win_num
|
||||||
|
call tohtml#Diff2HTML(win_list, buf_list)
|
||||||
|
endif "}}}
|
||||||
|
|
||||||
|
unlet g:html_start_line
|
||||||
|
unlet g:html_end_line
|
||||||
|
unlet s:settings
|
||||||
|
endfunc "}}}
|
||||||
|
|
||||||
|
func! tohtml#Diff2HTML(win_list, buf_list) "{{{
|
||||||
|
let xml_line = ""
|
||||||
|
let tag_close = '>'
|
||||||
|
|
||||||
|
let s:old_paste = &paste
|
||||||
|
set paste
|
||||||
|
let s:old_magic = &magic
|
||||||
|
set magic
|
||||||
|
|
||||||
|
if s:settings.use_xhtml
|
||||||
|
if s:settings.encoding != ""
|
||||||
|
let xml_line = "<?xml version=\"1.0\" encoding=\"" . s:settings.encoding . "\"?>"
|
||||||
|
else
|
||||||
|
let xml_line = "<?xml version=\"1.0\"?>"
|
||||||
|
endif
|
||||||
|
let tag_close = ' />'
|
||||||
|
endif
|
||||||
|
|
||||||
|
let style = [s:settings.use_xhtml ? "" : '-->']
|
||||||
|
let body_line = ''
|
||||||
|
|
||||||
|
let html = []
|
||||||
|
if s:settings.use_xhtml
|
||||||
|
call add(html, xml_line)
|
||||||
|
endif
|
||||||
|
if s:settings.use_xhtml
|
||||||
|
call add(html, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">")
|
||||||
|
call add(html, '<html xmlns="http://www.w3.org/1999/xhtml">')
|
||||||
|
elseif s:settings.use_css && !s:settings.no_pre
|
||||||
|
call add(html, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">")
|
||||||
|
call add(html, '<html>')
|
||||||
|
else
|
||||||
|
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
|
||||||
|
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
|
||||||
|
call add(html, '<html>')
|
||||||
|
endif
|
||||||
|
call add(html, '<head>')
|
||||||
|
|
||||||
|
" include encoding as close to the top as possible, but only if not already
|
||||||
|
" contained in XML information
|
||||||
|
if s:settings.encoding != "" && !s:settings.use_xhtml
|
||||||
|
call add(html, "<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:settings.encoding . '"' . tag_close)
|
||||||
|
endif
|
||||||
|
|
||||||
|
call add(html, '<title>diff</title>')
|
||||||
|
call add(html, '<meta name="Generator" content="Vim/'.v:version/100.'.'.v:version%100.'"'.tag_close)
|
||||||
|
call add(html, '<meta name="plugin-version" content="'.g:loaded_2html_plugin.'"'.tag_close)
|
||||||
|
call add(html, '<meta name="settings" content="'.
|
||||||
|
\ join(filter(keys(s:settings),'s:settings[v:val]'),',').
|
||||||
|
\ '"'.tag_close)
|
||||||
|
|
||||||
|
call add(html, '</head>')
|
||||||
|
let body_line_num = len(html)
|
||||||
|
call add(html, '<body>')
|
||||||
|
call add(html, '<table border="1" width="100%">')
|
||||||
|
|
||||||
|
call add(html, '<tr>')
|
||||||
|
for buf in a:win_list
|
||||||
|
call add(html, '<th>'.bufname(buf).'</th>')
|
||||||
|
endfor
|
||||||
|
call add(html, '</tr><tr>')
|
||||||
|
|
||||||
|
let diff_style_start = 0
|
||||||
|
let insert_index = 0
|
||||||
|
|
||||||
|
for buf in a:buf_list
|
||||||
|
let temp = []
|
||||||
|
exe bufwinnr(buf) . 'wincmd w'
|
||||||
|
|
||||||
|
" If text is folded because of user foldmethod settings, etc. we don't want
|
||||||
|
" to act on everything in a fold by mistake.
|
||||||
|
setlocal nofoldenable
|
||||||
|
|
||||||
|
" When not using CSS or when using xhtml, the <body> line can be important.
|
||||||
|
" Assume it will be the same for all buffers and grab it from the first
|
||||||
|
" buffer. Similarly, need to grab the body end line as well.
|
||||||
|
if body_line == ''
|
||||||
|
1
|
||||||
|
call search('<body')
|
||||||
|
let body_line = getline('.')
|
||||||
|
$
|
||||||
|
call search('</body>', 'b')
|
||||||
|
let s:body_end_line = getline('.')
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Grab the style information. Some of this will be duplicated so only insert
|
||||||
|
" it if it's not already there. {{{
|
||||||
|
1
|
||||||
|
let style_start = search('^<style type="text/css">')
|
||||||
|
1
|
||||||
|
let style_end = search('^</style>')
|
||||||
|
if style_start > 0 && style_end > 0
|
||||||
|
let buf_styles = getline(style_start + 1, style_end - 1)
|
||||||
|
for a_style in buf_styles
|
||||||
|
if index(style, a_style) == -1
|
||||||
|
if diff_style_start == 0
|
||||||
|
if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
|
||||||
|
let diff_style_start = len(style)-1
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
call insert(style, a_style, insert_index)
|
||||||
|
let insert_index += 1
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endif " }}}
|
||||||
|
|
||||||
|
" everything new will get added before the diff styles so diff highlight
|
||||||
|
" properly overrides normal highlight
|
||||||
|
if diff_style_start != 0
|
||||||
|
let insert_index = diff_style_start
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Delete those parts that are not needed so
|
||||||
|
" we can include the rest into the resulting table
|
||||||
|
1,/^<body/d_
|
||||||
|
$
|
||||||
|
?</body>?,$d_
|
||||||
|
let temp = getline(1,'$')
|
||||||
|
" undo deletion of start and end part
|
||||||
|
" so we can later save the file as valid html
|
||||||
|
" TODO: restore using grabbed lines if undolevel is 1?
|
||||||
|
normal 2u
|
||||||
|
if s:settings.use_css
|
||||||
|
call add(html, '<td valign="top"><div>')
|
||||||
|
elseif s:settings.use_xhtml
|
||||||
|
call add(html, '<td nowrap="nowrap" valign="top"><div>')
|
||||||
|
else
|
||||||
|
call add(html, '<td nowrap valign="top"><div>')
|
||||||
|
endif
|
||||||
|
let html += temp
|
||||||
|
call add(html, '</div></td>')
|
||||||
|
|
||||||
|
" Close this buffer
|
||||||
|
" TODO: the comment above says we're going to allow saving the file
|
||||||
|
" later...but here we discard it?
|
||||||
|
quit!
|
||||||
|
endfor
|
||||||
|
|
||||||
|
let html[body_line_num] = body_line
|
||||||
|
|
||||||
|
call add(html, '</tr>')
|
||||||
|
call add(html, '</table>')
|
||||||
|
call add(html, s:body_end_line)
|
||||||
|
call add(html, '</html>')
|
||||||
|
|
||||||
|
let i = 1
|
||||||
|
let name = "Diff" . (s:settings.use_xhtml ? ".xhtml" : ".html")
|
||||||
|
" Find an unused file name if current file name is already in use
|
||||||
|
while filereadable(name)
|
||||||
|
let name = substitute(name, '\d*\.x\?html$', '', '') . i . '.' . fnamemodify(copy(name), ":t:e")
|
||||||
|
let i += 1
|
||||||
|
endwhile
|
||||||
|
exe "topleft new " . name
|
||||||
|
setlocal modifiable
|
||||||
|
|
||||||
|
" just in case some user autocmd creates content in the new buffer, make sure
|
||||||
|
" it is empty before proceeding
|
||||||
|
%d
|
||||||
|
|
||||||
|
" set the fileencoding to match the charset we'll be using
|
||||||
|
let &l:fileencoding=s:settings.vim_encoding
|
||||||
|
|
||||||
|
" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
|
||||||
|
" order mark is highly recommend on the web when using multibyte encodings. But,
|
||||||
|
" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
|
||||||
|
" determine when it is actually inserted.
|
||||||
|
if s:settings.vim_encoding == 'utf-8'
|
||||||
|
setlocal nobomb
|
||||||
|
else
|
||||||
|
setlocal bomb
|
||||||
|
endif
|
||||||
|
|
||||||
|
call append(0, html)
|
||||||
|
|
||||||
|
if len(style) > 0
|
||||||
|
1
|
||||||
|
let style_start = search('^</head>')-1
|
||||||
|
|
||||||
|
" Insert javascript to toggle matching folds open and closed in all windows,
|
||||||
|
" if dynamic folding is active. {{{
|
||||||
|
if s:settings.dynamic_folds
|
||||||
|
call append(style_start, [
|
||||||
|
\ "<script type='text/javascript'>",
|
||||||
|
\ s:settings.use_xhtml ? '//<![CDATA[' : " <!--",
|
||||||
|
\ " function toggleFold(objID)",
|
||||||
|
\ " {",
|
||||||
|
\ " for (win_num = 1; win_num <= ".len(a:buf_list)."; win_num++)",
|
||||||
|
\ " {",
|
||||||
|
\ " var fold;",
|
||||||
|
\ ' fold = document.getElementById("win"+win_num+objID);',
|
||||||
|
\ " if(fold.className == 'closed-fold')",
|
||||||
|
\ " {",
|
||||||
|
\ " fold.className = 'open-fold';",
|
||||||
|
\ " }",
|
||||||
|
\ " else if (fold.className == 'open-fold')",
|
||||||
|
\ " {",
|
||||||
|
\ " fold.className = 'closed-fold';",
|
||||||
|
\ " }",
|
||||||
|
\ " }",
|
||||||
|
\ " }",
|
||||||
|
\ s:settings.use_xhtml ? '//]]>' : " -->",
|
||||||
|
\ "</script>"
|
||||||
|
\ ])
|
||||||
|
endif "}}}
|
||||||
|
|
||||||
|
" Insert styles from all the generated html documents and additional styles
|
||||||
|
" for the table-based layout of the side-by-side diff. The diff should take
|
||||||
|
" up the full browser window (but not more), and be static in size,
|
||||||
|
" horizontally scrollable when the lines are too long. Otherwise, the diff
|
||||||
|
" is pretty useless for really long lines. {{{
|
||||||
|
if s:settings.use_css
|
||||||
|
call append(style_start,
|
||||||
|
\ ['<style type="text/css">']+
|
||||||
|
\ style+
|
||||||
|
\ [ s:settings.use_xhtml ? '' : '<!--',
|
||||||
|
\ 'table { table-layout: fixed; }',
|
||||||
|
\ 'html, body, table, tbody { width: 100%; margin: 0; padding: 0; }',
|
||||||
|
\ 'th, td { width: '.printf("%.1f",100.0/len(a:win_list)).'%; }',
|
||||||
|
\ 'td div { overflow: auto; }',
|
||||||
|
\ s:settings.use_xhtml ? '' : '-->',
|
||||||
|
\ '</style>'
|
||||||
|
\])
|
||||||
|
endif "}}}
|
||||||
|
endif
|
||||||
|
|
||||||
|
let &paste = s:old_paste
|
||||||
|
let &magic = s:old_magic
|
||||||
|
endfunc "}}}
|
||||||
|
|
||||||
|
" Gets a single user option and sets it in the passed-in Dict, or gives it the
|
||||||
|
" default value if the option doesn't actually exist.
|
||||||
|
func! tohtml#GetOption(settings, option, default) "{{{
|
||||||
|
if exists('g:html_'.a:option)
|
||||||
|
let a:settings[a:option] = g:html_{a:option}
|
||||||
|
else
|
||||||
|
let a:settings[a:option] = a:default
|
||||||
|
endif
|
||||||
|
endfunc "}}}
|
||||||
|
|
||||||
|
" returns a Dict containing the values of all user options for 2html, including
|
||||||
|
" default values for those not given an explicit value by the user. Discards the
|
||||||
|
" html_ prefix of the option for nicer looking code.
|
||||||
|
func! tohtml#GetUserSettings() "{{{
|
||||||
|
if exists('s:settings')
|
||||||
|
" just restore the known options if we've already retrieved them
|
||||||
|
return s:settings
|
||||||
|
else
|
||||||
|
" otherwise figure out which options are set
|
||||||
|
let user_settings = {}
|
||||||
|
|
||||||
|
" Define the correct option if the old option name exists and we haven't
|
||||||
|
" already defined the correct one. Maybe I'll put out a warnig message about
|
||||||
|
" this sometime and remove the old option entirely at some even later time,
|
||||||
|
" but for now just silently accept the old option.
|
||||||
|
if exists('g:use_xhtml') && !exists("g:html_use_xhtml")
|
||||||
|
let g:html_use_xhtml = g:use_xhtml
|
||||||
|
endif
|
||||||
|
|
||||||
|
" get current option settings with appropriate defaults {{{
|
||||||
|
call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") )
|
||||||
|
call tohtml#GetOption(user_settings, 'diff_one_file', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'number_lines', &number )
|
||||||
|
call tohtml#GetOption(user_settings, 'use_css', 1 )
|
||||||
|
call tohtml#GetOption(user_settings, 'ignore_conceal', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'ignore_folding', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'dynamic_folds', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'no_pre', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
||||||
|
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" override those settings that need it {{{
|
||||||
|
|
||||||
|
" hover opening implies dynamic folding
|
||||||
|
if user_settings.hover_unfold
|
||||||
|
let user_settings.dynamic_folds = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" ignore folding overrides dynamic folding
|
||||||
|
if user_settings.ignore_folding && user_settings.dynamic_folds
|
||||||
|
let user_settings.dynamic_folds = 0
|
||||||
|
let user_settings.hover_unfold = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
" dynamic folding with no foldcolumn implies hover opens
|
||||||
|
if user_settings.dynamic_folds && user_settings.no_foldcolumn
|
||||||
|
let user_settings.hover_unfold = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" dynamic folding implies css
|
||||||
|
if user_settings.dynamic_folds
|
||||||
|
let user_settings.use_css = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" if we're not using CSS we cannot use a pre section because <font> tags
|
||||||
|
" aren't allowed inside a <pre> block
|
||||||
|
if !user_settings.use_css
|
||||||
|
let user_settings.no_pre = 1
|
||||||
|
endif "}}}
|
||||||
|
|
||||||
|
" set up expand_tabs option after all the overrides so we know the
|
||||||
|
" appropriate defaults {{{
|
||||||
|
if user_settings.no_pre == 0
|
||||||
|
call tohtml#GetOption(user_settings,
|
||||||
|
\ 'expand_tabs',
|
||||||
|
\ &expandtab || &ts != 8 || user_settings.number_lines ||
|
||||||
|
\ (user_settings.dynamic_folds && !user_settings.no_foldcolumn))
|
||||||
|
else
|
||||||
|
let user_settings.expand_tabs = 1
|
||||||
|
endif
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
if exists("g:html_use_encoding") "{{{
|
||||||
|
" user specified the desired MIME charset, figure out proper
|
||||||
|
" 'fileencoding' from it or warn the user if we cannot
|
||||||
|
let user_settings.encoding = g:html_use_encoding
|
||||||
|
let user_settings.vim_encoding = tohtml#EncodingFromCharset(g:html_use_encoding)
|
||||||
|
if user_settings.vim_encoding == ''
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg "TOhtml: file encoding for"
|
||||||
|
\ g:html_use_encoding
|
||||||
|
\ "unknown, please set 'fileencoding'"
|
||||||
|
echohl None
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
" Figure out proper MIME charset from 'fileencoding' if possible
|
||||||
|
if &l:fileencoding != ''
|
||||||
|
let user_settings.vim_encoding = &l:fileencoding
|
||||||
|
call tohtml#CharsetFromEncoding(user_settings)
|
||||||
|
endif
|
||||||
|
|
||||||
|
" else from 'encoding' if possible
|
||||||
|
if &l:fileencoding == '' || user_settings.encoding == ''
|
||||||
|
let user_settings.vim_encoding = &encoding
|
||||||
|
call tohtml#CharsetFromEncoding(user_settings)
|
||||||
|
endif
|
||||||
|
|
||||||
|
" else default to UTF-8 and warn user
|
||||||
|
if user_settings.encoding == ''
|
||||||
|
let user_settings.vim_encoding = 'utf-8'
|
||||||
|
let user_settings.encoding = 'UTF-8'
|
||||||
|
echohl WarningMsg
|
||||||
|
echomsg "TOhtml: couldn't determine MIME charset, using UTF-8"
|
||||||
|
echohl None
|
||||||
|
endif
|
||||||
|
endif "}}}
|
||||||
|
|
||||||
|
" TODO: font
|
||||||
|
|
||||||
|
return user_settings
|
||||||
|
endif
|
||||||
|
endfunc "}}}
|
||||||
|
|
||||||
|
" get the proper HTML charset name from a Vim encoding option.
|
||||||
|
function! tohtml#CharsetFromEncoding(settings) "{{{
|
||||||
|
let l:vim_encoding = a:settings.vim_encoding
|
||||||
|
if exists('g:html_charset_override') && has_key(g:html_charset_override, l:vim_encoding)
|
||||||
|
let a:settings.encoding = g:html_charset_override[l:vim_encoding]
|
||||||
|
else
|
||||||
|
if l:vim_encoding =~ '^8bit\|^2byte'
|
||||||
|
" 8bit- and 2byte- prefixes are to indicate encodings available on the
|
||||||
|
" system that Vim will convert with iconv(), look up just the encoding name,
|
||||||
|
" not Vim's prefix.
|
||||||
|
let l:vim_encoding = substitute(l:vim_encoding, '^8bit-\|^2byte-', '', '')
|
||||||
|
endif
|
||||||
|
if has_key(g:tohtml#encoding_to_charset, l:vim_encoding)
|
||||||
|
let a:settings.encoding = g:tohtml#encoding_to_charset[l:vim_encoding]
|
||||||
|
else
|
||||||
|
let a:settings.encoding = ""
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if a:settings.encoding != ""
|
||||||
|
let l:vim_encoding = tohtml#EncodingFromCharset(a:settings.encoding)
|
||||||
|
if l:vim_encoding != ""
|
||||||
|
" if the Vim encoding to HTML encoding conversion is set up (by default or
|
||||||
|
" by the user) to convert to a different encoding, we need to also change
|
||||||
|
" the Vim encoding of the new buffer
|
||||||
|
let a:settings.vim_encoding = l:vim_encoding
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfun "}}}
|
||||||
|
|
||||||
|
" Get the proper Vim encoding option setting from an HTML charset name.
|
||||||
|
function! tohtml#EncodingFromCharset(encoding) "{{{
|
||||||
|
if exists('g:html_encoding_override') && has_key(g:html_encoding_override, a:encoding)
|
||||||
|
return g:html_encoding_override[a:encoding]
|
||||||
|
elseif has_key(g:tohtml#charset_to_encoding, tolower(a:encoding))
|
||||||
|
return g:tohtml#charset_to_encoding[tolower(a:encoding)]
|
||||||
|
else
|
||||||
|
return ""
|
||||||
|
endif
|
||||||
|
endfun "}}}
|
||||||
|
|
||||||
|
let &cpo = s:cpo_sav
|
||||||
|
unlet s:cpo_sav
|
||||||
|
|
||||||
|
" Make sure any patches will probably use consistent indent
|
||||||
|
" vim: ts=8 sw=2 sts=2 noet fdm=marker
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
" vimball.vim : construct a file containing both paths and files
|
" vimball.vim : construct a file containing both paths and files
|
||||||
" Author: Charles E. Campbell, Jr.
|
" Author: Charles E. Campbell, Jr.
|
||||||
" Date: Jul 30, 2008
|
" Date: Apr 12, 2010
|
||||||
" Version: 29
|
" Version: 31
|
||||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||||
" Copyright: (c) 2004-2008 by Charles E. Campbell, Jr.
|
" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.
|
||||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||||
" No warranty, express or implied.
|
" No warranty, express or implied.
|
||||||
@@ -11,11 +11,17 @@
|
|||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Load Once: {{{1
|
" Load Once: {{{1
|
||||||
if &cp || exists("g:loaded_vimball") || v:version < 700
|
if &cp || exists("g:loaded_vimball")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let g:loaded_vimball = "v31"
|
||||||
|
if v:version < 702
|
||||||
|
echohl WarningMsg
|
||||||
|
echo "***warning*** this version of vimball needs vim 7.2"
|
||||||
|
echohl Normal
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
let s:keepcpo= &cpo
|
let s:keepcpo= &cpo
|
||||||
let g:loaded_vimball = "v29"
|
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
"DechoTabOn
|
"DechoTabOn
|
||||||
|
|
||||||
@@ -52,30 +58,6 @@ if !exists("s:USAGE")
|
|||||||
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
|
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" set up shell quoting character
|
|
||||||
if exists("g:vimball_shq") && !exists("g:netrw_shq")
|
|
||||||
let g:netrw_shq= g:vimball_shq
|
|
||||||
endif
|
|
||||||
if !exists("g:netrw_shq")
|
|
||||||
if exists("&shq") && &shq != ""
|
|
||||||
let g:netrw_shq= &shq
|
|
||||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
|
||||||
if g:netrw_cygwin
|
|
||||||
let g:netrw_shq= "'"
|
|
||||||
else
|
|
||||||
let g:netrw_shq= '"'
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let g:netrw_shq= "'"
|
|
||||||
endif
|
|
||||||
" call Decho("g:netrw_shq<".g:netrw_shq.">")
|
|
||||||
endif
|
|
||||||
|
|
||||||
" set up escape string (used to protect paths)
|
|
||||||
if !exists("g:vimball_path_escape")
|
|
||||||
let g:vimball_path_escape= ' ;#%'
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" =====================================================================
|
" =====================================================================
|
||||||
@@ -106,8 +88,8 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
|||||||
let vbname= vbname.'.vba'
|
let vbname= vbname.'.vba'
|
||||||
endif
|
endif
|
||||||
" call Decho("vbname<".vbname.">")
|
" call Decho("vbname<".vbname.">")
|
||||||
if a:1 =~ '[\/]'
|
if !a:writelevel && a:1 =~ '[\/]'
|
||||||
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes")
|
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
|
||||||
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
|
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@@ -125,7 +107,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
|||||||
let home= expand(a:2)
|
let home= expand(a:2)
|
||||||
else
|
else
|
||||||
" use first existing directory from rtp
|
" use first existing directory from rtp
|
||||||
let home= s:VimballHome()
|
let home= vimball#VimballHome()
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" save current directory
|
" save current directory
|
||||||
@@ -218,7 +200,7 @@ fun! vimball#Vimball(really,...)
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
|
if getline(1) !~ '^" Vimball Archiver'
|
||||||
echoerr "(Vimball) The current file does not appear to be a Vimball!"
|
echoerr "(Vimball) The current file does not appear to be a Vimball!"
|
||||||
" call Dret("vimball#Vimball")
|
" call Dret("vimball#Vimball")
|
||||||
return
|
return
|
||||||
@@ -240,7 +222,7 @@ fun! vimball#Vimball(really,...)
|
|||||||
if a:0 > 0
|
if a:0 > 0
|
||||||
let home= expand(a:1)
|
let home= expand(a:1)
|
||||||
else
|
else
|
||||||
let home= s:VimballHome()
|
let home= vimball#VimballHome()
|
||||||
endif
|
endif
|
||||||
" call Decho("home<".home.">")
|
" call Decho("home<".home.">")
|
||||||
|
|
||||||
@@ -272,7 +254,9 @@ fun! vimball#Vimball(really,...)
|
|||||||
while 1 < linenr && linenr < line("$")
|
while 1 < linenr && linenr < line("$")
|
||||||
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
|
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
|
||||||
let fname = substitute(fname,'\\','/','g')
|
let fname = substitute(fname,'\\','/','g')
|
||||||
let fsize = getline(linenr+1)+0
|
" let fsize = getline(linenr+1)+0
|
||||||
|
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
|
||||||
|
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\+\)$','\1','')
|
||||||
let filecnt = filecnt + 1
|
let filecnt = filecnt + 1
|
||||||
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
|
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
|
||||||
|
|
||||||
@@ -307,7 +291,7 @@ fun! vimball#Vimball(really,...)
|
|||||||
if !isdirectory(dirname)
|
if !isdirectory(dirname)
|
||||||
" call Decho("making <".dirname.">")
|
" call Decho("making <".dirname.">")
|
||||||
if exists("g:vimball_mkdir")
|
if exists("g:vimball_mkdir")
|
||||||
call system(g:vimball_mkdir." ".s:Escape(dirname))
|
call system(g:vimball_mkdir." ".shellescape(dirname))
|
||||||
else
|
else
|
||||||
call mkdir(dirname)
|
call mkdir(dirname)
|
||||||
endif
|
endif
|
||||||
@@ -337,9 +321,13 @@ fun! vimball#Vimball(really,...)
|
|||||||
if a:really
|
if a:really
|
||||||
let fnamepath= home."/".fname
|
let fnamepath= home."/".fname
|
||||||
" call Decho("exe w! ".fnameescape(fnamepath))
|
" call Decho("exe w! ".fnameescape(fnamepath))
|
||||||
|
if fenc != ""
|
||||||
|
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
|
||||||
|
else
|
||||||
exe "silent w! ".fnameescape(fnamepath)
|
exe "silent w! ".fnameescape(fnamepath)
|
||||||
echo "wrote ".fnamepath
|
endif
|
||||||
call s:RecordInVar(home,"call delete('".fnameescape(fnamepath)."')")
|
echo "wrote ".fnameescape(fnamepath)
|
||||||
|
call s:RecordInVar(home,"call delete('".fnamepath."')")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" return to tab with vimball
|
" return to tab with vimball
|
||||||
@@ -418,7 +406,7 @@ fun! vimball#RmVimball(...)
|
|||||||
if a:0 >= 2
|
if a:0 >= 2
|
||||||
let home= expand(a:2)
|
let home= expand(a:2)
|
||||||
else
|
else
|
||||||
let home= s:VimballHome()
|
let home= vimball#VimballHome()
|
||||||
endif
|
endif
|
||||||
let curdir = getcwd()
|
let curdir = getcwd()
|
||||||
" call Decho("home <".home.">")
|
" call Decho("home <".home.">")
|
||||||
@@ -432,19 +420,20 @@ fun! vimball#RmVimball(...)
|
|||||||
keepalt keepjumps 1split
|
keepalt keepjumps 1split
|
||||||
silent! keepalt keepjumps e .VimballRecord
|
silent! keepalt keepjumps e .VimballRecord
|
||||||
let keepsrch= @/
|
let keepsrch= @/
|
||||||
" call Decho("search for ^".curfile.".vba:")
|
" call Decho('search for ^\M'.curfile.'.\m: ')
|
||||||
" call Decho("search for ^".curfile."[-0-9.]*.vba:")
|
" call Decho('search for ^\M'.curfile.'.\mvba: ')
|
||||||
if search('^'.curfile.": ".'cw')
|
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ')
|
||||||
|
if search('^\M'.curfile."\m: ".'cw')
|
||||||
let foundit= 1
|
let foundit= 1
|
||||||
elseif search('^'.curfile.".vba: ",'cw')
|
elseif search('^\M'.curfile.".\mvba: ",'cw')
|
||||||
let foundit= 1
|
let foundit= 1
|
||||||
elseif search('^'.curfile.'[-0-9.]*.vba: ','cw')
|
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
|
||||||
let foundit= 1
|
let foundit= 1
|
||||||
else
|
else
|
||||||
let foundit = 0
|
let foundit = 0
|
||||||
endif
|
endif
|
||||||
if foundit
|
if foundit
|
||||||
let exestring = substitute(getline("."),'^'.curfile.'\S\{-}\.vba: ','','')
|
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
|
||||||
let s:VBRstring= substitute(exestring,'call delete(','','g')
|
let s:VBRstring= substitute(exestring,'call delete(','','g')
|
||||||
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
|
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
|
||||||
" call Decho("exe ".exestring)
|
" call Decho("exe ".exestring)
|
||||||
@@ -472,62 +461,62 @@ endfun
|
|||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
|
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
|
||||||
fun! vimball#Decompress(fname)
|
fun! vimball#Decompress(fname,...)
|
||||||
" call Dfunc("Decompress(fname<".a:fname.">)")
|
" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)
|
||||||
|
|
||||||
" decompression:
|
" decompression:
|
||||||
if expand("%") =~ '.*\.gz' && executable("gunzip")
|
if expand("%") =~ '.*\.gz' && executable("gunzip")
|
||||||
" handle *.gz with gunzip
|
" handle *.gz with gunzip
|
||||||
silent exe "!gunzip ".s:Escape(a:fname)
|
silent exe "!gunzip ".shellescape(a:fname)
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
|
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
|
||||||
endif
|
endif
|
||||||
let fname= substitute(a:fname,'\.gz$','','')
|
let fname= substitute(a:fname,'\.gz$','','')
|
||||||
exe "e ".escape(fname,' \')
|
exe "e ".escape(fname,' \')
|
||||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||||
|
|
||||||
elseif expand("%") =~ '.*\.gz' && executable("gzip")
|
elseif expand("%") =~ '.*\.gz' && executable("gzip")
|
||||||
" handle *.gz with gzip -d
|
" handle *.gz with gzip -d
|
||||||
silent exe "!gzip -d ".s:Escape(a:fname)
|
silent exe "!gzip -d ".shellescape(a:fname)
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
|
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
|
||||||
endif
|
endif
|
||||||
let fname= substitute(a:fname,'\.gz$','','')
|
let fname= substitute(a:fname,'\.gz$','','')
|
||||||
exe "e ".escape(fname,' \')
|
exe "e ".escape(fname,' \')
|
||||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||||
|
|
||||||
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
|
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
|
||||||
" handle *.bz2 with bunzip2
|
" handle *.bz2 with bunzip2
|
||||||
silent exe "!bunzip2 ".s:Escape(a:fname)
|
silent exe "!bunzip2 ".shellescape(a:fname)
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
|
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
|
||||||
endif
|
endif
|
||||||
let fname= substitute(a:fname,'\.bz2$','','')
|
let fname= substitute(a:fname,'\.bz2$','','')
|
||||||
exe "e ".escape(fname,' \')
|
exe "e ".escape(fname,' \')
|
||||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||||
|
|
||||||
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
|
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
|
||||||
" handle *.bz2 with bzip2 -d
|
" handle *.bz2 with bzip2 -d
|
||||||
silent exe "!bzip2 -d ".s:Escape(a:fname)
|
silent exe "!bzip2 -d ".shellescape(a:fname)
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
|
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
|
||||||
endif
|
endif
|
||||||
let fname= substitute(a:fname,'\.bz2$','','')
|
let fname= substitute(a:fname,'\.bz2$','','')
|
||||||
exe "e ".escape(fname,' \')
|
exe "e ".escape(fname,' \')
|
||||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||||
|
|
||||||
elseif expand("%") =~ '.*\.zip' && executable("unzip")
|
elseif expand("%") =~ '.*\.zip' && executable("unzip")
|
||||||
" handle *.zip with unzip
|
" handle *.zip with unzip
|
||||||
silent exe "!unzip ".s:Escape(a:fname)
|
silent exe "!unzip ".shellescape(a:fname)
|
||||||
if v:shell_error != 0
|
if v:shell_error != 0
|
||||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
|
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
|
||||||
endif
|
endif
|
||||||
let fname= substitute(a:fname,'\.zip$','','')
|
let fname= substitute(a:fname,'\.zip$','','')
|
||||||
exe "e ".escape(fname,' \')
|
exe "e ".escape(fname,' \')
|
||||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
set noma bt=nofile fmr=[[[,]]] fdm=marker
|
if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif
|
||||||
|
|
||||||
" call Dret("Decompress")
|
" call Dret("Decompress")
|
||||||
endfun
|
endfun
|
||||||
@@ -536,20 +525,21 @@ endfun
|
|||||||
" vimball#ShowMesg: {{{2
|
" vimball#ShowMesg: {{{2
|
||||||
fun! vimball#ShowMesg(level,msg)
|
fun! vimball#ShowMesg(level,msg)
|
||||||
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
|
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
|
||||||
|
|
||||||
let rulerkeep = &ruler
|
let rulerkeep = &ruler
|
||||||
let showcmdkeep = &showcmd
|
let showcmdkeep = &showcmd
|
||||||
set noruler noshowcmd
|
set noruler noshowcmd
|
||||||
redraw!
|
redraw!
|
||||||
|
|
||||||
if &fo =~ '[ta]'
|
if &fo =~ '[ta]'
|
||||||
echomsg "***vimball*** " a:msg
|
echomsg "***vimball*** ".a:msg
|
||||||
else
|
else
|
||||||
if a:level == s:WARNING || a:level == s:USAGE
|
if a:level == s:WARNING || a:level == s:USAGE
|
||||||
echohl WarningMsg
|
echohl WarningMsg
|
||||||
elseif a:level == s:ERROR
|
elseif a:level == s:ERROR
|
||||||
echohl Error
|
echohl Error
|
||||||
endif
|
endif
|
||||||
echomsg "***vimball*** " a:msg
|
echomsg "***vimball*** ".a:msg
|
||||||
echohl None
|
echohl None
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -646,9 +636,9 @@ fun! s:RecordInFile(home)
|
|||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" s:VimballHome: determine/get home directory path (usually from rtp) {{{2
|
" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
|
||||||
fun! s:VimballHome()
|
fun! vimball#VimballHome()
|
||||||
" call Dfunc("VimballHome()")
|
" call Dfunc("vimball#VimballHome()")
|
||||||
if exists("g:vimball_home")
|
if exists("g:vimball_home")
|
||||||
let home= g:vimball_home
|
let home= g:vimball_home
|
||||||
else
|
else
|
||||||
@@ -674,14 +664,14 @@ fun! s:VimballHome()
|
|||||||
if !isdirectory(home)
|
if !isdirectory(home)
|
||||||
if exists("g:vimball_mkdir")
|
if exists("g:vimball_mkdir")
|
||||||
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
|
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
|
||||||
" call Decho("system(".g:vimball_mkdir." ".s:Escape(home).")")
|
" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
|
||||||
call system(g:vimball_mkdir." ".s:Escape(home))
|
call system(g:vimball_mkdir." ".shellescape(home))
|
||||||
else
|
else
|
||||||
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
|
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
|
||||||
call mkdir(home)
|
call mkdir(home)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
" call Dret("VimballHome <".home.">")
|
" call Dret("vimball#VimballHome <".home.">")
|
||||||
return home
|
return home
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
@@ -742,21 +732,6 @@ fun! vimball#RestoreSettings()
|
|||||||
" call Dret("RestoreSettings")
|
" call Dret("RestoreSettings")
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" s:Escape: {{{2
|
|
||||||
fun s:Escape(name)
|
|
||||||
" shellescape() was added by patch 7.0.111
|
|
||||||
if exists("*shellescape")
|
|
||||||
return shellescape(a:name)
|
|
||||||
endif
|
|
||||||
return g:netrw_shq . a:name . g:netrw_shq
|
|
||||||
endfun
|
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
|
||||||
" Restore:
|
|
||||||
let &cpo= s:keepcpo
|
|
||||||
unlet s:keepcpo
|
|
||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Modelines: {{{1
|
" Modelines: {{{1
|
||||||
" vim: fdm=marker
|
" vim: fdm=marker
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" zip.vim: Handles browsing zipfiles
|
" zip.vim: Handles browsing zipfiles
|
||||||
" AUTOLOAD PORTION
|
" AUTOLOAD PORTION
|
||||||
" Date: Jul 30, 2008
|
" Date: Apr 12, 2010
|
||||||
" Version: 22
|
" Version: 23
|
||||||
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||||
" License: Vim License (see vim's :help license)
|
" License: Vim License (see vim's :help license)
|
||||||
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
|
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
|
||||||
@@ -16,13 +16,19 @@
|
|||||||
|
|
||||||
" ---------------------------------------------------------------------
|
" ---------------------------------------------------------------------
|
||||||
" Load Once: {{{1
|
" Load Once: {{{1
|
||||||
let s:keepcpo= &cpo
|
if &cp || exists("g:loaded_zip")
|
||||||
set cpo&vim
|
|
||||||
if &cp || exists("g:loaded_zip") || v:version < 700
|
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
let g:loaded_zip= "v23"
|
||||||
|
if v:version < 702
|
||||||
|
echohl WarningMsg
|
||||||
|
echo "***warning*** this version of zip needs vim 7.2"
|
||||||
|
echohl Normal
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let s:keepcpo= &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
let g:loaded_zip = "v22"
|
|
||||||
let s:zipfile_escape = ' ?&;\'
|
let s:zipfile_escape = ' ?&;\'
|
||||||
let s:ERROR = 2
|
let s:ERROR = 2
|
||||||
let s:WARNING = 1
|
let s:WARNING = 1
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
" Vim color file
|
" Vim color file
|
||||||
" Maintainer: Hans Fugal <hans@fugal.net>
|
" Maintainer: Hans Fugal <hans@fugal.net>
|
||||||
" Last Change: $Date$
|
" Last Change: $Date: 2004/06/13 19:30:30 $
|
||||||
" Last Change: $Date$
|
" Last Change: $Date: 2004/06/13 19:30:30 $
|
||||||
" URL: http://hans.fugal.net/vim/colors/desert.vim
|
" URL: http://hans.fugal.net/vim/colors/desert.vim
|
||||||
" Version: $Id$
|
" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
|
||||||
|
|
||||||
" cool help screens
|
" cool help screens
|
||||||
" :he group-name
|
" :he group-name
|
||||||
|
|||||||
29
runtime/compiler/cucumber.vim
Normal file
29
runtime/compiler/cucumber.vim
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
" Vim compiler file
|
||||||
|
" Compiler: Cucumber
|
||||||
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
|
" Last Change: 2010 Aug 09
|
||||||
|
|
||||||
|
if exists("current_compiler")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = "cucumber"
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo-=C
|
||||||
|
|
||||||
|
CompilerSet makeprg=cucumber
|
||||||
|
|
||||||
|
CompilerSet errorformat=
|
||||||
|
\%W%m\ (Cucumber::Undefined),
|
||||||
|
\%E%m\ (%.%#),
|
||||||
|
\%Z%f:%l,
|
||||||
|
\%Z%f:%l:%.%#
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
" vim:set sw=2 sts=2:
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
"------------------------------------------------------------------------------
|
"------------------------------------------------------------------------------
|
||||||
" Description: Vim Ada/Dec Ada compiler file
|
" Description: Vim Ada/Dec Ada compiler file
|
||||||
" Language: Ada (Dec Ada)
|
" Language: Ada (Dec Ada)
|
||||||
" $Id$
|
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
|
||||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||||
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
||||||
" $Author$
|
" $Author: krischik $
|
||||||
" $Date$
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||||
" Version: 4.6
|
" Version: 4.6
|
||||||
" $Revision$
|
" $Revision: 887 $
|
||||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
|
||||||
" History: 21.07.2006 MK New Dec Ada
|
" History: 21.07.2006 MK New Dec Ada
|
||||||
" 15.10.2006 MK Bram's suggestion for runtime integration
|
" 15.10.2006 MK Bram's suggestion for runtime integration
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Language: eRuby
|
" Language: eRuby
|
||||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||||
" Info: $Id$
|
" Last Change: 2008 Aug 1
|
||||||
" URL: http://vim-ruby.rubyforge.org
|
" URL: http://vim-ruby.rubyforge.org
|
||||||
" Anon CVS: See above site
|
" Anon CVS: See above site
|
||||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Compiler: g77 (GNU Fortran)
|
" Compiler: g77 (GNU Fortran)
|
||||||
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||||
" Last Change: $Date$
|
" Last Change: $Date: 2004/06/13 18:17:36 $
|
||||||
" $Revision$
|
" $Revision: 1.1 $
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
finish
|
finish
|
||||||
|
|||||||
23
runtime/compiler/g95.vim
Normal file
23
runtime/compiler/g95.vim
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
" Compiler: G95
|
||||||
|
" Maintainer: H Xu <xuhdev@gmail.com>
|
||||||
|
" Version: 0.1.3
|
||||||
|
" Last Change: 2011 Apr 01
|
||||||
|
" Homepage: http://www.vim.org/scripts/script.php?script_id=3492
|
||||||
|
" https://bitbucket.org/xuhdev/compiler-g95.vim
|
||||||
|
" License: Same as Vim
|
||||||
|
|
||||||
|
if exists('current_compiler')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = 'g95'
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
CompilerSet errorformat=
|
||||||
|
\%AIn\ file\ %f:%l,
|
||||||
|
\%-C%p1,
|
||||||
|
\%-Z%trror:\ %m,
|
||||||
|
\%-Z%tarning\ (%n):\ %m,
|
||||||
|
\%-C%.%#
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Compiler: GNU C Compiler
|
" Compiler: GNU C Compiler
|
||||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||||
" Latest Revision: 2006-12-20
|
" Latest Revision: 2010-10-14
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
finish
|
finish
|
||||||
@@ -12,10 +12,17 @@ let s:cpo_save = &cpo
|
|||||||
set cpo-=C
|
set cpo-=C
|
||||||
|
|
||||||
CompilerSet errorformat=
|
CompilerSet errorformat=
|
||||||
|
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
|
||||||
\%*[^\"]\"%f\"%*\\D%l:\ %m,
|
\%*[^\"]\"%f\"%*\\D%l:\ %m,
|
||||||
|
\\"%f\"%*\\D%l:%c:\ %m,
|
||||||
\\"%f\"%*\\D%l:\ %m,
|
\\"%f\"%*\\D%l:\ %m,
|
||||||
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
|
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
|
||||||
\%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
|
\%-G%f:%l:\ %trror:\ for\ each\ function\ it\ appears\ in.),
|
||||||
|
\%f:%l:%c:\ %trror:\ %m,
|
||||||
|
\%f:%l:%c:\ %tarning:\ %m,
|
||||||
|
\%f:%l:%c:\ %m,
|
||||||
|
\%f:%l:\ %trror:\ %m,
|
||||||
|
\%f:%l:\ %tarning:\ %m,
|
||||||
\%f:%l:\ %m,
|
\%f:%l:\ %m,
|
||||||
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
\\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
||||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
||||||
|
|||||||
22
runtime/compiler/gfortran.vim
Normal file
22
runtime/compiler/gfortran.vim
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
" Compiler: GNU Fortran Compiler
|
||||||
|
" Maintainer: H Xu <xuhdev@gmail.com>
|
||||||
|
" Version: 0.1.3
|
||||||
|
" Last Change: 19 March 2011
|
||||||
|
" Homepage: http://www.vim.org/scripts/script.php?script_id=3496
|
||||||
|
" https://bitbucket.org/xuhdev/compiler-gfortran.vim
|
||||||
|
" License: Same as Vim
|
||||||
|
|
||||||
|
if exists('current_compiler')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = 'gfortran'
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
CompilerSet errorformat=
|
||||||
|
\%A%f:%l.%c:,
|
||||||
|
\%-Z%trror:\ %m,
|
||||||
|
\%-Z%tarning:\ %m,
|
||||||
|
\%-C%.%#
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
"------------------------------------------------------------------------------
|
"------------------------------------------------------------------------------
|
||||||
" Description: Vim Ada/GNAT compiler file
|
" Description: Vim Ada/GNAT compiler file
|
||||||
" Language: Ada (GNAT)
|
" Language: Ada (GNAT)
|
||||||
" $Id$
|
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
|
||||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||||
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
||||||
" Ned Okie <nokie@radford.edu>
|
" Ned Okie <nokie@radford.edu>
|
||||||
" $Author$
|
" $Author: krischik $
|
||||||
" $Date$
|
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||||
" Version: 4.6
|
" Version: 4.6
|
||||||
" $Revision$
|
" $Revision: 887 $
|
||||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
|
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
|
||||||
" History: 24.05.2006 MK Unified Headers
|
" History: 24.05.2006 MK Unified Headers
|
||||||
" 16.07.2006 MK Ada-Mode as vim-ball
|
" 16.07.2006 MK Ada-Mode as vim-ball
|
||||||
|
|||||||
22
runtime/compiler/ifort.vim
Normal file
22
runtime/compiler/ifort.vim
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
" Compiler: Intel Fortran Compiler
|
||||||
|
" Maintainer: H Xu <xuhdev@gmail.com>
|
||||||
|
" Version: 0.1.1
|
||||||
|
" Last Change: 19 March 2011
|
||||||
|
" Homepage: http://www.vim.org/scripts/script.php?script_id=3497
|
||||||
|
" https://bitbucket.org/xuhdev/compiler-ifort.vim
|
||||||
|
" License: Same as Vim
|
||||||
|
|
||||||
|
if exists('current_compiler')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let current_compiler = 'ifort'
|
||||||
|
|
||||||
|
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||||
|
command -nargs=* CompilerSet setlocal <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
CompilerSet errorformat=
|
||||||
|
\%A%f(%l):\ %trror\ \#%n:\ %m,
|
||||||
|
\%A%f(%l):\ %tarning\ \#%n:\ %m,
|
||||||
|
\%-Z%p^,
|
||||||
|
\%-G%.%#
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
" Vim Compiler File
|
" Vim Compiler File
|
||||||
" Compiler: Jikes
|
" Compiler: Jikes
|
||||||
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
|
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
|
||||||
" Last Change: 2004 Mar 27
|
" Last Change: 20 Jan 2009
|
||||||
" URL: http://mywebpage.netscape.com/sharppeople/vim/compiler
|
" URL: http://dwsharp.users.sourceforge.net/vim/compiler
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
finish
|
finish
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
" Vim Compiler File
|
" Vim Compiler File
|
||||||
" Compiler: Perl syntax checks (perl -Wc)
|
" Compiler: Perl syntax checks (perl -Wc)
|
||||||
" Maintainer: Christian J. Robinson <infynity@onewest.net>
|
" Maintainer: Christian J. Robinson <heptite@gmail.com>
|
||||||
" Last Change: 2006 Aug 13
|
" Last Change: 2006 Aug 13
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Language: RSpec
|
" Language: RSpec
|
||||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
|
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||||
" Info: $Id$
|
" Last Change: 2009 Dec 22
|
||||||
" URL: http://vim-ruby.rubyforge.org
|
" URL: http://vim-ruby.rubyforge.org
|
||||||
" Anon CVS: See above site
|
" Anon CVS: See above site
|
||||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
" Language: Ruby
|
" Language: Ruby
|
||||||
" Function: Syntax check and/or error reporting
|
" Function: Syntax check and/or error reporting
|
||||||
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
|
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
|
||||||
" Info: $Id$
|
" Last Change: 2008 Aug 1
|
||||||
" URL: http://vim-ruby.rubyforge.org
|
" URL: http://vim-ruby.rubyforge.org
|
||||||
" Anon CVS: See above site
|
" Anon CVS: See above site
|
||||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim compiler file
|
" Vim compiler file
|
||||||
" Language: Test::Unit - Ruby Unit Testing Framework
|
" Language: Test::Unit - Ruby Unit Testing Framework
|
||||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||||
" Info: $Id$
|
" Last Change: 2008 Aug 1
|
||||||
" URL: http://vim-ruby.rubyforge.org
|
" URL: http://vim-ruby.rubyforge.org
|
||||||
" Anon CVS: See above site
|
" Anon CVS: See above site
|
||||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||||
" Splint Home: http://www.splint.org/
|
" Splint Home: http://www.splint.org/
|
||||||
" Last Change: 2005 Apr 21
|
" Last Change: 2005 Apr 21
|
||||||
" $Revision$
|
" $Revision: 1.3 $
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
finish
|
finish
|
||||||
|
|||||||
@@ -37,8 +37,10 @@ DOCS = \
|
|||||||
hangulin.txt \
|
hangulin.txt \
|
||||||
hebrew.txt \
|
hebrew.txt \
|
||||||
help.txt \
|
help.txt \
|
||||||
|
helphelp.txt \
|
||||||
howto.txt \
|
howto.txt \
|
||||||
if_cscop.txt \
|
if_cscop.txt \
|
||||||
|
if_lua.txt \
|
||||||
if_mzsch.txt \
|
if_mzsch.txt \
|
||||||
if_ole.txt \
|
if_ole.txt \
|
||||||
if_perl.txt \
|
if_perl.txt \
|
||||||
@@ -167,8 +169,10 @@ HTMLS = \
|
|||||||
gui_x11.html \
|
gui_x11.html \
|
||||||
hangulin.html \
|
hangulin.html \
|
||||||
hebrew.html \
|
hebrew.html \
|
||||||
|
helphelp.html \
|
||||||
howto.html \
|
howto.html \
|
||||||
if_cscop.html \
|
if_cscop.html \
|
||||||
|
if_lua.html \
|
||||||
if_mzsch.html \
|
if_mzsch.html \
|
||||||
if_ole.html \
|
if_ole.html \
|
||||||
if_perl.html \
|
if_perl.html \
|
||||||
@@ -336,12 +340,14 @@ uganda.nsis.txt: uganda.txt
|
|||||||
uganda.txt | uniq >uganda.nsis.txt
|
uganda.txt | uniq >uganda.nsis.txt
|
||||||
|
|
||||||
# Awk version of .txt to .html conversion.
|
# Awk version of .txt to .html conversion.
|
||||||
html: noerrors tags tags.ref $(HTMLS)
|
html: noerrors tags $(HTMLS)
|
||||||
@if test -f errors.log; then more errors.log; fi
|
@if test -f errors.log; then more errors.log; fi
|
||||||
|
|
||||||
noerrors:
|
noerrors:
|
||||||
-rm -f errors.log
|
-rm -f errors.log
|
||||||
|
|
||||||
|
$(HTMLS): tags.ref
|
||||||
|
|
||||||
.txt.html:
|
.txt.html:
|
||||||
$(AWK) -f makehtml.awk $< >$@
|
$(AWK) -f makehtml.awk $< >$@
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*arabic.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
*arabic.txt* For Vim version 7.3. Last change: 2010 Nov 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Nadim Shaikli
|
VIM REFERENCE MANUAL by Nadim Shaikli
|
||||||
@@ -146,7 +146,7 @@ o Enable Arabic settings [short-cut]
|
|||||||
:set arabic
|
:set arabic
|
||||||
<
|
<
|
||||||
The two above noted possible invocations are the preferred manner
|
The two above noted possible invocations are the preferred manner
|
||||||
in which users are instructed to proceed. Baring an enabled 'termbidi'
|
in which users are instructed to proceed. Barring an enabled 'termbidi'
|
||||||
setting, both command options:
|
setting, both command options:
|
||||||
|
|
||||||
1. set the appropriate keymap
|
1. set the appropriate keymap
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*autocmd.txt* For Vim version 7.2. Last change: 2008 Jun 27
|
*autocmd.txt* For Vim version 7.3. Last change: 2010 Jul 22
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -59,10 +59,10 @@ Note: The ":autocmd" command cannot be followed by another command, since any
|
|||||||
:au[tocmd] [group] {event} {pat} [nested] {cmd}
|
:au[tocmd] [group] {event} {pat} [nested] {cmd}
|
||||||
Add {cmd} to the list of commands that Vim will
|
Add {cmd} to the list of commands that Vim will
|
||||||
execute automatically on {event} for a file matching
|
execute automatically on {event} for a file matching
|
||||||
{pat}. Vim always adds the {cmd} after existing
|
{pat} |autocmd-patterns|.
|
||||||
autocommands, so that the autocommands execute in the
|
Vim always adds the {cmd} after existing autocommands,
|
||||||
order in which they were given. See |autocmd-nested|
|
so that the autocommands execute in the order in which
|
||||||
for [nested].
|
they were given. See |autocmd-nested| for [nested].
|
||||||
|
|
||||||
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
|
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
|
||||||
See |autocmd-buflocal|.
|
See |autocmd-buflocal|.
|
||||||
@@ -335,6 +335,8 @@ BufDelete Before deleting a buffer from the buffer list.
|
|||||||
NOTE: When this autocommand is executed, the
|
NOTE: When this autocommand is executed, the
|
||||||
current buffer "%" may be different from the
|
current buffer "%" may be different from the
|
||||||
buffer being deleted "<afile>" and "<abuf>".
|
buffer being deleted "<afile>" and "<abuf>".
|
||||||
|
Don't change to another buffer, it will cause
|
||||||
|
problems.
|
||||||
*BufEnter*
|
*BufEnter*
|
||||||
BufEnter After entering a buffer. Useful for setting
|
BufEnter After entering a buffer. Useful for setting
|
||||||
options for a file type. Also executed when
|
options for a file type. Also executed when
|
||||||
@@ -397,6 +399,10 @@ BufUnload Before unloading a buffer. This is when the
|
|||||||
NOTE: When this autocommand is executed, the
|
NOTE: When this autocommand is executed, the
|
||||||
current buffer "%" may be different from the
|
current buffer "%" may be different from the
|
||||||
buffer being unloaded "<afile>".
|
buffer being unloaded "<afile>".
|
||||||
|
Don't change to another buffer, it will cause
|
||||||
|
problems.
|
||||||
|
When exiting and v:dying is 2 or more this
|
||||||
|
event is not triggered.
|
||||||
*BufWinEnter*
|
*BufWinEnter*
|
||||||
BufWinEnter After a buffer is displayed in a window. This
|
BufWinEnter After a buffer is displayed in a window. This
|
||||||
can be when the buffer is loaded (after
|
can be when the buffer is loaded (after
|
||||||
@@ -418,6 +424,8 @@ BufWinLeave Before a buffer is removed from a window.
|
|||||||
NOTE: When this autocommand is executed, the
|
NOTE: When this autocommand is executed, the
|
||||||
current buffer "%" may be different from the
|
current buffer "%" may be different from the
|
||||||
buffer being unloaded "<afile>".
|
buffer being unloaded "<afile>".
|
||||||
|
When exiting and v:dying is 2 or more this
|
||||||
|
event is not triggered.
|
||||||
*BufWipeout*
|
*BufWipeout*
|
||||||
BufWipeout Before completely deleting a buffer. The
|
BufWipeout Before completely deleting a buffer. The
|
||||||
BufUnload and BufDelete events may be called
|
BufUnload and BufDelete events may be called
|
||||||
@@ -428,6 +436,8 @@ BufWipeout Before completely deleting a buffer. The
|
|||||||
NOTE: When this autocommand is executed, the
|
NOTE: When this autocommand is executed, the
|
||||||
current buffer "%" may be different from the
|
current buffer "%" may be different from the
|
||||||
buffer being deleted "<afile>".
|
buffer being deleted "<afile>".
|
||||||
|
Don't change to another buffer, it will cause
|
||||||
|
problems.
|
||||||
*BufWrite* *BufWritePre*
|
*BufWrite* *BufWritePre*
|
||||||
BufWrite or BufWritePre Before writing the whole buffer to a file.
|
BufWrite or BufWritePre Before writing the whole buffer to a file.
|
||||||
*BufWriteCmd*
|
*BufWriteCmd*
|
||||||
@@ -545,7 +555,7 @@ FileChangedShell When Vim notices that the modification time of
|
|||||||
buffer that was changed "<afile>".
|
buffer that was changed "<afile>".
|
||||||
NOTE: The commands must not change the current
|
NOTE: The commands must not change the current
|
||||||
buffer, jump to another buffer or delete a
|
buffer, jump to another buffer or delete a
|
||||||
buffer. *E246*
|
buffer. *E246* *E811*
|
||||||
NOTE: This event never nests, to avoid an
|
NOTE: This event never nests, to avoid an
|
||||||
endless loop. This means that while executing
|
endless loop. This means that while executing
|
||||||
commands for the FileChangedShell event no
|
commands for the FileChangedShell event no
|
||||||
@@ -672,10 +682,10 @@ MenuPopup Just before showing the popup menu (under the
|
|||||||
QuickFixCmdPre Before a quickfix command is run (|:make|,
|
QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||||
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
|
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
|
||||||
|:lgrepadd|, |:vimgrep|, |:lvimgrep|,
|
|:lgrepadd|, |:vimgrep|, |:lvimgrep|,
|
||||||
|:vimgrepadd|, |:lvimgrepadd|). The pattern is
|
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
|
||||||
matched against the command being run. When
|
The pattern is matched against the command
|
||||||
|:grep| is used but 'grepprg' is set to
|
being run. When |:grep| is used but 'grepprg'
|
||||||
"internal" it still matches "grep".
|
is set to "internal" it still matches "grep".
|
||||||
This command cannot be used to set the
|
This command cannot be used to set the
|
||||||
'makeprg' and 'grepprg' variables.
|
'makeprg' and 'grepprg' variables.
|
||||||
If this command causes an error, the quickfix
|
If this command causes an error, the quickfix
|
||||||
@@ -748,8 +758,10 @@ SwapExists Detected an existing swap file when starting
|
|||||||
'a' abort, like hitting CTRL-C
|
'a' abort, like hitting CTRL-C
|
||||||
When set to an empty string the user will be
|
When set to an empty string the user will be
|
||||||
asked, as if there was no SwapExists autocmd.
|
asked, as if there was no SwapExists autocmd.
|
||||||
Note: Do not try to change the buffer, the
|
*E812*
|
||||||
results are unpredictable.
|
It is not allowed to change to another buffer,
|
||||||
|
change a buffer name or change directory
|
||||||
|
here.
|
||||||
*Syntax*
|
*Syntax*
|
||||||
Syntax When the 'syntax' option has been set. The
|
Syntax When the 'syntax' option has been set. The
|
||||||
pattern is matched against the syntax name.
|
pattern is matched against the syntax name.
|
||||||
@@ -791,6 +803,8 @@ VimLeave Before exiting Vim, just after writing the
|
|||||||
.viminfo file. Executed only once, like
|
.viminfo file. Executed only once, like
|
||||||
VimLeavePre.
|
VimLeavePre.
|
||||||
To detect an abnormal exit use |v:dying|.
|
To detect an abnormal exit use |v:dying|.
|
||||||
|
When v:dying is 2 or more this event is not
|
||||||
|
triggered.
|
||||||
*VimLeavePre*
|
*VimLeavePre*
|
||||||
VimLeavePre Before exiting Vim, just before writing the
|
VimLeavePre Before exiting Vim, just before writing the
|
||||||
.viminfo file. This is executed only once,
|
.viminfo file. This is executed only once,
|
||||||
@@ -799,6 +813,8 @@ VimLeavePre Before exiting Vim, just before writing the
|
|||||||
Mostly useful with a "*" pattern. >
|
Mostly useful with a "*" pattern. >
|
||||||
:autocmd VimLeavePre * call CleanupStuff()
|
:autocmd VimLeavePre * call CleanupStuff()
|
||||||
< To detect an abnormal exit use |v:dying|.
|
< To detect an abnormal exit use |v:dying|.
|
||||||
|
When v:dying is 2 or more this event is not
|
||||||
|
triggered.
|
||||||
*VimResized*
|
*VimResized*
|
||||||
VimResized After the Vim window was resized, thus 'lines'
|
VimResized After the Vim window was resized, thus 'lines'
|
||||||
and/or 'columns' changed. Not when starting
|
and/or 'columns' changed. Not when starting
|
||||||
@@ -827,9 +843,9 @@ The file pattern {pat} is tested for a match against the file name in one of
|
|||||||
two ways:
|
two ways:
|
||||||
1. When there is no '/' in the pattern, Vim checks for a match against only
|
1. When there is no '/' in the pattern, Vim checks for a match against only
|
||||||
the tail part of the file name (without its leading directory path).
|
the tail part of the file name (without its leading directory path).
|
||||||
2. When there is a '/' in the pattern, Vim checks for a match against the
|
2. When there is a '/' in the pattern, Vim checks for a match against both the
|
||||||
both short file name (as you typed it) and the full file name (after
|
short file name (as you typed it) and the full file name (after expanding
|
||||||
expanding it to a full path and resolving symbolic links).
|
it to a full path and resolving symbolic links).
|
||||||
|
|
||||||
The special pattern <buffer> or <buffer=N> is used for buffer-local
|
The special pattern <buffer> or <buffer=N> is used for buffer-local
|
||||||
autocommands |autocmd-buflocal|. This pattern is not matched against the name
|
autocommands |autocmd-buflocal|. This pattern is not matched against the name
|
||||||
@@ -1044,7 +1060,7 @@ option will not cause any commands to be executed.
|
|||||||
*:doautoa* *:doautoall*
|
*:doautoa* *:doautoall*
|
||||||
:doautoa[ll] [group] {event} [fname]
|
:doautoa[ll] [group] {event} [fname]
|
||||||
Like ":doautocmd", but apply the autocommands to each
|
Like ":doautocmd", but apply the autocommands to each
|
||||||
loaded buffer. Note that {fname} is used to select
|
loaded buffer. Note that [fname] is used to select
|
||||||
the autocommands, not the buffers to which they are
|
the autocommands, not the buffers to which they are
|
||||||
applied.
|
applied.
|
||||||
Careful: Don't use this for autocommands that delete a
|
Careful: Don't use this for autocommands that delete a
|
||||||
@@ -1264,7 +1280,7 @@ and "++ff=" argument that are effective. These should be used for the command
|
|||||||
that reads/writes the file. The |v:cmdbang| variable is one when "!" was
|
that reads/writes the file. The |v:cmdbang| variable is one when "!" was
|
||||||
used, zero otherwise.
|
used, zero otherwise.
|
||||||
|
|
||||||
See the $VIMRUNTIME/plugin/netrw.vim for examples.
|
See the $VIMRUNTIME/plugin/netrwPlugin.vim for examples.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
11. Disabling autocommands *autocmd-disable*
|
11. Disabling autocommands *autocmd-disable*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*change.txt* For Vim version 7.2. Last change: 2008 Jul 24
|
*change.txt* For Vim version 7.3. Last change: 2011 Feb 25
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -159,7 +159,7 @@ gR Enter Virtual Replace mode: Each character you type
|
|||||||
<Tab> may replace several characters at once.
|
<Tab> may replace several characters at once.
|
||||||
Repeat the entered text [count]-1 times. See
|
Repeat the entered text [count]-1 times. See
|
||||||
|Virtual-Replace-mode| for more details.
|
|Virtual-Replace-mode| for more details.
|
||||||
{not available when compiled without the +vreplace
|
{not available when compiled without the |+vreplace|
|
||||||
feature}
|
feature}
|
||||||
|
|
||||||
*c*
|
*c*
|
||||||
@@ -279,7 +279,7 @@ gr{char} Replace the virtual characters under the cursor with
|
|||||||
space. See |gR| and |Virtual-Replace-mode| for more
|
space. See |gR| and |Virtual-Replace-mode| for more
|
||||||
details. As with |r| a count may be given.
|
details. As with |r| a count may be given.
|
||||||
{char} can be entered like with |r|.
|
{char} can be entered like with |r|.
|
||||||
{not available when compiled without the +vreplace
|
{not available when compiled without the |+vreplace|
|
||||||
feature}
|
feature}
|
||||||
|
|
||||||
*digraph-arg*
|
*digraph-arg*
|
||||||
@@ -506,9 +506,9 @@ comment (starting with '"') after the ":!" command.
|
|||||||
{filter}. Vim replaces the optional bangs with the
|
{filter}. Vim replaces the optional bangs with the
|
||||||
latest given command and appends the optional [arg].
|
latest given command and appends the optional [arg].
|
||||||
Vim saves the output of the filter command in a
|
Vim saves the output of the filter command in a
|
||||||
temporary file and then reads the file into the
|
temporary file and then reads the file into the buffer
|
||||||
buffer. Vim uses the 'shellredir' option to redirect
|
|tempfile|. Vim uses the 'shellredir' option to
|
||||||
the filter output to the temporary file.
|
redirect the filter output to the temporary file.
|
||||||
However, if the 'shelltemp' option is off then pipes
|
However, if the 'shelltemp' option is off then pipes
|
||||||
are used when possible (on Unix).
|
are used when possible (on Unix).
|
||||||
When the 'R' flag is included in 'cpoptions' marks in
|
When the 'R' flag is included in 'cpoptions' marks in
|
||||||
@@ -524,7 +524,9 @@ comment (starting with '"') after the ":!" command.
|
|||||||
option is empty (this is the default), use the
|
option is empty (this is the default), use the
|
||||||
internal formatting function |C-indenting|. But when
|
internal formatting function |C-indenting|. But when
|
||||||
'indentexpr' is not empty, it will be used instead
|
'indentexpr' is not empty, it will be used instead
|
||||||
|indent-expression|.
|
|indent-expression|. When Vim was compiled without
|
||||||
|
internal formatting then the "indent" program is used
|
||||||
|
as a last resort.
|
||||||
|
|
||||||
*==*
|
*==*
|
||||||
== Filter [count] lines like with ={motion}.
|
== Filter [count] lines like with ={motion}.
|
||||||
@@ -534,6 +536,22 @@ comment (starting with '"') after the ":!" command.
|
|||||||
{not in Vi}
|
{not in Vi}
|
||||||
|
|
||||||
|
|
||||||
|
*tempfile* *setuid*
|
||||||
|
Vim uses temporary files for filtering, generating diffs and also for
|
||||||
|
tempname(). For Unix, the file will be in a private directory (only
|
||||||
|
accessible by the current user) to avoid security problems (e.g., a symlink
|
||||||
|
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,
|
||||||
|
$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.
|
||||||
|
For other systems the tmpnam() library function is used.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
4.2 Substitute *:substitute*
|
4.2 Substitute *:substitute*
|
||||||
*:s* *:su*
|
*:s* *:su*
|
||||||
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
|
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
|
||||||
@@ -567,7 +585,7 @@ comment (starting with '"') after the ":!" command.
|
|||||||
":&r". See |:s_flags| for [flags].
|
":&r". See |:s_flags| for [flags].
|
||||||
|
|
||||||
*&*
|
*&*
|
||||||
& Synonym for ":s//~/" (repeat last substitute). Note
|
& Synonym for ":s" (repeat last substitute). Note
|
||||||
that the flags are not remembered, thus it might
|
that the flags are not remembered, thus it might
|
||||||
actually work differently. You can use ":&&" to keep
|
actually work differently. You can use ":&&" to keep
|
||||||
the flags.
|
the flags.
|
||||||
@@ -604,9 +622,9 @@ The flags that you can use for the substitute commands:
|
|||||||
'a' to substitute this and all remaining matches {not in Vi}
|
'a' to substitute this and all remaining matches {not in Vi}
|
||||||
'q' to quit substituting {not in Vi}
|
'q' to quit substituting {not in Vi}
|
||||||
CTRL-E to scroll the screen up {not in Vi, not available when
|
CTRL-E to scroll the screen up {not in Vi, not available when
|
||||||
compiled without the +insert_expand feature}
|
compiled without the |+insert_expand| feature}
|
||||||
CTRL-Y to scroll the screen down {not in Vi, not available when
|
CTRL-Y to scroll the screen down {not in Vi, not available when
|
||||||
compiled without the +insert_expand feature}
|
compiled without the |+insert_expand| feature}
|
||||||
If the 'edcompatible' option is on, Vim remembers the [c] flag and
|
If the 'edcompatible' option is on, Vim remembers the [c] flag and
|
||||||
toggles it each time you use it, but resets it when you give a new
|
toggles it each time you use it, but resets it when you give a new
|
||||||
search pattern.
|
search pattern.
|
||||||
@@ -672,7 +690,8 @@ reason is that the flags can only be found by skipping the pattern, and in
|
|||||||
order to skip the pattern the "magicness" must be known. Catch 22!
|
order to skip the pattern the "magicness" must be known. Catch 22!
|
||||||
|
|
||||||
If the {pattern} for the substitute command is empty, the command uses the
|
If the {pattern} for the substitute command is empty, the command uses the
|
||||||
pattern from the last substitute or ":global" command. With the [r] flag, the
|
pattern from the last substitute or ":global" command. If there is none, but
|
||||||
|
there is a previous search pattern, that one is used. With the [r] flag, the
|
||||||
command uses the pattern from the last substitute, ":global", or search
|
command uses the pattern from the last substitute, ":global", or search
|
||||||
command.
|
command.
|
||||||
|
|
||||||
@@ -861,7 +880,10 @@ inside of strings can change! Also see 'softtabstop' option. >
|
|||||||
|
|
||||||
*:reg* *:registers*
|
*:reg* *:registers*
|
||||||
:reg[isters] Display the contents of all numbered and named
|
:reg[isters] Display the contents of all numbered and named
|
||||||
registers. {not in Vi}
|
registers. If a register is written to for |:redir|
|
||||||
|
it will not be listed.
|
||||||
|
{not in Vi}
|
||||||
|
|
||||||
|
|
||||||
:reg[isters] {arg} Display the contents of the numbered and named
|
:reg[isters] {arg} Display the contents of the numbered and named
|
||||||
registers that are mentioned in {arg}. For example: >
|
registers that are mentioned in {arg}. For example: >
|
||||||
@@ -994,6 +1016,11 @@ register. With blockwise selection it also depends on the size of the block
|
|||||||
and whether the corners are on an existing character. (Implementation detail:
|
and whether the corners are on an existing character. (Implementation detail:
|
||||||
it actually works by first putting the register after the selection and then
|
it actually works by first putting the register after the selection and then
|
||||||
deleting the selection.)
|
deleting the selection.)
|
||||||
|
The previously selected text is put in the unnamed register. If you want to
|
||||||
|
put the same text into a Visual selection several times you need to use
|
||||||
|
another register. E.g., yank the text to copy, Visually select the text to
|
||||||
|
replace and use "0p . You can repeat this as many times as you like, the
|
||||||
|
unnamed register will be changed each time.
|
||||||
|
|
||||||
*blockwise-register*
|
*blockwise-register*
|
||||||
If you use a blockwise Visual mode command to get the text into the register,
|
If you use a blockwise Visual mode command to get the text into the register,
|
||||||
@@ -1031,8 +1058,10 @@ There are nine types of registers: *registers* *E354*
|
|||||||
Vim fills this register with text deleted with the "d", "c", "s", "x" commands
|
Vim fills this register with text deleted with the "d", "c", "s", "x" commands
|
||||||
or copied with the yank "y" command, regardless of whether or not a specific
|
or copied with the yank "y" command, regardless of whether or not a specific
|
||||||
register was used (e.g. "xdd). This is like the unnamed register is pointing
|
register was used (e.g. "xdd). This is like the unnamed register is pointing
|
||||||
to the last used register. An exception is the '_' register: "_dd does not
|
to the last used register. Thus when appending using an uppercase register
|
||||||
store the deleted text in any register.
|
name, the unnamed register contains the same text as the named register.
|
||||||
|
An exception is the '_' register: "_dd does not store the deleted text in any
|
||||||
|
register.
|
||||||
Vim uses the contents of the unnamed register for any put command (p or P)
|
Vim uses the contents of the unnamed register for any put command (p or P)
|
||||||
which does not specify a register. Additionally you can access it with the
|
which does not specify a register. Additionally you can access it with the
|
||||||
name '"'. This means you have to type two double quotes. Writing to the ""
|
name '"'. This means you have to type two double quotes. Writing to the ""
|
||||||
@@ -1098,15 +1127,20 @@ normal command-line editing commands are available, including a special
|
|||||||
history for expressions. When you end the command-line by typing <CR>, Vim
|
history for expressions. When you end the command-line by typing <CR>, Vim
|
||||||
computes the result of the expression. If you end it with <Esc>, Vim abandons
|
computes the result of the expression. If you end it with <Esc>, Vim abandons
|
||||||
the expression. If you do not enter an expression, Vim uses the previous
|
the expression. If you do not enter an expression, Vim uses the previous
|
||||||
expression (like with the "/" command). The expression must evaluate to a
|
expression (like with the "/" command).
|
||||||
string. If the result is a number it's turned into a string. A List,
|
|
||||||
Dictionary or FuncRef results in an error message (use string() to convert).
|
The expression must evaluate to a String. A Number is always automatically
|
||||||
If the "= register is used for the "p" command, the string is split up at <NL>
|
converted to a String. For the "p" and ":put" command, if the result is a
|
||||||
characters. If the string ends in a <NL>, it is regarded as a linewise
|
Float it's converted into a String. If the result is a List each element is
|
||||||
|
turned into a String and used as a line. A Dictionary or FuncRef results in
|
||||||
|
an error message (use string() to convert).
|
||||||
|
|
||||||
|
If the "= register is used for the "p" command, the String is split up at <NL>
|
||||||
|
characters. If the String ends in a <NL>, it is regarded as a linewise
|
||||||
register. {not in Vi}
|
register. {not in Vi}
|
||||||
|
|
||||||
7. Selection and drop registers "*, "+ and "~
|
7. Selection and drop registers "*, "+ and "~
|
||||||
Use these register for storing and retrieving the selected text for the GUI.
|
Use these registers for storing and retrieving the selected text for the GUI.
|
||||||
See |quotestar| and |quoteplus|. When the clipboard is not available or not
|
See |quotestar| and |quoteplus|. When the clipboard is not available or not
|
||||||
working, the unnamed register is used instead. For Unix systems the clipboard
|
working, the unnamed register is used instead. For Unix systems the clipboard
|
||||||
is only available when the |+xterm_clipboard| feature is present. {not in Vi}
|
is only available when the |+xterm_clipboard| feature is present. {not in Vi}
|
||||||
@@ -1212,7 +1246,8 @@ gq{motion} Format the lines that {motion} moves over.
|
|||||||
:nnoremap Q gq
|
:nnoremap Q gq
|
||||||
|
|
||||||
gqgq *gqgq* *gqq*
|
gqgq *gqgq* *gqq*
|
||||||
gqq Format the current line. {not in Vi}
|
gqq Format the current line. With a count format that
|
||||||
|
many lines. {not in Vi}
|
||||||
|
|
||||||
*v_gq*
|
*v_gq*
|
||||||
{Visual}gq Format the highlighted text. (for {Visual} see
|
{Visual}gq Format the highlighted text. (for {Visual} see
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18
|
*cmdline.txt* For Vim version 7.3. Last change: 2011 Mar 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -83,9 +83,9 @@ CTRL-V Insert next non-digit literally. Up to three digits form the
|
|||||||
CTRL-Q Same as CTRL-V. But with some terminals it is used for
|
CTRL-Q Same as CTRL-V. But with some terminals it is used for
|
||||||
control flow, it doesn't work then.
|
control flow, it doesn't work then.
|
||||||
|
|
||||||
*c_<Left>*
|
*c_<Left>* *c_Left*
|
||||||
<Left> cursor left
|
<Left> cursor left
|
||||||
*c_<Right>*
|
*c_<Right>* *c_Right*
|
||||||
<Right> cursor right
|
<Right> cursor right
|
||||||
*c_<S-Left>*
|
*c_<S-Left>*
|
||||||
<S-Left> or <C-Left> *c_<C-Left>*
|
<S-Left> or <C-Left> *c_<C-Left>*
|
||||||
@@ -93,18 +93,18 @@ CTRL-Q Same as CTRL-V. But with some terminals it is used for
|
|||||||
*c_<S-Right>*
|
*c_<S-Right>*
|
||||||
<S-Right> or <C-Right> *c_<C-Right>*
|
<S-Right> or <C-Right> *c_<C-Right>*
|
||||||
cursor one WORD right
|
cursor one WORD right
|
||||||
CTRL-B or <Home> *c_CTRL-B* *c_<Home>*
|
CTRL-B or <Home> *c_CTRL-B* *c_<Home>* *c_Home*
|
||||||
cursor to beginning of command-line
|
cursor to beginning of command-line
|
||||||
CTRL-E or <End> *c_CTRL-E* *c_<End>*
|
CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
|
||||||
cursor to end of command-line
|
cursor to end of command-line
|
||||||
|
|
||||||
*c_<LeftMouse>*
|
*c_<LeftMouse>*
|
||||||
<LeftMouse> Move the cursor to the position of the mouse click.
|
<LeftMouse> Move the cursor to the position of the mouse click.
|
||||||
|
|
||||||
CTRL-H *c_<BS>* *c_CTRL-H*
|
CTRL-H *c_<BS>* *c_CTRL-H* *c_BS*
|
||||||
<BS> Delete the character in front of the cursor (see |:fixdel| if
|
<BS> Delete the character in front of the cursor (see |:fixdel| if
|
||||||
your <BS> key does not do what you want).
|
your <BS> key does not do what you want).
|
||||||
*c_<Del>*
|
*c_<Del>* *c_Del*
|
||||||
<Del> Delete the character under the cursor (at end of line:
|
<Del> Delete the character under the cursor (at end of line:
|
||||||
character before the cursor) (see |:fixdel| if your <Del>
|
character before the cursor) (see |:fixdel| if your <Del>
|
||||||
key does not do what you want).
|
key does not do what you want).
|
||||||
@@ -118,9 +118,7 @@ CTRL-U Remove all characters between the cursor position and
|
|||||||
preferred behavior, add the following to your .vimrc: >
|
preferred behavior, add the following to your .vimrc: >
|
||||||
:cnoremap <C-U> <C-E><C-U>
|
:cnoremap <C-U> <C-E><C-U>
|
||||||
<
|
<
|
||||||
Note: if the command-line becomes empty with one of the
|
*c_<Insert>* *c_Insert*
|
||||||
delete commands, Command-line mode is quit.
|
|
||||||
*c_<Insert>*
|
|
||||||
<Insert> Toggle between insert and overstrike. {not in Vi}
|
<Insert> Toggle between insert and overstrike. {not in Vi}
|
||||||
|
|
||||||
{char1} <BS> {char2} or *c_digraph*
|
{char1} <BS> {char2} or *c_digraph*
|
||||||
@@ -184,7 +182,7 @@ CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
|
|||||||
the word that was already typed is not inserted again.
|
the word that was already typed is not inserted again.
|
||||||
|
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
CTRL-F and CTRL-P: {only when +file_in_path feature is
|
CTRL-F and CTRL-P: {only when |+file_in_path| feature is
|
||||||
included}
|
included}
|
||||||
|
|
||||||
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
||||||
@@ -226,9 +224,9 @@ CTRL-Y When there is a modeless selection, copy the selection into
|
|||||||
the clipboard. |modeless-selection|
|
the clipboard. |modeless-selection|
|
||||||
If there is no selection CTRL-Y is inserted as a character.
|
If there is no selection CTRL-Y is inserted as a character.
|
||||||
|
|
||||||
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>*
|
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||||
<CR> or <NL> start entered command
|
<CR> or <NL> start entered command
|
||||||
*c_<Esc>*
|
*c_<Esc>* *c_Esc*
|
||||||
<Esc> When typed and 'x' not present in 'cpoptions', quit
|
<Esc> When typed and 'x' not present in 'cpoptions', quit
|
||||||
Command-line mode without executing. In macros or when 'x'
|
Command-line mode without executing. In macros or when 'x'
|
||||||
present in 'cpoptions', start entered command.
|
present in 'cpoptions', start entered command.
|
||||||
@@ -237,12 +235,12 @@ CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>*
|
|||||||
*c_CTRL-C*
|
*c_CTRL-C*
|
||||||
CTRL-C quit command-line without executing
|
CTRL-C quit command-line without executing
|
||||||
|
|
||||||
*c_<Up>*
|
*c_<Up>* *c_Up*
|
||||||
<Up> recall older command-line from history, whose beginning
|
<Up> recall older command-line from history, whose beginning
|
||||||
matches the current command-line (see below).
|
matches the current command-line (see below).
|
||||||
{not available when compiled without the |+cmdline_hist|
|
{not available when compiled without the |+cmdline_hist|
|
||||||
feature}
|
feature}
|
||||||
*c_<Down>*
|
*c_<Down>* *c_Down*
|
||||||
<Down> recall more recent command-line from history, whose beginning
|
<Down> recall more recent command-line from history, whose beginning
|
||||||
matches the current command-line (see below).
|
matches the current command-line (see below).
|
||||||
{not available when compiled without the |+cmdline_hist|
|
{not available when compiled without the |+cmdline_hist|
|
||||||
@@ -374,10 +372,10 @@ word before the cursor. This is available for:
|
|||||||
- Mappings: Only after a ":map" or similar command.
|
- Mappings: Only after a ":map" or similar command.
|
||||||
- Variable and function names: Only after a ":if", ":call" or similar command.
|
- Variable and function names: Only after a ":if", ":call" or similar command.
|
||||||
|
|
||||||
When Vim was compiled with the |+cmdline_compl| feature disabled, only file
|
When Vim was compiled without the |+cmdline_compl| feature only file names,
|
||||||
names, directories and help items can be completed. The number of help item
|
directories and help items can be completed. The number of help item matches
|
||||||
matches is limited (currently to 300) to avoid a long delay when there are
|
is limited (currently to 300) to avoid a long delay when there are very many
|
||||||
very many matches.
|
matches.
|
||||||
|
|
||||||
These are the commands that can be used:
|
These are the commands that can be used:
|
||||||
|
|
||||||
@@ -418,11 +416,15 @@ CTRL-L A match is done on the pattern in front of the cursor. If
|
|||||||
than the pattern, no completion is done.
|
than the pattern, no completion is done.
|
||||||
When 'incsearch' is set, entering a search pattern for "/" or
|
When 'incsearch' is set, entering a search pattern for "/" or
|
||||||
"?" and the current match is displayed then CTRL-L will add
|
"?" and the current match is displayed then CTRL-L will add
|
||||||
one character from the end of the current match.
|
one character from the end of the current match. If
|
||||||
|
'ignorecase' and 'smartcase' are set and the command line has
|
||||||
|
no uppercase characters, the added character is converted to
|
||||||
|
lowercase.
|
||||||
|
|
||||||
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
|
The 'wildchar' option defaults to <Tab> (CTRL-E when in Vi compatible mode; in
|
||||||
a previous version <Esc> was used). In the pattern standard wildcards '*' and
|
a previous version <Esc> was used). In the pattern standard wildcards '*' and
|
||||||
'?' are accepted. '*' matches any string, '?' matches exactly one character.
|
'?' are accepted when matching file names. '*' matches any string, '?'
|
||||||
|
matches exactly one character.
|
||||||
|
|
||||||
If you like tcsh's autolist completion, you can use this mapping:
|
If you like tcsh's autolist completion, you can use this mapping:
|
||||||
:cnoremap X <C-L><C-D>
|
:cnoremap X <C-L><C-D>
|
||||||
@@ -441,13 +443,20 @@ between files with almost the same name. If there are multiple matches,
|
|||||||
those files with an extension that is in the 'suffixes' option are ignored.
|
those files with an extension that is in the 'suffixes' option are ignored.
|
||||||
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
|
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
|
||||||
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.
|
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.
|
||||||
It is impossible to ignore suffixes with two dots. Examples:
|
|
||||||
|
An empty entry, two consecutive commas, match a file name that does not
|
||||||
|
contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer
|
||||||
|
"prog.c".
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
pattern: files: match: ~
|
pattern: files: match: ~
|
||||||
test* test.c test.h test.o test.c
|
test* test.c test.h test.o test.c
|
||||||
test* test.h test.o test.h and test.o
|
test* test.h test.o test.h and test.o
|
||||||
test* test.i test.h test.c test.i and test.c
|
test* test.i test.h test.c test.i and test.c
|
||||||
|
|
||||||
|
It is impossible to ignore suffixes with two dots.
|
||||||
|
|
||||||
If there is more than one matching file (after ignoring the ones matching
|
If there is more than one matching file (after ignoring the ones matching
|
||||||
the 'suffixes' option) the first file name is inserted. You can see that
|
the 'suffixes' option) the first file name is inserted. You can see that
|
||||||
there is only one match when you type 'wildchar' twice and the completed
|
there is only one match when you type 'wildchar' twice and the completed
|
||||||
@@ -478,14 +487,14 @@ And this in your .vimrc: >
|
|||||||
|
|
||||||
The Ex commands have a few specialties:
|
The Ex commands have a few specialties:
|
||||||
|
|
||||||
*:quote*
|
*:quote* *:comment*
|
||||||
'"' at the start of a line causes the whole line to be ignored. '"'
|
'"' at the start of a line causes the whole line to be ignored. '"'
|
||||||
after a command causes the rest of the line to be ignored. This can be used
|
after a command causes the rest of the line to be ignored. This can be used
|
||||||
to add comments. Example: >
|
to add comments. Example: >
|
||||||
:set ai "set 'autoindent' option
|
:set ai "set 'autoindent' option
|
||||||
It is not possible to add a comment to a shell command ":!cmd" or to the
|
It is not possible to add a comment to a shell command ":!cmd" or to the
|
||||||
":map" command and friends, because they see the '"' as part of their
|
":map" command and a few others, because they see the '"' as part of their
|
||||||
argument.
|
argument. This is mentioned where the command is explained.
|
||||||
|
|
||||||
*:bar* *:\bar*
|
*:bar* *:\bar*
|
||||||
'|' can be used to separate commands, so you can give multiple commands in one
|
'|' can be used to separate commands, so you can give multiple commands in one
|
||||||
@@ -517,6 +526,7 @@ followed by another Vim command:
|
|||||||
:registers
|
:registers
|
||||||
:read !
|
:read !
|
||||||
:scscope
|
:scscope
|
||||||
|
:sign
|
||||||
:tcl
|
:tcl
|
||||||
:tcldo
|
:tcldo
|
||||||
:tclfile
|
:tclfile
|
||||||
@@ -737,15 +747,15 @@ characters have a special meaning. These can also be used in the expression
|
|||||||
function expand() |expand()|.
|
function expand() |expand()|.
|
||||||
% Is replaced with the current file name. *:_%* *c_%*
|
% Is replaced with the current file name. *:_%* *c_%*
|
||||||
# Is replaced with the alternate file name. *:_#* *c_#*
|
# Is replaced with the alternate file name. *:_#* *c_#*
|
||||||
#n (where n is a number) is replaced with the file name of
|
#n (where n is a number) is replaced with *:_#0* *:_#n*
|
||||||
buffer n. "#0" is the same as "#".
|
the file name of buffer n. "#0" is the same as "#". *c_#n*
|
||||||
## Is replaced with all names in the argument list *:_##* *c_##*
|
## Is replaced with all names in the argument list *:_##* *c_##*
|
||||||
concatenated, separated by spaces. Each space in a name
|
concatenated, separated by spaces. Each space in a name
|
||||||
is preceded with a backslash.
|
is preceded with a backslash.
|
||||||
#<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
|
#<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
|
||||||
file name n. See |:oldfiles| or |v:oldfiles| to get the
|
file name n. See |:oldfiles| or |v:oldfiles| to get the
|
||||||
number. *E809*
|
number. *E809*
|
||||||
{only when compiled with the +eval and +viminfo features}
|
{only when compiled with the |+eval| and |+viminfo| features}
|
||||||
|
|
||||||
Note that these, except "#<n", give the file name as it was typed. If an
|
Note that these, except "#<n", give the file name as it was typed. If an
|
||||||
absolute path is needed (when using the file name from a different directory),
|
absolute path is needed (when using the file name from a different directory),
|
||||||
@@ -772,33 +782,38 @@ it, no matter how many backslashes.
|
|||||||
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
||||||
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
||||||
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
||||||
*E495* *E496* *E497* *E498* *E499* *E500*
|
*<slnum>* *E495* *E496* *E497* *E499* *E500*
|
||||||
Note: these are typed literally, they are not special keys!
|
Note: these are typed literally, they are not special keys!
|
||||||
<cword> is replaced with the word under the cursor (like |star|)
|
<cword> is replaced with the word under the cursor (like |star|)
|
||||||
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
||||||
<cfile> is replaced with the path name under the cursor (like what
|
<cfile> is replaced with the path name under the cursor (like what
|
||||||
|gf| uses)
|
|gf| uses)
|
||||||
<afile> when executing autocommands, is replaced with the file name
|
<afile> When executing autocommands, is replaced with the file name
|
||||||
for a file read or write
|
for a file read or write.
|
||||||
<abuf> when executing autocommands, is replaced with the currently
|
<abuf> When executing autocommands, is replaced with the currently
|
||||||
effective buffer number (for ":r file" and ":so file" it is
|
effective buffer number (for ":r file" and ":so file" it is
|
||||||
the current buffer, the file being read/sourced is not in a
|
the current buffer, the file being read/sourced is not in a
|
||||||
buffer).
|
buffer).
|
||||||
<amatch> when executing autocommands, is replaced with the match for
|
<amatch> When executing autocommands, is replaced with the match for
|
||||||
which this autocommand was executed. It differs from
|
which this autocommand was executed. It differs from
|
||||||
<afile> only when the file name isn't used to match with
|
<afile> only when the file name isn't used to match with
|
||||||
(for FileType, Syntax and SpellFileMissing events).
|
(for FileType, Syntax and SpellFileMissing events).
|
||||||
<sfile> when executing a ":source" command, is replaced with the
|
<sfile> When executing a ":source" command, is replaced with the
|
||||||
file name of the sourced file;
|
file name of the sourced file. *E498*
|
||||||
when executing a function, is replaced with
|
When executing a function, is replaced with
|
||||||
"function {function-name}"; function call nesting is
|
"function {function-name}"; function call nesting is
|
||||||
indicated like this:
|
indicated like this:
|
||||||
"function {function-name1}..{function-name2}". Note that
|
"function {function-name1}..{function-name2}". Note that
|
||||||
filename-modifiers are useless when <sfile> is used inside
|
filename-modifiers are useless when <sfile> is used inside
|
||||||
a function.
|
a function.
|
||||||
|
<slnum> When executing a ":source" command, is replaced with the
|
||||||
|
line number. *E842*
|
||||||
|
When executing a function it's the line number relative to
|
||||||
|
the start of the function.
|
||||||
|
|
||||||
*filename-modifiers*
|
*filename-modifiers*
|
||||||
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs*
|
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs*
|
||||||
|
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs*
|
||||||
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
|
The file name modifiers can be used after "%", "#", "#n", "<cfile>", "<sfile>",
|
||||||
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
|
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
|
||||||
These are not available when Vim has been compiled without the |+modify_fname|
|
These are not available when Vim has been compiled without the |+modify_fname|
|
||||||
@@ -850,7 +865,7 @@ These modifiers can be given, in this order:
|
|||||||
After this, the previous modifiers can be used again. For
|
After this, the previous modifiers can be used again. For
|
||||||
example ":p", to make a full path after the substitution.
|
example ":p", to make a full path after the substitution.
|
||||||
:gs?pat?sub?
|
:gs?pat?sub?
|
||||||
Substitute all occurrences of "path" with "sub". Otherwise
|
Substitute all occurrences of "pat" with "sub". Otherwise
|
||||||
this works like ":s".
|
this works like ":s".
|
||||||
|
|
||||||
Examples, when the file name is "src/version.c", current dir
|
Examples, when the file name is "src/version.c", current dir
|
||||||
@@ -942,7 +957,7 @@ for the file "$home" in the root directory. A few examples:
|
|||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
6. Command-line window *cmdline-window* *cmdwin*
|
6. Command-line window *cmdline-window* *cmdwin*
|
||||||
|
*command-line-window*
|
||||||
In the command-line window the command line can be edited just like editing
|
In the command-line window the command line can be edited just like editing
|
||||||
text in any window. It is a special kind of window, because you cannot leave
|
text in any window. It is a special kind of window, because you cannot leave
|
||||||
it in a normal way.
|
it in a normal way.
|
||||||
@@ -950,12 +965,12 @@ it in a normal way.
|
|||||||
feature}
|
feature}
|
||||||
|
|
||||||
|
|
||||||
OPEN
|
OPEN *c_CTRL-F* *q:* *q/* *q?*
|
||||||
|
|
||||||
There are two ways to open the command-line window:
|
There are two ways to open the command-line window:
|
||||||
1. From Command-line mode, use the key specified with the 'cedit' option.
|
1. From Command-line mode, use the key specified with the 'cedit' option.
|
||||||
The default is CTRL-F when 'compatible' is not set.
|
The default is CTRL-F when 'compatible' is not set.
|
||||||
2. From Normal mode, use the "q:", "q/" or "q?" command. *q:* *q/* *q?*
|
2. From Normal mode, use the "q:", "q/" or "q?" command.
|
||||||
This starts editing an Ex command-line ("q:") or search string ("q/" or
|
This starts editing an Ex command-line ("q:") or search string ("q/" or
|
||||||
"q?"). Note that this is not possible while recording is in progress (the
|
"q?"). Note that this is not possible while recording is in progress (the
|
||||||
"q" stops recording then).
|
"q" stops recording then).
|
||||||
@@ -985,7 +1000,8 @@ nesting.
|
|||||||
The command-line window is not a normal window. It is not possible to move to
|
The command-line window is not a normal window. It is not possible to move to
|
||||||
another window or edit another buffer. All commands that would do this are
|
another window or edit another buffer. All commands that would do this are
|
||||||
disabled in the command-line window. Of course it _is_ possible to execute
|
disabled in the command-line window. Of course it _is_ possible to execute
|
||||||
any command that you entered in the command-line window.
|
any command that you entered in the command-line window. Other text edits are
|
||||||
|
discarded when closing the window.
|
||||||
|
|
||||||
|
|
||||||
CLOSE *E199*
|
CLOSE *E199*
|
||||||
@@ -1020,8 +1036,8 @@ VARIOUS
|
|||||||
|
|
||||||
The command-line window cannot be used:
|
The command-line window cannot be used:
|
||||||
- when there already is a command-line window (no nesting)
|
- when there already is a command-line window (no nesting)
|
||||||
- for entering a encryption key or when using inputsecret()
|
- for entering an encryption key or when using inputsecret()
|
||||||
- when Vim was not compiled with the +vertsplit feature
|
- when Vim was not compiled with the |+vertsplit| feature
|
||||||
|
|
||||||
Some options are set when the command-line window is opened:
|
Some options are set when the command-line window is opened:
|
||||||
'filetype' "vim", when editing an Ex command-line; this starts Vim syntax
|
'filetype' "vim", when editing an Ex command-line; this starts Vim syntax
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*debug.txt* For Vim version 7.2. Last change: 2006 May 01
|
*debug.txt* For Vim version 7.3. Last change: 2010 Dec 22
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -10,7 +10,8 @@ This is for debugging Vim itself, when it doesn't work properly.
|
|||||||
For debugging Vim scripts, functions, etc. see |debug-scripts|
|
For debugging Vim scripts, functions, etc. see |debug-scripts|
|
||||||
|
|
||||||
1. Location of a crash, using gcc and gdb |debug-gcc|
|
1. Location of a crash, using gcc and gdb |debug-gcc|
|
||||||
2. Windows Bug Reporting |debug-win32|
|
2. Locating memory leaks |debug-leaks|
|
||||||
|
3. Windows Bug Reporting |debug-win32|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
@@ -20,8 +21,9 @@ When Vim crashes in one of the test files, and you are using gcc for
|
|||||||
compilation, here is what you can do to find out exactly where Vim crashes.
|
compilation, here is what you can do to find out exactly where Vim crashes.
|
||||||
This also applies when using the MingW tools.
|
This also applies when using the MingW tools.
|
||||||
|
|
||||||
1. Compile Vim with the "-g" option (there is a line in the Makefile for this,
|
1. Compile Vim with the "-g" option (there is a line in the src/Makefile for
|
||||||
which you can uncomment).
|
this, which you can uncomment). Also make sure "strip" is disabled (do not
|
||||||
|
install it, or use the line "STRIP = /bin/true").
|
||||||
|
|
||||||
2. Execute these commands (replace "11" with the test that fails): >
|
2. Execute these commands (replace "11" with the test that fails): >
|
||||||
cd testdir
|
cd testdir
|
||||||
@@ -38,13 +40,35 @@ This also applies when using the MingW tools.
|
|||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
2. Windows Bug Reporting *debug-win32*
|
2. Locating memory leaks *debug-leaks* *valgrind*
|
||||||
|
|
||||||
|
If you suspect Vim is leaking memory and you are using Linux, the valgrind
|
||||||
|
tool is very useful to pinpoint memory leaks.
|
||||||
|
|
||||||
|
First of all, build Vim with EXITFREE defined. Search for this in MAKEFILE
|
||||||
|
and uncomment the line.
|
||||||
|
|
||||||
|
Use this command to start Vim:
|
||||||
|
>
|
||||||
|
valgrind --log-file=valgrind.log --leak-check=full ./vim
|
||||||
|
|
||||||
|
Note: Vim will run much slower. If your .vimrc is big or you have several
|
||||||
|
plugins you need to be patient for startup, or run with the "-u NONE"
|
||||||
|
argument.
|
||||||
|
|
||||||
|
There are often a few leaks from libraries, such as getpwuid() and
|
||||||
|
XtVaAppCreateShell(). Those are unavoidable. The number of bytes should be
|
||||||
|
very small a Kbyte or less.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
3. Windows Bug Reporting *debug-win32*
|
||||||
|
|
||||||
If the Windows version of Vim crashes in a reproducible manner, you can take
|
If the Windows version of Vim crashes in a reproducible manner, you can take
|
||||||
some steps to provide a useful bug report.
|
some steps to provide a useful bug report.
|
||||||
|
|
||||||
|
|
||||||
GENERIC ~
|
3.1 GENERIC ~
|
||||||
|
|
||||||
You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
|
You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
|
||||||
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
|
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
|
||||||
@@ -66,7 +90,7 @@ a Vim executable compiled with the Borland compiler; gdb (see above
|
|||||||
|
|
||||||
|
|
||||||
*debug-vs2005*
|
*debug-vs2005*
|
||||||
2.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
|
3.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
|
||||||
|
|
||||||
First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't
|
First launch vim.exe or gvim.exe and then launch Visual Studio. (If you don't
|
||||||
have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a
|
have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a
|
||||||
@@ -100,7 +124,7 @@ installed as a just-in-time debugger. Use WinDbg, |debug-windbg|, if you
|
|||||||
need to save minidumps or you want a just-in-time (postmortem) debugger.
|
need to save minidumps or you want a just-in-time (postmortem) debugger.
|
||||||
|
|
||||||
*debug-windbg*
|
*debug-windbg*
|
||||||
2.3 Debugging Vim crashes with WinDbg ~
|
3.3 Debugging Vim crashes with WinDbg ~
|
||||||
|
|
||||||
See |get-ms-debuggers| to obtain a copy of WinDbg.
|
See |get-ms-debuggers| to obtain a copy of WinDbg.
|
||||||
|
|
||||||
@@ -126,7 +150,7 @@ To save a minidump, type the following at the WinDbg command line: >
|
|||||||
.dump vim.dmp
|
.dump vim.dmp
|
||||||
<
|
<
|
||||||
*debug-minidump*
|
*debug-minidump*
|
||||||
2.4 Opening a Minidump ~
|
3.4 Opening a Minidump ~
|
||||||
|
|
||||||
If you have a minidump file, you can open it in Visual Studio or in WinDbg.
|
If you have a minidump file, you can open it in Visual Studio or in WinDbg.
|
||||||
|
|
||||||
@@ -138,7 +162,7 @@ In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions in
|
|||||||
|debug-windbg| to set the Symbol File Path.
|
|debug-windbg| to set the Symbol File Path.
|
||||||
|
|
||||||
*get-ms-debuggers*
|
*get-ms-debuggers*
|
||||||
2.5 Obtaining Microsoft Debugging Tools ~
|
3.5 Obtaining Microsoft Debugging Tools ~
|
||||||
|
|
||||||
The Debugging Tools for Windows (including WinDbg) can be downloaded from
|
The Debugging Tools for Windows (including WinDbg) can be downloaded from
|
||||||
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
|
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*debugger.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
*debugger.txt* For Vim version 7.3. Last change: 2005 Mar 29
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Gordon Prieur
|
VIM REFERENCE MANUAL by Gordon Prieur
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*develop.txt* For Vim version 7.2. Last change: 2007 May 11
|
*develop.txt* For Vim version 7.3. Last change: 2008 Dec 17
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -64,7 +64,7 @@ completely different editor. Extensions are done with a "Vi spirit".
|
|||||||
hard time finding and remembering them. Keep in mind that more commands and
|
hard time finding and remembering them. Keep in mind that more commands and
|
||||||
options will be added later.
|
options will be added later.
|
||||||
- A feature that people do not know about is a useless feature. Don't add
|
- A feature that people do not know about is a useless feature. Don't add
|
||||||
obscure features, or at least add hints in documentation that they exists.
|
obscure features, or at least add hints in documentation that they exist.
|
||||||
- Minimize using CTRL and other modifiers, they are more difficult to type.
|
- Minimize using CTRL and other modifiers, they are more difficult to type.
|
||||||
- There are many first-time and inexperienced Vim users. Make it easy for
|
- There are many first-time and inexperienced Vim users. Make it easy for
|
||||||
them to start using Vim and learn more over time.
|
them to start using Vim and learn more over time.
|
||||||
@@ -323,7 +323,7 @@ Wrong: var=a*5;
|
|||||||
OK: var = a * 5;
|
OK: var = a * 5;
|
||||||
|
|
||||||
In general: Use empty lines to group lines of code together. Put a comment
|
In general: Use empty lines to group lines of code together. Put a comment
|
||||||
just above the group of lines. This makes it more easy to quickly see what is
|
just above the group of lines. This makes it easier to quickly see what is
|
||||||
being done.
|
being done.
|
||||||
|
|
||||||
OK: /* Prepare for building the table. */
|
OK: /* Prepare for building the table. */
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
*diff.txt* For Vim version 7.2. Last change: 2008 Jul 21
|
*diff.txt* For Vim version 7.3. Last change: 2010 Dec 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|
||||||
|
|
||||||
*diff* *vimdiff* *gvimdiff* *diff-mode*
|
*diff* *vimdiff* *gvimdiff* *diff-mode*
|
||||||
This file describes the +diff feature: Showing differences between two,
|
This file describes the |+diff| feature: Showing differences between two,
|
||||||
three or four versions of the same file.
|
three or four versions of the same file.
|
||||||
|
|
||||||
The basics are explained in section |08.7| of the user manual.
|
The basics are explained in section |08.7| of the user manual.
|
||||||
@@ -57,6 +57,7 @@ In each of the edited files these options are set:
|
|||||||
|
|
||||||
'diff' on
|
'diff' on
|
||||||
'scrollbind' on
|
'scrollbind' on
|
||||||
|
'cursorbind' on
|
||||||
'scrollopt' includes "hor"
|
'scrollopt' includes "hor"
|
||||||
'wrap' off
|
'wrap' off
|
||||||
'foldmethod' "diff"
|
'foldmethod' "diff"
|
||||||
@@ -64,6 +65,9 @@ In each of the edited files these options are set:
|
|||||||
|
|
||||||
These options are set local to the window. When editing another file they are
|
These options are set local to the window. When editing another file they are
|
||||||
reset to the global value.
|
reset to the global value.
|
||||||
|
The options can still be overruled from a modeline when re-editing the file.
|
||||||
|
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
|
||||||
|
set.
|
||||||
|
|
||||||
The differences shown are actually the differences in the buffer. Thus if you
|
The differences shown are actually the differences in the buffer. Thus if you
|
||||||
make changes after loading a file, these will be included in the displayed
|
make changes after loading a file, these will be included in the displayed
|
||||||
@@ -91,7 +95,7 @@ While already in Vim you can start diff mode in three ways.
|
|||||||
:diffthis Make the current window part of the diff windows. This sets
|
:diffthis Make the current window part of the diff windows. This sets
|
||||||
the options like for "vimdiff".
|
the options like for "vimdiff".
|
||||||
|
|
||||||
:diffpatch {patchfile} *:diffp* *:diffpatch*
|
:diffpatch {patchfile} *E816* *:diffp* *:diffpatch*
|
||||||
Use the current buffer, patch it with the diff found in
|
Use the current buffer, patch it with the diff found in
|
||||||
{patchfile} and open a buffer on the result. The options are
|
{patchfile} and open a buffer on the result. The options are
|
||||||
set as for "vimdiff".
|
set as for "vimdiff".
|
||||||
@@ -121,7 +125,8 @@ file for a moment and come back to the same file and be in diff mode again.
|
|||||||
*:diffo* *:diffoff*
|
*:diffo* *:diffoff*
|
||||||
:diffoff Switch off diff mode for the current window.
|
:diffoff Switch off diff mode for the current window.
|
||||||
|
|
||||||
:diffoff! Switch off diff mode for all windows in the current tab page.
|
:diffoff! Switch off diff mode for the current window and in all windows
|
||||||
|
in the current tab page where 'diff' is set.
|
||||||
|
|
||||||
The ":diffoff" command resets the relevant options to their default value.
|
The ":diffoff" command resets the relevant options to their default value.
|
||||||
This may be different from what the values were before diff mode was started,
|
This may be different from what the values were before diff mode was started,
|
||||||
@@ -129,6 +134,7 @@ the old values are not remembered.
|
|||||||
|
|
||||||
'diff' off
|
'diff' off
|
||||||
'scrollbind' off
|
'scrollbind' off
|
||||||
|
'cursorbind' off
|
||||||
'scrollopt' without "hor"
|
'scrollopt' without "hor"
|
||||||
'wrap' on
|
'wrap' on
|
||||||
'foldmethod' "manual"
|
'foldmethod' "manual"
|
||||||
@@ -237,7 +243,8 @@ that the buffers will be equal within the specified range.
|
|||||||
*:diffg* *:diffget*
|
*:diffg* *:diffget*
|
||||||
:[range]diffg[et] [bufspec]
|
:[range]diffg[et] [bufspec]
|
||||||
Modify the current buffer to undo difference with another
|
Modify the current buffer to undo difference with another
|
||||||
buffer. If [bufspec] is given, that buffer is used.
|
buffer. If [bufspec] is given, that buffer is used. If
|
||||||
|
[bufspec] refers to the current buffer then nothing happens.
|
||||||
Otherwise this only works if there is one other buffer in diff
|
Otherwise this only works if there is one other buffer in diff
|
||||||
mode.
|
mode.
|
||||||
See below for [range].
|
See below for [range].
|
||||||
@@ -254,10 +261,12 @@ that the buffers will be equal within the specified range.
|
|||||||
*do*
|
*do*
|
||||||
do Same as ":diffget" without argument or range. The "o" stands
|
do Same as ":diffget" without argument or range. The "o" stands
|
||||||
for "obtain" ("dg" can't be used, it could be the start of
|
for "obtain" ("dg" can't be used, it could be the start of
|
||||||
"dgg"!).
|
"dgg"!). Note: this doesn't work in Visual mode.
|
||||||
|
|
||||||
*dp*
|
*dp*
|
||||||
dp Same as ":diffput" without argument or range.
|
dp Same as ":diffput" without argument or range.
|
||||||
|
Note: this doesn't work in Visual mode.
|
||||||
|
|
||||||
|
|
||||||
When no [range] is given, the diff at the cursor position or just above it is
|
When no [range] is given, the diff at the cursor position or just above it is
|
||||||
affected. When [range] is used, Vim tries to only put or get the specified
|
affected. When [range] is used, Vim tries to only put or get the specified
|
||||||
@@ -323,7 +332,7 @@ The "1a2" item appends the line "bbb".
|
|||||||
The "4d4" item deletes the line "111".
|
The "4d4" item deletes the line "111".
|
||||||
The '7c7" item replaces the line "GGG" with "ggg".
|
The '7c7" item replaces the line "GGG" with "ggg".
|
||||||
|
|
||||||
When 'diffexpr' is not empty, Vim evaluates to obtain a diff file in the
|
When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
|
||||||
format mentioned. These variables are set to the file names used:
|
format mentioned. These variables are set to the file names used:
|
||||||
|
|
||||||
v:fname_in original file
|
v:fname_in original file
|
||||||
@@ -353,7 +362,7 @@ The "-a" argument is used to force comparing the files as text, comparing as
|
|||||||
binaries isn't useful. The "--binary" argument makes the files read in binary
|
binaries isn't useful. The "--binary" argument makes the files read in binary
|
||||||
mode, so that a CTRL-Z doesn't end the text on DOS.
|
mode, so that a CTRL-Z doesn't end the text on DOS.
|
||||||
|
|
||||||
*E97*
|
*E810* *E97*
|
||||||
Vim will do a test if the diff output looks alright. If it doesn't, you will
|
Vim will do a test if the diff output looks alright. If it doesn't, you will
|
||||||
get an error message. Possible causes:
|
get an error message. Possible causes:
|
||||||
- The "diff" program cannot be executed.
|
- The "diff" program cannot be executed.
|
||||||
@@ -364,9 +373,9 @@ get an error message. Possible causes:
|
|||||||
If it's not clear what the problem is set the 'verbose' option to one or more
|
If it's not clear what the problem is set the 'verbose' option to one or more
|
||||||
to see more messages.
|
to see more messages.
|
||||||
|
|
||||||
The self-installing Vim includes a diff program. If you don't have it you
|
The self-installing Vim for MS-Windows includes a diff program. If you don't
|
||||||
might want to download a diff.exe. For example from
|
have it you might want to download a diff.exe. For example from
|
||||||
http://jlb.twu.net/code/unixkit.php.
|
http://gnuwin32.sourceforge.net/packages/diffutils.htm.
|
||||||
|
|
||||||
|
|
||||||
USING PATCHES *diff-patchexpr*
|
USING PATCHES *diff-patchexpr*
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
*editing.txt* For Vim version 7.2. Last change: 2008 Aug 09
|
*editing.txt* For Vim version 7.3. Last change: 2011 Feb 26
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -270,16 +270,17 @@ If you want to keep the changed buffer without saving it, switch on the
|
|||||||
Normal mode. Otherwise same as |:edit|.
|
Normal mode. Otherwise same as |:edit|.
|
||||||
|
|
||||||
*:vie* *:view*
|
*:vie* *:view*
|
||||||
:vie[w] [++opt] [+cmd] file
|
:vie[w][!] [++opt] [+cmd] file
|
||||||
When used in Ex mode: Leave |Ex mode|, go back to
|
When used in Ex mode: Leave |Ex mode|, go back to
|
||||||
Normal mode. Otherwise same as |:edit|, but set
|
Normal mode. Otherwise same as |:edit|, but set
|
||||||
'readonly' option for this buffer. {not in Vi}
|
'readonly' option for this buffer. {not in Vi}
|
||||||
|
|
||||||
*CTRL-^* *CTRL-6*
|
*CTRL-^* *CTRL-6*
|
||||||
CTRL-^ Edit the alternate file (equivalent to ":e #").
|
CTRL-^ Edit the alternate file. Mostly the alternate file is
|
||||||
Mostly the alternate file is the previously edited
|
the previously edited file. This is a quick way to
|
||||||
file. This is a quick way to toggle between two
|
toggle between two files. It is equivalent to ":e #",
|
||||||
files.
|
except that it also works when there is no file name.
|
||||||
|
|
||||||
If the 'autowrite' or 'autowriteall' option is on and
|
If the 'autowrite' or 'autowriteall' option is on and
|
||||||
the buffer was changed, write it.
|
the buffer was changed, write it.
|
||||||
Mostly the ^ character is positioned on the 6 key,
|
Mostly the ^ character is positioned on the 6 key,
|
||||||
@@ -462,7 +463,10 @@ converted and illegal bytes. It can be one of three things:
|
|||||||
++bad=drop Remove the bad characters.
|
++bad=drop Remove the bad characters.
|
||||||
|
|
||||||
The default is like "++bad=?": Replace each bad character with a question
|
The default is like "++bad=?": Replace each bad character with a question
|
||||||
mark.
|
mark. In some places an inverted question mark is used (0xBF).
|
||||||
|
|
||||||
|
Note that not all commands use the ++bad argument, even though they do not
|
||||||
|
give an error when you add it. E.g. |:write|.
|
||||||
|
|
||||||
Note that when reading, the 'fileformat' and 'fileencoding' options will be
|
Note that when reading, the 'fileformat' and 'fileencoding' options will be
|
||||||
set to the used format. When writing this doesn't happen, thus a next write
|
set to the used format. When writing this doesn't happen, thus a next write
|
||||||
@@ -779,7 +783,7 @@ fourth file in the argument list. This happens when you do ":e file".
|
|||||||
LOCAL ARGUMENT LIST
|
LOCAL ARGUMENT LIST
|
||||||
|
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the |+windows| or |+listcmds| feature}
|
{not available when compiled without the |+windows| or |+listcmds| features}
|
||||||
|
|
||||||
*:arglocal*
|
*:arglocal*
|
||||||
:argl[ocal] Make a local copy of the global argument list.
|
:argl[ocal] Make a local copy of the global argument list.
|
||||||
@@ -837,7 +841,7 @@ USING THE ARGUMENT LIST
|
|||||||
Example: >
|
Example: >
|
||||||
:args *.c
|
:args *.c
|
||||||
:argdo set ff=unix | update
|
:argdo set ff=unix | update
|
||||||
This sets the 'fileformat' option to "unix" and writes the file if is now
|
This sets the 'fileformat' option to "unix" and writes the file if it is now
|
||||||
changed. This is done for all *.c files.
|
changed. This is done for all *.c files.
|
||||||
|
|
||||||
Example: >
|
Example: >
|
||||||
@@ -981,6 +985,11 @@ explanation of when the copy is made and when the file is renamed.
|
|||||||
If the creation of a backup file fails, the write is not done. If you want
|
If the creation of a backup file fails, the write is not done. If you want
|
||||||
to write anyway add a '!' to the command.
|
to write anyway add a '!' to the command.
|
||||||
|
|
||||||
|
*write-permissions*
|
||||||
|
When writing a new file the permissions are read-write. For unix the mask is
|
||||||
|
0666 with additionally umask applied. When writing a file that was read Vim
|
||||||
|
will preserve the permissions, but clear the s-bit.
|
||||||
|
|
||||||
*write-readonly*
|
*write-readonly*
|
||||||
When the 'cpoptions' option contains 'W', Vim will refuse to overwrite a
|
When the 'cpoptions' option contains 'W', Vim will refuse to overwrite a
|
||||||
readonly file. When 'W' is not present, ":w!" will overwrite a readonly file,
|
readonly file. When 'W' is not present, ":w!" will overwrite a readonly file,
|
||||||
@@ -1168,14 +1177,21 @@ If you want to always use ":confirm", set the 'confirm' option.
|
|||||||
*:browse* *:bro* *E338* *E614* *E615* *E616* *E578*
|
*:browse* *:bro* *E338* *E614* *E615* *E616* *E578*
|
||||||
:bro[wse] {command} Open a file selection dialog for an argument to
|
:bro[wse] {command} Open a file selection dialog for an argument to
|
||||||
{command}. At present this works for |:e|, |:w|,
|
{command}. At present this works for |:e|, |:w|,
|
||||||
|:r|, |:saveas|, |:sp|, |:mkexrc|, |:mkvimrc|,
|
|:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
|
||||||
|:mksession|, |:split|, |:vsplit|, and |:tabe|.
|
|:view|, |:sview|, |:r|, |:saveas|, |:sp|, |:mkexrc|,
|
||||||
|
|:mkvimrc|, |:mksession|, |:mkview|, |:split|,
|
||||||
|
|:vsplit|, |:tabe|, |:tabnew|, |:cfile|, |:cgetfile|,
|
||||||
|
|:caddfile|, |:lfile|, |:lgetfile|, |:laddfile|,
|
||||||
|
|:diffsplit|, |:diffpatch|, |:open|, |:pedit|,
|
||||||
|
|:redir|, |:source|, |:update|, |:visual|, |:vsplit|,
|
||||||
|
and |:qall| if 'confirm' is set.
|
||||||
{only in Win32, Athena, Motif, GTK and Mac GUI}
|
{only in Win32, Athena, Motif, GTK and Mac GUI}
|
||||||
When ":browse" is not possible you get an error
|
When ":browse" is not possible you get an error
|
||||||
message. If the |+browse| feature is missing or the
|
message. If the |+browse| feature is missing or the
|
||||||
{command} doesn't support browsing, the {command} is
|
{command} doesn't support browsing, the {command} is
|
||||||
executed without a dialog.
|
executed without a dialog.
|
||||||
":browse set" works like |:options|.
|
":browse set" works like |:options|.
|
||||||
|
See also |:oldfiles| for ":browse oldfiles".
|
||||||
|
|
||||||
The syntax is best shown via some examples: >
|
The syntax is best shown via some examples: >
|
||||||
:browse e $vim/foo
|
:browse e $vim/foo
|
||||||
@@ -1328,11 +1344,14 @@ There are a few things to remember when editing binary files:
|
|||||||
|
|
||||||
Vim is able to write files encrypted, and read them back. The encrypted text
|
Vim is able to write files encrypted, and read them back. The encrypted text
|
||||||
cannot be read without the right key.
|
cannot be read without the right key.
|
||||||
|
{only available when compiled with the |+cryptv| feature} *E833*
|
||||||
|
|
||||||
Note: The swapfile and text in memory is not encrypted. A system
|
The text in the swap file and the undo file is also encrypted. *E843*
|
||||||
administrator will be able to see your text while you are editing it.
|
|
||||||
When filtering text with ":!filter" or using ":w !command" the text is not
|
Note: The text in memory is not encrypted. A system administrator may be able
|
||||||
encrypted, this may reveal it to others.
|
to see your text while you are editing it. When filtering text with
|
||||||
|
":!filter" or using ":w !command" the text is not encrypted, this may reveal
|
||||||
|
it to others. The 'viminfo' file is not encrypted.
|
||||||
|
|
||||||
WARNING: If you make a typo when entering the key and then write the file and
|
WARNING: If you make a typo when entering the key and then write the file and
|
||||||
exit, the text will be lost!
|
exit, the text will be lost!
|
||||||
@@ -1358,10 +1377,38 @@ the file is encrypted.
|
|||||||
To disable the encryption, reset the 'key' option to an empty value: >
|
To disable the encryption, reset the 'key' option to an empty value: >
|
||||||
:set key=
|
:set key=
|
||||||
|
|
||||||
When reading a file that has been encrypted and this option is not empty, it
|
You can use the 'cryptmethod' option to select the type of encryption, use one
|
||||||
will be used for decryption. If the value is empty, you will be prompted to
|
of these two: >
|
||||||
enter the key. If you don't enter a key, the file is edited without being
|
:setlocal cm=zip " weak method, backwards compatible
|
||||||
decrypted.
|
:setlocal cm=blowfish " strong method
|
||||||
|
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 one of these in your
|
||||||
|
|vimrc| file: >
|
||||||
|
set cm=zip
|
||||||
|
set cm=blowfish
|
||||||
|
The message given for reading and writing a file will show "[crypted]" when
|
||||||
|
using zip, "[blowfish]" when using blowfish.
|
||||||
|
|
||||||
|
When writing an undo file, the same key and method will be used for the text
|
||||||
|
in the undo file. |persistent-undo|.
|
||||||
|
|
||||||
|
*E817* *E818* *E819* *E820*
|
||||||
|
When encryption does not work properly, you would be able to write your text
|
||||||
|
to a file and never be able to read it back. Therefore a test is performed to
|
||||||
|
check if the encryption works as expected. If you get one of these errors
|
||||||
|
don't write the file encrypted! You need to rebuild the Vim binary to fix
|
||||||
|
this.
|
||||||
|
|
||||||
|
*E831* This is an internal error, "cannot happen". If you can reproduce it,
|
||||||
|
please report to the developers.
|
||||||
|
|
||||||
|
When reading a file that has been encrypted and the 'key' option is not empty,
|
||||||
|
it will be used for decryption. If the value is empty, you will be prompted
|
||||||
|
to enter the key. If you don't enter a key, or you enter the wrong key, the
|
||||||
|
file is edited without being decrypted. There is no warning about using the
|
||||||
|
wrong key (this makes brute force methods to find the key more difficult).
|
||||||
|
|
||||||
If want to start reading a file that uses a different key, set the 'key'
|
If want to start reading a file that uses a different key, set the 'key'
|
||||||
option to an empty string, so that Vim will prompt for a new one. Don't use
|
option to an empty string, so that Vim will prompt for a new one. Don't use
|
||||||
@@ -1371,10 +1418,13 @@ your shoulder.
|
|||||||
Since the value of the 'key' option is supposed to be a secret, its value can
|
Since the value of the 'key' option is supposed to be a secret, its value can
|
||||||
never be viewed. You should not set this option in a vimrc file.
|
never be viewed. You should not set this option in a vimrc file.
|
||||||
|
|
||||||
An encrypted file can be recognized by the "file" command, if you add this
|
An encrypted file can be recognized by the "file" command, if you add these
|
||||||
line to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the
|
lines to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the
|
||||||
"magic" file: >
|
"magic" file: >
|
||||||
0 string VimCrypt~ Vim encrypted file
|
0 string VimCrypt~ Vim encrypted file
|
||||||
|
>9 string 01 - "zip" cryptmethod
|
||||||
|
>9 string 02 - "blowfish" cryptmethod
|
||||||
|
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
- Encryption is not possible when doing conversion with 'charconvert'.
|
- Encryption is not possible when doing conversion with 'charconvert'.
|
||||||
@@ -1389,13 +1439,15 @@ Notes:
|
|||||||
history, showing the 'key' value in a viminfo file.
|
history, showing the 'key' value in a viminfo file.
|
||||||
- There is never 100% safety. The encryption in Vim has not been tested for
|
- There is never 100% safety. The encryption in Vim has not been tested for
|
||||||
robustness.
|
robustness.
|
||||||
- The algorithm used is breakable. A 4 character key in about one hour, a 6
|
- The algorithm used for 'cryptmethod' "zip" is breakable. A 4 character key
|
||||||
character key in one day (on a Pentium 133 PC). This requires that you know
|
in about one hour, a 6 character key in one day (on a Pentium 133 PC). This
|
||||||
some text that must appear in the file. An expert can break it for any key.
|
requires that you know some text that must appear in the file. An expert
|
||||||
When the text has been decrypted, this also means that the key can be
|
can break it for any key. When the text has been decrypted, this also means
|
||||||
revealed, and other files encrypted with the same key can be decrypted.
|
that the key can be revealed, and other files encrypted with the same key
|
||||||
- Pkzip uses the same encryption, and US Govt has no objection to its export.
|
can be decrypted.
|
||||||
Pkzip's public file APPNOTE.TXT describes this algorithm in detail.
|
- Pkzip uses the same encryption as 'cryptmethod' "zip", and US Govt has no
|
||||||
|
objection to its export. Pkzip's public file APPNOTE.TXT describes this
|
||||||
|
algorithm in detail.
|
||||||
- Vim originates from the Netherlands. That is where the sources come from.
|
- Vim originates from the Netherlands. That is where the sources come from.
|
||||||
Thus the encryption code is not exported from the USA.
|
Thus the encryption code is not exported from the USA.
|
||||||
|
|
||||||
@@ -1456,6 +1508,17 @@ If you don't get warned often enough you can use the following command.
|
|||||||
may be specified by name, number or with a pattern.
|
may be specified by name, number or with a pattern.
|
||||||
|
|
||||||
|
|
||||||
|
*E813* *E814*
|
||||||
|
Vim will reload the buffer if you chose to. If a window is visible that
|
||||||
|
contains this buffer, the reloading will happen in the context of this window.
|
||||||
|
Otherwise a special window is used, so that most autocommands will work. You
|
||||||
|
can't close this window. A few other restrictions apply. Best is to make
|
||||||
|
sure nothing happens outside of the current buffer. E.g., setting
|
||||||
|
window-local options may end up in the wrong window. Splitting the window,
|
||||||
|
doing something there and closing it should be OK (if there are no side
|
||||||
|
effects from other autocommands). Closing unrelated windows and buffers will
|
||||||
|
get you into trouble.
|
||||||
|
|
||||||
Before writing a file the timestamp is checked. If it has changed, Vim will
|
Before writing a file the timestamp is checked. If it has changed, Vim will
|
||||||
ask if you really want to overwrite the file:
|
ask if you really want to overwrite the file:
|
||||||
|
|
||||||
@@ -1569,10 +1632,13 @@ There are three different types of searching:
|
|||||||
|
|
||||||
In the above example you might want to set path to: >
|
In the above example you might want to set path to: >
|
||||||
:set path=**,/u/user_x/**
|
:set path=**,/u/user_x/**
|
||||||
< This searches: >
|
< This searches:
|
||||||
/u/user_x/work/release/**
|
/u/user_x/work/release/** ~
|
||||||
/u/user_x/**
|
/u/user_x/** ~
|
||||||
< This searches the same directories, but in a different order.
|
This searches the same directories, but in a different order.
|
||||||
|
|
||||||
|
Note that completion for ":find", ":sfind", and ":tabfind" commands do not
|
||||||
|
currently work with 'path' items that contain a url or use the double star
|
||||||
|
(/usr/**2) or upward search (;) notations. >
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -17,10 +17,10 @@ e imposta le opzioni per farlo comportare come un editore "modeless".
|
|||||||
State sempre usando Vim, ma come un editore "posizionati-e-clicca".
|
State sempre usando Vim, ma come un editore "posizionati-e-clicca".
|
||||||
Simile all'uso di Notepad in MS-Windows.
|
Simile all'uso di Notepad in MS-Windows.
|
||||||
.B evim
|
.B evim
|
||||||
richiede la presenza della GUI, per avere a disposizione menu e barra
|
richiede la presenza della GUI, per avere a disposizione men<EFBFBD> e barra
|
||||||
strumenti.
|
strumenti.
|
||||||
.PP
|
.PP
|
||||||
Da usarsi solo da parte di chi non <20> in grado di lavorare con Vim nella
|
Da usarsi soltanto se non si <EFBFBD> in grado di lavorare con Vim nella
|
||||||
maniera usuale.
|
maniera usuale.
|
||||||
La modifica file sar<61> molto meno efficiente.
|
La modifica file sar<61> molto meno efficiente.
|
||||||
.PP
|
.PP
|
||||||
@@ -34,7 +34,7 @@ L'opzione 'insertmode'
|
|||||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
||||||
familiari tasti usati sotto MS-Windows.
|
familiari tasti usati sotto MS-Windows.
|
||||||
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
|
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
|
||||||
Usate CTRL-Q per ottenere quello chs si ottierrebbe con CTRL-V in Vim nativo.
|
Usate CTRL-Q per ottenere quello che si otterrebbe con CTRL-V in Vim nativo.
|
||||||
.SH OPZIONI
|
.SH OPZIONI
|
||||||
Vedere vim(1).
|
Vedere vim(1).
|
||||||
.SH FILE
|
.SH FILE
|
||||||
@@ -51,4 +51,4 @@ vim(1)
|
|||||||
Buona parte di
|
Buona parte di
|
||||||
.B Vim
|
.B Vim
|
||||||
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
<EFBFBD> stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||||
Vedere il Menu "Aiuto/Crediti".
|
Vedere il men<EFBFBD> "Aiuto/Crediti".
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ e imposta le opzioni per farlo comportare come un editore "modeless".
|
|||||||
State sempre usando Vim, ma come un editore "posizionati-e-clicca".
|
State sempre usando Vim, ma come un editore "posizionati-e-clicca".
|
||||||
Simile all'uso di Notepad in MS-Windows.
|
Simile all'uso di Notepad in MS-Windows.
|
||||||
.B evim
|
.B evim
|
||||||
richiede la presenza della GUI, per avere a disposizione menu e barra
|
richiede la presenza della GUI, per avere a disposizione menù e barra
|
||||||
strumenti.
|
strumenti.
|
||||||
.PP
|
.PP
|
||||||
Da usarsi solo da parte di chi non è in grado di lavorare con Vim nella
|
Da usarsi soltanto se non si è in grado di lavorare con Vim nella
|
||||||
maniera usuale.
|
maniera usuale.
|
||||||
La modifica file sarà molto meno efficiente.
|
La modifica file sarà molto meno efficiente.
|
||||||
.PP
|
.PP
|
||||||
@@ -34,7 +34,7 @@ L'opzione 'insertmode' è impostata per poter immettere del testo direttamente.
|
|||||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
||||||
familiari tasti usati sotto MS-Windows.
|
familiari tasti usati sotto MS-Windows.
|
||||||
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
|
CTRL-X taglia testo, CTRL-C copia testo e CTRL-V incolla testo.
|
||||||
Usate CTRL-Q per ottenere quello chs si ottierrebbe con CTRL-V in Vim nativo.
|
Usate CTRL-Q per ottenere quello che si otterrebbe con CTRL-V in Vim nativo.
|
||||||
.SH OPZIONI
|
.SH OPZIONI
|
||||||
Vedere vim(1).
|
Vedere vim(1).
|
||||||
.SH FILE
|
.SH FILE
|
||||||
@@ -51,4 +51,4 @@ vim(1)
|
|||||||
Buona parte di
|
Buona parte di
|
||||||
.B Vim
|
.B Vim
|
||||||
è stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
è stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||||
Vedere il Menu "Aiuto/Crediti".
|
Vedere il menù "Aiuto/Crediti".
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ uruchamia
|
|||||||
.B Vima
|
.B Vima
|
||||||
i ustawia opcje tak by zachowywa<77> si<73> jak edytor bez tryb<79>w.
|
i ustawia opcje tak by zachowywa<77> si<73> jak edytor bez tryb<79>w.
|
||||||
To jest ca<63>y czas Vim ale u<>ywany jako edytor wska<6B>-i-kliknij.
|
To jest ca<63>y czas Vim ale u<>ywany jako edytor wska<6B>-i-kliknij.
|
||||||
Zachowanie w stlu Notepada dla MS-Windows.
|
Zachowanie w stylu Notepada dla MS-Windows.
|
||||||
.B eVim
|
.B eVim
|
||||||
b<EFBFBD>dzie zawsze uruchomiony w GUI by w<><77>czy<7A> menu i pasek narz<72>dzi.
|
b<EFBFBD>dzie zawsze uruchomiony w GUI by w<><77>czy<7A> menu i pasek narz<72>dzi.
|
||||||
.PP
|
.PP
|
||||||
Przeznaczony tylko dla ludzi, kt<6B>rzy naprawd<77> nie potrafi<EFBFBD> pracowa<77>
|
Przeznaczony tylko dla ludzi, kt<6B>rzy naprawd<77> nie mog<EFBFBD> pracowa<77>
|
||||||
z Vimem w normalny spos<6F>b. Edycja b<>dzie o wiele mniej efektywna.
|
z Vimem w normalny spos<6F>b. Edycja b<>dzie o wiele mniej efektywna.
|
||||||
.PP
|
.PP
|
||||||
.B eview
|
.B eview
|
||||||
@@ -31,8 +31,8 @@ Opcja 'insertmode' jest ustawiona by mo
|
|||||||
tekst.
|
tekst.
|
||||||
.br
|
.br
|
||||||
Mapowania s<> ustawione tak by Kopiowanie i Wklejanie dzia<69>a<EFBFBD>o
|
Mapowania s<> ustawione tak by Kopiowanie i Wklejanie dzia<69>a<EFBFBD>o
|
||||||
z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
|
z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V
|
||||||
a CTRL-V wkleja. U<>yj CTRL-Q by uzyska<6B> oryginalne znaczenie
|
wkleja tekst. U<>yj CTRL-Q by uzyska<6B> oryginalne przeznaczenie
|
||||||
CTRL-V.
|
CTRL-V.
|
||||||
.SH OPCJE
|
.SH OPCJE
|
||||||
Zobacz vim(1).
|
Zobacz vim(1).
|
||||||
@@ -42,7 +42,7 @@ Zobacz vim(1).
|
|||||||
Skrypt uruchamiania dla eVima.
|
Skrypt uruchamiania dla eVima.
|
||||||
.SH ZNANY JAKO
|
.SH ZNANY JAKO
|
||||||
Znany jako "Vim dla frajer<65>w".
|
Znany jako "Vim dla frajer<65>w".
|
||||||
Je<EFBFBD>li u<>ywasz evima oczekuje si<73>, <20>e wyjmiesz chusteczk<7A> do nosa,
|
Je<EFBFBD>li u<>ywasz eVima oczekuje si<73>, <20>e wyjmiesz chusteczk<7A> do nosa,
|
||||||
zrobisz w<>z<EFBFBD><7A> w ka<6B>dym rogu i b<>dziesz to nosi<73> na g<>owie.
|
zrobisz w<>z<EFBFBD><7A> w ka<6B>dym rogu i b<>dziesz to nosi<73> na g<>owie.
|
||||||
.SH ZOBACZ TAK<EFBFBD>E
|
.SH ZOBACZ TAK<EFBFBD>E
|
||||||
vim(1)
|
vim(1)
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ uruchamia
|
|||||||
.B Vima
|
.B Vima
|
||||||
i ustawia opcje tak by zachowywał się jak edytor bez trybów.
|
i ustawia opcje tak by zachowywał się jak edytor bez trybów.
|
||||||
To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
|
To jest cały czas Vim ale używany jako edytor wskaż-i-kliknij.
|
||||||
Zachowanie w stlu Notepada dla MS-Windows.
|
Zachowanie w stylu Notepada dla MS-Windows.
|
||||||
.B eVim
|
.B eVim
|
||||||
będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
|
będzie zawsze uruchomiony w GUI by włączyć menu i pasek narzędzi.
|
||||||
.PP
|
.PP
|
||||||
Przeznaczony tylko dla ludzi, którzy naprawdę nie potrafią pracować
|
Przeznaczony tylko dla ludzi, którzy naprawdę nie mogą pracować
|
||||||
z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
|
z Vimem w normalny sposób. Edycja będzie o wiele mniej efektywna.
|
||||||
.PP
|
.PP
|
||||||
.B eview
|
.B eview
|
||||||
@@ -31,8 +31,8 @@ Opcja 'insertmode' jest ustawiona by można było od razu wpisywać
|
|||||||
tekst.
|
tekst.
|
||||||
.br
|
.br
|
||||||
Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
|
Mapowania są ustawione tak by Kopiowanie i Wklejanie działało
|
||||||
z klawiszami MS-Windows. CTRL-X wycina tekst, CTRL-C kopiuje
|
z klawiszami MS-Windows. CTRL-X wycina, CTRL-C kopiuje a CTRL-V
|
||||||
a CTRL-V wkleja. Użyj CTRL-Q by uzyskać oryginalne znaczenie
|
wkleja tekst. Użyj CTRL-Q by uzyskać oryginalne przeznaczenie
|
||||||
CTRL-V.
|
CTRL-V.
|
||||||
.SH OPCJE
|
.SH OPCJE
|
||||||
Zobacz vim(1).
|
Zobacz vim(1).
|
||||||
@@ -42,7 +42,7 @@ Zobacz vim(1).
|
|||||||
Skrypt uruchamiania dla eVima.
|
Skrypt uruchamiania dla eVima.
|
||||||
.SH ZNANY JAKO
|
.SH ZNANY JAKO
|
||||||
Znany jako "Vim dla frajerów".
|
Znany jako "Vim dla frajerów".
|
||||||
Jeśli używasz evima oczekuje się, że wyjmiesz chusteczkę do nosa,
|
Jeśli używasz eVima oczekuje się, że wyjmiesz chusteczkę do nosa,
|
||||||
zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
|
zrobisz węzęł w każdym rogu i będziesz to nosił na głowie.
|
||||||
.SH ZOBACZ TAKŻE
|
.SH ZOBACZ TAKŻE
|
||||||
vim(1)
|
vim(1)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*farsi.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
*farsi.txt* For Vim version 7.3. Last change: 2010 Aug 07
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
|
VIM REFERENCE MANUAL by Mortaza Ghassab Shiran
|
||||||
@@ -62,8 +62,8 @@ o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
|
|||||||
Farsi Fonts *farsi fonts*
|
Farsi Fonts *farsi fonts*
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
If the "extra" archive has been unpacked, the following files are found in the
|
The following files are found in the subdirectories of the '$VIM/farsi/fonts'
|
||||||
subdirectories of the '$VIM/farsi' directory:
|
directory:
|
||||||
|
|
||||||
+ far-a01.pcf X Windows fonts for Unix including Linux systems
|
+ far-a01.pcf X Windows fonts for Unix including Linux systems
|
||||||
+ far-a01.bf X Windows fonts for SunOS
|
+ far-a01.bf X Windows fonts for SunOS
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*filetype.txt* For Vim version 7.2. Last change: 2008 Jul 15
|
*filetype.txt* For Vim version 7.3. Last change: 2008 Jul 15
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
*fold.txt* For Vim version 7.2. Last change: 2007 May 11
|
*fold.txt* For Vim version 7.3. Last change: 2010 May 13
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|
||||||
|
|
||||||
Folding *Folding* *folding*
|
Folding *Folding* *folding* *folds*
|
||||||
|
|
||||||
You can find an introduction on folding in chapter 28 of the user manual.
|
You can find an introduction on folding in chapter 28 of the user manual.
|
||||||
|usr_28.txt|
|
|usr_28.txt|
|
||||||
@@ -15,7 +15,7 @@ You can find an introduction on folding in chapter 28 of the user manual.
|
|||||||
4. Behavior of folds |fold-behavior|
|
4. Behavior of folds |fold-behavior|
|
||||||
|
|
||||||
{Vi has no Folding}
|
{Vi has no Folding}
|
||||||
{not available when compiled without the +folding feature}
|
{not available when compiled without the |+folding| feature}
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
1. Fold methods *fold-methods*
|
1. Fold methods *fold-methods*
|
||||||
@@ -127,6 +127,9 @@ fold level. But note that foldlevel() may return -1 if the level is not known
|
|||||||
yet. And it returns the level at the start of the line, while a fold might
|
yet. And it returns the level at the start of the line, while a fold might
|
||||||
end in that line.
|
end in that line.
|
||||||
|
|
||||||
|
It may happened that folds are not updated properly. You can use |zx| or |zX|
|
||||||
|
to force updating folds.
|
||||||
|
|
||||||
|
|
||||||
SYNTAX *fold-syntax*
|
SYNTAX *fold-syntax*
|
||||||
|
|
||||||
@@ -274,7 +277,7 @@ zf{motion} or
|
|||||||
Also see |fold-create-marker|.
|
Also see |fold-create-marker|.
|
||||||
|
|
||||||
*zF*
|
*zF*
|
||||||
zF Create a fold for N lines. Works like "zf".
|
zF Create a fold for [count] lines. Works like "zf".
|
||||||
|
|
||||||
:{range}fo[ld] *:fold* *:fo*
|
:{range}fo[ld] *:fold* *:fo*
|
||||||
Create a fold for the lines in {range}. Works like "zf".
|
Create a fold for the lines in {range}. Works like "zf".
|
||||||
@@ -352,9 +355,13 @@ zv View cursor line: Open just enough folds to make the line in
|
|||||||
*zx*
|
*zx*
|
||||||
zx Update folds: Undo manually opened and closed folds: re-apply
|
zx Update folds: Undo manually opened and closed folds: re-apply
|
||||||
'foldlevel', then do "zv": View cursor line.
|
'foldlevel', then do "zv": View cursor line.
|
||||||
|
Also forces recomputing folds. This is useful when using
|
||||||
|
'foldexpr' and the buffer is changed in a way that results in
|
||||||
|
folds not to be updated properly.
|
||||||
|
|
||||||
*zX*
|
*zX*
|
||||||
zX Undo manually opened and closed folds: re-apply 'foldlevel'.
|
zX Undo manually opened and closed folds: re-apply 'foldlevel'.
|
||||||
|
Also forces recomputing folds, like |zx|.
|
||||||
|
|
||||||
*zm*
|
*zm*
|
||||||
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was
|
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was
|
||||||
@@ -399,24 +406,24 @@ MOVING OVER FOLDS ~
|
|||||||
[z Move to the start of the current open fold. If already at the
|
[z Move to the start of the current open fold. If already at the
|
||||||
start, move to the start of the fold that contains it. If
|
start, move to the start of the fold that contains it. If
|
||||||
there is no containing fold, the command fails.
|
there is no containing fold, the command fails.
|
||||||
When a count is used, repeats the command N times.
|
When a count is used, repeats the command [count] times.
|
||||||
|
|
||||||
*]z*
|
*]z*
|
||||||
]z Move to the end of the current open fold. If already at the
|
]z Move to the end of the current open fold. If already at the
|
||||||
end, move to the end of the fold that contains it. If there
|
end, move to the end of the fold that contains it. If there
|
||||||
is no containing fold, the command fails.
|
is no containing fold, the command fails.
|
||||||
When a count is used, repeats the command N times.
|
When a count is used, repeats the command [count] times.
|
||||||
|
|
||||||
*zj*
|
*zj*
|
||||||
zj Move downwards to the start of the next fold. A closed fold
|
zj Move downwards to the start of the next fold. A closed fold
|
||||||
is counted as one fold.
|
is counted as one fold.
|
||||||
When a count is used, repeats the command N times.
|
When a count is used, repeats the command [count] times.
|
||||||
This command can be used after an |operator|.
|
This command can be used after an |operator|.
|
||||||
|
|
||||||
*zk*
|
*zk*
|
||||||
zk Move upwards to the end of the previous fold. A closed fold
|
zk Move upwards to the end of the previous fold. A closed fold
|
||||||
is counted as one fold.
|
is counted as one fold.
|
||||||
When a count is used, repeats the command N times.
|
When a count is used, repeats the command [count] times.
|
||||||
This command can be used after an |operator|.
|
This command can be used after an |operator|.
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*ft_ada.txt* For Vim version 7.2. Last change: 2008 Jun 21
|
*ft_ada.txt* For Vim version 7.3. Last change: 2010 Jul 20
|
||||||
|
|
||||||
|
|
||||||
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
|
ADA FILE TYPE PLUG-INS REFERENCE MANUAL~
|
||||||
@@ -6,20 +6,20 @@
|
|||||||
ADA *ada.vim*
|
ADA *ada.vim*
|
||||||
|
|
||||||
1. Syntax Highlighting |ft-ada-syntax|
|
1. Syntax Highlighting |ft-ada-syntax|
|
||||||
2. Plug-in |ft-ada-plugin|
|
2. File type Plug-in |ft-ada-plugin|
|
||||||
3. Omni Completion |ft-ada-omni|
|
3. Omni Completion |ft-ada-omni|
|
||||||
3.1 Omni Completion with "gnat xref" |gnat-xref|
|
3.1 Omni Completion with "gnat xref" |gnat-xref|
|
||||||
3.2 Omni Completion with "ctags" |ada-ctags|
|
3.2 Omni Completion with "ctags" |ada-ctags|
|
||||||
4. Compiler Support |ada-compiler|
|
4. Compiler Support |ada-compiler|
|
||||||
4.1 GNAT |compiler-gnat|
|
4.1 GNAT |compiler-gnat|
|
||||||
4.1 Dec Ada |compiler-decada|
|
4.2 Dec Ada |compiler-decada|
|
||||||
5. References |ada-reference|
|
5. References |ada-reference|
|
||||||
5.1 Options |ft-ada-options|
|
5.1 Options |ft-ada-options|
|
||||||
5.2 Functions |ft-ada-functions|
|
5.2 Commands |ft-ada-commands|
|
||||||
5.3 Commands |ft-ada-commands|
|
5.3 Variables |ft-ada-variables|
|
||||||
5.4 Variables |ft-ada-variables|
|
5.4 Constants |ft-ada-constants|
|
||||||
5.5 Constants |ft-ada-constants|
|
5.5 Functions |ft-ada-functions|
|
||||||
8. Extra Plug-ins |ada-extra-plugins|
|
6. Extra Plug-ins |ada-extra-plugins|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
1. Syntax Highlighting ~
|
1. Syntax Highlighting ~
|
||||||
@@ -82,7 +82,7 @@ The Ada plug-in provides support for:
|
|||||||
- comment handling (|'comments'|, |'commentstring'|)
|
- comment handling (|'comments'|, |'commentstring'|)
|
||||||
|
|
||||||
The plug-in only activates the features of the Ada mode whenever an Ada
|
The plug-in only activates the features of the Ada mode whenever an Ada
|
||||||
files is opened and add adds Ada related entries to the main and pop-up menu.
|
file is opened and adds Ada related entries to the main and pop-up menu.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. Omni Completion ~
|
3. Omni Completion ~
|
||||||
@@ -142,7 +142,7 @@ support yet.
|
|||||||
4. Compiler Support ~
|
4. Compiler Support ~
|
||||||
*ada-compiler*
|
*ada-compiler*
|
||||||
|
|
||||||
The Ada mode supports more then one Ada compiler and will automatically load the
|
The Ada mode supports more than one Ada compiler and will automatically load the
|
||||||
compiler set in |g:ada_default_compiler| whenever an Ada source is opened. The
|
compiler set in |g:ada_default_compiler| whenever an Ada source is opened. The
|
||||||
provided compiler plug-ins are split into the actual compiler plug-in and a
|
provided compiler plug-ins are split into the actual compiler plug-in and a
|
||||||
collection of support functions and variables. This allows the easy
|
collection of support functions and variables. This allows the easy
|
||||||
@@ -154,7 +154,7 @@ environment.
|
|||||||
*compiler-gnat*
|
*compiler-gnat*
|
||||||
|
|
||||||
GNAT is the only free (beer and speech) Ada compiler available. There are
|
GNAT is the only free (beer and speech) Ada compiler available. There are
|
||||||
several version available which differentiate in the licence terms used.
|
several versions available which differ in the licence terms used.
|
||||||
|
|
||||||
The GNAT compiler plug-in will perform a compile on pressing <F7> and then
|
The GNAT compiler plug-in will perform a compile on pressing <F7> and then
|
||||||
immediately shows the result. You can set the project file to be used by
|
immediately shows the result. You can set the project file to be used by
|
||||||
@@ -163,7 +163,7 @@ setting:
|
|||||||
> call g:gnat.Set_Project_File ('my_project.gpr')
|
> call g:gnat.Set_Project_File ('my_project.gpr')
|
||||||
|
|
||||||
Setting a project file will also create a Vim session (|views-sessions|) so -
|
Setting a project file will also create a Vim session (|views-sessions|) so -
|
||||||
like with the GPS - opened files, window positions etc. will remembered
|
like with the GPS - opened files, window positions etc. will be remembered
|
||||||
separately for all projects.
|
separately for all projects.
|
||||||
|
|
||||||
*gnat_members*
|
*gnat_members*
|
||||||
@@ -176,11 +176,11 @@ g:gnat.Make()
|
|||||||
|
|
||||||
*g:gnat.Pretty()*
|
*g:gnat.Pretty()*
|
||||||
g:gnat.Pretty()
|
g:gnat.Pretty()
|
||||||
Calls|g:gnat.Pretty_Command|
|
Calls |g:gnat.Pretty_Program|
|
||||||
|
|
||||||
*g:gnat.Find()*
|
*g:gnat.Find()*
|
||||||
g:gnat.Find()
|
g:gnat.Find()
|
||||||
Calls|g:gnat.Find_Command|
|
Calls |g:gnat.Find_Program|
|
||||||
|
|
||||||
*g:gnat.Tags()*
|
*g:gnat.Tags()*
|
||||||
g:gnat.Tags()
|
g:gnat.Tags()
|
||||||
@@ -228,9 +228,9 @@ and HP Ada) is a fairly dated Ada 83 compiler. Support is basic: <F7> will
|
|||||||
compile the current unit.
|
compile the current unit.
|
||||||
|
|
||||||
The Dec Ada compiler expects the package name and not the file name to be
|
The Dec Ada compiler expects the package name and not the file name to be
|
||||||
passed a parameter. The compiler plug-in supports the usual file name
|
passed as a parameter. The compiler plug-in supports the usual file name
|
||||||
convention to convert the file into a unit name. For separates both '-' and
|
convention to convert the file into a unit name. Both '-' and '__' are allowed
|
||||||
'__' are allowed.
|
as separators.
|
||||||
|
|
||||||
*decada_members*
|
*decada_members*
|
||||||
DEC ADA OBJECT ~
|
DEC ADA OBJECT ~
|
||||||
@@ -246,7 +246,7 @@ g:decada.Unit_Name() function
|
|||||||
|
|
||||||
*g:decada.Make_Command*
|
*g:decada.Make_Command*
|
||||||
g:decada.Make_Command string
|
g:decada.Make_Command string
|
||||||
External command used for|g:decadat.Make()| (|'makeprg'|).
|
External command used for |g:decada.Make()| (|'makeprg'|).
|
||||||
|
|
||||||
*g:decada.Error_Format*
|
*g:decada.Error_Format*
|
||||||
g:decada.Error_Format| string
|
g:decada.Error_Format| string
|
||||||
@@ -262,7 +262,7 @@ g:decada.Error_Format| string
|
|||||||
|
|
||||||
*g:ada_standard_types*
|
*g:ada_standard_types*
|
||||||
g:ada_standard_types bool (true when exists)
|
g:ada_standard_types bool (true when exists)
|
||||||
Highlight types in package Standard (e.g., "Float")
|
Highlight types in package Standard (e.g., "Float").
|
||||||
|
|
||||||
*g:ada_space_errors*
|
*g:ada_space_errors*
|
||||||
*g:ada_no_trail_space_error*
|
*g:ada_no_trail_space_error*
|
||||||
@@ -279,13 +279,13 @@ g:ada_space_errors bool (true when exists)
|
|||||||
|
|
||||||
*g:ada_line_errors*
|
*g:ada_line_errors*
|
||||||
g:ada_line_errors bool (true when exists)
|
g:ada_line_errors bool (true when exists)
|
||||||
Highlight lines which are to long. Note: This highlighting
|
Highlight lines which are too long. Note: This highlighting
|
||||||
option is quite CPU intensive.
|
option is quite CPU intensive.
|
||||||
|
|
||||||
*g:ada_rainbow_color*
|
*g:ada_rainbow_color*
|
||||||
g:ada_rainbow_color bool (true when exists)
|
g:ada_rainbow_color bool (true when exists)
|
||||||
Use rainbow colours for '(' and ')'. You need the
|
Use rainbow colours for '(' and ')'. You need the
|
||||||
rainbow_parenthesis for this to work
|
rainbow_parenthesis for this to work.
|
||||||
|
|
||||||
*g:ada_folding*
|
*g:ada_folding*
|
||||||
g:ada_folding set ('sigpft')
|
g:ada_folding set ('sigpft')
|
||||||
@@ -313,7 +313,7 @@ g:ada_folding set ('sigpft')
|
|||||||
|
|
||||||
*g:ada_abbrev*
|
*g:ada_abbrev*
|
||||||
g:ada_abbrev bool (true when exists)
|
g:ada_abbrev bool (true when exists)
|
||||||
Add some abbreviations. This feature more or less superseded
|
Add some abbreviations. This feature is more or less superseded
|
||||||
by the various completion methods.
|
by the various completion methods.
|
||||||
|
|
||||||
*g:ada_withuse_ordinary*
|
*g:ada_withuse_ordinary*
|
||||||
@@ -359,23 +359,23 @@ g:ada_with_gnat_project_files bool (true when exists)
|
|||||||
|
|
||||||
*g:ada_default_compiler*
|
*g:ada_default_compiler*
|
||||||
g:ada_default_compiler string
|
g:ada_default_compiler string
|
||||||
set default compiler. Currently supported is 'gnat' and
|
set default compiler. Currently supported are 'gnat' and
|
||||||
'decada'.
|
'decada'.
|
||||||
|
|
||||||
An "exists" type is a boolean is considered true when the variable is defined
|
An "exists" type is a boolean considered true when the variable is defined and
|
||||||
and false when the variable is undefined. The value which the variable is
|
false when the variable is undefined. The value to which the variable is set
|
||||||
set makes no difference.
|
makes no difference.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.3 Commands ~
|
5.2 Commands ~
|
||||||
*ft-ada-commands*
|
*ft-ada-commands*
|
||||||
|
|
||||||
:AdaRainbow *:AdaRainbow*
|
:AdaRainbow *:AdaRainbow*
|
||||||
Toggles rainbow colour (|g:ada_rainbow_color|) mode for
|
Toggles rainbow colour (|g:ada_rainbow_color|) mode for
|
||||||
'(' and ')'
|
'(' and ')'.
|
||||||
|
|
||||||
:AdaLines *:AdaLines*
|
:AdaLines *:AdaLines*
|
||||||
Toggles line error (|g:ada_line_errors|) display
|
Toggles line error (|g:ada_line_errors|) display.
|
||||||
|
|
||||||
:AdaSpaces *:AdaSpaces*
|
:AdaSpaces *:AdaSpaces*
|
||||||
Toggles space error (|g:ada_space_errors|) display.
|
Toggles space error (|g:ada_space_errors|) display.
|
||||||
@@ -406,8 +406,8 @@ set makes no difference.
|
|||||||
g:gnat object
|
g:gnat object
|
||||||
Control object which manages GNAT compiles. The object
|
Control object which manages GNAT compiles. The object
|
||||||
is created when the first Ada source code is loaded provided
|
is created when the first Ada source code is loaded provided
|
||||||
that |g:ada_default_compiler|is set to 'gnat'. See|gnat_members|
|
that |g:ada_default_compiler| is set to 'gnat'. See
|
||||||
for details.
|
|gnat_members| for details.
|
||||||
|
|
||||||
*g:decada*
|
*g:decada*
|
||||||
g:decada object
|
g:decada object
|
||||||
@@ -424,7 +424,7 @@ All constants are locked. See |:lockvar| for details.
|
|||||||
|
|
||||||
*g:ada#WordRegex*
|
*g:ada#WordRegex*
|
||||||
g:ada#WordRegex string
|
g:ada#WordRegex string
|
||||||
Regular expression to search for Ada words
|
Regular expression to search for Ada words.
|
||||||
|
|
||||||
*g:ada#DotWordRegex*
|
*g:ada#DotWordRegex*
|
||||||
g:ada#DotWordRegex string
|
g:ada#DotWordRegex string
|
||||||
@@ -432,7 +432,7 @@ g:ada#DotWordRegex string
|
|||||||
|
|
||||||
*g:ada#Comment*
|
*g:ada#Comment*
|
||||||
g:ada#Comment string
|
g:ada#Comment string
|
||||||
Regular expression to search for Ada comments
|
Regular expression to search for Ada comments.
|
||||||
|
|
||||||
*g:ada#Keywords*
|
*g:ada#Keywords*
|
||||||
g:ada#Keywords list of dictionaries
|
g:ada#Keywords list of dictionaries
|
||||||
@@ -445,7 +445,7 @@ g:ada#Ctags_Kinds dictionary of lists
|
|||||||
for Ctags generates.
|
for Ctags generates.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
5.2 Functions ~
|
5.5 Functions ~
|
||||||
*ft-ada-functions*
|
*ft-ada-functions*
|
||||||
|
|
||||||
ada#Word([{line}, {col}]) *ada#Word()*
|
ada#Word([{line}, {col}]) *ada#Word()*
|
||||||
@@ -454,7 +454,7 @@ ada#Word([{line}, {col}]) *ada#Word()*
|
|||||||
|
|
||||||
ada#List_Tag([{line}, {col}]) *ada#Listtags()*
|
ada#List_Tag([{line}, {col}]) *ada#Listtags()*
|
||||||
List all occurrences of the Ada entity under the cursor (or at
|
List all occurrences of the Ada entity under the cursor (or at
|
||||||
given line/column) inside the quick-fix window
|
given line/column) inside the quick-fix window.
|
||||||
|
|
||||||
ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()*
|
ada#Jump_Tag ({ident}, {mode}) *ada#Jump_Tag()*
|
||||||
List all occurrences of the Ada entity under the cursor (or at
|
List all occurrences of the Ada entity under the cursor (or at
|
||||||
@@ -479,11 +479,11 @@ gnat#New ()
|
|||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
8. Extra Plugins ~
|
6. Extra Plugins ~
|
||||||
*ada-extra-plugins*
|
*ada-extra-plugins*
|
||||||
|
|
||||||
You can optionally install the following extra plug-in. They work well with Ada
|
You can optionally install the following extra plug-ins. They work well with
|
||||||
and enhance the ability of the Ada mode.:
|
Ada and enhance the ability of the Ada mode:
|
||||||
|
|
||||||
backup.vim
|
backup.vim
|
||||||
http://www.vim.org/scripts/script.php?script_id=1537
|
http://www.vim.org/scripts/script.php?script_id=1537
|
||||||
@@ -501,7 +501,7 @@ nerd_comments.vim
|
|||||||
matchit.vim
|
matchit.vim
|
||||||
http://www.vim.org/scripts/script.php?script_id=39
|
http://www.vim.org/scripts/script.php?script_id=39
|
||||||
'%' jumping for any language. The normal '%' jump only works for '{}'
|
'%' jumping for any language. The normal '%' jump only works for '{}'
|
||||||
style languages. The Ada mode will set the needed search patters.
|
style languages. The Ada mode will set the needed search patterns.
|
||||||
|
|
||||||
taglist.vim
|
taglist.vim
|
||||||
http://www.vim.org/scripts/script.php?script_id=273
|
http://www.vim.org/scripts/script.php?script_id=273
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*ft_sql.txt* For Vim version 7.2. Last change: Wed Apr 26 2006 3:05:33 PM
|
*ft_sql.txt* For Vim version 7.3. Last change: 2010 Jul 20
|
||||||
|
|
||||||
by David Fishburn
|
by David Fishburn
|
||||||
|
|
||||||
@@ -15,7 +15,8 @@ features for navigation, indentation and syntax highlighting.
|
|||||||
1.4 Macros |sql-macros|
|
1.4 Macros |sql-macros|
|
||||||
2. SQL Dialects |sql-dialects|
|
2. SQL Dialects |sql-dialects|
|
||||||
2.1 SQLSetType |SQLSetType|
|
2.1 SQLSetType |SQLSetType|
|
||||||
2.2 SQL Dialect Default |sql-type-default|
|
2.2 SQLGetType |SQLGetType|
|
||||||
|
2.3 SQL Dialect Default |sql-type-default|
|
||||||
3. Adding new SQL Dialects |sql-adding-dialects|
|
3. Adding new SQL Dialects |sql-adding-dialects|
|
||||||
4. OMNI SQL Completion |sql-completion|
|
4. OMNI SQL Completion |sql-completion|
|
||||||
4.1 Static mode |sql-completion-static|
|
4.1 Static mode |sql-completion-static|
|
||||||
@@ -204,7 +205,7 @@ Press any of the following keys: >
|
|||||||
*sqlanywhere*
|
*sqlanywhere*
|
||||||
*oracle* *plsql* *sqlj*
|
*oracle* *plsql* *sqlj*
|
||||||
*sqlserver*
|
*sqlserver*
|
||||||
*mysql* *postgres* *psql*
|
*mysql* *postgresql* *psql*
|
||||||
*informix*
|
*informix*
|
||||||
|
|
||||||
All relational databases support SQL. There is a portion of SQL that is
|
All relational databases support SQL. There is a portion of SQL that is
|
||||||
@@ -231,7 +232,7 @@ be nice to specify a default in your |vimrc|.
|
|||||||
|
|
||||||
2.1 SQLSetType *sqlsettype* *SQLSetType*
|
2.1 SQLSetType *sqlsettype* *SQLSetType*
|
||||||
--------------
|
--------------
|
||||||
For the people that work with many different databases, it would be nice to be
|
For the people that work with many different databases, it is nice to be
|
||||||
able to flip between the various vendors rules (indent, syntax) on a per
|
able to flip between the various vendors rules (indent, syntax) on a per
|
||||||
buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
|
buffer basis, at any time. The ftplugin/sql.vim file defines this function: >
|
||||||
SQLSetType
|
SQLSetType
|
||||||
@@ -259,7 +260,17 @@ of available Vim script names: >
|
|||||||
:SQL<Tab><space><Tab>
|
:SQL<Tab><space><Tab>
|
||||||
|
|
||||||
|
|
||||||
2.2 SQL Dialect Default *sql-type-default*
|
2.2 SQLGetType *sqlgettype* *SQLGetType*
|
||||||
|
--------------
|
||||||
|
At anytime you can determine which SQL dialect you are using by calling the
|
||||||
|
SQLGetType command. The ftplugin/sql.vim file defines this function: >
|
||||||
|
SQLGetType
|
||||||
|
|
||||||
|
This will echo: >
|
||||||
|
Current SQL dialect in use:sqlanywhere
|
||||||
|
|
||||||
|
|
||||||
|
2.3 SQL Dialect Default *sql-type-default*
|
||||||
-----------------------
|
-----------------------
|
||||||
As mentioned earlier, the default syntax rules for Vim is based on Oracle
|
As mentioned earlier, the default syntax rules for Vim is based on Oracle
|
||||||
(PL/SQL). You can override this default by placing one of the following in
|
(PL/SQL). You can override this default by placing one of the following in
|
||||||
@@ -331,6 +342,10 @@ The defaults static maps are: >
|
|||||||
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
|
imap <buffer> <C-C>T <C-\><C-O>:call sqlcomplete#Map('sqlType')<CR><C-X><C-O>
|
||||||
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
|
imap <buffer> <C-C>s <C-\><C-O>:call sqlcomplete#Map('sqlStatement')<CR><C-X><C-O>
|
||||||
|
|
||||||
|
The use of "<C-C>" can be user chosen by using the following in your |.vimrc| as it
|
||||||
|
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
|
The static maps (which are based on the syntax highlight groups) follow this
|
||||||
format: >
|
format: >
|
||||||
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
|
imap <buffer> <C-C>k <C-\><C-O>:call sqlcomplete#Map('sqlKeyword')<CR><C-X><C-O>
|
||||||
@@ -412,15 +427,19 @@ the space bar):
|
|||||||
View List - <C-C>v
|
View List - <C-C>v
|
||||||
Column List - <C-C>c
|
Column List - <C-C>c
|
||||||
|
|
||||||
Windows platform only - When viewing a popup window displaying the list
|
Drilling In / Out - When viewing a popup window displaying the list
|
||||||
of tables, you can press <C-Right>, this will
|
of tables, you can press <Right>, this will
|
||||||
replace the table currently highlighted with
|
replace the table currently highlighted with
|
||||||
the column list for that table.
|
the column list for that table.
|
||||||
- When viewing a popup window displaying the list
|
- When viewing a popup window displaying the list
|
||||||
of columns, you can press <C-Left>, this will
|
of columns, you can press <Left>, this will
|
||||||
replace the column list with the list of tables.
|
replace the column list with the list of tables.
|
||||||
- This allows you to quickly drill down into a
|
- This allows you to quickly drill down into a
|
||||||
table to view it's columns and back again.
|
table to view it's columns and back again.
|
||||||
|
- <Right> and <Left> can be also be chosen via
|
||||||
|
your |.vimrc| >
|
||||||
|
let g:ftplugin_sql_omni_key_right = '<Right>'
|
||||||
|
let g:ftplugin_sql_omni_key_left = '<Left>'
|
||||||
|
|
||||||
The SQL completion plugin caches various lists that are displayed in
|
The SQL completion plugin caches various lists that are displayed in
|
||||||
the popup window. This makes the re-displaying of these lists very
|
the popup window. This makes the re-displaying of these lists very
|
||||||
@@ -498,38 +517,32 @@ beginning with those characters. >
|
|||||||
The SQL completion plugin can also display a list of columns for particular
|
The SQL completion plugin can also display a list of columns for particular
|
||||||
tables. The column completion is trigger via <C-C>c.
|
tables. The column completion is trigger via <C-C>c.
|
||||||
|
|
||||||
NOTE: The following example uses <C-Right> to trigger a column list while
|
NOTE: The following example uses <Right> to trigger a column list while
|
||||||
the popup window is active. This map is only available on the Windows
|
the popup window is active.
|
||||||
platforms since *nix does not recognize CTRL and the right arrow held down
|
|
||||||
together. If you wish to enable this functionality on a *nix platform choose
|
|
||||||
a key and create one of these mappings (see |sql-completion-maps| for further
|
|
||||||
details on where to create this imap): >
|
|
||||||
imap <buffer> <your_keystroke> <C-R>=sqlcomplete#DrillIntoTable()<CR>
|
|
||||||
imap <buffer> <your_keystroke> <C-Y><C-\><C-O>:call sqlcomplete#Map('column')<CR><C-X><C-O>
|
|
||||||
|
|
||||||
Example of using column completion:
|
Example of using column completion:
|
||||||
- Press <C-C>t again to display the list of tables.
|
- Press <C-C>t again to display the list of tables.
|
||||||
- When the list is displayed in the completion window, press <C-Right>,
|
- When the list is displayed in the completion window, press <Right>,
|
||||||
this will replace the list of tables, with a list of columns for the
|
this will replace the list of tables, with a list of columns for the
|
||||||
table highlighted (after the same short delay).
|
table highlighted (after the same short delay).
|
||||||
- If you press <C-Left>, this will again replace the column list with the
|
- If you press <Left>, this will again replace the column list with the
|
||||||
list of tables. This allows you to drill into tables and column lists
|
list of tables. This allows you to drill into tables and column lists
|
||||||
very quickly.
|
very quickly.
|
||||||
- Press <C-Right> again while the same table is highlighted. You will
|
- Press <Right> again while the same table is highlighted. You will
|
||||||
notice there is no delay since the column list has been cached. If you
|
notice there is no delay since the column list has been cached. If you
|
||||||
change the schema of a cached table you can press <C-C>R, which
|
change the schema of a cached table you can press <C-C>R, which
|
||||||
clears the SQL completion cache.
|
clears the SQL completion cache.
|
||||||
- NOTE: <C-Right> and <C-Left> have been designed to work while the
|
- NOTE: <Right> and <Left> have been designed to work while the
|
||||||
completion window is active. If the completion popup window is
|
completion window is active. If the completion popup window is
|
||||||
not active, a normal <C-Right> or <C-Left> will be executed.
|
not active, a normal <Right> or <Left> will be executed.
|
||||||
|
|
||||||
Lets look how we can build a SQL statement dynamically. A select statement
|
Let's look at how we can build a SQL statement dynamically. A select statement
|
||||||
requires a list of columns. There are two ways to build a column list using
|
requires a list of columns. There are two ways to build a column list using
|
||||||
the SQL completion plugin. >
|
the SQL completion plugin. >
|
||||||
One column at a time:
|
One column at a time:
|
||||||
< 1. After typing SELECT press <C-C>t to display a list of tables.
|
< 1. After typing SELECT press <C-C>t to display a list of tables.
|
||||||
2. Choose a table from the list.
|
2. Choose a table from the list.
|
||||||
3. Press <C-Right> to display a list of columns.
|
3. Press <Right> to display a list of columns.
|
||||||
4. Choose the column from the list and press enter.
|
4. Choose the column from the list and press enter.
|
||||||
5. Enter a "," and press <C-C>c. Generating a column list
|
5. Enter a "," and press <C-C>c. Generating a column list
|
||||||
generally requires having the cursor on a table name. The plugin
|
generally requires having the cursor on a table name. The plugin
|
||||||
@@ -619,7 +632,7 @@ your |vimrc|: >
|
|||||||
MYTABLENAME --> M
|
MYTABLENAME --> M
|
||||||
|
|
||||||
omni_sql_ignorecase
|
omni_sql_ignorecase
|
||||||
< - Default: Current setting for|ignorecase|
|
< - Default: Current setting for 'ignorecase'
|
||||||
- Valid settings are 0 or 1.
|
- Valid settings are 0 or 1.
|
||||||
- When entering a few letters before initiating completion, the list
|
- When entering a few letters before initiating completion, the list
|
||||||
will be filtered to display only the entries which begin with the
|
will be filtered to display only the entries which begin with the
|
||||||
@@ -632,7 +645,7 @@ your |vimrc|: >
|
|||||||
- When completing tables, procedure or views and using dbext.vim 3.00
|
- When completing tables, procedure or views and using dbext.vim 3.00
|
||||||
or higher the list of objects will also include the owner name.
|
or higher the list of objects will also include the owner name.
|
||||||
When completing these objects and omni_sql_include_owner is enabled
|
When completing these objects and omni_sql_include_owner is enabled
|
||||||
the owner name will be replaced. >
|
the owner name will be be replaced. >
|
||||||
|
|
||||||
omni_sql_precache_syntax_groups
|
omni_sql_precache_syntax_groups
|
||||||
< - Default:
|
< - Default:
|
||||||
@@ -684,15 +697,15 @@ plugin. >
|
|||||||
<C-C>L
|
<C-C>L
|
||||||
< - Displays a comma separated list of columns for a specific table.
|
< - Displays a comma separated list of columns for a specific table.
|
||||||
This should only be used when the completion window is active. >
|
This should only be used when the completion window is active. >
|
||||||
<C-Right>
|
<Right>
|
||||||
< - Displays a list of columns for the table currently highlighted in
|
< - Displays a list of columns for the table currently highlighted in
|
||||||
the completion window. <C-Right> is not recognized on most Unix
|
the completion window. <Right> is not recognized on most Unix
|
||||||
systems, so this maps is only created on the Windows platform.
|
systems, so this maps is only created on the Windows platform.
|
||||||
If you would like the same feature on Unix, choose a different key
|
If you would like the same feature on Unix, choose a different key
|
||||||
and make the same map in your vimrc. >
|
and make the same map in your vimrc. >
|
||||||
<C-Left>
|
<Left>
|
||||||
< - Displays the list of tables.
|
< - Displays the list of tables.
|
||||||
<C-Left> is not recognized on most Unix systems, so this maps is
|
<Left> is not recognized on most Unix systems, so this maps is
|
||||||
only created on the Windows platform. If you would like the same
|
only created on the Windows platform. If you would like the same
|
||||||
feature on Unix, choose a different key and make the same map in
|
feature on Unix, choose a different key and make the same map in
|
||||||
your vimrc. >
|
your vimrc. >
|
||||||
@@ -725,8 +738,8 @@ platform you can also use <C-Space> or ALT keys.
|
|||||||
|
|
||||||
Many times SQL can be used with different filetypes. For example Perl, Java,
|
Many times SQL can be used with different filetypes. For example Perl, Java,
|
||||||
PHP, Javascript can all interact with a database. Often you need both the SQL
|
PHP, Javascript can all interact with a database. Often you need both the SQL
|
||||||
completion as well as the completion capabilities for the current language you
|
completion and the completion capabilities for the current language you are
|
||||||
are editing.
|
editing.
|
||||||
|
|
||||||
This can be enabled easily with the following steps (assuming a Perl file): >
|
This can be enabled easily with the following steps (assuming a Perl file): >
|
||||||
1. :e test.pl
|
1. :e test.pl
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui.txt* For Vim version 7.2. Last change: 2008 Jun 14
|
*gui.txt* For Vim version 7.3. Last change: 2010 Nov 03
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -35,13 +35,13 @@ GUI version of Vim with:
|
|||||||
The X11 version of Vim can run both in GUI and in non-GUI mode. See
|
The X11 version of Vim can run both in GUI and in non-GUI mode. See
|
||||||
|gui-x11-start|.
|
|gui-x11-start|.
|
||||||
|
|
||||||
*gui-init* *gvimrc* *.gvimrc* *_gvimrc*
|
*gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
|
||||||
The gvimrc file is where GUI-specific startup commands should be placed. It
|
The gvimrc file is where GUI-specific startup commands should be placed. It
|
||||||
is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC
|
is always sourced after the |vimrc| file. If you have one then the $MYGVIMRC
|
||||||
environment variable has its name.
|
environment variable has its name.
|
||||||
|
|
||||||
When the GUI starts up initializations are carried out, in this order:
|
When the GUI starts up initializations are carried out, in this order:
|
||||||
- The 'term' option is set to "builgin_gui" and terminal options are reset to
|
- The 'term' option is set to "builtin_gui" and terminal options are reset to
|
||||||
their default value for the GUI |terminal-options|.
|
their default value for the GUI |terminal-options|.
|
||||||
- If the system menu file exists, it is sourced. The name of this file is
|
- If the system menu file exists, it is sourced. The name of this file is
|
||||||
normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
|
normally "$VIMRUNTIME/menu.vim". You can check this with ":version". Also
|
||||||
@@ -156,26 +156,26 @@ configure which ones appear with the 'guioptions' option.
|
|||||||
|
|
||||||
The interface looks like this (with ":set guioptions=mlrb"):
|
The interface looks like this (with ":set guioptions=mlrb"):
|
||||||
|
|
||||||
+------------------------------+
|
+------------------------------+ `
|
||||||
| File Edit Help | <- Menu bar (m)
|
| File Edit Help | <- Menu bar (m) `
|
||||||
+-+--------------------------+-+
|
+-+--------------------------+-+ `
|
||||||
|^| |^|
|
|^| |^| `
|
||||||
|#| Text area. |#|
|
|#| Text area. |#| `
|
||||||
| | | |
|
| | | | `
|
||||||
|v|__________________________|v|
|
|v|__________________________|v| `
|
||||||
Normal status line -> |-+ File.c 5,2 +-|
|
Normal status line -> |-+ File.c 5,2 +-| `
|
||||||
between Vim windows |^|""""""""""""""""""""""""""|^|
|
between Vim windows |^|""""""""""""""""""""""""""|^| `
|
||||||
| | | |
|
| | | | `
|
||||||
| | Another file buffer. | |
|
| | Another file buffer. | | `
|
||||||
| | | |
|
| | | | `
|
||||||
|#| |#|
|
|#| |#| `
|
||||||
Left scrollbar (l) -> |#| |#| <- Right
|
Left scrollbar (l) -> |#| |#| <- Right `
|
||||||
|#| |#| scrollbar (r)
|
|#| |#| scrollbar (r) `
|
||||||
| | | |
|
| | | | `
|
||||||
|v| |v|
|
|v| |v| `
|
||||||
+-+--------------------------+-+
|
+-+--------------------------+-+ `
|
||||||
| |< #### >| | <- Bottom
|
| |< #### >| | <- Bottom `
|
||||||
+-+--------------------------+-+ scrollbar (b)
|
+-+--------------------------+-+ scrollbar (b) `
|
||||||
|
|
||||||
Any of the scrollbar or menu components may be turned off by not putting the
|
Any of the scrollbar or menu components may be turned off by not putting the
|
||||||
appropriate letter in the 'guioptions' string. The bottom scrollbar is
|
appropriate letter in the 'guioptions' string. The bottom scrollbar is
|
||||||
@@ -473,9 +473,11 @@ this line to your .vimrc file (NOT your .gvimrc file!): >
|
|||||||
:let did_install_default_menus = 1
|
:let did_install_default_menus = 1
|
||||||
If you also want to avoid the Syntax menu: >
|
If you also want to avoid the Syntax menu: >
|
||||||
:let did_install_syntax_menu = 1
|
:let did_install_syntax_menu = 1
|
||||||
If you do want the Syntax menu but not all the entries for each available
|
The first item in the Syntax menu can be used to show all available filetypes
|
||||||
syntax file (which take quite a bit of time to load): >
|
in the menu (which can take a bit of time to load). If you want to have all
|
||||||
:let skip_syntax_sel_menu = 1
|
filetypes already present at startup, add: >
|
||||||
|
:let do_syntax_sel_menu = 1
|
||||||
|
|
||||||
<
|
<
|
||||||
*console-menus*
|
*console-menus*
|
||||||
Although this documentation is in the GUI section, you can actually use menus
|
Although this documentation is in the GUI section, you can actually use menus
|
||||||
@@ -554,7 +556,7 @@ some modes:
|
|||||||
mode inserted appended ~
|
mode inserted appended ~
|
||||||
Normal nothing nothing
|
Normal nothing nothing
|
||||||
Visual <C-C> <C-\><C-G>
|
Visual <C-C> <C-\><C-G>
|
||||||
Insert <C-O>
|
Insert <C-\><C-O>
|
||||||
Cmdline <C-C> <C-\><C-G>
|
Cmdline <C-C> <C-\><C-G>
|
||||||
Op-pending <C-C> <C-\><C-G>
|
Op-pending <C-C> <C-\><C-G>
|
||||||
|
|
||||||
@@ -569,7 +571,7 @@ is equal to: >
|
|||||||
|
|
||||||
:nmenu File.Next :next^M
|
:nmenu File.Next :next^M
|
||||||
:vmenu File.Next ^C:next^M^\^G
|
:vmenu File.Next ^C:next^M^\^G
|
||||||
:imenu File.Next ^O:next^M
|
:imenu File.Next ^\^O:next^M
|
||||||
:cmenu File.Next ^C:next^M^\^G
|
:cmenu File.Next ^C:next^M^\^G
|
||||||
:omenu File.Next ^C:next^M^\^G
|
:omenu File.Next ^C:next^M^\^G
|
||||||
|
|
||||||
@@ -676,7 +678,7 @@ and Photon GUI. It should turn up in other GUIs in due course. The
|
|||||||
default toolbar is setup in menu.vim.
|
default toolbar is setup in menu.vim.
|
||||||
The display of the toolbar is controlled by the 'guioptions' letter 'T'. You
|
The display of the toolbar is controlled by the 'guioptions' letter 'T'. You
|
||||||
can thus have menu & toolbar together, or either on its own, or neither.
|
can thus have menu & toolbar together, or either on its own, or neither.
|
||||||
The appearance is controlled by the 'toolbar' option. You can chose between
|
The appearance is controlled by the 'toolbar' option. You can choose between
|
||||||
an image, text or both.
|
an image, text or both.
|
||||||
|
|
||||||
*toolbar-icon*
|
*toolbar-icon*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui_w16.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
*gui_w16.txt* For Vim version 7.3. Last change: 2005 Mar 29
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui_w32.txt* For Vim version 7.2. Last change: 2007 Aug 30
|
*gui_w32.txt* For Vim version 7.3. Last change: 2010 Dec 19
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -293,7 +293,9 @@ Normally, Vim waits for a command to complete before continuing (this makes
|
|||||||
sense for most shell commands which produce output for Vim to use). If you
|
sense for most shell commands which produce output for Vim to use). If you
|
||||||
want Vim to start a program and return immediately, you can use the following
|
want Vim to start a program and return immediately, you can use the following
|
||||||
syntax on W95 & NT: >
|
syntax on W95 & NT: >
|
||||||
:!start {command}
|
:!start [/min] {command}
|
||||||
|
The optional "/min" causes the window to be minimized.
|
||||||
|
|
||||||
On Win32s, you will have to go to another window instead. Don't forget that
|
On Win32s, you will have to go to another window instead. Don't forget that
|
||||||
you must tell Windows 3.1x to keep executing a DOS command in the background
|
you must tell Windows 3.1x to keep executing a DOS command in the background
|
||||||
while you switch back to Vim.
|
while you switch back to Vim.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*gui_x11.txt* For Vim version 7.2. Last change: 2007 Dec 09
|
*gui_x11.txt* For Vim version 7.3. Last change: 2010 Jul 20
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -453,14 +453,12 @@ searched for. If all three fail, the GUI will be disabled.
|
|||||||
For GTK+, Vim's configuration process requires that GTK+ be properly
|
For GTK+, Vim's configuration process requires that GTK+ be properly
|
||||||
installed. That is, the shell script 'gtk-config' must be in your PATH, and
|
installed. That is, the shell script 'gtk-config' must be in your PATH, and
|
||||||
you can already successful compile, build, and execute a GTK+ program. The
|
you can already successful compile, build, and execute a GTK+ program. The
|
||||||
reason for this is because the compiler flags (CFLAGS) and link flags
|
reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS)
|
||||||
(LDFLAGS) are obtained through the 'gtk-config' shell script.
|
are obtained through the 'gtk-config' shell script.
|
||||||
|
|
||||||
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
|
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
|
||||||
to ./configure. Optionally, support for GNOME 2 will be compiled if the
|
to ./configure. Optionally, support for GNOME 2 will be compiled if the
|
||||||
--enable-gnome-check option is also given. Note that the support for GTK+ 2
|
--enable-gnome-check option is also given.
|
||||||
is still experimental. However, many people have reported that it works just
|
|
||||||
fine for them.
|
|
||||||
|
|
||||||
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
|
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
|
||||||
files in a directory where configure doesn't look, edit the Makefile to enter
|
files in a directory where configure doesn't look, edit the Makefile to enter
|
||||||
@@ -468,15 +466,12 @@ the names of the directories. Search for "GUI_INC_LOC" for an example to set
|
|||||||
the Motif directories, "CONF_OPT_X" for Athena.
|
the Motif directories, "CONF_OPT_X" for Athena.
|
||||||
|
|
||||||
*gui-x11-gtk*
|
*gui-x11-gtk*
|
||||||
At the time of this writing, you may use either GTK+ version 1.0.6 or 1.2. It
|
At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It
|
||||||
is suggested that you use v1.2 since not all of Vim's GUI features are present
|
is suggested that you use GTK 2. The GTK 1 support will most likely be
|
||||||
if using v1.0.6. For instance, there are no tearoff menus present in v1.0.6.
|
dropped soon.
|
||||||
Using a version from GTK+'s CVS tree may or may not work, and is therefore not
|
|
||||||
supported and not recommended.
|
|
||||||
|
|
||||||
For the experimental GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or
|
For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2
|
||||||
GTK+ 2.2 series is recommended. CVS HEAD seems to work fine most of time as
|
series is recommended.
|
||||||
well.
|
|
||||||
|
|
||||||
Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
|
Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
|
||||||
has not been tested with Vim and is also unsupported. Also, it's unlikely to
|
has not been tested with Vim and is also unsupported. Also, it's unlikely to
|
||||||
@@ -540,13 +535,16 @@ Of these three, Vim uses PRIMARY when reading and writing the "* register
|
|||||||
register. Vim does not access the SECONDARY selection.
|
register. Vim does not access the SECONDARY selection.
|
||||||
|
|
||||||
Examples: (assuming the default option values)
|
Examples: (assuming the default option values)
|
||||||
- Select an URL in Visual mode in Vim. Go to a text field in Netscape and
|
- Select an URL in Visual mode in Vim. Go to your browser and click the
|
||||||
click the middle mouse button. The selected text will be inserted
|
middle mouse button in the URL text field. The selected text will be
|
||||||
(hopefully!).
|
inserted (hopefully!). Note: in Firefox you can set the
|
||||||
- Select some text in Netscape by dragging with the mouse. Go to Vim and
|
middlemouse.contentLoadURL preference to true in about:config, then the
|
||||||
|
selected URL will be used when pressing middle mouse button in most places
|
||||||
|
in the window.
|
||||||
|
- Select some text in your browser by dragging with the mouse. Go to Vim and
|
||||||
press the middle mouse button: The selected text is inserted.
|
press the middle mouse button: The selected text is inserted.
|
||||||
- Select some text in Vim and do "+y. Go to Netscape, select some text in a
|
- Select some text in Vim and do "+y. Go to your browser, select some text in
|
||||||
textfield by dragging with the mouse. Now use the right mouse button and
|
a textfield by dragging with the mouse. Now use the right mouse button and
|
||||||
select "Paste" from the popup menu. The selected text is overwritten by the
|
select "Paste" from the popup menu. The selected text is overwritten by the
|
||||||
text from Vim.
|
text from Vim.
|
||||||
Note that the text in the "+ register remains available when making a Visual
|
Note that the text in the "+ register remains available when making a Visual
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
*hangulin.txt* For Vim version 7.2. Last change: 2006 Apr 02
|
*hangulin.txt* For Vim version 7.3. Last change: 2009 Jun 24
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
||||||
|
|
||||||
|
NOTE: The |+hangul_input| feature is scheduled to be removed. If you want to
|
||||||
|
keep it, please send a message to the Vim user maillist.
|
||||||
|
|
||||||
|
|
||||||
Introduction *hangul*
|
Introduction *hangul*
|
||||||
------------
|
------------
|
||||||
It is to input hangul, the Korean language, with VIM GUI version.
|
It is to input hangul, the Korean language, with VIM GUI version.
|
||||||
@@ -96,6 +100,6 @@ Bug or Comment
|
|||||||
Send comments, patches and suggestions to:
|
Send comments, patches and suggestions to:
|
||||||
|
|
||||||
Chi-Deok Hwang <hwang@mizi.co.kr>
|
Chi-Deok Hwang <hwang@mizi.co.kr>
|
||||||
Nam SungHyun <namsh@kldp.org>
|
SungHyun Nam <goweol@gmail.com>
|
||||||
|
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*hebrew.txt* For Vim version 7.2. Last change: 2007 Jun 14
|
*hebrew.txt* For Vim version 7.3. Last change: 2007 Jun 14
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
|
VIM REFERENCE MANUAL by Ron Aaron (and Avner Lottem)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*help.txt* For Vim version 7.2. Last change: 2008 Jul 21
|
*help.txt* For Vim version 7.3. Last change: 2010 Jul 20
|
||||||
|
|
||||||
VIM - main help file
|
VIM - main help file
|
||||||
k
|
k
|
||||||
@@ -26,6 +26,7 @@ Get specific help: It is possible to go directly to whatever you want help
|
|||||||
Option ' :help 'textwidth'
|
Option ' :help 'textwidth'
|
||||||
Search for help: Type ":help word", then hit CTRL-D to see matching
|
Search for help: Type ":help word", then hit CTRL-D to see matching
|
||||||
help entries for "word".
|
help entries for "word".
|
||||||
|
Or use ":helpgrep word". |:helpgrep|
|
||||||
|
|
||||||
VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only
|
VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only
|
||||||
through the help of many others. See |credits|.
|
through the help of many others. See |credits|.
|
||||||
@@ -90,6 +91,7 @@ REFERENCE MANUAL: These files explain every detail of Vim. *reference_toc*
|
|||||||
General subjects ~
|
General subjects ~
|
||||||
|intro.txt| general introduction to Vim; notation used in help files
|
|intro.txt| general introduction to Vim; notation used in help files
|
||||||
|help.txt| overview and quick reference (this file)
|
|help.txt| overview and quick reference (this file)
|
||||||
|
|helphelp.txt| about using the help files
|
||||||
|index.txt| alphabetical index of all commands
|
|index.txt| alphabetical index of all commands
|
||||||
|help-tags| all the tags you can jump to (index of tags)
|
|help-tags| all the tags you can jump to (index of tags)
|
||||||
|howto.txt| how to do the most common editing tasks
|
|howto.txt| how to do the most common editing tasks
|
||||||
@@ -144,6 +146,7 @@ Special issues ~
|
|||||||
|hebrew.txt| Hebrew language support and editing
|
|hebrew.txt| Hebrew language support and editing
|
||||||
|russian.txt| Russian language support and editing
|
|russian.txt| Russian language support and editing
|
||||||
|ft_ada.txt| Ada (the programming language) support
|
|ft_ada.txt| Ada (the programming language) support
|
||||||
|
|ft_sql.txt| about the SQL filetype plugin
|
||||||
|hangulin.txt| Hangul (Korean) input mode
|
|hangulin.txt| Hangul (Korean) input mode
|
||||||
|rileft.txt| right-to-left editing mode
|
|rileft.txt| right-to-left editing mode
|
||||||
|
|
||||||
@@ -155,6 +158,7 @@ GUI ~
|
|||||||
|
|
||||||
Interfaces ~
|
Interfaces ~
|
||||||
|if_cscop.txt| using Cscope with Vim
|
|if_cscop.txt| using Cscope with Vim
|
||||||
|
|if_lua.txt| Lua interface
|
||||||
|if_mzsch.txt| MzScheme interface
|
|if_mzsch.txt| MzScheme interface
|
||||||
|if_perl.txt| Perl interface
|
|if_perl.txt| Perl interface
|
||||||
|if_pyth.txt| Python interface
|
|if_pyth.txt| Python interface
|
||||||
@@ -207,10 +211,11 @@ Now that you've jumped here with CTRL-] or a double mouse click, you can use
|
|||||||
CTRL-T, CTRL-O, g<RightMouse>, or <C-RightMouse> to go back to where you were.
|
CTRL-T, CTRL-O, g<RightMouse>, or <C-RightMouse> to go back to where you were.
|
||||||
|
|
||||||
Note that tags are within | characters, but when highlighting is enabled these
|
Note that tags are within | characters, but when highlighting is enabled these
|
||||||
are hidden. That makes it easier to read a command.
|
characters are hidden. That makes it easier to read a command.
|
||||||
|
|
||||||
Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim
|
Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim
|
||||||
will try to find help for it.
|
will try to find help for it. Especially for options in single quotes, e.g.
|
||||||
|
'compatible'.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
|
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
|
||||||
|
|||||||
349
runtime/doc/helphelp.txt
Normal file
349
runtime/doc/helphelp.txt
Normal file
@@ -0,0 +1,349 @@
|
|||||||
|
*helphelp.txt* For Vim version 7.3. Last change: 2010 Sep 14
|
||||||
|
|
||||||
|
|
||||||
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|
||||||
|
|
||||||
|
Help on help files *helphelp*
|
||||||
|
|
||||||
|
1. Help commands |online-help|
|
||||||
|
2. Translated help files |help-translated|
|
||||||
|
3. Writing help files |help-writing|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
1. Help commands *online-help*
|
||||||
|
|
||||||
|
*help* *<Help>* *:h* *:help* *<F1>* *i_<F1>* *i_<Help>*
|
||||||
|
<Help> or
|
||||||
|
:h[elp] Open a window and display the help file in read-only
|
||||||
|
mode. If there is a help window open already, use
|
||||||
|
that one. Otherwise, if the current window uses the
|
||||||
|
full width of the screen or is at least 80 characters
|
||||||
|
wide, the help window will appear just above the
|
||||||
|
current window. Otherwise the new window is put at
|
||||||
|
the very top.
|
||||||
|
The 'helplang' option is used to select a language, if
|
||||||
|
the main help file is available in several languages.
|
||||||
|
{not in Vi}
|
||||||
|
|
||||||
|
*{subject}* *E149* *E661*
|
||||||
|
:h[elp] {subject} Like ":help", additionally jump to the tag {subject}.
|
||||||
|
{subject} can include wildcards like "*", "?" and
|
||||||
|
"[a-z]":
|
||||||
|
:help z? jump to help for any "z" command
|
||||||
|
:help z. jump to the help for "z."
|
||||||
|
If there is no full match for the pattern, or there
|
||||||
|
are several matches, the "best" match will be used.
|
||||||
|
A sophisticated algorithm is used to decide which
|
||||||
|
match is better than another one. These items are
|
||||||
|
considered in the computation:
|
||||||
|
- A match with same case is much better than a match
|
||||||
|
with different case.
|
||||||
|
- A match that starts after a non-alphanumeric
|
||||||
|
character is better than a match in the middle of a
|
||||||
|
word.
|
||||||
|
- A match at or near the beginning of the tag is
|
||||||
|
better than a match further on.
|
||||||
|
- The more alphanumeric characters match, the better.
|
||||||
|
- The shorter the length of the match, the better.
|
||||||
|
|
||||||
|
The 'helplang' option is used to select a language, if
|
||||||
|
the {subject} is available in several languages.
|
||||||
|
To find a tag in a specific language, append "@ab",
|
||||||
|
where "ab" is the two-letter language code. See
|
||||||
|
|help-translated|.
|
||||||
|
|
||||||
|
Note that the longer the {subject} you give, the less
|
||||||
|
matches will be found. You can get an idea how this
|
||||||
|
all works by using commandline completion (type CTRL-D
|
||||||
|
after ":help subject" |c_CTRL-D|).
|
||||||
|
If there are several matches, you can have them listed
|
||||||
|
by hitting CTRL-D. Example: >
|
||||||
|
:help cont<Ctrl-D>
|
||||||
|
|
||||||
|
< Instead of typing ":help CTRL-V" to search for help
|
||||||
|
for CTRL-V you can type: >
|
||||||
|
:help ^V
|
||||||
|
< This also works together with other characters, for
|
||||||
|
example to find help for CTRL-V in Insert mode: >
|
||||||
|
:help i^V
|
||||||
|
<
|
||||||
|
To use a regexp |pattern|, first do ":help" and then
|
||||||
|
use ":tag {pattern}" in the help window. The
|
||||||
|
":tnext" command can then be used to jump to other
|
||||||
|
matches, "tselect" to list matches and choose one. >
|
||||||
|
:help index| :tse z.
|
||||||
|
|
||||||
|
< When there is no argument you will see matches for
|
||||||
|
"help", to avoid listing all possible matches (that
|
||||||
|
would be very slow).
|
||||||
|
The number of matches displayed is limited to 300.
|
||||||
|
|
||||||
|
This command can be followed by '|' and another
|
||||||
|
command, but you don't need to escape the '|' inside a
|
||||||
|
help command. So these both work: >
|
||||||
|
:help |
|
||||||
|
:help k| only
|
||||||
|
< Note that a space before the '|' is seen as part of
|
||||||
|
the ":help" argument.
|
||||||
|
You can also use <LF> or <CR> to separate the help
|
||||||
|
command from a following command. You need to type
|
||||||
|
CTRL-V first to insert the <LF> or <CR>. Example: >
|
||||||
|
:help so<C-V><CR>only
|
||||||
|
< {not in Vi}
|
||||||
|
|
||||||
|
:h[elp]! [subject] Like ":help", but in non-English help files prefer to
|
||||||
|
find a tag in a file with the same language as the
|
||||||
|
current file. See |help-translated|.
|
||||||
|
|
||||||
|
*:helpg* *:helpgrep*
|
||||||
|
:helpg[rep] {pattern}[@xx]
|
||||||
|
Search all help text files and make a list of lines
|
||||||
|
in which {pattern} matches. Jumps to the first match.
|
||||||
|
The optional [@xx] specifies that only matches in the
|
||||||
|
"xx" language are to be found.
|
||||||
|
You can navigate through the matches with the
|
||||||
|
|quickfix| commands, e.g., |:cnext| to jump to the
|
||||||
|
next one. Or use |:cwindow| to get the list of
|
||||||
|
matches in the quickfix window.
|
||||||
|
{pattern} is used as a Vim regexp |pattern|.
|
||||||
|
'ignorecase' is not used, add "\c" to ignore case.
|
||||||
|
Example for case sensitive search: >
|
||||||
|
:helpgrep Uganda
|
||||||
|
< Example for case ignoring search: >
|
||||||
|
:helpgrep uganda\c
|
||||||
|
< Example for searching in French help: >
|
||||||
|
:helpgrep backspace@fr
|
||||||
|
< The pattern does not support line breaks, it must
|
||||||
|
match within one line. You can use |:grep| instead,
|
||||||
|
but then you need to get the list of help files in a
|
||||||
|
complicated way.
|
||||||
|
Cannot be followed by another command, everything is
|
||||||
|
used as part of the pattern. But you can use
|
||||||
|
|:execute| when needed.
|
||||||
|
Compressed help files will not be searched (Fedora
|
||||||
|
compresses the help files).
|
||||||
|
{not in Vi}
|
||||||
|
|
||||||
|
*:lh* *:lhelpgrep*
|
||||||
|
:lh[elpgrep] {pattern}[@xx]
|
||||||
|
Same as ":helpgrep", except the location list is used
|
||||||
|
instead of the quickfix list. If the help window is
|
||||||
|
already opened, then the location list for that window
|
||||||
|
is used. Otherwise, a new help window is opened and
|
||||||
|
the location list for that window is set. The
|
||||||
|
location list for the current window is not changed.
|
||||||
|
|
||||||
|
*:exu* *:exusage*
|
||||||
|
:exu[sage] Show help on Ex commands. Added to simulate the Nvi
|
||||||
|
command. {not in Vi}
|
||||||
|
|
||||||
|
*:viu* *:viusage*
|
||||||
|
:viu[sage] Show help on Normal mode commands. Added to simulate
|
||||||
|
the Nvi command. {not in Vi}
|
||||||
|
|
||||||
|
When no argument is given to |:help| the file given with the 'helpfile' option
|
||||||
|
will be opened. Otherwise the specified tag is searched for in all "doc/tags"
|
||||||
|
files in the directories specified in the 'runtimepath' option.
|
||||||
|
|
||||||
|
The initial height of the help window can be set with the 'helpheight' option
|
||||||
|
(default 20).
|
||||||
|
|
||||||
|
Jump to specific subjects by using tags. This can be done in two ways:
|
||||||
|
- Use the "CTRL-]" command while standing on the name of a command or option.
|
||||||
|
This only works when the tag is a keyword. "<C-Leftmouse>" and
|
||||||
|
"g<LeftMouse>" work just like "CTRL-]".
|
||||||
|
- use the ":ta {subject}" command. This also works with non-keyword
|
||||||
|
characters.
|
||||||
|
|
||||||
|
Use CTRL-T or CTRL-O to jump back.
|
||||||
|
Use ":q" to close the help window.
|
||||||
|
|
||||||
|
If there are several matches for an item you are looking for, this is how you
|
||||||
|
can jump to each one of them:
|
||||||
|
1. Open a help window
|
||||||
|
2. Use the ":tag" command with a slash prepended to the tag. E.g.: >
|
||||||
|
:tag /min
|
||||||
|
3. Use ":tnext" to jump to the next matching tag.
|
||||||
|
|
||||||
|
It is possible to add help files for plugins and other items. You don't need
|
||||||
|
to change the distributed help files for that. See |add-local-help|.
|
||||||
|
|
||||||
|
To write a local help file, see |write-local-help|.
|
||||||
|
|
||||||
|
Note that the title lines from the local help files are automagically added to
|
||||||
|
the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|.
|
||||||
|
This is done when viewing the file in Vim, the file itself is not changed. It
|
||||||
|
is done by going through all help files and obtaining the first line of each
|
||||||
|
file. The files in $VIMRUNTIME/doc are skipped.
|
||||||
|
|
||||||
|
*help-xterm-window*
|
||||||
|
If you want to have the help in another xterm window, you could use this
|
||||||
|
command: >
|
||||||
|
:!xterm -e vim +help &
|
||||||
|
<
|
||||||
|
|
||||||
|
*:helpfind* *:helpf*
|
||||||
|
:helpf[ind] Like |:help|, but use a dialog to enter the argument.
|
||||||
|
Only for backwards compatibility. It now executes the
|
||||||
|
ToolBar.FindHelp menu entry instead of using a builtin
|
||||||
|
dialog. {only when compiled with |+GUI_GTK|}
|
||||||
|
{not in Vi}
|
||||||
|
|
||||||
|
*:helpt* *:helptags*
|
||||||
|
*E154* *E150* *E151* *E152* *E153* *E670*
|
||||||
|
:helpt[ags] [++t] {dir}
|
||||||
|
Generate the help tags file(s) for directory {dir}.
|
||||||
|
All "*.txt" and "*.??x" files in the directory are
|
||||||
|
scanned for a help tag definition in between stars.
|
||||||
|
The "*.??x" files are for translated docs, they
|
||||||
|
generate the "tags-??" file, see |help-translated|.
|
||||||
|
The generated tags files are sorted.
|
||||||
|
When there are duplicates an error message is given.
|
||||||
|
An existing tags file is silently overwritten.
|
||||||
|
The optional "++t" argument forces adding the
|
||||||
|
"help-tags" tag. This is also done when the {dir} is
|
||||||
|
equal to $VIMRUNTIME/doc.
|
||||||
|
To rebuild the help tags in the runtime directory
|
||||||
|
(requires write permission there): >
|
||||||
|
:helptags $VIMRUNTIME/doc
|
||||||
|
< {not in Vi}
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
2. Translated help files *help-translated*
|
||||||
|
|
||||||
|
It is possible to add translated help files, next to the original English help
|
||||||
|
files. Vim will search for all help in "doc" directories in 'runtimepath'.
|
||||||
|
This is only available when compiled with the |+multi_lang| feature.
|
||||||
|
|
||||||
|
At this moment translations are available for:
|
||||||
|
Chinese - multiple authors
|
||||||
|
French - translated by David Blanchet
|
||||||
|
Italian - translated by Antonio Colombo
|
||||||
|
Polish - translated by Mikolaj Machowski
|
||||||
|
Russian - translated by Vassily Ragosin
|
||||||
|
See the Vim website to find them: http://www.vim.org/translations.php
|
||||||
|
|
||||||
|
A set of translated help files consists of these files:
|
||||||
|
|
||||||
|
help.abx
|
||||||
|
howto.abx
|
||||||
|
...
|
||||||
|
tags-ab
|
||||||
|
|
||||||
|
"ab" is the two-letter language code. Thus for Italian the names are:
|
||||||
|
|
||||||
|
help.itx
|
||||||
|
howto.itx
|
||||||
|
...
|
||||||
|
tags-it
|
||||||
|
|
||||||
|
The 'helplang' option can be set to the preferred language(s). The default is
|
||||||
|
set according to the environment. Vim will first try to find a matching tag
|
||||||
|
in the preferred language(s). English is used when it cannot be found.
|
||||||
|
|
||||||
|
To find a tag in a specific language, append "@ab" to a tag, where "ab" is the
|
||||||
|
two-letter language code. Example: >
|
||||||
|
:he user-manual@it
|
||||||
|
:he user-manual@en
|
||||||
|
The first one finds the Italian user manual, even when 'helplang' is empty.
|
||||||
|
The second one finds the English user manual, even when 'helplang' is set to
|
||||||
|
"it".
|
||||||
|
|
||||||
|
When using command-line completion for the ":help" command, the "@en"
|
||||||
|
extension is only shown when a tag exists for multiple languages. When the
|
||||||
|
tag only exists for English "@en" is omitted.
|
||||||
|
|
||||||
|
When using |CTRL-]| or ":help!" in a non-English help file Vim will try to
|
||||||
|
find the tag in the same language. If not found then 'helplang' will be used
|
||||||
|
to select a language.
|
||||||
|
|
||||||
|
Help files must use latin1 or utf-8 encoding. Vim assumes the encoding is
|
||||||
|
utf-8 when finding non-ASCII characters in the first line. Thus you must
|
||||||
|
translate the header with "For Vim version".
|
||||||
|
|
||||||
|
The same encoding must be used for the help files of one language in one
|
||||||
|
directory. You can use a different encoding for different languages and use
|
||||||
|
a different encoding for help files of the same language but in a different
|
||||||
|
directory.
|
||||||
|
|
||||||
|
Hints for translators:
|
||||||
|
- Do not translate the tags. This makes it possible to use 'helplang' to
|
||||||
|
specify the preferred language. You may add new tags in your language.
|
||||||
|
- When you do not translate a part of a file, add tags to the English version,
|
||||||
|
using the "tag@en" notation.
|
||||||
|
- Make a package with all the files and the tags file available for download.
|
||||||
|
Users can drop it in one of the "doc" directories and start use it.
|
||||||
|
Report this to Bram, so that he can add a link on www.vim.org.
|
||||||
|
- Use the |:helptags| command to generate the tags files. It will find all
|
||||||
|
languages in the specified directory.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
3. Writing help files *help-writing*
|
||||||
|
|
||||||
|
For ease of use, a Vim help file for a plugin should follow the format of the
|
||||||
|
standard Vim help files. If you are writing a new help file it's best to copy
|
||||||
|
one of the existing files and use it as a template.
|
||||||
|
|
||||||
|
The first line in a help file should have the following format:
|
||||||
|
|
||||||
|
*helpfile_name.txt* For Vim version 7.3 Last change: 2010 June 4
|
||||||
|
|
||||||
|
The first field is a link to the help file name. The second field describes
|
||||||
|
the applicable Vim version. The last field specifies the last modification
|
||||||
|
date of the file. Each field is separated by a tab.
|
||||||
|
|
||||||
|
At the bottom of the help file, place a Vim modeline to set the 'textwidth'
|
||||||
|
and 'tabstop' options and the 'filetype' to 'help'. Never set a global option
|
||||||
|
in such a modeline, that can have consequences undesired by whoever reads that
|
||||||
|
help.
|
||||||
|
|
||||||
|
|
||||||
|
TAGS
|
||||||
|
|
||||||
|
To define a help tag, place the name between asterisks (*tag-name*). The
|
||||||
|
tag-name should be different from all the Vim help tag names and ideally
|
||||||
|
should begin with the name of the Vim plugin. The tag name is usually right
|
||||||
|
aligned on a line.
|
||||||
|
|
||||||
|
When referring to an existing help tag and to create a hot-link, place the
|
||||||
|
name between two bars (|) eg. |help-writing|.
|
||||||
|
|
||||||
|
When referring to a Vim option in the help file, place the option name between
|
||||||
|
two single quotes, eg. 'statusline'
|
||||||
|
|
||||||
|
|
||||||
|
HIGHLIGHTING
|
||||||
|
|
||||||
|
To define a column heading, use a tilde character at the end of the line.
|
||||||
|
This will highlight the column heading in a different color. E.g.
|
||||||
|
|
||||||
|
Column heading~
|
||||||
|
|
||||||
|
To separate sections in a help file, place a series of '=' characters in a
|
||||||
|
line starting from the first column. The section separator line is highlighted
|
||||||
|
differently.
|
||||||
|
|
||||||
|
To quote a block of ex-commands verbatim, place a greater than (>) character
|
||||||
|
at the end of the line before the block and a less than (<) character as the
|
||||||
|
first non-blank on a line following the block. Any line starting in column 1
|
||||||
|
also implicitly stops the block of ex-commands before it. E.g. >
|
||||||
|
function Example_Func()
|
||||||
|
echo "Example"
|
||||||
|
endfunction
|
||||||
|
<
|
||||||
|
|
||||||
|
The following are highlighted differently in a Vim help file:
|
||||||
|
- a special key name expressed either in <> notation as in <PageDown>, or
|
||||||
|
as a Ctrl character as in CTRL-X
|
||||||
|
- anything between {braces}, e.g. {lhs} and {rhs}
|
||||||
|
|
||||||
|
The word "Note", "Notes" and similar automagically receive distinctive
|
||||||
|
highlighting. So do these:
|
||||||
|
*Todo something to do
|
||||||
|
*Error something wrong
|
||||||
|
|
||||||
|
You can find the details in $VIMRUNTIME/syntax/help.vim
|
||||||
|
|
||||||
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
*howto.txt* For Vim version 7.2. Last change: 2006 Apr 02
|
*howto.txt* For Vim version 7.3. Last change: 2006 Apr 02
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_cscop.txt* For Vim version 7.2. Last change: 2009 Mar 18
|
*if_cscop.txt* For Vim version 7.3. Last change: 2010 Sep 29
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Andy Kahn
|
VIM REFERENCE MANUAL by Andy Kahn
|
||||||
@@ -112,8 +112,7 @@ The available subcommands are:
|
|||||||
:cscope add /projects/vim/cscope.out /usr/local/vim
|
:cscope add /projects/vim/cscope.out /usr/local/vim
|
||||||
:cscope add cscope.out /usr/local/vim -C
|
:cscope add cscope.out /usr/local/vim -C
|
||||||
<
|
<
|
||||||
*cscope-find* *cs-find*
|
*cscope-find* *cs-find* *E567*
|
||||||
*E565* *E567*
|
|
||||||
find : Query cscope. All cscope query options are available
|
find : Query cscope. All cscope query options are available
|
||||||
except option #5 ("Change this grep pattern").
|
except option #5 ("Change this grep pattern").
|
||||||
|
|
||||||
@@ -198,7 +197,7 @@ The available subcommands are:
|
|||||||
|
|
||||||
USAGE :cs help
|
USAGE :cs help
|
||||||
|
|
||||||
*E260* *E261*
|
*E261*
|
||||||
kill : Kill a cscope connection (or kill all cscope connections).
|
kill : Kill a cscope connection (or kill all cscope connections).
|
||||||
|
|
||||||
USAGE :cs kill {num|partial_name}
|
USAGE :cs kill {num|partial_name}
|
||||||
@@ -355,13 +354,8 @@ cscope version for Win32 see:
|
|||||||
The DJGPP-built version from http://cscope.sourceforge.net is known to not
|
The DJGPP-built version from http://cscope.sourceforge.net is known to not
|
||||||
work with Vim.
|
work with Vim.
|
||||||
|
|
||||||
There are a couple of hard-coded limitations:
|
Hard-coded limitation: doing a |:tjump| when |:cstag| searches the tag files
|
||||||
|
is not configurable (e.g., you can't do a tselect instead).
|
||||||
1. The maximum number of cscope connections allowed is 8. Do you
|
|
||||||
really need more?
|
|
||||||
|
|
||||||
2. Doing a |:tjump| when |:cstag| searches the tag files is not
|
|
||||||
configurable (e.g., you can't do a tselect instead).
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
6. Suggested usage *cscope-suggestions*
|
6. Suggested usage *cscope-suggestions*
|
||||||
@@ -486,7 +480,8 @@ bit of code) was adapted from the cscope interface in nvi. Please report
|
|||||||
any problems, suggestions, patches, et al., you have for the usage of
|
any problems, suggestions, patches, et al., you have for the usage of
|
||||||
cscope within Vim to him.
|
cscope within Vim to him.
|
||||||
*cscope-win32*
|
*cscope-win32*
|
||||||
For a cscope version for Win32 see: http://iamphet.nm.ru/cscope/index.html
|
For a cscope version for Win32 see:
|
||||||
|
http://code.google.com/p/cscope-win32/
|
||||||
|
|
||||||
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
|
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
|
||||||
him if you have Win32-specific issues.
|
him if you have Win32-specific issues.
|
||||||
|
|||||||
244
runtime/doc/if_lua.txt
Normal file
244
runtime/doc/if_lua.txt
Normal file
@@ -0,0 +1,244 @@
|
|||||||
|
*if_lua.txt* For Vim version 7.3. Last change: 2010 Jul 22
|
||||||
|
|
||||||
|
|
||||||
|
VIM REFERENCE MANUAL by Luis Carvalho
|
||||||
|
|
||||||
|
|
||||||
|
The Lua Interface to Vim *lua* *Lua*
|
||||||
|
|
||||||
|
1. Commands |lua-commands|
|
||||||
|
2. The vim module |lua-vim|
|
||||||
|
3. Buffer userdata |lua-buffer|
|
||||||
|
4. Window userdata |lua-window|
|
||||||
|
|
||||||
|
{Vi does not have any of these commands}
|
||||||
|
|
||||||
|
The Lua interface is available only when Vim was compiled with the
|
||||||
|
|+lua| feature.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
1. Commands *lua-commands*
|
||||||
|
|
||||||
|
*:lua*
|
||||||
|
:[range]lua {chunk}
|
||||||
|
Execute Lua chunk {chunk}. {not in Vi}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>
|
||||||
|
:lua print("Hello, Vim!")
|
||||||
|
:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
|
||||||
|
<
|
||||||
|
|
||||||
|
:[range]lua << {endmarker}
|
||||||
|
{script}
|
||||||
|
{endmarker}
|
||||||
|
Execute Lua script {script}. {not in Vi}
|
||||||
|
Note: This command doesn't work when the Lua
|
||||||
|
feature wasn't compiled in. To avoid errors, see
|
||||||
|
|script-here|.
|
||||||
|
|
||||||
|
{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.
|
||||||
|
This form of the |:lua| command is mainly useful for including Lua code
|
||||||
|
in Vim scripts.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>
|
||||||
|
function! CurrentLineInfo()
|
||||||
|
lua << EOF
|
||||||
|
local linenr = vim.window().line
|
||||||
|
local curline = vim.buffer()[linenr]
|
||||||
|
print(string.format("Current line [%d] has %d chars",
|
||||||
|
linenr, #curline))
|
||||||
|
EOF
|
||||||
|
endfunction
|
||||||
|
<
|
||||||
|
|
||||||
|
*:luado*
|
||||||
|
:[range]luado {body} Execute Lua function "function (line) {body} end" for
|
||||||
|
each line in the [range], with the function argument
|
||||||
|
being set to the text of each line in turn, without a
|
||||||
|
trailing <EOL>. If the value returned by the function
|
||||||
|
is a string it becomes the text of the line in the
|
||||||
|
current turn. The default for [range] is the whole
|
||||||
|
file: "1,$". {not in Vi}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>
|
||||||
|
:luado return string.format("%s\t%d", line:reverse(), #line)
|
||||||
|
|
||||||
|
:lua require"lpeg"
|
||||||
|
:lua -- balanced parenthesis grammar:
|
||||||
|
:lua bp = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }
|
||||||
|
:luado if bp:match(line) then return "-->\t" .. line end
|
||||||
|
<
|
||||||
|
|
||||||
|
*:luafile*
|
||||||
|
:[range]luafile {file}
|
||||||
|
Execute Lua script in {file}. {not in Vi}
|
||||||
|
The whole argument is used as a single file name.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>
|
||||||
|
:luafile script.lua
|
||||||
|
:luafile %
|
||||||
|
<
|
||||||
|
|
||||||
|
All these commands execute a Lua chunk from either the command line (:lua and
|
||||||
|
:luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
|
||||||
|
interpreter, each chunk has its own scope and so only global variables are
|
||||||
|
shared between command calls. Lua default libraries "table", "string", "math",
|
||||||
|
and "package" are available, "io" and "debug" are not, and "os" is restricted
|
||||||
|
to functions "date", "clock", "time", "difftime", and "getenv". In addition,
|
||||||
|
Lua "print" function has its output redirected to the Vim message area, with
|
||||||
|
arguments separated by a white space instead of a tab.
|
||||||
|
|
||||||
|
Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
|
||||||
|
and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
|
||||||
|
procedures that alter buffer content, open new buffers, and change cursor
|
||||||
|
position are restricted when the command is executed in the |sandbox|.
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
2. The vim module *lua-vim*
|
||||||
|
|
||||||
|
Lua interfaces Vim through the "vim" module. The first and last line of the
|
||||||
|
input range are stored in "vim.firstline" and "vim.lastline" respectively. The
|
||||||
|
module also includes routines for buffer, window, and current line queries,
|
||||||
|
Vim evaluation and command execution, and others.
|
||||||
|
|
||||||
|
vim.isbuffer(value) Returns 'true' (boolean, not string) if
|
||||||
|
"value" is a buffer userdata and 'false'
|
||||||
|
otherwise (see |lua-buffer|).
|
||||||
|
|
||||||
|
vim.buffer([arg]) If "arg" is a number, returns buffer with
|
||||||
|
number "arg" in the buffer list or, if "arg"
|
||||||
|
is a string, returns buffer whose full or short
|
||||||
|
name is "arg". In both cases, returns 'nil'
|
||||||
|
(nil value, not string) if the buffer is not
|
||||||
|
found. Otherwise, if "toboolean(arg)" is
|
||||||
|
'true' returns the first buffer in the buffer
|
||||||
|
list or else the current buffer.
|
||||||
|
|
||||||
|
vim.iswindow(value) Returns 'true' (boolean, not string) if
|
||||||
|
"value" is a window userdata and
|
||||||
|
'false' otherwise (see |lua-window|).
|
||||||
|
|
||||||
|
vim.window([arg]) If "arg" is a number, returns window with
|
||||||
|
number "arg" or 'nil' (nil value, not string)
|
||||||
|
if not found. Otherwise, if "toboolean(arg)"
|
||||||
|
is 'true' returns the first window or else the
|
||||||
|
current window.
|
||||||
|
|
||||||
|
vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
|
||||||
|
Examples: >
|
||||||
|
:lua vim.command"set tw=60"
|
||||||
|
:lua vim.command"normal ddp"
|
||||||
|
<
|
||||||
|
vim.eval({expr}) Evaluates expression {expr} (see |expression|),
|
||||||
|
converts the result to Lua, and returns it.
|
||||||
|
Vim strings and numbers are directly converted
|
||||||
|
to Lua strings and numbers respectively. Vim
|
||||||
|
lists and dictionaries are converted to Lua
|
||||||
|
tables (lists become integer-keyed tables).
|
||||||
|
Examples: >
|
||||||
|
:lua tw = vim.eval"&tw"
|
||||||
|
:lua print(vim.eval"{'a': 'one'}".a)
|
||||||
|
<
|
||||||
|
vim.line() Returns the current line (without the trailing
|
||||||
|
<EOL>), a Lua string.
|
||||||
|
|
||||||
|
vim.beep() Beeps.
|
||||||
|
|
||||||
|
vim.open({fname}) Opens a new buffer for file {fname} and
|
||||||
|
returns it. Note that the buffer is not set as
|
||||||
|
current.
|
||||||
|
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
3. Buffer userdata *lua-buffer*
|
||||||
|
|
||||||
|
Buffer userdata represent vim buffers. A buffer userdata "b" has the following
|
||||||
|
properties and methods:
|
||||||
|
|
||||||
|
Properties
|
||||||
|
----------
|
||||||
|
o "b()" sets "b" as the current buffer.
|
||||||
|
o "#b" is the number of lines in buffer "b".
|
||||||
|
o "b[k]" represents line number k: "b[k] = newline" replaces line k
|
||||||
|
with string "newline" and "b[k] = nil" deletes line k.
|
||||||
|
o "b.name" contains the short name of buffer "b" (read-only).
|
||||||
|
o "b.fname" contains the full name of buffer "b" (read-only).
|
||||||
|
o "b.number" contains the position of buffer "b" in the buffer list
|
||||||
|
(read-only).
|
||||||
|
|
||||||
|
Methods
|
||||||
|
-------
|
||||||
|
o "b:insert(newline[, pos])" inserts string "newline" at (optional)
|
||||||
|
position "pos" in the buffer. The default value for "pos" is
|
||||||
|
"#b + 1". If "pos == 0" then "newline" becomes the first line in
|
||||||
|
the buffer.
|
||||||
|
o "b:next()" returns the buffer next to "b" in the buffer list.
|
||||||
|
o "b:previous()" returns the buffer previous to "b" in the buffer
|
||||||
|
list.
|
||||||
|
o "b:isvalid()" returns 'true' (boolean) if buffer "b" corresponds to
|
||||||
|
a "real" (not freed from memory) Vim buffer.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>
|
||||||
|
:lua b = vim.buffer() -- current buffer
|
||||||
|
:lua print(b.name, b.number)
|
||||||
|
:lua b[1] = "first line"
|
||||||
|
:lua b:insert("FIRST!", 0)
|
||||||
|
:lua b[1] = nil -- delete top line
|
||||||
|
:lua for i=1,3 do b:insert(math.random()) end
|
||||||
|
:3,4lua for i=vim.lastline,vim.firstline,-1 do b[i] = nil end
|
||||||
|
:lua vim.open"myfile"() -- open buffer and set it as current
|
||||||
|
|
||||||
|
function! ListBuffers()
|
||||||
|
lua << EOF
|
||||||
|
local b = vim.buffer(true) -- first buffer in list
|
||||||
|
while b ~= nil do
|
||||||
|
print(b.number, b.name, #b)
|
||||||
|
b = b:next()
|
||||||
|
end
|
||||||
|
vim.beep()
|
||||||
|
EOF
|
||||||
|
endfunction
|
||||||
|
<
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
4. Window userdata *lua-window*
|
||||||
|
|
||||||
|
Window objects represent vim windows. A window userdata "w" has the following
|
||||||
|
properties and methods:
|
||||||
|
|
||||||
|
Properties
|
||||||
|
----------
|
||||||
|
o "w()" sets "w" as the current window.
|
||||||
|
o "w.buffer" contains the buffer of window "w" (read-only).
|
||||||
|
o "w.line" represents the cursor line position in window "w".
|
||||||
|
o "w.col" represents the cursor column position in window "w".
|
||||||
|
o "w.width" represents the width of window "w".
|
||||||
|
o "w.height" represents the height of window "w".
|
||||||
|
|
||||||
|
Methods
|
||||||
|
-------
|
||||||
|
o "w:next()" returns the window next to "w".
|
||||||
|
o "w:previous()" returns the window previous to "w".
|
||||||
|
o "w:isvalid()" returns 'true' (boolean) if window "w" corresponds to
|
||||||
|
a "real" (not freed from memory) Vim window.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
>
|
||||||
|
:lua w = vim.window() -- current window
|
||||||
|
:lua print(w.buffer.name, w.line, w.col)
|
||||||
|
:lua w.width = w.width + math.random(10)
|
||||||
|
:lua w.height = 2 * math.random() * w.height
|
||||||
|
:lua n,w = 0,vim.window(true) while w~=nil do n,w = n + 1,w:next() end
|
||||||
|
:lua print("There are " .. n .. " windows")
|
||||||
|
<
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_mzsch.txt* For Vim version 7.2. Last change: 2008 Jun 28
|
*if_mzsch.txt* For Vim version 7.3. Last change: 2010 Feb 11
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Sergey Khorev
|
VIM REFERENCE MANUAL by Sergey Khorev
|
||||||
@@ -9,8 +9,9 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
|
|||||||
1. Commands |mzscheme-commands|
|
1. Commands |mzscheme-commands|
|
||||||
2. Examples |mzscheme-examples|
|
2. Examples |mzscheme-examples|
|
||||||
3. Threads |mzscheme-threads|
|
3. Threads |mzscheme-threads|
|
||||||
4. The Vim access procedures |mzscheme-vim|
|
4. Vim access from MzScheme |mzscheme-vim|
|
||||||
5. Dynamic loading |mzscheme-dynamic|
|
5. mzeval() Vim function |mzscheme-mzeval|
|
||||||
|
6. Dynamic loading |mzscheme-dynamic|
|
||||||
|
|
||||||
{Vi does not have any of these commands}
|
{Vi does not have any of these commands}
|
||||||
|
|
||||||
@@ -42,10 +43,6 @@ Note: On FreeBSD you should use the "drscheme" port.
|
|||||||
|
|
||||||
*:mzfile* *:mzf*
|
*:mzfile* *:mzf*
|
||||||
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi}
|
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi}
|
||||||
All statements are executed in the namespace of the
|
|
||||||
buffer that was current during :mzfile start.
|
|
||||||
If you want to access other namespaces, use
|
|
||||||
'parameterize'.
|
|
||||||
|
|
||||||
All of these commands do essentially the same thing - they execute a piece of
|
All of these commands do essentially the same thing - they execute a piece of
|
||||||
MzScheme code, with the "current range" set to the given line
|
MzScheme code, with the "current range" set to the given line
|
||||||
@@ -54,8 +51,6 @@ range.
|
|||||||
In the case of :mzscheme, the code to execute is in the command-line.
|
In the case of :mzscheme, the code to execute is in the command-line.
|
||||||
In the case of :mzfile, the code to execute is the contents of the given file.
|
In the case of :mzfile, the code to execute is the contents of the given file.
|
||||||
|
|
||||||
Each buffer has its own MzScheme namespace. Global namespace is bound to
|
|
||||||
the "global-namespace" value from the 'vimext' module.
|
|
||||||
MzScheme interface defines exception exn:vim, derived from exn.
|
MzScheme interface defines exception exn:vim, derived from exn.
|
||||||
It is raised for various Vim errors.
|
It is raised for various Vim errors.
|
||||||
|
|
||||||
@@ -79,40 +74,8 @@ To avoid clashes with MzScheme, consider using prefix when requiring module,
|
|||||||
e.g.: >
|
e.g.: >
|
||||||
:mzscheme (require (prefix vim- vimext))
|
:mzscheme (require (prefix vim- vimext))
|
||||||
<
|
<
|
||||||
All the examples below assume this naming scheme. Note that you need to do
|
All the examples below assume this naming scheme.
|
||||||
this again for every buffer.
|
|
||||||
|
|
||||||
The auto-instantiation can be achieved with autocommands, e.g. you can put
|
|
||||||
something like this in your .vimrc (EOFs should not have indentation): >
|
|
||||||
function s:MzRequire()
|
|
||||||
if has("mzscheme")
|
|
||||||
:mz << EOF
|
|
||||||
(require (prefix vim- vimext))
|
|
||||||
(let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")"))))
|
|
||||||
(when (and buf (not (eq? buf (vim-curr-buff))))
|
|
||||||
(parameterize ((current-namespace (vim-get-buff-namespace buf)))
|
|
||||||
(namespace-attach-module vim-global-namespace 'vimext)
|
|
||||||
(namespace-require '(prefix vim vimext)))))
|
|
||||||
EOF
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function s:MzStartup()
|
|
||||||
if has("mzscheme")
|
|
||||||
au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire()
|
|
||||||
:mz << EOF
|
|
||||||
(current-library-collection-paths
|
|
||||||
(cons
|
|
||||||
(build-path (find-system-path 'addon-dir) (version) "collects")
|
|
||||||
(current-library-collection-paths)))
|
|
||||||
EOF
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
call s:MzStartup()
|
|
||||||
<
|
|
||||||
|
|
||||||
The global namespace just instantiated this module with the prefix "vimext:".
|
|
||||||
*mzscheme-sandbox*
|
*mzscheme-sandbox*
|
||||||
When executed in the |sandbox|, access to some filesystem and Vim interface
|
When executed in the |sandbox|, access to some filesystem and Vim interface
|
||||||
procedures is restricted.
|
procedures is restricted.
|
||||||
@@ -121,12 +84,17 @@ procedures is restricted.
|
|||||||
2. Examples *mzscheme-examples*
|
2. Examples *mzscheme-examples*
|
||||||
>
|
>
|
||||||
:mzscheme (display "Hello")
|
:mzscheme (display "Hello")
|
||||||
|
:mz (display (string-append "Using MzScheme version " (version)))
|
||||||
|
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
|
||||||
|
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
|
||||||
:mzscheme (vim-set-buff-line 10 "This is line #10")
|
:mzscheme (vim-set-buff-line 10 "This is line #10")
|
||||||
<
|
<
|
||||||
Inline script usage: >
|
Inline script usage: >
|
||||||
function! <SID>SetFirstLine()
|
function! <SID>SetFirstLine()
|
||||||
:mz << EOF
|
:mz << EOF
|
||||||
(display "!!!")
|
(display "!!!")
|
||||||
|
(require (prefix vim- vimext))
|
||||||
|
; for newer versions (require (prefix-in vim- 'vimext))
|
||||||
(vim-set-buff-line 1 "This is line #1")
|
(vim-set-buff-line 1 "This is line #1")
|
||||||
(vim-beep)
|
(vim-beep)
|
||||||
EOF
|
EOF
|
||||||
@@ -137,17 +105,33 @@ Inline script usage: >
|
|||||||
File execution: >
|
File execution: >
|
||||||
:mzfile supascript.scm
|
:mzfile supascript.scm
|
||||||
<
|
<
|
||||||
Accessing the current buffer namespace from an MzScheme program running in
|
Vim exception handling: >
|
||||||
another buffer within |:mzfile|-executed script : >
|
:mz << EOF
|
||||||
; Move to the window below
|
(require (prefix vim- vimext))
|
||||||
(vim-command "wincmd j")
|
; for newer versions (require (prefix-in vim- 'vimext))
|
||||||
; execute in the context of buffer, to which window belongs
|
(with-handlers
|
||||||
; assume that buffer has 'textstring' defined
|
([exn:vim? (lambda (e) (display (exn-message e)))])
|
||||||
(parameterize ((current-namespace
|
(vim-eval "nonsense-string"))
|
||||||
(vim-get-buff-namespace (vim-curr-buff))))
|
EOF
|
||||||
(eval '(vim-set-buff-line 1 textstring)))
|
|
||||||
<
|
<
|
||||||
|
Auto-instantiation of vimext module (can be placed in your |vimrc|): >
|
||||||
|
function! MzRequire()
|
||||||
|
:redir => l:mzversion
|
||||||
|
:mz (version)
|
||||||
|
:redir END
|
||||||
|
if strpart(l:mzversion, 1, 1) < "4"
|
||||||
|
" MzScheme versions < 4.x:
|
||||||
|
:mz (require (prefix vim- vimext))
|
||||||
|
else
|
||||||
|
" newer versions:
|
||||||
|
:mz (require (prefix-in vim- 'vimext))
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
if has("mzscheme")
|
||||||
|
silent call MzRequire()
|
||||||
|
endif
|
||||||
|
<
|
||||||
==============================================================================
|
==============================================================================
|
||||||
3. Threads *mzscheme-threads*
|
3. Threads *mzscheme-threads*
|
||||||
|
|
||||||
@@ -159,7 +143,7 @@ Thread scheduling in the console version of Vim is less reliable than in the
|
|||||||
GUI version.
|
GUI version.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
5. VIM Functions *mzscheme-vim*
|
4. Vim access from MzScheme *mzscheme-vim*
|
||||||
|
|
||||||
*mzscheme-vimext*
|
*mzscheme-vimext*
|
||||||
The 'vimext' module provides access to procedures defined in the MzScheme
|
The 'vimext' module provides access to procedures defined in the MzScheme
|
||||||
@@ -168,11 +152,11 @@ interface.
|
|||||||
Common
|
Common
|
||||||
------
|
------
|
||||||
(command {command-string}) Perform the vim ":Ex" style command.
|
(command {command-string}) Perform the vim ":Ex" style command.
|
||||||
(eval {expr-string}) Evaluate the vim expression to a string.
|
(eval {expr-string}) Evaluate the vim expression into
|
||||||
A |List| is turned into a string by
|
respective MzScheme object: |Lists| are
|
||||||
joining the items and inserting line
|
represented as Scheme lists,
|
||||||
breaks.
|
|Dictionaries| as hash tables.
|
||||||
NOTE clashes with MzScheme eval
|
NOTE the name clashes with MzScheme eval
|
||||||
(range-start) Start/End of the range passed with
|
(range-start) Start/End of the range passed with
|
||||||
(range-end) the Scheme command.
|
(range-end) the Scheme command.
|
||||||
(beep) beep
|
(beep) beep
|
||||||
@@ -186,7 +170,6 @@ Common
|
|||||||
be set. The symbol 'global can be passed
|
be set. The symbol 'global can be passed
|
||||||
as {buffer-or-window}. Then |:setglobal|
|
as {buffer-or-window}. Then |:setglobal|
|
||||||
will be used.
|
will be used.
|
||||||
global-namespace The MzScheme main namespace.
|
|
||||||
|
|
||||||
Buffers *mzscheme-buffer*
|
Buffers *mzscheme-buffer*
|
||||||
-------
|
-------
|
||||||
@@ -202,8 +185,7 @@ Buffers *mzscheme-buffer*
|
|||||||
current buffer will be used.
|
current buffer will be used.
|
||||||
(get-buff-line-list {start} {end} [buffer])
|
(get-buff-line-list {start} {end} [buffer])
|
||||||
Get a list of lines in a buffer. {Start}
|
Get a list of lines in a buffer. {Start}
|
||||||
and {end} are 1-based. {Start} is
|
and {end} are 1-based and inclusive.
|
||||||
inclusive, {end} - exclusive.
|
|
||||||
(set-buff-line-list {start} {end} {string-list} [buffer])
|
(set-buff-line-list {start} {end} {string-list} [buffer])
|
||||||
Set a list of lines in a buffer. If
|
Set a list of lines in a buffer. If
|
||||||
string-list is #f or null, the lines get
|
string-list is #f or null, the lines get
|
||||||
@@ -217,8 +199,8 @@ Buffers *mzscheme-buffer*
|
|||||||
Insert a list of lines into a buffer after
|
Insert a list of lines into a buffer after
|
||||||
{linenr}. If {linenr} is 0, lines will be
|
{linenr}. If {linenr} is 0, lines will be
|
||||||
inserted at start.
|
inserted at start.
|
||||||
(curr-buff) Get the current buffer. Use procedures
|
(curr-buff) Get the current buffer. Use other MzScheme
|
||||||
from "vimcmd" module to change it.
|
interface procedures to change it.
|
||||||
(buff-count) Get count of total buffers in the editor.
|
(buff-count) Get count of total buffers in the editor.
|
||||||
(get-next-buff [buffer]) Get next buffer.
|
(get-next-buff [buffer]) Get next buffer.
|
||||||
(get-prev-buff [buffer]) Get previous buffer. Return #f when there
|
(get-prev-buff [buffer]) Get previous buffer. Return #f when there
|
||||||
@@ -228,7 +210,6 @@ Buffers *mzscheme-buffer*
|
|||||||
if there is no such buffer.
|
if there is no such buffer.
|
||||||
(get-buff-by-num {buffernum}) Get a buffer by its number (return #f if
|
(get-buff-by-num {buffernum}) Get a buffer by its number (return #f if
|
||||||
there is no buffer with this number).
|
there is no buffer with this number).
|
||||||
(get-buff-namespace [buffer]) Get buffer namespace.
|
|
||||||
|
|
||||||
Windows *mzscheme-window*
|
Windows *mzscheme-window*
|
||||||
------
|
------
|
||||||
@@ -250,7 +231,13 @@ Windows *mzscheme-window*
|
|||||||
(set-cursor (line . col) [window]) Set cursor position.
|
(set-cursor (line . col) [window]) Set cursor position.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
5. Dynamic loading *mzscheme-dynamic*
|
5. mzeval() Vim function *mzscheme-mzeval*
|
||||||
|
|
||||||
|
To facilitate bi-directional interface, you can use |mzeval()| function to
|
||||||
|
evaluate MzScheme expressions and pass their values to VimL.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
6. Dynamic loading *mzscheme-dynamic* *E815*
|
||||||
|
|
||||||
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
|
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
|
||||||
output then includes |+mzscheme/dyn|.
|
output then includes |+mzscheme/dyn|.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_ole.txt* For Vim version 7.2. Last change: 2007 May 10
|
*if_ole.txt* For Vim version 7.3. Last change: 2008 Aug 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Paul Moore
|
VIM REFERENCE MANUAL by Paul Moore
|
||||||
@@ -115,7 +115,7 @@ Example (Visual Basic syntax) >
|
|||||||
3. The "normal" command *ole-normal*
|
3. The "normal" command *ole-normal*
|
||||||
|
|
||||||
Due to the way Vim processes OLE Automation commands, combined with the method
|
Due to the way Vim processes OLE Automation commands, combined with the method
|
||||||
of implementation of the ex command :normal, it is not possible to execute the
|
of implementation of the Ex command :normal, it is not possible to execute the
|
||||||
:normal command via OLE automation. Any attempt to do so will fail, probably
|
:normal command via OLE automation. Any attempt to do so will fail, probably
|
||||||
harmlessly, although possibly in unpredictable ways.
|
harmlessly, although possibly in unpredictable ways.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_perl.txt* For Vim version 7.2. Last change: 2006 Mar 06
|
*if_perl.txt* For Vim version 7.3. Last change: 2010 Jul 21
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Sven Verdoolaege
|
VIM REFERENCE MANUAL by Sven Verdoolaege
|
||||||
@@ -265,18 +265,26 @@ Note that "EOF" must be at the start of the line.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
4. Dynamic loading *perl-dynamic*
|
4. Dynamic loading *perl-dynamic*
|
||||||
|
|
||||||
On MS-Windows the Perl library can be loaded dynamically. The |:version|
|
On MS-Windows and Unix the Perl library can be loaded dynamically. The
|
||||||
output then includes |+perl/dyn|.
|
|:version| output then includes |+perl/dyn|.
|
||||||
|
|
||||||
This means that Vim will search for the Perl DLL file only when needed. When
|
This means that Vim will search for the Perl DLL or shared library file only
|
||||||
you don't use the Perl interface you don't need it, thus you can use Vim
|
when needed. When you don't use the Perl interface you don't need it, thus
|
||||||
without this DLL file.
|
you can use Vim without this file.
|
||||||
|
|
||||||
To use the Perl interface the Perl DLL must be in your search path. In a
|
|
||||||
console window type "path" to see what directories are used.
|
MS-Windows ~
|
||||||
|
|
||||||
|
You can download Perl from http://www.perl.org. The one from ActiveState was
|
||||||
|
used for building Vim.
|
||||||
|
|
||||||
|
To use the Perl interface the Perl DLL must be in your search path.
|
||||||
|
If Vim reports it cannot find the perl512.dll, make sure your $PATH includes
|
||||||
|
the directory where it is located. The Perl installer normally does that.
|
||||||
|
In a console window type "path" to see what directories are used.
|
||||||
|
|
||||||
The name of the DLL must match the Perl version Vim was compiled with.
|
The name of the DLL must match the Perl version Vim was compiled with.
|
||||||
Currently the name is "perl58.dll". That is for Perl 5.8. To know for
|
Currently the name is "perl512.dll". That is for Perl 5.12. To know for
|
||||||
sure edit "gvim.exe" and search for "perl\d*.dll\c".
|
sure edit "gvim.exe" and search for "perl\d*.dll\c".
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_pyth.txt* For Vim version 7.2. Last change: 2006 Apr 30
|
*if_pyth.txt* For Vim version 7.3. Last change: 2010 Oct 20
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Paul Moore
|
VIM REFERENCE MANUAL by Paul Moore
|
||||||
@@ -12,11 +12,14 @@ The Python Interface to Vim *python* *Python*
|
|||||||
4. Range objects |python-range|
|
4. Range objects |python-range|
|
||||||
5. Window objects |python-window|
|
5. Window objects |python-window|
|
||||||
6. Dynamic loading |python-dynamic|
|
6. Dynamic loading |python-dynamic|
|
||||||
|
7. Python 3 |python3|
|
||||||
|
|
||||||
{Vi does not have any of these commands}
|
{Vi does not have any of these commands}
|
||||||
|
|
||||||
The Python interface is available only when Vim was compiled with the
|
The Python 2.x interface is available only when Vim was compiled with the
|
||||||
|+python| feature.
|
|+python| feature.
|
||||||
|
The Python 3 interface is available only when Vim was compiled with the
|
||||||
|
|+python3| feature.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
1. Commands *python-commands*
|
1. Commands *python-commands*
|
||||||
@@ -93,7 +96,7 @@ module before using it: >
|
|||||||
|
|
||||||
Overview >
|
Overview >
|
||||||
:py print "Hello" # displays a message
|
:py print "Hello" # displays a message
|
||||||
:py vim.command(cmd) # execute an ex command
|
:py vim.command(cmd) # execute an Ex command
|
||||||
:py w = vim.windows[n] # gets window "n"
|
:py w = vim.windows[n] # gets window "n"
|
||||||
:py cw = vim.current.window # gets the current window
|
:py cw = vim.current.window # gets the current window
|
||||||
:py b = vim.buffers[n] # gets buffer "n"
|
:py b = vim.buffers[n] # gets buffer "n"
|
||||||
@@ -237,10 +240,12 @@ with marks (see below) which use vim line numbers.
|
|||||||
|
|
||||||
The buffer object methods are:
|
The buffer object methods are:
|
||||||
b.append(str) Append a line to the buffer
|
b.append(str) Append a line to the buffer
|
||||||
|
b.append(str, nr) Idem, below line "nr"
|
||||||
b.append(list) Append a list of lines to the buffer
|
b.append(list) Append a list of lines to the buffer
|
||||||
Note that the option of supplying a list of strings to
|
Note that the option of supplying a list of strings to
|
||||||
the append method differs from the equivalent method
|
the append method differs from the equivalent method
|
||||||
for Python's built-in list objects.
|
for Python's built-in list objects.
|
||||||
|
b.append(list, nr) Idem, below line "nr"
|
||||||
b.mark(name) Return a tuple (row,col) representing the position
|
b.mark(name) Return a tuple (row,col) representing the position
|
||||||
of the named mark (can also get the []"<> marks)
|
of the named mark (can also get the []"<> marks)
|
||||||
b.range(s,e) Return a range object (see |python-range|) which
|
b.range(s,e) Return a range object (see |python-range|) which
|
||||||
@@ -282,10 +287,12 @@ The range object attributes are:
|
|||||||
|
|
||||||
The range object methods are:
|
The range object methods are:
|
||||||
r.append(str) Append a line to the range
|
r.append(str) Append a line to the range
|
||||||
|
r.append(str, nr) Idem, after line "nr"
|
||||||
r.append(list) Append a list of lines to the range
|
r.append(list) Append a list of lines to the range
|
||||||
Note that the option of supplying a list of strings to
|
Note that the option of supplying a list of strings to
|
||||||
the append method differs from the equivalent method
|
the append method differs from the equivalent method
|
||||||
for Python's built-in list objects.
|
for Python's built-in list objects.
|
||||||
|
r.append(list, nr) Idem, after line "nr"
|
||||||
|
|
||||||
Example (assume r is the current range):
|
Example (assume r is the current range):
|
||||||
# Send all lines in a range to the default printer
|
# Send all lines in a range to the default printer
|
||||||
@@ -327,5 +334,49 @@ The name of the DLL must match the Python version Vim was compiled with.
|
|||||||
Currently the name is "python24.dll". That is for Python 2.4. To know for
|
Currently the name is "python24.dll". That is for Python 2.4. To know for
|
||||||
sure edit "gvim.exe" and search for "python\d*.dll\c".
|
sure edit "gvim.exe" and search for "python\d*.dll\c".
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
7. Python 3 *python3*
|
||||||
|
|
||||||
|
*:py3* *:python3*
|
||||||
|
The |:py3| and |:python3| commands work similar to |:python|.
|
||||||
|
*:py3file*
|
||||||
|
The |:py3file| command works similar to |:pyfile|.
|
||||||
|
|
||||||
|
Vim can be built in four ways (:version output):
|
||||||
|
1. No Python support (-python, -python3)
|
||||||
|
2. Python 2 support only (+python or +python/dyn, -python3)
|
||||||
|
3. Python 3 support only (-python, +python3 or +python3/dyn)
|
||||||
|
4. Python 2 and 3 support (+python/dyn, +python3/dyn)
|
||||||
|
|
||||||
|
Some more details on the special case 4:
|
||||||
|
|
||||||
|
When Python 2 and Python 3 are both supported they must be loaded dynamically.
|
||||||
|
|
||||||
|
When doing this on Linux/Unix systems and importing global symbols, this leads
|
||||||
|
to a crash when the second Python version is used. So either global symbols
|
||||||
|
are loaded but only one Python version is activated, or no global symbols are
|
||||||
|
loaded. The latter makes Python's "import" fail on libraries that expect the
|
||||||
|
symbols to be provided by Vim.
|
||||||
|
*E836* *E837*
|
||||||
|
Vim's configuration script makes a guess for all libraries based on one
|
||||||
|
standard Python library (termios). If importing this library succeeds for
|
||||||
|
both Python versions, then both will be made available in Vim at the same
|
||||||
|
time. If not, only the version first used in a session will be enabled.
|
||||||
|
When trying to use the other one you will get the E836 or E837 error message.
|
||||||
|
|
||||||
|
Here Vim's behavior depends on the system in which it was configured. In a
|
||||||
|
system where both versions of Python were configured with --enable-shared,
|
||||||
|
both versions of Python will be activated at the same time. There will still
|
||||||
|
be problems with other third party libraries that were not linked to
|
||||||
|
libPython.
|
||||||
|
|
||||||
|
To work around such problems there are these options:
|
||||||
|
1. The problematic library is recompiled to link to the according
|
||||||
|
libpython.so.
|
||||||
|
2. Vim is recompiled for only one Python version.
|
||||||
|
3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration. This
|
||||||
|
may crash Vim though.
|
||||||
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_ruby.txt* For Vim version 7.2. Last change: 2006 Apr 30
|
*if_ruby.txt* For Vim version 7.3. Last change: 2010 Oct 27
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Shugo Maeda
|
VIM REFERENCE MANUAL by Shugo Maeda
|
||||||
@@ -40,6 +40,9 @@ downloading Ruby there.
|
|||||||
wasn't compiled in. To avoid errors, see
|
wasn't compiled in. To avoid errors, see
|
||||||
|script-here|.
|
|script-here|.
|
||||||
|
|
||||||
|
Command to try it out: >
|
||||||
|
:ruby print "Hello" # this is a comment
|
||||||
|
|
||||||
Example Vim script: >
|
Example Vim script: >
|
||||||
|
|
||||||
function! RedGem()
|
function! RedGem()
|
||||||
@@ -79,7 +82,7 @@ Ruby code gets all of its access to vim via the "VIM" module.
|
|||||||
|
|
||||||
Overview >
|
Overview >
|
||||||
print "Hello" # displays a message
|
print "Hello" # displays a message
|
||||||
VIM.command(cmd) # execute an ex command
|
VIM.command(cmd) # execute an Ex command
|
||||||
num = VIM::Window.count # gets the number of windows
|
num = VIM::Window.count # gets the number of windows
|
||||||
w = VIM::Window[n] # gets window "n"
|
w = VIM::Window[n] # gets window "n"
|
||||||
cw = VIM::Window.current # gets the current window
|
cw = VIM::Window.current # gets the current window
|
||||||
@@ -187,19 +190,27 @@ $curbuf The current buffer object.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
6. Dynamic loading *ruby-dynamic*
|
6. Dynamic loading *ruby-dynamic*
|
||||||
|
|
||||||
On MS-Windows the Ruby library can be loaded dynamically. The |:version|
|
On MS-Windows and Unix the Ruby library can be loaded dynamically. The
|
||||||
output then includes |+ruby/dyn|.
|
|:version| output then includes |+ruby/dyn|.
|
||||||
|
|
||||||
This means that Vim will search for the Ruby DLL file only when needed. When
|
This means that Vim will search for the Ruby DLL file or shared library only
|
||||||
you don't use the Ruby interface you don't need it, thus you can use Vim
|
when needed. When you don't use the Ruby interface you don't need it, thus
|
||||||
without this DLL file.
|
you can use Vim even though this library file is not on your system.
|
||||||
|
|
||||||
|
You need to install the right version of Ruby for this to work. You can find
|
||||||
|
the package to download from:
|
||||||
|
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
|
||||||
|
Currently that is ruby-1.9.1-p429-i386-mswin32.zip
|
||||||
|
|
||||||
To use the Ruby interface the Ruby DLL must be in your search path. In a
|
To use the Ruby interface the Ruby DLL must be in your search path. In a
|
||||||
console window type "path" to see what directories are used.
|
console window type "path" to see what directories are used.
|
||||||
|
|
||||||
The name of the DLL must match the Ruby version Vim was compiled with.
|
The name of the DLL must match the Ruby version Vim was compiled with.
|
||||||
Currently the name is "ruby18.dll". That is for Ruby 1.8. To know for sure
|
Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know
|
||||||
edit "gvim.exe" and search for "ruby\d*.dll\c".
|
for sure edit "gvim.exe" and search for "ruby\d*.dll\c".
|
||||||
|
|
||||||
|
If you want to build Vim with Ruby 1.9.1, you need to edit the config.h file
|
||||||
|
and comment-out the check for _MSC_VER.
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
vim:tw=78:ts=8:ft=help:norl:
|
vim:tw=78:ts=8:ft=help:norl:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_sniff.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
*if_sniff.txt* For Vim version 7.3. Last change: 2005 Mar 29
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL
|
VIM REFERENCE MANUAL
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*if_tcl.txt* For Vim version 7.2. Last change: 2008 Jun 26
|
*if_tcl.txt* For Vim version 7.3. Last change: 2008 Aug 16
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Ingo Wilken
|
VIM REFERENCE MANUAL by Ingo Wilken
|
||||||
@@ -83,7 +83,7 @@ The following commands are implemented: >
|
|||||||
::vim::beep # Guess.
|
::vim::beep # Guess.
|
||||||
::vim::buffer {n} # Create Tcl command for one buffer.
|
::vim::buffer {n} # Create Tcl command for one buffer.
|
||||||
::vim::buffer list # Create Tcl commands for all buffers.
|
::vim::buffer list # Create Tcl commands for all buffers.
|
||||||
::vim::command [-quiet] {cmd} # Execute an ex command.
|
::vim::command [-quiet] {cmd} # Execute an Ex command.
|
||||||
::vim::expr {expr} # Use Vim's expression evaluator.
|
::vim::expr {expr} # Use Vim's expression evaluator.
|
||||||
::vim::option {opt} # Get vim option.
|
::vim::option {opt} # Get vim option.
|
||||||
::vim::option {opt} {val} # Set vim option.
|
::vim::option {opt} {val} # Set vim option.
|
||||||
@@ -116,7 +116,7 @@ Commands:
|
|||||||
|
|
||||||
::vim::command {cmd} *tcl-command*
|
::vim::command {cmd} *tcl-command*
|
||||||
::vim::command -quiet {cmd}
|
::vim::command -quiet {cmd}
|
||||||
Execute the vim (ex-mode) command {cmd}. Any ex command that affects
|
Execute the vim (ex-mode) command {cmd}. Any Ex command that affects
|
||||||
a buffer or window uses the current buffer/current window. Does not
|
a buffer or window uses the current buffer/current window. Does not
|
||||||
return a result other than a standard Tcl error code. After this
|
return a result other than a standard Tcl error code. After this
|
||||||
command is completed, the "::vim::current" variable is updated.
|
command is completed, the "::vim::current" variable is updated.
|
||||||
@@ -210,7 +210,7 @@ Variables:
|
|||||||
|
|
||||||
line *tcl-var-line*
|
line *tcl-var-line*
|
||||||
lnum *tcl-var-lnum*
|
lnum *tcl-var-lnum*
|
||||||
These global variables are only available if the ":tcldo" ex command
|
These global variables are only available if the ":tcldo" Ex command
|
||||||
is being executed. They contain the text and line number of the
|
is being executed. They contain the text and line number of the
|
||||||
current line. When the Tcl command invoked by ":tcldo" is completed,
|
current line. When the Tcl command invoked by ":tcldo" is completed,
|
||||||
the current line is set to the contents of the "line" variable, unless
|
the current line is set to the contents of the "line" variable, unless
|
||||||
@@ -233,7 +233,7 @@ Let's assume the name of the window command is stored in the Tcl variable "win",
|
|||||||
i.e. "$win" calls the command. The following options are available: >
|
i.e. "$win" calls the command. The following options are available: >
|
||||||
|
|
||||||
$win buffer # Create Tcl command for window's buffer.
|
$win buffer # Create Tcl command for window's buffer.
|
||||||
$win command {cmd} # Execute ex command in windows context.
|
$win command {cmd} # Execute Ex command in windows context.
|
||||||
$win cursor # Get current cursor position.
|
$win cursor # Get current cursor position.
|
||||||
$win cursor {var} # Set cursor position from array variable.
|
$win cursor {var} # Set cursor position from array variable.
|
||||||
$win cursor {row} {col} # Set cursor position.
|
$win cursor {row} {col} # Set cursor position.
|
||||||
@@ -312,7 +312,7 @@ Let's assume the name of the buffer command is stored in the Tcl variable "buf",
|
|||||||
i.e. "$buf" calls the command. The following options are available: >
|
i.e. "$buf" calls the command. The following options are available: >
|
||||||
|
|
||||||
$buf append {n} {str} # Append a line to buffer, after line {n}.
|
$buf append {n} {str} # Append a line to buffer, after line {n}.
|
||||||
$buf command {cmd} # Execute ex command in buffers context.
|
$buf command {cmd} # Execute Ex command in buffers context.
|
||||||
$buf count # Report number of lines in buffer.
|
$buf count # Report number of lines in buffer.
|
||||||
$buf delcmd {cmd} # Call Tcl command when buffer is deleted.
|
$buf delcmd {cmd} # Call Tcl command when buffer is deleted.
|
||||||
$buf delete {n} # Delete a single line.
|
$buf delete {n} # Delete a single line.
|
||||||
@@ -438,7 +438,7 @@ used to display messages in vim.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
7. Known bugs & problems *tcl-bugs*
|
7. Known bugs & problems *tcl-bugs*
|
||||||
|
|
||||||
Calling one of the Tcl ex commands from inside Tcl (via "::vim::command") may
|
Calling one of the Tcl Ex commands from inside Tcl (via "::vim::command") may
|
||||||
have unexpected side effects. The command creates a new interpreter, which
|
have unexpected side effects. The command creates a new interpreter, which
|
||||||
has the same abilities as the standard interpreter - making "::vim::command"
|
has the same abilities as the standard interpreter - making "::vim::command"
|
||||||
available in a safe child interpreter therefore makes the child unsafe. (It
|
available in a safe child interpreter therefore makes the child unsafe. (It
|
||||||
@@ -487,11 +487,11 @@ This script adds a consecutive number to each line in the current range:
|
|||||||
incr i ; incr n
|
incr i ; incr n
|
||||||
}
|
}
|
||||||
|
|
||||||
The same can also be done quickly with two ex commands, using ":tcldo":
|
The same can also be done quickly with two Ex commands, using ":tcldo":
|
||||||
:tcl set n 1
|
:tcl set n 1
|
||||||
:[range]tcldo set line "$n\t$line" ; incr n
|
:[range]tcldo set line "$n\t$line" ; incr n
|
||||||
|
|
||||||
This procedure runs an ex command on each buffer (idea stolen from Ron Aaron):
|
This procedure runs an Ex command on each buffer (idea stolen from Ron Aaron):
|
||||||
proc eachbuf { cmd } {
|
proc eachbuf { cmd } {
|
||||||
foreach b [::vim::buffer list] {
|
foreach b [::vim::buffer list] {
|
||||||
$b command $cmd
|
$b command $cmd
|
||||||
@@ -500,7 +500,7 @@ This procedure runs an ex command on each buffer (idea stolen from Ron Aaron):
|
|||||||
Use it like this:
|
Use it like this:
|
||||||
:tcl eachbuf %s/foo/bar/g
|
:tcl eachbuf %s/foo/bar/g
|
||||||
Be careful with Tcl's string and backslash substitution, tough. If in doubt,
|
Be careful with Tcl's string and backslash substitution, tough. If in doubt,
|
||||||
surround the ex command with curly braces.
|
surround the Ex command with curly braces.
|
||||||
|
|
||||||
|
|
||||||
If you want to add some Tcl procedures permanently to vim, just place them in
|
If you want to add some Tcl procedures permanently to vim, just place them in
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*indent.txt* For Vim version 7.2. Last change: 2008 Jul 30
|
*indent.txt* For Vim version 7.3. Last change: 2011 Mar 18
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -215,6 +215,19 @@ assume a 'shiftwidth' of 4.
|
|||||||
a = b; a = b; a = b;
|
a = b; a = b; a = b;
|
||||||
} } }
|
} } }
|
||||||
} } }
|
} } }
|
||||||
|
<
|
||||||
|
LN Controls placement of jump labels. If N is negative, the label
|
||||||
|
will be placed at column 1. If N is non-negative, the indent of
|
||||||
|
the label will be the prevailing indent minus N. (default -1).
|
||||||
|
|
||||||
|
cino= cino=L2 cino=Ls >
|
||||||
|
func() func() func()
|
||||||
|
{ { {
|
||||||
|
{ { {
|
||||||
|
stmt; stmt; stmt;
|
||||||
|
LABEL: LABEL: LABEL:
|
||||||
|
} } }
|
||||||
|
} } }
|
||||||
<
|
<
|
||||||
:N Place case labels N characters from the indent of the switch().
|
:N Place case labels N characters from the indent of the switch().
|
||||||
(default 'shiftwidth').
|
(default 'shiftwidth').
|
||||||
@@ -245,6 +258,7 @@ assume a 'shiftwidth' of 4.
|
|||||||
<
|
<
|
||||||
bN If N != 0 Vim will align a final "break" with the case label,
|
bN If N != 0 Vim will align a final "break" with the case label,
|
||||||
so that case..break looks like a sort of block. (default: 0).
|
so that case..break looks like a sort of block. (default: 0).
|
||||||
|
When using 1, consider adding "0=break" to 'cinkeys'.
|
||||||
|
|
||||||
cino= cino=b1 >
|
cino= cino=b1 >
|
||||||
switch (x) switch(x)
|
switch (x) switch(x)
|
||||||
@@ -306,8 +320,11 @@ assume a 'shiftwidth' of 4.
|
|||||||
BaseClass(3) BaseClass(3)
|
BaseClass(3) BaseClass(3)
|
||||||
{} {}
|
{} {}
|
||||||
<
|
<
|
||||||
+N Indent a continuation line (a line that spills onto the next) N
|
+N Indent a continuation line (a line that spills onto the next)
|
||||||
additional characters. (default 'shiftwidth').
|
inside a function N additional characters. (default
|
||||||
|
'shiftwidth').
|
||||||
|
Outside of a function, when the previous line ended in a
|
||||||
|
backslash, the 2 * N is used.
|
||||||
|
|
||||||
cino= cino=+10 >
|
cino= cino=+10 >
|
||||||
a = b + 9 * a = b + 9 *
|
a = b + 9 * a = b + 9 *
|
||||||
@@ -430,6 +447,24 @@ assume a 'shiftwidth' of 4.
|
|||||||
do_something();
|
do_something();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
<
|
||||||
|
*javascript-cinoptions* *javascript-indenting*
|
||||||
|
JN Indent JavaScript object declarations correctly by not confusing
|
||||||
|
them with labels. The value 'N' is currently unused but must be
|
||||||
|
non-zero (e.g. 'J1'). >
|
||||||
|
|
||||||
|
var bar = {
|
||||||
|
foo: {
|
||||||
|
that: this,
|
||||||
|
some: ok,
|
||||||
|
},
|
||||||
|
"bar":{
|
||||||
|
a : 2,
|
||||||
|
b: "123abc",
|
||||||
|
x: 4,
|
||||||
|
"y": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
<
|
<
|
||||||
)N Vim searches for unclosed parentheses at most N lines away.
|
)N Vim searches for unclosed parentheses at most N lines away.
|
||||||
This limits the time needed to search for parentheses. (default
|
This limits the time needed to search for parentheses. (default
|
||||||
@@ -437,7 +472,7 @@ assume a 'shiftwidth' of 4.
|
|||||||
|
|
||||||
*N Vim searches for unclosed comments at most N lines away. This
|
*N Vim searches for unclosed comments at most N lines away. This
|
||||||
limits the time needed to search for the start of a comment.
|
limits the time needed to search for the start of a comment.
|
||||||
(default 30 lines).
|
(default 70 lines).
|
||||||
|
|
||||||
#N When N is non-zero recognize shell/Perl comments, starting with
|
#N When N is non-zero recognize shell/Perl comments, starting with
|
||||||
'#'. Default N is zero: don't recognizes '#' comments. Note
|
'#'. Default N is zero: don't recognizes '#' comments. Note
|
||||||
@@ -446,13 +481,14 @@ assume a 'shiftwidth' of 4.
|
|||||||
|
|
||||||
|
|
||||||
The defaults, spelled out in full, are:
|
The defaults, spelled out in full, are:
|
||||||
cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,c3,C0,
|
cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,
|
||||||
/0,(2s,us,U0,w0,W0,m0,j0,)20,*30,#0
|
c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
|
||||||
|
|
||||||
Vim puts a line in column 1 if:
|
Vim puts a line in column 1 if:
|
||||||
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
|
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
|
||||||
- It starts with a label (a keyword followed by ':', other than "case" and
|
- It starts with a label (a keyword followed by ':', other than "case" and
|
||||||
"default").
|
"default") and 'cinoptions' does not contain an 'L' entry with a positive
|
||||||
|
value.
|
||||||
- Any combination of indentations causes the line to have less than 0
|
- Any combination of indentations causes the line to have less than 0
|
||||||
indentation.
|
indentation.
|
||||||
|
|
||||||
@@ -552,6 +588,10 @@ For example, with N = 1, this will give:
|
|||||||
(Notice the extra indent between the PHP container markers and the code)
|
(Notice the extra indent between the PHP container markers and the code)
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
To indent PHP tags as the surrounding code: >
|
||||||
|
:let g:PHP_outdentphpescape = 0
|
||||||
|
-------------
|
||||||
|
|
||||||
To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
|
To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
|
||||||
:let g:PHP_removeCRwhenUnix = 1
|
:let g:PHP_removeCRwhenUnix = 1
|
||||||
-------------
|
-------------
|
||||||
@@ -577,7 +617,7 @@ NOTE: Indenting will be a bit slower if this option is used because some
|
|||||||
To indent 'case:' and 'default:' statements in switch() blocks: >
|
To indent 'case:' and 'default:' statements in switch() blocks: >
|
||||||
:let g:PHP_vintage_case_default_indent = 1
|
:let g:PHP_vintage_case_default_indent = 1
|
||||||
|
|
||||||
(By default they are indented at the same level than the 'switch()' to avoid
|
(Since in PHP braces are not required inside 'case/default' blocks, by default they are indented at the same level than the 'switch()' to avoid
|
||||||
unnecessary indentation)
|
unnecessary indentation)
|
||||||
|
|
||||||
|
|
||||||
@@ -609,8 +649,9 @@ b:sh_indent_options['continuation-line']
|
|||||||
|
|
||||||
b:sh_indent_options['case-labels']
|
b:sh_indent_options['case-labels']
|
||||||
Amount of indent to add for case labels.
|
Amount of indent to add for case labels.
|
||||||
|
(not actually implemented)
|
||||||
|
|
||||||
b:sh_indent_options['case-statement']
|
b:sh_indent_options['case-statements']
|
||||||
Amount of indent to add for case statements.
|
Amount of indent to add for case statements.
|
||||||
|
|
||||||
b:sh_indent_options['case-breaks']
|
b:sh_indent_options['case-breaks']
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*index.txt* For Vim version 7.2. Last change: 2008 May 04
|
*index.txt* For Vim version 7.3. Last change: 2011 Jan 04
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -29,7 +29,7 @@ For a complete listing of all help items see |help-tags|.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
1. Insert mode *insert-index*
|
1. Insert mode *insert-index*
|
||||||
|
|
||||||
tag char action ~
|
tag char action in Insert mode ~
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|i_CTRL-@| CTRL-@ insert previously inserted text and stop
|
|i_CTRL-@| CTRL-@ insert previously inserted text and stop
|
||||||
insert
|
insert
|
||||||
@@ -102,7 +102,7 @@ tag char action ~
|
|||||||
|i_CTRL-^| CTRL-^ toggle use of |:lmap| mappings
|
|i_CTRL-^| CTRL-^ toggle use of |:lmap| mappings
|
||||||
|i_CTRL-_| CTRL-_ When 'allowrevins' set: change language
|
|i_CTRL-_| CTRL-_ When 'allowrevins' set: change language
|
||||||
(Hebrew, Farsi) {only when compiled with
|
(Hebrew, Farsi) {only when compiled with
|
||||||
+rightleft feature}
|
the |+rightleft| feature}
|
||||||
|
|
||||||
<Space> to '~' not used, except '0' and '^' followed by
|
<Space> to '~' not used, except '0' and '^' followed by
|
||||||
CTRL-D
|
CTRL-D
|
||||||
@@ -136,10 +136,14 @@ tag char action ~
|
|||||||
|i_<Help>| <Help> stop insert mode and display help window
|
|i_<Help>| <Help> stop insert mode and display help window
|
||||||
|i_<Insert>| <Insert> toggle Insert/Replace mode
|
|i_<Insert>| <Insert> toggle Insert/Replace mode
|
||||||
|i_<LeftMouse>| <LeftMouse> cursor at mouse click
|
|i_<LeftMouse>| <LeftMouse> cursor at mouse click
|
||||||
|i_<MouseDown>| <MouseDown> scroll three lines downwards
|
|i_<ScrollWheelDown>| <ScrollWheelDown> move window three lines down
|
||||||
|i_<S-MouseDown>| <S-MouseDown> scroll a full page downwards
|
|i_<S-ScrollWheelDown>| <S-ScrollWheelDown> move window one page down
|
||||||
|i_<MouseUp>| <MouseUp> scroll three lines upwards
|
|i_<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|
||||||
|i_<S-MouseUp>| <S-MouseUp> scroll a full page upwards
|
|i_<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|
||||||
|
|i_<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|
||||||
|
|i_<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|
||||||
|
|i_<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|
||||||
|
|i_<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
|
||||||
|
|
||||||
commands in CTRL-X submode *i_CTRL-X_index*
|
commands in CTRL-X submode *i_CTRL-X_index*
|
||||||
|
|
||||||
@@ -159,7 +163,7 @@ commands in CTRL-X submode *i_CTRL-X_index*
|
|||||||
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line
|
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line
|
||||||
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags
|
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags
|
||||||
|i_CTRL-X_s| CTRL-X s spelling suggestions
|
|i_CTRL-X_s| CTRL-X s spelling suggestions
|
||||||
{not available when compiled without the +insert_expand feature}
|
{not available when compiled without the |+insert_expand| feature}
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
2. Normal mode *normal-index*
|
2. Normal mode *normal-index*
|
||||||
@@ -441,17 +445,21 @@ tag char note action in Normal mode ~
|
|||||||
|<S-Up>| <S-Up> 1 same as CTRL-B
|
|<S-Up>| <S-Up> 1 same as CTRL-B
|
||||||
|<Undo>| <Undo> 2 same as "u"
|
|<Undo>| <Undo> 2 same as "u"
|
||||||
|<Up>| <Up> 1 same as "k"
|
|<Up>| <Up> 1 same as "k"
|
||||||
|<MouseDown>| <MouseDown> scroll three lines downwards
|
|<ScrollWheelDown>| <ScrollWheelDown> move window three lines down
|
||||||
|<S-MouseDown>| <S-MouseDown> scroll a full page downwards
|
|<S-ScrollWheelDown>| <S-ScrollWheelDown> move window one page down
|
||||||
|<MouseUp>| <MouseUp> scroll three lines upwards
|
|<ScrollWheelUp>| <ScrollWheelUp> move window three lines up
|
||||||
|<S-MouseUp>| <S-MouseUp> scroll a full page upwards
|
|<S-ScrollWheelUp>| <S-ScrollWheelUp> move window one page up
|
||||||
|
|<ScrollWheelLeft>| <ScrollWheelLeft> move window six columns left
|
||||||
|
|<S-ScrollWheelLeft>| <S-ScrollWheelLeft> move window one page left
|
||||||
|
|<ScrollWheelRight>| <ScrollWheelRight> move window six columns right
|
||||||
|
|<S-ScrollWheelRight>| <S-ScrollWheelRight> move window one page right
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
2.1 Text objects *objects*
|
2.1 Text objects *objects*
|
||||||
|
|
||||||
These can be used after an operator or in Visual mode to select an object.
|
These can be used after an operator or in Visual mode to select an object.
|
||||||
|
|
||||||
tag command action in Normal mode ~
|
tag command action in op-pending and Visual mode ~
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|v_aquote| a" double quoted string
|
|v_aquote| a" double quoted string
|
||||||
|v_a'| a' single quoted string
|
|v_a'| a' single quoted string
|
||||||
@@ -522,7 +530,7 @@ tag command action in Normal mode ~
|
|||||||
|CTRL-W_+| CTRL-W + increase current window height N lines
|
|CTRL-W_+| CTRL-W + increase current window height N lines
|
||||||
|CTRL-W_-| CTRL-W - decrease current window height N lines
|
|CTRL-W_-| CTRL-W - decrease current window height N lines
|
||||||
|CTRL-W_<| CTRL-W < decrease current window width N columns
|
|CTRL-W_<| CTRL-W < decrease current window width N columns
|
||||||
|CTRL-W_=| CTRL-W = make all windows the same height
|
|CTRL-W_=| CTRL-W = make all windows the same height & width
|
||||||
|CTRL-W_>| CTRL-W > increase current window width N columns
|
|CTRL-W_>| CTRL-W > increase current window width N columns
|
||||||
|CTRL-W_H| CTRL-W H move current window to the far left
|
|CTRL-W_H| CTRL-W H move current window to the far left
|
||||||
|CTRL-W_J| CTRL-W J move current window to the very bottom
|
|CTRL-W_J| CTRL-W J move current window to the very bottom
|
||||||
@@ -572,7 +580,7 @@ tag command action in Normal mode ~
|
|||||||
window N lines high
|
window N lines high
|
||||||
|CTRL-W_t| CTRL-W t go to top window
|
|CTRL-W_t| CTRL-W t go to top window
|
||||||
|CTRL-W_v| CTRL-W v split current window vertically, new window
|
|CTRL-W_v| CTRL-W v split current window vertically, new window
|
||||||
N lines wide
|
N columns wide
|
||||||
|CTRL-W_w| CTRL-W w go to N next window (wrap around)
|
|CTRL-W_w| CTRL-W w go to N next window (wrap around)
|
||||||
|CTRL-W_x| CTRL-W x exchange current window with window N
|
|CTRL-W_x| CTRL-W x exchange current window with window N
|
||||||
(default: next window)
|
(default: next window)
|
||||||
@@ -713,6 +721,7 @@ tag char note action in Normal mode ~
|
|||||||
|gJ| gJ 2 join lines without inserting space
|
|gJ| gJ 2 join lines without inserting space
|
||||||
|gP| ["x]gP 2 put the text [from register x] before the
|
|gP| ["x]gP 2 put the text [from register x] before the
|
||||||
cursor N times, leave the cursor after it
|
cursor N times, leave the cursor after it
|
||||||
|
|gQ| gQ switch to "Ex" mode with Vim editing
|
||||||
|gR| gR 2 enter Virtual Replace mode
|
|gR| gR 2 enter Virtual Replace mode
|
||||||
|gU| gU{motion} 2 make Nmove text uppercase
|
|gU| gU{motion} 2 make Nmove text uppercase
|
||||||
|gV| gV don't reselect the previous Visual area
|
|gV| gV don't reselect the previous Visual area
|
||||||
@@ -943,11 +952,13 @@ Normal characters are inserted at the current cursor position.
|
|||||||
"Completion" below refers to context-sensitive completion. It will complete
|
"Completion" below refers to context-sensitive completion. It will complete
|
||||||
file names, tags, commands etc. as appropriate.
|
file names, tags, commands etc. as appropriate.
|
||||||
|
|
||||||
|
tag command action in Command-line editing mode ~
|
||||||
|
------------------------------------------------------------------------------
|
||||||
CTRL-@ not used
|
CTRL-@ not used
|
||||||
|c_CTRL-A| CTRL-A do completion on the pattern in front of the
|
|c_CTRL-A| CTRL-A do completion on the pattern in front of the
|
||||||
cursor and insert all matches
|
cursor and insert all matches
|
||||||
|c_CTRL-B| CTRL-B cursor to begin of command-line
|
|c_CTRL-B| CTRL-B cursor to begin of command-line
|
||||||
|c_CTRL-C| CTRL-C same as <ESC>
|
|c_CTRL-C| CTRL-C same as <Esc>
|
||||||
|c_CTRL-D| CTRL-D list completions that match the pattern in
|
|c_CTRL-D| CTRL-D list completions that match the pattern in
|
||||||
front of the cursor
|
front of the cursor
|
||||||
|c_CTRL-E| CTRL-E cursor to end of command-line
|
|c_CTRL-E| CTRL-E cursor to end of command-line
|
||||||
@@ -1038,6 +1049,8 @@ This is a brief but complete listing of all the ":" commands, without
|
|||||||
mentioning any arguments. The optional part of the command name is inside [].
|
mentioning any arguments. The optional part of the command name is inside [].
|
||||||
The commands are sorted on the non-optional part of their name.
|
The commands are sorted on the non-optional part of their name.
|
||||||
|
|
||||||
|
tag command action ~
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|:!| :! filter lines or execute an external command
|
|:!| :! filter lines or execute an external command
|
||||||
|:!!| :!! repeat last ":!" command
|
|:!!| :!! repeat last ":!" command
|
||||||
|:#| :# same as ":number"
|
|:#| :# same as ":number"
|
||||||
@@ -1299,6 +1312,9 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:ltag| :lt[ag] jump to tag and add matching tags to the
|
|:ltag| :lt[ag] jump to tag and add matching tags to the
|
||||||
location list
|
location list
|
||||||
|:lunmap| :lu[nmap] like ":unmap!" but includes Lang-Arg mode
|
|:lunmap| :lu[nmap] like ":unmap!" but includes Lang-Arg mode
|
||||||
|
|:lua| :lua execute |Lua| command
|
||||||
|
|:luado| :luad[o] execute Lua command for each line
|
||||||
|
|:luafile| :luaf[ile] execute |Lua| script file
|
||||||
|:lvimgrep| :lv[imgrep] search for pattern in files
|
|:lvimgrep| :lv[imgrep] search for pattern in files
|
||||||
|:lvimgrepadd| :lvimgrepa[dd] like :vimgrep, but append to current list
|
|:lvimgrepadd| :lvimgrepa[dd] like :vimgrep, but append to current list
|
||||||
|:lwindow| :lw[indow] open or close location window
|
|:lwindow| :lw[indow] open or close location window
|
||||||
@@ -1321,7 +1337,9 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:mode| :mod[e] show or change the screen mode
|
|:mode| :mod[e] show or change the screen mode
|
||||||
|:mzscheme| :mz[scheme] execute MzScheme command
|
|:mzscheme| :mz[scheme] execute MzScheme command
|
||||||
|:mzfile| :mzf[ile] execute MzScheme script file
|
|:mzfile| :mzf[ile] execute MzScheme script file
|
||||||
|
|:nbclose| :nbc[lose] close the current Netbeans session
|
||||||
|:nbkey| :nb[key] pass a key to Netbeans
|
|:nbkey| :nb[key] pass a key to Netbeans
|
||||||
|
|:nbstart| :nbs[art] start a new Netbeans session
|
||||||
|:next| :n[ext] go to next file in the argument list
|
|:next| :n[ext] go to next file in the argument list
|
||||||
|:new| :new create a new empty window
|
|:new| :new create a new empty window
|
||||||
|:nmap| :nm[ap] like ":map" but for Normal mode
|
|:nmap| :nm[ap] like ":map" but for Normal mode
|
||||||
@@ -1339,6 +1357,7 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:number| :nu[mber] print lines with line number
|
|:number| :nu[mber] print lines with line number
|
||||||
|:nunmap| :nun[map] like ":unmap" but for Normal mode
|
|:nunmap| :nun[map] like ":unmap" but for Normal mode
|
||||||
|:nunmenu| :nunme[nu] remove menu for Normal mode
|
|:nunmenu| :nunme[nu] remove menu for Normal mode
|
||||||
|
|:oldfiles| :ol[dfiles] list files that have marks in the viminfo file
|
||||||
|:open| :o[pen] start open mode (not implemented)
|
|:open| :o[pen] start open mode (not implemented)
|
||||||
|:omap| :om[ap] like ":map" but for Operator-pending mode
|
|:omap| :om[ap] like ":map" but for Operator-pending mode
|
||||||
|:omapclear| :omapc[lear] remove all mappings for Operator-pending mode
|
|:omapclear| :omapc[lear] remove all mappings for Operator-pending mode
|
||||||
@@ -1349,6 +1368,7 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:options| :opt[ions] open the options-window
|
|:options| :opt[ions] open the options-window
|
||||||
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|
|:ounmap| :ou[nmap] like ":unmap" but for Operator-pending mode
|
||||||
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|
|:ounmenu| :ounme[nu] remove menu for Operator-pending mode
|
||||||
|
|:ownsyntax| :ow[nsyntax] set new local syntax highlight for this window
|
||||||
|:pclose| :pc[lose] close preview window
|
|:pclose| :pc[lose] close preview window
|
||||||
|:pedit| :ped[it] edit file in the preview window
|
|:pedit| :ped[it] edit file in the preview window
|
||||||
|:perl| :pe[rl] execute Perl command
|
|:perl| :pe[rl] execute Perl command
|
||||||
@@ -1375,6 +1395,9 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:ptselect| :pts[elect] |:tselect| and show tag in preview window
|
|:ptselect| :pts[elect] |:tselect| and show tag in preview window
|
||||||
|:put| :pu[t] insert contents of register in the text
|
|:put| :pu[t] insert contents of register in the text
|
||||||
|:pwd| :pw[d] print current directory
|
|:pwd| :pw[d] print current directory
|
||||||
|
|:py3| :py3 execute Python 3 command
|
||||||
|
|:python3| :python3 same as :py3
|
||||||
|
|:py3file| :py3f[ile] execute Python 3 script file
|
||||||
|:python| :py[thon] execute Python command
|
|:python| :py[thon] execute Python command
|
||||||
|:pyfile| :pyf[ile] execute Python script file
|
|:pyfile| :pyf[ile] execute Python script file
|
||||||
|:quit| :q[uit] quit current window (when one window quit Vim)
|
|:quit| :q[uit] quit current window (when one window quit Vim)
|
||||||
@@ -1396,6 +1419,7 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:ruby| :rub[y] execute Ruby command
|
|:ruby| :rub[y] execute Ruby command
|
||||||
|:rubydo| :rubyd[o] execute Ruby command for each line
|
|:rubydo| :rubyd[o] execute Ruby command for each line
|
||||||
|:rubyfile| :rubyf[ile] execute Ruby script file
|
|:rubyfile| :rubyf[ile] execute Ruby script file
|
||||||
|
|:rundo| :rund[o] read undo information from a file
|
||||||
|:runtime| :ru[ntime] source vim scripts in 'runtimepath'
|
|:runtime| :ru[ntime] source vim scripts in 'runtimepath'
|
||||||
|:rviminfo| :rv[iminfo] read from viminfo file
|
|:rviminfo| :rv[iminfo] read from viminfo file
|
||||||
|:substitute| :s[ubstitute] find and replace text
|
|:substitute| :s[ubstitute] find and replace text
|
||||||
@@ -1436,7 +1460,7 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:shell| :sh[ell] escape to a shell
|
|:shell| :sh[ell] escape to a shell
|
||||||
|:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key
|
|:simalt| :sim[alt] Win32 GUI: simulate Windows ALT key
|
||||||
|:sign| :sig[n] manipulate signs
|
|:sign| :sig[n] manipulate signs
|
||||||
|:silent| :sil[ent] Run a command silently
|
|:silent| :sil[ent] run a command silently
|
||||||
|:sleep| :sl[eep] do nothing for a few seconds
|
|:sleep| :sl[eep] do nothing for a few seconds
|
||||||
|:slast| :sla[st] split window and go to last file in the
|
|:slast| :sla[st] split window and go to last file in the
|
||||||
argument list
|
argument list
|
||||||
@@ -1525,6 +1549,7 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:unlockvar| :unlo[ckvar] unlock variables
|
|:unlockvar| :unlo[ckvar] unlock variables
|
||||||
|:unmap| :unm[ap] remove mapping
|
|:unmap| :unm[ap] remove mapping
|
||||||
|:unmenu| :unme[nu] remove menu
|
|:unmenu| :unme[nu] remove menu
|
||||||
|
|:unsilent| :uns[ilent] run a command not silently
|
||||||
|:update| :up[date] write buffer if modified
|
|:update| :up[date] write buffer if modified
|
||||||
|:vglobal| :v[global] execute commands for not matching lines
|
|:vglobal| :v[global] execute commands for not matching lines
|
||||||
|:version| :ve[rsion] print version number and other info
|
|:version| :ve[rsion] print version number and other info
|
||||||
@@ -1560,6 +1585,7 @@ The commands are sorted on the non-optional part of their name.
|
|||||||
|:wq| :wq write to a file and quit window or Vim
|
|:wq| :wq write to a file and quit window or Vim
|
||||||
|:wqall| :wqa[ll] write all changed buffers and quit Vim
|
|:wqall| :wqa[ll] write all changed buffers and quit Vim
|
||||||
|:wsverb| :ws[verb] pass the verb to workshop over IPC
|
|:wsverb| :ws[verb] pass the verb to workshop over IPC
|
||||||
|
|:wundo| :wu[ndo] write undo information to a file
|
||||||
|:wviminfo| :wv[iminfo] write to viminfo 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 quit window or Vim
|
||||||
|:xall| :xa[ll] same as ":wqall"
|
|:xall| :xa[ll] same as ":wqall"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*insert.txt* For Vim version 7.2. Last change: 2008 Jun 21
|
*insert.txt* For Vim version 7.3. Last change: 2010 Nov 10
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -123,6 +123,7 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
|
|||||||
':' the last command-line
|
':' the last command-line
|
||||||
'.' the last inserted text
|
'.' the last inserted text
|
||||||
'-' the last small (less than a line) delete
|
'-' the last small (less than a line) delete
|
||||||
|
*i_CTRL-R_=*
|
||||||
'=' the expression register: you are prompted to
|
'=' the expression register: you are prompted to
|
||||||
enter an expression (see |expression|)
|
enter an expression (see |expression|)
|
||||||
Note that 0x80 (128 decimal) is used for
|
Note that 0x80 (128 decimal) is used for
|
||||||
@@ -133,6 +134,8 @@ CTRL-R {0-9a-z"%#*+:.-=} *i_CTRL-R*
|
|||||||
When the result is a |List| the items are used
|
When the result is a |List| the items are used
|
||||||
as lines. They can have line breaks inside
|
as lines. They can have line breaks inside
|
||||||
too.
|
too.
|
||||||
|
When the result is a Float it's automatically
|
||||||
|
converted to a String.
|
||||||
See |registers| about registers. {not in Vi}
|
See |registers| about registers. {not in Vi}
|
||||||
|
|
||||||
CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
|
CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R*
|
||||||
@@ -356,10 +359,14 @@ CTRL-G CTRL-J cursor one line down, insert start column *i_CTRL-G_CTRL-J*
|
|||||||
<PageUp> move window one page up *i_<PageUp>*
|
<PageUp> move window one page up *i_<PageUp>*
|
||||||
<S-Down> move window one page down *i_<S-Down>*
|
<S-Down> move window one page down *i_<S-Down>*
|
||||||
<PageDown> move window one page down *i_<PageDown>*
|
<PageDown> move window one page down *i_<PageDown>*
|
||||||
<MouseDown> scroll three lines down *i_<MouseDown>*
|
<ScrollWheelDown> move window three lines down *i_<ScrollWheelDown>*
|
||||||
<S-MouseDown> scroll a full page down *i_<S-MouseDown>*
|
<S-ScrollWheelDown> move window one page down *i_<S-ScrollWheelDown>*
|
||||||
<MouseUp> scroll three lines up *i_<MouseUp>*
|
<ScrollWheelUp> move window three lines up *i_<ScrollWheelUp>*
|
||||||
<S-MouseUp> scroll a full page up *i_<S-MouseUp>*
|
<S-ScrollWheelUp> move window one page up *i_<S-ScrollWheelUp>*
|
||||||
|
<ScrollWheelLeft> move window six columns left *i_<ScrollWheelLeft>*
|
||||||
|
<S-ScrollWheelLeft> move window one page left *i_<S-ScrollWheelLeft>*
|
||||||
|
<ScrollWheelRight> move window six columns right *i_<ScrollWheelRight>*
|
||||||
|
<S-ScrollWheelRight> move window one page right *i_<S-ScrollWheelRight>*
|
||||||
CTRL-O execute one command, return to Insert mode *i_CTRL-O*
|
CTRL-O execute one command, return to Insert mode *i_CTRL-O*
|
||||||
CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
|
CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O*
|
||||||
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
|
CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L*
|
||||||
@@ -375,6 +382,10 @@ mappings it's often better to use <Esc> (first put an "x" in the text, <Esc>
|
|||||||
will then always put the cursor on it). Or use CTRL-\ CTRL-O, but then
|
will then always put the cursor on it). Or use CTRL-\ CTRL-O, but then
|
||||||
beware of the cursor possibly being beyond the end of the line.
|
beware of the cursor possibly being beyond the end of the line.
|
||||||
|
|
||||||
|
The CTRL-O command takes you to Normal mode. If you then use a command enter
|
||||||
|
Insert mode again it doesn't nest. Thus when typing "a<C-O>a" and then <Esc>
|
||||||
|
takes you back to Normal mode, you do not need to type <Esc> twice.
|
||||||
|
|
||||||
The shifted cursor keys are not available on all terminals.
|
The shifted cursor keys are not available on all terminals.
|
||||||
|
|
||||||
Another side effect is that a count specified before the "i" or "a" command is
|
Another side effect is that a count specified before the "i" or "a" command is
|
||||||
@@ -520,7 +531,7 @@ last one). {Vi does not have the 'expandtab' option}
|
|||||||
6. Virtual Replace mode *vreplace-mode* *Virtual-Replace-mode*
|
6. Virtual Replace mode *vreplace-mode* *Virtual-Replace-mode*
|
||||||
|
|
||||||
Enter Virtual Replace mode with the "gR" command in normal mode.
|
Enter Virtual Replace mode with the "gR" command in normal mode.
|
||||||
{not available when compiled without the +vreplace feature}
|
{not available when compiled without the |+vreplace| feature}
|
||||||
{Vi does not have Virtual Replace mode}
|
{Vi does not have Virtual Replace mode}
|
||||||
|
|
||||||
Virtual Replace mode is similar to Replace mode, but instead of replacing
|
Virtual Replace mode is similar to Replace mode, but instead of replacing
|
||||||
@@ -548,12 +559,11 @@ CTRL-D, 'expandtab', 'smarttab', 'softtabstop', etc.
|
|||||||
In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode,
|
In 'list' mode, Virtual Replace mode acts as if it was not in 'list' mode,
|
||||||
unless "L" is in 'cpoptions'.
|
unless "L" is in 'cpoptions'.
|
||||||
|
|
||||||
Note that the only times characters beyond the cursor should appear to move
|
Note that the only situations for which characters beyond the cursor should
|
||||||
are in 'list' mode, and occasionally when 'wrap' is set (and the line changes
|
appear to move are in List mode |'list'|, and occasionally when 'wrap' is set
|
||||||
length to become shorter or wider than the width of the screen), or
|
(and the line changes length to become shorter or wider than the width of the
|
||||||
momentarily when typing over a CTRL character. A CTRL character takes up two
|
screen). In other cases spaces may be inserted to avoid following characters
|
||||||
screen spaces. When replacing it with two normal characters, the first will
|
to move.
|
||||||
be inserted and the second will replace the CTRL character.
|
|
||||||
|
|
||||||
This mode is very useful for editing <Tab> separated columns in tables, for
|
This mode is very useful for editing <Tab> separated columns in tables, for
|
||||||
entering new data while keeping all the columns aligned.
|
entering new data while keeping all the columns aligned.
|
||||||
@@ -636,6 +646,7 @@ completion operation: >
|
|||||||
return "\<Tab>"
|
return "\<Tab>"
|
||||||
else
|
else
|
||||||
return "\<C-N>"
|
return "\<C-N>"
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
inoremap <Tab> <C-R>=CleverTab()<CR>
|
inoremap <Tab> <C-R>=CleverTab()<CR>
|
||||||
|
|
||||||
@@ -660,7 +671,8 @@ CTRL-X CTRL-L Search backwards for a line that starts with the
|
|||||||
|
|
||||||
CTRL-X CTRL-L After expanding a line you can additionally get the
|
CTRL-X CTRL-L After expanding a line you can additionally get the
|
||||||
line next to it by typing CTRL-X CTRL-L again, unless
|
line next to it by typing CTRL-X CTRL-L again, unless
|
||||||
a double CTRL-X is used.
|
a double CTRL-X is used. Only works for loaded
|
||||||
|
buffers.
|
||||||
|
|
||||||
Completing keywords in current file *compl-current*
|
Completing keywords in current file *compl-current*
|
||||||
|
|
||||||
@@ -1025,6 +1037,8 @@ items:
|
|||||||
items that only differ in case are added
|
items that only differ in case are added
|
||||||
dup when non-zero this match will be added even when an
|
dup when non-zero this match will be added even when an
|
||||||
item with the same word is already present.
|
item with the same word is already present.
|
||||||
|
empty when non-zero this match will be added even when it is
|
||||||
|
an empty string
|
||||||
|
|
||||||
All of these except 'icase' must be a string. If an item does not meet these
|
All of these except 'icase' must be a string. If an item does not meet these
|
||||||
requirements then an error message is given and further items in the list are
|
requirements then an error message is given and further items in the list are
|
||||||
@@ -1035,7 +1049,8 @@ be relatively short. The "info" item can be longer, it will be displayed in
|
|||||||
the preview window when "preview" appears in 'completeopt'. The "info" item
|
the preview window when "preview" appears in 'completeopt'. The "info" item
|
||||||
will also remain displayed after the popup menu has been removed. This is
|
will also remain displayed after the popup menu has been removed. This is
|
||||||
useful for function arguments. Use a single space for "info" to remove
|
useful for function arguments. Use a single space for "info" to remove
|
||||||
existing text in the preview window.
|
existing text in the preview window. The size of the preview window is three
|
||||||
|
lines, but 'previewheight' is used when it has a value of 1 or 2.
|
||||||
|
|
||||||
The "kind" item uses a single letter to indicate the kind of completion. This
|
The "kind" item uses a single letter to indicate the kind of completion. This
|
||||||
may be used to show the completion differently (different color or icon).
|
may be used to show the completion differently (different color or icon).
|
||||||
@@ -1051,9 +1066,9 @@ match to the total list. These matches should then not appear in the returned
|
|||||||
list! Call |complete_check()| now and then to allow the user to press a key
|
list! Call |complete_check()| now and then to allow the user to press a key
|
||||||
while still searching for matches. Stop searching when it returns non-zero.
|
while still searching for matches. Stop searching when it returns non-zero.
|
||||||
|
|
||||||
The function is allowed to move the cursor, it is restored afterwards. This
|
*E839* *E840*
|
||||||
option cannot be set from a |modeline| or in the |sandbox|, for security
|
The function is allowed to move the cursor, it is restored afterwards.
|
||||||
reasons.
|
The function is not allowed to move to another window or delete text.
|
||||||
|
|
||||||
An example that completes the names of the months: >
|
An example that completes the names of the months: >
|
||||||
fun! CompleteMonths(findstart, base)
|
fun! CompleteMonths(findstart, base)
|
||||||
@@ -1353,7 +1368,7 @@ Script completes:
|
|||||||
- function names with additional info:
|
- function names with additional info:
|
||||||
- in case of built-in functions list of possible arguments and after | type
|
- in case of built-in functions list of possible arguments and after | type
|
||||||
data returned by function
|
data returned by function
|
||||||
- in case of user function arguments and name of file were function was
|
- in case of user function arguments and name of file where function was
|
||||||
defined (if it is not current file)
|
defined (if it is not current file)
|
||||||
|
|
||||||
- constants names
|
- constants names
|
||||||
@@ -1441,8 +1456,8 @@ a look at the PHP filetype to see how this works.
|
|||||||
If you edit a file called, index.php, run the following command: >
|
If you edit a file called, index.php, run the following command: >
|
||||||
:syntax list
|
:syntax list
|
||||||
|
|
||||||
First thing you will notice is there are many different syntax groups. The
|
The first thing you will notice is that there are many different syntax groups.
|
||||||
PHP language can include elements from different languages like HTML,
|
The PHP language can include elements from different languages like HTML,
|
||||||
JavaScript and many more. The syntax plugin will only include syntax groups
|
JavaScript and many more. The syntax plugin will only include syntax groups
|
||||||
that begin with the filetype, "php", in this case. For example these syntax
|
that begin with the filetype, "php", in this case. For example these syntax
|
||||||
groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
||||||
@@ -1479,6 +1494,38 @@ on word characters. This can be controlled adding the following to your
|
|||||||
vimrc: >
|
vimrc: >
|
||||||
let g:omni_syntax_use_iskeyword = 0
|
let g:omni_syntax_use_iskeyword = 0
|
||||||
|
|
||||||
|
For plugin developers, the plugin exposes a public function OmniSyntaxList.
|
||||||
|
This function can be used to request a List of syntax items. When editing a
|
||||||
|
SQL file (:e syntax.sql) you can use the ":syntax list" command to see the
|
||||||
|
various groups and syntax items. For example: >
|
||||||
|
syntax list
|
||||||
|
|
||||||
|
Yields data similar to this: >
|
||||||
|
sqlOperator xxx some prior all like and any escape exists in is not
|
||||||
|
or intersect minus between distinct
|
||||||
|
links to Operator
|
||||||
|
sqlType xxx varbit varchar nvarchar bigint int uniqueidentifier
|
||||||
|
date money long tinyint unsigned xml text smalldate
|
||||||
|
double datetime nchar smallint numeric time bit char
|
||||||
|
varbinary binary smallmoney
|
||||||
|
image float integer timestamp real decimal
|
||||||
|
|
||||||
|
There are two syntax groups listed here: sqlOperator and sqlType. To retrieve
|
||||||
|
a List of syntax items you can call OmniSyntaxList a number of different
|
||||||
|
ways. To retrieve all syntax items regardless of syntax group: >
|
||||||
|
echo OmniSyntaxList( [] )
|
||||||
|
|
||||||
|
To retrieve only the syntax items for the sqlOperator syntax group: >
|
||||||
|
echo OmniSyntaxList( ['sqlOperator'] )
|
||||||
|
|
||||||
|
To retrieve all syntax items for both the sqlOperator and sqlType groups: >
|
||||||
|
echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )
|
||||||
|
|
||||||
|
From within a plugin, you would typically assign the output to a List: >
|
||||||
|
let myKeywords = []
|
||||||
|
let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SQL *ft-sql-omni*
|
SQL *ft-sql-omni*
|
||||||
|
|
||||||
@@ -1488,7 +1535,7 @@ with data pulled directly from within a database. For detailed instructions
|
|||||||
and a tutorial see |omni-sql-completion|.
|
and a tutorial see |omni-sql-completion|.
|
||||||
|
|
||||||
The SQL completion plugin can be used in conjunction with other completion
|
The SQL completion plugin can be used in conjunction with other completion
|
||||||
plugins. For example, the PHP filetype has it's own completion plugin.
|
plugins. For example, the PHP filetype has its own completion plugin.
|
||||||
Since PHP is often used to generate dynamic website by accessing a database,
|
Since PHP is often used to generate dynamic website by accessing a database,
|
||||||
the SQL completion plugin can also be enabled. This allows you to complete
|
the SQL completion plugin can also be enabled. This allows you to complete
|
||||||
PHP code and SQL code at the same time.
|
PHP code and SQL code at the same time.
|
||||||
@@ -1725,14 +1772,14 @@ too long when appending characters a line break is automatically inserted.
|
|||||||
These two commands will keep on asking for lines, until you type a line
|
These two commands will keep on asking for lines, until you type a line
|
||||||
containing only a ".". Watch out for lines starting with a backslash, see
|
containing only a ".". Watch out for lines starting with a backslash, see
|
||||||
|line-continuation|.
|
|line-continuation|.
|
||||||
When these commands are used with |:global| or |:vglobal| then the lines are
|
|
||||||
obtained from the text following the command. Separate lines with a NL
|
When in Ex mode (see |-e|) a backslash at the end of the line can be used to
|
||||||
escaped with a backslash: >
|
insert a NUL character. To be able to have a line ending in a backslash use
|
||||||
:global/abc/insert\
|
two backslashes. This means that the number of backslashes is halved, but
|
||||||
one line\
|
only at the end of the line.
|
||||||
another line
|
|
||||||
The final "." is not needed then.
|
NOTE: These commands cannot be used with |:global| or |:vglobal|.
|
||||||
NOTE: ":append" and ":insert" don't work properly in between ":if" and
|
":append" and ":insert" don't work properly in between ":if" and
|
||||||
":endif", ":for" and ":endfor", ":while" and ":endwhile".
|
":endif", ":for" and ":endfor", ":while" and ":endwhile".
|
||||||
|
|
||||||
*:start* *:startinsert*
|
*:start* *:startinsert*
|
||||||
@@ -1745,7 +1792,7 @@ NOTE: ":append" and ":insert" don't work properly in between ":if" and
|
|||||||
or script is finished.
|
or script is finished.
|
||||||
This command does not work from |:normal|.
|
This command does not work from |:normal|.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the +ex_extra
|
{not available when compiled without the |+ex_extra|
|
||||||
feature}
|
feature}
|
||||||
|
|
||||||
*:stopi* *:stopinsert*
|
*:stopi* *:stopinsert*
|
||||||
@@ -1764,14 +1811,14 @@ NOTE: ":append" and ":insert" don't work properly in between ":if" and
|
|||||||
script that the replacement will only start after
|
script that the replacement will only start after
|
||||||
the function or script is finished.
|
the function or script is finished.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the +ex_extra
|
{not available when compiled without the |+ex_extra|
|
||||||
feature}
|
feature}
|
||||||
|
|
||||||
*:startgreplace*
|
*:startgreplace*
|
||||||
:startg[replace][!] Just like |:startreplace|, but use Virtual Replace
|
:startg[replace][!] Just like |:startreplace|, but use Virtual Replace
|
||||||
mode, like with |gR|.
|
mode, like with |gR|.
|
||||||
{not in Vi}
|
{not in Vi}
|
||||||
{not available when compiled without the +ex_extra
|
{not available when compiled without the |+ex_extra|
|
||||||
feature}
|
feature}
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
*intro.txt* For Vim version 7.2. Last change: 2008 Jun 24
|
*intro.txt* For Vim version 7.3. Last change: 2010 Dec 08
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@@ -43,6 +43,10 @@ between different computers and terminals. Besides the remarks given in this
|
|||||||
document, there is a separate document for each supported system, see
|
document, there is a separate document for each supported system, see
|
||||||
|sys-file-list|.
|
|sys-file-list|.
|
||||||
|
|
||||||
|
*pronounce*
|
||||||
|
Vim is pronounced as one word, like Jim, not vi-ai-em. It's written with a
|
||||||
|
capital, since it's a name, again like Jim.
|
||||||
|
|
||||||
This manual is a reference for all the Vim commands and options. This is not
|
This manual is a reference for all the Vim commands and options. This is not
|
||||||
an introduction to the use of Vi or Vim, it gets a bit complicated here and
|
an introduction to the use of Vi or Vim, it gets a bit complicated here and
|
||||||
there. For beginners, there is a hands-on |tutor|. To learn using Vim, read
|
there. For beginners, there is a hands-on |tutor|. To learn using Vim, read
|
||||||
@@ -190,6 +194,7 @@ patches, suggestions and giving feedback about what is good and bad in Vim.
|
|||||||
Vim would never have become what it is now, without the help of these people!
|
Vim would never have become what it is now, without the help of these people!
|
||||||
|
|
||||||
Ron Aaron Win32 GUI changes
|
Ron Aaron Win32 GUI changes
|
||||||
|
Mohsin Ahmed encryption
|
||||||
Zoltan Arpadffy work on VMS port
|
Zoltan Arpadffy work on VMS port
|
||||||
Tony Andrews Stevie
|
Tony Andrews Stevie
|
||||||
Gert van Antwerpen changes for DJGPP on MS-DOS
|
Gert van Antwerpen changes for DJGPP on MS-DOS
|
||||||
@@ -222,13 +227,13 @@ Vim would never have become what it is now, without the help of these people!
|
|||||||
David Leonard Port of Python extensions to Unix
|
David Leonard Port of Python extensions to Unix
|
||||||
Avner Lottem Edit in right-to-left windows
|
Avner Lottem Edit in right-to-left windows
|
||||||
Flemming Madsen X11 client-server, various features and patches
|
Flemming Madsen X11 client-server, various features and patches
|
||||||
Microsoft Gave me a copy of DevStudio to compile Vim with
|
Tony Mechelynck answers many user questions
|
||||||
Paul Moore Python interface extensions, many patches
|
Paul Moore Python interface extensions, many patches
|
||||||
Katsuhito Nagano Work on multi-byte versions
|
Katsuhito Nagano Work on multi-byte versions
|
||||||
Sung-Hyun Nam Work on multi-byte versions
|
Sung-Hyun Nam Work on multi-byte versions
|
||||||
Vince Negri Win32 GUI and generic console enhancements
|
Vince Negri Win32 GUI and generic console enhancements
|
||||||
Steve Oualline Author of the first Vim book |frombook|
|
Steve Oualline Author of the first Vim book |frombook|
|
||||||
Dominique Pelle figuring out valgrind reports and fixes
|
Dominique Pelle valgrind reports and many fixes
|
||||||
A.Politz Many bug reports and some fixes
|
A.Politz Many bug reports and some fixes
|
||||||
George V. Reilly Win32 port, Win32 GUI start-off
|
George V. Reilly Win32 port, Win32 GUI start-off
|
||||||
Stephen Riehm bug collector
|
Stephen Riehm bug collector
|
||||||
@@ -295,7 +300,7 @@ and <> are part of what you type, the context should make this clear.
|
|||||||
|
|
||||||
[] Characters in square brackets are optional.
|
[] Characters in square brackets are optional.
|
||||||
|
|
||||||
*count* *[count]* *E489*
|
*count* *[count]*
|
||||||
[count] An optional number that may precede the command to multiply
|
[count] An optional number that may precede the command to multiply
|
||||||
or iterate the command. If no number is given, a count of one
|
or iterate the command. If no number is given, a count of one
|
||||||
is used, unless otherwise noted. Note that in this manual the
|
is used, unless otherwise noted. Note that in this manual the
|
||||||
@@ -611,7 +616,6 @@ Replace <Esc> -- -- <Insert> -- --
|
|||||||
Command-line *3 -- -- :start -- --
|
Command-line *3 -- -- :start -- --
|
||||||
Ex :vi -- -- -- -- --
|
Ex :vi -- -- -- -- --
|
||||||
|
|
||||||
- NA
|
|
||||||
-- not possible
|
-- not possible
|
||||||
|
|
||||||
*1 Go from Normal mode to Insert mode by giving the command "i", "I", "a",
|
*1 Go from Normal mode to Insert mode by giving the command "i", "I", "a",
|
||||||
@@ -698,7 +702,7 @@ Lines longer than the window width will wrap, unless the 'wrap' option is off
|
|||||||
(see below). The 'linebreak' option can be set to wrap at a blank character.
|
(see below). The 'linebreak' option can be set to wrap at a blank character.
|
||||||
|
|
||||||
If the window has room after the last line of the buffer, Vim will show '~' in
|
If the window has room after the last line of the buffer, Vim will show '~' in
|
||||||
the first column of the last lines in the window, like this: >
|
the first column of the last lines in the window, like this:
|
||||||
|
|
||||||
+-----------------------+
|
+-----------------------+
|
||||||
|some line |
|
|some line |
|
||||||
@@ -710,7 +714,7 @@ the first column of the last lines in the window, like this: >
|
|||||||
Thus the '~' lines indicate that the end of the buffer was reached.
|
Thus the '~' lines indicate that the end of the buffer was reached.
|
||||||
|
|
||||||
If the last line in a window doesn't fit, Vim will indicate this with a '@' in
|
If the last line in a window doesn't fit, Vim will indicate this with a '@' in
|
||||||
the first column of the last lines in the window, like this: >
|
the first column of the last lines in the window, like this:
|
||||||
|
|
||||||
+-----------------------+
|
+-----------------------+
|
||||||
|first line |
|
|first line |
|
||||||
@@ -725,7 +729,7 @@ window.
|
|||||||
When the "lastline" flag is present in the 'display' option, you will not see
|
When the "lastline" flag is present in the 'display' option, you will not see
|
||||||
'@' characters at the left side of window. If the last line doesn't fit
|
'@' characters at the left side of window. If the last line doesn't fit
|
||||||
completely, only the part that fits is shown, and the last three characters of
|
completely, only the part that fits is shown, and the last three characters of
|
||||||
the last line are replaced with "@@@", like this: >
|
the last line are replaced with "@@@", like this:
|
||||||
|
|
||||||
+-----------------------+
|
+-----------------------+
|
||||||
|first line |
|
|first line |
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user