mirror of
https://github.com/zoriya/vim.git
synced 2025-12-25 08:35:22 +00:00
Compare commits
1084 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9bdb9a0987 | ||
|
|
5fb9ec5ed7 | ||
|
|
9581b5f70e | ||
|
|
641e286153 | ||
|
|
058bdcfd5d | ||
|
|
6763c140d6 | ||
|
|
049d8e79cf | ||
|
|
94c465c53d | ||
|
|
1a0cee53d4 | ||
|
|
b5c9cb555e | ||
|
|
bdb620560b | ||
|
|
c2ece10274 | ||
|
|
97f38d9540 | ||
|
|
30b6581799 | ||
|
|
dfef15481d | ||
|
|
89af439409 | ||
|
|
cfa3caec0c | ||
|
|
c0885aad5c | ||
|
|
f65e5667df | ||
|
|
773c1ef81b | ||
|
|
52bf469f6f | ||
|
|
77c604d3ff | ||
|
|
6c4b646d84 | ||
|
|
8cb8dca2f0 | ||
|
|
0306ac33a5 | ||
|
|
bef4790c23 | ||
|
|
756287da38 | ||
|
|
e25865a7f3 | ||
|
|
95b557b1dc | ||
|
|
5967abb97f | ||
|
|
221d6872c4 | ||
|
|
e721122b79 | ||
|
|
49346f4155 | ||
|
|
cc3e85f169 | ||
|
|
3cd3e7ab17 | ||
|
|
2afa3238a1 | ||
|
|
f27839c1a9 | ||
|
|
11b73d668f | ||
|
|
96b7ca5142 | ||
|
|
89f940fcac | ||
|
|
e79abddb2f | ||
|
|
88b1ba151a | ||
|
|
a53c60d33c | ||
|
|
f6a2b08c54 | ||
|
|
8f5c6f003a | ||
|
|
db91395312 | ||
|
|
a7014df975 | ||
|
|
002850940e | ||
|
|
22189a4bd6 | ||
|
|
3943156034 | ||
|
|
d12f811816 | ||
|
|
50a12b4078 | ||
|
|
38bdbd6c6f | ||
|
|
5e1a0a9a65 | ||
|
|
ed46560bf0 | ||
|
|
9158f9e423 | ||
|
|
dc7e85ee5d | ||
|
|
9e931224db | ||
|
|
36105782d2 | ||
|
|
77c193579b | ||
|
|
795ec43112 | ||
|
|
5641f38d41 | ||
|
|
bfe3bf806a | ||
|
|
a8596c4772 | ||
|
|
e04a48f204 | ||
|
|
48d279215f | ||
|
|
27ba088549 | ||
|
|
802053f14a | ||
|
|
3b393a0b53 | ||
|
|
362ce48048 | ||
|
|
3b53dfb3b0 | ||
|
|
ab984db296 | ||
|
|
08bc274e88 | ||
|
|
8134039744 | ||
|
|
bc256d91ea | ||
|
|
64fdf5ceae | ||
|
|
c873442b15 | ||
|
|
f13de07e49 | ||
|
|
24ee83b0a0 | ||
|
|
88178de99f | ||
|
|
9a920d8c31 | ||
|
|
704984ac87 | ||
|
|
d2aed44c77 | ||
|
|
112f318551 | ||
|
|
ae084bb97c | ||
|
|
6a3c1b44e5 | ||
|
|
6057b9c658 | ||
|
|
bef1c36ab6 | ||
|
|
936347b6bf | ||
|
|
0c50a6ba59 | ||
|
|
17bd9dc2bd | ||
|
|
1763969e5c | ||
|
|
8e52a59376 | ||
|
|
bd1d560895 | ||
|
|
455981e69b | ||
|
|
f9de140e7f | ||
|
|
2969570036 | ||
|
|
8a4c136a90 | ||
|
|
a0149c7401 | ||
|
|
1aeaf8c0e0 | ||
|
|
dbb4a42cdc | ||
|
|
18e00d2c86 | ||
|
|
2fc8802fcc | ||
|
|
8071607aa5 | ||
|
|
2d0b92f8f9 | ||
|
|
5ae636b9bb | ||
|
|
8320da42bc | ||
|
|
b41d9689f1 | ||
|
|
7da9c37a17 | ||
|
|
9a7224b5a0 | ||
|
|
e8938e507e | ||
|
|
ddbb5550b4 | ||
|
|
d38b055ab8 | ||
|
|
7f51a82c1b | ||
|
|
b429cdeb6e | ||
|
|
8218f60b61 | ||
|
|
68fb5dcd13 | ||
|
|
68a33fc704 | ||
|
|
720ce53af0 | ||
|
|
6217cdcec3 | ||
|
|
e436528e04 | ||
|
|
35df7d2d99 | ||
|
|
a6cdc99152 | ||
|
|
6be120e7f5 | ||
|
|
84298db3a4 | ||
|
|
b830f0c7df | ||
|
|
53bfca22f1 | ||
|
|
09210ac93c | ||
|
|
b345d49e06 | ||
|
|
bd2f3c3ec6 | ||
|
|
b0d7a15d3a | ||
|
|
5b435d671e | ||
|
|
3675fa09a7 | ||
|
|
98411e57ab | ||
|
|
1dced5727f | ||
|
|
e0ebfd7507 | ||
|
|
3dbde6226d | ||
|
|
61d35bd020 | ||
|
|
913077c37c | ||
|
|
ca628610c0 | ||
|
|
da5a4970a9 | ||
|
|
f99bc6d002 | ||
|
|
6df5e5ae42 | ||
|
|
524780d69f | ||
|
|
61d281a4c0 | ||
|
|
970a1b82ec | ||
|
|
06ca513e2c | ||
|
|
507cc8acf1 | ||
|
|
12b0290d42 | ||
|
|
5e4b9e9ff8 | ||
|
|
5d3a8038b6 | ||
|
|
dfba6b6449 | ||
|
|
1ea69b7077 | ||
|
|
5ad15df9ce | ||
|
|
1c0b03e857 | ||
|
|
84f7235bdb | ||
|
|
7c578d3c3f | ||
|
|
5fbe699390 | ||
|
|
8ec1f8523b | ||
|
|
917ba89f7f | ||
|
|
9e98edfe8f | ||
|
|
146e9c3886 | ||
|
|
552ac13d55 | ||
|
|
0faaeb826e | ||
|
|
d25ad65a97 | ||
|
|
f5876f147a | ||
|
|
91856270df | ||
|
|
4336cdf318 | ||
|
|
7f29f7a2f4 | ||
|
|
011a34d77d | ||
|
|
52379eadfb | ||
|
|
b549a731fb | ||
|
|
7282bc3e7e | ||
|
|
58437e0409 | ||
|
|
5f1e3e4473 | ||
|
|
db7207e6e5 | ||
|
|
84a4c334e1 | ||
|
|
ee7d100091 | ||
|
|
42ec656524 | ||
|
|
fb7df7be2f | ||
|
|
6b707b4b82 | ||
|
|
f66b3fcf6c | ||
|
|
034b115568 | ||
|
|
5dc6252d33 | ||
|
|
61c3519b78 | ||
|
|
a64ba220f0 | ||
|
|
60542ac9fd | ||
|
|
bbc98db7c4 | ||
|
|
efcb54b78c | ||
|
|
be74734429 | ||
|
|
a61d5fbf7a | ||
|
|
28f2908d95 | ||
|
|
68ba0dd633 | ||
|
|
c047b9a49f | ||
|
|
3fe37d62d1 | ||
|
|
b3a6bbc7b6 | ||
|
|
8d462f9666 | ||
|
|
a8c8a688ac | ||
|
|
73b2470896 | ||
|
|
be094a1579 | ||
|
|
e37c611012 | ||
|
|
a489e1d9d6 | ||
|
|
76b9b3696c | ||
|
|
d87fbc2b1c | ||
|
|
fbe323d854 | ||
|
|
b8ff1fb5eb | ||
|
|
7f85d297dc | ||
|
|
3c70f33440 | ||
|
|
16c31fe1b7 | ||
|
|
7d550fbde5 | ||
|
|
6110a006d5 | ||
|
|
8e808d2b4d | ||
|
|
975261e8a0 | ||
|
|
f44cfb88f6 | ||
|
|
abe838b099 | ||
|
|
06af60244e | ||
|
|
38f5f9529a | ||
|
|
2b04b19455 | ||
|
|
53748fcb7b | ||
|
|
33c1b198c6 | ||
|
|
7474c7c3d6 | ||
|
|
6be7f8733f | ||
|
|
90b280059f | ||
|
|
f31b764c23 | ||
|
|
3ef7cdf0fd | ||
|
|
5af7d71276 | ||
|
|
6d6cec8375 | ||
|
|
73633f84d6 | ||
|
|
8f55d103db | ||
|
|
309cbc3840 | ||
|
|
70b2a56d5a | ||
|
|
1f5965b3c4 | ||
|
|
a0f299b4e8 | ||
|
|
10b7b39b3d | ||
|
|
6ee8d89cf9 | ||
|
|
64a72303f8 | ||
|
|
66accae339 | ||
|
|
738f8fc8ed | ||
|
|
6ef47c223e | ||
|
|
374d32d70f | ||
|
|
79a2a49c5a | ||
|
|
fc57380c3f | ||
|
|
5d6f75e17e | ||
|
|
83bac4c31a | ||
|
|
b6b046b281 | ||
|
|
deaf7b7397 | ||
|
|
ff0a4809e3 | ||
|
|
637606413f | ||
|
|
bbd9fd7353 | ||
|
|
265116a99a | ||
|
|
213ae48854 | ||
|
|
f1568eca24 | ||
|
|
f788a06103 | ||
|
|
c367faad99 | ||
|
|
a528565cf1 | ||
|
|
323cb95120 | ||
|
|
d6e256c31a | ||
|
|
2787ab91b0 | ||
|
|
68dfcdf725 | ||
|
|
b38e9ab4af | ||
|
|
08fc756582 | ||
|
|
96a8964564 | ||
|
|
b9ba403542 | ||
|
|
fa263a517b | ||
|
|
f4120a8964 | ||
|
|
aeabe0545d | ||
|
|
ae7ba984ee | ||
|
|
0a11f8ce4e | ||
|
|
f0b6b0cc3b | ||
|
|
2bbafdbcee | ||
|
|
3388bb4847 | ||
|
|
0612ec8d53 | ||
|
|
89c7122c05 | ||
|
|
8000baffa7 | ||
|
|
195ea0ff6c | ||
|
|
b491c03ee7 | ||
|
|
26fdd7da96 | ||
|
|
6d8f9c6f59 | ||
|
|
49e4ec6eee | ||
|
|
4e5ccfa5c7 | ||
|
|
1dff76bcb8 | ||
|
|
db710ed999 | ||
|
|
a27ad5aea1 | ||
|
|
50bfb3278e | ||
|
|
f541c36a8c | ||
|
|
79739e163b | ||
|
|
b931d74b06 | ||
|
|
1514667a24 | ||
|
|
e3cc6d4223 | ||
|
|
6cc00c75c1 | ||
|
|
cd6fe97e6b | ||
|
|
c842748302 | ||
|
|
62dbdc4a5a | ||
|
|
667b4d2db9 | ||
|
|
f34dc6537d | ||
|
|
a4594f6b82 | ||
|
|
b3479bd229 | ||
|
|
2e7b1df8fa | ||
|
|
e06461a821 | ||
|
|
725a962194 | ||
|
|
08c51aabc4 | ||
|
|
ca0c9fcda0 | ||
|
|
e79d1535cf | ||
|
|
aa0e80471f | ||
|
|
7701c24e36 | ||
|
|
946c1eeafc | ||
|
|
250912918e | ||
|
|
73dc59aad8 | ||
|
|
8f535582ad | ||
|
|
2369e35b39 | ||
|
|
acd6a049f6 | ||
|
|
a627c96182 | ||
|
|
98a22f4a63 | ||
|
|
9f733d1ffd | ||
|
|
447038a127 | ||
|
|
d960d76d5e | ||
|
|
a6f4d61af7 | ||
|
|
62951b1e0d | ||
|
|
a554a1933c | ||
|
|
38e2b0636b | ||
|
|
50f834dfb2 | ||
|
|
7f78bd73d6 | ||
|
|
52f8317926 | ||
|
|
314ed4b21a | ||
|
|
5302d9ebc1 | ||
|
|
ddab33232a | ||
|
|
821390843b | ||
|
|
15d6319b9d | ||
|
|
9e8edf6ee6 | ||
|
|
b5b5b895f7 | ||
|
|
ba4897e6e5 | ||
|
|
a971b82b16 | ||
|
|
52af96527c | ||
|
|
612af43cb6 | ||
|
|
9f1188152f | ||
|
|
868272f58e | ||
|
|
c42e7ed777 | ||
|
|
275648066d | ||
|
|
0d55ff1594 | ||
|
|
092e3c874f | ||
|
|
6dfff547a7 | ||
|
|
205b886a41 | ||
|
|
493c7a8541 | ||
|
|
01a78342e0 | ||
|
|
d3184b57d2 | ||
|
|
6c167c6451 | ||
|
|
6fabcbe260 | ||
|
|
39fc42ef9d | ||
|
|
03aa60826e | ||
|
|
9dc93ae43e | ||
|
|
2eba18255e | ||
|
|
c9927c136f | ||
|
|
792826c0c7 | ||
|
|
b8bf541f89 | ||
|
|
f6f4a01ab1 | ||
|
|
1db1f77d4a | ||
|
|
dc93555c0f | ||
|
|
c95e32635c | ||
|
|
12bc1b5c9f | ||
|
|
17fb0e891a | ||
|
|
8c85fa3b26 | ||
|
|
cf83973211 | ||
|
|
e78c206856 | ||
|
|
8a20b0f25e | ||
|
|
836082d398 | ||
|
|
213b10a57e | ||
|
|
d0988c50f3 | ||
|
|
1cb7e0976d | ||
|
|
ea35ef6888 | ||
|
|
e70172e1fc | ||
|
|
3f5f795f76 | ||
|
|
673214bb7d | ||
|
|
4c40223649 | ||
|
|
0b573a58e6 | ||
|
|
a171162356 | ||
|
|
d2221131cf | ||
|
|
d0c7ba57b1 | ||
|
|
0533443638 | ||
|
|
522f9aebff | ||
|
|
ce35c88ade | ||
|
|
e9edd7fbdd | ||
|
|
76f7fd3df3 | ||
|
|
b560983d2f | ||
|
|
9729301aa0 | ||
|
|
0acc5618f6 | ||
|
|
35ee452de0 | ||
|
|
01b2a23b95 | ||
|
|
44286ca3c4 | ||
|
|
3d64a3176c | ||
|
|
50f42cadb1 | ||
|
|
734d99804b | ||
|
|
37a02ca1c2 | ||
|
|
19fd09a78f | ||
|
|
54ee2b8741 | ||
|
|
4da95d377f | ||
|
|
f56a6de10b | ||
|
|
b5ce04dd28 | ||
|
|
80ae7b2287 | ||
|
|
4b9669f1dc | ||
|
|
03a807aaf4 | ||
|
|
5cfe2d760d | ||
|
|
0c7437a5d2 | ||
|
|
0baa7f1cd0 | ||
|
|
8b3e0330ba | ||
|
|
20892c1e68 | ||
|
|
d58ea07227 | ||
|
|
91805fc0db | ||
|
|
6e948a652d | ||
|
|
f9b4815918 | ||
|
|
67d441ba36 | ||
|
|
914968e66d | ||
|
|
54b08a5e78 | ||
|
|
251e191271 | ||
|
|
d6761c3cdf | ||
|
|
978287b8f8 | ||
|
|
5f8949656a | ||
|
|
c16756d829 | ||
|
|
26f3c637fc | ||
|
|
d44347f1e7 | ||
|
|
19e6094378 | ||
|
|
f85dae3c34 | ||
|
|
9a4d7fd214 | ||
|
|
015de43f70 | ||
|
|
12bde494a5 | ||
|
|
986a0039cb | ||
|
|
f7befa9f1d | ||
|
|
d9758e37ee | ||
|
|
6ec154b57d | ||
|
|
456f2bb24f | ||
|
|
03227eeb79 | ||
|
|
2f982e4fab | ||
|
|
536d95f617 | ||
|
|
d8644bd646 | ||
|
|
3ed16dc6b7 | ||
|
|
7154b326d0 | ||
|
|
6fa46363ad | ||
|
|
9b83c2f979 | ||
|
|
bd8608d979 | ||
|
|
ed38b0ac41 | ||
|
|
334adf0ae5 | ||
|
|
a660dc8f30 | ||
|
|
72952de239 | ||
|
|
9b486ca391 | ||
|
|
efa8e80c0b | ||
|
|
e659c95b01 | ||
|
|
496f9517cb | ||
|
|
1385c3ee7f | ||
|
|
9bd1a7ea28 | ||
|
|
0df1102698 | ||
|
|
2d5204ff88 | ||
|
|
b07269a548 | ||
|
|
20f90cf99a | ||
|
|
3a7d8c3adb | ||
|
|
e2bdce3f5c | ||
|
|
1bfb61e80b | ||
|
|
446beb48d9 | ||
|
|
1c2b2c12bb | ||
|
|
e60acc180b | ||
|
|
536681be5d | ||
|
|
bb99322ef9 | ||
|
|
18e0bfb07c | ||
|
|
5897e0c470 | ||
|
|
05da428462 | ||
|
|
9c520cb544 | ||
|
|
a4271d598b | ||
|
|
aede6ceba3 | ||
|
|
4ae06c1fa5 | ||
|
|
3c9c99cb2c | ||
|
|
948733a874 | ||
|
|
1701e4069b | ||
|
|
8f4ba6942d | ||
|
|
d236ac0d49 | ||
|
|
1c32dff7d6 | ||
|
|
85de20665f | ||
|
|
72bb0d6455 | ||
|
|
8e5af3e531 | ||
|
|
b453a53b59 | ||
|
|
877b97b953 | ||
|
|
d88e02def5 | ||
|
|
f844147747 | ||
|
|
cca92ec8cf | ||
|
|
8d2d71d4bb | ||
|
|
f1fda2d6e5 | ||
|
|
e962388eac | ||
|
|
d9462e394a | ||
|
|
ef9d6aa70d | ||
|
|
0d35e91abf | ||
|
|
4aa97427be | ||
|
|
367bec852e | ||
|
|
639304ddb1 | ||
|
|
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 |
17
.gitignore
vendored
17
.gitignore
vendored
@@ -2,15 +2,18 @@
|
||||
*.o
|
||||
src/vim
|
||||
src/xxd/xxd
|
||||
src/auto/if_perl.c
|
||||
src/tags
|
||||
|
||||
# We do need src/auto/configure and src/auto/config.mk.
|
||||
src/auto/osdef.h
|
||||
# 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
|
||||
@@ -36,4 +39,14 @@ gvimext.lib
|
||||
*.rej
|
||||
*.orig
|
||||
*.mo
|
||||
*.swp
|
||||
*~
|
||||
|
||||
# Generated by "make test"
|
||||
src/po/*.ck
|
||||
src/testdir/mbyte.vim
|
||||
src/testdir/mzscheme.vim
|
||||
src/testdir/lua.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
|
||||
help, rectangular cut/paste, etc., etc., etc...
|
||||
|
||||
Version 7.2. Also runs under UNIX, MSDOS and other systems.
|
||||
vim72rt.tgz contains the documentation and syntax files.
|
||||
vim72bin.tgz contains the binaries.
|
||||
vim72src.tgz contains the sources.
|
||||
Version 7.3. Also runs under UNIX, MSDOS and other systems.
|
||||
vim73rt.tgz contains the documentation and syntax files.
|
||||
vim73bin.tgz contains the binaries.
|
||||
vim73src.tgz contains the sources.
|
||||
Author: Bram Moolenaar et al.
|
||||
|
||||
|
||||
|
||||
30
Filelist
30
Filelist
@@ -7,6 +7,7 @@ SRC_ALL = \
|
||||
src/arabic.c \
|
||||
src/arabic.h \
|
||||
src/ascii.h \
|
||||
src/blowfish.c \
|
||||
src/buffer.c \
|
||||
src/charset.c \
|
||||
src/diff.c \
|
||||
@@ -38,6 +39,7 @@ SRC_ALL = \
|
||||
src/mark.c \
|
||||
src/mbyte.c \
|
||||
src/memfile.c \
|
||||
src/memfile_test.c \
|
||||
src/memline.c \
|
||||
src/menu.c \
|
||||
src/message.c \
|
||||
@@ -58,6 +60,7 @@ SRC_ALL = \
|
||||
src/regexp.h \
|
||||
src/screen.c \
|
||||
src/search.c \
|
||||
src/sha256.c \
|
||||
src/structs.h \
|
||||
src/spell.c \
|
||||
src/syntax.c \
|
||||
@@ -78,7 +81,9 @@ SRC_ALL = \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test60.vim \
|
||||
src/testdir/test83-tags? \
|
||||
src/proto.h \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
src/proto/charset.pro \
|
||||
src/proto/diff.pro \
|
||||
@@ -116,6 +121,7 @@ SRC_ALL = \
|
||||
src/proto/regexp.pro \
|
||||
src/proto/screen.pro \
|
||||
src/proto/search.pro \
|
||||
src/proto/sha256.pro \
|
||||
src/proto/spell.pro \
|
||||
src/proto/syntax.pro \
|
||||
src/proto/tag.pro \
|
||||
@@ -206,19 +212,24 @@ SRC_UNIX = \
|
||||
SRC_DOS_UNIX = \
|
||||
src/if_cscope.c \
|
||||
src/if_cscope.h \
|
||||
src/if_lua.c \
|
||||
src/if_mzsch.c \
|
||||
src/if_mzsch.h \
|
||||
src/if_perl.xs \
|
||||
src/if_perlsfio.c \
|
||||
src/if_python.c \
|
||||
src/if_python3.c \
|
||||
src/if_py_both.h \
|
||||
src/if_ruby.c \
|
||||
src/if_sniff.h \
|
||||
src/if_tcl.c \
|
||||
src/proto/if_cscope.pro \
|
||||
src/proto/if_lua.pro \
|
||||
src/proto/if_mzsch.pro \
|
||||
src/proto/if_perl.pro \
|
||||
src/proto/if_perlsfio.pro \
|
||||
src/proto/if_python.pro \
|
||||
src/proto/if_python3.pro \
|
||||
src/proto/if_ruby.pro \
|
||||
src/proto/if_tcl.pro \
|
||||
src/typemap \
|
||||
@@ -252,6 +263,7 @@ SRC_DOS = \
|
||||
src/bigvim.bat \
|
||||
src/msvcsetup.bat \
|
||||
src/msvc2008.bat \
|
||||
src/msvc2010.bat \
|
||||
src/dimm.idl \
|
||||
src/dlldata.c \
|
||||
src/dosinst.c \
|
||||
@@ -302,6 +314,7 @@ SRC_DOS = \
|
||||
src/xxd/Make_bc5.mak \
|
||||
src/xxd/Make_cyg.mak \
|
||||
src/xxd/Make_djg.mak \
|
||||
src/xxd/Make_ming.mak \
|
||||
src/xxd/Make_mvc.mak \
|
||||
nsis/gvim.nsi \
|
||||
nsis/README.txt \
|
||||
@@ -369,7 +382,7 @@ SRC_MAC = \
|
||||
src/os_mac.h \
|
||||
src/os_mac.rsr.hqx \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.c \
|
||||
src/os_macosx.m \
|
||||
src/proto/gui_mac.pro \
|
||||
src/proto/os_mac_conv.pro \
|
||||
|
||||
@@ -417,9 +430,6 @@ SRC_EXTRA = \
|
||||
$(SRC_VMS) \
|
||||
README_os390.txt \
|
||||
src/Make_mint.mak \
|
||||
src/Make_ro.mak \
|
||||
src/gui_riscos.c \
|
||||
src/gui_riscos.h \
|
||||
src/if_sniff.c \
|
||||
src/infplist.xml \
|
||||
src/link.390 \
|
||||
@@ -427,10 +437,6 @@ SRC_EXTRA = \
|
||||
src/os_beos.h \
|
||||
src/os_beos.rsrc \
|
||||
src/os_mint.h \
|
||||
src/os_riscos.c \
|
||||
src/os_riscos.h \
|
||||
src/proto/gui_riscos.pro \
|
||||
src/proto/os_riscos.pro \
|
||||
src/os_vms_fix.com \
|
||||
src/toolbar.phi \
|
||||
|
||||
@@ -457,6 +463,7 @@ RT_ALL = \
|
||||
runtime/macros/hanoi/hanoi.vim \
|
||||
runtime/macros/hanoi/poster \
|
||||
runtime/macros/justify.vim \
|
||||
runtime/macros/less.bat \
|
||||
runtime/macros/less.sh \
|
||||
runtime/macros/less.vim \
|
||||
runtime/macros/life/click.me \
|
||||
@@ -654,13 +661,14 @@ EXTRA = \
|
||||
farsi/fonts/*/far-* \
|
||||
runtime/vimlogo.xpm \
|
||||
src/swis.s \
|
||||
src/tee/Makefile* \
|
||||
src/tee/Makefile \
|
||||
src/tee/tee.c \
|
||||
csdpmi4b.zip \
|
||||
|
||||
# generic language files
|
||||
LANG_GEN = \
|
||||
README_lang.txt \
|
||||
runtime/doc/*-de.1 \
|
||||
runtime/doc/*-de.UTF-8.1 \
|
||||
runtime/doc/*-fr.1 \
|
||||
runtime/doc/*-fr.UTF-8.1 \
|
||||
runtime/doc/*-it.1 \
|
||||
@@ -678,6 +686,8 @@ LANG_GEN = \
|
||||
runtime/tutor/tutor.utf-8 \
|
||||
runtime/tutor/tutor.?? \
|
||||
runtime/tutor/tutor.??.* \
|
||||
runtime/tutor/tutor.bar \
|
||||
runtime/tutor/tutor.bar.* \
|
||||
runtime/spell/README.txt \
|
||||
runtime/spell/??/*.diff \
|
||||
runtime/spell/??/main.aap \
|
||||
|
||||
216
Makefile
216
Makefile
@@ -3,8 +3,10 @@
|
||||
# 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.
|
||||
#
|
||||
# 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.
|
||||
|
||||
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 "If there are problems, cd to the src directory and run make there"
|
||||
cd src && $(MAKE) $@
|
||||
@@ -28,25 +33,22 @@ first:
|
||||
# Some make programs use the last target for the $@ default; put the other
|
||||
# targets separately to always let $@ expand to "first" by default.
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
|
||||
@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 "If there are problems, cd to the src directory and run make there"
|
||||
cd src && $(MAKE) $@
|
||||
|
||||
|
||||
# 2. Create the various distributions:
|
||||
#########################################################################
|
||||
# 2. Creating the various distribution files.
|
||||
#
|
||||
# TARGET PRODUCES CONTAINS
|
||||
# unixall vim-#.#.tar.bz2 Runtime files and Sources for Unix
|
||||
#
|
||||
# extra vim-#.#-extra.tar.gz Extra source and runtime files
|
||||
# lang vim-#.#-lang.tar.gz multi-language files
|
||||
# unixall vim-#.#.tar.bz2 All runtime files and sources, for Unix
|
||||
#
|
||||
# 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
|
||||
# dosrt vim##rt.zip runtime for MS-DOS
|
||||
# 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##ole.zip OLE exe for Win32 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
|
||||
# (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
|
||||
# overwritten!
|
||||
# To do all this you need the unix, extra and lang archives, and
|
||||
# compiled binaries.
|
||||
# To do all this you need the Unix archive and compiled binaries.
|
||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||
|
||||
MAJOR = 7
|
||||
MINOR = 2
|
||||
MINOR = 3
|
||||
|
||||
# Uncomment this line if the Win32s version is to be included.
|
||||
DOSBIN_S = dosbin_s
|
||||
|
||||
# Uncomment this line if the 16 bit DOS version is to be included.
|
||||
# DOSBIN_D16 = dosbin_d16
|
||||
|
||||
# CHECKLIST for creating a new version:
|
||||
#
|
||||
# - Update Vim version number. For a test version in: src/version.h, Contents,
|
||||
# MAJOR/MINOR above, VIMMAJOR and VIMMINOR in src/Makefile, README*.txt,
|
||||
# runtime/doc/*.txt and nsis/gvim.nsi. 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.
|
||||
# - Compile Vim with GTK, Perl, Python, TCL, Ruby, MZscheme (if you can make it
|
||||
# work), Cscope and "huge" features. Exclude workshop and SNiFF.
|
||||
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
|
||||
# you can make it all work), Cscope and "huge" features. Exclude workshop
|
||||
# and SNiFF.
|
||||
# - With these features: "make proto" (requires cproto and Motif installed;
|
||||
# ignore warnings for missing include files, fix problems for syntax errors).
|
||||
# - With these features: "make depend" (works best with gcc).
|
||||
# - "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
|
||||
# Python and Ruby to avoid trouble with threads (efence is not threadsafe).
|
||||
# - Check for missing entries in runtime/makemenu.vim (with checkmenu script).
|
||||
@@ -102,10 +114,10 @@ DOSBIN_S = dosbin_s
|
||||
# the "check" script).
|
||||
# - Check compiling on Amiga, MS-DOS and MS-Windows.
|
||||
# - 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"
|
||||
#
|
||||
# Amiga:
|
||||
# Amiga: (OBSOLETE, Amiga files are no longer distributed)
|
||||
# - "make amisrc", move the archive to the Amiga and compile:
|
||||
# "make -f Make_manx.mak" (will use "big" features by default).
|
||||
# - Run the tests: "make -f Make_manx.mak test"
|
||||
@@ -114,8 +126,9 @@ DOSBIN_S = dosbin_s
|
||||
# - "make amirt", "make amibin".
|
||||
#
|
||||
# PC:
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - "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.
|
||||
# - "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
|
||||
@@ -131,9 +144,11 @@ DOSBIN_S = dosbin_s
|
||||
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
|
||||
# "uninstald32.exe".
|
||||
# Win32 console version:
|
||||
# - Set environment for Visual C++ 2008 Express Edition: "msvc2008.bat". Or,
|
||||
# when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the paths
|
||||
# when necessary). For Windows 98 the 2003 version is required.
|
||||
# - Set environment for Visual C++ 2008, e.g.:
|
||||
# "E:\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat". Or, when using the
|
||||
# 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"
|
||||
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
|
||||
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
|
||||
@@ -154,8 +169,8 @@ DOSBIN_S = dosbin_s
|
||||
# - Delete install.exe and uninstal.exe.
|
||||
# - If building the Win32s version delete vimrun.exe.
|
||||
# Win32s GUI version:
|
||||
# - Set environment for Visual C++ 4.1 (requires a new console window)
|
||||
# - "vcvars32" (use the path for VC 4.1 e:\msdev\bin)
|
||||
# - Set environment for Visual C++ 4.1 (requires a new console window):
|
||||
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
|
||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
|
||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
|
||||
# - Rename "gvim.exe" to "gvim_w32s.exe".
|
||||
@@ -166,21 +181,23 @@ DOSBIN_S = dosbin_s
|
||||
# - Copy all the "*.exe" files to where this Makefile is.
|
||||
# - Copy all the "*.pdb" files to where this Makefile is.
|
||||
# - "make dosbin".
|
||||
# - Run make on Unix to update the ".mo" files.
|
||||
# - "make doslang".
|
||||
# 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,
|
||||
# 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
|
||||
# from a binary archive or build them)
|
||||
# - copy these files (get 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.
|
||||
# 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
|
||||
# - 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.
|
||||
#
|
||||
# OS/2:
|
||||
# - Unpack the Unix "src", "extra" and "rt" archives.
|
||||
# OS/2: (OBSOLETE, OS/2 version is no longer distributed)
|
||||
# - Unpack the Unix archive.
|
||||
# - "make -f Make_os2.mak".
|
||||
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
|
||||
# them to here.
|
||||
@@ -215,8 +232,6 @@ dist/comment:
|
||||
mkdir dist/comment
|
||||
|
||||
COMMENT_RT = comment/$(VERSION)-rt
|
||||
COMMENT_RT1 = comment/$(VERSION)-rt1
|
||||
COMMENT_RT2 = comment/$(VERSION)-rt2
|
||||
COMMENT_D16 = comment/$(VERSION)-bin-d16
|
||||
COMMENT_D32 = comment/$(VERSION)-bin-d32
|
||||
COMMENT_W32 = comment/$(VERSION)-bin-w32
|
||||
@@ -227,17 +242,10 @@ COMMENT_SRC = comment/$(VERSION)-src
|
||||
COMMENT_OS2 = comment/$(VERSION)-bin-os2
|
||||
COMMENT_HTML = comment/$(VERSION)-html
|
||||
COMMENT_FARSI = comment/$(VERSION)-farsi
|
||||
COMMENT_LANG = comment/$(VERSION)-lang
|
||||
|
||||
dist/$(COMMENT_RT): dist/comment
|
||||
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
|
||||
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
|
||||
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
|
||||
-rm -f dist/$(VIMVER).tar.bz2
|
||||
-rm -rf dist/$(VIMRTDIR)
|
||||
@@ -286,6 +291,8 @@ unixall: dist prepare
|
||||
$(SRC_ALL) \
|
||||
$(SRC_UNIX) \
|
||||
$(SRC_DOS_UNIX) \
|
||||
$(EXTRA) \
|
||||
$(LANG_SRC) \
|
||||
| (cd dist/$(VIMRTDIR); tar xf -)
|
||||
# Need to use a "distclean" config.mk file
|
||||
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
|
||||
# Make sure configure is newer than config.mk to force it to be generated
|
||||
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.
|
||||
# Same for cs.cp1250.po, pl.cp1250.po and sk.cp1250.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/ru.cp1251.po
|
||||
touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
|
||||
cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR)
|
||||
gzip -9 dist/$(VIMVER)-lang.tar
|
||||
# Create the archive.
|
||||
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
|
||||
bzip2 dist/$(VIMVER).tar
|
||||
|
||||
# Amiga runtime - OBSOLETE
|
||||
amirt: dist prepare
|
||||
-rm -f dist/vim$(VERSION)rt.tar.gz
|
||||
-rm -rf dist/Vim
|
||||
@@ -347,6 +336,7 @@ amirt: dist prepare
|
||||
gzip -9 dist/vim$(VERSION)rt.tar
|
||||
mv dist/vim$(VERSION)rt.tar.gz dist/vim$(VERSION)rt.tgz
|
||||
|
||||
# Amiga binaries - OBSOLETE
|
||||
amibin: dist prepare
|
||||
-rm -f dist/vim$(VERSION)bin.tar.gz
|
||||
-rm -rf dist/Vim
|
||||
@@ -364,6 +354,7 @@ amibin: dist prepare
|
||||
gzip -9 dist/vim$(VERSION)bin.tar
|
||||
mv dist/vim$(VERSION)bin.tar.gz dist/vim$(VERSION)bin.tgz
|
||||
|
||||
# Amiga sources - OBSOLETE
|
||||
amisrc: dist prepare
|
||||
-rm -f dist/vim$(VERSION)src.tar.gz
|
||||
-rm -rf dist/Vim
|
||||
@@ -384,15 +375,41 @@ amisrc: dist prepare
|
||||
no_title.vim: Makefile
|
||||
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
|
||||
-rm -rf dist/vim$(VERSION)rt.zip
|
||||
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
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
mkdir dist/vim/$(VIMRTDIR)/lang
|
||||
cd src && MAKEMO=yes $(MAKE) languages
|
||||
tar cf - \
|
||||
$(RT_ALL) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
@@ -412,6 +429,18 @@ dosrt_unix2dos: dist prepare no_title.vim
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
||||
rmdir dist/vim/$(VIMRTDIR)/runtime
|
||||
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
|
||||
# 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.
|
||||
@@ -421,7 +450,7 @@ runtime_unix2dos: dosrt_unix2dos
|
||||
cd dist/vim/$(VIMRTDIR); tar cf - * \
|
||||
| (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
|
||||
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
@@ -531,53 +560,6 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
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 -X -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 -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
|
||||
|
||||
os2bin: dist no_title.vim dist/$(COMMENT_OS2)
|
||||
-rm -rf dist/vim$(VERSION)os2.zip
|
||||
-rm -rf dist/vim
|
||||
|
||||
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
|
||||
@@ -9,13 +9,13 @@ on-line help, spell checking, filename completion, block operations, etc.
|
||||
There is also a Graphical User Interface (GUI) available. See
|
||||
"runtime/doc/vi_diff.txt" for differences with Vi.
|
||||
|
||||
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
|
||||
with ten fingers can work very fast. Additionally, function keys can be
|
||||
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,
|
||||
Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of
|
||||
Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista,
|
||||
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.
|
||||
|
||||
|
||||
@@ -32,19 +32,19 @@ an overview of currently available distributions.
|
||||
|
||||
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
|
||||
"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
|
||||
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
|
||||
|
||||
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).
|
||||
|
||||
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_vms.txt VMS
|
||||
|
||||
There are more README_*.txt files, depending on the distribution you used.
|
||||
|
||||
|
||||
INFORMATION
|
||||
|
||||
@@ -98,39 +100,12 @@ If you have problems, have a look at the Vim FAQ:
|
||||
Send bug reports to:
|
||||
Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
There are five mailing lists for Vim:
|
||||
<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.
|
||||
There are several mailing lists for Vim, see http://www.vim.org/maillist.php.
|
||||
|
||||
|
||||
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
|
||||
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.
|
||||
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_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_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_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
|
||||
pick only one of them, but it's also possible to install several.
|
||||
These ones are available (the version number may differ):
|
||||
vim72d16.zip 16 bit DOS version
|
||||
vim72d32.zip 32 bit DOS version
|
||||
vim72w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim72.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim72ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
gvim72_s.zip Windows 3.1 GUI version
|
||||
vim73d16.zip 16 bit DOS version
|
||||
vim73d32.zip 32 bit DOS version
|
||||
vim73w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim73.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim73ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
gvim73_s.zip Windows 3.1 GUI version
|
||||
|
||||
You MUST also get the runtime archive (vim72rt.zip).
|
||||
The sources are also available (vim72src.zip).
|
||||
You MUST also get the runtime archive (vim73rt.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.
|
||||
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,
|
||||
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
|
||||
name includes the version number, it is unlikely that you overwrite
|
||||
existing files.
|
||||
Examples:
|
||||
pkunzip -d gvim72.zip
|
||||
unzip vim72w32.zip
|
||||
pkunzip -d gvim73.zip
|
||||
unzip vim73w32.zip
|
||||
|
||||
You need to unpack the runtime archive and at least one of the binary
|
||||
archives. When using more than one binary version, be careful not to
|
||||
@@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
archive and follow the instructions in the documentation.
|
||||
|
||||
3. Change to the new directory:
|
||||
cd vim\vim72
|
||||
cd vim\vim73
|
||||
Run the "install.exe" program. It will ask you a number of questions about
|
||||
how you would like to have your Vim setup. Among these are:
|
||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||
@@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
console or in a shell. You can select one of the directories in your
|
||||
$PATH. If you skip this, you can add Vim to the search path manually:
|
||||
The simplest is to add a line to your autoexec.bat. Examples:
|
||||
set path=%path%;C:\vim\vim72
|
||||
set path=%path%;D:\editors\vim\vim72
|
||||
set path=%path%;C:\vim\vim73
|
||||
set path=%path%;D:\editors\vim\vim73
|
||||
- Create entries for Vim on the desktop and in the Start menu.
|
||||
|
||||
That's it!
|
||||
@@ -93,8 +93,8 @@ Remarks:
|
||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
||||
point to the top directory of your Vim files. Example:
|
||||
set VIM=C:\editors\vim
|
||||
Vim version 7.2 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim72. See ":help $VIM" for more information.
|
||||
Vim version 7.3 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim73. See ":help $VIM" for more information.
|
||||
|
||||
- To avoid confusion between distributed files of different versions and your
|
||||
own modified vim scripts, it is recommended to use this directory layout:
|
||||
@@ -105,14 +105,14 @@ Remarks:
|
||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||
C:\vim\... Other files you made.
|
||||
Distributed files:
|
||||
C:\vim\vim72\vim.exe The Vim version 7.2 executable.
|
||||
C:\vim\vim72\doc\*.txt The version 7.2 documentation files.
|
||||
C:\vim\vim72\bugreport.vim A Vim version 7.2 script.
|
||||
C:\vim\vim72\... Other version 7.2 distributed files.
|
||||
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
|
||||
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
|
||||
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
|
||||
C:\vim\vim73\... Other version 7.3 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
set VIM=C:\vim
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim72". Don't add
|
||||
"vim72" to $VIM, that won't work.
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim73". Don't add
|
||||
"vim73" to $VIM, that won't work.
|
||||
|
||||
- You can put your Vim executable anywhere else. If the executable is not
|
||||
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||
@@ -136,8 +136,8 @@ Remarks:
|
||||
Select Properties.
|
||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||
Vim executable. Examples:
|
||||
C:\command.com /c C:\vim\vim72\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim72\vim.exe
|
||||
C:\command.com /c C:\vim\vim73\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
|
||||
possible, select "Advanced" in the Program tab, and deselect "MS-DOS
|
||||
mode".
|
||||
|
||||
@@ -1,61 +1,51 @@
|
||||
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
|
||||
(vim-7.2-src.tar.gz). The extra archive is useless without it.
|
||||
|
||||
For more information, see the "README.txt" file that comes with the runtime
|
||||
archive (vim-7.2-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive too!
|
||||
|
||||
The extra archive plus the source and runtime archives make up the complete
|
||||
sources of Vim for all systems.
|
||||
These extra files of Vim are for special purposes. This README explains what
|
||||
the files are for. For general information about Vim, see the "README.txt"
|
||||
file.
|
||||
|
||||
|
||||
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
|
||||
what Farsi is, this is not for you.
|
||||
src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF is,
|
||||
this is not for you.
|
||||
|
||||
if_sniff Interface to SNiFF. If you don't know what SNiFF is, this is
|
||||
not for you.
|
||||
src/os_amiga.* Files for the Amiga port.
|
||||
|
||||
os_amiga Files for the Amiga port.
|
||||
src/gui_beos.*
|
||||
src/os_beos.* Files for the BeOS port.
|
||||
|
||||
gui_riscos
|
||||
os_riscos Files for the RISC OS port.
|
||||
src/os_msdos.*
|
||||
src/os_dos.* Files for the MS-DOS port.
|
||||
|
||||
gui_beos
|
||||
os_beos Files for the BeOS port.
|
||||
src/gui_mac.*
|
||||
src/os_mac.* Files for the Mac port.
|
||||
|
||||
os_msdos
|
||||
os_dos Files for the MS-DOS port.
|
||||
src/os_mint.8 Files for the Atari Mint port.
|
||||
|
||||
gui_mac
|
||||
os_mac Files for the Mac port.
|
||||
src/os_os2* Files for the OS/2 port.
|
||||
src/tee/* Extra program for OS/2.
|
||||
|
||||
os_mint Files for the Atari Mint port.
|
||||
src/os_vms* Files for the VMS port.
|
||||
|
||||
os_os2 Files for the OS/2 port.
|
||||
tee Extra program for OS/2.
|
||||
src/os_w32*
|
||||
src/os_win32.* Files for the Win32 port.
|
||||
|
||||
os_vms Files for the VMS port.
|
||||
src/gui_w32.* Files for the Win32 GUI.
|
||||
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.
|
||||
|
||||
os_w32
|
||||
os_win32 Files for the Win32 port.
|
||||
src/if_ole.* OLE automation interface, for MS Windows 95 and NT.
|
||||
|
||||
gui_w32 Files for the Win32 GUI.
|
||||
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.
|
||||
src/VisVim/* Integration of Win32 GUI with MS Visual Developer
|
||||
Studio.
|
||||
|
||||
if_ole OLE automation interface, for MS Windows 95 and NT.
|
||||
src/GvimExt/* DLL for the "Edit with Vim" context menu entry
|
||||
|
||||
VisVim Integration of Win32 GUI with MS Visual Developer Studio.
|
||||
nsis/* NSIS script to build the self-installing MS-Windows exe
|
||||
|
||||
GvimExt DLL for the "Edit with Vim" context menu entry
|
||||
runtime/doc/*.man Preprocessed manual pages.
|
||||
|
||||
nsis NSIS script to build the self-installing MS-Windows exe
|
||||
|
||||
*.man Preprocessed manual pages.
|
||||
|
||||
file_select.vim Vim script to browse directories (Unix only).
|
||||
runtime/macros/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.
|
||||
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 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:
|
||||
: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.
|
||||
|
||||
@@ -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.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
|
||||
NOTE: You will need two archives:
|
||||
vim72rt.zip contains the runtime files (same as for the PC version)
|
||||
vim72os2.zip contains the OS/2 executables
|
||||
vim73rt.zip contains the runtime files (same as for the PC version)
|
||||
vim73os2.zip contains the OS/2 executables
|
||||
|
||||
1. Go to the directory where you want to put the Vim files. Examples:
|
||||
cd C:\
|
||||
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
|
||||
name includes the version number, it is unlikely that you overwrite
|
||||
existing files.
|
||||
Examples:
|
||||
pkunzip -d vim72os2.zip
|
||||
unzip vim72os2.zip
|
||||
pkunzip -d vim73os2.zip
|
||||
unzip vim73os2.zip
|
||||
|
||||
After you unpacked the files, you can still move the whole directory tree
|
||||
to another location.
|
||||
|
||||
3. Add the directory where vim.exe is to your path. The simplest is to add a
|
||||
line to your autoexec.bat. Examples:
|
||||
set path=%path%;C:\vim\vim72
|
||||
set path=%path%;D:\editors\vim\vim72
|
||||
set path=%path%;C:\vim\vim73
|
||||
set path=%path%;D:\editors\vim\vim73
|
||||
|
||||
That's it!
|
||||
|
||||
@@ -41,10 +41,10 @@ Extra remarks:
|
||||
C:\vim\_viminfo Dynamic info for 'viminfo'.
|
||||
C:\vim\... Other files you made.
|
||||
Distributed files:
|
||||
C:\vim\vim72\vim.exe The Vim version 7.2 executable.
|
||||
C:\vim\vim72\doc\*.txt The version 7.2 documentation files.
|
||||
C:\vim\vim72\bugreport.vim A Vim version 7.2 script.
|
||||
C:\vim\vim72\... Other version 7.2 distributed files.
|
||||
C:\vim\vim73\vim.exe The Vim version 7.3 executable.
|
||||
C:\vim\vim73\doc\*.txt The version 7.3 documentation files.
|
||||
C:\vim\vim73\bugreport.vim A Vim version 7.3 script.
|
||||
C:\vim\vim73\... Other version 7.3 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
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!!!
|
||||
I expect you to know how to handle alpha software!
|
||||
Most likely there are not many users out there using Vim on z/OS. So chances
|
||||
are good, that some bugs are still undiscovered.
|
||||
|
||||
This port was done by Ralf Schandl <schandl@de.ibm.com>.
|
||||
This port is not maintained or supported by IBM!!
|
||||
Getting the source to z/OS:
|
||||
==========================
|
||||
|
||||
First get the source code in one big tar file and ftp it a binary to z/OS. If
|
||||
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:
|
||||
----------
|
||||
==========
|
||||
|
||||
Note: After the file configure was created via autoconf, it had been
|
||||
handedited, to make the test for ICEConnectionNumber work.
|
||||
DO NOT run autoconf again!
|
||||
Vim can be compiled with or without GUI support. For 7.3 only the compilation
|
||||
without GUI was tested. Below is a section about compiling with X11 but this
|
||||
is from an earlier version of Vim.
|
||||
|
||||
Without X11:
|
||||
Console only:
|
||||
-------------
|
||||
|
||||
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
|
||||
VIM toplevel directory. Change to the src directory first and call make from
|
||||
there. Here is a what to do:
|
||||
straightforward.
|
||||
|
||||
Change to the vim directory and do:
|
||||
|
||||
# Don't use c89!
|
||||
# Make additional symbols visible.
|
||||
# Allow intermixing of compiler options and files.
|
||||
|
||||
$ export CC=cc
|
||||
$ export CFLAGS=-D_ALL_SOURCE
|
||||
$ export _CC_CCMODE=1
|
||||
$./configure --enable-max-features --without-x --enable-gui=no
|
||||
$./configure --with-features=big --without-x --enable-gui=no
|
||||
$ cd src
|
||||
$ make
|
||||
|
||||
There may be warnings:
|
||||
- include files not found (libc, sys/param.h, ...)
|
||||
- Redeclaration of ... differs from ...
|
||||
-- just ignore them.
|
||||
|
||||
$ make test
|
||||
|
||||
Note: Test 28 will be reported as failed. This is because diff can't
|
||||
compare files containing '\0' characters. Test 11 will fail if you
|
||||
don't have gzip.
|
||||
This will produce lots of garbage on your screen (including error
|
||||
messages). Don't worry.
|
||||
|
||||
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
|
||||
|
||||
|
||||
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
|
||||
and results in a big executable (~13 Mb), the second needs a few additional
|
||||
@@ -54,8 +87,6 @@ you want Motif.
|
||||
|
||||
The easy way:
|
||||
$ export CC=cc
|
||||
$ export CFLAGS="-D_ALL_SOURCE -W c,dll"
|
||||
$ export LDFLAGS="-W l,dll"
|
||||
$ export _CC_CCMODE=1
|
||||
$ ./configure --enable-max-features --enable-gui=motif
|
||||
$ cd src
|
||||
@@ -65,7 +96,7 @@ you want Motif.
|
||||
|
||||
The smarter way:
|
||||
Make VIM as described above. Then create a file named 'link.sed' with the
|
||||
following content:
|
||||
following content (see src/link.390):
|
||||
|
||||
s/-lXext *//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.
|
||||
|
||||
|
||||
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.
|
||||
It is packed for Unix systems (NL line separator). It is also used for other
|
||||
systems in combination with the extra archive (vim-7.2-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).
|
||||
|
||||
For more information, see the README.txt file that comes with the runtime
|
||||
archive (vim-7.2-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!
|
||||
|
||||
@@ -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_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
|
||||
|
||||
@@ -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.
|
||||
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.
|
||||
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
|
||||
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.
|
||||
# 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,
|
||||
# because uninstall deletes most files in $0.
|
||||
@@ -22,17 +22,20 @@
|
||||
!define HAVE_NLS
|
||||
|
||||
!define VER_MAJOR 7
|
||||
!define VER_MINOR 2
|
||||
!define VER_MINOR 3
|
||||
|
||||
# ----------- No configurable settings below this line -----------
|
||||
|
||||
!include UpgradeDLL.nsh # for VisVim.dll
|
||||
!include LogicLib.nsh
|
||||
!include x64.nsh
|
||||
|
||||
Name "Vim ${VER_MAJOR}.${VER_MINOR}"
|
||||
OutFile gvim${VER_MAJOR}${VER_MINOR}.exe
|
||||
CRCCheck force
|
||||
SetCompressor lzma
|
||||
SetDatablockOptimize on
|
||||
RequestExecutionLevel highest
|
||||
|
||||
ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer."
|
||||
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
|
||||
ClearErrors
|
||||
SetOverwrite try
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${If} ${RunningX64}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
IfErrors 0 GvimExtDone
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||
# next reboot.
|
||||
GetTempFileName $3 $0
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${If} ${RunningX64}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
||||
|
||||
GvimExtDone:
|
||||
@@ -438,8 +449,8 @@ Section Uninstall
|
||||
|
||||
AskRemove:
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
"Remove all files in your $1\vimfiles directory? \
|
||||
$\nIf you have created something there that you want to keep, click No" IDNO Fin
|
||||
"Remove all files in your $1\vimfiles directory?$\n \
|
||||
$\nCAREFUL: If you have created something there that you want to keep, click No" IDNO Fin
|
||||
RMDir /r $1\vimfiles
|
||||
NoRemove:
|
||||
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
if version < 700
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Section: Constants {{{1
|
||||
"
|
||||
@@ -619,6 +621,9 @@ lockvar g:ada#Comment
|
||||
lockvar! g:ada#Keywords
|
||||
lockvar! g:ada#Ctags_Kinds
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
finish " 1}}}
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
" Vim completion script
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2007 Aug 30
|
||||
" Last Change: 2012 Jun 20
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" This function is used for the 'omnifunc' option.
|
||||
function! ccomplete#Complete(findstart, base)
|
||||
@@ -161,7 +163,7 @@ function! ccomplete#Complete(findstart, base)
|
||||
let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
|
||||
else
|
||||
" 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
|
||||
|
||||
@@ -498,7 +500,7 @@ function! s:StructMembers(typename, items, all)
|
||||
endif
|
||||
if !cached
|
||||
while 1
|
||||
exe 'silent! ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
|
||||
exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
|
||||
|
||||
let qflist = getqflist()
|
||||
if len(qflist) > 0 || match(typename, "::") < 0
|
||||
@@ -603,3 +605,6 @@ function! s:SearchMembers(matches, items, all)
|
||||
endfor
|
||||
return res
|
||||
endfunc
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" ---------------------------------------------------------------------
|
||||
" getscript.vim
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Dec 28, 2009
|
||||
" Version: 32
|
||||
" Date: Jan 17, 2012
|
||||
" Version: 34
|
||||
" Installing: :help glvs-install
|
||||
" Usage: :help glvs
|
||||
"
|
||||
@@ -15,7 +15,7 @@
|
||||
if exists("g:loaded_getscript")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_getscript= "v32"
|
||||
let g:loaded_getscript= "v34"
|
||||
if &cp
|
||||
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
||||
finish
|
||||
@@ -519,6 +519,7 @@ fun! s:GetOneScript(...)
|
||||
" --------------------------------------------------------------------------
|
||||
" AutoInstall: only if doautoinstall has been requested by the plugin itself
|
||||
" --------------------------------------------------------------------------
|
||||
" call Decho("checking if plugin requested autoinstall: doautoinstall=".doautoinstall)
|
||||
if doautoinstall
|
||||
" call Decho(" ")
|
||||
" call Decho("Autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
|
||||
@@ -526,7 +527,7 @@ fun! s:GetOneScript(...)
|
||||
" call Decho("<".sname."> is readable")
|
||||
" 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 = fnameescape(substitute(getcwd(),'\','/','ge'))
|
||||
let installdir= curdir."/Installed"
|
||||
if !isdirectory(installdir)
|
||||
call mkdir(installdir)
|
||||
@@ -549,25 +550,42 @@ fun! s:GetOneScript(...)
|
||||
" decompress
|
||||
if sname =~ '\.bz2$'
|
||||
" call Decho("decompress: attempt to bunzip2 ".sname)
|
||||
exe "silent !bunzip2 ".shellescape(sname)
|
||||
exe "sil !bunzip2 ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.bz2$','','')
|
||||
" call Decho("decompress: new sname<".sname."> after bunzip2")
|
||||
elseif sname =~ '\.gz$'
|
||||
" call Decho("decompress: attempt to gunzip ".sname)
|
||||
exe "silent !gunzip ".shellescape(sname)
|
||||
exe "sil !gunzip ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.gz$','','')
|
||||
" call Decho("decompress: new sname<".sname."> after gunzip")
|
||||
elseif sname =~ '\.xz$'
|
||||
" call Decho("decompress: attempt to unxz ".sname)
|
||||
exe "sil !unxz ".shellescape(sname)
|
||||
let sname= substitute(sname,'\.xz$','','')
|
||||
" call Decho("decompress: new sname<".sname."> after unxz")
|
||||
else
|
||||
" call Decho("no decompression needed")
|
||||
endif
|
||||
|
||||
" distribute archive(.zip, .tar, .vba) contents
|
||||
" distribute archive(.zip, .tar, .vba, ...) contents
|
||||
if sname =~ '\.zip$'
|
||||
" call Decho("dearchive: attempt to unzip ".sname)
|
||||
exe "silent !unzip -o ".shellescape(sname)
|
||||
elseif sname =~ '\.tar$'
|
||||
" call Decho("dearchive: attempt to untar ".sname)
|
||||
exe "silent !tar -xvf ".shellescape(sname)
|
||||
elseif sname =~ '\.tgz$'
|
||||
" call Decho("dearchive: attempt to untar+gunzip ".sname)
|
||||
exe "silent !tar -zxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.taz$'
|
||||
" call Decho("dearchive: attempt to untar+uncompress ".sname)
|
||||
exe "silent !tar -Zxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.tbz$'
|
||||
" call Decho("dearchive: attempt to untar+bunzip2 ".sname)
|
||||
exe "silent !tar -jxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.txz$'
|
||||
" call Decho("dearchive: attempt to untar+xz ".sname)
|
||||
exe "silent !tar -Jxvf ".shellescape(sname)
|
||||
elseif sname =~ '\.vba$'
|
||||
" call Decho("dearchive: attempt to handle a vimball: ".sname)
|
||||
silent 1split
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: HTML and XHTML
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2006 Oct 19
|
||||
" Last Change: 2011 Apr 28
|
||||
|
||||
function! htmlcomplete#CompleteTags(findstart, base)
|
||||
if a:findstart
|
||||
@@ -285,6 +285,7 @@ function! htmlcomplete#CompleteTags(findstart, base)
|
||||
let cssfiles = styletable + secimportfiles
|
||||
let classes = []
|
||||
for file in cssfiles
|
||||
let classlines = []
|
||||
if filereadable(file)
|
||||
let stylesheet = readfile(file)
|
||||
let stylefile = join(stylesheet, ' ')
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,9 @@
|
||||
" netrwFileHandlers: contains various extension-based file handlers for
|
||||
" netrw's browsers' x command ("eXecute launcher")
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Sep 30, 2008
|
||||
" Version: 10
|
||||
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
|
||||
" Date: Mar 14, 2012
|
||||
" Version: 11a
|
||||
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell, Jr. {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@@ -20,7 +20,7 @@
|
||||
if exists("g:loaded_netrwFileHandlers") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwFileHandlers= "v10"
|
||||
let g:loaded_netrwFileHandlers= "v11a"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
|
||||
@@ -64,7 +64,7 @@ fun! netrwFileHandlers#Invoke(exten,fname)
|
||||
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
|
||||
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
|
||||
endif
|
||||
|
||||
|
||||
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
|
||||
return 0
|
||||
endfun
|
||||
@@ -356,6 +356,7 @@ fun! s:NFH_obj(obj)
|
||||
endfun
|
||||
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines: {{{1
|
||||
" vim: fdm=marker
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: PHP
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2006 May 9
|
||||
" Last Change: 2011 Dec 08
|
||||
"
|
||||
" TODO:
|
||||
" - Class aware completion:
|
||||
@@ -650,6 +650,7 @@ function! phpcomplete#GetClassContents(file, name) " {{{
|
||||
" this is the most efficient way. The other way
|
||||
" is to go through the looong string looking for
|
||||
" matching {}
|
||||
let original_window = winnr()
|
||||
below 1new
|
||||
0put =cfile
|
||||
call search('class\s\+'.a:name)
|
||||
@@ -667,6 +668,9 @@ function! phpcomplete#GetClassContents(file, name) " {{{
|
||||
let classcontent = join(classc, "\n")
|
||||
|
||||
bw! %
|
||||
" go back to where we started
|
||||
exe original_window.'wincmd w'
|
||||
|
||||
if extends_class != ''
|
||||
let classlocation = phpcomplete#GetClassLocation(extends_class)
|
||||
if filereadable(classlocation)
|
||||
|
||||
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,11 +1,11 @@
|
||||
" Vim completion script
|
||||
" Language: Ruby
|
||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||
" Info: $Id: rubycomplete.vim,v 1.41 2008/06/30 06:50:45 segy Exp $
|
||||
" Last Change: 2009 Sep 28
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" 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)
|
||||
@@ -325,7 +325,7 @@ class VimRubyCompletion
|
||||
ln = buf[x]
|
||||
if /^\s*(module|class|def|include)\s+/.match(ln)
|
||||
clscnt += 1 if $1 == "class"
|
||||
#dprint "\$1: %s" % $1
|
||||
#dprint "\$1$1
|
||||
classdef += "%s\n" % ln
|
||||
classdef += "end\n" if /def\s+/.match(ln)
|
||||
dprint ln
|
||||
@@ -632,7 +632,7 @@ class VimRubyCompletion
|
||||
methods = Object.constants
|
||||
methods.grep(/^#{receiver}/).collect{|e| "::" + e}
|
||||
|
||||
when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ # Constant or class methods
|
||||
when /^(((::)?[A-Z][^:.\(]*)+?)::?([^:.]*)$/ # Constant or class methods
|
||||
receiver = $1
|
||||
message = Regexp.quote($4)
|
||||
dprint "const or cls 2 [recv: \'%s\', msg: \'%s\']" % [ receiver, message ]
|
||||
@@ -666,7 +666,7 @@ class VimRubyCompletion
|
||||
dprint "global"
|
||||
methods = global_variables.grep(Regexp.new(Regexp.quote($1)))
|
||||
|
||||
when /^((\.?[^.]+)+)\.([^.]*)$/ # variable
|
||||
when /^((\.?[^.]+)+?)\.([^.]*)$/ # variable
|
||||
dprint "variable"
|
||||
receiver = $1
|
||||
message = Regexp.quote($3)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim script to download a missing spell file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2008 Nov 29
|
||||
" Last Change: 2012 Jan 08
|
||||
|
||||
if !exists('g:spellfile_URL')
|
||||
" Prefer using http:// when netrw should be able to use it, since
|
||||
@@ -70,7 +70,7 @@ function! spellfile#LoadFile(lang)
|
||||
" Remember the buffer number, we check it below.
|
||||
new
|
||||
let newbufnr = winbufnr(0)
|
||||
setlocal bin
|
||||
setlocal bin fenc=
|
||||
echo 'Downloading ' . fname . '...'
|
||||
call spellfile#Nread(fname)
|
||||
if getline(2) !~ 'VIMspell'
|
||||
@@ -83,7 +83,7 @@ function! spellfile#LoadFile(lang)
|
||||
" Our buffer has vanished!? Open a new window.
|
||||
echomsg "download buffer disappeared, opening a new one"
|
||||
new
|
||||
setlocal bin
|
||||
setlocal bin fenc=
|
||||
else
|
||||
exe winnr . "wincmd w"
|
||||
endif
|
||||
@@ -120,6 +120,7 @@ function! spellfile#LoadFile(lang)
|
||||
else
|
||||
let dirname = escape(dirlist[dirchoice], ' ')
|
||||
endif
|
||||
setlocal fenc=
|
||||
exe "write " . dirname . '/' . fname
|
||||
|
||||
" Also download the .sug file, if the user wants to.
|
||||
|
||||
@@ -1,22 +1,65 @@
|
||||
" Vim OMNI completion script for SQL
|
||||
" Language: SQL
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 7.0
|
||||
" Last Change: 2009 Jan 04
|
||||
" Version: 12.0
|
||||
" Last Change: 2012 Feb 08
|
||||
" Usage: For detailed help
|
||||
" ":help sql.txt"
|
||||
" or ":help ft-sql-omni"
|
||||
" ":help sql.txt"
|
||||
" or ":help ft-sql-omni"
|
||||
" or read $VIMRUNTIME/doc/sql.txt
|
||||
|
||||
" History
|
||||
" Version 12.0
|
||||
" - Partial column name completion did not work when a table
|
||||
" name or table alias was provided (Jonas Enberg).
|
||||
" - Improved the handling of column completion. First we match any
|
||||
" columns from a previous completion. If not matches are found, we
|
||||
" consider the partial name to be a table or table alias for the
|
||||
" query and attempt to match on it.
|
||||
"
|
||||
" Version 11.0
|
||||
" Added g:omni_sql_default_compl_type variable
|
||||
" - You can specify which type of completion to default to
|
||||
" when pressing <C-X><C-O>. The entire list of available
|
||||
" choices can be found in the calls to sqlcomplete#Map in:
|
||||
" ftplugin/sql.vim
|
||||
"
|
||||
" 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.
|
||||
" 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.
|
||||
if exists('&omnifunc')
|
||||
" Do not set the option if already set since this
|
||||
" results in an E117 warning.
|
||||
@@ -26,9 +69,9 @@ if exists('&omnifunc')
|
||||
endif
|
||||
|
||||
if exists('g:loaded_sql_completion')
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let g:loaded_sql_completion = 70
|
||||
let g:loaded_sql_completion = 120
|
||||
|
||||
" Maintains filename of dictionary
|
||||
let s:sql_file_table = ""
|
||||
@@ -41,7 +84,7 @@ let s:tbl_alias = []
|
||||
let s:tbl_cols = []
|
||||
let s:syn_list = []
|
||||
let s:syn_value = []
|
||||
|
||||
|
||||
" Used in conjunction with the syntaxcomplete plugin
|
||||
let s:save_inc = ""
|
||||
let s:save_exc = ""
|
||||
@@ -51,7 +94,7 @@ endif
|
||||
if exists('g:omni_syntax_group_exclude_sql')
|
||||
let s:save_exc = g:omni_syntax_group_exclude_sql
|
||||
endif
|
||||
|
||||
|
||||
" Used with the column list
|
||||
let s:save_prev_table = ""
|
||||
|
||||
@@ -82,12 +125,16 @@ if !exists('g:omni_sql_include_owner')
|
||||
if g:loaded_dbext >= 300
|
||||
" New to dbext 3.00, by default the table lists include the owner
|
||||
" name of the table. This is used when determining how much of
|
||||
" whatever has been typed should be replaced as part of the
|
||||
" whatever has been typed should be replaced as part of the
|
||||
" code replacement.
|
||||
let g:omni_sql_include_owner = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
" Default type of completion used when <C-X><C-O> is pressed
|
||||
if !exists('g:omni_sql_default_compl_type')
|
||||
let g:omni_sql_default_compl_type = 'table'
|
||||
endif
|
||||
|
||||
" This function is used for the 'omnifunc' option.
|
||||
function! sqlcomplete#Complete(findstart, base)
|
||||
@@ -112,7 +159,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let begindot = 1
|
||||
endif
|
||||
while start > 0
|
||||
" Additional code was required to handle objects which
|
||||
" 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
|
||||
@@ -122,7 +169,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
elseif line[start - 1] =~ '\w'
|
||||
" If the previous character is word character continue back
|
||||
let start -= 1
|
||||
elseif line[start - 1] =~ '\.' &&
|
||||
elseif line[start - 1] =~ '\.' &&
|
||||
\ 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:
|
||||
@@ -132,7 +179,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
" If lastword has already been set for column completion
|
||||
" break from the loop, since we do not also want to pickup
|
||||
" a table name if it was also supplied.
|
||||
if lastword != -1 && compl_type == 'column'
|
||||
if lastword != -1 && compl_type == 'column'
|
||||
break
|
||||
endif
|
||||
" If column completion was specified stop at the "." if
|
||||
@@ -143,8 +190,8 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
endif
|
||||
" If omni_sql_include_owner = 0, do not include the table
|
||||
" name as part of the substitution, so break here
|
||||
if lastword == -1 &&
|
||||
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
|
||||
if lastword == -1 &&
|
||||
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
|
||||
\ g:omni_sql_include_owner == 0
|
||||
let lastword = start
|
||||
break
|
||||
@@ -174,7 +221,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let compl_list = []
|
||||
|
||||
" Default to table name completion
|
||||
let compl_type = 'table'
|
||||
let compl_type = g:omni_sql_default_compl_type
|
||||
" Allow maps to specify what type of object completion they want
|
||||
if exists('b:sql_compl_type')
|
||||
let compl_type = b:sql_compl_type
|
||||
@@ -188,7 +235,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
|
||||
if compl_type == 'table' ||
|
||||
\ compl_type == 'procedure' ||
|
||||
\ compl_type == 'view'
|
||||
\ compl_type == 'view'
|
||||
|
||||
" This type of completion relies upon the dbext.vim plugin
|
||||
if s:SQLCCheck4dbext() == -1
|
||||
@@ -226,7 +273,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
|
||||
if base == ""
|
||||
" The last time we displayed a column list we stored
|
||||
" the table name. If the user selects a column list
|
||||
" the table name. If the user selects a column list
|
||||
" without a table name of alias present, assume they want
|
||||
" the previous column list displayed.
|
||||
let base = s:save_prev_table
|
||||
@@ -245,16 +292,16 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
" has entered:
|
||||
" owner.table
|
||||
" table.column_prefix
|
||||
" So there are a couple of things we can do to mitigate
|
||||
" So there are a couple of things we can do to mitigate
|
||||
" this issue.
|
||||
" 1. Check if the dbext plugin has the option turned
|
||||
" on to even allow owners
|
||||
" 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
|
||||
" 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
|
||||
" determined the user has actually chosen
|
||||
" determined the user has actually chosen
|
||||
" owner.table, not table.column_prefix.
|
||||
let found = -1
|
||||
if g:omni_sql_include_owner == 1 && owner == ''
|
||||
@@ -269,17 +316,46 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
" If the user has indicated not to use table owners at all and
|
||||
" the base ends in a '.' we know they are not providing a column
|
||||
" name, so we can shift the items appropriately.
|
||||
if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
|
||||
let owner = table
|
||||
let table = column
|
||||
let column = ''
|
||||
endif
|
||||
" if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
|
||||
" let owner = table
|
||||
" let table = column
|
||||
" let column = ''
|
||||
" endif
|
||||
else
|
||||
" If no "." was provided and the user asked for
|
||||
" column level completion, first attempt the match
|
||||
" on any previous column lists. If the user asked
|
||||
" for a list of columns comma separated, continue as usual.
|
||||
if compl_type == 'column' && s:save_prev_table != ''
|
||||
" The last time we displayed a column list we stored
|
||||
" the table name. If the user selects a column list
|
||||
" without a table name of alias present, assume they want
|
||||
" the previous column list displayed.
|
||||
let table = s:save_prev_table
|
||||
let list_type = ''
|
||||
|
||||
let compl_list = s:SQLCGetColumns(table, list_type)
|
||||
if ! empty(compl_list)
|
||||
" If no column prefix has been provided and the table
|
||||
" name was provided, append it to each of the items
|
||||
" returned.
|
||||
let compl_list = filter(deepcopy(compl_list), 'v:val=~"^'.base.'"' )
|
||||
|
||||
" If not empty, we have a match on columns
|
||||
" return the list
|
||||
if ! empty(compl_list)
|
||||
return compl_list
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
" Since no columns were found to match the base supplied
|
||||
" assume the user is trying to complete the column list
|
||||
" for a table (and or an alias to a table).
|
||||
let table = base
|
||||
endif
|
||||
|
||||
" Get anything after the . and consider this the table name
|
||||
" If an owner has been specified, then we must consider the
|
||||
" If an owner has been specified, then we must consider the
|
||||
" base to be a partial column name
|
||||
" let base = matchstr( base, '^\(.*\.\)\?\zs.*' )
|
||||
|
||||
@@ -299,11 +375,11 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
" If no column prefix has been provided and the table
|
||||
" name was provided, append it to each of the items
|
||||
" returned.
|
||||
let compl_list = map(compl_list, "table.'.'.v:val")
|
||||
let compl_list = map(compl_list, 'table.".".v:val')
|
||||
if owner != ''
|
||||
" If an owner has been provided append it to each of the
|
||||
" items returned.
|
||||
let compl_list = map(compl_list, "owner.'.'.v:val")
|
||||
let compl_list = map(compl_list, 'owner.".".v:val')
|
||||
endif
|
||||
else
|
||||
let base = ''
|
||||
@@ -333,11 +409,15 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
|
||||
if base != ''
|
||||
" Filter the list based on the first few characters the user entered.
|
||||
" Check if the text matches at the beginning
|
||||
" or
|
||||
" Check if the text matches at the beginning
|
||||
" \\(^.base.'\\)
|
||||
" or
|
||||
" Match to a owner.table or alias.column type match
|
||||
" ^\\(\\w\\+\\.\\)\\?'.base.'\\)
|
||||
" or
|
||||
" Handle names with spaces "my table name"
|
||||
" "\\(^'.base.'\\|^\\(\\w\\+\\.\\)\\?'.base.'\\)"'
|
||||
"
|
||||
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.'\\)"'
|
||||
@@ -354,7 +434,13 @@ endfunc
|
||||
|
||||
function! sqlcomplete#PreCacheSyntax(...)
|
||||
let syn_group_arr = []
|
||||
if a:0 > 0
|
||||
let syn_items = []
|
||||
|
||||
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
|
||||
@@ -363,7 +449,36 @@ function! sqlcomplete#PreCacheSyntax(...)
|
||||
" the sytnax items.
|
||||
if !empty(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
|
||||
endif
|
||||
endfunction
|
||||
@@ -390,13 +505,14 @@ function! sqlcomplete#DrillIntoTable()
|
||||
call sqlcomplete#Map('column')
|
||||
" C-Y, makes the currently highlighted entry active
|
||||
" 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
|
||||
if has('win32')
|
||||
" If the popup is not visible, simple perform the normal
|
||||
" <C-Right> behaviour
|
||||
exec "normal! \<C-Right>"
|
||||
endif
|
||||
" If the popup is not visible, simple perform the normal
|
||||
" key behaviour.
|
||||
" Must use exec since they key must be preceeded by "\"
|
||||
" 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
|
||||
return ""
|
||||
endfunction
|
||||
@@ -408,27 +524,28 @@ function! sqlcomplete#DrillOutOfColumns()
|
||||
" Trigger the omni popup to be redisplayed
|
||||
call feedkeys("\<C-X>\<C-O>")
|
||||
else
|
||||
if has('win32')
|
||||
" If the popup is not visible, simple perform the normal
|
||||
" <C-Left> behaviour
|
||||
exec "normal! \<C-Left>"
|
||||
endif
|
||||
" If the popup is not visible, simple perform the normal
|
||||
" key behaviour.
|
||||
" Must use exec since they key must be preceeded by "\"
|
||||
" 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
|
||||
return ""
|
||||
endfunction
|
||||
|
||||
function! s:SQLCWarningMsg(msg)
|
||||
echohl WarningMsg
|
||||
echomsg a:msg
|
||||
echomsg 'SQLComplete:'.a:msg
|
||||
echohl None
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:SQLCErrorMsg(msg)
|
||||
echohl ErrorMsg
|
||||
echomsg a:msg
|
||||
echomsg 'SQLComplete:'.a:msg
|
||||
echohl None
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:SQLCGetSyntaxList(syn_group)
|
||||
let syn_group = a:syn_group
|
||||
let compl_list = []
|
||||
@@ -439,7 +556,7 @@ function! s:SQLCGetSyntaxList(syn_group)
|
||||
" Return previously cached value
|
||||
let compl_list = s:syn_value[list_idx]
|
||||
else
|
||||
" Request the syntax list items from the
|
||||
" Request the syntax list items from the
|
||||
" syntax completion plugin
|
||||
if syn_group == 'syntax'
|
||||
" Handle this special case. This allows the user
|
||||
@@ -451,7 +568,7 @@ function! s:SQLCGetSyntaxList(syn_group)
|
||||
let g:omni_syntax_group_include_sql = syn_group
|
||||
endif
|
||||
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_exclude_sql = s:save_exc
|
||||
" Cache these values for later use
|
||||
@@ -487,7 +604,7 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
|
||||
let table_alias = a:table_alias
|
||||
let cols = a:cols
|
||||
|
||||
if g:omni_sql_use_tbl_alias != 'n'
|
||||
if g:omni_sql_use_tbl_alias != 'n'
|
||||
if table_alias == ''
|
||||
if 'da' =~? g:omni_sql_use_tbl_alias
|
||||
if table_name =~ '_'
|
||||
@@ -497,13 +614,13 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
|
||||
setlocal iskeyword-=_
|
||||
|
||||
" Get the first letter of each word
|
||||
" [[:alpha:]] is used instead of \w
|
||||
" [[:alpha:]] is used instead of \w
|
||||
" to catch extended accented characters
|
||||
"
|
||||
let table_alias = substitute(
|
||||
\ table_name,
|
||||
\ '\<[[:alpha:]]\+\>_\?',
|
||||
\ '\=strpart(submatch(0), 0, 1)',
|
||||
let table_alias = substitute(
|
||||
\ table_name,
|
||||
\ '\<[[:alpha:]]\+\>_\?',
|
||||
\ '\=strpart(submatch(0), 0, 1)',
|
||||
\ 'g'
|
||||
\ )
|
||||
" Restore original value
|
||||
@@ -531,7 +648,7 @@ function! s:SQLCAddAlias(table_name, table_alias, cols)
|
||||
return cols
|
||||
endfunction
|
||||
|
||||
function! s:SQLCGetObjectOwner(object)
|
||||
function! s:SQLCGetObjectOwner(object)
|
||||
" The owner regex matches a word at the start of the string which is
|
||||
" followed by a dot, but doesn't include the dot in the result.
|
||||
" ^ - from beginning of line
|
||||
@@ -544,7 +661,7 @@ function! s:SQLCGetObjectOwner(object)
|
||||
" let owner = matchstr( a:object, '^\s*\zs.*\ze\.' )
|
||||
let owner = matchstr( a:object, '^\("\|\[\)\?\zs\.\{-}\ze\("\|\]\)\?\.' )
|
||||
return owner
|
||||
endfunction
|
||||
endfunction
|
||||
|
||||
function! s:SQLCGetColumns(table_name, list_type)
|
||||
" Check if the table name was provided as part of the column name
|
||||
@@ -571,7 +688,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
if list_idx > -1
|
||||
let table_cols = split(s:tbl_cols[list_idx], '\n')
|
||||
else
|
||||
" Check if we have already cached the column list for this table
|
||||
" Check if we have already cached the column list for this table
|
||||
" by its alias, assuming the table_name provided was actually
|
||||
" the alias for the table instead
|
||||
" select *
|
||||
@@ -589,7 +706,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
" And the table ends in a "." or we are looking for a column list
|
||||
" if list_idx == -1 && (a:table_name =~ '\.' || b:sql_compl_type =~ 'column')
|
||||
" if list_idx == -1 && (a:table_name =~ '\.' || a:list_type =~ 'csv')
|
||||
if list_idx == -1
|
||||
if list_idx == -1
|
||||
let saveY = @y
|
||||
let saveSearch = @/
|
||||
let saveWScan = &wrapscan
|
||||
@@ -600,7 +717,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
setlocal nowrapscan
|
||||
" If . was entered, look at the word just before the .
|
||||
" We are looking for something like this:
|
||||
" select *
|
||||
" select *
|
||||
" from customer c
|
||||
" where c.
|
||||
" So when . is pressed, we need to find 'c'
|
||||
@@ -609,7 +726,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
" Search backwards to the beginning of the statement
|
||||
" and do NOT wrap
|
||||
" 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
|
||||
" Advance right one character
|
||||
@@ -618,27 +735,47 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
" 2. A ; at the end of a line (the delimiter)
|
||||
" 3. The end of the file (incase no delimiter)
|
||||
" 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 = substitute(query, "\n", ' ', 'g')
|
||||
let found = 0
|
||||
|
||||
" if query =~? '^\(select\|update\|delete\)'
|
||||
if query =~? '^\(select\)'
|
||||
" if query =~? '^\c\(select\)'
|
||||
if query =~? '^\(select\|update\|delete\)'
|
||||
let found = 1
|
||||
" \(\(\<\w\+\>\)\.\)\? -
|
||||
" 'from.\{-}' - Starting at the from clause
|
||||
" \(\(\<\w\+\>\)\.\)\? -
|
||||
" '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
|
||||
" '\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*\.\@!.*' - Cannot be followed by a .
|
||||
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
|
||||
" '.*' - Exclude the rest of the line in the match
|
||||
let table_name_new = matchstr(@y,
|
||||
\ 'from.\{-}'.
|
||||
\ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
|
||||
\ '\("\|\[\)\?.\{-}\("\|\]\)\ze'.
|
||||
" let table_name_new = matchstr(@y,
|
||||
" \ '\c\(from\|join\|,\).\{-}'.
|
||||
" \ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
|
||||
" \ '\("\|\[\)\?.\{-}\("\|\]\)\?\ze'.
|
||||
" \ '\s\+\%(as\s\+\)\?\<'.
|
||||
" \ matchstr(table_name, '.\{-}\ze\.\?$').
|
||||
" \ '\>'.
|
||||
" \ '\s*\.\@!.*'.
|
||||
" \ '\(\<where\>\|$\)'.
|
||||
" \ '.*'
|
||||
" \ )
|
||||
"
|
||||
"
|
||||
" ''\c\(\<from\>\|\<join\>\|,\)\s*' - Starting at the from clause (case insensitive)
|
||||
" '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?' - Get the owner name (optional)
|
||||
" '\("\|\[\)\?\w\+\("\|\]\)\?\ze' - Get the table name
|
||||
" '\s\+\%(as\s\+\)\?\<'.matchstr(table_name, '.\{-}\ze\.\?$').'\>' - Followed by the alias
|
||||
" '\s*\.\@!.*' - Cannot be followed by a .
|
||||
" '\(\<where\>\|$\)' - Must be followed by a WHERE clause
|
||||
" '.*' - Exclude the rest of the line in the match
|
||||
let table_name_new = matchstr(@y,
|
||||
\ '\c\(\<from\>\|\<join\>\|,\)\s*'.
|
||||
\ '\zs\(\("\|\[\)\?\w\+\("\|\]\)\?\.\)\?'.
|
||||
\ '\("\|\[\)\?\w\+\("\|\]\)\?\ze'.
|
||||
\ '\s\+\%(as\s\+\)\?\<'.
|
||||
\ matchstr(table_name, '.\{-}\ze\.\?$').
|
||||
\ '\>'.
|
||||
@@ -649,7 +786,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
if table_name_new != ''
|
||||
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)
|
||||
if list_idx > -1
|
||||
@@ -677,7 +814,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
" Return to previous location
|
||||
call cursor(curline, curcol)
|
||||
|
||||
|
||||
if found == 0
|
||||
if g:loaded_dbext > 300
|
||||
exec 'DBSetOption use_tbl_alias='.saveSettingAlias
|
||||
@@ -686,7 +823,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
" Not a SQL statement, do not display a list
|
||||
return []
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if empty(table_cols)
|
||||
" Specify silent mode, no messages to the user (tbl, 1)
|
||||
@@ -717,4 +854,3 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
return table_cols
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -1,14 +1,40 @@
|
||||
" Vim completion script
|
||||
" Language: All languages, uses existing syntax highlighting rules
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 5.0
|
||||
" Last Change: 2010 Jan 31
|
||||
" Version: 8.0
|
||||
" Last Change: 2011 Nov 02
|
||||
" Usage: For detailed help, ":help ft-syntax-omni"
|
||||
|
||||
" History
|
||||
"
|
||||
" Version 8.0
|
||||
" Updated SyntaxCSyntaxGroupItems()
|
||||
" - Some additional syntax items were also allowed
|
||||
" on nextgroup= lines which were ignored by default.
|
||||
" Now these lines are processed independently.
|
||||
"
|
||||
" 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
|
||||
" When processing a list of syntax groups, the final group
|
||||
" was missed in function SyntaxCSyntaxGroupItems.
|
||||
" 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.
|
||||
" This check is in place in case this script is
|
||||
@@ -24,7 +50,7 @@ endif
|
||||
if exists('g:loaded_syntax_completion')
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntax_completion = 40
|
||||
let g:loaded_syntax_completion = 80
|
||||
|
||||
" Set ignorecase to the ftplugin standard
|
||||
" This is the default setting, but if you define a buffer local
|
||||
@@ -52,7 +78,8 @@ endif
|
||||
" This script will build a completion list based on the syntax
|
||||
" elements defined by the files in $VIMRUNTIME/syntax.
|
||||
let s:syn_remove_words = 'match,matchgroup=,contains,'.
|
||||
\ 'links to,start=,end=,nextgroup='
|
||||
\ 'links to,start=,end='
|
||||
" \ 'links to,start=,end=,nextgroup='
|
||||
|
||||
let s:cache_name = []
|
||||
let s:cache_list = []
|
||||
@@ -128,7 +155,30 @@ function! syntaxcomplete#Complete(findstart, base)
|
||||
return compl_list
|
||||
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
|
||||
" a list will be returned.
|
||||
" let use_dictionary = 1
|
||||
@@ -157,16 +207,40 @@ function! OmniSyntaxList()
|
||||
endif
|
||||
|
||||
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
|
||||
" syntax file which contains these names. This can
|
||||
" work generically for any filetype that does not already
|
||||
" have a plugin defined.
|
||||
" This ASSUMES the syntax groupname BEGINS with the name
|
||||
" 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
|
||||
silent! exec 'syntax list '
|
||||
silent! exec 'syntax list '.join(list_parms)
|
||||
redir END
|
||||
|
||||
let syntax_full = "\n".@l
|
||||
@@ -181,31 +255,23 @@ function! OmniSyntaxList()
|
||||
|
||||
let filetype = substitute(&filetype, '\.', '_', 'g')
|
||||
|
||||
" 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')
|
||||
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
|
||||
let syntax_group_exclude_{filetype} = ''
|
||||
" Check if there are any overrides specified for this filetype
|
||||
if exists('g:omni_syntax_group_exclude_'.filetype)
|
||||
let syntax_group_exclude_{filetype} =
|
||||
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
|
||||
if syntax_group_exclude_{filetype} =~ '\w'
|
||||
let syntax_group_exclude_{filetype} =
|
||||
\ substitute( syntax_group_exclude_{filetype},
|
||||
\ '\s*,\s*', '\\|', 'g'
|
||||
\ )
|
||||
let list_exclude_groups = []
|
||||
if a:0 > 0
|
||||
" Do nothing since we have specific a specific list of groups
|
||||
else
|
||||
" Default the exclude group to nothing
|
||||
let syntax_group_exclude_{filetype} = ''
|
||||
" Check if there are any overrides specified for this filetype
|
||||
if exists('g:omni_syntax_group_exclude_'.filetype)
|
||||
let syntax_group_exclude_{filetype} =
|
||||
\ 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'
|
||||
let syntax_group_exclude_{filetype} =
|
||||
\ substitute( syntax_group_exclude_{filetype},
|
||||
\ '\s*,\s*', '\\|', 'g'
|
||||
\ )
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -230,47 +296,51 @@ function! OmniSyntaxList()
|
||||
let index = 0
|
||||
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
|
||||
let group_name = matchstr( syntax_full, '\w\+', index )
|
||||
|
||||
let get_syn_list = 1
|
||||
" if syntax_group_include_{&filetype} == ''
|
||||
" if syntax_group_exclude_{&filetype} != ''
|
||||
" if '\<'.syntax_group_exclude_{&filetype}.'\>' =~ '\<'.group_name.'\>'
|
||||
for exclude_group_name in list_exclude_groups
|
||||
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
|
||||
let get_syn_list = 0
|
||||
endif
|
||||
endfor
|
||||
|
||||
" This code is no longer needed in version 6.0 since we have
|
||||
" augmented the syntax list command to only retrieve the syntax
|
||||
" groups we are interested in.
|
||||
"
|
||||
" if get_syn_list == 1
|
||||
" if syntax_group_include_{filetype} != ''
|
||||
" if '\<'.syntax_group_include_{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
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_syn_list == 1
|
||||
if syntax_group_include_{filetype} != ''
|
||||
if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
|
||||
let get_syn_list = 0
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_syn_list == 1
|
||||
" Pass in the full syntax listing, plus the group name we
|
||||
" are interested in.
|
||||
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"
|
||||
endif
|
||||
|
||||
@@ -348,9 +418,25 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
\ , "\n", 'g'
|
||||
\ )
|
||||
|
||||
" Now strip off the newline + blank space + contained
|
||||
" Now strip off the newline + blank space + contained.
|
||||
" Also include lines with nextgroup=@someName skip_key_words syntax_element
|
||||
let syn_list = substitute(
|
||||
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\)'
|
||||
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
|
||||
\ , "", 'g'
|
||||
\ )
|
||||
|
||||
" This can leave lines like this
|
||||
" =@vimMenuList skipwhite onoremenu
|
||||
" Strip the special option keywords first
|
||||
" :h :syn-skipwhite*
|
||||
let syn_list = substitute(
|
||||
\ syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
|
||||
\ , "", 'g'
|
||||
\ )
|
||||
|
||||
" Now remove the remainder of the nextgroup=@someName lines
|
||||
let syn_list = substitute(
|
||||
\ syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
|
||||
\ , "", 'g'
|
||||
\ )
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Dec 28, 2009
|
||||
" Version: 24
|
||||
" Date: Jan 17, 2012
|
||||
" Version: 28
|
||||
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
"
|
||||
" Contains many ideas from Michael Toren's <tar.vim>
|
||||
"
|
||||
" Copyright: Copyright (C) 2005-2009 Charles E. Campbell, Jr. {{{1
|
||||
" Copyright: Copyright (C) 2005-2011 Charles E. Campbell, Jr. {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@@ -22,7 +22,7 @@
|
||||
if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v24"
|
||||
let g:loaded_tar= "v28"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
@@ -47,6 +47,17 @@ endif
|
||||
if !exists("g:tar_writeoptions")
|
||||
let g:tar_writeoptions= "uf"
|
||||
endif
|
||||
if !exists("g:netrw_cygwin")
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
||||
let g:netrw_cygwin= 1
|
||||
else
|
||||
let g:netrw_cygwin= 0
|
||||
endif
|
||||
else
|
||||
let g:netrw_cygwin= 0
|
||||
endif
|
||||
endif
|
||||
if !exists("g:tar_copycmd")
|
||||
if !exists("g:netrw_localcopycmd")
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
@@ -63,17 +74,6 @@ if !exists("g:tar_copycmd")
|
||||
endif
|
||||
let g:tar_copycmd= g:netrw_localcopycmd
|
||||
endif
|
||||
if !exists("g:netrw_cygwin")
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
|
||||
let g:netrw_cygwin= 1
|
||||
else
|
||||
let g:netrw_cygwin= 0
|
||||
endif
|
||||
else
|
||||
let g:netrw_cygwin= 0
|
||||
endif
|
||||
endif
|
||||
if !exists("g:tar_extractcmd")
|
||||
let g:tar_extractcmd= "tar -xf"
|
||||
endif
|
||||
@@ -127,7 +127,7 @@ fun! tar#Browse(tarfile)
|
||||
if &ma != 1
|
||||
set ma
|
||||
endif
|
||||
let w:tarfile= a:tarfile
|
||||
let b:tarfile= a:tarfile
|
||||
|
||||
setlocal noswapfile
|
||||
setlocal buftype=nofile
|
||||
@@ -142,9 +142,9 @@ fun! tar#Browse(tarfile)
|
||||
call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
|
||||
call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
|
||||
call setline(lastline+3,'" Select a file with cursor and press ENTER')
|
||||
$put =''
|
||||
0d
|
||||
$
|
||||
keepj $put =''
|
||||
keepj sil! 0d
|
||||
keepj $
|
||||
|
||||
let tarfile= a:tarfile
|
||||
if has("win32") && executable("cygpath")
|
||||
@@ -154,23 +154,26 @@ fun! tar#Browse(tarfile)
|
||||
let curlast= line("$")
|
||||
if tarfile =~# '\.\(gz\|tgz\)$'
|
||||
" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.lrp'
|
||||
" call Decho("2: exe silent r! cat -- ".shellescape(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$'
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
|
||||
" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(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$'
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.\(lzma\|tlz\)$'
|
||||
" 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." - "
|
||||
exe "sil! 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 "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||
exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||
endif
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
@@ -181,12 +184,12 @@ fun! tar#Browse(tarfile)
|
||||
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
silent %d
|
||||
keepj sil! %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "r ".fnameescape(a:tarfile)
|
||||
let &ei= eikeep
|
||||
1d
|
||||
keepj sil! 1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
@@ -195,13 +198,13 @@ fun! tar#Browse(tarfile)
|
||||
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
|
||||
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" TarBrowseSelect: {{{2
|
||||
fun! s:TarBrowseSelect()
|
||||
" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">")
|
||||
" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
@@ -221,8 +224,8 @@ fun! s:TarBrowseSelect()
|
||||
return
|
||||
endif
|
||||
|
||||
" about to make a new window, need to use w:tarfile
|
||||
let tarfile= w:tarfile
|
||||
" about to make a new window, need to use b:tarfile
|
||||
let tarfile= b:tarfile
|
||||
let curfile= expand("%")
|
||||
if has("win32") && executable("cygpath")
|
||||
" assuming cygwin
|
||||
@@ -265,10 +268,13 @@ fun! tar#Read(fname,mode)
|
||||
elseif fname =~ '\.lzma$' && executable("lzcat")
|
||||
let decmp= "|lzcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.xz$' && executable("xzcat")
|
||||
let decmp= "|xzcat"
|
||||
let doro = 1
|
||||
else
|
||||
let decmp=""
|
||||
let doro = 0
|
||||
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.zip$\|\.Z$'
|
||||
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||
setlocal bin
|
||||
endif
|
||||
endif
|
||||
@@ -280,16 +286,19 @@ fun! tar#Read(fname,mode)
|
||||
endif
|
||||
if tarfile =~# '\.bz2$'
|
||||
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "silent r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.\(gz\|tgz\)$'
|
||||
" 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
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.lrp$'
|
||||
" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "silent r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.lzma$'
|
||||
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
@@ -304,21 +313,21 @@ fun! tar#Read(fname,mode)
|
||||
setlocal ro
|
||||
endif
|
||||
|
||||
let w:tarfile= a:fname
|
||||
let b:tarfile= a:fname
|
||||
exe "file tarfile::".fnameescape(fname)
|
||||
|
||||
" cleanup
|
||||
0d
|
||||
keepj sil! 0d
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Read : w:tarfile<".w:tarfile.">")
|
||||
" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Write: {{{2
|
||||
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
|
||||
set report=10
|
||||
|
||||
@@ -374,8 +383,8 @@ fun! tar#Write(fname)
|
||||
cd _ZIPVIM_
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
|
||||
" handle compressed archives
|
||||
if tarfile =~# '\.bz2'
|
||||
@@ -387,17 +396,22 @@ fun! tar#Write(fname)
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.lzma'
|
||||
call system("lzma -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.lzma','','e')
|
||||
let compress= "lzma -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.tgz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
let tgz = 1
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.xz'
|
||||
call system("xz -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.xz','','e')
|
||||
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.">")
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
|
||||
758
runtime/autoload/tohtml.vim
Normal file
758
runtime/autoload/tohtml.vim
Normal file
@@ -0,0 +1,758 @@
|
||||
" Vim autoload file for the tohtml plugin.
|
||||
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||
" Last Change: 2011 Apr 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.
|
||||
"
|
||||
" 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:buftype!='' && &l:buftype!=?'help'))
|
||||
\ && &encoding!=?s:settings.vim_encoding)
|
||||
\ || &l:fileencoding!='' && &l:fileencoding!=?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, 'pre_wrap', &wrap )
|
||||
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
|
||||
|
||||
" pre_wrap doesn't do anything if not using pre or not using CSS
|
||||
if user_settings.no_pre || !user_settings.use_css
|
||||
let user_settings.pre_wrap=0
|
||||
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 != ''
|
||||
" If the buffer is not a "normal" type, the 'fileencoding' value may not
|
||||
" be trusted; since the buffer should not be written the fileencoding is
|
||||
" not intended to be used.
|
||||
if &l:buftype=='' || &l:buftype==?'help'
|
||||
let user_settings.vim_encoding = &l:fileencoding
|
||||
call tohtml#CharsetFromEncoding(user_settings)
|
||||
else
|
||||
let user_settings.encoding = '' " trigger detection using &encoding
|
||||
endif
|
||||
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
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Dec 28, 2009
|
||||
" Version: 30
|
||||
" Date: Jan 17, 2012
|
||||
" Version: 35
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Copyright: (c) 2004-2009 by Charles E. Campbell, Jr.
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
|
||||
" The VIM LICENSE applies to Vimball.vim, and Vimball.txt
|
||||
" (see |copyright|) except use "Vimball" instead of "Vim".
|
||||
" No warranty, express or implied.
|
||||
@@ -14,7 +14,7 @@
|
||||
if &cp || exists("g:loaded_vimball")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimball = "v30"
|
||||
let g:loaded_vimball = "v35"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of vimball needs vim 7.2"
|
||||
@@ -67,10 +67,10 @@ endif
|
||||
" vimball#MkVimball: creates a vimball given a list of paths to files {{{2
|
||||
" Input:
|
||||
" line1,line2: a range of lines containing paths to files to be included in the vimball
|
||||
" writelevel : if true, force a write to filename.vba, even if it exists
|
||||
" writelevel : if true, force a write to filename.vmb, even if it exists
|
||||
" (usually accomplished with :MkVimball! ...
|
||||
" filename : base name of file to be created (ie. filename.vba)
|
||||
" Output: a filename.vba using vimball format:
|
||||
" filename : base name of file to be created (ie. filename.vmb)
|
||||
" Output: a filename.vmb using vimball format:
|
||||
" path
|
||||
" filesize
|
||||
" [file]
|
||||
@@ -80,12 +80,12 @@ endif
|
||||
fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
" call Dfunc("MkVimball(line1=".a:line1." line2=".a:line2." writelevel=".a:writelevel." vimballname<".a:1.">) a:0=".a:0)
|
||||
if a:1 =~ '\.vim$' || a:1 =~ '\.txt$'
|
||||
let vbname= substitute(a:1,'\.\a\{3}$','.vba','')
|
||||
let vbname= substitute(a:1,'\.\a\{3}$','.vmb','')
|
||||
else
|
||||
let vbname= a:1
|
||||
endif
|
||||
if vbname !~ '\.vba$'
|
||||
let vbname= vbname.'.vba'
|
||||
if vbname !~ '\.vmb$'
|
||||
let vbname= vbname.'.vmb'
|
||||
endif
|
||||
" call Decho("vbname<".vbname.">")
|
||||
if !a:writelevel && a:1 =~ '[\/]'
|
||||
@@ -134,7 +134,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
" create/switch to mkvimball tab
|
||||
if !exists("vbtabnr")
|
||||
tabnew
|
||||
silent! file Vimball
|
||||
sil! file Vimball
|
||||
let vbtabnr= tabpagenr()
|
||||
else
|
||||
exe "tabn ".vbtabnr
|
||||
@@ -195,8 +195,8 @@ fun! vimball#Vimball(really,...)
|
||||
" call Dfunc("vimball#Vimball(really=".a:really.") a:0=".a:0)
|
||||
|
||||
if v:version < 701 || (v:version == 701 && !exists('*fnameescape'))
|
||||
echoerr "your vim is missing the fnameescape() function"
|
||||
" call Dret("vimball#Vimball : needs 7.1 with patch 299")
|
||||
echoerr "your vim is missing the fnameescape() function (pls upgrade to vim 7.2 or later)"
|
||||
" call Dret("vimball#Vimball : needs 7.1 with patch 299 or later")
|
||||
return
|
||||
endif
|
||||
|
||||
@@ -214,13 +214,22 @@ fun! vimball#Vimball(really,...)
|
||||
" set up vimball tab
|
||||
" call Decho("setting up vimball tab")
|
||||
tabnew
|
||||
silent! file Vimball
|
||||
sil! file Vimball
|
||||
let vbtabnr= tabpagenr()
|
||||
let didhelp= ""
|
||||
|
||||
" go to vim plugin home
|
||||
if a:0 > 0
|
||||
" let user specify the directory where the vimball is to be unpacked.
|
||||
" If, however, the user did not specify a full path, set the home to be below the current directory
|
||||
let home= expand(a:1)
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if home !~ '^\a:[/\\]'
|
||||
let home= getcwd().'/'.a:1
|
||||
endif
|
||||
elseif home !~ '^/'
|
||||
let home= getcwd().'/'.a:1
|
||||
endif
|
||||
else
|
||||
let home= vimball#VimballHome()
|
||||
endif
|
||||
@@ -254,11 +263,10 @@ fun! vimball#Vimball(really,...)
|
||||
while 1 < linenr && linenr < line("$")
|
||||
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
|
||||
let fname = substitute(fname,'\\','/','g')
|
||||
" 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 fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\{-}\)$','\1','')
|
||||
let filecnt = filecnt + 1
|
||||
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
|
||||
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt. " fenc=".fenc)
|
||||
|
||||
if a:really
|
||||
echomsg "extracted <".fname.">: ".fsize." lines"
|
||||
@@ -283,11 +291,14 @@ fun! vimball#Vimball(really,...)
|
||||
" call Decho("making directories if they don't exist yet (fname<".fname.">)")
|
||||
let fnamebuf= substitute(fname,'\\','/','g')
|
||||
let dirpath = substitute(home,'\\','/','g')
|
||||
" call Decho("init: fnamebuf<".fnamebuf.">")
|
||||
" call Decho("init: dirpath <".dirpath.">")
|
||||
while fnamebuf =~ '/'
|
||||
let dirname = dirpath."/".substitute(fnamebuf,'/.*$','','')
|
||||
let dirpath = dirname
|
||||
let fnamebuf = substitute(fnamebuf,'^.\{-}/\(.*\)$','\1','')
|
||||
" call Decho("dirname<".dirname.">")
|
||||
" call Decho("dirpath<".dirpath.">")
|
||||
if !isdirectory(dirname)
|
||||
" call Decho("making <".dirname.">")
|
||||
if exists("g:vimball_mkdir")
|
||||
@@ -306,20 +317,22 @@ fun! vimball#Vimball(really,...)
|
||||
let linenr = linenr + 2
|
||||
let lastline = linenr + fsize - 1
|
||||
" call Decho("exe ".linenr.",".lastline."yank a")
|
||||
exe "silent ".linenr.",".lastline."yank a"
|
||||
" no point in handling a zero-length file
|
||||
if lastline >= linenr
|
||||
exe "silent ".linenr.",".lastline."yank a"
|
||||
|
||||
" copy "a" buffer into tab
|
||||
" copy "a" buffer into tab
|
||||
" call Decho('copy "a buffer into tab#'.vbtabnr)
|
||||
exe "tabn ".vbtabnr
|
||||
setlocal ma
|
||||
silent! %d
|
||||
silent put a
|
||||
1
|
||||
silent d
|
||||
exe "tabn ".vbtabnr
|
||||
setlocal ma
|
||||
sil! %d
|
||||
silent put a
|
||||
1
|
||||
sil! d
|
||||
|
||||
" write tab to file
|
||||
if a:really
|
||||
let fnamepath= home."/".fname
|
||||
" write tab to file
|
||||
if a:really
|
||||
let fnamepath= home."/".fname
|
||||
" call Decho("exe w! ".fnameescape(fnamepath))
|
||||
if fenc != ""
|
||||
exe "silent w! ++enc=".fnameescape(fenc)." ".fnameescape(fnamepath)
|
||||
@@ -328,17 +341,18 @@ fun! vimball#Vimball(really,...)
|
||||
endif
|
||||
echo "wrote ".fnameescape(fnamepath)
|
||||
call s:RecordInVar(home,"call delete('".fnamepath."')")
|
||||
endif
|
||||
endif
|
||||
|
||||
" return to tab with vimball
|
||||
" return to tab with vimball
|
||||
" call Decho("exe tabn ".curtabnr)
|
||||
exe "tabn ".curtabnr
|
||||
exe "tabn ".curtabnr
|
||||
|
||||
" set up help if its a doc/*.txt file
|
||||
" set up help if its a doc/*.txt file
|
||||
" call Decho("didhelp<".didhelp."> fname<".fname.">")
|
||||
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
|
||||
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
|
||||
if a:really && didhelp == "" && fname =~ 'doc/[^/]\+\.\(txt\|..x\)$'
|
||||
let didhelp= substitute(fname,'^\(.*\<doc\)[/\\][^.]*\.\(txt\|..x\)$','\1','')
|
||||
" call Decho("didhelp<".didhelp.">")
|
||||
endif
|
||||
endif
|
||||
|
||||
" update for next file
|
||||
@@ -400,7 +414,9 @@ fun! vimball#RmVimball(...)
|
||||
let curfile= a:1
|
||||
" call Decho("case a:0=".a:0.": curfile<".curfile.">")
|
||||
endif
|
||||
if curfile =~ '\.vba$'
|
||||
if curfile =~ '\.vmb$'
|
||||
let curfile= substitute(curfile,'\.vmb','','')
|
||||
elseif curfile =~ '\.vba$'
|
||||
let curfile= substitute(curfile,'\.vba','','')
|
||||
endif
|
||||
if a:0 >= 2
|
||||
@@ -418,13 +434,17 @@ fun! vimball#RmVimball(...)
|
||||
" call Decho(".VimballRecord is readable")
|
||||
" call Decho("curfile<".curfile.">")
|
||||
keepalt keepjumps 1split
|
||||
silent! keepalt keepjumps e .VimballRecord
|
||||
sil! keepalt keepjumps e .VimballRecord
|
||||
let keepsrch= @/
|
||||
" call Decho('search for ^\M'.curfile.'.\m: ')
|
||||
" call Decho('search for ^\M'.curfile.'.\mvba: ')
|
||||
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.vba: ')
|
||||
" call Decho('search for ^\M'.curfile.'.\m{vba|vmb}: ')
|
||||
" call Decho('search for ^\M'.curfile.'\m[-0-9.]*\.{vba|vmb}: ')
|
||||
if search('^\M'.curfile."\m: ".'cw')
|
||||
let foundit= 1
|
||||
elseif search('^\M'.curfile.".\mvmb: ",'cw')
|
||||
let foundit= 2
|
||||
elseif search('^\M'.curfile.'\m[-0-9.]*\.vmb: ','cw')
|
||||
let foundit= 2
|
||||
elseif search('^\M'.curfile.".\mvba: ",'cw')
|
||||
let foundit= 1
|
||||
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
|
||||
@@ -433,25 +453,29 @@ fun! vimball#RmVimball(...)
|
||||
let foundit = 0
|
||||
endif
|
||||
if foundit
|
||||
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
|
||||
if foundit == 1
|
||||
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
|
||||
else
|
||||
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vmb: ','','')
|
||||
endif
|
||||
let s:VBRstring= substitute(exestring,'call delete(','','g')
|
||||
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
|
||||
" call Decho("exe ".exestring)
|
||||
silent! keepalt keepjumps exe exestring
|
||||
silent! keepalt keepjumps d
|
||||
sil! keepalt keepjumps exe exestring
|
||||
sil! keepalt keepjumps d
|
||||
let exestring= strlen(substitute(exestring,'call delete(.\{-})|\=',"D","g"))
|
||||
" call Decho("exestring<".exestring.">")
|
||||
echomsg "removed ".exestring." files"
|
||||
else
|
||||
let s:VBRstring= ''
|
||||
let curfile = substitute(curfile,'\.vba','','')
|
||||
let curfile = substitute(curfile,'\.vmb','','')
|
||||
" call Decho("unable to find <".curfile."> in .VimballRecord")
|
||||
if !exists("s:ok_unablefind")
|
||||
call vimball#ShowMesg(s:WARNING,"(RmVimball) unable to find <".curfile."> in .VimballRecord")
|
||||
endif
|
||||
endif
|
||||
silent! keepalt keepjumps g/^\s*$/d
|
||||
silent! keepalt keepjumps wq!
|
||||
sil! keepalt keepjumps g/^\s*$/d
|
||||
sil! keepalt keepjumps wq!
|
||||
let @/= keepsrch
|
||||
endif
|
||||
call s:ChgDir(curdir)
|
||||
@@ -557,9 +581,19 @@ endfun
|
||||
fun! s:ChgDir(newdir)
|
||||
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
|
||||
if (has("win32") || has("win95") || has("win64") || has("win16"))
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
try
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
catch /^Vim\%((\a\+)\)\=:E/
|
||||
call mkdir(fnameescape(substitute(a:newdir,'/','\\','g')))
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
endtry
|
||||
else
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
try
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E/
|
||||
call mkdir(fnameescape(a:newdir))
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
endtry
|
||||
endif
|
||||
" call Dret("ChgDir : curdir<".getcwd().">")
|
||||
endfun
|
||||
@@ -599,7 +633,7 @@ fun! s:RecordInFile(home)
|
||||
let cmd= expand("%:tr").": "
|
||||
" call Decho("cmd<".cmd.">")
|
||||
|
||||
silent! keepalt keepjumps e .VimballRecord
|
||||
sil! keepalt keepjumps e .VimballRecord
|
||||
setlocal ma
|
||||
$
|
||||
if exists("s:recordfile") && exists("s:recorddir")
|
||||
@@ -616,8 +650,8 @@ fun! s:RecordInFile(home)
|
||||
|
||||
" put command into buffer, write .VimballRecord `file
|
||||
keepalt keepjumps put=cmd
|
||||
silent! keepalt keepjumps g/^\s*$/d
|
||||
silent! keepalt keepjumps wq!
|
||||
sil! keepalt keepjumps g/^\s*$/d
|
||||
sil! keepalt keepjumps wq!
|
||||
call s:ChgDir(curdir)
|
||||
|
||||
if exists("s:recorddir")
|
||||
@@ -693,10 +727,11 @@ fun! vimball#SaveSettings()
|
||||
let s:repkeep = &report
|
||||
let s:vekeep = &ve
|
||||
let s:ffkeep = &l:ff
|
||||
let s:swfkeep = &l:swf
|
||||
if exists("&acd")
|
||||
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
|
||||
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
|
||||
else
|
||||
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix
|
||||
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
|
||||
endif
|
||||
" vimballs should be in unix format
|
||||
setlocal ff=unix
|
||||
@@ -732,6 +767,9 @@ fun! vimball#RestoreSettings()
|
||||
" call Dret("RestoreSettings")
|
||||
endfun
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines: {{{1
|
||||
" vim: fdm=marker
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Jul 30, 2008
|
||||
" Version: 22
|
||||
" Date: Jan 17, 2012
|
||||
" Version: 25
|
||||
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
|
||||
" Copyright: Copyright (C) 2005-2012 Charles E. Campbell, Jr. {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
" notice is copied with it. Like anything else that's free,
|
||||
@@ -16,13 +16,19 @@
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
if &cp || exists("g:loaded_zip") || v:version < 700
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v25"
|
||||
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:ERROR = 2
|
||||
let s:WARNING = 1
|
||||
@@ -97,38 +103,26 @@ fun! zip#Browse(zipfile)
|
||||
set ft=tar
|
||||
|
||||
" give header
|
||||
let lastline= line("$")
|
||||
call setline(lastline+1,'" zip.vim version '.g:loaded_zip)
|
||||
call setline(lastline+2,'" Browsing zipfile '.a:zipfile)
|
||||
call setline(lastline+3,'" Select a file with cursor and press ENTER')
|
||||
$put =''
|
||||
0d
|
||||
$
|
||||
call append(0, ['" zip.vim version '.g:loaded_zip,
|
||||
\ '" Browsing zipfile '.a:zipfile,
|
||||
\ '" Select a file with cursor and press ENTER'])
|
||||
keepj $
|
||||
|
||||
" call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
|
||||
exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)
|
||||
exe "keepj sil! r! ".g:zip_unzipcmd." -Z -1 -- ".s:Escape(a:zipfile,1)
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
silent %d
|
||||
keepj sil! %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "r ".fnameescape(a:zipfile)
|
||||
exe "keepj r ".fnameescape(a:zipfile)
|
||||
let &ei= eikeep
|
||||
1d
|
||||
keepj 1d
|
||||
" call Dret("zip#Browse")
|
||||
return
|
||||
endif
|
||||
" call Decho("line 6: ".getline(6))
|
||||
let namecol= stridx(getline(6),'Name') + 1
|
||||
" call Decho("namecol=".namecol)
|
||||
4,$g/^\s*----/d
|
||||
4,$g/^\s*\a/d
|
||||
$d
|
||||
if namecol > 0
|
||||
exe 'silent 4,$s/^.*\%'.namecol.'c//'
|
||||
endif
|
||||
|
||||
setlocal noma nomod ro
|
||||
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
|
||||
@@ -199,11 +193,12 @@ fun! zip#Read(fname,mode)
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("fname <".fname.">")
|
||||
|
||||
" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1))
|
||||
exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
|
||||
" call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1))
|
||||
exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
|
||||
filetype detect
|
||||
|
||||
" cleanup
|
||||
0d
|
||||
keepj 0d
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
|
||||
@@ -1,19 +1,26 @@
|
||||
" Vim compiler file
|
||||
" Compiler: ms C#
|
||||
" Maintainer: Joseph H. Yao (hyao@sina.com)
|
||||
" Last Change: 2004 Mar 27
|
||||
" Compiler: Microsoft Visual Studio C#
|
||||
" Maintainer: Zhou YiChao (broken.zhou@gmail.com)
|
||||
" Previous Maintainer: Joseph H. Yao (hyao@sina.com)
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "cs"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
" default errorformat
|
||||
CompilerSet errorformat&
|
||||
CompilerSet errorformat+=%f(%l\\,%v):\ %t%*[^:]:\ %m,
|
||||
\%trror%*[^:]:\ %m,
|
||||
\%tarning%*[^:]:\ %m
|
||||
|
||||
" default make
|
||||
CompilerSet makeprg=csc\ %
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
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:
|
||||
@@ -15,11 +15,11 @@
|
||||
" Help Page: compiler-decada
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
if (exists("current_compiler") &&
|
||||
\ current_compiler == "decada") ||
|
||||
\ version < 700
|
||||
if (exists("current_compiler") && current_compiler == "decada") || version < 700
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
let current_compiler = "decada"
|
||||
|
||||
@@ -44,6 +44,9 @@ endif
|
||||
execute "CompilerSet makeprg=" . escape (g:decada.Make_Command, ' ')
|
||||
execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ')
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
finish " 1}}}
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
13
runtime/compiler/erlang.vim
Normal file
13
runtime/compiler/erlang.vim
Normal file
@@ -0,0 +1,13 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Erlang
|
||||
" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
|
||||
" Last Change: 2012-02-13
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "erlang"
|
||||
|
||||
CompilerSet makeprg=erlc\ -Wall\ %
|
||||
|
||||
CompilerSet errorformat=%f:%l:\ %m
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Language: eRuby
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Info: $Id: eruby.vim,v 1.7 2008/06/29 04:18:42 tpope Exp $
|
||||
" Last Change: 2008 Aug 1
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
28
runtime/compiler/g95.vim
Normal file
28
runtime/compiler/g95.vim
Normal file
@@ -0,0 +1,28 @@
|
||||
" Compiler: G95
|
||||
" Maintainer: H Xu <xuhdev@gmail.com>
|
||||
" Version: 0.1.3
|
||||
" Last Change: 2012 Apr 30
|
||||
" 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'
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
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%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: GNU C Compiler
|
||||
" Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2009-05-01
|
||||
" Latest Revision: 2010-10-14
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -9,7 +9,7 @@ endif
|
||||
let current_compiler = "gcc"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
|
||||
@@ -18,7 +18,11 @@ CompilerSet errorformat=
|
||||
\\"%f\"%*\\D%l:\ %m,
|
||||
\%-G%f:%l:\ %trror:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,
|
||||
\%-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\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
||||
|
||||
27
runtime/compiler/gfortran.vim
Normal file
27
runtime/compiler/gfortran.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
" Compiler: GNU Fortran Compiler
|
||||
" Maintainer: H Xu <xuhdev@gmail.com>
|
||||
" Version: 0.1.3
|
||||
" Last Change: 2012 Apr 30
|
||||
" 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'
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
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%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
@@ -17,11 +17,11 @@
|
||||
" Help Page: compiler-gnat
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
if (exists("current_compiler") &&
|
||||
\ current_compiler == "gnat") ||
|
||||
\ version < 700
|
||||
if (exists("current_compiler")&& current_compiler == "gnat") || version < 700
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
let current_compiler = "gnat"
|
||||
|
||||
@@ -62,6 +62,9 @@ endif
|
||||
execute "CompilerSet makeprg=" . escape (g:gnat.Get_Command('Make'), ' ')
|
||||
execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ')
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
finish " 1}}}
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Compiler: HP aCC
|
||||
" Maintainer: Matthias Ulrich <matthias-ulrich@web.de>
|
||||
" URL: http://www.subhome.de/vim/hp_acc.vim
|
||||
" Last Change: 2005 Nov 19
|
||||
" Last Change: 2012 Apr 30
|
||||
"
|
||||
" aCC --version says: "HP ANSI C++ B3910B A.03.13"
|
||||
" This compiler has been tested on:
|
||||
@@ -19,6 +19,8 @@ if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "hp_acc"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -30,4 +32,7 @@ CompilerSet errorformat=%A%trror\ %n\:\ \"%f\"\\,\ line\ %l\ \#\ %m,
|
||||
\%Z\ \ \ \ %p^%.%#,
|
||||
\%-C%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" vim:ts=8:sw=4:cindent
|
||||
|
||||
27
runtime/compiler/ifort.vim
Normal file
27
runtime/compiler/ifort.vim
Normal file
@@ -0,0 +1,27 @@
|
||||
" Compiler: Intel Fortran Compiler
|
||||
" Maintainer: H Xu <xuhdev@gmail.com>
|
||||
" Version: 0.1.1
|
||||
" Last Change: 2012 Apr 30
|
||||
" 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'
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
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%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
@@ -1,12 +1,14 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Intel C++ 7.1
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2004 May 16
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "intel"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -19,3 +21,6 @@ CompilerSet errorformat=%E%f(%l):\ error:\ %m,
|
||||
\%-Z\ \ %p^,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 5.3 cc
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2004 Mar 27
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "irix5_c"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -19,3 +21,6 @@ CompilerSet errorformat=\%Ecfe:\ Error:\ %f\\,\ line\ %l:\ %m,
|
||||
\%-Z\ %p^,
|
||||
\-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 5.3 CC or NCC
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2004 Mar 27
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "irix5_cpp"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -19,3 +21,6 @@ CompilerSet errorformat=%E\"%f\"\\,\ line\ %l:\ error(%n):\ ,
|
||||
\%-Z\ \ %p%^,
|
||||
\%+C\ %\\{10}%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 6.5 MIPS C (cc)
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2004 Mar 27
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "mips_c"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -19,3 +21,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
|
||||
\%-Z\ \ %p^,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 6.5 MIPSPro C (c89)
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2004 Mar 27
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "mipspro_c89"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -20,3 +22,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
|
||||
\%+C\ \ %m,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 6.5 MIPSPro C++ (CC)
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2004 Mar 27
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "mipspro_cpp"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -19,3 +21,6 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
|
||||
\%-Z\ \ %p^,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim Compiler File
|
||||
" 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
|
||||
|
||||
if exists("current_compiler")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Language: RSpec
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
|
||||
" Info: $Id: rspec.vim,v 1.2 2008/06/29 04:18:42 tpope Exp $
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2009 Dec 22
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
@@ -9,7 +9,7 @@ endif
|
||||
let current_compiler = "rst"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
set cpo&vim
|
||||
|
||||
setlocal errorformat=
|
||||
\%f:%l:\ (%tEBUG/0)\ %m,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Ruby
|
||||
" Function: Syntax check and/or error reporting
|
||||
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
|
||||
" Info: $Id: ruby.vim,v 1.13 2008/06/29 04:18:43 tpope Exp $
|
||||
" Last Change: 2008 Aug 1
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Language: Test::Unit - Ruby Unit Testing Framework
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Info: $Id: rubyunit.vim,v 1.12 2008/06/29 04:18:43 tpope Exp $
|
||||
" Last Change: 2008 Aug 1
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TeX
|
||||
" Maintainer: Artem Chuprina <ran@ran.pp.ru>
|
||||
" Last Change: 2004 Mar 27
|
||||
" Last Change: 2012 Apr 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
@@ -30,9 +32,6 @@ else
|
||||
let current_compiler = 'make'
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
" Value errorformat are taken from vim help, see :help errorformat-LaTeX, with
|
||||
" addition from Srinath Avadhanula <srinath@fastmail.fm>
|
||||
CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
|
||||
@@ -64,5 +63,5 @@ CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
|
||||
\%+Q%*[^()])%r,
|
||||
\%+Q[%\\d%*[^()])%r
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -37,8 +37,10 @@ DOCS = \
|
||||
hangulin.txt \
|
||||
hebrew.txt \
|
||||
help.txt \
|
||||
helphelp.txt \
|
||||
howto.txt \
|
||||
if_cscop.txt \
|
||||
if_lua.txt \
|
||||
if_mzsch.txt \
|
||||
if_ole.txt \
|
||||
if_perl.txt \
|
||||
@@ -167,8 +169,10 @@ HTMLS = \
|
||||
gui_x11.html \
|
||||
hangulin.html \
|
||||
hebrew.html \
|
||||
helphelp.html \
|
||||
howto.html \
|
||||
if_cscop.html \
|
||||
if_lua.html \
|
||||
if_mzsch.html \
|
||||
if_ole.html \
|
||||
if_perl.html \
|
||||
@@ -336,12 +340,14 @@ uganda.nsis.txt: uganda.txt
|
||||
uganda.txt | uniq >uganda.nsis.txt
|
||||
|
||||
# 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
|
||||
|
||||
noerrors:
|
||||
-rm -f errors.log
|
||||
|
||||
$(HTMLS): tags.ref
|
||||
|
||||
.txt.html:
|
||||
$(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
|
||||
@@ -146,7 +146,7 @@ o Enable Arabic settings [short-cut]
|
||||
:set arabic
|
||||
<
|
||||
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:
|
||||
|
||||
1. set the appropriate keymap
|
||||
@@ -275,7 +275,7 @@ o Keyboard
|
||||
+ CTRL-^ in insert/replace mode toggles between Arabic/Latin mode
|
||||
|
||||
+ Keyboard mapping is based on the Microsoft's Arabic keymap (the
|
||||
defacto standard in the Arab world):
|
||||
de facto standard in the Arab world):
|
||||
|
||||
+---------------------------------------------------------------------+
|
||||
|! |@ |# |$ |% |^ |& |* |( |) |_ |+ || |~ ّ |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.2. Last change: 2009 Nov 25
|
||||
*autocmd.txt* For Vim version 7.3. Last change: 2012 Jul 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
|
||||
features, such as editing compressed files (see |gzip-example|). The usual
|
||||
place to put autocommands is in your .vimrc or .exrc file.
|
||||
|
||||
*E203* *E204* *E143*
|
||||
*E203* *E204* *E143* *E855*
|
||||
WARNING: Using autocommands is very powerful, and may lead to unexpected side
|
||||
effects. Be careful not to destroy your text.
|
||||
- It's a good idea to do some testing on an expendable copy of a file first.
|
||||
@@ -299,6 +299,8 @@ Name triggered by ~
|
||||
|InsertEnter| starting Insert mode
|
||||
|InsertChange| when typing <Insert> while in Insert or Replace mode
|
||||
|InsertLeave| when leaving Insert mode
|
||||
|InsertCharPre| when a character was typed in Insert mode, before
|
||||
inserting it
|
||||
|
||||
|ColorScheme| after loading a color scheme
|
||||
|
||||
@@ -383,6 +385,10 @@ BufRead or BufReadPost When starting to edit a new buffer, after
|
||||
This does NOT work for ":r file". Not used
|
||||
when the file doesn't exist. Also used after
|
||||
successfully recovering a file.
|
||||
Also triggered for the filetypedetect group
|
||||
when executing ":filetype detect" and when
|
||||
writing an unnamed buffer in a way that the
|
||||
buffer gets a name.
|
||||
*BufReadCmd*
|
||||
BufReadCmd Before starting to edit a new buffer. Should
|
||||
read the file into the buffer. |Cmd-event|
|
||||
@@ -401,6 +407,8 @@ BufUnload Before unloading a buffer. This is when the
|
||||
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 After a buffer is displayed in a window. This
|
||||
can be when the buffer is loaded (after
|
||||
@@ -422,6 +430,8 @@ BufWinLeave Before a buffer is removed from a window.
|
||||
NOTE: When this autocommand is executed, the
|
||||
current buffer "%" may be different from the
|
||||
buffer being unloaded "<afile>".
|
||||
When exiting and v:dying is 2 or more this
|
||||
event is not triggered.
|
||||
*BufWipeout*
|
||||
BufWipeout Before completely deleting a buffer. The
|
||||
BufUnload and BufDelete events may be called
|
||||
@@ -442,6 +452,9 @@ BufWriteCmd Before writing the whole buffer to a file.
|
||||
'modified' if successful, unless '+' is in
|
||||
'cpo' and writing to another file |cpo-+|.
|
||||
The buffer contents should not be changed.
|
||||
When the command resets 'modified' the undo
|
||||
information is adjusted to mark older undo
|
||||
states as 'modified', like |:write| does.
|
||||
|Cmd-event|
|
||||
*BufWritePost*
|
||||
BufWritePost After writing the whole buffer to a file
|
||||
@@ -465,6 +478,11 @@ CmdwinLeave Before leaving the command-line window.
|
||||
*ColorScheme*
|
||||
ColorScheme After loading a color scheme. |:colorscheme|
|
||||
|
||||
*CompleteDone*
|
||||
CompleteDone After Insert mode completion is done. Either
|
||||
when something was completed or abandoning
|
||||
completion. |ins-completion|
|
||||
|
||||
*CursorHold*
|
||||
CursorHold When the user doesn't press a key for the time
|
||||
specified with 'updatetime'. Not re-triggered
|
||||
@@ -502,6 +520,7 @@ CursorMoved After the cursor was moved in Normal mode.
|
||||
not expect or that is slow.
|
||||
*CursorMovedI*
|
||||
CursorMovedI After the cursor was moved in Insert mode.
|
||||
Not triggered when the popup menu is visible.
|
||||
Otherwise the same as CursorMoved.
|
||||
*EncodingChanged*
|
||||
EncodingChanged Fires off after the 'encoding' option has been
|
||||
@@ -653,6 +672,17 @@ InsertChange When typing <Insert> while in Insert or
|
||||
indicates the new mode.
|
||||
Be careful not to move the cursor or do
|
||||
anything else that the user does not expect.
|
||||
*InsertCharPre*
|
||||
InsertCharPre When a character is typed in Insert mode,
|
||||
before inserting the char.
|
||||
The |v:char| variable indicates the char typed
|
||||
and can be changed during the event to insert
|
||||
a different character. When |v:char| is set
|
||||
to more than one character this text is
|
||||
inserted literally.
|
||||
It is not allowed to change the text |textlock|.
|
||||
The event is not triggered when 'paste' is
|
||||
set.
|
||||
*InsertEnter*
|
||||
InsertEnter Just before starting Insert mode. Also for
|
||||
Replace mode and Virtual Replace mode. The
|
||||
@@ -678,10 +708,13 @@ MenuPopup Just before showing the popup menu (under the
|
||||
QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||
|:lmake|, |:grep|, |:lgrep|, |:grepadd|,
|
||||
|:lgrepadd|, |:vimgrep|, |:lvimgrep|,
|
||||
|:vimgrepadd|, |:lvimgrepadd|). The pattern is
|
||||
matched against the command being run. When
|
||||
|:grep| is used but 'grepprg' is set to
|
||||
"internal" it still matches "grep".
|
||||
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|
||||
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|
||||
|:lgetfile|, |:laddfile|, |:helpgrep|,
|
||||
|:lhelpgrep|).
|
||||
The pattern is matched against the command
|
||||
being run. When |:grep| is used but 'grepprg'
|
||||
is set to "internal" it still matches "grep".
|
||||
This command cannot be used to set the
|
||||
'makeprg' and 'grepprg' variables.
|
||||
If this command causes an error, the quickfix
|
||||
@@ -689,7 +722,16 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||
*QuickFixCmdPost*
|
||||
QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
|
||||
command is run, before jumping to the first
|
||||
location. See |QuickFixCmdPost-example|.
|
||||
location. For |:cfile| and |:lfile| commands
|
||||
it is run after error file is read and before
|
||||
moving to the first error.
|
||||
See |QuickFixCmdPost-example|.
|
||||
*QuitPre*
|
||||
QuitPre When using `:quit`, before deciding whether it
|
||||
closes the current window or quits Vim. Can
|
||||
be used to close any non-essential window if
|
||||
the current window is the last ordinary
|
||||
window.
|
||||
*RemoteReply*
|
||||
RemoteReply When a reply from a Vim that functions as
|
||||
server was received |server2client()|. The
|
||||
@@ -782,7 +824,10 @@ TermChanged After the value of 'term' has changed. Useful
|
||||
TermResponse After the response to |t_RV| is received from
|
||||
the terminal. The value of |v:termresponse|
|
||||
can be used to do things depending on the
|
||||
terminal version.
|
||||
terminal version. Note that this event may be
|
||||
triggered halfway executing another event,
|
||||
especially if file I/O, a shell command or
|
||||
anything else that takes time is involved.
|
||||
*User*
|
||||
User Never executed automatically. To be used for
|
||||
autocommands that are only executed with
|
||||
@@ -799,6 +844,8 @@ VimLeave Before exiting Vim, just after writing the
|
||||
.viminfo file. Executed only once, like
|
||||
VimLeavePre.
|
||||
To detect an abnormal exit use |v:dying|.
|
||||
When v:dying is 2 or more this event is not
|
||||
triggered.
|
||||
*VimLeavePre*
|
||||
VimLeavePre Before exiting Vim, just before writing the
|
||||
.viminfo file. This is executed only once,
|
||||
@@ -807,6 +854,8 @@ VimLeavePre Before exiting Vim, just before writing the
|
||||
Mostly useful with a "*" pattern. >
|
||||
:autocmd VimLeavePre * call CleanupStuff()
|
||||
< To detect an abnormal exit use |v:dying|.
|
||||
When v:dying is 2 or more this event is not
|
||||
triggered.
|
||||
*VimResized*
|
||||
VimResized After the Vim window was resized, thus 'lines'
|
||||
and/or 'columns' changed. Not when starting
|
||||
@@ -1024,7 +1073,7 @@ Note that the 'eventignore' option applies here too. Events listed in this
|
||||
option will not cause any commands to be executed.
|
||||
|
||||
*:do* *:doau* *:doautocmd* *E217*
|
||||
:do[autocmd] [group] {event} [fname]
|
||||
:do[autocmd] [<nomodeline>] [group] {event} [fname]
|
||||
Apply the autocommands matching [fname] (default:
|
||||
current file name) for {event} to the current buffer.
|
||||
You can use this when the current file name does not
|
||||
@@ -1033,8 +1082,8 @@ option will not cause any commands to be executed.
|
||||
It's possible to use this inside an autocommand too,
|
||||
so you can base the autocommands for one extension on
|
||||
another extension. Example: >
|
||||
:au Bufenter *.cpp so ~/.vimrc_cpp
|
||||
:au Bufenter *.cpp doau BufEnter x.c
|
||||
:au BufEnter *.cpp so ~/.vimrc_cpp
|
||||
:au BufEnter *.cpp doau BufEnter x.c
|
||||
< Be careful to avoid endless loops. See
|
||||
|autocmd-nested|.
|
||||
|
||||
@@ -1043,14 +1092,17 @@ option will not cause any commands to be executed.
|
||||
argument is included, Vim executes only the matching
|
||||
autocommands for that group. Note: if you use an
|
||||
undefined group name, Vim gives you an error message.
|
||||
|
||||
*<nomodeline>*
|
||||
After applying the autocommands the modelines are
|
||||
processed, so that their settings overrule the
|
||||
settings from autocommands, like what happens when
|
||||
editing a file.
|
||||
editing a file. This is skipped when the <nomodeline>
|
||||
argument is present. You probably want to use
|
||||
<nomodeline> for events that are not used when loading
|
||||
a buffer, such as |User|.
|
||||
|
||||
*:doautoa* *:doautoall*
|
||||
:doautoa[ll] [group] {event} [fname]
|
||||
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
|
||||
Like ":doautocmd", but apply the autocommands to each
|
||||
loaded buffer. Note that [fname] is used to select
|
||||
the autocommands, not the buffers to which they are
|
||||
@@ -1272,7 +1324,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
|
||||
used, zero otherwise.
|
||||
|
||||
See the $VIMRUNTIME/plugin/netrw.vim for examples.
|
||||
See the $VIMRUNTIME/plugin/netrwPlugin.vim for examples.
|
||||
|
||||
==============================================================================
|
||||
11. Disabling autocommands *autocmd-disable*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.2. Last change: 2009 Nov 11
|
||||
*change.txt* For Vim version 7.3. Last change: 2012 Jun 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -71,7 +71,7 @@ For inserting text see |insert.txt|.
|
||||
"D" deletes the highlighted text plus all text until
|
||||
the end of the line. {not in Vi}
|
||||
|
||||
*:d* *:de* *:del* *:delete*
|
||||
*:d* *:de* *:del* *:delete* *:dl*
|
||||
:[range]d[elete] [x] Delete [range] lines (default: current line) [into
|
||||
register x].
|
||||
|
||||
@@ -80,15 +80,16 @@ For inserting text see |insert.txt|.
|
||||
(default: current line |cmdline-ranges|) [into
|
||||
register x].
|
||||
|
||||
These commands delete text. You can repeat them with the "." command
|
||||
(except ":d") and undo them. Use Visual mode to delete blocks of text. See
|
||||
These commands delete text. You can repeat them with the `.` command
|
||||
(except `:d`) and undo them. Use Visual mode to delete blocks of text. See
|
||||
|registers| for an explanation of registers.
|
||||
|
||||
An exception for the d{motion} command: If the motion is not linewise, the
|
||||
start and end of the motion are not in the same line, and there are only
|
||||
blanks before the start and after the end of the motion, the delete becomes
|
||||
linewise. This means that the delete also removes the line of blanks that you
|
||||
might expect to remain.
|
||||
might expect to remain. Use the |o_v| operator to force the motion to be
|
||||
characterwise.
|
||||
|
||||
Trying to delete an empty region of text (e.g., "d0" in the first column)
|
||||
is an error when 'cpoptions' includes the 'E' flag.
|
||||
@@ -131,7 +132,7 @@ gJ Join [count] lines, with a minimum of two lines.
|
||||
See |ex-flags| for [flags].
|
||||
|
||||
These commands delete the <EOL> between lines. This has the effect of joining
|
||||
multiple lines into one line. You can repeat these commands (except ":j") and
|
||||
multiple lines into one line. You can repeat these commands (except `:j`) and
|
||||
undo them.
|
||||
|
||||
These commands, except "gJ", insert one space in place of the <EOL> unless
|
||||
@@ -159,7 +160,7 @@ gR Enter Virtual Replace mode: Each character you type
|
||||
<Tab> may replace several characters at once.
|
||||
Repeat the entered text [count]-1 times. See
|
||||
|Virtual-Replace-mode| for more details.
|
||||
{not available when compiled without the +vreplace
|
||||
{not available when compiled without the |+vreplace|
|
||||
feature}
|
||||
|
||||
*c*
|
||||
@@ -259,6 +260,12 @@ r{char} Replace the character under the cursor with {char}.
|
||||
<CR>. CTRL-V <NL> replaces with a <Nul>.
|
||||
{Vi: CTRL-V <CR> still replaces with a line break,
|
||||
cannot replace something with a <CR>}
|
||||
|
||||
If {char} is CTRL-E or CTRL-Y the character from the
|
||||
line below or above is used, just like with |i_CTRL-E|
|
||||
and |i_CTRL-Y|. This also works with a count, thus
|
||||
`10r<C-E>` copies 10 characters from the line below.
|
||||
|
||||
If you give a [count], Vim replaces [count] characters
|
||||
with [count] {char}s. When {char} is a <CR> or <NL>,
|
||||
however, Vim inserts only one <CR>: "5r<CR>" replaces
|
||||
@@ -279,7 +286,7 @@ gr{char} Replace the virtual characters under the cursor with
|
||||
space. See |gR| and |Virtual-Replace-mode| for more
|
||||
details. As with |r| a count may be given.
|
||||
{char} can be entered like with |r|.
|
||||
{not available when compiled without the +vreplace
|
||||
{not available when compiled without the |+vreplace|
|
||||
feature}
|
||||
|
||||
*digraph-arg*
|
||||
@@ -464,9 +471,9 @@ much as possible to make the indent. You can use ">><<" to replace an indent
|
||||
made out of spaces with the same indent made out of <Tab>s (and a few spaces
|
||||
if necessary). If the 'expandtab' option is on, Vim uses only spaces. Then
|
||||
you can use ">><<" to replace <Tab>s in the indent by spaces (or use
|
||||
":retab!").
|
||||
`:retab!`).
|
||||
|
||||
To move a line several 'shiftwidth's, use Visual mode or the ":" commands.
|
||||
To move a line several 'shiftwidth's, use Visual mode or the `:` commands.
|
||||
For example: >
|
||||
Vjj4> move three lines 4 indents to the right
|
||||
:<<< move current line 3 indents to the left
|
||||
@@ -486,7 +493,7 @@ Examples of filters are "sort", which sorts lines alphabetically, and
|
||||
works like a filter; not all versions do). The 'shell' option specifies the
|
||||
shell Vim uses to execute the filter command (See also the 'shelltype'
|
||||
option). You can repeat filter commands with ".". Vim does not recognize a
|
||||
comment (starting with '"') after the ":!" command.
|
||||
comment (starting with '"') after the `:!` command.
|
||||
|
||||
*!*
|
||||
!{motion}{filter} Filter {motion} text lines through the external
|
||||
@@ -522,11 +529,11 @@ comment (starting with '"') after the ":!" command.
|
||||
={motion} Filter {motion} lines through the external program
|
||||
given with the 'equalprg' option. When the 'equalprg'
|
||||
option is empty (this is the default), use the
|
||||
internal formatting function |C-indenting|. But when
|
||||
'indentexpr' is not empty, it will be used instead
|
||||
|indent-expression|. When Vim was compiled without
|
||||
internal formatting then the "indent" program is used
|
||||
as a last resort.
|
||||
internal formatting function |C-indenting| and
|
||||
|'lisp'|. But when 'indentexpr' is not empty, it will
|
||||
be used instead |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}.
|
||||
@@ -573,34 +580,34 @@ For other systems the tmpnam() library function is used.
|
||||
Repeat last :substitute with same search pattern and
|
||||
substitute string, but without the same flags. You
|
||||
may add [flags], see |:s_flags|.
|
||||
Note that after ":substitute" the '&' flag can't be
|
||||
Note that after `:substitute` the '&' flag can't be
|
||||
used, it's recognized as a pattern separator.
|
||||
The space between ":substitute" and the 'c', 'g' and
|
||||
The space between `:substitute` and the 'c', 'g' and
|
||||
'r' flags isn't required, but in scripts it's a good
|
||||
idea to keep it to avoid confusion.
|
||||
|
||||
:[range]~[&][flags] [count] *:~*
|
||||
Repeat last substitute with same substitute string
|
||||
but with last used search pattern. This is like
|
||||
":&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
|
||||
actually work differently. You can use ":&&" to keep
|
||||
actually work differently. You can use `:&&` to keep
|
||||
the flags.
|
||||
|
||||
*g&*
|
||||
g& Synonym for ":%s//~/&" (repeat last substitute on all
|
||||
g& Synonym for `:%s//~/&` (repeat last substitute on all
|
||||
lines with the same flags).
|
||||
Mnemonic: global substitute. {not in Vi}
|
||||
|
||||
*:snomagic* *:sno*
|
||||
:[range]sno[magic] ... Same as ":substitute", but always use 'nomagic'.
|
||||
:[range]sno[magic] ... Same as `:substitute`, but always use 'nomagic'.
|
||||
{not in Vi}
|
||||
|
||||
*:smagic* *:sm*
|
||||
:[range]sm[agic] ... Same as ":substitute", but always use 'magic'.
|
||||
:[range]sm[agic] ... Same as `:substitute`, but always use 'magic'.
|
||||
{not in Vi}
|
||||
|
||||
*:s_flags*
|
||||
@@ -610,7 +617,7 @@ The flags that you can use for the substitute commands:
|
||||
command. Examples: >
|
||||
:&&
|
||||
:s/this/that/&
|
||||
< Note that ":s" and ":&" don't keep the flags.
|
||||
< Note that `:s` and `:&` don't keep the flags.
|
||||
{not in Vi}
|
||||
|
||||
[c] Confirm each substitution. Vim highlights the matching string (with
|
||||
@@ -622,9 +629,9 @@ The flags that you can use for the substitute commands:
|
||||
'a' to substitute this and all remaining matches {not in Vi}
|
||||
'q' to quit substituting {not in Vi}
|
||||
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
|
||||
compiled without the +insert_expand feature}
|
||||
compiled without the |+insert_expand| feature}
|
||||
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
|
||||
search pattern.
|
||||
@@ -666,14 +673,14 @@ The flags that you can use for the substitute commands:
|
||||
|
||||
[l] Like [p] but print the text like |:list|.
|
||||
|
||||
[r] Only useful in combination with ":&" or ":s" without arguments. ":&r"
|
||||
works the same way as ":~": When the search pattern is empty, use the
|
||||
[r] Only useful in combination with `:&` or `:s` without arguments. `:&r`
|
||||
works the same way as `:~`: When the search pattern is empty, use the
|
||||
previously used search pattern instead of the search pattern from the
|
||||
last substitute or ":global". If the last command that did a search
|
||||
was a substitute or ":global", there is no effect. If the last
|
||||
last substitute or `:global`. If the last command that did a search
|
||||
was a substitute or `:global`, there is no effect. If the last
|
||||
command was a search command such as "/", use the pattern from that
|
||||
command.
|
||||
For ":s" with an argument this already happens: >
|
||||
For `:s` with an argument this already happens: >
|
||||
:s/blue/red/
|
||||
/green
|
||||
:s//red/ or :~ or :&r
|
||||
@@ -690,8 +697,9 @@ 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!
|
||||
|
||||
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
|
||||
command uses the pattern from the last substitute, ":global", or search
|
||||
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.
|
||||
|
||||
If the {string} is omitted the substitute is done as if it's empty. Thus the
|
||||
@@ -716,11 +724,13 @@ Otherwise it works on whole lines anyway.
|
||||
|
||||
*sub-replace-special* *:s\=*
|
||||
When the {string} starts with "\=" it is evaluated as an expression, see
|
||||
|sub-replace-expression|. You can use that for any special characters.
|
||||
|sub-replace-expression|. You can use that for complex replacement or special
|
||||
characters.
|
||||
|
||||
Otherwise these characters in {string} have a special meaning:
|
||||
*:s%*
|
||||
When {string} is equal to "%" and '/' is included with the 'cpoptions' option,
|
||||
then the {string} of the previous substitute command is used. |cpo-/|
|
||||
then the {string} of the previous substitute command is used, see |cpo-/|
|
||||
|
||||
magic nomagic action ~
|
||||
& \& replaced with the whole matched pattern *s/\&*
|
||||
@@ -755,6 +765,14 @@ magic nomagic action ~
|
||||
\x where x is any character not mentioned above:
|
||||
Reserved for future expansion
|
||||
|
||||
The special meaning is also used inside the third argument {sub} of
|
||||
the |substitute()| function with the following exceptions:
|
||||
- A % inserts a percent literally without regard to 'cpoptions'.
|
||||
- magic is always set without regard to 'magic'.
|
||||
- A ~ inserts a tilde literally.
|
||||
- <CR> and \r inserts a carriage-return (CTRL-M).
|
||||
- \<CR> does not have a special meaning. it's just one of \x.
|
||||
|
||||
Examples: >
|
||||
:s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx"
|
||||
:s/\([abc]\)\([efg]\)/\2\1/g modifies "af fa bg" to "fa fa gb"
|
||||
@@ -786,17 +804,19 @@ either the first or second pattern in parentheses did not match, so either
|
||||
Substitute with an expression *sub-replace-expression*
|
||||
*sub-replace-\=*
|
||||
When the substitute string starts with "\=" the remainder is interpreted as an
|
||||
expression. This does not work recursively: a substitute() function inside
|
||||
expression. This does not work recursively: a |substitute()| function inside
|
||||
the expression cannot use "\=" for the substitute string.
|
||||
|
||||
The special meaning for characters as mentioned at |sub-replace-special| does
|
||||
not apply except for "<CR>", "\<CR>" and "\\". Thus in the result of the
|
||||
expression you need to use two backslashes to get one, put a backslash before a
|
||||
<CR> you want to insert, and use a <CR> without a backslash where you want to
|
||||
break the line.
|
||||
not apply except for "<CR>". A <NL> character is used as a line break, you
|
||||
can get one with a double-quote string: "\n". Prepend a backslash to get a
|
||||
real <NL> character (which will be a NUL in the file).
|
||||
|
||||
For convenience a <NL> character is also used as a line break. Prepend a
|
||||
backslash to get a real <NL> character (which will be a NUL in the file).
|
||||
The "\=" notation can also be used inside the third argument {sub} of
|
||||
|substitute()| function. In this case, the special meaning for characters as
|
||||
mentioned at |sub-replace-special| does not apply at all. Especially, <CR> and
|
||||
<NL> are interpreted not as a line break but as a carriage-return and a
|
||||
new-line respectively.
|
||||
|
||||
When the result is a |List| then the items are joined with separating line
|
||||
breaks. Thus each item becomes a line, except that they can contain line
|
||||
@@ -834,7 +854,7 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
|
||||
|
||||
|
||||
4.4 Changing tabs *change-tabs*
|
||||
*:ret* *:retab*
|
||||
*:ret* *:retab* *:retab!*
|
||||
:[range]ret[ab][!] [new_tabstop]
|
||||
Replace all sequences of white-space containing a
|
||||
<Tab> with new strings of white-space using the new
|
||||
@@ -853,7 +873,7 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
|
||||
Careful: This command modifies any <Tab> characters
|
||||
inside of strings in a C program. Use "\t" to avoid
|
||||
this (that's a good habit anyway).
|
||||
":retab!" may also change a sequence of spaces by
|
||||
`:retab!` may also change a sequence of spaces by
|
||||
<Tab> characters, which can mess up a printf().
|
||||
{not in Vi}
|
||||
Not available when |+ex_extra| feature was disabled at
|
||||
@@ -916,8 +936,10 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
{Visual}["x]Y Yank the highlighted lines [into register x] (for
|
||||
{Visual} see |Visual-mode|). {not in Vi}
|
||||
|
||||
*:y* *:yank*
|
||||
:[range]y[ank] [x] Yank [range] lines [into register x].
|
||||
*:y* *:yank* *E850*
|
||||
:[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the
|
||||
"* or "+ registers is possible only when the
|
||||
|+clipboard| feature is included.
|
||||
|
||||
:[range]y[ank] [x] {count}
|
||||
Yank {count} lines, starting with last line number
|
||||
@@ -961,8 +983,12 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
current line). This always works |linewise|, thus
|
||||
this command can be used to put a yanked block as new
|
||||
lines.
|
||||
The cursor is left on the first non-blank in the last
|
||||
new line.
|
||||
If no register is specified, it depends on the 'cb'
|
||||
option: If 'cb' contains "unnamedplus", paste from the
|
||||
+ register |quoteplus|. Otherwise, if 'cb' contains
|
||||
"unnamed", paste from the * register |quotestar|.
|
||||
Otherwise, paste from the unnamed register
|
||||
|quote_quote|.
|
||||
The register can also be '=' followed by an optional
|
||||
expression. The expression continues until the end of
|
||||
the command. You need to escape the '|' and '"'
|
||||
@@ -1139,7 +1165,7 @@ characters. If the String ends in a <NL>, it is regarded as a linewise
|
||||
register. {not in Vi}
|
||||
|
||||
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
|
||||
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}
|
||||
@@ -1167,7 +1193,7 @@ nothing is returned. {not in Vi}
|
||||
|
||||
9. Last search pattern register "/ *quote_/* *quote/*
|
||||
Contains the most recent search-pattern. This is used for "n" and 'hlsearch'.
|
||||
It is writable with ":let", you can change it to have 'hlsearch' highlight
|
||||
It is writable with `:let`, you can change it to have 'hlsearch' highlight
|
||||
other matches without actually searching. You can't yank or delete into this
|
||||
register. The search direction is available in |v:searchforward|.
|
||||
Note that the valued is restored when returning from a function
|
||||
@@ -1175,12 +1201,12 @@ Note that the valued is restored when returning from a function
|
||||
{not in Vi}
|
||||
|
||||
*@/*
|
||||
You can write to a register with a ":let" command |:let-@|. Example: >
|
||||
You can write to a register with a `:let` command |:let-@|. Example: >
|
||||
:let @/ = "the"
|
||||
|
||||
If you use a put command without specifying a register, Vim uses the register
|
||||
that was last filled (this is also the contents of the unnamed register). If
|
||||
you are confused, use the ":dis" command to find out what Vim will put (this
|
||||
you are confused, use the `:dis` command to find out what Vim will put (this
|
||||
command displays all named and numbered registers; the unnamed register is
|
||||
labelled '"').
|
||||
|
||||
@@ -1245,7 +1271,8 @@ gq{motion} Format the lines that {motion} moves over.
|
||||
:nnoremap Q gq
|
||||
|
||||
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*
|
||||
{Visual}gq Format the highlighted text. (for {Visual} see
|
||||
@@ -1386,16 +1413,19 @@ before typing anything else on the new line. This will replace the
|
||||
middle-comment leader with the end-comment leader and apply any specified
|
||||
alignment, leaving just " */". There is no need to hit BackSpace first.
|
||||
|
||||
When there is a match with a middle part, but there also is a maching end part
|
||||
which is longer, the end part is used. This makes a C style comment work
|
||||
without requiring the middle part to end with a space.
|
||||
|
||||
Here is an example of alignment flags at work to make a comment stand out
|
||||
(kind of looks like a 1 too). Consider comment string >
|
||||
sr:/***,m:**,ex2:******/
|
||||
|
||||
/***
|
||||
**<--right aligned from "r" flag
|
||||
**
|
||||
offset 2 spaces from the "2" flag--->**
|
||||
******/
|
||||
(kind of looks like a 1 too). Consider comment string: >
|
||||
:set comments=sr:/***,m:**,ex-2:******/
|
||||
<
|
||||
/*** ~
|
||||
**<--right aligned from "r" flag ~
|
||||
** ~
|
||||
offset 2 spaces for the "-2" flag--->** ~
|
||||
******/ ~
|
||||
In this case, the first comment was typed, then return was pressed 4 times,
|
||||
then "/" was pressed to end the comment.
|
||||
|
||||
@@ -1413,8 +1443,8 @@ Reindenting using a different method like |gq| or |=| will not consult
|
||||
alignment flags either. The same behaviour can be defined in those other
|
||||
formatting options. One consideration is that 'cindent' has additional options
|
||||
for context based indenting of comments but cannot replicate many three piece
|
||||
indent alignments. However, 'indentexpr' is has the ability to work better
|
||||
with three piece comments.
|
||||
indent alignments. However, 'indentexpr' has the ability to work better with
|
||||
three piece comments.
|
||||
|
||||
Other examples: >
|
||||
"b:*" Includes lines starting with "*", but not if the "*" is
|
||||
@@ -1472,6 +1502,7 @@ n When formatting text, recognize numbered lists. This actually uses
|
||||
first line of a paragraph
|
||||
second line of the same paragraph
|
||||
third line.
|
||||
< This also works inside comments, ignoring the comment leader.
|
||||
v Vi-compatible auto-wrapping in insert mode: Only break a line at a
|
||||
blank that you have entered during the current insert command. (Note:
|
||||
this is not 100% Vi compatible. Vi has some "unexpected features" or
|
||||
@@ -1492,6 +1523,12 @@ B When joining lines, don't insert a space between two multi-byte
|
||||
characters. Overruled by the 'M' flag.
|
||||
1 Don't break a line after a one-letter word. It's broken before it
|
||||
instead (if possible).
|
||||
j Where it makes sense, remove a comment leader when joining lines. For
|
||||
example, joining:
|
||||
int i; // the index ~
|
||||
// in the list ~
|
||||
Becomes:
|
||||
int i; // the index in the list ~
|
||||
|
||||
|
||||
With 't' and 'c' you can specify when Vim performs auto-wrapping:
|
||||
@@ -1535,7 +1572,7 @@ Some examples:
|
||||
:set fo=tcrq
|
||||
<
|
||||
|
||||
Automatic formatting *auto-format*
|
||||
Automatic formatting *auto-format* *autoformat*
|
||||
|
||||
When the 'a' flag is present in 'formatoptions' text is formatted
|
||||
automatically when inserting text or deleting text. This works nice for
|
||||
@@ -1644,7 +1681,7 @@ found here: |sort()|.
|
||||
last search pattern is used. This allows trying out
|
||||
a pattern first.
|
||||
|
||||
Note that using ":sort" with ":global" doesn't sort the matching lines, it's
|
||||
Note that using `:sort` with `:global` doesn't sort the matching lines, it's
|
||||
quite useless.
|
||||
|
||||
The details about sorting depend on the library function used. There is no
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.2. Last change: 2009 Oct 25
|
||||
*cmdline.txt* For Vim version 7.3. Last change: 2012 Jun 20
|
||||
|
||||
|
||||
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
|
||||
control flow, it doesn't work then.
|
||||
|
||||
*c_<Left>*
|
||||
*c_<Left>* *c_Left*
|
||||
<Left> cursor left
|
||||
*c_<Right>*
|
||||
*c_<Right>* *c_Right*
|
||||
<Right> cursor right
|
||||
*c_<S-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>*
|
||||
<S-Right> or <C-Right> *c_<C-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
|
||||
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
|
||||
|
||||
*c_<LeftMouse>*
|
||||
<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
|
||||
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:
|
||||
character before the cursor) (see |:fixdel| if your <Del>
|
||||
key does not do what you want).
|
||||
@@ -118,7 +118,7 @@ CTRL-U Remove all characters between the cursor position and
|
||||
preferred behavior, add the following to your .vimrc: >
|
||||
:cnoremap <C-U> <C-E><C-U>
|
||||
<
|
||||
*c_<Insert>*
|
||||
*c_<Insert>* *c_Insert*
|
||||
<Insert> Toggle between insert and overstrike. {not in Vi}
|
||||
|
||||
{char1} <BS> {char2} or *c_digraph*
|
||||
@@ -182,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.
|
||||
|
||||
{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}
|
||||
|
||||
*c_CTRL-R_CTRL-R* *c_<C-R>_<C-R>*
|
||||
@@ -224,9 +224,9 @@ CTRL-Y When there is a modeless selection, copy the selection into
|
||||
the clipboard. |modeless-selection|
|
||||
If there is no selection CTRL-Y is inserted as a character.
|
||||
|
||||
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>*
|
||||
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||
<CR> or <NL> start entered command
|
||||
*c_<Esc>*
|
||||
*c_<Esc>* *c_Esc*
|
||||
<Esc> When typed and 'x' not present in 'cpoptions', quit
|
||||
Command-line mode without executing. In macros or when 'x'
|
||||
present in 'cpoptions', start entered command.
|
||||
@@ -235,12 +235,12 @@ CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>*
|
||||
*c_CTRL-C*
|
||||
CTRL-C quit command-line without executing
|
||||
|
||||
*c_<Up>*
|
||||
*c_<Up>* *c_Up*
|
||||
<Up> recall older command-line from history, whose beginning
|
||||
matches the current command-line (see below).
|
||||
{not available when compiled without the |+cmdline_hist|
|
||||
feature}
|
||||
*c_<Down>*
|
||||
*c_<Down>* *c_Down*
|
||||
<Down> recall more recent command-line from history, whose beginning
|
||||
matches the current command-line (see below).
|
||||
{not available when compiled without the |+cmdline_hist|
|
||||
@@ -330,12 +330,12 @@ terminals)
|
||||
|
||||
:his[tory] [{name}] [{first}][, [{last}]]
|
||||
List the contents of history {name} which can be:
|
||||
c[md] or : command-line history
|
||||
s[earch] or / search string history
|
||||
e[xpr] or = expression register history
|
||||
i[nput] or @ input line history
|
||||
d[ebug] or > debug command history
|
||||
a[ll] all of the above
|
||||
c[md] or : command-line history
|
||||
s[earch] or / or ? search string history
|
||||
e[xpr] or = expression register history
|
||||
i[nput] or @ input line history
|
||||
d[ebug] or > debug command history
|
||||
a[ll] all of the above
|
||||
{not in Vi}
|
||||
|
||||
If the numbers {first} and/or {last} are given, the respective
|
||||
@@ -372,10 +372,10 @@ word before the cursor. This is available for:
|
||||
- Mappings: Only after a ":map" 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
|
||||
names, directories and help items can be completed. The number of help item
|
||||
matches is limited (currently to 300) to avoid a long delay when there are
|
||||
very many matches.
|
||||
When Vim was compiled without the |+cmdline_compl| feature only file names,
|
||||
directories and help items can be completed. The number of help item matches
|
||||
is limited (currently to 300) to avoid a long delay when there are very many
|
||||
matches.
|
||||
|
||||
These are the commands that can be used:
|
||||
|
||||
@@ -416,11 +416,17 @@ CTRL-L A match is done on the pattern in front of the cursor. If
|
||||
than the pattern, no completion is done.
|
||||
When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-L will add
|
||||
one character from the end of the current match.
|
||||
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
|
||||
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.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||
|
||||
If you like tcsh's autolist completion, you can use this mapping:
|
||||
:cnoremap X <C-L><C-D>
|
||||
@@ -522,6 +528,7 @@ followed by another Vim command:
|
||||
:registers
|
||||
:read !
|
||||
:scscope
|
||||
:sign
|
||||
:tcl
|
||||
:tcldo
|
||||
:tclfile
|
||||
@@ -750,7 +757,7 @@ function expand() |expand()|.
|
||||
#<n (where n is a number > 0) is replaced with old *:_#<* *c_#<*
|
||||
file name n. See |:oldfiles| or |v:oldfiles| to get the
|
||||
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
|
||||
absolute path is needed (when using the file name from a different directory),
|
||||
@@ -777,33 +784,38 @@ it, no matter how many backslashes.
|
||||
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
||||
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
||||
*:<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!
|
||||
<cword> is replaced with the word under the cursor (like |star|)
|
||||
<cWORD> is replaced with the WORD under the cursor (see |WORD|)
|
||||
<cfile> is replaced with the path name under the cursor (like what
|
||||
|gf| uses)
|
||||
<afile> when executing autocommands, is replaced with the file name
|
||||
for a file read or write
|
||||
<abuf> when executing autocommands, is replaced with the currently
|
||||
<afile> When executing autocommands, is replaced with the file name
|
||||
for a file read or write.
|
||||
<abuf> When executing autocommands, is replaced with the currently
|
||||
effective buffer number (for ":r file" and ":so file" it is
|
||||
the current buffer, the file being read/sourced is not in a
|
||||
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
|
||||
<afile> only when the file name isn't used to match with
|
||||
(for FileType, Syntax and SpellFileMissing events).
|
||||
<sfile> when executing a ":source" command, is replaced with the
|
||||
file name of the sourced file;
|
||||
when executing a function, is replaced with
|
||||
<sfile> When executing a ":source" command, is replaced with the
|
||||
file name of the sourced file. *E498*
|
||||
When executing a function, is replaced with
|
||||
"function {function-name}"; function call nesting is
|
||||
indicated like this:
|
||||
"function {function-name1}..{function-name2}". Note that
|
||||
filename-modifiers are useless when <sfile> is used inside
|
||||
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*
|
||||
*:_%:* *::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>",
|
||||
"<afile>" or "<abuf>". They are also used with the |fnamemodify()| function.
|
||||
These are not available when Vim has been compiled without the |+modify_fname|
|
||||
@@ -814,10 +826,11 @@ These modifiers can be given, in this order:
|
||||
the home directory. If the name is a directory a path
|
||||
separator is added at the end. For a file name that does not
|
||||
exist and does not have an absolute path the result is
|
||||
unpredictable.
|
||||
unpredictable. On MS-Windows an 8.3 filename is expanded to
|
||||
the long name.
|
||||
:8 Converts the path to 8.3 short format (currently only on
|
||||
win32). Will act on as much of a path that is an existing
|
||||
path.
|
||||
MS-Windows). Will act on as much of a path that is an
|
||||
existing path.
|
||||
:~ Reduce file name to be relative to the home directory, if
|
||||
possible. File name is unmodified if it is not below the home
|
||||
directory.
|
||||
@@ -855,7 +868,7 @@ These modifiers can be given, in this order:
|
||||
After this, the previous modifiers can be used again. For
|
||||
example ":p", to make a full path after the substitution.
|
||||
:gs?pat?sub?
|
||||
Substitute all occurrences of "path" with "sub". Otherwise
|
||||
Substitute all occurrences of "pat" with "sub". Otherwise
|
||||
this works like ":s".
|
||||
|
||||
Examples, when the file name is "src/version.c", current dir
|
||||
@@ -1027,7 +1040,7 @@ VARIOUS
|
||||
The command-line window cannot be used:
|
||||
- when there already is a command-line window (no nesting)
|
||||
- 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:
|
||||
'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: 2009 Jul 22
|
||||
*debug.txt* For Vim version 7.3. Last change: 2012 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -15,14 +15,15 @@ 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* *gdb*
|
||||
|
||||
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.
|
||||
This also applies when using the MingW tools.
|
||||
|
||||
1. Compile Vim with the "-g" option (there is a line in the Makefile for this,
|
||||
which you can uncomment).
|
||||
1. Compile Vim with the "-g" option (there is a line in the src/Makefile for
|
||||
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): >
|
||||
cd testdir
|
||||
@@ -39,7 +40,7 @@ This also applies when using the MingW tools.
|
||||
|
||||
==============================================================================
|
||||
|
||||
2. Locating memory leaks *debug-leaks*
|
||||
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.
|
||||
@@ -47,14 +48,18 @@ 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*
|
||||
Use this command to start Vim:
|
||||
>
|
||||
valgrind --log-file=valgrind.log ./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*
|
||||
@@ -63,7 +68,7 @@ If the Windows version of Vim crashes in a reproducible manner, you can take
|
||||
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
|
||||
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
|
||||
@@ -85,7 +90,7 @@ a Vim executable compiled with the Borland compiler; gdb (see above
|
||||
|
||||
|
||||
*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
|
||||
have Visual Studio, follow the instructions at |get-ms-debuggers| to obtain a
|
||||
@@ -119,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.
|
||||
|
||||
*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.
|
||||
|
||||
@@ -145,7 +150,7 @@ To save a minidump, type the following at the WinDbg command line: >
|
||||
.dump vim.dmp
|
||||
<
|
||||
*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.
|
||||
|
||||
@@ -157,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.
|
||||
|
||||
*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
|
||||
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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 7.2. Last change: 2008 Dec 17
|
||||
*develop.txt* For Vim version 7.3. Last change: 2012 Jan 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -232,6 +232,17 @@ time shadows global declaration
|
||||
new C++ reserved keyword
|
||||
try Borland C++ doesn't like it to be used as a variable.
|
||||
|
||||
clear Mac curses.h
|
||||
echo Mac curses.h
|
||||
instr Mac curses.h
|
||||
meta Mac curses.h
|
||||
newwin Mac curses.h
|
||||
nl Mac curses.h
|
||||
overwrite Mac curses.h
|
||||
refresh Mac curses.h
|
||||
scroll Mac curses.h
|
||||
typeahead Mac curses.h
|
||||
|
||||
basename() GNU string function
|
||||
dirname() GNU string function
|
||||
get_env_value() Linux system function
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
*diff.txt* For Vim version 7.2. Last change: 2009 Sep 15
|
||||
*diff.txt* For Vim version 7.3. Last change: 2012 May 18
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
*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.
|
||||
|
||||
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
|
||||
'scrollbind' on
|
||||
'cursorbind' on
|
||||
'scrollopt' includes "hor"
|
||||
'wrap' off
|
||||
'foldmethod' "diff"
|
||||
@@ -133,6 +134,7 @@ the old values are not remembered.
|
||||
|
||||
'diff' off
|
||||
'scrollbind' off
|
||||
'cursorbind' off
|
||||
'scrollopt' without "hor"
|
||||
'wrap' on
|
||||
'foldmethod' "manual"
|
||||
@@ -165,8 +167,8 @@ in diff mode in one window and "normal" in another window. It is also
|
||||
possible to view the changes you have made to a buffer since the file was
|
||||
loaded. Since Vim doesn't allow having two buffers for the same file, you
|
||||
need another buffer. This command is useful: >
|
||||
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
|
||||
\ | wincmd p | diffthis
|
||||
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_
|
||||
\ | diffthis | wincmd p | diffthis
|
||||
(this is in |vimrc_example.vim|). Use ":DiffOrig" to see the differences
|
||||
between the current buffer and the file it was loaded from.
|
||||
|
||||
@@ -176,7 +178,7 @@ buffer. If you don't want a buffer to remain used for the diff do ":set
|
||||
nodiff" before hiding it.
|
||||
|
||||
*:diffu* *:diffupdate*
|
||||
:diffu[pdate] Update the diff highlighting and folds.
|
||||
:diffu[pdate][!] Update the diff highlighting and folds.
|
||||
|
||||
Vim attempts to keep the differences updated when you make changes to the
|
||||
text. This mostly takes care of inserted and deleted lines. Changes within a
|
||||
@@ -185,6 +187,9 @@ To force the differences to be updated use: >
|
||||
|
||||
:diffupdate
|
||||
|
||||
If the ! is included Vim will check if the file was changed externally and
|
||||
needs to be reloaded. It will prompt for each changed file, like `:checktime`
|
||||
was used.
|
||||
|
||||
Vim will show filler lines for lines that are missing in one window but are
|
||||
present in another. These lines were inserted in another file or deleted in
|
||||
@@ -259,10 +264,12 @@ that the buffers will be equal within the specified range.
|
||||
*do*
|
||||
do Same as ":diffget" without argument or range. The "o" stands
|
||||
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 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
|
||||
affected. When [range] is used, Vim tries to only put or get the specified
|
||||
@@ -369,9 +376,9 @@ get an error message. Possible causes:
|
||||
If it's not clear what the problem is set the 'verbose' option to one or more
|
||||
to see more messages.
|
||||
|
||||
The self-installing Vim includes a diff program. If you don't have it you
|
||||
might want to download a diff.exe. For example from
|
||||
http://jlb.twu.net/code/unixkit.php.
|
||||
The self-installing Vim for MS-Windows includes a diff program. If you don't
|
||||
have it you might want to download a diff.exe. For example from
|
||||
http://gnuwin32.sourceforge.net/packages/diffutils.htm.
|
||||
|
||||
|
||||
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: 2009 Jun 10
|
||||
*editing.txt* For Vim version 7.3. Last change: 2012 Jul 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -276,10 +276,11 @@ If you want to keep the changed buffer without saving it, switch on the
|
||||
'readonly' option for this buffer. {not in Vi}
|
||||
|
||||
*CTRL-^* *CTRL-6*
|
||||
CTRL-^ Edit the alternate file (equivalent to ":e #").
|
||||
Mostly the alternate file is the previously edited
|
||||
file. This is a quick way to toggle between two
|
||||
files.
|
||||
CTRL-^ Edit the alternate file. Mostly the alternate file is
|
||||
the previously edited file. This is a quick way to
|
||||
toggle between two files. It is equivalent to ":e #",
|
||||
except that it also works when there is no file name.
|
||||
|
||||
If the 'autowrite' or 'autowriteall' option is on and
|
||||
the buffer was changed, write it.
|
||||
Mostly the ^ character is positioned on the 6 key,
|
||||
@@ -376,8 +377,9 @@ command that accepts more than one file name (like ":next file1 file2")
|
||||
embedded spaces must be escaped with a backslash.
|
||||
|
||||
*wildcard* *wildcards*
|
||||
Wildcards in {file} are expanded. Which wildcards are supported depends on
|
||||
the system. These are the common ones:
|
||||
Wildcards in {file} are expanded, but as with file completion, 'wildignore'
|
||||
and 'suffixes' apply. Which wildcards are supported depends on the system.
|
||||
These are the common ones:
|
||||
? matches one character
|
||||
* matches anything, including nothing
|
||||
** matches anything, including nothing, recurses into directories
|
||||
@@ -421,9 +423,11 @@ You can have the backticks expanded as a Vim expression, instead of an
|
||||
external command, by using the syntax `={expr}` e.g.: >
|
||||
:e `=tempname()`
|
||||
The expression can contain just about anything, thus this can also be used to
|
||||
avoid the special meaning of '"', '|', '%' and '#'. Names are to be separated
|
||||
with line breaks. When the result is a |List| then each item is used as a
|
||||
name. Line breaks also separate names.
|
||||
avoid the special meaning of '"', '|', '%' and '#'. However, 'wildignore'
|
||||
does apply like to other wildcars.
|
||||
If the expression returns a string then names are to be separated with line
|
||||
breaks. When the result is a |List| then each item is used as a name. Line
|
||||
breaks also separate names.
|
||||
|
||||
*++opt* *[++opt]*
|
||||
The [++opt] argument can be used to force the value of 'fileformat',
|
||||
@@ -782,7 +786,7 @@ fourth file in the argument list. This happens when you do ":e file".
|
||||
LOCAL ARGUMENT LIST
|
||||
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+windows| or |+listcmds| feature}
|
||||
{not available when compiled without the |+windows| or |+listcmds| features}
|
||||
|
||||
*:arglocal*
|
||||
:argl[ocal] Make a local copy of the global argument list.
|
||||
@@ -984,6 +988,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
|
||||
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*
|
||||
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,
|
||||
@@ -1060,6 +1069,7 @@ The names can be in upper- or lowercase.
|
||||
If there are other tab pages and quitting the last
|
||||
window in the current tab page the current tab page is
|
||||
closed |tab-page|.
|
||||
Triggers the |QuitPre| autocommand event.
|
||||
|
||||
:conf[irm] q[uit] Quit, but give prompt when changes have been made, or
|
||||
the last file in the argument list has not been
|
||||
@@ -1153,8 +1163,10 @@ MULTIPLE WINDOWS AND BUFFERS *window-exit*
|
||||
*:confirm* *:conf*
|
||||
:conf[irm] {command} Execute {command}, and use a dialog when an
|
||||
operation has to be confirmed. Can be used on the
|
||||
":q", ":qa" and ":w" commands (the latter to over-ride
|
||||
a read-only setting).
|
||||
|:q|, |:qa| and |:w| commands (the latter to override
|
||||
a read-only setting), and any other command that can
|
||||
fail in such a way, such as |:only|, |:buffer|,
|
||||
|:bdelete|, etc.
|
||||
|
||||
Examples: >
|
||||
:confirm w foo
|
||||
@@ -1171,14 +1183,21 @@ If you want to always use ":confirm", set the 'confirm' option.
|
||||
*:browse* *:bro* *E338* *E614* *E615* *E616* *E578*
|
||||
:bro[wse] {command} Open a file selection dialog for an argument to
|
||||
{command}. At present this works for |:e|, |:w|,
|
||||
|:r|, |:saveas|, |:sp|, |:mkexrc|, |:mkvimrc|,
|
||||
|:mksession|, |:split|, |:vsplit|, and |:tabe|.
|
||||
|:wall|, |:wq|, |:wqall|, |:x|, |:xall|, |:exit|,
|
||||
|: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}
|
||||
When ":browse" is not possible you get an error
|
||||
message. If the |+browse| feature is missing or the
|
||||
{command} doesn't support browsing, the {command} is
|
||||
executed without a dialog.
|
||||
":browse set" works like |:options|.
|
||||
See also |:oldfiles| for ":browse oldfiles".
|
||||
|
||||
The syntax is best shown via some examples: >
|
||||
:browse e $vim/foo
|
||||
@@ -1200,13 +1219,13 @@ For versions of Vim where browsing is not supported, the command is executed
|
||||
unmodified.
|
||||
|
||||
*browsefilter*
|
||||
For MS Windows, you can modify the filters that are used in the browse dialog.
|
||||
By setting the g:browsefilter or b:browsefilter variables, you can change the
|
||||
filters globally or locally to the buffer. The variable is set to a string in
|
||||
the format "{filter label}\t{pattern};{pattern}\n" where {filter label} is the
|
||||
text that appears in the "Files of Type" comboBox, and {pattern} is the
|
||||
pattern which filters the filenames. Several patterns can be given, separated
|
||||
by ';'.
|
||||
For MS Windows and GTK, you can modify the filters that are used in the browse
|
||||
dialog. By setting the g:browsefilter or b:browsefilter variables, you can
|
||||
change the filters globally or locally to the buffer. The variable is set to
|
||||
a string in the format "{filter label}\t{pattern};{pattern}\n" where {filter
|
||||
label} is the text that appears in the "Files of Type" comboBox, and {pattern}
|
||||
is the pattern which filters the filenames. Several patterns can be given,
|
||||
separated by ';'.
|
||||
|
||||
For Motif the same format is used, but only the very first pattern is actually
|
||||
used (Motif only offers one pattern, but you can edit it).
|
||||
@@ -1214,7 +1233,7 @@ used (Motif only offers one pattern, but you can edit it).
|
||||
For example, to have only Vim files in the dialog, you could use the following
|
||||
command: >
|
||||
|
||||
let g:browsefilter="Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"
|
||||
let g:browsefilter = "Vim Scripts\t*.vim\nVim Startup Files\t*vimrc\n"
|
||||
|
||||
You can override the filter setting on a per-buffer basis by setting the
|
||||
b:browsefilter variable. You would most likely set b:browsefilter in a
|
||||
@@ -1224,6 +1243,13 @@ difficult to start editing a file of a different type. To overcome this, you
|
||||
may want to add "All Files\t*.*\n" as the final filter, so that the user can
|
||||
still access any desired file.
|
||||
|
||||
To avoid setting browsefilter when Vim does not actually support it, you can
|
||||
use has("browsefilter"): >
|
||||
|
||||
if has("browsefilter")
|
||||
let g:browsefilter = "whatever"
|
||||
endif
|
||||
|
||||
==============================================================================
|
||||
7. The current directory *current-directory*
|
||||
|
||||
@@ -1331,11 +1357,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
|
||||
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
|
||||
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
|
||||
encrypted, this may reveal it to others.
|
||||
The text in the swap file and the undo file is also encrypted. *E843*
|
||||
|
||||
Note: The text in memory is not encrypted. A system administrator may be able
|
||||
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
|
||||
exit, the text will be lost!
|
||||
@@ -1361,10 +1390,38 @@ the file is encrypted.
|
||||
To disable the encryption, reset the 'key' option to an empty value: >
|
||||
:set key=
|
||||
|
||||
When reading a file that has been encrypted and this 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, the file is edited without being
|
||||
decrypted.
|
||||
You can use the 'cryptmethod' option to select the type of encryption, use one
|
||||
of these two: >
|
||||
:setlocal cm=zip " weak method, backwards compatible
|
||||
: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'
|
||||
option to an empty string, so that Vim will prompt for a new one. Don't use
|
||||
@@ -1374,10 +1431,13 @@ your shoulder.
|
||||
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.
|
||||
|
||||
An encrypted file can be recognized by the "file" command, if you add this
|
||||
line to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the
|
||||
An encrypted file can be recognized by the "file" command, if you add these
|
||||
lines to "/etc/magic", "/usr/share/misc/magic" or wherever your system has the
|
||||
"magic" file: >
|
||||
0 string VimCrypt~ Vim encrypted file
|
||||
>9 string 01 - "zip" cryptmethod
|
||||
>9 string 02 - "blowfish" cryptmethod
|
||||
|
||||
|
||||
Notes:
|
||||
- Encryption is not possible when doing conversion with 'charconvert'.
|
||||
@@ -1392,13 +1452,15 @@ Notes:
|
||||
history, showing the 'key' value in a viminfo file.
|
||||
- There is never 100% safety. The encryption in Vim has not been tested for
|
||||
robustness.
|
||||
- The algorithm used is breakable. A 4 character key in about one hour, a 6
|
||||
character key in one day (on a Pentium 133 PC). This requires that you know
|
||||
some text that must appear in the file. An expert can break it for any key.
|
||||
When the text has been decrypted, this also means that the key can be
|
||||
revealed, and other files encrypted with the same key can be decrypted.
|
||||
- Pkzip uses the same encryption, and US Govt has no objection to its export.
|
||||
Pkzip's public file APPNOTE.TXT describes this algorithm in detail.
|
||||
- The algorithm used for 'cryptmethod' "zip" is breakable. A 4 character key
|
||||
in about one hour, a 6 character key in one day (on a Pentium 133 PC). This
|
||||
requires that you know some text that must appear in the file. An expert
|
||||
can break it for any key. When the text has been decrypted, this also means
|
||||
that the key can be revealed, and other files encrypted with the same key
|
||||
can be decrypted.
|
||||
- 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.
|
||||
Thus the encryption code is not exported from the USA.
|
||||
|
||||
@@ -1583,10 +1645,13 @@ There are three different types of searching:
|
||||
|
||||
In the above example you might want to set path to: >
|
||||
:set path=**,/u/user_x/**
|
||||
< This searches: >
|
||||
/u/user_x/work/release/**
|
||||
/u/user_x/**
|
||||
< This searches the same directories, but in a different order.
|
||||
< This searches:
|
||||
/u/user_x/work/release/** ~
|
||||
/u/user_x/** ~
|
||||
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
|
||||
with depth limiter (/usr/**2) or upward search (;) notations.
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -54,3 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
|
||||
.SH TRADUCTION
|
||||
Cette page de manuel a <20>t<EFBFBD> traduite David Blanchet.
|
||||
<david.blanchet@free.fr> 2005-03-26.
|
||||
Mise <20> jour 2012-05-06, Dominique Pell<6C> <dominique.pelle@gmail.com>
|
||||
|
||||
@@ -54,3 +54,4 @@ Voir le menu Aide/Remerciements ou ":help credits" dans
|
||||
.SH TRADUCTION
|
||||
Cette page de manuel a été traduite David Blanchet.
|
||||
<david.blanchet@free.fr> 2005-03-26.
|
||||
Mise à jour 2012-05-06, Dominique Pellé <dominique.pelle@gmail.com>
|
||||
|
||||
@@ -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".
|
||||
Simile all'uso di Notepad in MS-Windows.
|
||||
.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.
|
||||
.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.
|
||||
La modifica file sar<61> molto meno efficiente.
|
||||
.PP
|
||||
@@ -34,7 +34,7 @@ L'opzione 'insertmode'
|
||||
Sono definite delle mappature che consentono di usare COPIA e INCOLLA con i
|
||||
familiari tasti usati sotto MS-Windows.
|
||||
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
|
||||
Vedere vim(1).
|
||||
.SH FILE
|
||||
@@ -51,4 +51,4 @@ vim(1)
|
||||
Buona parte di
|
||||
.B Vim
|
||||
<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".
|
||||
Simile all'uso di Notepad in MS-Windows.
|
||||
.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.
|
||||
.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.
|
||||
La modifica file sarà molto meno efficiente.
|
||||
.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
|
||||
familiari tasti usati sotto MS-Windows.
|
||||
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
|
||||
Vedere vim(1).
|
||||
.SH FILE
|
||||
@@ -51,4 +51,4 @@ vim(1)
|
||||
Buona parte di
|
||||
.B Vim
|
||||
è stato scritto da Bram Moolenaar, con molto aiuto da altri.
|
||||
Vedere il Menu "Aiuto/Crediti".
|
||||
Vedere il menù "Aiuto/Crediti".
|
||||
|
||||
@@ -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
|
||||
@@ -62,8 +62,8 @@ o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9
|
||||
Farsi Fonts *farsi fonts*
|
||||
-----------
|
||||
|
||||
If the "extra" archive has been unpacked, the following files are found in the
|
||||
subdirectories of the '$VIM/farsi' directory:
|
||||
The following files are found in the subdirectories of the '$VIM/farsi/fonts'
|
||||
directory:
|
||||
|
||||
+ far-a01.pcf X Windows fonts for Unix including Linux systems
|
||||
+ 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: 2011 Jun 19
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -270,6 +270,9 @@ directories!
|
||||
|
||||
|
||||
*autocmd-osfiletypes*
|
||||
NOTE: this code is currently disabled, as the RISC OS implementation was
|
||||
removed. In the future this will use the 'filetype' option.
|
||||
|
||||
On operating systems which support storing a file type with the file, you can
|
||||
specify that an autocommand should only be executed if the file is of a
|
||||
certain type.
|
||||
@@ -296,8 +299,6 @@ must both match): >
|
||||
|
||||
This will match files of type "&fff" whose names start with "diff".
|
||||
|
||||
Note that osfiletype checking is skipped if Vim is compiled without the
|
||||
|+osfiletype| feature.
|
||||
|
||||
*plugin-details*
|
||||
The "plugin" directory can be in any of the directories in the 'runtimepath'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*fold.txt* For Vim version 7.2. Last change: 2010 Feb 21
|
||||
*fold.txt* For Vim version 7.3. Last change: 2010 May 13
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -15,7 +15,7 @@ You can find an introduction on folding in chapter 28 of the user manual.
|
||||
4. Behavior of folds |fold-behavior|
|
||||
|
||||
{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*
|
||||
@@ -60,7 +60,7 @@ level form a fold, with the lines with a higher level forming a nested fold.
|
||||
The nesting of folds is limited with 'foldnestmax'.
|
||||
|
||||
Some lines are ignored and get the fold level of the line above or below it,
|
||||
whatever is the lowest. These are empty or white lines and lines starting
|
||||
whichever is lower. These are empty or white lines and lines starting
|
||||
with a character in 'foldignore'. White space is skipped before checking for
|
||||
characters in 'foldignore'. For C use "#" to ignore preprocessor lines.
|
||||
|
||||
@@ -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
|
||||
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*
|
||||
|
||||
@@ -352,9 +355,13 @@ zv View cursor line: Open just enough folds to make the line in
|
||||
*zx*
|
||||
zx Update folds: Undo manually opened and closed folds: re-apply
|
||||
'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 Undo manually opened and closed folds: re-apply 'foldlevel'.
|
||||
Also forces recomputing folds, like |zx|.
|
||||
|
||||
*zm*
|
||||
zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was
|
||||
|
||||
@@ -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~
|
||||
@@ -6,20 +6,20 @@
|
||||
ADA *ada.vim*
|
||||
|
||||
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.1 Omni Completion with "gnat xref" |gnat-xref|
|
||||
3.2 Omni Completion with "ctags" |ada-ctags|
|
||||
4. Compiler Support |ada-compiler|
|
||||
4.1 GNAT |compiler-gnat|
|
||||
4.1 Dec Ada |compiler-decada|
|
||||
4.2 Dec Ada |compiler-decada|
|
||||
5. References |ada-reference|
|
||||
5.1 Options |ft-ada-options|
|
||||
5.2 Functions |ft-ada-functions|
|
||||
5.3 Commands |ft-ada-commands|
|
||||
5.4 Variables |ft-ada-variables|
|
||||
5.5 Constants |ft-ada-constants|
|
||||
8. Extra Plug-ins |ada-extra-plugins|
|
||||
5.2 Commands |ft-ada-commands|
|
||||
5.3 Variables |ft-ada-variables|
|
||||
5.4 Constants |ft-ada-constants|
|
||||
5.5 Functions |ft-ada-functions|
|
||||
6. Extra Plug-ins |ada-extra-plugins|
|
||||
|
||||
==============================================================================
|
||||
1. Syntax Highlighting ~
|
||||
@@ -45,7 +45,7 @@ to change how loops are displayed, enter the command ":hi Repeat" followed by
|
||||
the colour specification; on simple terminals the colour specification
|
||||
ctermfg=White often shows well).
|
||||
|
||||
There are several options you can select in this Ada mode. See|ft-ada-options|
|
||||
There are several options you can select in this Ada mode. See |ft-ada-options|
|
||||
for a complete list.
|
||||
|
||||
To enable them, assign a value to the option. For example, to turn one on:
|
||||
@@ -139,11 +139,11 @@ The Ada parser for Exuberant Ctags is fairly new - don't expect complete
|
||||
support yet.
|
||||
|
||||
==============================================================================
|
||||
4. Compiler Support ~
|
||||
4. Compiler Support ~
|
||||
*ada-compiler*
|
||||
|
||||
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
|
||||
collection of support functions and variables. This allows the easy
|
||||
development of specialized compiler plug-ins fine tuned to your development
|
||||
@@ -171,20 +171,20 @@ GNAT OBJECT ~
|
||||
|
||||
*g:gnat.Make()*
|
||||
g:gnat.Make()
|
||||
Calls|g:gnat.Make_Command|and displays the result inside a
|
||||
Calls |g:gnat.Make_Command| and displays the result inside a
|
||||
|quickfix| window.
|
||||
|
||||
*g:gnat.Pretty()*
|
||||
g:gnat.Pretty()
|
||||
Calls|g:gnat.Pretty_Command|
|
||||
Calls |g:gnat.Pretty_Program|
|
||||
|
||||
*g:gnat.Find()*
|
||||
g:gnat.Find()
|
||||
Calls|g:gnat.Find_Command|
|
||||
Calls |g:gnat.Find_Program|
|
||||
|
||||
*g:gnat.Tags()*
|
||||
g:gnat.Tags()
|
||||
Calls|g:gnat.Tags_Command|
|
||||
Calls |g:gnat.Tags_Command|
|
||||
|
||||
*g:gnat.Set_Project_File()*
|
||||
g:gnat.Set_Project_File([{file}])
|
||||
@@ -200,19 +200,19 @@ g:gnat.Project_File string
|
||||
|
||||
*g:gnat.Make_Command*
|
||||
g:gnat.Make_Command string
|
||||
External command used for|g:gnat.Make()| (|'makeprg'|).
|
||||
External command used for |g:gnat.Make()| (|'makeprg'|).
|
||||
|
||||
*g:gnat.Pretty_Program*
|
||||
g:gnat.Pretty_Program string
|
||||
External command used for|g:gnat.Pretty()|
|
||||
External command used for |g:gnat.Pretty()|
|
||||
|
||||
*g:gnat.Find_Program*
|
||||
g:gnat.Find_Program string
|
||||
External command used for|g:gnat.Find()|
|
||||
External command used for |g:gnat.Find()|
|
||||
|
||||
*g:gnat.Tags_Command*
|
||||
g:gnat.Tags_Command string
|
||||
External command used for|g:gnat.Tags()|
|
||||
External command used for |g:gnat.Tags()|
|
||||
|
||||
*g:gnat.Error_Format*
|
||||
g:gnat.Error_Format string
|
||||
@@ -237,8 +237,8 @@ DEC ADA OBJECT ~
|
||||
|
||||
*g:decada.Make()*
|
||||
g:decada.Make() function
|
||||
Calls|g:decada.Make_Command|and displays the result inside a
|
||||
|quickfix| window.
|
||||
Calls |g:decada.Make_Command| and displays the result inside a
|
||||
|quickfix| window.
|
||||
|
||||
*g:decada.Unit_Name()*
|
||||
g:decada.Unit_Name() function
|
||||
@@ -246,7 +246,7 @@ g:decada.Unit_Name() function
|
||||
|
||||
*g:decada.Make_Command*
|
||||
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| string
|
||||
@@ -367,7 +367,7 @@ false when the variable is undefined. The value to which the variable is set
|
||||
makes no difference.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
5.3 Commands ~
|
||||
5.2 Commands ~
|
||||
*ft-ada-commands*
|
||||
|
||||
:AdaRainbow *:AdaRainbow*
|
||||
@@ -406,15 +406,15 @@ makes no difference.
|
||||
g:gnat object
|
||||
Control object which manages GNAT compiles. The object
|
||||
is created when the first Ada source code is loaded provided
|
||||
that |g:ada_default_compiler|is set to 'gnat'. See|gnat_members|
|
||||
for details.
|
||||
that |g:ada_default_compiler| is set to 'gnat'. See
|
||||
|gnat_members| for details.
|
||||
|
||||
*g:decada*
|
||||
g:decada object
|
||||
Control object which manages Dec Ada compiles. The object
|
||||
is created when the first Ada source code is loaded provided
|
||||
that |g:ada_default_compiler|is set to 'decada'. See
|
||||
|decada_members|for details.
|
||||
that |g:ada_default_compiler| is set to 'decada'. See
|
||||
|decada_members| for details.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
5.4 Constants ~
|
||||
@@ -445,7 +445,7 @@ g:ada#Ctags_Kinds dictionary of lists
|
||||
for Ctags generates.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
5.2 Functions ~
|
||||
5.5 Functions ~
|
||||
*ft-ada-functions*
|
||||
|
||||
ada#Word([{line}, {col}]) *ada#Word()*
|
||||
@@ -479,7 +479,7 @@ gnat#New ()
|
||||
|
||||
|
||||
==============================================================================
|
||||
8. Extra Plugins ~
|
||||
6. Extra Plugins ~
|
||||
*ada-extra-plugins*
|
||||
|
||||
You can optionally install the following extra plug-ins. They work well with
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sql.txt* For Vim version 7.2. Last change: 2009 Nov 03
|
||||
*ft_sql.txt* For Vim version 7.3. Last change: 2010 Jul 20
|
||||
|
||||
by David Fishburn
|
||||
|
||||
@@ -205,7 +205,7 @@ Press any of the following keys: >
|
||||
*sqlanywhere*
|
||||
*oracle* *plsql* *sqlj*
|
||||
*sqlserver*
|
||||
*mysql* *postgress* *psql*
|
||||
*mysql* *postgresql* *psql*
|
||||
*informix*
|
||||
|
||||
All relational databases support SQL. There is a portion of SQL that is
|
||||
@@ -536,7 +536,7 @@ Example of using column completion:
|
||||
completion window is active. If the completion popup window is
|
||||
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
|
||||
the SQL completion plugin. >
|
||||
One column at a time:
|
||||
@@ -632,7 +632,7 @@ your |vimrc|: >
|
||||
MYTABLENAME --> M
|
||||
|
||||
omni_sql_ignorecase
|
||||
< - Default: Current setting for|ignorecase|
|
||||
< - Default: Current setting for 'ignorecase'
|
||||
- Valid settings are 0 or 1.
|
||||
- When entering a few letters before initiating completion, the list
|
||||
will be filtered to display only the entries which begin with the
|
||||
@@ -738,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,
|
||||
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
|
||||
are editing.
|
||||
completion and the completion capabilities for the current language you are
|
||||
editing.
|
||||
|
||||
This can be enabled easily with the following steps (assuming a Perl file): >
|
||||
1. :e test.pl
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 7.2. Last change: 2009 Jan 22
|
||||
*gui.txt* For Vim version 7.3. Last change: 2011 Jul 22
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -147,6 +147,15 @@ task bar with the 'guiheadroom' option.
|
||||
If you are running the X Window System, you can get information about the
|
||||
window Vim is running in with this command: >
|
||||
:!xwininfo -id $WINDOWID
|
||||
<
|
||||
*gui-IME* *iBus*
|
||||
Input methods for international characters in X that rely on the XIM
|
||||
framework, most notably iBus, have been known to produce undesirable results
|
||||
in gVim. These may include an inability to enter spaces, or long delays
|
||||
between typing a character and it being recognized by the application.
|
||||
|
||||
One workaround that has been successful, for unknown reasons, is to prevent
|
||||
gvim from forking into the background by starting it with the |-f| argument.
|
||||
|
||||
==============================================================================
|
||||
2. Scrollbars *gui-scrollbars*
|
||||
@@ -156,26 +165,26 @@ configure which ones appear with the 'guioptions' option.
|
||||
|
||||
The interface looks like this (with ":set guioptions=mlrb"):
|
||||
|
||||
+------------------------------+
|
||||
| File Edit Help | <- Menu bar (m)
|
||||
+-+--------------------------+-+
|
||||
|^| |^|
|
||||
|#| Text area. |#|
|
||||
| | | |
|
||||
|v|__________________________|v|
|
||||
Normal status line -> |-+ File.c 5,2 +-|
|
||||
between Vim windows |^|""""""""""""""""""""""""""|^|
|
||||
| | | |
|
||||
| | Another file buffer. | |
|
||||
| | | |
|
||||
|#| |#|
|
||||
Left scrollbar (l) -> |#| |#| <- Right
|
||||
|#| |#| scrollbar (r)
|
||||
| | | |
|
||||
|v| |v|
|
||||
+-+--------------------------+-+
|
||||
| |< #### >| | <- Bottom
|
||||
+-+--------------------------+-+ scrollbar (b)
|
||||
+------------------------------+ `
|
||||
| File Edit Help | <- Menu bar (m) `
|
||||
+-+--------------------------+-+ `
|
||||
|^| |^| `
|
||||
|#| Text area. |#| `
|
||||
| | | | `
|
||||
|v|__________________________|v| `
|
||||
Normal status line -> |-+ File.c 5,2 +-| `
|
||||
between Vim windows |^|""""""""""""""""""""""""""|^| `
|
||||
| | | | `
|
||||
| | Another file buffer. | | `
|
||||
| | | | `
|
||||
|#| |#| `
|
||||
Left scrollbar (l) -> |#| |#| <- Right `
|
||||
|#| |#| scrollbar (r) `
|
||||
| | | | `
|
||||
|v| |v| `
|
||||
+-+--------------------------+-+ `
|
||||
| |< #### >| | <- Bottom `
|
||||
+-+--------------------------+-+ scrollbar (b) `
|
||||
|
||||
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
|
||||
@@ -556,7 +565,7 @@ some modes:
|
||||
mode inserted appended ~
|
||||
Normal nothing nothing
|
||||
Visual <C-C> <C-\><C-G>
|
||||
Insert <C-O>
|
||||
Insert <C-\><C-O>
|
||||
Cmdline <C-C> <C-\><C-G>
|
||||
Op-pending <C-C> <C-\><C-G>
|
||||
|
||||
@@ -571,7 +580,7 @@ is equal to: >
|
||||
|
||||
:nmenu File.Next :next^M
|
||||
: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
|
||||
:omenu File.Next ^C:next^M^\^G
|
||||
|
||||
@@ -678,7 +687,7 @@ and Photon GUI. It should turn up in other GUIs in due course. The
|
||||
default toolbar is setup in menu.vim.
|
||||
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.
|
||||
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.
|
||||
|
||||
*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
|
||||
|
||||
@@ -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: 2011 Jul 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -137,6 +137,9 @@ options:
|
||||
And if there already is a gvim running:
|
||||
"Edit with existing gvim" -- edit the file with the running gvim
|
||||
|
||||
The "edit with existing Vim" entries can be disabled by adding an entry in the
|
||||
registry under HKLM\Software\Vim\Gvim, named DisableEditWithExisting, and with
|
||||
any value.
|
||||
*install-registry*
|
||||
You can add the "Edit with Vim" menu entry in an easy way by using the
|
||||
"install.exe" program. It will add several registry entries for you.
|
||||
@@ -293,7 +296,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
|
||||
want Vim to start a program and return immediately, you can use the following
|
||||
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
|
||||
you must tell Windows 3.1x to keep executing a DOS command in the background
|
||||
while you switch back to Vim.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 7.2. Last change: 2009 Oct 28
|
||||
*gui_x11.txt* For Vim version 7.3. Last change: 2011 Sep 14
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -53,6 +53,8 @@ When using "gvim -f" and then ":gui", Vim will run in the foreground. The
|
||||
":gui -b".
|
||||
|
||||
"gvim --nofork" does the same as "gvim -f".
|
||||
*E851* *E852*
|
||||
When starting the GUI fails Vim will try to continue running in the terminal.
|
||||
|
||||
If you want the GUI to run in the foreground always, include the 'f'
|
||||
flag in 'guioptions'. |-f|.
|
||||
@@ -453,14 +455,12 @@ searched for. If all three fail, the GUI will be disabled.
|
||||
For GTK+, Vim's configuration process requires that GTK+ be properly
|
||||
installed. That is, the shell script 'gtk-config' must be in your PATH, and
|
||||
you can already successful compile, build, and execute a GTK+ program. The
|
||||
reason for this is because the compiler flags (CFLAGS) and link flags
|
||||
(LDFLAGS) are obtained through the 'gtk-config' shell script.
|
||||
reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS)
|
||||
are obtained through the 'gtk-config' shell script.
|
||||
|
||||
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
|
||||
to ./configure. Optionally, support for GNOME 2 will be compiled if the
|
||||
--enable-gnome-check option is also given. Note that the support for GTK+ 2
|
||||
is still experimental. However, many people have reported that it works just
|
||||
fine for them.
|
||||
--enable-gnome-check option is also given.
|
||||
|
||||
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
|
||||
files in a directory where configure doesn't look, edit the Makefile to enter
|
||||
@@ -468,15 +468,12 @@ the names of the directories. Search for "GUI_INC_LOC" for an example to set
|
||||
the Motif directories, "CONF_OPT_X" for Athena.
|
||||
|
||||
*gui-x11-gtk*
|
||||
At the time of this writing, you may use either GTK+ version 1.0.6 or 1.2. It
|
||||
is suggested that you use v1.2 since not all of Vim's GUI features are present
|
||||
if using v1.0.6. For instance, there are no tearoff menus present in v1.0.6.
|
||||
Using a version from GTK+'s CVS tree may or may not work, and is therefore not
|
||||
supported and not recommended.
|
||||
At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It
|
||||
is suggested that you use GTK 2. The GTK 1 support will most likely be
|
||||
dropped soon.
|
||||
|
||||
For the experimental GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or
|
||||
GTK+ 2.2 series is recommended. CVS HEAD seems to work fine most of time as
|
||||
well.
|
||||
For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2
|
||||
series is recommended.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*hangulin.txt* For Vim version 7.2. Last change: 2009 Jun 24
|
||||
*hangulin.txt* For Vim version 7.3. Last change: 2009 Jun 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Chi-Deok Hwang and Sung-Hyun Nam
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
k
|
||||
@@ -26,6 +26,7 @@ Get specific help: It is possible to go directly to whatever you want help
|
||||
Option ' :help 'textwidth'
|
||||
Search for help: Type ":help word", then hit CTRL-D to see matching
|
||||
help entries for "word".
|
||||
Or use ":helpgrep word". |:helpgrep|
|
||||
|
||||
VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only
|
||||
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 ~
|
||||
|intro.txt| general introduction to Vim; notation used in help files
|
||||
|help.txt| overview and quick reference (this file)
|
||||
|helphelp.txt| about using the help files
|
||||
|index.txt| alphabetical index of all commands
|
||||
|help-tags| all the tags you can jump to (index of tags)
|
||||
|howto.txt| how to do the most common editing tasks
|
||||
@@ -156,6 +158,7 @@ GUI ~
|
||||
|
||||
Interfaces ~
|
||||
|if_cscop.txt| using Cscope with Vim
|
||||
|if_lua.txt| Lua interface
|
||||
|if_mzsch.txt| MzScheme interface
|
||||
|if_perl.txt| Perl interface
|
||||
|if_pyth.txt| Python interface
|
||||
@@ -208,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.
|
||||
|
||||
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
|
||||
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:
|
||||
|
||||
350
runtime/doc/helphelp.txt
Normal file
350
runtime/doc/helphelp.txt
Normal file
@@ -0,0 +1,350 @@
|
||||
*helphelp.txt* For Vim version 7.3. Last change: 2012 May 18
|
||||
|
||||
|
||||
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
|
||||
Japanese - multiple authors
|
||||
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
|
||||
|
||||
@@ -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: 2011 Jun 12
|
||||
|
||||
|
||||
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 cscope.out /usr/local/vim -C
|
||||
<
|
||||
*cscope-find* *cs-find*
|
||||
*E565* *E567*
|
||||
*cscope-find* *cs-find* *E567*
|
||||
find : Query cscope. All cscope query options are available
|
||||
except option #5 ("Change this grep pattern").
|
||||
|
||||
@@ -198,7 +197,7 @@ The available subcommands are:
|
||||
|
||||
USAGE :cs help
|
||||
|
||||
*E260* *E261*
|
||||
*E261*
|
||||
kill : Kill a cscope connection (or kill all cscope connections).
|
||||
|
||||
USAGE :cs kill {num|partial_name}
|
||||
@@ -265,12 +264,22 @@ seems to be useful: >
|
||||
:set cscopequickfix=s-,c-,d-,i-,t-,e-
|
||||
<
|
||||
*cscopetag* *cst*
|
||||
If 'cscopetag' set, the commands ":tag" and CTRL-] as well as "vim -t" will
|
||||
always use |:cstag| instead of the default :tag behavior. Effectively, by
|
||||
setting 'cst', you will always search your cscope databases as well as your
|
||||
tag files. The default is off. Examples: >
|
||||
If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t"
|
||||
will always use |:cstag| instead of the default :tag behavior. Effectively,
|
||||
by setting 'cst', you will always search your cscope databases as well as
|
||||
your tag files. The default is off. Examples: >
|
||||
:set cst
|
||||
:set nocst
|
||||
<
|
||||
*cscoperelative* *csre*
|
||||
If 'cscoperelative' is set, then in absence of a prefix given to cscope
|
||||
(prefix is the argument of -P option of cscope), basename of cscope.out
|
||||
location (usually the project root directory) will be used as the prefix
|
||||
to construct an absolute path. The default is off. Note: This option is
|
||||
only effective when cscope (cscopeprg) is initialized without a prefix
|
||||
path (-P). Examples: >
|
||||
:set csre
|
||||
:set nocsre
|
||||
<
|
||||
*cscopetagorder* *csto*
|
||||
The value of 'csto' determines the order in which |:cstag| performs a search.
|
||||
|
||||
341
runtime/doc/if_lua.txt
Normal file
341
runtime/doc/if_lua.txt
Normal file
@@ -0,0 +1,341 @@
|
||||
*if_lua.txt* For Vim version 7.3. Last change: 2012 Jun 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Luis Carvalho
|
||||
|
||||
|
||||
The Lua Interface to Vim *lua* *Lua*
|
||||
|
||||
1. Commands |lua-commands|
|
||||
2. The vim module |lua-vim|
|
||||
3. List userdata |lua-list|
|
||||
4. Dict userdata |lua-dict|
|
||||
5. Buffer userdata |lua-buffer|
|
||||
6. Window userdata |lua-window|
|
||||
7. The luaeval function |lua-luaeval|
|
||||
|
||||
{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, linenr) {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>, and the current line number.
|
||||
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. All Lua default libraries are available. 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.list() Returns an empty list (see |List|).
|
||||
|
||||
vim.dict() Returns an empty dictionary (see |Dictionary|).
|
||||
|
||||
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.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.type({arg}) Returns the type of {arg}. It is equivalent to
|
||||
Lua's "type" function, but returns "list",
|
||||
"dict", "buffer", or "window" if {arg} is a
|
||||
list, dictionary, buffer, or window,
|
||||
respectively. Examples: >
|
||||
:lua l = vim.list()
|
||||
:lua print(type(l), vim.type(l))
|
||||
:" userdata list
|
||||
<
|
||||
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
|
||||
userdata (see |lua-list| and |lua-dict|).
|
||||
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. List userdata *lua-list*
|
||||
|
||||
List userdata represent vim lists, and the interface tries to follow closely
|
||||
Vim's syntax for lists. Since lists are objects, changes in list references in
|
||||
Lua are reflected in Vim and vice-versa. A list "l" has the following
|
||||
properties and methods:
|
||||
|
||||
Properties
|
||||
----------
|
||||
o "#l" is the number of items in list "l", equivalent to "len(l)"
|
||||
in Vim.
|
||||
o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
|
||||
To modify the k-th item, simply do "l[k] = newitem"; in
|
||||
particular, "l[k] = nil" removes the k-th item from "l".
|
||||
o "l()" returns an iterator for "l".
|
||||
|
||||
Methods
|
||||
-------
|
||||
o "l:add(item)" appends "item" to the end of "l".
|
||||
o "l:insert(item[, pos])" inserts "item" at (optional)
|
||||
position "pos" in the list. The default value for "pos" is 0.
|
||||
|
||||
Examples:
|
||||
>
|
||||
:let l = [1, 'item']
|
||||
:lua l = vim.eval('l') -- same 'l'
|
||||
:lua l:add(vim.list())
|
||||
:lua l[0] = math.pi
|
||||
:echo l[0] " 3.141593
|
||||
:lua l[0] = nil -- remove first item
|
||||
:lua l:insert(true, 1)
|
||||
:lua print(l, #l, l[0], l[1], l[-1])
|
||||
:lua for item in l() do print(item) end
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
4. Dict userdata *lua-dict*
|
||||
|
||||
Similarly to list userdata, dict userdata represent vim dictionaries; since
|
||||
dictionaries are also objects, references are kept between Lua and Vim. A dict
|
||||
"d" has the following properties:
|
||||
|
||||
Properties
|
||||
----------
|
||||
o "#d" is the number of items in dict "d", equivalent to "len(d)"
|
||||
in Vim.
|
||||
o "d.key" or "d['key']" returns the value at entry "key" in "d".
|
||||
To modify the entry at this key, simply do "d.key = newvalue"; in
|
||||
particular, "d.key = nil" removes the entry from "d".
|
||||
o "d()" returns an iterator for "d" and is equivalent to "items(d)" in
|
||||
Vim.
|
||||
|
||||
Examples:
|
||||
>
|
||||
:let d = {'n':10}
|
||||
:lua d = vim.eval('d') -- same 'd'
|
||||
:lua print(d, d.n, #d)
|
||||
:let d.self = d
|
||||
:lua for k, v in d() do print(d, k, v) end
|
||||
:lua d.x = math.pi
|
||||
:lua d.self = nil -- remove entry
|
||||
:echo d
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
5. 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
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
6. 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")
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
7. The luaeval function *lua-luaeval* *lua-eval*
|
||||
|
||||
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
|
||||
"luaeval". "luaeval" takes an expression string and an optional argument and
|
||||
returns the result of the expression. It is semantically equivalent in Lua to:
|
||||
>
|
||||
local chunkheader = "local _A = select(1, ...) return "
|
||||
function luaeval (expstr, arg)
|
||||
local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
|
||||
return chunk(arg) -- return typval
|
||||
end
|
||||
<
|
||||
Note that "_A" receives the argument to "luaeval". Examples: >
|
||||
|
||||
:echo luaeval('math.pi')
|
||||
:lua a = vim.list():add('newlist')
|
||||
:let a = luaeval('a')
|
||||
:echo a[0] " 'newlist'
|
||||
:function Rand(x,y) " random uniform between x and y
|
||||
: return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
|
||||
: endfunction
|
||||
:echo Rand(1,10)
|
||||
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_mzsch.txt* For Vim version 7.2. Last change: 2010 Feb 11
|
||||
*if_mzsch.txt* For Vim version 7.3. Last change: 2010 Feb 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Sergey Khorev
|
||||
@@ -233,7 +233,7 @@ Windows *mzscheme-window*
|
||||
==============================================================================
|
||||
5. mzeval() Vim function *mzscheme-mzeval*
|
||||
|
||||
To facilitate bi-directional interface, you can use |mzeval| function to
|
||||
To facilitate bi-directional interface, you can use |mzeval()| function to
|
||||
evaluate MzScheme expressions and pass their values to VimL.
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_ole.txt* For Vim version 7.2. Last change: 2008 Aug 16
|
||||
*if_ole.txt* For Vim version 7.3. Last change: 2008 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
|
||||
@@ -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
|
||||
@@ -265,18 +265,26 @@ Note that "EOF" must be at the start of the line.
|
||||
==============================================================================
|
||||
4. Dynamic loading *perl-dynamic*
|
||||
|
||||
On MS-Windows the Perl library can be loaded dynamically. The |:version|
|
||||
output then includes |+perl/dyn|.
|
||||
On MS-Windows and Unix the Perl library can be loaded dynamically. The
|
||||
|:version| output then includes |+perl/dyn|.
|
||||
|
||||
This means that Vim will search for the Perl DLL file only when needed. When
|
||||
you don't use the Perl interface you don't need it, thus you can use Vim
|
||||
without this DLL file.
|
||||
This means that Vim will search for the Perl DLL or shared library file only
|
||||
when needed. When you don't use the Perl interface you don't need it, thus
|
||||
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.
|
||||
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".
|
||||
|
||||
==============================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 7.2. Last change: 2008 Aug 16
|
||||
*if_pyth.txt* For Vim version 7.3. Last change: 2012 Feb 04
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -6,17 +6,21 @@
|
||||
|
||||
The Python Interface to Vim *python* *Python*
|
||||
|
||||
1. Commands |python-commands|
|
||||
2. The vim module |python-vim|
|
||||
3. Buffer objects |python-buffer|
|
||||
4. Range objects |python-range|
|
||||
5. Window objects |python-window|
|
||||
6. Dynamic loading |python-dynamic|
|
||||
1. Commands |python-commands|
|
||||
2. The vim module |python-vim|
|
||||
3. Buffer objects |python-buffer|
|
||||
4. Range objects |python-range|
|
||||
5. Window objects |python-window|
|
||||
6. pyeval(), py3eval() Vim functions |python-pyeval|
|
||||
7. Dynamic loading |python-dynamic|
|
||||
8. Python 3 |python3|
|
||||
|
||||
{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.
|
||||
The Python 3 interface is available only when Vim was compiled with the
|
||||
|+python3| feature.
|
||||
|
||||
==============================================================================
|
||||
1. Commands *python-commands*
|
||||
@@ -147,6 +151,22 @@ vim.eval(str) *python-eval*
|
||||
[{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
|
||||
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
|
||||
|
||||
vim.bindeval(str) *python-bindeval*
|
||||
Like |python-eval|, but
|
||||
1. if expression evaluates to |List| or |Dictionary| it is returned as
|
||||
vimlist or vimdictionary python type that are connected to original
|
||||
list or dictionary. Thus modifications to these objects imply
|
||||
modifications of the original.
|
||||
2. if expression evaluates to a function reference, then it returns
|
||||
callable vimfunction object. Use self keyword argument to assign
|
||||
|self| object for dictionary functions.
|
||||
|
||||
Note: this function has the same behavior as |lua-eval| (except that
|
||||
lua does not support running vim functions), |python-eval| is
|
||||
kept for backwards compatibility in order not to make scripts
|
||||
relying on outputs of vim.eval() being a copy of original or
|
||||
vim.eval("1") returning a string.
|
||||
|
||||
|
||||
|
||||
Error object of the "vim" module
|
||||
@@ -219,8 +239,9 @@ Buffer objects represent vim buffers. You can obtain them in a number of ways:
|
||||
- from indexing vim.buffers (|python-buffers|)
|
||||
- from the "buffer" attribute of a window (|python-window|)
|
||||
|
||||
Buffer objects have one read-only attribute - name - the full file name for
|
||||
the buffer. They also have three methods (append, mark, and range; see below).
|
||||
Buffer objects have two read-only attributes - name - the full file name for
|
||||
the buffer, and number - the buffer number. They also have three methods
|
||||
(append, mark, and range; see below).
|
||||
|
||||
You can also treat buffer objects as sequence objects. In this context, they
|
||||
act as if they were lists (yes, they are mutable) of strings, with each
|
||||
@@ -237,10 +258,12 @@ with marks (see below) which use vim line numbers.
|
||||
|
||||
The buffer object methods are:
|
||||
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
|
||||
Note that the option of supplying a list of strings to
|
||||
the append method differs from the equivalent method
|
||||
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
|
||||
of the named mark (can also get the []"<> marks)
|
||||
b.range(s,e) Return a range object (see |python-range|) which
|
||||
@@ -282,10 +305,12 @@ The range object attributes are:
|
||||
|
||||
The range object methods are:
|
||||
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
|
||||
Note that the option of supplying a list of strings to
|
||||
the append method differs from the equivalent method
|
||||
for Python's built-in list objects.
|
||||
r.append(list, nr) Idem, after line "nr"
|
||||
|
||||
Example (assume r is the current range):
|
||||
# Send all lines in a range to the default printer
|
||||
@@ -311,7 +336,13 @@ The height attribute is writable only if the screen is split horizontally.
|
||||
The width attribute is writable only if the screen is split vertically.
|
||||
|
||||
==============================================================================
|
||||
6. Dynamic loading *python-dynamic*
|
||||
6. pyeval() and py3eval() Vim functions *python-pyeval*
|
||||
|
||||
To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
|
||||
functions to evaluate Python expressions and pass their values to VimL.
|
||||
|
||||
==============================================================================
|
||||
7. Dynamic loading *python-dynamic*
|
||||
|
||||
On MS-Windows the Python library can be loaded dynamically. The |:version|
|
||||
output then includes |+python/dyn|.
|
||||
@@ -327,5 +358,62 @@ 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
|
||||
sure edit "gvim.exe" and search for "python\d*.dll\c".
|
||||
|
||||
==============================================================================
|
||||
8. 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.
|
||||
|
||||
*has-python*
|
||||
You can test what Python version is available with: >
|
||||
if has('python')
|
||||
echo 'there is Python 2.x'
|
||||
elseif has('python3')
|
||||
echo 'there is Python 3.x'
|
||||
endif
|
||||
|
||||
Note however, that when Python 2 and 3 are both available and loaded
|
||||
dynamically, these has() calls will try to load them. If only one can be
|
||||
loaded at a time, just checking if Python 2 or 3 are available will prevent
|
||||
the other one from being available.
|
||||
|
||||
==============================================================================
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_ruby.txt* For Vim version 7.2. Last change: 2008 Aug 16
|
||||
*if_ruby.txt* For Vim version 7.3. Last change: 2010 Oct 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Shugo Maeda
|
||||
@@ -40,6 +40,9 @@ downloading Ruby there.
|
||||
wasn't compiled in. To avoid errors, see
|
||||
|script-here|.
|
||||
|
||||
Command to try it out: >
|
||||
:ruby print "Hello" # this is a comment
|
||||
|
||||
Example Vim script: >
|
||||
|
||||
function! RedGem()
|
||||
@@ -187,19 +190,27 @@ $curbuf The current buffer object.
|
||||
==============================================================================
|
||||
6. Dynamic loading *ruby-dynamic*
|
||||
|
||||
On MS-Windows the Ruby library can be loaded dynamically. The |:version|
|
||||
output then includes |+ruby/dyn|.
|
||||
On MS-Windows and Unix the Ruby library can be loaded dynamically. The
|
||||
|:version| output then includes |+ruby/dyn|.
|
||||
|
||||
This means that Vim will search for the Ruby DLL file only when needed. When
|
||||
you don't use the Ruby interface you don't need it, thus you can use Vim
|
||||
without this DLL file.
|
||||
This means that Vim will search for the Ruby DLL file or shared library only
|
||||
when needed. When you don't use the Ruby interface you don't need it, thus
|
||||
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
|
||||
console window type "path" to see what directories are used.
|
||||
|
||||
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
|
||||
edit "gvim.exe" and search for "ruby\d*.dll\c".
|
||||
Currently the name is "msvcrt-ruby191.dll". That is for Ruby 1.9.1. To know
|
||||
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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_tcl.txt* For Vim version 7.2. Last change: 2008 Aug 16
|
||||
*if_tcl.txt* For Vim version 7.3. Last change: 2008 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Ingo Wilken
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user