mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-11 15:37:29 +02:00
Compare commits
2450 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 213d223679 | |||
| f00a001406 | |||
| 7ae32a1bef | |||
| 62b5aae721 | |||
| 1741da563b | |||
| c3239dd5e5 | |||
| 09eb973f44 | |||
| 1dfdf3ebaa | |||
| d50de2f2f0 | |||
| 233164a7d2 | |||
| ae96eb8469 | |||
| d676af07ec | |||
| 73827e6e15 | |||
| 8420566635 | |||
| e4c49238bd | |||
| 616f845128 | |||
| 09c7a21e4f | |||
| 9e75f31ff2 | |||
| 950ef8ff2f | |||
| 915d2e30ac | |||
| 6319b9c517 | |||
| 0dde2b7232 | |||
| 5d900f6f7e | |||
| 6907698f60 | |||
| ce49edcc1e | |||
| 911a34fed0 | |||
| a57ecd4e2e | |||
| 81a5c6dd4e | |||
| a53e7167fc | |||
| 6cf044c8fc | |||
| d0645670b5 | |||
| 3157d8636c | |||
| 8bb0169bd0 | |||
| 00d911af72 | |||
| 1111099ec1 | |||
| 9b4580c4dc | |||
| e63ff36e87 | |||
| 198610ad25 | |||
| a57332a176 | |||
| 9bd6777571 | |||
| aee4e6d6ca | |||
| 7112e2b5f7 | |||
| f9064e4c16 | |||
| 69c156faf4 | |||
| dd74c0b520 | |||
| f6ecb9aae9 | |||
| bc82e6d58e | |||
| 667279dbca | |||
| 331a21d0bd | |||
| 2cccddd458 | |||
| 49a52f9eff | |||
| f231eff6c2 | |||
| 3a8ce4e72c | |||
| 52f08cc6aa | |||
| 1a91b2a5c9 | |||
| 467b890d13 | |||
| fa6eedf24f | |||
| 0b546f60b1 | |||
| 1957b370bb | |||
| 275fc44523 | |||
| ee1fd606dd | |||
| ac3900639d | |||
| aa3ac2d303 | |||
| e84420f7d1 | |||
| 678ceed917 | |||
| f3c411fafe | |||
| 1506bb79d9 | |||
| d366864ff5 | |||
| 69742a596f | |||
| 3d2d6a810e | |||
| 6fb7a6f38b | |||
| cf7a0a71bd | |||
| 6e1e046cbb | |||
| 2d1fc65b0e | |||
| e378d7332b | |||
| 4879bdfc5e | |||
| 52bb6e960f | |||
| 0b018a5836 | |||
| ae2eb1cf48 | |||
| 597590c414 | |||
| 2a70805ffb | |||
| 86ae8db7d6 | |||
| dc9008674b | |||
| 99b9fe4a6d | |||
| 1d73dbfbe5 | |||
| 7d9d31e97d | |||
| 8bc680dd63 | |||
| 5da159c4eb | |||
| def2d1a9e4 | |||
| bdb7f8efa6 | |||
| db0d1f51a5 | |||
| 6b4059f69d | |||
| 232024f71d | |||
| d732c28bfc | |||
| e5bae4cb22 | |||
| bb36e94f24 | |||
| 2e22c44eab | |||
| f6f6f2c8f8 | |||
| ad6fe811e7 | |||
| deaae7e717 | |||
| e52ae8cbc0 | |||
| 8e7466bccc | |||
| 4100056f46 | |||
| df35270598 | |||
| b2e17cca75 | |||
| e25a17541d | |||
| e76375a3e9 | |||
| ea83ab3650 | |||
| c53513d4ac | |||
| 06c64fe88c | |||
| b39b209d02 | |||
| 3e5bc79f11 | |||
| 96e61949b3 | |||
| ce613d4671 | |||
| b2e259fb62 | |||
| 28132658b2 | |||
| 92ed496e29 | |||
| 91ed612ac0 | |||
| cec4f8b9ee | |||
| 22799739f5 | |||
| 053d76dc13 | |||
| 38a0fd10d1 | |||
| 325a3db78d | |||
| 27c683092d | |||
| 0b896e4f59 | |||
| 6fcd21f338 | |||
| 316034e1db | |||
| dd46cfc500 | |||
| 28c43bdc64 | |||
| 97b5e3c119 | |||
| 17f08c9776 | |||
| 9e2f853d00 | |||
| d9d242b00f | |||
| a614dfbfcd | |||
| d72aaeda7f | |||
| 90377d2495 | |||
| 8b385ca122 | |||
| 94c7edebd7 | |||
| d70f67e5b9 | |||
| 03c5dada39 | |||
| 0cec396a20 | |||
| 50be9d4227 | |||
| a689202f4e | |||
| 41e6389b83 | |||
| 4c615b9622 | |||
| c1f4a11e10 | |||
| dcd91fe279 | |||
| 452e41f92e | |||
| d58cb64b76 | |||
| ee84ad6010 | |||
| 055d07bd87 | |||
| 1611954a47 | |||
| 0a0f80b2c0 | |||
| 6f0611c29a | |||
| 3420b3b4d8 | |||
| 1b68724361 | |||
| 550e75eed2 | |||
| 7e36001233 | |||
| 4f1446124f | |||
| 232720a611 | |||
| 3c918888d7 | |||
| 772859fcca | |||
| 85c6b71293 | |||
| 0fae0b0238 | |||
| 43ebeed946 | |||
| 0dceccaafb | |||
| 7d5860b32b | |||
| 1c8fc078a3 | |||
| c7fead45e0 | |||
| ebb92ddd72 | |||
| 3047db21af | |||
| d128618aba | |||
| 764d5e5121 | |||
| 2d003da317 | |||
| 79e728785f | |||
| 2c9ae326a0 | |||
| 705ddcf213 | |||
| ad06dcbb69 | |||
| 5c2795baae | |||
| c295e3d8d1 | |||
| b1b0936737 | |||
| e43b739944 | |||
| ea3d1b4ba6 | |||
| 8c3618271b | |||
| 37e3e82f7c | |||
| 71ced625f5 | |||
| fa46cfe5e7 | |||
| 63cd7ab513 | |||
| 93b5422bc6 | |||
| a4a6146f2d | |||
| 0b28a1550d | |||
| d5bd3e3888 | |||
| b1bc820ac9 | |||
| c7333a644b | |||
| a8cb1c5563 | |||
| 752dcda77e | |||
| b86aff8f47 | |||
| 41a8a4d368 | |||
| 25c670073a | |||
| 6743003ba5 | |||
| 61c7c7dd1b | |||
| 76e0da8cce | |||
| 8c8db3cd4c | |||
| f96c9a6845 | |||
| 998efd292e | |||
| 093e2f20f2 | |||
| 86c54f9853 | |||
| d693919cdd | |||
| 7a75fec5ca | |||
| e9f5ced05c | |||
| e5e3c0d2c1 | |||
| 1e2467b3f3 | |||
| 754d698c33 | |||
| 73626b6c6c | |||
| ec20f00066 | |||
| 4d14ca32db | |||
| 3f3214a409 | |||
| 82a81c93f1 | |||
| 3245d2c6e4 | |||
| 3af179bc83 | |||
| a3963603ed | |||
| abfce2ceb7 | |||
| dedeca9e4b | |||
| 69a421f7a9 | |||
| 01367854ac | |||
| 3f99a2ce60 | |||
| 83c4f299d4 | |||
| cb5a3504ee | |||
| 7332de00a2 | |||
| 26335ef7bd | |||
| 76a3a22210 | |||
| 33c4a57e05 | |||
| b24d62ac03 | |||
| 523982bd0f | |||
| d363012f00 | |||
| 2c3d9cf5f4 | |||
| 7ccbd55772 | |||
| 63324d8fb8 | |||
| 68e5dc4041 | |||
| 6af7bf3d9d | |||
| 957dd2b789 | |||
| 7f1ec4af38 | |||
| 6274fc0a91 | |||
| a6273ea452 | |||
| 1b66758764 | |||
| 0b417afefb | |||
| 3e03911680 | |||
| 151ecabf8d | |||
| 3abdb9cb77 | |||
| ad5cf22a75 | |||
| a74b78844d | |||
| 527eb86b22 | |||
| 473f6440a5 | |||
| 0688d62523 | |||
| 4f10f1c121 | |||
| fd92d907e2 | |||
| ddd0692356 | |||
| 075a66afb3 | |||
| c08d59f6fb | |||
| b97664e078 | |||
| 34a3bc02df | |||
| e2884876f2 | |||
| 721ab2c4ee | |||
| 0c515cb6e8 | |||
| 925a408c9b | |||
| d51da8ae26 | |||
| 5f8d5b9506 | |||
| 8aac2cfa00 | |||
| 42a20b424e | |||
| b9fa86db77 | |||
| f4c4042cc7 | |||
| 9910f9a404 | |||
| 7d20ae0e9f | |||
| da0253b0b8 | |||
| 97186bab3b | |||
| 0554c4af6b | |||
| 8f5a3aeb21 | |||
| efe58cdf91 | |||
| 490fa97722 | |||
| d87f8c5f49 | |||
| 2d9f2539e6 | |||
| b391feee88 | |||
| 79ec8a039d | |||
| da4c936c72 | |||
| 57247ff882 | |||
| 53f258bb6f | |||
| 10cff2591d | |||
| ab9df03d0d | |||
| e7b9c11089 | |||
| d98996d31c | |||
| 40056b05c3 | |||
| a4e3a7370b | |||
| 7ad0084f3f | |||
| d165ccb4bc | |||
| b53ee76b5e | |||
| 6255f52fc5 | |||
| f63e3834b4 | |||
| 9338c9c55c | |||
| 11a1c2cb92 | |||
| 59ad683558 | |||
| 95fb95ebcc | |||
| bc9688ffdc | |||
| bafdc2c3e1 | |||
| 279b3f843c | |||
| 603f746178 | |||
| 255571d05e | |||
| 82038bc905 | |||
| bca5b2086e | |||
| 67d03b985b | |||
| 2d36c33fd5 | |||
| ee9959e56c | |||
| 9ca5f6bcdb | |||
| 626995c3e8 | |||
| 634ef3b803 | |||
| aed4648a3d | |||
| cd2f7e9eb1 | |||
| 3b966f9e01 | |||
| 8009a9912d | |||
| cdf043f0f9 | |||
| 757e8b4359 | |||
| 7b68b0b56d | |||
| 21b029712f | |||
| 80b4c97a2c | |||
| 404077032e | |||
| 04cd1420c1 | |||
| 46ae2ec9cb | |||
| 85cc2265e8 | |||
| 4c3907a8ff | |||
| f4fef46de2 | |||
| 28c76af675 | |||
| 9716d0b66f | |||
| 428d1b4412 | |||
| bf70f82498 | |||
| 89d9e60b8a | |||
| 0ea7546c7c | |||
| 321fdf61aa | |||
| 2fa74c01aa | |||
| c4222c6ebb | |||
| 1f538dc364 | |||
| 9471224d0b | |||
| 1d83527039 | |||
| 7752431b82 | |||
| 2ac28f887e | |||
| 9c517cb4e9 | |||
| 3915c6afc6 | |||
| a4569d06ac | |||
| cb120a21cf | |||
| 7070fd3f76 | |||
| 9f1b770ee6 | |||
| ebf10927c7 | |||
| e18186c461 | |||
| af279d2477 | |||
| 8c442b7b28 | |||
| 4c6ed9759c | |||
| d98e291038 | |||
| 092e0cc894 | |||
| b904b019b8 | |||
| c0159b8fdf | |||
| 11ec93a03a | |||
| c2f8b396de | |||
| fa15736b2b | |||
| d1a9e08f94 | |||
| 9d2727c56f | |||
| ce9c112020 | |||
| 0e2ddfca38 | |||
| 1f7de911ba | |||
| f6ab5cbc03 | |||
| 44d7e60b06 | |||
| 0e37f590ab | |||
| a0f684e003 | |||
| f54c3100e9 | |||
| a588fc3e33 | |||
| 039f611554 | |||
| 3a4682c9dd | |||
| fdc64858c5 | |||
| 45a9151fc6 | |||
| b9241163d8 | |||
| defa7bd098 | |||
| 6bfab82aca | |||
| 64959e3177 | |||
| 2eee45eb39 | |||
| 8d051eef4e | |||
| 7f449520a5 | |||
| 07831f45b2 | |||
| 9a69ad0d62 | |||
| be6ecb5d92 | |||
| 138be9d567 | |||
| 0430474168 | |||
| 0f1ee64746 | |||
| d08cc220fd | |||
| 04d9ab21b0 | |||
| 9c7523e944 | |||
| 030d0d07ec | |||
| 0578f14843 | |||
| 11274e43c4 | |||
| ebfad47ec6 | |||
| 48e6f325d6 | |||
| e899e2dfc7 | |||
| 1bc466c774 | |||
| f08c899208 | |||
| 31bd050607 | |||
| 2e6fb2ea53 | |||
| 862da53932 | |||
| 15763286bd | |||
| fed823a238 | |||
| 5d5176aabf | |||
| 19468d3117 | |||
| 0402b6b5c4 | |||
| b6932fb3ae | |||
| 22695b7f3b | |||
| bc8b62f3d9 | |||
| bd542602dd | |||
| e5159c3b6a | |||
| b36829bcaa | |||
| 07c344444b | |||
| bafcc3365d | |||
| 41ca0e5508 | |||
| 246dfc17f4 | |||
| 9aae3ba3cc | |||
| 0a54dd7370 | |||
| 6e8e20588d | |||
| 296634f40e | |||
| 13d45e4ff9 | |||
| 3e314dee6e | |||
| 779811f241 | |||
| 22017e1410 | |||
| af8ea2cc11 | |||
| ac3b778ddb | |||
| 1de2bc973a | |||
| cdb8dc17ca | |||
| b11e6ca3c9 | |||
| 69c366f7ed | |||
| 7792c4e8ab | |||
| 3910f20697 | |||
| 472eda54f6 | |||
| c09ef35588 | |||
| bf90097520 | |||
| 3292e01a82 | |||
| ba210fdada | |||
| 2d57fac276 | |||
| 4868c3cb85 | |||
| d38abe1843 | |||
| 045cef0a51 | |||
| 560504f7ba | |||
| 4ba3129468 | |||
| 98cc0fee24 | |||
| 26349fc938 | |||
| fb5cf175af | |||
| 0243a624be | |||
| 96433d48a1 | |||
| e5ecb34260 | |||
| 60fd59ea55 | |||
| 8afb077865 | |||
| eef4ba19a6 | |||
| 8574b2152c | |||
| 52b5ee23fc | |||
| d97c301011 | |||
| 343bd24d2e | |||
| a58654a6b0 | |||
| af62299744 | |||
| 60cd2a75c1 | |||
| 2ef7f8c8a0 | |||
| f2282b0096 | |||
| 90c663f76b | |||
| 5d748c8f27 | |||
| b8ac483bf8 | |||
| b884eef376 | |||
| 49cb3f99b8 | |||
| 9f83b2360b | |||
| 88b58bbd9f | |||
| dee796111a | |||
| 8ab6c75d08 | |||
| 3d8abd2669 | |||
| 12bec6e4ef | |||
| d26a1b2aad | |||
| 68799a3f7b | |||
| 164caf3832 | |||
| fa28669748 | |||
| 2fefb81d43 | |||
| 9d568fc7c9 | |||
| 0e6bfe9367 | |||
| 042108b0ad | |||
| 8ee6c93248 | |||
| 3f9f756149 | |||
| f6a5f65011 | |||
| f6e817e253 | |||
| bf22f09010 | |||
| 41c734a1aa | |||
| 65b46aa438 | |||
| 55790c5bb1 | |||
| 160b3ddb75 | |||
| 4bbbab9e56 | |||
| 548238236c | |||
| 1f27812ec0 | |||
| 1b21020c55 | |||
| d6fb745d7b | |||
| b5d1a8c5ba | |||
| 2e80f981c6 | |||
| 43d56b9b31 | |||
| d3b99588e3 | |||
| 80e4ddf501 | |||
| 143c782109 | |||
| a9dce2fa3d | |||
| bd394ba7b4 | |||
| 17b0feb45b | |||
| 9265b87738 | |||
| 84a3908488 | |||
| da50fc7107 | |||
| a2f006b7a5 | |||
| ff477a8d27 | |||
| ef149aa134 | |||
| a6907b971a | |||
| a8b5c51adf | |||
| ee5a7d0bb7 | |||
| dd78d32dd4 | |||
| 1190edd343 | |||
| 0a00f8f69f | |||
| b5b2678f9d | |||
| 1b133a3190 | |||
| 5e1defcf44 | |||
| 73708d6ff2 | |||
| 566dae45c7 | |||
| 1f5a9fa89b | |||
| ddfeb8cac3 | |||
| 4630903d9d | |||
| e7d7b1f602 | |||
| 0f6e98e9fc | |||
| 6269aa03e0 | |||
| c0447dd6ed | |||
| 67a9c70f48 | |||
| ed474b1614 | |||
| 518615feff | |||
| b775f355e5 | |||
| 72af81b0f6 | |||
| 6ca6e7871d | |||
| 2e2af8ad40 | |||
| 867d7e7d52 | |||
| 24df753553 | |||
| 9a62a4c05e | |||
| 66263defaa | |||
| fdf5c7cf04 | |||
| 90acffb41f | |||
| 39b2308db7 | |||
| b8a482ebf8 | |||
| 3b98d9f0dc | |||
| f2740bd858 | |||
| 3c18a31949 | |||
| 2dbe83f704 | |||
| b8e984431a | |||
| 112f86ba33 | |||
| d2b63e9e8f | |||
| ec81b3fea1 | |||
| ff9125d6ac | |||
| ab38b8a17d | |||
| dfb4d1738a | |||
| 81598be330 | |||
| c438b122f7 | |||
| a08f1f6181 | |||
| 2d4573091b | |||
| 5bc6c46082 | |||
| 863b5ab5dc | |||
| bc28f07b5e | |||
| 807c425577 | |||
| e5519102a7 | |||
| 284ae9fd34 | |||
| 749277ae52 | |||
| 92589cc363 | |||
| 8a854c9af4 | |||
| 5724e9d810 | |||
| 746394abc7 | |||
| 2273c98630 | |||
| a162472912 | |||
| 41dfa1ceb3 | |||
| ba1599a054 | |||
| 349aaa485c | |||
| 7fda334158 | |||
| e0ee322a35 | |||
| 60e87093c4 | |||
| a9241c754d | |||
| 363385f636 | |||
| d6ab57341f | |||
| 31b1d9b73e | |||
| 3627b2f3c1 | |||
| 351704de2b | |||
| 388d57e9ca | |||
| 2c4b19281e | |||
| 91211e9363 | |||
| 7d05538499 | |||
| d38181302e | |||
| 8c8f8b045e | |||
| 2ee18fafae | |||
| 8c222c7e58 | |||
| 4267974d65 | |||
| 8aea8c7c62 | |||
| 211a825ff1 | |||
| e7e7103b6e | |||
| 09bd51ab00 | |||
| 39d2adf550 | |||
| 3e7c128fa1 | |||
| 46b5d6e03d | |||
| 38a4d64829 | |||
| b2c2bd07ca | |||
| 2aae59b4ef | |||
| 12666d184a | |||
| fe9562ad0e | |||
| 51acc6dc1c | |||
| 56e78127ac | |||
| 8406015ca8 | |||
| 774000c089 | |||
| 9d64e4b658 | |||
| 020105ac21 | |||
| 669a83bae4 | |||
| 7269f12a02 | |||
| 61c2723fe4 | |||
| fe91a4219a | |||
| df62283de1 | |||
| 4a3eae9188 | |||
| 0b7a45a080 | |||
| 66737e6c2f | |||
| a80249687e | |||
| b67de3af6e | |||
| b430bea05b | |||
| 7559b4ecde | |||
| 12925f4d7d | |||
| 2ccef6c79c | |||
| 80bc4d6dc9 | |||
| f7a1b45ac5 | |||
| ba0c8072f4 | |||
| 198db906c2 | |||
| e0e4842dbc | |||
| adf2f0f983 | |||
| 2f9baad13e | |||
| ffcfd31c50 | |||
| f6b49aced3 | |||
| b78bbb7a6a | |||
| f01367c69c | |||
| 45bc1b3aab | |||
| 035e74e287 | |||
| 02da38accf | |||
| 08e7634e76 | |||
| 621f94828e | |||
| 288e582e22 | |||
| d2887e47c1 | |||
| e1a13bb449 | |||
| 6530cc5fad | |||
| f7dae3e393 | |||
| 71c63ec8b7 | |||
| 6e33c67cf0 | |||
| c9304c3b82 | |||
| 86ba888201 | |||
| 3f33f484ea | |||
| 7169cf4644 | |||
| 922a70fafc | |||
| 81a1de822a | |||
| 5fafa98d5f | |||
| d4855706c0 | |||
| b86eee82f8 | |||
| 7dae143cbf | |||
| b538610846 | |||
| 5f0dd0f4dc | |||
| 4e2c26c5c4 | |||
| 88d1e3c664 | |||
| 809f415bda | |||
| f99ce72a11 | |||
| a2cbf49598 | |||
| d1de3525e9 | |||
| 645bfbd1e8 | |||
| 0a2913b2d6 | |||
| bafa127dbd | |||
| 45553c0c6a | |||
| 3a36672982 | |||
| 2fbfb74a77 | |||
| 240bb64660 | |||
| 2e105da555 | |||
| 00e0971705 | |||
| 2d5e4ef21d | |||
| 8df6521434 | |||
| 5ba1fac486 | |||
| e3cd69d29c | |||
| f7e4a83a92 | |||
| eaaacf8af6 | |||
| 3306ace54e | |||
| 8e8f563178 | |||
| 501bdb54dd | |||
| ea9acd7e15 | |||
| 9d16bac368 | |||
| dcaf86c567 | |||
| 1ff273a376 | |||
| 639fc30243 | |||
| 94e4efed2d | |||
| ef96f0b30f | |||
| 5e5a5f4cd5 | |||
| 6032cd79e6 | |||
| 702917f6ed | |||
| 4d517a0f74 | |||
| 0a1ac7a24e | |||
| 5aaf05255c | |||
| 3165135841 | |||
| f1236d0fd3 | |||
| 67576e0281 | |||
| fcbc32865c | |||
| 0b104808a2 | |||
| cf69540941 | |||
| 855ff922b8 | |||
| 9b639cbbe2 | |||
| 36b97011cf | |||
| 1c106b52f2 | |||
| 1ccb3585c7 | |||
| 25bf887ced | |||
| 75b61c87cf | |||
| 3d98b6f1f5 | |||
| 4de2a14060 | |||
| 85313038f6 | |||
| 552d2c24a2 | |||
| 7635d2201f | |||
| 9a5185ea2f | |||
| 1e44f71605 | |||
| d669e9d2a5 | |||
| 1091b43561 | |||
| 8124b25f2b | |||
| 1e7199d3e5 | |||
| 552088f0b9 | |||
| 26e2ae1b26 | |||
| f503f4d165 | |||
| 3b2adf8a41 | |||
| 592d5b8af1 | |||
| aec04a78a5 | |||
| d790688390 | |||
| 9aefa535e7 | |||
| 7115fb8a78 | |||
| 48a5e7114c | |||
| 9659c16e58 | |||
| b87efbbe54 | |||
| 724ad5ca29 | |||
| 89f8acdb4a | |||
| 60b1286217 | |||
| d9001e241d | |||
| b63afdbf99 | |||
| fe561ae3be | |||
| 675dab2730 | |||
| 2f1b54d15a | |||
| 71efa28745 | |||
| 991976cf0b | |||
| 598e1deca6 | |||
| c06948ead2 | |||
| db8399ba7e | |||
| 7dbb993dca | |||
| 630bde09d3 | |||
| 535f811536 | |||
| 66b5689f0d | |||
| 82fdf529ec | |||
| 2df36264dc | |||
| 390e648dd4 | |||
| f48d84017f | |||
| f57179ff00 | |||
| b6d330d46d | |||
| ca451c546e | |||
| db776c6858 | |||
| a109bb567a | |||
| 3a80d399e4 | |||
| 870308572f | |||
| 9848af5921 | |||
| c437e66464 | |||
| 0b8b1002cb | |||
| 1900fe9ac9 | |||
| a867f8b656 | |||
| 2d3b5d5a4e | |||
| f76f53471d | |||
| 159efbe572 | |||
| 55fcc5e3a8 | |||
| cf7dc1ca9d | |||
| 59843e7743 | |||
| 4f6eaaef10 | |||
| e7ae4d9671 | |||
| 44155c847f | |||
| a91326dc57 | |||
| 1f7875d27c | |||
| 8feb525cbd | |||
| 8f0820092e | |||
| c7518b3a13 | |||
| b2e2e8f577 | |||
| 1eece09852 | |||
| d3a78b7125 | |||
| 58a943a0f7 | |||
| 651c2ad975 | |||
| c4980c3ac4 | |||
| 556a49deec | |||
| 516a49f81a | |||
| 42cbb40719 | |||
| b88c64d80d | |||
| c0e672072c | |||
| e4fb531c40 | |||
| ef9e2d1f75 | |||
| b16bdb5fac | |||
| 8dfe4814a8 | |||
| f797c329bd | |||
| c79f45be9a | |||
| 27227a615a | |||
| d2ea2ef36a | |||
| 02403f6bb4 | |||
| b9ef0a3335 | |||
| 323fcaeb01 | |||
| b83b8df6f1 | |||
| 665e95bfb0 | |||
| d05b2811cf | |||
| ea3c2ef74a | |||
| b9217d9388 | |||
| 435f2b20d7 | |||
| 07f17f6ad8 | |||
| 554873cdce | |||
| 891c4e6bf3 | |||
| bda8171879 | |||
| 7c035d8655 | |||
| f20ea2760c | |||
| ffbae75345 | |||
| 1f487d966c | |||
| 16f1a5d99a | |||
| 26e1c21822 | |||
| 658181de23 | |||
| a74e1fe57d | |||
| c234e0b8dd | |||
| c95f5d59cb | |||
| 5341d45b06 | |||
| 140e41866a | |||
| b43f3e9a2b | |||
| 41583ad1dc | |||
| a68bae47a6 | |||
| f7108075fb | |||
| e3a3b4f609 | |||
| f14a3c0548 | |||
| 4257bd5325 | |||
| e7e145401d | |||
| ac51e598fe | |||
| 7d904cdc76 | |||
| b7361b8b66 | |||
| 87794f1886 | |||
| 605acbb708 | |||
| f4f647e20e | |||
| 97a9ddf810 | |||
| f399469297 | |||
| cfc6d02732 | |||
| 72075edf2c | |||
| fde03ae31e | |||
| 8c2b5058d0 | |||
| f07f3b0ed6 | |||
| 5758d09fdc | |||
| 888ac758de | |||
| 0d23ed571f | |||
| 4257796fb2 | |||
| f92c1a6033 | |||
| 98533234ae | |||
| 106a58453d | |||
| 4ac8edd312 | |||
| 4806001f46 | |||
| f30fd93922 | |||
| f1c8ee8695 | |||
| 16145f3115 | |||
| 3b8e55b7d7 | |||
| 6b5676d624 | |||
| 2ca329217f | |||
| 4327922875 | |||
| 0f1abde7be | |||
| 6395707f8e | |||
| ab94408077 | |||
| 1340bab3b7 | |||
| 628e2ce968 | |||
| 800774d072 | |||
| ae7dba8235 | |||
| 695c812b30 | |||
| 7632733cd5 | |||
| fe6c1afd1b | |||
| a434926ed8 | |||
| a70e77dd16 | |||
| 43104e3e15 | |||
| ffa192240a | |||
| 5db52978b5 | |||
| ccaaae3c00 | |||
| fb42853d27 | |||
| bd8505d54f | |||
| d2e3b1bc2d | |||
| 9700d89be2 | |||
| 7b599b7060 | |||
| 47d1110c0f | |||
| b3620c5a95 | |||
| 0545ccc958 | |||
| 2f6f652fd4 | |||
| 38f1c4a04d | |||
| 2cb6bec288 | |||
| 0813a2ff12 | |||
| 20054e9232 | |||
| 744abd5a5d | |||
| 2991939575 | |||
| c2f8eb46f0 | |||
| c49bfffc5e | |||
| 290847c707 | |||
| 0616ef9225 | |||
| c10671e6fd | |||
| 08131ebe16 | |||
| 19d29d252a | |||
| 277754b543 | |||
| 20c400959b | |||
| c66692f0a6 | |||
| a5bc4a7311 | |||
| 816b31faba | |||
| 80940e699f | |||
| a2af9a3633 | |||
| 5bc6d68fa3 | |||
| 739b023c51 | |||
| d3cf683553 | |||
| a7fd626eb0 | |||
| 4ebf957309 | |||
| 4cf33421e5 | |||
| 99b1200af4 | |||
| 8a79fbaa43 | |||
| 12cf71954f | |||
| 8370deb9d7 | |||
| a62901521e | |||
| 1cd2bc7548 | |||
| c8e1fb4fc2 | |||
| 6352ff194c | |||
| 19da3b8d4b | |||
| f4be07f6ad | |||
| 0301e9bad8 | |||
| fdc0627d4d | |||
| 4b62116002 | |||
| e71f402b6d | |||
| bbaf848f8c | |||
| 49506e8e99 | |||
| 26698eed82 | |||
| 6a500c45ba | |||
| 142bbbf488 | |||
| 6d5cdb9be5 | |||
| 70f011e901 | |||
| ee148b2a1f | |||
| 3b4c40a98c | |||
| c879f09400 | |||
| 52d0bf3706 | |||
| 19879d9794 | |||
| 22b3c958d8 | |||
| 7c594dd2b8 | |||
| e1e999578f | |||
| 0592ddc98f | |||
| ed50e5f587 | |||
| 6bc27d1dde | |||
| 3c50385282 | |||
| 12a4710db4 | |||
| eda16bf9f6 | |||
| 2e2ee9fa7e | |||
| e33692a5ee | |||
| 77f866f32d | |||
| f43f78df20 | |||
| 171fd8af5e | |||
| b1790524df | |||
| b9e6968bae | |||
| 8d0f043ffe | |||
| 7c1e81dc5d | |||
| 90e76984a4 | |||
| bf2497087e | |||
| 0c5f83c1fe | |||
| b97fa8a1b1 | |||
| e4813adad0 | |||
| b3ff443cd4 | |||
| 980078e79c | |||
| 0d336c2bf5 | |||
| 1ff9d92d41 | |||
| 1c50cfa265 | |||
| 9973a221fa | |||
| c9ce3ae679 | |||
| 0c28d2ce65 | |||
| 2abf0b8370 | |||
| bb77c5e988 | |||
| 41a68b20d4 | |||
| 8380edc499 | |||
| 5b28c3b12b | |||
| dda6c551df | |||
| 96a62707a5 | |||
| 8a55ffcfcc | |||
| 6646d230e1 | |||
| a94be50724 | |||
| 830ba6f4e2 | |||
| 5e9bd1011d | |||
| d0aa271e7a | |||
| 2bc48873a9 | |||
| 9487df63bf | |||
| 513a57fc0c | |||
| 11dd30e312 | |||
| 1631cc6839 | |||
| 4551350682 | |||
| 0f3a0a18a9 | |||
| cc10f71319 | |||
| bbb1e02d56 | |||
| c5e9d5d505 | |||
| 67daacd48c | |||
| c098f82deb | |||
| 3a54b3e0f4 | |||
| 15f99f17de | |||
| 37c3229d44 | |||
| fb36ef1acd | |||
| 6e8f33c766 | |||
| d0a09a8cfe | |||
| 0b9a0534e2 | |||
| c676926be2 | |||
| 6e5b8116a2 | |||
| a2fa2f99ed | |||
| d669940394 | |||
| 4834afb74a | |||
| 4e599646f1 | |||
| 4588872456 | |||
| 5ca9076802 | |||
| 959c39dac1 | |||
| 8155d80455 | |||
| 1b28266622 | |||
| 556bf0a410 | |||
| b3c22363a4 | |||
| 0813d7c5c2 | |||
| 9b9a6096ed | |||
| ddc4ed0b35 | |||
| d355ab4b00 | |||
| ba058d45a9 | |||
| be3881c8f9 | |||
| 846d11d79c | |||
| 265980e5c2 | |||
| 6e9559fdbd | |||
| a15c9110c0 | |||
| 656dcdea12 | |||
| 4c3331492b | |||
| e12a38b992 | |||
| 6c59edb93e | |||
| ff164a8637 | |||
| c659ac0f36 | |||
| ed5935d1c8 | |||
| 870b09a30b | |||
| 84494a00bd | |||
| fe0e0c6689 | |||
| b91bd4afc9 | |||
| be7c3da504 | |||
| 0306e0edf0 | |||
| 00d4006beb | |||
| 397c6a926f | |||
| 31d4006d77 | |||
| 7249a58d74 | |||
| 0351dd2f05 | |||
| c732707423 | |||
| 9495317748 | |||
| 54135e65b8 | |||
| 3235b6ff67 | |||
| 27f84b42a7 | |||
| 6e7387ca70 | |||
| ed22b4bb40 | |||
| 8377ea3c5f | |||
| 189ba53edf | |||
| 5e3b3d9a7a | |||
| 39e8f87d4a | |||
| f84bd2df91 | |||
| def350e3c8 | |||
| 6957942365 | |||
| 4d95ec0ab8 | |||
| 91d3213c32 | |||
| f57a0e3d61 | |||
| 35d1d0be99 | |||
| 4098680553 | |||
| a4e7da905c | |||
| e9232cd96a | |||
| 4f22bd588a | |||
| 2cb3423f74 | |||
| b0d1020fca | |||
| 80036f94e5 | |||
| 53d930bf5e | |||
| fb0e31a0d6 | |||
| 0860847814 | |||
| 15eb437c2d | |||
| 0dfd3cad43 | |||
| 4fd52452a9 | |||
| 2fb4387bdc | |||
| 18737386cd | |||
| 3e62aa74cd | |||
| 7805a8a6b0 | |||
| 215d49a732 | |||
| a182287130 | |||
| f3ffb6bd76 | |||
| 97e7df1850 | |||
| 853caf4272 | |||
| 85b24afdfc | |||
| b6ec24bf15 | |||
| 5a32d86fba | |||
| ef4c73ed05 | |||
| e8a4e1095f | |||
| f21b4dcc33 | |||
| aedb944c55 | |||
| f830df220f | |||
| bce6dd3d60 | |||
| 2c5b0aa100 | |||
| d1d6ab7382 | |||
| 55f25ba6df | |||
| 4e595ed2db | |||
| 9915f43a9d | |||
| c2044ca153 | |||
| 13808e78e5 | |||
| b45f1d37c6 | |||
| a02a149dc2 | |||
| 37a8aa2661 | |||
| c2b80619a0 | |||
| a2405dbee9 | |||
| 3e1b8d1c0d | |||
| 44c6ee46ee | |||
| cc7e1b9b11 | |||
| 26a06f581f | |||
| b7bbb25e3b | |||
| a7d20e4dee | |||
| 2ddd79ba97 | |||
| 5381551a05 | |||
| c10ae3882e | |||
| e70a969683 | |||
| a1011f566a | |||
| 0fd41065f9 | |||
| 2bb270f60c | |||
| 8fa2a5a1d2 | |||
| c0f0ed96bd | |||
| 0f60f1a416 | |||
| 4caa7cb5a1 | |||
| c140e4cf02 | |||
| b3a6a7c442 | |||
| 5bd7a8c04b | |||
| 21250fa474 | |||
| 84f0068325 | |||
| 9ed9a9f105 | |||
| 4bc1d521c8 | |||
| 2a2e902fff | |||
| 74ced66073 | |||
| 620bc48eec | |||
| bac0707aff | |||
| 6bc9b0c5e4 | |||
| 79cf24f237 | |||
| 883140b588 | |||
| ed9b162745 | |||
| 10663ade35 | |||
| 0295598a7b | |||
| ec3fc91813 | |||
| dd8f451752 | |||
| 37f7106970 | |||
| 3953a39af4 | |||
| 635d3f0e64 | |||
| 348b9f0b88 | |||
| 5ca7570c94 | |||
| dc21b049a0 | |||
| 014aa1df5c | |||
| 32a75074b3 | |||
| 1119034066 | |||
| 9825247a1f | |||
| a55ed8655d | |||
| 7c85e6e791 | |||
| 17efc64b9b | |||
| 00a2ab8be4 | |||
| 26aa7f971e | |||
| 1510fa1aa3 | |||
| cc2112c6af | |||
| 88b303a3fa | |||
| 0d70c62db8 | |||
| 4b2d9804d9 | |||
| ae9a7a0039 | |||
| 0d9c1da8c1 | |||
| 537b065682 | |||
| 89a13e1745 | |||
| 50846e1ff0 | |||
| 6f46710e86 | |||
| c9439d64d9 | |||
| f9e52be216 | |||
| db0d6fc3a0 | |||
| 8cd01eb495 | |||
| 9b159ceb47 | |||
| c3f8f16147 | |||
| 37f6c6a38d | |||
| b7453f35ad | |||
| ae4cbb939d | |||
| 33410d41f3 | |||
| 7ec19465a4 | |||
| 7877b169d8 | |||
| 3f5651d65a | |||
| 6f84493064 | |||
| 61d62264c9 | |||
| 3567315ee0 | |||
| fe5f000f53 | |||
| 35c580222e | |||
| 8f7d5b82fd | |||
| 2a8289e00a | |||
| 884ea50b52 | |||
| 97f12af058 | |||
| 87d60dcedc | |||
| a775ca5ca1 | |||
| 524364e7ac | |||
| 12b35f5f69 | |||
| 797d06e414 | |||
| 2c33e7aa04 | |||
| a6ca4b2f40 | |||
| fbfeffeca2 | |||
| 494fd4cf67 | |||
| 982751de34 | |||
| dd520c1666 | |||
| bfdbce831c | |||
| cd79c75da1 | |||
| 310de0f52f | |||
| 5c4b217e3e | |||
| 13adccfebc | |||
| 56b7903323 | |||
| d0f7b4cdbc | |||
| ea52721182 | |||
| cc8688d998 | |||
| 4f29e19992 | |||
| b273c11d03 | |||
| 011c362d7b | |||
| 6b6a2b4361 | |||
| 9ce550a838 | |||
| d27d7dcf47 | |||
| 40ebe92e19 | |||
| b5cb847890 | |||
| 6c559fcfe3 | |||
| de8a134f78 | |||
| 165abf2e35 | |||
| 287bbf0130 | |||
| 2e4f4234bc | |||
| c8061826e1 | |||
| d8d0fd770d | |||
| 1e90c6f106 | |||
| 8bbb4780e0 | |||
| 21d4ef015a | |||
| 324824c936 | |||
| c8ab2659ce | |||
| a1963552c2 | |||
| cefc0d317f | |||
| 9fcb6b732b | |||
| ec01c0f4a9 | |||
| 6eed454ea3 | |||
| 640b76e5bb | |||
| c2f7b59d80 | |||
| c19f76aa1f | |||
| 6ce2c134ac | |||
| bc17643c83 | |||
| e6efe42b0d | |||
| 0754eaa908 | |||
| 20d281f1c6 | |||
| 5ff6d4f08b | |||
| e905ac12dd | |||
| cac9944f08 | |||
| 57ca7697bf | |||
| d2e45758c4 | |||
| f720b32124 | |||
| 3d95cee3b1 | |||
| e28e869caf | |||
| f704746f42 | |||
| f220dcdc52 | |||
| 791c26bd39 | |||
| d0451cbcb9 | |||
| 3282156729 | |||
| 5d1154b8bc | |||
| 3b358da302 | |||
| 543e630c15 | |||
| 754bea531c | |||
| 6d8efd56ea | |||
| 764327dabd | |||
| 576f7e3483 | |||
| dab14322b0 | |||
| 570e643786 | |||
| bf843d5890 | |||
| 82ebac3c63 | |||
| 4aeafce480 | |||
| 9cb7df172f | |||
| 29b8025030 | |||
| e39c260197 | |||
| 76f0946484 | |||
| 3bdb52d1b1 | |||
| ca1d9c9c97 | |||
| 48aad3c01c | |||
| cd5fd0ca66 | |||
| ed9a8cd91e | |||
| 5b00938873 | |||
| 2aa9f7d108 | |||
| 0fac43dce7 | |||
| cf0aaef43f | |||
| 773df55cc6 | |||
| 2d97966c7a | |||
| a27ed4abc5 | |||
| 33e3bf805d | |||
| 9a0f248663 | |||
| 3d6513cd2c | |||
| 5a195f07b7 | |||
| ff9a3892f3 | |||
| dcb66fe62d | |||
| 4bc133f05b | |||
| fef40c21e9 | |||
| b03112d6bb | |||
| a6e664dce5 | |||
| 405eede0df | |||
| 5b10678a34 | |||
| 0c6b2884a4 | |||
| 9fcfef456e | |||
| 68f787eca8 | |||
| a2033f575d | |||
| 1e7d260a6d | |||
| 75f1bbc472 | |||
| 6853880ece | |||
| 5b0f0ba040 | |||
| efd62618df | |||
| e07767d470 | |||
| a3c6365c2c | |||
| 78f5730311 | |||
| a1f804b6d6 | |||
| bff7aaa055 | |||
| 5d911ebc7e | |||
| 839e0c35e6 | |||
| 45aa652122 | |||
| 692ac59393 | |||
| 4919e40b80 | |||
| 4cefc42b25 | |||
| c76adda91e | |||
| 4f0fa07db0 | |||
| c628b8201c | |||
| b3530287e7 | |||
| 3cc19389db | |||
| 0dc5179b8d | |||
| 7e36185c93 | |||
| 7504f7a7ab | |||
| f91331dd34 | |||
| ceb8628d01 | |||
| 8ae4d75dd0 | |||
| 25b571fd20 | |||
| 49b03a5ce3 | |||
| 05b6da1c99 | |||
| b39ece0bf5 | |||
| bbc12ddbca | |||
| 0496d46ee2 | |||
| 7a30f23656 | |||
| 9895f8a1af | |||
| c4208da11e | |||
| 52ca0eccef | |||
| 590634ab72 | |||
| 3d1d706d0f | |||
| d05f5d020b | |||
| 4c3b1bca87 | |||
| c93ea1c7e1 | |||
| a92c118c4f | |||
| 6868c77bc3 | |||
| a10745844e | |||
| 4ab98e1db3 | |||
| b4be9e52f7 | |||
| e07e41e4e4 | |||
| 99d212d0e1 | |||
| 3c2ab31708 | |||
| 5a2a840b79 | |||
| 2006706be6 | |||
| a6b3d73a84 | |||
| 9a7d7736c6 | |||
| e60d1fec50 | |||
| b6d4f9d6b4 | |||
| f506b1020b | |||
| 02a1dd4d4b | |||
| b4869c1e7a | |||
| a6be23157b | |||
| 7cb54cefcb | |||
| 872f99870d | |||
| 81df7743d4 | |||
| b6e88f0f1e | |||
| ed4d1d577d | |||
| a3516b5939 | |||
| 8432d3dfba | |||
| a1c86812a4 | |||
| 0e5648052b | |||
| 0e7d4870f2 | |||
| bb719f5012 | |||
| 74d4b083f4 | |||
| 4b9581906b | |||
| 69cb628e1e | |||
| e162275798 | |||
| 0e9247fff2 | |||
| 991d41f4d2 | |||
| bcf1d3ce9a | |||
| 396d8a5bf1 | |||
| dc8537ca2a | |||
| 44dff99315 | |||
| 247960892f | |||
| 837110aa37 | |||
| df366a3b09 | |||
| c3fec098f4 | |||
| 4c752d635b | |||
| 69d0c57c09 | |||
| e2711b9710 | |||
| 167def3f88 | |||
| 3545da3d9a | |||
| 709192cc29 | |||
| f4c9cab83f | |||
| c17ac70563 | |||
| e7e59aad8f | |||
| 1be50a37dd | |||
| ab710f5a62 | |||
| b96c63fc67 | |||
| 01114cd149 | |||
| f0c13b0f34 | |||
| 9fd754ffb4 | |||
| a9cd2d7e92 | |||
| 1e33916fc1 | |||
| 9baec7f4bb | |||
| dd5d2b95af | |||
| 1084a99588 | |||
| b7f6aa3a42 | |||
| 7fb053dfad | |||
| 8702b475c2 | |||
| de58d656b9 | |||
| cd715abe19 | |||
| bc93c8d345 | |||
| f470423173 | |||
| 3602f133e0 | |||
| f7e636d4a6 | |||
| 7430d93327 | |||
| 7be0458198 | |||
| 45242269bc | |||
| d5e7c2a58e | |||
| 561e4f30f3 | |||
| 85e1a75489 | |||
| fc10daaefc | |||
| bb6377f539 | |||
| 23a0922869 | |||
| 3292fd90cd | |||
| b658bd3def | |||
| dcc4d68593 | |||
| 99808b521f | |||
| cd712f3c66 | |||
| e5452830cb | |||
| c2b3283e46 | |||
| 3774eda588 | |||
| a26bd6ccf9 | |||
| ad5823572c | |||
| 45bc5e553e | |||
| fde339f11e | |||
| 04eda27720 | |||
| 1c6d2c1242 | |||
| 89cbddf1c1 | |||
| 6593a02e3f | |||
| 4dc7bac632 | |||
| 449bdfa94e | |||
| cc889e4ef5 | |||
| fa57c5163b | |||
| 77abeea3dc | |||
| 986c45d61e | |||
| 1b11a5aa1f | |||
| 187a595f8d | |||
| df5317437c | |||
| aac23afcbf | |||
| bf75bb7ff2 | |||
| ca42a83a82 | |||
| e55f24d8ee | |||
| 491ed76fd5 | |||
| 4775a3fb84 | |||
| 767c686fa6 | |||
| 404a0196b7 | |||
| 00b0ef6108 | |||
| 0f75001894 | |||
| b201d19590 | |||
| 5cff763e23 | |||
| 84b0d2431c | |||
| 474213f29f | |||
| 4f510987f4 | |||
| d5ab0ef22a | |||
| af35e82206 | |||
| 5620f0d9e8 | |||
| 77e8f77cbf | |||
| eb2ace5129 | |||
| 949589e6e3 | |||
| 94f96d6d08 | |||
| e2041e2509 | |||
| 57baeb62a9 | |||
| f201f31712 | |||
| 3097f10c43 | |||
| 040794fa00 | |||
| de831fad0f | |||
| f1ed2ce68b | |||
| bbd0c29ab0 | |||
| 8181c66a34 | |||
| 3ed26e08d2 | |||
| cdfd960bff | |||
| 8449d1f0f0 | |||
| d39483be60 | |||
| 2a4ffc0507 | |||
| 844ad92767 | |||
| fbe99e481c | |||
| 2d827cb808 | |||
| 80b287d6c6 | |||
| bce72a3002 | |||
| 8d46990cf5 | |||
| 7422c0fe32 | |||
| dd628b0a8f | |||
| 727e5f27d0 | |||
| c86ef30b16 | |||
| 6d8cce8d06 | |||
| f6fb8ee7ff | |||
| d312b76c04 | |||
| cde7dd261e | |||
| 53a436e564 | |||
| d8e87a192d | |||
| c71d8cc85f | |||
| 35646ec32d | |||
| d1e020d2c3 | |||
| d945f54db5 | |||
| 8921c1b975 | |||
| 1783105012 | |||
| 50ada34de1 | |||
| 503f0dc923 | |||
| 4508032489 | |||
| e448ca81c6 | |||
| ef14548621 | |||
| bf6132088b | |||
| 7064ba6b37 | |||
| 3593c48199 | |||
| 510112e465 | |||
| 3acc89c6a3 | |||
| 0c73fc97f4 | |||
| d760520b6a | |||
| 2d9808f1fd | |||
| a0ecec7ee9 | |||
| 4c05bc8e07 | |||
| 03eb5443a9 | |||
| 32cb9810a3 | |||
| 903a8e0aa1 | |||
| b176744b2e | |||
| 61528f6a8d | |||
| 1feda6a6b9 | |||
| eb8fe63815 | |||
| 20f07bc817 | |||
| 99e24da468 | |||
| aea2ed07cb | |||
| 626e308abc | |||
| 15b6cb0620 | |||
| b45cb31563 | |||
| 3993d8b30b | |||
| d43a4ef3a1 | |||
| 4bc9f373da | |||
| fad19a1e26 | |||
| af8eee581d | |||
| 2d7305f909 | |||
| ef3668d1bd | |||
| 5f4f478ed1 | |||
| fb6a4e0a93 | |||
| 699f63cdaf | |||
| 9e140a76d5 | |||
| 1488a1991b | |||
| 34b4f98044 | |||
| 8ecc6d1181 | |||
| 81e4e2db51 | |||
| c2db5b9e12 | |||
| de936a15d3 | |||
| e379dfb744 | |||
| 448da41ee9 | |||
| 5321c8c89f | |||
| 0864ea9653 | |||
| a462a4dfaf | |||
| a70816e545 | |||
| 737970b47a | |||
| 4853b802e7 | |||
| 35161781b0 | |||
| 9b094eb108 | |||
| 208e064d83 | |||
| e8e74d840e | |||
| 24a766349b | |||
| ea8325c4c3 | |||
| 29d280905c | |||
| 1a27959c9a | |||
| c32d09bedf | |||
| 41f3e837e4 | |||
| 10f32ad022 | |||
| 850f195880 | |||
| 85d61a0656 | |||
| fba74d947e | |||
| f18ca5877d | |||
| f7dc53fb73 | |||
| e5ceef81d8 | |||
| 7057ee29a9 | |||
| fbb76b5be9 | |||
| 2d9cda8c54 | |||
| c498fb2376 | |||
| 3b53cf6654 | |||
| a32f897499 | |||
| 1d1bf9d262 | |||
| f5d802cdd6 | |||
| 5d8bea3cb6 | |||
| ab867c3e9e | |||
| af12ff49b8 | |||
| 4387278b94 | |||
| 32ebf73a32 | |||
| ec0517cd1c | |||
| 69078aa337 | |||
| 9850988784 | |||
| 6162683e16 | |||
| 75e458604d | |||
| 88d1ba7a31 | |||
| 6ecb651849 | |||
| 938b339827 | |||
| c7c94432ed | |||
| 9822bf3d0a | |||
| 4ddf75c2ba | |||
| 53b01bc4a9 | |||
| 27ea3b7a1f | |||
| 9714d5976d | |||
| b679ad903d | |||
| d7db9a38a0 | |||
| 50a907c5c1 | |||
| 61e7ed156e | |||
| 1487401650 | |||
| a7081a05c4 | |||
| 2372438f62 | |||
| 2d1be1e482 | |||
| 0a913bdf15 | |||
| 0f64520f5a | |||
| 1d32e8698a | |||
| 08257551fc | |||
| 5723a0e153 | |||
| a964e97586 | |||
| a724a19897 | |||
| 6660b6ef2d | |||
| 767c397304 | |||
| 3499745502 | |||
| ad2aa3a054 | |||
| 25298151ac | |||
| 4f3fef47ba | |||
| 9b69221ad1 | |||
| e97e4d0b5a | |||
| 27f68e676c | |||
| 8afc632460 | |||
| 634f7d7ab1 | |||
| a772c1db67 | |||
| 3427456f3d | |||
| ed038ea07d | |||
| e344975f94 | |||
| bd84174adc | |||
| 9f43c236b9 | |||
| 7dd92ca62c | |||
| 84df6f4731 | |||
| 318148da99 | |||
| 632759e106 | |||
| 4863ac137d | |||
| 5948cdf77a | |||
| 38744728bb | |||
| 3e4ef3b9ff | |||
| 66437cab97 | |||
| e2f1a58736 | |||
| 880338a5e0 | |||
| fd3b49a941 | |||
| 73de7d58b0 | |||
| b98e0b1e7d | |||
| eb9d90364e | |||
| 9b1fe90fad | |||
| 1c32d6451b | |||
| eb9fd9fe42 | |||
| 16d8075db8 | |||
| 5728c49d66 | |||
| 1b9fd320b0 | |||
| 4dbdfbd0cb | |||
| 48af61ef3d | |||
| dcb58cc10c | |||
| ad92fa0e91 | |||
| 64d741957f | |||
| b36a6cac11 | |||
| bbb8347e17 | |||
| e105919f5d | |||
| 87e29d0191 | |||
| 33fd289021 | |||
| d0dff0b92d | |||
| 6d0ebed3e6 | |||
| 95962ae533 | |||
| d582425684 | |||
| e87ef87352 | |||
| 905615df73 | |||
| 0fa22b2d47 | |||
| 899c548e82 | |||
| e821927e1b | |||
| 74169f945b | |||
| 04fc68a143 | |||
| 0f9f226382 | |||
| af195ff6bd | |||
| e54eeb9e81 | |||
| 51fdb4b99b | |||
| 3bb6fcb20d | |||
| c652aea537 | |||
| 4f109ac90d | |||
| 5981ea15b3 | |||
| fe892ddf3c | |||
| 8b2a55267a | |||
| a3dc7de54b | |||
| 74d39e6711 | |||
| 3de53eb0cc | |||
| 80f27ebe8d | |||
| eb1c560a56 | |||
| 85f796e984 | |||
| 922f54377f | |||
| 3a1088f130 | |||
| bca3131758 | |||
| 90eb26272b | |||
| f6e6d5571b | |||
| 18152ef1d0 | |||
| f0d8f49f3d | |||
| 8d173c6d39 | |||
| 694c87e313 | |||
| d2888af570 | |||
| bf0f941856 | |||
| 5b4ae62324 | |||
| 9cbaa829a4 | |||
| 6c220d053c | |||
| 8e9e52b62d | |||
| 488915bf47 | |||
| f75e6b3d64 | |||
| 7a9ffd94d1 | |||
| 35c73b0a3a | |||
| ba9a982b6d | |||
| 04df333bc8 | |||
| 259b78de79 | |||
| 6e979b77ff | |||
| e928d572a3 | |||
| f1d8d4f13a | |||
| 308fc078f9 | |||
| 4456ceb64a | |||
| 47b7fb050e | |||
| dafe541679 | |||
| 368c2ce6fc | |||
| ae600a198f | |||
| ee11cb8a4a | |||
| 0f0301c90a | |||
| eaae20d3f2 | |||
| c932effe94 | |||
| 6173b52047 | |||
| 37faef8a17 | |||
| 0e43079c42 | |||
| 8f81a80187 | |||
| cbd96e75ac | |||
| bedcefa3bd | |||
| b40abb4b0c | |||
| f3d6859585 | |||
| ae41e146d6 | |||
| d8287a9d9f | |||
| 104ed24b07 | |||
| 852a687748 | |||
| bc19437d12 | |||
| 463f5483d1 | |||
| f001d96694 | |||
| 4f71de9bcf | |||
| a51079b36b | |||
| 92ca4dc3ca | |||
| abea221158 | |||
| 050845c659 | |||
| 88330bde9e | |||
| de9cd646b8 | |||
| 60435ea65b | |||
| e532bb58ed | |||
| cb220b5bf2 | |||
| 6a72622ee0 | |||
| 1155d2f291 | |||
| 55eea31b2d | |||
| 3873394168 | |||
| 52185b636c | |||
| 56054d0197 | |||
| 9c167300b4 | |||
| 3504aa24b3 | |||
| 2e8864ae55 | |||
| 645c3a07af | |||
| a030d8b3cf | |||
| 69aa32005f | |||
| 2a28b8157c | |||
| 87af0d09cd | |||
| 8d3d63c448 | |||
| 9de9ee3c38 | |||
| d0702ed0d2 | |||
| dc8350daad | |||
| 9d3239931c | |||
| a0e6e3a6c4 | |||
| ee98f8cb48 | |||
| 52daaf0109 | |||
| 85eeafb3ce | |||
| ca3326f113 | |||
| 711991ec7c | |||
| 984d4c9589 | |||
| a53ba0a6ae | |||
| 5ceda50b55 | |||
| b38a017c1a | |||
| a402adb714 | |||
| 9ae2207556 | |||
| 9ff724b1f1 | |||
| 0c62fae2a6 | |||
| fe5ab21601 | |||
| 5557a89fa4 | |||
| 041a772cb9 | |||
| 9fef80c409 | |||
| 02de2e46dd | |||
| 01830171be | |||
| 98d60d4ef5 | |||
| a2e01af9d4 | |||
| 0cc0871e61 | |||
| d30f543f5e | |||
| 507cdfd713 | |||
| d8399b19d2 | |||
| 1243024951 | |||
| 802d2eb771 | |||
| a60d38bcfa | |||
| 10d0ca133a | |||
| b7ce93111a | |||
| 10754adf98 | |||
| 3872cb5f49 | |||
| a8e400bdb1 | |||
| f83d55c443 | |||
| a92c72e088 | |||
| e58218255e | |||
| 7e5eff84e2 | |||
| a103cda7af | |||
| 9cf6f40cc4 | |||
| 7260061d38 | |||
| ddc2d64d91 | |||
| ee741fb22a | |||
| 67e8015b57 | |||
| defe263bfe | |||
| 05a443d5a4 | |||
| 4104593f69 | |||
| 612abeb222 | |||
| 6668138185 | |||
| af55b517a8 | |||
| 9bd0739bf4 | |||
| 5976528bbc | |||
| 289c96db96 | |||
| a1dd50dfd1 | |||
| 64470a7171 | |||
| d998a07829 | |||
| 20ea828478 | |||
| 5bc895018e | |||
| dfa83b05f0 | |||
| b5b9378e16 | |||
| b5f491f79c | |||
| 960b195915 | |||
| 790e73412b | |||
| 99570266c7 | |||
| 90bfa3f446 | |||
| 2e256916f5 | |||
| 3561e701ac | |||
| 2391518b08 | |||
| d5c4787432 | |||
| 6077dacf88 | |||
| 421b200005 | |||
| 5d84176ff2 | |||
| bdd49afc51 | |||
| e1a3f17d6d | |||
| f783d77c56 | |||
| 9fe7b859a6 | |||
| d0fe77e4a4 | |||
| f8d9e9be45 | |||
| fde10f3c3d | |||
| 80a265a83b | |||
| d0ef63264c | |||
| 48bce5c885 | |||
| f7600e6004 | |||
| a9790b1420 | |||
| 25e99495f1 | |||
| 479720bec8 | |||
| 0471a03a9f | |||
| d7c3aeea28 | |||
| 49291d40f2 | |||
| 1132e3ef91 | |||
| d15595b953 | |||
| 87cca2d5f2 | |||
| 0828f5f7cb | |||
| 8e419c02f2 | |||
| 0b66a5442d | |||
| 3f6fce8343 | |||
| f431c968fc | |||
| 3c3ff7d91a | |||
| cf6e7bf7ad | |||
| 2c8ac538cb | |||
| bb246ded2f | |||
| e09cbecb61 | |||
| 8aefba6857 | |||
| 7fdb53d0fd | |||
| b7974ae5b6 | |||
| 350d5237e0 | |||
| e57b1047f2 | |||
| 15d994a4ee | |||
| 180d30ac20 | |||
| ada9065b1f | |||
| 2caa69c05e | |||
| f943c7945d | |||
| 97794c6698 | |||
| f7e7f76470 | |||
| 440a7fab56 | |||
| ca4f046c52 | |||
| 6157e61a40 | |||
| 949d4d1e5a | |||
| 1ac2f8fe25 | |||
| b30e28e215 | |||
| b97d391266 | |||
| 5b7ed4d48d | |||
| c58f280bfd | |||
| e1103fbb34 | |||
| 25162acccc | |||
| 088332d9ea | |||
| d44ee7316d | |||
| 7848aaad0e | |||
| 08a7eb1619 | |||
| c0247c1fbb | |||
| cfef781973 | |||
| 102e00f389 | |||
| 21c08d4cc5 | |||
| d719150647 | |||
| 425e8e6c4a | |||
| 587fc2a643 | |||
| 269de06e73 | |||
| aad7d658e6 | |||
| 05876b17e8 | |||
| e4a87bae09 | |||
| 9b8cfc874f | |||
| 7e461dfaf2 | |||
| df81eaed3b | |||
| 78a442d417 | |||
| f08b12544b | |||
| dc7af9045a | |||
| c5e10d4cf2 | |||
| abd1a49096 | |||
| 13adbf272b | |||
| 59edb5bbf8 | |||
| 6b898027fd | |||
| 08c0b72476 | |||
| 908898eed0 | |||
| 3c40764276 | |||
| ce4974c7d0 | |||
| c8135e0e3f | |||
| a877f2a1e3 | |||
| ef9b7a7b6c | |||
| 3e7321dc1b | |||
| defe1daa65 | |||
| d4b4f2d589 | |||
| 7e125c7d33 | |||
| 1466c4c62d | |||
| 4307be7c27 | |||
| 12adbb8bc9 | |||
| d00579ef5b | |||
| ccc7d8c4e7 | |||
| 9fbe225681 | |||
| 1e7cf01ea2 | |||
| 7954681ab7 | |||
| 87061c3480 | |||
| 3ab4ac9a4d | |||
| 36eb7b34a3 | |||
| e688a91a81 | |||
| f6be87e77a | |||
| 2b7a88c216 | |||
| 1f7bfc2edc | |||
| 0e6e5a866d | |||
| 3e56143161 | |||
| 3d2cce349c | |||
| 7d86ff7d5b | |||
| ffac2d4e1c | |||
| 5c1dd0a9b6 | |||
| cb91e487cf | |||
| 6c10873968 | |||
| 36fa1d9f64 | |||
| 0bf58a097a | |||
| 6b632e457d | |||
| 36ba64bb70 | |||
| 64831f8355 | |||
| 7ee3afaa9c | |||
| 272fae4a17 | |||
| d92ca41de7 | |||
| 8fb3d49e3e | |||
| 7d3bd12106 | |||
| af3883332e | |||
| dd011f0dea | |||
| 3e924af90d | |||
| 50cb55f4a0 | |||
| e32590c6f4 | |||
| 34bb2cc88a | |||
| d3eb2f3af3 | |||
| 7a190ec963 | |||
| b8be391fbd | |||
| 5efb30f584 | |||
| 23d6103c30 | |||
| 8138bf06af | |||
| 5ce004d992 | |||
| 52d43d147c | |||
| 15d4c72195 | |||
| f401a83ceb | |||
| ca48cc063d | |||
| 765d6961aa | |||
| 006189f340 | |||
| df0e170c88 | |||
| 23aff8de20 | |||
| b6fb549f7f | |||
| 0436d3a7d4 | |||
| b6df29bf46 | |||
| c95adf1fa8 | |||
| a8cf9e66da | |||
| 8ccb0e6ae9 | |||
| e0478e0103 | |||
| 2fddbfb91e | |||
| 92d1cee5fc | |||
| 374edfa896 | |||
| 0a8a5aae48 | |||
| 055726a48a | |||
| 9c8fd94869 | |||
| 361ca135f0 | |||
| 5fe8e1e1a7 | |||
| dcde3209f5 | |||
| 76f6d9a012 | |||
| 4919e4a7b2 | |||
| 8399d883a2 | |||
| da0581fa73 | |||
| 6990095e12 | |||
| c210ff9c06 | |||
| 04647acb79 | |||
| 78bef146ce | |||
| 0bd2a15a5c | |||
| d15e237c7a | |||
| b86bdc2df1 | |||
| 0bf034848c | |||
| c37b87c13d | |||
| fc0c935433 | |||
| 2935c24744 | |||
| 7c164c7c04 | |||
| 8c4755ef18 | |||
| 6cce6686c4 | |||
| 854479c360 | |||
| 5039003993 | |||
| 43cf541e3d | |||
| 7d644ddd30 | |||
| b498fea949 | |||
| eae1179c69 | |||
| 044b442f04 | |||
| 8c2cf5e159 | |||
| 9415e94172 | |||
| cc9f303894 | |||
| aea65769b9 | |||
| 94fce75d51 | |||
| c96ac21e60 | |||
| 34d567905b | |||
| cf5da46042 | |||
| e0478043ed | |||
| fc09854680 | |||
| 9edc10c316 | |||
| 2c9db52229 | |||
| 72e26b83dd | |||
| 7bb6c7eb89 | |||
| 856325fa21 | |||
| a81c8240a0 | |||
| bc4055dab4 | |||
| 968560c15b | |||
| 8416334be5 | |||
| ca311c3209 | |||
| 5de4c83ea9 | |||
| 7937ba23e6 | |||
| b6972e4de2 | |||
| c87c6987fe | |||
| 23656f4c32 | |||
| e102c05f5c | |||
| e87c4690ad | |||
| 1f2a334841 | |||
| d6e91f15e6 | |||
| c86689dd24 | |||
| 2862e17369 | |||
| a4ec5ffc4a | |||
| dc5eb76172 | |||
| 91f12e8128 | |||
| e10ed0a1c8 | |||
| 11f05c9e68 | |||
| 0ae33fe218 | |||
| f1ff1332ba | |||
| 6f7a9beaad | |||
| 5eb23aae24 | |||
| b2591ae029 | |||
| 38629f6b18 | |||
| 380525c842 | |||
| 7f19c866c3 | |||
| ae293a368b | |||
| 707a677a2c | |||
| a87efd30ea | |||
| 38236613d0 | |||
| 19776ec98c | |||
| 73d0981ae3 | |||
| eedf97a68e | |||
| 6fdb9b3a5a | |||
| e07a4fe3f6 | |||
| 61858083b8 | |||
| 6d3448aa13 | |||
| 315aba5f29 | |||
| 9039bd7cd9 | |||
| ff2cee918d | |||
| 1822eea3c9 | |||
| 77801303c2 | |||
| e80a700fa9 | |||
| 84f6ff558b | |||
| 4912d0564e | |||
| 6e8a990b49 | |||
| 75f6e95784 | |||
| d224af4928 | |||
| 04311d76d5 | |||
| 2ac16efdea | |||
| ccd1ce1c9a | |||
| 2c96db86b6 | |||
| 2471ee2099 | |||
| 815fb69f77 | |||
| a23dd42da7 | |||
| 0b9077f1e1 | |||
| 172a95c36c | |||
| a6f05cd0c9 | |||
| 40daf332fe | |||
| b6f35c7e81 | |||
| 985e244a91 | |||
| f12b516502 | |||
| 2945d40981 | |||
| 3702bbf24e | |||
| 7a5d8ff615 | |||
| 7a0b3672f4 | |||
| a34dc7c064 | |||
| 961600e3f2 | |||
| f57aca4da4 | |||
| 9f8e95eab4 | |||
| 49ebab3861 | |||
| 29732ffa6a | |||
| 3c57c30315 | |||
| a3bbbe506f | |||
| c8f85a6d8d | |||
| e56f4d6939 | |||
| a7992a0e5f | |||
| f1389f329d | |||
| 02cf8bbd62 | |||
| 91f153efd9 | |||
| acb8cda2c2 | |||
| 3d7a2518ce | |||
| 20030358ed | |||
| 00f9950fcc | |||
| ca1096eee6 | |||
| 843d314d07 | |||
| 43644a6a24 | |||
| 200ac0a279 | |||
| 04764319d9 | |||
| 69611dbb21 | |||
| 1e319383d6 | |||
| 4616acbc31 | |||
| ab1ac69afb | |||
| 5369748ad8 | |||
| 5d5c45c193 | |||
| 1fa0557ff4 | |||
| 198cddd155 | |||
| 4a02f7dba5 | |||
| 103219e568 | |||
| b7f7ab3c8b | |||
| 99e20b06ef | |||
| dad3725045 | |||
| 12e92ec887 | |||
| e7634ecf85 | |||
| 6652d820d0 | |||
| 856d05d6ed | |||
| c5ba7d4e73 | |||
| 1e8949a647 | |||
| 30004f72f4 | |||
| 23b7fb5eb3 | |||
| 1cf7717c83 | |||
| 320e8cb7d3 | |||
| e747d8dacd | |||
| da5e0ecabc | |||
| c55ea69090 | |||
| 977209eee9 | |||
| 7bb5261c18 | |||
| cc111948c3 | |||
| a5b7550ea1 | |||
| 179827afc8 | |||
| d0ea49809f | |||
| 65b428489f | |||
| f34d871999 | |||
| 75437e126a | |||
| 47976e7e4f | |||
| ccbbc0e704 | |||
| 371de5d15d | |||
| 579429471d | |||
| 178cfb4f17 | |||
| 150b782788 | |||
| 416a978b18 | |||
| e7824728f7 | |||
| a869d0e75f | |||
| 3177219fa4 | |||
| 058c7215cf | |||
| 8ce9c3b696 | |||
| 3267f4221b | |||
| 7e3adb191b | |||
| 40653d08bd | |||
| e7a7dfb881 | |||
| cd63af4571 | |||
| 5fa381b862 | |||
| 9bf68eab82 | |||
| af3097e3a9 | |||
| d76577da29 | |||
| 644209cdb6 | |||
| 1d7c6ffc25 | |||
| e29469f5c9 | |||
| 9a96e055f4 | |||
| d03bcf7fc8 | |||
| 534a3a76e2 | |||
| 1a7e025dd7 | |||
| 8d219d268c | |||
| e1b93f7bf0 | |||
| 6c60dbe11b | |||
| 5b2303c44e | |||
| 93f4acfccf | |||
| 93862c109d | |||
| 6e17414567 | |||
| bc43df5e45 | |||
| 403149f6e9 | |||
| eceac892b9 | |||
| a4479d98f6 | |||
| 2441886c6f | |||
| e88fb375eb | |||
| 6224948ceb | |||
| 14a0d13250 | |||
| a4d807bdd8 | |||
| e1f19af090 | |||
| 937a4c7497 | |||
| de5b4ee2c2 | |||
| 95f4a6c3a6 | |||
| c8e835f24e | |||
| 9879df94f1 | |||
| 7661678f37 | |||
| 414f8b9545 | |||
| 5558bf2397 | |||
| 51a0699f34 | |||
| 7791c450c6 | |||
| cc46f871d7 | |||
| aff193805a | |||
| adcc83cc72 | |||
| d22a414209 | |||
| ca6d1c6f34 | |||
| bbc55b5b62 | |||
| 51a6e810f6 | |||
| 0570270204 | |||
| bd840aa4bb | |||
| e77447363d | |||
| baa13adfbd | |||
| dc2ffd3867 | |||
| 49f3a0f7df | |||
| d2970abcc1 | |||
| 7f295ca38c | |||
| 7b6318d4e5 | |||
| 07c0df828e | |||
| fb052ebc62 | |||
| 4fbbf0e673 | |||
| c32c0abe3a | |||
| 4c972f6cd3 | |||
| a2e2f1404e | |||
| ea7b09fa72 | |||
| 22ac7d8d7b | |||
| 21fd6c172d | |||
| 57f5d669ce | |||
| 36fb7c4b5a | |||
| eb0d0af3f8 | |||
| a8942b33bb | |||
| e8ee8940f6 | |||
| 088e3f7c2c | |||
| 02aad95a94 | |||
| 4bf8ae2e72 | |||
| bc89d1a7d0 | |||
| c8a4bc42f5 | |||
| 664ab7706e | |||
| 2922781fc5 | |||
| 923bdeda40 | |||
| 06553e8ac9 | |||
| 36b63d9378 | |||
| 1826e895bf | |||
| 5fe54eb7d1 | |||
| 29d5393392 | |||
| d4df77814a | |||
| ac8e629412 | |||
| bb71844699 | |||
| 46c82c41cc | |||
| 715a7780e8 | |||
| 51d63e5ec6 | |||
| 5ceeb6a9a2 | |||
| 2610d1a3cb | |||
| f0e8b63aa7 | |||
| 8f37fd9ca9 | |||
| bf2c654fcf | |||
| 490caa6a7d | |||
| 34d49d67a7 | |||
| 5705aabcce | |||
| 90c10231c1 | |||
| 883273db64 | |||
| c535381148 | |||
| 91041ca59e | |||
| 3a2a7b25e5 | |||
| c791511e79 | |||
| c488e50137 | |||
| 0f322631bf | |||
| 3b0bc9901a | |||
| 6cd682d35e | |||
| 0a1f3f88f6 | |||
| ef870e8357 | |||
| a9227b7c58 | |||
| 8c48828cac | |||
| d9b4b9d874 | |||
| 5964bd7d55 | |||
| 6bd1894243 | |||
| d6648ea90f | |||
| e1643fa436 | |||
| 413192e236 | |||
| 2013b24985 | |||
| a76cc77d79 | |||
| e99ed374b9 | |||
| 18454d61fc | |||
| 8183e77185 | |||
| 85be221f60 | |||
| 1fead47256 | |||
| 77bfeb04e0 | |||
| 58d4c36c50 | |||
| dea17ee6ab | |||
| e2185b74f5 | |||
| 6d52ce27d3 | |||
| 9315e9fb63 | |||
| 434b001336 | |||
| 5c789b2b0a | |||
| b6975fb763 | |||
| fa91543c94 | |||
| 77ed685929 | |||
| d7a2ddaef4 | |||
| 241fb3b228 | |||
| e03ea119a9 | |||
| bcf7ad1a63 | |||
| 82120069cd | |||
| 6f9fa293fc | |||
| e0c3b831ab | |||
| e658f496d9 | |||
| b014af8d9d | |||
| 4d56439a62 | |||
| b515286472 | |||
| 90d1d23eed | |||
| 4e29192636 | |||
| 57cecb3b51 | |||
| b3ee99225b | |||
| 0c4bbcfe62 | |||
| 76d90e1f26 | |||
| b424d6e3f5 | |||
| c2c408d25f | |||
| 3060ccf3b2 | |||
| 4be9de3f8e | |||
| 74212cfa2f | |||
| b413954494 | |||
| 5938b2da41 | |||
| 7db1051044 | |||
| 837d8b6c88 | |||
| ef7a663458 | |||
| dcaccddd78 | |||
| adf6a744eb | |||
| 19eef10a86 | |||
| 133139d2c8 | |||
| 5be201f3fc | |||
| cab2cad423 | |||
| a50b66ae1f | |||
| 3a9404aab7 | |||
| d3d14b8ef7 | |||
| 48ceded50f | |||
| 09527fdc07 | |||
| 74f1f6f4e1 | |||
| cc7eec7b28 | |||
| d2183e5e94 | |||
| a00d31dc83 | |||
| 76bc95d44f | |||
| f06027b097 | |||
| 2fe4c9200f | |||
| 1e66ba8326 | |||
| cc507b359e | |||
| 0092f9a187 | |||
| 08c303fc76 | |||
| 64f09644d0 | |||
| d915cc915b | |||
| 03c5985350 | |||
| 61e4250552 | |||
| 231041b43a | |||
| f16ff60bdc | |||
| 48f717367c | |||
| 18692d45c6 | |||
| 8e5d279bd7 | |||
| 87007eb3dc | |||
| 3c8ea48fc8 | |||
| 40dfff3c42 | |||
| 33a9568707 | |||
| 9cd61123d8 | |||
| de5f1809e7 | |||
| 9df7b88129 | |||
| 6aef43ea60 | |||
| d7a70d2571 | |||
| d7d874c400 | |||
| 33a031987b | |||
| 76ca2efc6b | |||
| 750e5ed2bc | |||
| c1800a2f61 | |||
| 6de4cbc7a7 | |||
| 7acb1266fd | |||
| 91149b61bf | |||
| d354452421 | |||
| bb7384c800 | |||
| 4ad767fda0 | |||
| da05e2e909 | |||
| 3241b2e632 | |||
| 12abb6a96f | |||
| 51f6881848 | |||
| 3723f6bfe7 | |||
| 64f32b0059 | |||
| 906281402c | |||
| beddd13cbc | |||
| 306f826e04 | |||
| eaf6cf526d | |||
| 0469e88c48 | |||
| cc1c651f90 | |||
| a2a1b9cb39 | |||
| d559a3479b | |||
| 8aeea83644 | |||
| 06b0422054 | |||
| 696e1c67d4 | |||
| ded3b799f4 | |||
| af77f72312 | |||
| e8c12d1d24 | |||
| 13060d3be9 | |||
| e922568d6c | |||
| d1dfd63110 | |||
| 2d8328f027 | |||
| ffbb1f4c83 | |||
| c516c8b58f | |||
| 549c3780f0 | |||
| 4e67a9e79a | |||
| f65104f49e | |||
| c41c6b8c19 | |||
| e835ce6b25 | |||
| 4fd90a4f53 | |||
| eaaf17beef | |||
| 4bda2773ff | |||
| cc301aeeec | |||
| 440b8fda6e | |||
| f00ab47f29 | |||
| 562cfc1e87 | |||
| 014adc70a3 | |||
| 287c69bd4c | |||
| 5057849c1a | |||
| d9e8dbae3e | |||
| f3371f24ba | |||
| 5c3784fc45 | |||
| 18d8b2d9f8 | |||
| 68cf95977a | |||
| 3bd139f602 | |||
| e5c6ef7d76 | |||
| 67c7bc9511 | |||
| 7822ed5597 | |||
| e5d2d6e9c1 | |||
| 619d2eb328 | |||
| 8a7d87fea8 | |||
| 1790bb23ef |
+25
@@ -0,0 +1,25 @@
|
||||
.*.swp
|
||||
.DS_Store
|
||||
src/MacVim/MacVim.xcodeproj/*.mode1
|
||||
src/MacVim/MacVim.xcodeproj/*.mode1v3
|
||||
src/MacVim/MacVim.xcodeproj/*.pbxuser
|
||||
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.mode1
|
||||
src/MacVim/PSMTabBarControl/PSMTabBarControl.xcodeproj/*.pbxuser
|
||||
src/MacVim/PSMTabBarControl/build
|
||||
src/MacVim/build
|
||||
src/TAGS
|
||||
src/Vim
|
||||
src/auto/config.h
|
||||
src/auto/config.mk
|
||||
src/auto/if_perl.c
|
||||
src/auto/link.log
|
||||
src/auto/link.sed
|
||||
src/auto/osdef.h
|
||||
src/auto/pathdef.c
|
||||
src/config.log
|
||||
src/config.status
|
||||
src/objects
|
||||
src/po/*.mo
|
||||
src/tags
|
||||
src/xxd/xxd
|
||||
src/xxd/xxd.dSYM
|
||||
@@ -1,61 +0,0 @@
|
||||
syntax: glob
|
||||
|
||||
# Unixen: object and executable files.
|
||||
*.o
|
||||
src/vim
|
||||
src/xxd/xxd
|
||||
src/auto/if_perl.c
|
||||
src/tags
|
||||
|
||||
# We do need src/auto/configure.
|
||||
src/auto/config.aap
|
||||
src/auto/config.cache
|
||||
src/auto/config.h
|
||||
src/auto/config.log
|
||||
src/auto/config.mk
|
||||
src/auto/config.status
|
||||
src/auto/configure.aap
|
||||
src/auto/osdef.h
|
||||
src/auto/link.log
|
||||
src/auto/link.sed
|
||||
src/auto/pathdef.c
|
||||
|
||||
# Windows
|
||||
*.exe
|
||||
*.idb
|
||||
*.manifest
|
||||
*.exp
|
||||
*.obj
|
||||
*.pdb
|
||||
*.ilk
|
||||
*.sln
|
||||
*.suo
|
||||
*.res
|
||||
*.RES
|
||||
src/if_perl.c
|
||||
src/pathdef.c
|
||||
src/Obj*/pathdef.c
|
||||
gvimext.dll
|
||||
gvimext.lib
|
||||
|
||||
# Mac OSX
|
||||
src/xxd/xxd.dSYM
|
||||
|
||||
# All platforms
|
||||
*.rej
|
||||
*.orig
|
||||
*.mo
|
||||
*.swp
|
||||
*~
|
||||
*.pyc
|
||||
src/po/vim.pot
|
||||
|
||||
# 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
|
||||
src/testdir/test.log
|
||||
@@ -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.4. Also runs under UNIX, MSDOS and other systems.
|
||||
vim74rt.tgz contains the documentation and syntax files.
|
||||
vim74bin.tgz contains the binaries.
|
||||
vim74src.tgz contains the sources.
|
||||
Version 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.
|
||||
Author: Bram Moolenaar et al.
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ SRC_ALL = \
|
||||
src/arabic.c \
|
||||
src/arabic.h \
|
||||
src/ascii.h \
|
||||
src/blowfish.c \
|
||||
src/buffer.c \
|
||||
src/charset.c \
|
||||
src/diff.c \
|
||||
@@ -39,7 +38,6 @@ SRC_ALL = \
|
||||
src/mark.c \
|
||||
src/mbyte.c \
|
||||
src/memfile.c \
|
||||
src/memfile_test.c \
|
||||
src/memline.c \
|
||||
src/menu.c \
|
||||
src/message.c \
|
||||
@@ -57,11 +55,9 @@ SRC_ALL = \
|
||||
src/popupmnu.c \
|
||||
src/quickfix.c \
|
||||
src/regexp.c \
|
||||
src/regexp_nfa.c \
|
||||
src/regexp.h \
|
||||
src/screen.c \
|
||||
src/search.c \
|
||||
src/sha256.c \
|
||||
src/structs.h \
|
||||
src/spell.c \
|
||||
src/syntax.c \
|
||||
@@ -74,7 +70,6 @@ SRC_ALL = \
|
||||
src/version.c \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
src/xxd/xxd.c \
|
||||
src/main.aap \
|
||||
@@ -83,18 +78,7 @@ SRC_ALL = \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test49.vim \
|
||||
src/testdir/test60.vim \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/python2/*.py \
|
||||
src/testdir/python3/*.py \
|
||||
src/testdir/pythonx/*.py \
|
||||
src/testdir/pythonx/topmodule/__init__.py \
|
||||
src/testdir/pythonx/topmodule/submodule/__init__.py \
|
||||
src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py \
|
||||
src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py \
|
||||
src/testdir/python_after/*.py \
|
||||
src/testdir/python_before/*.py \
|
||||
src/proto.h \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
src/proto/charset.pro \
|
||||
src/proto/diff.pro \
|
||||
@@ -132,7 +116,6 @@ 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 \
|
||||
@@ -141,7 +124,6 @@ SRC_ALL = \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
|
||||
|
||||
@@ -224,24 +206,19 @@ 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 \
|
||||
@@ -273,10 +250,8 @@ SRC_DOS = \
|
||||
src/Make_mvc.mak \
|
||||
src/Make_w16.mak \
|
||||
src/bigvim.bat \
|
||||
src/bigvim64.bat \
|
||||
src/msvcsetup.bat \
|
||||
src/msvc2008.bat \
|
||||
src/msvc2010.bat \
|
||||
src/dimm.idl \
|
||||
src/dlldata.c \
|
||||
src/dosinst.c \
|
||||
@@ -327,7 +302,6 @@ 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 \
|
||||
@@ -362,13 +336,6 @@ SRC_DOS_BIN = \
|
||||
src/vim*.ico \
|
||||
src/vim.tlb \
|
||||
src/vimtbar.lib \
|
||||
src/xpm/COPYRIGHT \
|
||||
src/xpm/README.txt \
|
||||
src/xpm/include/*.h \
|
||||
src/xpm/x64/lib/libXpm.a \
|
||||
src/xpm/x64/lib/libXpm.lib \
|
||||
src/xpm/x86/lib/libXpm.a \
|
||||
src/xpm/x86/lib/libXpm.lib \
|
||||
src/vimtbar.dll \
|
||||
nsis/icons/*.bmp \
|
||||
nsis/icons/*.ico \
|
||||
@@ -402,7 +369,7 @@ SRC_MAC = \
|
||||
src/os_mac.h \
|
||||
src/os_mac.rsr.hqx \
|
||||
src/os_mac_conv.c \
|
||||
src/os_macosx.m \
|
||||
src/os_macosx.c \
|
||||
src/proto/gui_mac.pro \
|
||||
src/proto/os_mac_conv.pro \
|
||||
|
||||
@@ -450,14 +417,20 @@ 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 \
|
||||
src/os_beos.c \
|
||||
src/os_beos.h \
|
||||
src/os_beos.rsrc \
|
||||
src/proto/os_beos.pro \
|
||||
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 \
|
||||
|
||||
@@ -484,7 +457,6 @@ 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 \
|
||||
@@ -682,19 +654,17 @@ 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 = \
|
||||
runtime/doc/*-de.1 \
|
||||
runtime/doc/*-de.UTF-8.1 \
|
||||
README_lang.txt \
|
||||
runtime/doc/*-fr.1 \
|
||||
runtime/doc/*-fr.UTF-8.1 \
|
||||
runtime/doc/*-it.1 \
|
||||
runtime/doc/*-it.UTF-8.1 \
|
||||
runtime/doc/*-ja.UTF-8.1 \
|
||||
runtime/doc/*-pl.1 \
|
||||
runtime/doc/*-pl.UTF-8.1 \
|
||||
runtime/doc/*-ru.1 \
|
||||
@@ -707,28 +677,15 @@ LANG_GEN = \
|
||||
runtime/tutor/Makefile \
|
||||
runtime/tutor/tutor.utf-8 \
|
||||
runtime/tutor/tutor.?? \
|
||||
runtime/tutor/tutor.??.utf-8 \
|
||||
runtime/tutor/tutor.??.euc \
|
||||
runtime/tutor/tutor.??.sjis \
|
||||
runtime/tutor/tutor.??.iso9 \
|
||||
runtime/tutor/tutor.??.big5 \
|
||||
runtime/tutor/tutor.??.cp1250 \
|
||||
runtime/tutor/tutor.??.cp1251 \
|
||||
runtime/tutor/tutor.??.cp737 \
|
||||
runtime/tutor/tutor.??_??.utf-8 \
|
||||
runtime/tutor/tutor.bar \
|
||||
runtime/tutor/tutor.bar.utf-8 \
|
||||
runtime/tutor/tutor.??.* \
|
||||
runtime/spell/README.txt \
|
||||
runtime/spell/??/*.diff \
|
||||
runtime/spell/??/main.aap \
|
||||
runtime/spell/tet/*.diff \
|
||||
runtime/spell/tet/main.aap \
|
||||
runtime/spell/check/main.aap \
|
||||
runtime/spell/check/*.aff \
|
||||
runtime/spell/check/*.dic \
|
||||
runtime/spell/yi/README.txt \
|
||||
runtime/spell/main.aap \
|
||||
runtime/spell/cleanadd.vim \
|
||||
runtime/spell/*.vim \
|
||||
runtime/spell/fixdup \
|
||||
|
||||
# generic language files, binary
|
||||
LANG_GEN_BIN = \
|
||||
|
||||
@@ -3,10 +3,8 @@
|
||||
# 2. Creating the various distribution files.
|
||||
|
||||
|
||||
#########################################################################
|
||||
# 1. Starting the compilation of Vim for Unix.
|
||||
# 1. Using this Makefile without an argument will compile 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
|
||||
@@ -23,9 +21,6 @@
|
||||
# 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) $@
|
||||
@@ -33,22 +28,25 @@ 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. Creating the various distribution files.
|
||||
# 2. Create the various distributions:
|
||||
#
|
||||
# TARGET PRODUCES CONTAINS
|
||||
# unixall vim-#.#.tar.bz2 All runtime files and sources, for Unix
|
||||
# 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
|
||||
#
|
||||
# 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
|
||||
@@ -57,11 +55,7 @@ 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
|
||||
#
|
||||
# OBSOLETE
|
||||
# amisrc vim##src.tgz sources for Amiga
|
||||
# amirt vim##rt.tgz runtime for Amiga
|
||||
# amibin vim##bin.tgz binary for Amiga
|
||||
# doslang vim##lang.zip language files for Win32
|
||||
#
|
||||
# os2bin vim##os2.zip binary for OS/2
|
||||
# (use RT from dosrt)
|
||||
@@ -70,44 +64,31 @@ 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 archive and compiled binaries.
|
||||
# To do all this you need the unix, extra and lang archives, and
|
||||
# compiled binaries.
|
||||
# Before creating an archive first delete all backup files, *.orig, etc.
|
||||
|
||||
MAJOR = 7
|
||||
MINOR = 4
|
||||
MINOR = 2
|
||||
|
||||
# Uncomment this line if the Win32s version is to be included.
|
||||
# DOSBIN_S = dosbin_s
|
||||
|
||||
# Uncomment this line if the 16 bit DOS version is to be included.
|
||||
# DOSBIN_D16 = dosbin_d16
|
||||
|
||||
# Uncomment this line if the 32 bit DOS version is to be included.
|
||||
# DOSBIN_D32 = dosbin_d32
|
||||
DOSBIN_S = dosbin_s
|
||||
|
||||
# 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,
|
||||
# src/gvim.exe.mnf.
|
||||
# - Compile Vim with GTK, Perl, Python, Python3, TCL, Ruby, MZscheme, Lua (if
|
||||
# you can make it all work), Cscope and "huge" features. Exclude workshop
|
||||
# and SNiFF.
|
||||
# minor/major version: src/GvimExt/GvimExt.reg, src/vim.def, src/vim16.def.
|
||||
# - 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.
|
||||
# - 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).
|
||||
# - If you have a lint program: "make lint" and check the output (ignore GTK
|
||||
# warnings).
|
||||
# - If you have valgrind, enable it in src/testdir/Makefile and run "make
|
||||
# test". Enable EXITFREE, disable GUI, scheme and tcl to avoid false alarms.
|
||||
# Check the valgrind output.
|
||||
# - If you have the efence library, enable it in "src/Makefile" and run "make
|
||||
# test". Disable Python and Ruby to avoid trouble with threads (efence is
|
||||
# not threadsafe).
|
||||
# - Adjust the date and other info in src/version.h.
|
||||
# - Correct included_patches[] in src/version.c.
|
||||
# - "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).
|
||||
# - Check for missing options in runtime/optwin.vim et al. (with check.vim).
|
||||
# - Do "make menu" to update the runtime/synmenu.vim file.
|
||||
@@ -115,16 +96,16 @@ MINOR = 4
|
||||
# - Check that runtime/doc/help.txt doesn't contain entries in "LOCAL
|
||||
# ADDITIONS".
|
||||
# - In runtime/doc run "make" and "make html" to check for errors.
|
||||
# - Check if src/Makefile, src/testdir/Makefile and src/feature.h don't contain
|
||||
# any personal preferences or the changes mentioned above.
|
||||
# - Check if src/Makefile and src/feature.h don't contain any personal
|
||||
# preferences or the GTK, Perl, etc. mentioned above.
|
||||
# - Check file protections to be "644" for text and "755" for executables (run
|
||||
# the "check" script).
|
||||
# - Check compiling on Amiga, MS-DOS and MS-Windows.
|
||||
# - Delete all *~, *.sw?, *.orig, *.rej files
|
||||
# - "make unixall", "make html"
|
||||
# - "make unixall", "make extra", "make lang", "make html"
|
||||
# - Make diff files against the previous release: "makediff7 7.1 7.2"
|
||||
#
|
||||
# Amiga: (OBSOLETE, Amiga files are no longer distributed)
|
||||
# Amiga:
|
||||
# - "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"
|
||||
@@ -133,22 +114,35 @@ MINOR = 4
|
||||
# - "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:
|
||||
# - Set environment for compiling with Borland C++ 3.1.
|
||||
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
|
||||
# case set environment for compiling with Borland C++ 4.0 and do
|
||||
# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
|
||||
# NOTE: this currently fails because Vim is too big.
|
||||
# - "make test" and check the output.
|
||||
# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
|
||||
# "uninstald16.exe".
|
||||
# 32 bit DOS version:
|
||||
# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
|
||||
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
|
||||
# "ALL DONE".
|
||||
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
|
||||
# "uninstald32.exe".
|
||||
# Win32 console version:
|
||||
# - Set environment for Visual C++ 2008, e.g.: "msvc2008.bat" Or:
|
||||
# "C:\Program Files (x86)\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 the executable
|
||||
# won't work on Windows 7 and 64 bit systems.
|
||||
# - "nmake -f Make_mvc.mak" (use the same path as for vcvars32.bat)
|
||||
# - 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.
|
||||
# - "nmake -f Make_mvc.mak"
|
||||
# - "rm testdir/*.out", "nmake -f Make_mvc.mak test" and check the output.
|
||||
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
|
||||
# - Rename the executables to "vimw32.exe", "xxdw32.exe".
|
||||
# - Rename vim.pdb to vimw32.pdb.
|
||||
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
|
||||
# - When building the Win32s version later, delete vimrun.exe, install.exe and
|
||||
# uninstal.exe. Otherwise rename executables to installw32.exe and
|
||||
# uninstalw32.exe.
|
||||
# Win32 GUI version:
|
||||
# - "nmake -f Make_mvc.mak GUI=yes"
|
||||
# - "nmake -f Make_mvc.mak GUI=yes.
|
||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||
# - Move gvim.pdb to here.
|
||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||
@@ -158,64 +152,35 @@ MINOR = 4
|
||||
# - Rename "gvim.exe" to "gvim_ole.exe".
|
||||
# - Rename gvim.pdb to "gvim_ole.pdb".
|
||||
# - Delete install.exe and uninstal.exe.
|
||||
# Create the archives:
|
||||
# - Copy all the "*.exe" files to where this Makefile is.
|
||||
# - Copy all the "*.pdb" files to where this Makefile is.
|
||||
# - "make dosbin".
|
||||
# NSIS self installing exe:
|
||||
# - To get NSIS see http://nsis.sourceforge.net
|
||||
# - Make sure gvim_ole.exe, vimw32.exe, installw32.exe,
|
||||
# uninstalw32.exe and xxdw32.exe have been build as mentioned above.
|
||||
# - 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" (takes a few minutes).
|
||||
# - Copy gvim##.exe to the dist directory.
|
||||
#
|
||||
# 64 bit builds (these are not in the normal distribution, the 32 bit build
|
||||
# works just fine on 64 bit systems).
|
||||
# Like the console and GUI version, but first run vcvars64.bat or
|
||||
# "..\VC\vcvarsall.bat x86_amd64".
|
||||
# - "nmake -f Make_mvc.mak"
|
||||
# - "nmake -f Make_mvc.mak GUI=yes"
|
||||
# Or run src/bigvim64.bat for an OLE version.
|
||||
#
|
||||
# OBSOLETE systems: You can build this if you have an appropriate system.
|
||||
#
|
||||
# 16 bit DOS version: (doesn't build anywhere)
|
||||
# - Set environment for compiling with Borland C++ 3.1.
|
||||
# - "bmake -f Make_bc3.mak BOR=E:\borlandc" (compiling xxd might fail, in that
|
||||
# case set environment for compiling with Borland C++ 4.0 and do
|
||||
# "make -f make_bc3.mak BOR=E:\BC4 xxd/xxd.exe").
|
||||
# NOTE: this currently fails because Vim is too big.
|
||||
# - "make test" and check the output.
|
||||
# - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and
|
||||
# "uninstald16.exe".
|
||||
#
|
||||
# 32 bit DOS version: (requires Windows XP or earlier)
|
||||
# - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak".
|
||||
# - "rm testdir/*.out", "gmake -f Make_djg.mak test" and check the output for
|
||||
# "ALL DONE".
|
||||
# - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and
|
||||
# "uninstald32.exe".
|
||||
#
|
||||
# Win32s GUI version: (requires very old compiler)
|
||||
# - Set environment for Visual C++ 4.1 (requires a new console window):
|
||||
# "vcvars32.bat" (use the path for VC 4.1 e:\msdev\bin)
|
||||
# - 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)
|
||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no clean" (use the path for VC 4.1)
|
||||
# - "nmake -f Make_mvc.mak GUI=yes INTL=no" (use the path for VC 4.1)
|
||||
# - Rename "gvim.exe" to "gvim_w32s.exe".
|
||||
# - Rename "install.exe" to "installw32.exe"
|
||||
# - Rename "uninstal.exe" to "uninstalw32.exe"
|
||||
# - The produced uninstalw32.exe and vimrun.exe are used.
|
||||
# Create the archives:
|
||||
# - 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.
|
||||
# - 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)
|
||||
# Note: VisVim needs to be build with MSVC 5, newer versions don't work.
|
||||
# - make sure there is a diff.exe two levels up
|
||||
# - go to ../nsis and do "makensis gvim.nsi".
|
||||
# - Copy gvim##.exe to the dist directory.
|
||||
#
|
||||
# OS/2: (requires an OS/2 system)
|
||||
# - Unpack the Unix archive.
|
||||
# OS/2:
|
||||
# - Unpack the Unix "src", "extra" and "rt" archives.
|
||||
# - "make -f Make_os2.mak".
|
||||
# - Rename the executables to vimos2.exe, xxdos2.exe and teeos2.exe and copy
|
||||
# them to here.
|
||||
@@ -250,6 +215,8 @@ 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
|
||||
@@ -260,10 +227,17 @@ 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)
|
||||
|
||||
@@ -294,6 +268,9 @@ 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)
|
||||
@@ -309,17 +286,33 @@ 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
|
||||
# Note: this file is not included in the repository to avoid problems, but it's
|
||||
# OK to put it in the archive.
|
||||
cp -f src/config.mk.dist dist/$(VIMRTDIR)/src/auto/config.mk
|
||||
# Create an empty config.h file, make dependencies require it
|
||||
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
|
||||
@@ -329,11 +322,9 @@ unixall: 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
|
||||
# Create the archive.
|
||||
cd dist && tar cf $(VIMVER).tar $(VIMRTDIR)
|
||||
bzip2 dist/$(VIMVER).tar
|
||||
cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR)
|
||||
gzip -9 dist/$(VIMVER)-lang.tar
|
||||
|
||||
# Amiga runtime - OBSOLETE
|
||||
amirt: dist prepare
|
||||
-rm -f dist/vim$(VERSION)rt.tar.gz
|
||||
-rm -rf dist/Vim
|
||||
@@ -356,7 +347,6 @@ 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
|
||||
@@ -374,7 +364,6 @@ 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
|
||||
@@ -395,41 +384,15 @@ 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 an "argument list too long" error.
|
||||
# Split in two parts to avoid a "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 -)
|
||||
@@ -440,7 +403,7 @@ dosrt_unix2dos: dist prepare no_title.vim
|
||||
$(RT_AMI_DOS) \
|
||||
$(LANG_GEN) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
tar cf - \
|
||||
$(RT_UNIX_DOS_BIN) \
|
||||
$(RT_ALL_BIN) \
|
||||
@@ -449,18 +412,6 @@ 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.
|
||||
@@ -470,7 +421,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_ole $(DOSBIN_S) $(DOSBIN_D16)
|
||||
dosbin: prepare dosbin_gvim dosbin_w32 dosbin_d32 dosbin_d16 dosbin_ole $(DOSBIN_S)
|
||||
|
||||
# make Win32 gvim
|
||||
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
@@ -481,7 +432,7 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
@@ -500,7 +451,7 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@@ -517,7 +468,7 @@ dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@@ -534,7 +485,7 @@ dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@@ -550,7 +501,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
@@ -572,7 +523,7 @@ dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp README_w32s.txt dist/vim/$(VIMRTDIR)
|
||||
@@ -580,6 +531,53 @@ 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 -u no_title.vim -c ":set tx|wq" {} \;
|
||||
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
|
||||
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
|
||||
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
|
||||
for i in $(LANG_DOS); do \
|
||||
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
|
||||
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
|
||||
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
|
||||
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \
|
||||
cp $$i dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES/vim.mo; \
|
||||
fi \
|
||||
done
|
||||
cp libintl.dll dist/vim/$(VIMRTDIR)/
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)lang.zip vim <$(COMMENT_LANG)
|
||||
|
||||
# MS-DOS sources
|
||||
dossrc: dist no_title.vim dist/$(COMMENT_SRC) runtime/doc/uganda.nsis.txt
|
||||
-rm -rf dist/vim$(VERSION)src.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(SRC_ALL) \
|
||||
$(SRC_DOS) \
|
||||
$(SRC_AMI_DOS) \
|
||||
$(SRC_DOS_UNIX) \
|
||||
runtime/doc/uganda.nsis.txt \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
mv dist/vim/$(VIMRTDIR)/runtime/* dist/vim/$(VIMRTDIR)
|
||||
rmdir dist/vim/$(VIMRTDIR)/runtime
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
tar cf - \
|
||||
$(SRC_DOS_BIN) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)src.zip vim <$(COMMENT_SRC)
|
||||
|
||||
runtime/doc/uganda.nsis.txt: runtime/doc/uganda.txt
|
||||
cd runtime/doc && $(MAKE) uganda.nsis.txt
|
||||
|
||||
os2bin: dist no_title.vim dist/$(COMMENT_OS2)
|
||||
-rm -rf dist/vim$(VERSION)os2.zip
|
||||
-rm -rf dist/vim
|
||||
@@ -588,7 +586,7 @@ os2bin: dist no_title.vim dist/$(COMMENT_OS2)
|
||||
tar cf - \
|
||||
$(BIN_OS2) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -X -u no_title.vim -c ":set tx|wq" {} \;
|
||||
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
|
||||
cp vimos2.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdos2.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp teeos2.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
|
||||
+39
-16
@@ -1,4 +1,4 @@
|
||||
README.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README.txt for version 7.2 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 text files.
|
||||
This editor is very useful for editing programs and other plain ASCII 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 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
|
||||
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
|
||||
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 help orphans in Uganda. Please read the file
|
||||
encouraged to make a donation to 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,8 +86,6 @@ 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
|
||||
|
||||
@@ -97,17 +95,42 @@ The latest news about Vim can be found on the Vim home page:
|
||||
If you have problems, have a look at the Vim FAQ:
|
||||
http://vimdoc.sf.net/vimfaq.html
|
||||
|
||||
If you still have problems or any other questions, use one of the mailing
|
||||
lists to discuss them with Vim users and developers:
|
||||
http://www.vim.org/maillist.php
|
||||
|
||||
If nothing else works, report bugs directly:
|
||||
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.
|
||||
|
||||
|
||||
MAIN AUTHOR
|
||||
|
||||
Send any other comments, patches, flowers and suggestions to:
|
||||
Send any other comments, patches, pizza and suggestions to:
|
||||
|
||||
Bram Moolenaar E-mail: Bram@vim.org
|
||||
Finsterruetihof 1
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_ami.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_ami.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Amiga systems.
|
||||
See README.txt for general information about Vim.
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_amibin.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_amibin.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_ami.txt" for installation instructions for the Amiga.
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_amisrc.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_amisrc.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_ami.txt" for installation instructions for the Amiga.
|
||||
|
||||
+10
-7
@@ -1,16 +1,19 @@
|
||||
README_bindos.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_bindos.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
These files are in the runtime archive (vim74rt.zip).
|
||||
These files are in the runtime archive (vim72rt.zip).
|
||||
|
||||
|
||||
There are several binary distributions of Vim for the PC. You would normally
|
||||
pick only one of them, but it's also possible to install several.
|
||||
These ones are available (the version number may differ):
|
||||
vim74w32.zip Windows 95/98/NT/etc. console version
|
||||
gvim74.zip Windows 95/98/NT/etc. GUI version
|
||||
gvim74ole.zip Windows 95/98/NT/etc. GUI version with OLE
|
||||
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
|
||||
|
||||
You MUST also get the runtime archive (vim74rt.zip).
|
||||
The sources are also available (vim74src.zip).
|
||||
You MUST also get the runtime archive (vim72rt.zip).
|
||||
The sources are also available (vim72src.zip).
|
||||
|
||||
+17
-17
@@ -1,4 +1,4 @@
|
||||
README_dos.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_dos.txt for version 7.2 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\vim74",
|
||||
2. Unpack the zip archives. This will create a new directory "vim\vim72",
|
||||
in which all the distributed Vim files are placed. Since the directory
|
||||
name includes the version number, it is unlikely that you overwrite
|
||||
existing files.
|
||||
Examples:
|
||||
pkunzip -d gvim74.zip
|
||||
unzip vim74w32.zip
|
||||
pkunzip -d gvim72.zip
|
||||
unzip vim72w32.zip
|
||||
|
||||
You need to unpack the runtime archive and at least one of the binary
|
||||
archives. When using more than one binary version, be careful not to
|
||||
@@ -69,7 +69,7 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
archive and follow the instructions in the documentation.
|
||||
|
||||
3. Change to the new directory:
|
||||
cd vim\vim74
|
||||
cd vim\vim72
|
||||
Run the "install.exe" program. It will ask you a number of questions about
|
||||
how you would like to have your Vim setup. Among these are:
|
||||
- You can tell it to write a "_vimrc" file with your preferences in the
|
||||
@@ -80,8 +80,8 @@ These are the normal steps to install Vim from the .zip archives:
|
||||
console or in a shell. You can select one of the directories in your
|
||||
$PATH. If you skip this, you can add Vim to the search path manually:
|
||||
The simplest is to add a line to your autoexec.bat. Examples:
|
||||
set path=%path%;C:\vim\vim74
|
||||
set path=%path%;D:\editors\vim\vim74
|
||||
set path=%path%;C:\vim\vim72
|
||||
set path=%path%;D:\editors\vim\vim72
|
||||
- Create entries for Vim on the desktop and in the Start menu.
|
||||
|
||||
That's it!
|
||||
@@ -93,8 +93,8 @@ Remarks:
|
||||
won't show a menubar. Then you need to set the $VIM environment variable to
|
||||
point to the top directory of your Vim files. Example:
|
||||
set VIM=C:\editors\vim
|
||||
Vim version 7.4 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim74. See ":help $VIM" for more information.
|
||||
Vim version 6.0 will look for your vimrc file in $VIM, and for the runtime
|
||||
files in $VIM/vim72. See ":help $VIM" for more information.
|
||||
|
||||
- To avoid confusion between distributed files of different versions and your
|
||||
own modified vim scripts, it is recommended to use this directory layout:
|
||||
@@ -105,14 +105,14 @@ Remarks:
|
||||
C:\vim\vimfiles\ftplugin\*.vim Filetype plugins
|
||||
C:\vim\... Other files you made.
|
||||
Distributed files:
|
||||
C:\vim\vim74\vim.exe The Vim version 7.4 executable.
|
||||
C:\vim\vim74\doc\*.txt The version 7.4 documentation files.
|
||||
C:\vim\vim74\bugreport.vim A Vim version 7.4 script.
|
||||
C:\vim\vim74\... Other version 7.4 distributed files.
|
||||
C:\vim\vim72\vim.exe The Vim version 6.0 executable.
|
||||
C:\vim\vim72\doc\*.txt The version 6.0 documentation files.
|
||||
C:\vim\vim72\bugreport.vim A Vim version 6.0 script.
|
||||
C:\vim\vim72\... Other version 6.0 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
set VIM=C:\vim
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim74". Don't add
|
||||
"vim74" to $VIM, that won't work.
|
||||
Then $VIMRUNTIME will automatically be set to "$VIM\vim72". Don't add
|
||||
"vim72" to $VIM, that won't work.
|
||||
|
||||
- You can put your Vim executable anywhere else. If the executable is not
|
||||
with the other Vim files, you should set $VIM. The simplest is to add a line
|
||||
@@ -136,8 +136,8 @@ Remarks:
|
||||
Select Properties.
|
||||
5. In the Program tab, change the "Cmdline" to add "/c" and the name of the
|
||||
Vim executable. Examples:
|
||||
C:\command.com /c C:\vim\vim74\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim74\vim.exe
|
||||
C:\command.com /c C:\vim\vim72\vim.exe
|
||||
C:\command.com /c D:\editors\vim\vim72\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".
|
||||
|
||||
+42
-32
@@ -1,51 +1,61 @@
|
||||
README_extra.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_extra.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
These extra files of Vim are for special purposes. This README explains what
|
||||
the files are for. For general information about Vim, see the "README.txt"
|
||||
file.
|
||||
The extra archive of Vim is to be used in combination with the source archive
|
||||
(vim-7.0-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.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive too!
|
||||
|
||||
The extra archive plus the source and runtime achives make up the complete
|
||||
sources of Vim for all systems.
|
||||
|
||||
|
||||
farsi/* Files for the Farsi (persian) language. If you don't
|
||||
know what Farsi is, this is not for you.
|
||||
Some of the things that the extra archive contains:
|
||||
|
||||
src/if_sniff.* Interface to SNiFF. If you don't know what SNiFF 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/os_amiga.* Files for the Amiga port.
|
||||
if_sniff Interface to SNiFF. If you don't know what SNiFF is, this is
|
||||
not for you.
|
||||
|
||||
src/gui_beos.*
|
||||
src/os_beos.* Files for the BeOS port.
|
||||
os_amiga Files for the Amiga port.
|
||||
|
||||
src/os_msdos.*
|
||||
src/os_dos.* Files for the MS-DOS port.
|
||||
gui_riscos
|
||||
os_riscos Files for the RISC OS port.
|
||||
|
||||
src/gui_mac.*
|
||||
src/os_mac.* Files for the Mac port.
|
||||
gui_beos
|
||||
os_beos Files for the BeOS port.
|
||||
|
||||
src/os_mint.8 Files for the Atari Mint port.
|
||||
os_msdos
|
||||
os_dos Files for the MS-DOS port.
|
||||
|
||||
src/os_os2* Files for the OS/2 port.
|
||||
src/tee/* Extra program for OS/2.
|
||||
gui_mac
|
||||
os_mac Files for the Mac port.
|
||||
|
||||
src/os_vms* Files for the VMS port.
|
||||
os_mint Files for the Atari Mint port.
|
||||
|
||||
src/os_w32*
|
||||
src/os_win32.* Files for the Win32 port.
|
||||
os_os2 Files for the OS/2 port.
|
||||
tee Extra program for OS/2.
|
||||
|
||||
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_vms Files for the VMS port.
|
||||
|
||||
src/if_ole.* OLE automation interface, for MS Windows 95 and NT.
|
||||
os_w32
|
||||
os_win32 Files for the Win32 port.
|
||||
|
||||
src/VisVim/* Integration of Win32 GUI with MS Visual Developer
|
||||
Studio.
|
||||
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/GvimExt/* DLL for the "Edit with Vim" context menu entry
|
||||
if_ole OLE automation interface, for MS Windows 95 and NT.
|
||||
|
||||
nsis/* NSIS script to build the self-installing MS-Windows exe
|
||||
VisVim Integration of Win32 GUI with MS Visual Developer Studio.
|
||||
|
||||
runtime/doc/*.man Preprocessed manual pages.
|
||||
GvimExt DLL for the "Edit with Vim" context menu entry
|
||||
|
||||
runtime/macros/file_select.vim Vim script to browse directories (Unix only).
|
||||
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).
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
README_lang.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This file contains files for non-English languages:
|
||||
- Translated messages.
|
||||
- Translated menus.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_mac.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_mac.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Macintosh systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
README_ole.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_ole.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This archive contains gvim.exe with OLE interface and VisVim.
|
||||
This version of gvim.exe can also load a number of interface dynamically (you
|
||||
@@ -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
|
||||
|
||||
Furthermore, this archive contains VISVIM.DLL. It can be used to integrate
|
||||
Futhermore, this archive contains VISVIM.DLL. It can be used to integrate
|
||||
the OLE gvim with Microsoft Visual Developer Studio. See VisVim/README.txt.
|
||||
|
||||
+12
-12
@@ -1,32 +1,32 @@
|
||||
README_os2.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_os2.txt for version 7.2 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:
|
||||
vim74rt.zip contains the runtime files (same as for the PC version)
|
||||
vim74os2.zip contains the OS/2 executables
|
||||
vim72rt.zip contains the runtime files (same as for the PC version)
|
||||
vim72os2.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/vim74",
|
||||
2. Unpack the zip archives. This will create a new directory "vim/vim72",
|
||||
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 vim74os2.zip
|
||||
unzip vim74os2.zip
|
||||
pkunzip -d vim72os2.zip
|
||||
unzip vim72os2.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\vim74
|
||||
set path=%path%;D:\editors\vim\vim74
|
||||
set path=%path%;C:\vim\vim72
|
||||
set path=%path%;D:\editors\vim\vim72
|
||||
|
||||
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\vim74\vim.exe The Vim version 7.4 executable.
|
||||
C:\vim\vim74\doc\*.txt The version 7.4 documentation files.
|
||||
C:\vim\vim74\bugreport.vim A Vim version 7.4 script.
|
||||
C:\vim\vim74\... Other version 7.4 distributed files.
|
||||
C:\vim\vim72\vim.exe The Vim version 7.1 executable.
|
||||
C:\vim\vim72\doc\*.txt The version 7.1 documentation files.
|
||||
C:\vim\vim72\bugreport.vim A Vim version 7.1 script.
|
||||
C:\vim\vim72\... Other version 7.1 distributed files.
|
||||
In this case the $VIM environment variable would be set like this:
|
||||
set VIM=C:\vim
|
||||
|
||||
|
||||
+68
-55
@@ -1,84 +1,51 @@
|
||||
README_zOS.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_os_390.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This readme explains how to build Vim on z/OS. Formerly called OS/390.
|
||||
See "README.txt" for general information about Vim.
|
||||
Welcome to the OS/390 Unix port of VIM.
|
||||
|
||||
Most likely there are not many users out there using Vim on z/OS. So chances
|
||||
are good, that some bugs are still undiscovered.
|
||||
ATTENTION: THIS IS AN _ALPHA_ VERSION!!!
|
||||
I expect you to know how to handle alpha software!
|
||||
|
||||
Getting the source to z/OS:
|
||||
==========================
|
||||
This port was done by Ralf Schandl <schandl@de.ibm.com>.
|
||||
This port is not maintained or supported by IBM!!
|
||||
|
||||
First get the source code in one big tar file and ftp it a binary to z/OS. If
|
||||
the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2)
|
||||
uncompress it on your PC, as this tools are (most likely) not available on the
|
||||
mainframe.
|
||||
|
||||
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).
|
||||
For the list of changes see runtime/doc/os_390.txt.
|
||||
|
||||
|
||||
Compiling:
|
||||
==========
|
||||
----------
|
||||
|
||||
Vim can be compiled with or without GUI support. For 7.4 only the compilation
|
||||
without GUI was tested. Below is a section about compiling with X11 but this
|
||||
is from an earlier version of Vim.
|
||||
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!
|
||||
|
||||
Console only:
|
||||
-------------
|
||||
Without X11:
|
||||
|
||||
If you build VIM without X11 support, compiling and building is nearly
|
||||
straightforward.
|
||||
|
||||
Change to the vim directory and do:
|
||||
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:
|
||||
|
||||
# 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 --with-features=big --without-x --enable-gui=no
|
||||
$./configure --enable-max-features --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
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
$ make install
|
||||
|
||||
|
||||
With X11:
|
||||
---------
|
||||
|
||||
WARNING: This instruction was not tested with Vim 7.4.
|
||||
|
||||
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
|
||||
@@ -87,6 +54,8 @@ 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
|
||||
@@ -96,7 +65,7 @@ you want Motif.
|
||||
|
||||
The smarter way:
|
||||
Make VIM as described above. Then create a file named 'link.sed' with the
|
||||
following content (see src/link.390):
|
||||
following contense:
|
||||
|
||||
s/-lXext *//g
|
||||
s/-lXmu *//g
|
||||
@@ -115,3 +84,47 @@ 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.
|
||||
|
||||
+5
-3
@@ -1,8 +1,10 @@
|
||||
README_src.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_src.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
The source archive contains the files needed to compile Vim on Unix systems.
|
||||
It is packed for Unix systems (NL line separator).
|
||||
It is packed for Unix systems (NL line separator). It is also used for other
|
||||
systems in combination with the extra archive (vim-7.0-extra.tar.gz, in the
|
||||
"extra" directory of ftp.vim.org).
|
||||
|
||||
For more information, see the README.txt file that comes with the runtime
|
||||
archive (vim-7.4-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive (vim-7.0-rt.tar.gz). To be able to run Vim you MUST get the runtime
|
||||
archive too!
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
README_srcdos.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_srcdos.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
See "README.txt" for general information about Vim.
|
||||
See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
|
||||
These files are in the runtime archive (vim74rt.zip).
|
||||
These files are in the runtime archive (vim72rt.zip).
|
||||
|
||||
|
||||
The DOS source archive contains the files needed to compile Vim on MS-DOS or
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_unix.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_unix.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on Unix systems.
|
||||
See "README.txt" for general information about Vim.
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_vms.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_vms.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This file explains the installation of Vim on VMS systems.
|
||||
See "README.txt" in the runtime archive for information about Vim.
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README_w32s.txt for version 7.4 of Vim: Vi IMproved.
|
||||
README_w32s.txt for version 7.2 of Vim: Vi IMproved.
|
||||
|
||||
This archive contains the gvim.exe that was specifically compiled for use in
|
||||
the Win32s subsystem in MS-Windows 3.1 and 3.11.
|
||||
|
||||
+11
-24
@@ -1,11 +1,11 @@
|
||||
# NSIS file to create a self-installing exe for Vim.
|
||||
# It requires NSIS version 2.0 or later.
|
||||
# Last Change: 2010 Jul 30
|
||||
# Last change: 2004 May 02
|
||||
|
||||
# WARNING: if you make changes to this script, look out for $0 to be valid,
|
||||
# because uninstall deletes most files in $0.
|
||||
|
||||
# Location of gvim_ole.exe, vimw32.exe, GvimExt/*, etc.
|
||||
# Location of gvim_ole.exe, vimd32.exe, GvimExt/*, etc.
|
||||
!define VIMSRC "..\src"
|
||||
|
||||
# Location of runtime files
|
||||
@@ -22,25 +22,22 @@
|
||||
!define HAVE_NLS
|
||||
|
||||
!define VER_MAJOR 7
|
||||
!define VER_MINOR 4
|
||||
!define VER_MINOR 2
|
||||
|
||||
# ----------- 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')"
|
||||
Icon icons\vim_16c.ico
|
||||
# NSIS2 uses a different strategy with six different images in a strip...
|
||||
# NSIS2 uses a different strategy with six diferent images in a strip...
|
||||
#EnabledBitmap icons\enabled.bmp
|
||||
#DisabledBitmap icons\disabled.bmp
|
||||
UninstallText "This will uninstall Vim ${VER_MAJOR}.${VER_MINOR} from your system."
|
||||
@@ -56,9 +53,6 @@ LicenseData ${VIMRT}\doc\uganda.nsis.txt
|
||||
!packhdr temp.dat "upx --best --compress-icons=1 temp.dat"
|
||||
!endif
|
||||
|
||||
SetCompressor /SOLID lzma
|
||||
XPStyle on
|
||||
|
||||
# This adds '\vim' to the user choice automagically. The actual value is
|
||||
# obtained below with ReadINIStr.
|
||||
InstallDir "$PROGRAMFILES\Vim"
|
||||
@@ -250,10 +244,11 @@ Section "Vim console program (vim.exe)"
|
||||
ReadRegStr $R0 HKLM \
|
||||
"SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
|
||||
IfErrors 0 lbl_winnt
|
||||
# Windows 95/98/ME: not supported
|
||||
# Windows 95/98/ME
|
||||
File /oname=vim.exe ${VIMSRC}\vimd32.exe
|
||||
Goto lbl_done
|
||||
lbl_winnt:
|
||||
# Windows NT/2000/XP and later
|
||||
# Windows NT/2000/XT
|
||||
File /oname=vim.exe ${VIMSRC}\vimw32.exe
|
||||
lbl_done:
|
||||
StrCpy $2 "$2 vim view vimdiff"
|
||||
@@ -295,21 +290,13 @@ Section "Add an Edit-with-Vim context menu entry"
|
||||
SetOutPath $0
|
||||
ClearErrors
|
||||
SetOverwrite try
|
||||
${If} ${RunningX64}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
File /oname=gvimext.dll ${VIMSRC}\GvimExt\gvimext.dll
|
||||
IfErrors 0 GvimExtDone
|
||||
|
||||
# Can't copy gvimext.dll, create it under another name and rename it on
|
||||
# next reboot.
|
||||
GetTempFileName $3 $0
|
||||
${If} ${RunningX64}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext64.dll
|
||||
${Else}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
${EndIf}
|
||||
File /oname=$3 ${VIMSRC}\GvimExt\gvimext.dll
|
||||
Rename /REBOOTOK $3 $0\gvimext.dll
|
||||
|
||||
GvimExtDone:
|
||||
@@ -451,8 +438,8 @@ Section Uninstall
|
||||
|
||||
AskRemove:
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||
"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
|
||||
"Remove all files in your $1\vimfiles directory? \
|
||||
$\nIf you have created something there that you want to keep, click No" IDNO Fin
|
||||
RMDir /r $1\vimfiles
|
||||
NoRemove:
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
"------------------------------------------------------------------------------
|
||||
" Description: Perform Ada specific completion & tagging.
|
||||
" Language: Ada (2005)
|
||||
" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
|
||||
" $Id$
|
||||
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
||||
" Taylor Venable <taylor@metasyntax.net>
|
||||
" Neil Bird <neil@fnxweb.com>
|
||||
" Ned Okie <nokie@radford.edu>
|
||||
" $Author: krischik $
|
||||
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||
" $Author$
|
||||
" $Date$
|
||||
" Version: 4.6
|
||||
" $Revision: 887 $
|
||||
" $Revision$
|
||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/ada.vim $
|
||||
" History: 24.05.2006 MK Unified Headers
|
||||
" 26.05.2006 MK ' should not be in iskeyword.
|
||||
@@ -29,8 +29,6 @@
|
||||
if version < 700
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Section: Constants {{{1
|
||||
"
|
||||
@@ -621,9 +619,6 @@ lockvar g:ada#Comment
|
||||
lockvar! g:ada#Keywords
|
||||
lockvar! g:ada#Ctags_Kinds
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
finish " 1}}}
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
"------------------------------------------------------------------------------
|
||||
" Description: Vim Ada omnicompletion file
|
||||
" Language: Ada (2005)
|
||||
" $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
|
||||
" $Id$
|
||||
" Maintainer: Martin Krischik
|
||||
" $Author: krischik $
|
||||
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||
" $Author$
|
||||
" $Date$
|
||||
" Version: 4.6
|
||||
" $Revision: 887 $
|
||||
" $Revision$
|
||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
|
||||
" History: 24.05.2006 MK Unified Headers
|
||||
" 26.05.2006 MK improved search for begin of word.
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
" Vim completion script
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Jun 20
|
||||
" Last Change: 2007 Aug 30
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" This function is used for the 'omnifunc' option.
|
||||
function! ccomplete#Complete(findstart, base)
|
||||
@@ -163,7 +161,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
|
||||
|
||||
@@ -500,7 +498,7 @@ function! s:StructMembers(typename, items, all)
|
||||
endif
|
||||
if !cached
|
||||
while 1
|
||||
exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
|
||||
exe 'silent! ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
|
||||
|
||||
let qflist = getqflist()
|
||||
if len(qflist) > 0 || match(typename, "::") < 0
|
||||
@@ -605,6 +603,3 @@ function! s:SearchMembers(matches, items, all)
|
||||
endfor
|
||||
return res
|
||||
endfunc
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,13 +1,13 @@
|
||||
"------------------------------------------------------------------------------
|
||||
" Description: Vim Ada/Dec Ada compiler file
|
||||
" Language: Ada (Dec Ada)
|
||||
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
|
||||
" $Id$
|
||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
||||
" $Author: krischik $
|
||||
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||
" $Author$
|
||||
" $Date$
|
||||
" Version: 4.6
|
||||
" $Revision: 887 $
|
||||
" $Revision$
|
||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/decada.vim $
|
||||
" History: 21.07.2006 MK New Dec Ada
|
||||
" 15.10.2006 MK Bram's suggestion for runtime integration
|
||||
|
||||
+128
-172
@@ -1,8 +1,8 @@
|
||||
" ---------------------------------------------------------------------
|
||||
" getscript.vim
|
||||
" Author: Charles E. Campbell
|
||||
" Date: Apr 17, 2013
|
||||
" Version: 35
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Jul 10, 2008
|
||||
" Version: 31
|
||||
" Installing: :help glvs-install
|
||||
" Usage: :help glvs
|
||||
"
|
||||
@@ -12,24 +12,19 @@
|
||||
" Initialization: {{{1
|
||||
" if you're sourcing this file, surely you can't be
|
||||
" expecting vim to be in its vi-compatible mode!
|
||||
if exists("g:loaded_getscript")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_getscript= "v35"
|
||||
if &cp
|
||||
echoerr "GetLatestVimScripts is not vi-compatible; not loaded (you need to set nocp)"
|
||||
finish
|
||||
endif
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of getscript needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo = &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
|
||||
if exists("g:loaded_getscript")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_getscript= "v31"
|
||||
|
||||
" ---------------------------
|
||||
" Global Variables: {{{1
|
||||
" ---------------------------
|
||||
@@ -45,6 +40,25 @@ if !exists("g:getscript_cygwin")
|
||||
let g:getscript_cygwin= 0
|
||||
endif
|
||||
endif
|
||||
" shell quoting character {{{2
|
||||
if exists("g:netrw_shq") && !exists("g:getscript_shq")
|
||||
let g:getscript_shq= g:netrw_shq
|
||||
elseif !exists("g:getscript_shq")
|
||||
if exists("&shq") && &shq != ""
|
||||
let g:getscript_shq= &shq
|
||||
elseif exists("&sxq") && &sxq != ""
|
||||
let g:getscript_shq= &sxq
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if g:getscript_cygwin
|
||||
let g:getscript_shq= "'"
|
||||
else
|
||||
let g:getscript_shq= '"'
|
||||
endif
|
||||
else
|
||||
let g:getscript_shq= "'"
|
||||
endif
|
||||
" call Decho("g:getscript_shq<".g:getscript_shq.">")
|
||||
endif
|
||||
|
||||
" wget vs curl {{{2
|
||||
if !exists("g:GetLatestVimScripts_wget")
|
||||
@@ -74,11 +88,6 @@ if !exists("g:GetLatestVimScripts_allowautoinstall")
|
||||
let g:GetLatestVimScripts_allowautoinstall= 1
|
||||
endif
|
||||
|
||||
" set up default scriptaddr address
|
||||
if !exists("g:GetLatestVimScripts_scriptaddr")
|
||||
let g:GetLatestVimScripts_scriptaddr = 'http://vim.sourceforge.net/script.php?script_id='
|
||||
endif
|
||||
|
||||
"" For debugging:
|
||||
"let g:GetLatestVimScripts_wget = "echo"
|
||||
"let g:GetLatestVimScripts_options = "options"
|
||||
@@ -103,9 +112,7 @@ if g:GetLatestVimScripts_allowautoinstall
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists("g:GetLatestVimScripts_autoinstalldir") && isdirectory(g:GetLatestVimScripts_autoinstalldir)
|
||||
let s:autoinstall= g:GetLatestVimScripts_autoinstalldir"
|
||||
elseif exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
|
||||
if exists('$HOME') && isdirectory(expand("$HOME")."/".s:dotvim)
|
||||
let s:autoinstall= $HOME."/".s:dotvim
|
||||
endif
|
||||
" call Decho("s:autoinstall<".s:autoinstall.">")
|
||||
@@ -158,6 +165,7 @@ fun! getscript#GetLatestVimScripts()
|
||||
" call Dret("GetLatestVimScripts : unable to find a GetLatest subdirectory")
|
||||
return
|
||||
endif
|
||||
|
||||
if filewritable(datadir) != 2
|
||||
echoerr "(getLatestVimScripts) Your ".datadir." isn't writable"
|
||||
" call Dret("GetLatestVimScripts : non-writable directory<".datadir.">")
|
||||
@@ -174,29 +182,21 @@ fun! getscript#GetLatestVimScripts()
|
||||
" call Dret("GetLatestVimScripts : non-writable datafile<".datafile.">")
|
||||
return
|
||||
endif
|
||||
" --------------------
|
||||
" Passed sanity checks
|
||||
" --------------------
|
||||
|
||||
" call Decho("datadir <".datadir.">")
|
||||
" call Decho("datafile <".datafile.">")
|
||||
|
||||
" don't let any event handlers interfere (like winmanager's, taglist's, etc)
|
||||
let eikeep = &ei
|
||||
let hlskeep = &hls
|
||||
let acdkeep = &acd
|
||||
set ei=all hls&vim noacd
|
||||
" don't let any events interfere (like winmanager's, taglist's, etc)
|
||||
let eikeep= &ei
|
||||
let hlskeep= &hls
|
||||
set ei=all hls&vim
|
||||
|
||||
" Edit the datafile (ie. GetLatestVimScripts.dat):
|
||||
" 1. record current directory (origdir),
|
||||
" 2. change directory to datadir,
|
||||
" 3. split window
|
||||
" 4. edit datafile
|
||||
" record current directory, change to datadir, open split window with
|
||||
" datafile
|
||||
let origdir= getcwd()
|
||||
" call Decho("exe cd ".fnameescape(substitute(datadir,'\','/','ge')))
|
||||
exe "cd ".fnameescape(substitute(datadir,'\','/','ge'))
|
||||
split
|
||||
" call Decho("exe e ".fnameescape(substitute(datafile,'\','/','ge')))
|
||||
" call Decho("exe e ".fnameescape(substitute(datafile,'\','/','ge')))
|
||||
exe "e ".fnameescape(substitute(datafile,'\','/','ge'))
|
||||
res 1000
|
||||
let s:downloads = 0
|
||||
@@ -207,68 +207,69 @@ fun! getscript#GetLatestVimScripts()
|
||||
" call Decho("searching plugins for GetLatestVimScripts dependencies")
|
||||
let lastline = line("$")
|
||||
" call Decho("lastline#".lastline)
|
||||
let firstdir = substitute(&rtp,',.*$','','')
|
||||
let plugins = split(globpath(firstdir,"plugin/*.vim"),'\n')
|
||||
let plugins = plugins + split(globpath(firstdir,"AsNeeded/*.vim"),'\n')
|
||||
let plugins = split(globpath(&rtp,"plugin/*.vim"),'\n')
|
||||
let foundscript = 0
|
||||
let firstdir= ""
|
||||
|
||||
" this loop updates the GetLatestVimScripts.dat file
|
||||
" with dependencies explicitly mentioned in the plugins
|
||||
" via GetLatestVimScripts: ... lines
|
||||
" It reads the plugin script at the end of the GetLatestVimScripts.dat
|
||||
" file, examines it, and then removes it.
|
||||
for plugin in plugins
|
||||
" call Decho(" ")
|
||||
" call Decho("plugin<".plugin.">")
|
||||
|
||||
" don't process plugins in system directories
|
||||
if firstdir == ""
|
||||
let firstdir= substitute(plugin,'[/\\][^/\\]\+$','','')
|
||||
" call Decho("setting firstdir<".firstdir.">")
|
||||
else
|
||||
let curdir= substitute(plugin,'[/\\][^/\\]\+$','','')
|
||||
" call Decho("curdir<".curdir.">")
|
||||
if curdir != firstdir
|
||||
" call Decho("skipping subsequent plugins: curdir<".curdir."> != firstdir<".firstdir.">")
|
||||
break
|
||||
endif
|
||||
endif
|
||||
|
||||
" read plugin in
|
||||
" evidently a :r creates a new buffer (the "#" buffer) that is subsequently unused -- bwiping it
|
||||
$
|
||||
" call Decho(" ")
|
||||
" call Decho(".dependency checking<".plugin."> line$=".line("$"))
|
||||
" call Decho("..exe silent r ".fnameescape(plugin))
|
||||
" call Decho("exe silent r ".fnameescape(plugin))
|
||||
exe "silent r ".fnameescape(plugin)
|
||||
exe "silent bwipe ".bufnr("#")
|
||||
|
||||
while search('^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+','W') != 0
|
||||
let depscript = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
|
||||
let depscriptid = substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\(\d\+\)\s\+.*$','\1','')
|
||||
let llp1 = lastline+1
|
||||
" call Decho("..depscript<".depscript.">")
|
||||
let newscript= substitute(getline("."),'^"\s\+GetLatestVimScripts:\s\+\d\+\s\+\d\+\s\+\(.*\)$','\1','e')
|
||||
let llp1 = lastline+1
|
||||
" call Decho("..newscript<".newscript.">")
|
||||
|
||||
" found a "GetLatestVimScripts: # #" line in the script;
|
||||
" check if its already in the datafile by searching backwards from llp1,
|
||||
" the (prior to reading in the plugin script) last line plus one of the GetLatestVimScripts.dat file,
|
||||
" for the script-id with no wrapping allowed.
|
||||
let curline = line(".")
|
||||
let noai_script = substitute(depscript,'\s*:AutoInstall:\s*','','e')
|
||||
exe llp1
|
||||
let srchline = search('^\s*'.depscriptid.'\s\+\d\+\s\+.*$','bW')
|
||||
if srchline == 0
|
||||
" this second search is taken when, for example, a 0 0 scriptname is to be skipped over
|
||||
let srchline= search('\<'.noai_script.'\>','bW')
|
||||
" don't process ""GetLatestVimScripts lines -- those that have been doubly-commented out
|
||||
if newscript !~ '^"'
|
||||
" found a "GetLatestVimScripts: # #" line in the script; check if its already in the datafile
|
||||
let curline = line(".")
|
||||
let noai_script = substitute(newscript,'\s*:AutoInstall:\s*','','e')
|
||||
exe llp1
|
||||
let srchline = search('\<'.noai_script.'\>','bW')
|
||||
" call Decho("..noai_script<".noai_script."> srch=".srchline."curline#".line(".")." lastline#".lastline)
|
||||
|
||||
if srchline == 0
|
||||
" found a new script to permanently include in the datafile
|
||||
let keep_rega = @a
|
||||
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
|
||||
exe lastline."put a"
|
||||
echomsg "Appending <".@a."> to ".datafile." for ".newscript
|
||||
" call Decho("..APPEND (".noai_script.")<".@a."> to GetLatestVimScripts.dat")
|
||||
let @a = keep_rega
|
||||
let lastline = llp1
|
||||
let curline = curline + 1
|
||||
let foundscript = foundscript + 1
|
||||
" else " Decho
|
||||
" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
|
||||
endif
|
||||
|
||||
let curline = curline + 1
|
||||
exe curline
|
||||
endif
|
||||
" call Decho("..noai_script<".noai_script."> depscriptid#".depscriptid." srchline#".srchline." curline#".line(".")." lastline#".lastline)
|
||||
|
||||
if srchline == 0
|
||||
" found a new script to permanently include in the datafile
|
||||
let keep_rega = @a
|
||||
let @a = substitute(getline(curline),'^"\s\+GetLatestVimScripts:\s\+','','')
|
||||
echomsg "Appending <".@a."> to ".datafile." for ".depscript
|
||||
" call Decho("..Appending <".@a."> to ".datafile." for ".depscript)
|
||||
exe lastline."put a"
|
||||
let @a = keep_rega
|
||||
let lastline = llp1
|
||||
let curline = curline + 1
|
||||
let foundscript = foundscript + 1
|
||||
" else " Decho
|
||||
" call Decho("..found <".noai_script."> (already in datafile at line#".srchline.")")
|
||||
endif
|
||||
|
||||
let curline = curline + 1
|
||||
exe curline
|
||||
endwhile
|
||||
|
||||
" llp1: last line plus one
|
||||
let llp1= lastline + 1
|
||||
" call Decho(".deleting lines: ".llp1.",$d")
|
||||
exe "silent! ".llp1.",$d"
|
||||
@@ -281,9 +282,7 @@ fun! getscript#GetLatestVimScripts()
|
||||
setlocal nomod
|
||||
endif
|
||||
|
||||
" --------------------------------------------------------------------
|
||||
" Check on out-of-date scripts using GetLatest/GetLatestVimScripts.dat
|
||||
" --------------------------------------------------------------------
|
||||
" call Decho("begin: checking out-of-date scripts using datafile<".datafile.">")
|
||||
setlocal lz
|
||||
1
|
||||
@@ -319,13 +318,12 @@ fun! getscript#GetLatestVimScripts()
|
||||
if &mod
|
||||
silent! w!
|
||||
endif
|
||||
q!
|
||||
q
|
||||
|
||||
" restore events and current directory
|
||||
exe "cd ".fnameescape(substitute(origdir,'\','/','ge'))
|
||||
let &ei = eikeep
|
||||
let &hls = hlskeep
|
||||
let &acd = acdkeep
|
||||
let &ei= eikeep
|
||||
let &hls= hlskeep
|
||||
setlocal nolz
|
||||
" call Dredir("BUFFER TEST (GetLatestVimScripts 2)","ls!")
|
||||
" call Dret("GetLatestVimScripts : did ".s:downloads." downloads")
|
||||
@@ -335,7 +333,7 @@ endfun
|
||||
" GetOneScript: (Get Latest Vim Script) this function operates {{{1
|
||||
" on the current line, interpreting two numbers and text as
|
||||
" ScriptID, SourceID, and Filename.
|
||||
" It downloads any scripts that have newer versions from vim.sourceforge.net.
|
||||
" It downloads any scripts that have newer versions from vim.sf.net.
|
||||
fun! s:GetOneScript(...)
|
||||
" call Dfunc("GetOneScript()")
|
||||
|
||||
@@ -393,7 +391,6 @@ fun! s:GetOneScript(...)
|
||||
" call Decho("fname <".fname.">")
|
||||
endif
|
||||
|
||||
" plugin author protection from downloading his/her own scripts atop their latest work
|
||||
if scriptid == 0 || srcid == 0
|
||||
" When looking for :AutoInstall: lines, skip scripts that have 0 0 scriptname
|
||||
let @a= rega
|
||||
@@ -419,21 +416,21 @@ fun! s:GetOneScript(...)
|
||||
" call Decho('considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid)
|
||||
echo 'considering <'.aicmmnt.'> scriptid='.scriptid.' srcid='.srcid
|
||||
|
||||
" grab a copy of the plugin's vim.sourceforge.net webpage
|
||||
let scriptaddr = g:GetLatestVimScripts_scriptaddr.scriptid
|
||||
" grab a copy of the plugin's vim.sf.net webpage
|
||||
let scriptaddr = 'http://vim.sf.net/script.php?script_id='.scriptid
|
||||
let tmpfile = tempname()
|
||||
let v:errmsg = ""
|
||||
|
||||
" make up to three tries at downloading the description
|
||||
let itry= 1
|
||||
while itry <= 3
|
||||
" call Decho(".try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
|
||||
" call Decho("try#".itry." to download description of <".aicmmnt."> with addr=".scriptaddr)
|
||||
if has("win32") || has("win16") || has("win95")
|
||||
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)."|bw!")
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile).' '.shellescape(scriptaddr)|bw!
|
||||
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)."|bw!")
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile).' '.s:Escape(scriptaddr)|bw!
|
||||
else
|
||||
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr))
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(tmpfile)." ".shellescape(scriptaddr)
|
||||
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr))
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(tmpfile)." ".s:Escape(scriptaddr)
|
||||
endif
|
||||
if itry == 1
|
||||
exe "silent vsplit ".fnameescape(tmpfile)
|
||||
@@ -498,7 +495,8 @@ fun! s:GetOneScript(...)
|
||||
let latestsrcid = latestsrcid + 0
|
||||
" call Decho("srcid=".srcid." latestsrcid=".latestsrcid." sname<".sname.">")
|
||||
|
||||
" has the plugin's most-recent srcid increased, which indicates that it has been updated
|
||||
" has the plugin's most-recent srcid increased, which indicates
|
||||
" that it has been updated
|
||||
if latestsrcid > srcid
|
||||
" call Decho("[latestsrcid=".latestsrcid."] <= [srcid=".srcid."]: need to update <".sname.">")
|
||||
|
||||
@@ -508,121 +506,65 @@ fun! s:GetOneScript(...)
|
||||
let sname= "NEW_".sname
|
||||
endif
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" the plugin has been updated since we last obtained it, so download a new copy
|
||||
" -----------------------------------------------------------------------------
|
||||
" call Decho(".downloading new <".sname.">")
|
||||
echomsg ".downloading new <".sname.">"
|
||||
" call Decho("...downloading new <".sname.">")
|
||||
echomsg "...downloading new <".sname.">"
|
||||
if has("win32") || has("win16") || has("win95")
|
||||
" call Decho(".new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='.latestsrcid)|q
|
||||
" call Decho("new|exe silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)."|q")
|
||||
new|exe "silent r!".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='.latestsrcid)|q
|
||||
else
|
||||
" call Decho(".exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id='))
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".shellescape(sname)." ".shellescape('http://vim.sourceforge.net/scripts/download_script.php?src_id=').latestsrcid
|
||||
" call Decho("exe silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id='))
|
||||
exe "silent !".g:GetLatestVimScripts_wget." ".g:GetLatestVimScripts_options." ".s:Escape(sname)." ".s:Escape('http://vim.sf.net/scripts/download_script.php?src_id=').latestsrcid
|
||||
endif
|
||||
|
||||
" --------------------------------------------------------------------------
|
||||
" 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))
|
||||
" call Decho("attempting to do autoinstall: getcwd<".getcwd()."> filereadable(".sname.")=".filereadable(sname))
|
||||
if filereadable(sname)
|
||||
" 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 = fnameescape(substitute(getcwd(),'\','/','ge'))
|
||||
" call Decho("exe silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall))
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".s:Escape(s:autoinstall)
|
||||
let curdir = escape(substitute(getcwd(),'\','/','ge'),"|[]*'\" #")
|
||||
let installdir= curdir."/Installed"
|
||||
if !isdirectory(installdir)
|
||||
call mkdir(installdir)
|
||||
endif
|
||||
" call Decho("curdir<".curdir."> installdir<".installdir.">")
|
||||
" call Decho("exe cd ".fnameescape(s:autoinstall))
|
||||
" call Decho("exe cd ".fnameescape(s:autoinstall))
|
||||
exe "cd ".fnameescape(s:autoinstall)
|
||||
|
||||
" determine target directory for moves
|
||||
let firstdir= substitute(&rtp,',.*$','','')
|
||||
let pname = substitute(sname,'\..*','.vim','')
|
||||
" call Decho("determine tgtdir: is <".firstdir.'/AsNeeded/'.pname." readable?")
|
||||
if filereadable(firstdir.'/AsNeeded/'.pname)
|
||||
let tgtdir= "AsNeeded"
|
||||
else
|
||||
let tgtdir= "plugin"
|
||||
endif
|
||||
" call Decho("tgtdir<".tgtdir."> pname<".pname.">")
|
||||
|
||||
" decompress
|
||||
if sname =~ '\.bz2$'
|
||||
" call Decho("decompress: attempt to bunzip2 ".sname)
|
||||
exe "sil !bunzip2 ".shellescape(sname)
|
||||
exe "silent !bunzip2 ".s:Escape(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 "sil !gunzip ".shellescape(sname)
|
||||
exe "silent !gunzip ".s:Escape(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)
|
||||
exe "silent !unzip -o ".s:Escape(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)
|
||||
exe "silent !tar -xvf ".s:Escape(sname)
|
||||
elseif sname =~ '\.vba$'
|
||||
" call Decho("dearchive: attempt to handle a vimball: ".sname)
|
||||
silent 1split
|
||||
if exists("g:vimball_home")
|
||||
let oldvimballhome= g:vimball_home
|
||||
endif
|
||||
let g:vimball_home= s:autoinstall
|
||||
exe "silent e ".fnameescape(sname)
|
||||
silent so %
|
||||
silent q
|
||||
if exists("oldvimballhome")
|
||||
let g:vimball_home= oldvimballhome
|
||||
else
|
||||
unlet g:vimball_home
|
||||
endif
|
||||
else
|
||||
" call Decho("no dearchiving needed")
|
||||
endif
|
||||
|
||||
" ---------------------------------------------
|
||||
" move plugin to plugin/ or AsNeeded/ directory
|
||||
" ---------------------------------------------
|
||||
if sname =~ '.vim$'
|
||||
" call Decho("dearchive: attempt to simply move ".sname." to ".tgtdir)
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".tgtdir
|
||||
" call Decho("dearchive: attempt to simply move ".sname." to plugin")
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." plugin"
|
||||
else
|
||||
" call Decho("dearchive: move <".sname."> to installdir<".installdir.">")
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".shellescape(sname)." ".installdir
|
||||
endif
|
||||
if tgtdir != "plugin"
|
||||
" call Decho("exe silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir)
|
||||
exe "silent !".g:GetLatestVimScripts_mv." plugin/".shellescape(pname)." ".tgtdir
|
||||
exe "silent !".g:GetLatestVimScripts_mv." ".s:Escape(sname)." ".installdir
|
||||
endif
|
||||
|
||||
" helptags step
|
||||
@@ -657,6 +599,20 @@ fun! s:GetOneScript(...)
|
||||
" call Dret("GetOneScript")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Escape: makes a string safe&suitable for the shell {{{2
|
||||
fun! s:Escape(name)
|
||||
" call Dfunc("s:Escape(name<".a:name.">)")
|
||||
if exists("*shellescape")
|
||||
" shellescape() was added by patch 7.0.111
|
||||
let name= shellescape(a:name)
|
||||
else
|
||||
let name= g:getscript_shq . a:name . g:getscript_shq
|
||||
endif
|
||||
" call Dret("s:Escape ".name)
|
||||
return name
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Restore Options: {{{1
|
||||
let &cpo= s:keepcpo
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
"------------------------------------------------------------------------------
|
||||
" Description: Vim Ada/GNAT compiler file
|
||||
" Language: Ada (GNAT)
|
||||
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
|
||||
" $Id$
|
||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
||||
" Ned Okie <nokie@radford.edu>
|
||||
" $Author: krischik $
|
||||
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||
" $Author$
|
||||
" $Date$
|
||||
" Version: 4.6
|
||||
" $Revision: 887 $
|
||||
" $Revision$
|
||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/gnat.vim $
|
||||
" History: 24.05.2006 MK Unified Headers
|
||||
" 16.07.2006 MK Ada-Mode as vim-ball
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: HTML and XHTML
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2011 Apr 28
|
||||
" Last Change: 2006 Oct 19
|
||||
|
||||
function! htmlcomplete#CompleteTags(findstart, base)
|
||||
if a:findstart
|
||||
@@ -285,7 +285,6 @@ 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, ' ')
|
||||
|
||||
+2547
-4641
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
|
||||
" Date: May 03, 2013
|
||||
" Version: 11b ASTRO-ONLY
|
||||
" Copyright: Copyright (C) 1999-2012 Charles E. Campbell {{{1
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: May 30, 2006
|
||||
" Version: 9
|
||||
" Copyright: Copyright (C) 1999-2005 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,24 +20,18 @@
|
||||
if exists("g:loaded_netrwFileHandlers") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwFileHandlers= "v11b"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwFileHandlers needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
let g:loaded_netrwFileHandlers= "v9"
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" netrwFileHandlers#Invoke: {{{1
|
||||
fun! netrwFileHandlers#Invoke(exten,fname)
|
||||
" call Dfunc("netrwFileHandlers#Invoke(exten<".a:exten."> fname<".a:fname.">)")
|
||||
let exten= a:exten
|
||||
let fname= a:fname
|
||||
" list of supported special characters. Consider rcs,v --- that can be
|
||||
" supported with a NFH_rcsCOMMAv() handler
|
||||
if exten =~ '[@:,$!=\-+%?;~]'
|
||||
if a:fname =~ '[@:,$!=\-+%?;~]'
|
||||
let specials= {
|
||||
\ '@' : 'AT',
|
||||
\ ':' : 'COLON',
|
||||
@@ -51,20 +45,20 @@ fun! netrwFileHandlers#Invoke(exten,fname)
|
||||
\ '?' : 'QUESTION',
|
||||
\ ';' : 'SEMICOLON',
|
||||
\ '~' : 'TILDE'}
|
||||
let exten= substitute(a:exten,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
|
||||
let fname= substitute(a:fname,'[@:,$!=\-+%?;~]','\=specials[submatch(0)]','ge')
|
||||
" call Decho('fname<'.fname.'> done with dictionary')
|
||||
endif
|
||||
|
||||
if a:exten != "" && exists("*NFH_".exten)
|
||||
if a:exten != "" && exists("*NFH_".a:exten)
|
||||
" support user NFH_*() functions
|
||||
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
|
||||
exe "let ret= NFH_".exten.'("'.a:fname.'")'
|
||||
elseif a:exten != "" && exists("*s:NFH_".exten)
|
||||
exe "let ret= NFH_".a:exten.'("'.fname.'")'
|
||||
elseif a:exten != "" && exists("*s:NFH_".a:exten)
|
||||
" use builtin-NFH_*() functions
|
||||
" call Decho("let ret= netrwFileHandlers#NFH_".a:exten.'("'.fname.'")')
|
||||
exe "let ret= s:NFH_".a:exten.'("'.a:fname.'")'
|
||||
exe "let ret= s:NFH_".a:exten.'("'.fname.'")'
|
||||
endif
|
||||
|
||||
|
||||
" call Dret("netrwFileHandlers#Invoke 0 : ret=".ret)
|
||||
return 0
|
||||
endfun
|
||||
@@ -79,10 +73,10 @@ fun! s:NFH_html(pagefile)
|
||||
|
||||
if executable("mozilla")
|
||||
" call Decho("executing !mozilla ".page)
|
||||
exe "!mozilla ".shellescape(page,1)
|
||||
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
|
||||
elseif executable("netscape")
|
||||
" call Decho("executing !netscape ".page)
|
||||
exe "!netscape ".shellescape(page,1)
|
||||
exe "!netscape ".g:netrw_shq..page.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_html 0")
|
||||
return 0
|
||||
@@ -102,10 +96,10 @@ fun! s:NFH_htm(pagefile)
|
||||
|
||||
if executable("mozilla")
|
||||
" call Decho("executing !mozilla ".page)
|
||||
exe "!mozilla ".shellescape(page,1)
|
||||
exe "!mozilla ".g:netrw_shq.page.g:netrw_shq
|
||||
elseif executable("netscape")
|
||||
" call Decho("executing !netscape ".page)
|
||||
exe "!netscape ".shellescape(page,1)
|
||||
exe "!netscape ".g:netrw_shq.page.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_htm 0")
|
||||
return 0
|
||||
@@ -121,10 +115,10 @@ fun! s:NFH_jpg(jpgfile)
|
||||
" call Dfunc("s:NFH_jpg(jpgfile<".a:jpgfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:jpgfile,1)
|
||||
exe "silent! !gimp -s ".g:netrw_shq.a:jpgfile.g:netrw_shq
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
|
||||
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:jpgfile,1)
|
||||
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:jpgfile.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_jpg 0")
|
||||
return 0
|
||||
@@ -140,9 +134,9 @@ fun! s:NFH_gif(giffile)
|
||||
" call Dfunc("s:NFH_gif(giffile<".a:giffile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:giffile,1)
|
||||
exe "silent! !gimp -s ".g:netrw_shq.a:giffile.g:netrw_shq
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:giffile,1)
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:giffile.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_gif 0")
|
||||
return 0
|
||||
@@ -158,9 +152,9 @@ fun! s:NFH_png(pngfile)
|
||||
" call Dfunc("s:NFH_png(pngfile<".a:pngfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:pngfile,1)
|
||||
exe "silent! !gimp -s ".g:netrw_shq.a:pngfile.g:netrw_shq
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pngfile,1)
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pngfile.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_png 0")
|
||||
return 0
|
||||
@@ -176,9 +170,9 @@ fun! s:NFH_pnm(pnmfile)
|
||||
" call Dfunc("s:NFH_pnm(pnmfile<".a:pnmfile.">)")
|
||||
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".shellescape(a:pnmfile,1)
|
||||
exe "silent! !gimp -s ".g:netrw_shq.a:pnmfile.g:netrw_shq
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:pnmfile,1)
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:pnmfile.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_pnm 0")
|
||||
return 0
|
||||
@@ -196,7 +190,7 @@ fun! s:NFH_bmp(bmpfile)
|
||||
if executable("gimp")
|
||||
exe "silent! !gimp -s ".a:bmpfile
|
||||
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".shellescape(a:bmpfile,1)
|
||||
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".g:netrw_shq.a:bmpfile.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_bmp 0")
|
||||
return 0
|
||||
@@ -211,9 +205,9 @@ endfun
|
||||
fun! s:NFH_pdf(pdf)
|
||||
" call Dfunc("s:NFH_pdf(pdf<".a:pdf.">)")
|
||||
if executable("gs")
|
||||
exe 'silent! !gs '.shellescape(a:pdf,1)
|
||||
exe 'silent! !gs '.g:netrw_shq.a:pdf.g:netrw_shq
|
||||
elseif executable("pdftotext")
|
||||
exe 'silent! pdftotext -nopgbrk '.shellescape(a:pdf,1)
|
||||
exe 'silent! pdftotext -nopgbrk '.g:netrw_shq.a:pdf.g:netrw_shq
|
||||
else
|
||||
" call Dret("s:NFH_pdf 0")
|
||||
return 0
|
||||
@@ -229,7 +223,7 @@ fun! s:NFH_doc(doc)
|
||||
" call Dfunc("s:NFH_doc(doc<".a:doc.">)")
|
||||
|
||||
if executable("oowriter")
|
||||
exe 'silent! !oowriter '.shellescape(a:doc,1)
|
||||
exe 'silent! !oowriter '.g:netrw_shq.a:doc.g:netrw_shq
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_doc 0")
|
||||
@@ -246,7 +240,7 @@ fun! s:NFH_sxw(sxw)
|
||||
" call Dfunc("s:NFH_sxw(sxw<".a:sxw.">)")
|
||||
|
||||
if executable("oowriter")
|
||||
exe 'silent! !oowriter '.shellescape(a:sxw,1)
|
||||
exe 'silent! !oowriter '.g:netrw_shq.a:sxw.g:netrw_shq
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_sxw 0")
|
||||
@@ -263,7 +257,7 @@ fun! s:NFH_xls(xls)
|
||||
" call Dfunc("s:NFH_xls(xls<".a:xls.">)")
|
||||
|
||||
if executable("oocalc")
|
||||
exe 'silent! !oocalc '.shellescape(a:xls,1)
|
||||
exe 'silent! !oocalc '.g:netrw_shq.a:xls.g:netrw_shq
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_xls 0")
|
||||
@@ -280,15 +274,15 @@ fun! s:NFH_ps(ps)
|
||||
" call Dfunc("s:NFH_ps(ps<".a:ps.">)")
|
||||
if executable("gs")
|
||||
" call Decho("exe silent! !gs ".a:ps)
|
||||
exe "silent! !gs ".shellescape(a:ps,1)
|
||||
exe "silent! !gs ".g:netrw_shq.a:ps.g:netrw_shq
|
||||
redraw!
|
||||
elseif executable("ghostscript")
|
||||
" call Decho("exe silent! !ghostscript ".a:ps)
|
||||
exe "silent! !ghostscript ".shellescape(a:ps,1)
|
||||
exe "silent! !ghostscript ".g:netrw_shq.a:ps.g:netrw_shq
|
||||
redraw!
|
||||
elseif executable("gswin32")
|
||||
" call Decho("exe silent! !gswin32 ".shellescape(a:ps,1))
|
||||
exe "silent! !gswin32 ".shellescape(a:ps,1)
|
||||
" call Decho("exe silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq)
|
||||
exe "silent! !gswin32 ".g:netrw_shq.a:ps.g:netrw_shq
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_ps 0")
|
||||
@@ -304,16 +298,16 @@ endfun
|
||||
fun! s:NFH_eps(eps)
|
||||
" call Dfunc("s:NFH_eps()")
|
||||
if executable("gs")
|
||||
exe "silent! !gs ".shellescape(a:eps,1)
|
||||
exe "silent! !gs ".g:netrw_shq.a:eps.g:netrw_shq
|
||||
redraw!
|
||||
elseif executable("ghostscript")
|
||||
exe "silent! !ghostscript ".shellescape(a:eps,1)
|
||||
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
|
||||
redraw!
|
||||
elseif executable("ghostscript")
|
||||
exe "silent! !ghostscript ".shellescape(a:eps,1)
|
||||
exe "silent! !ghostscript ".g:netrw_shq.a:eps.g:netrw_shq
|
||||
redraw!
|
||||
elseif executable("gswin32")
|
||||
exe "silent! !gswin32 ".shellescape(a:eps,1)
|
||||
exe "silent! !gswin32 ".g:netrw_shq.a:eps.g:netrw_shq
|
||||
redraw!
|
||||
else
|
||||
" call Dret("s:NFH_eps 0")
|
||||
@@ -356,7 +350,6 @@ fun! s:NFH_obj(obj)
|
||||
endfun
|
||||
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines: {{{1
|
||||
" vim: fdm=marker
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" netrwSettings.vim: makes netrw settings simpler
|
||||
" Date: May 03, 2013
|
||||
" Maintainer: Charles E Campbell <drchipNOSPAM at campbellfamily dot biz>
|
||||
" Version: 14a ASTRO-ONLY
|
||||
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
|
||||
" Date: Jul 02, 2008
|
||||
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
|
||||
" Version: 12
|
||||
" Copyright: Copyright (C) 1999-2007 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,
|
||||
@@ -19,13 +19,7 @@
|
||||
if exists("g:loaded_netrwSettings") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v14a"
|
||||
if v:version < 700
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of netrwSettings needs vim 7.0"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let g:loaded_netrwSettings = "v12"
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" NetrwSettings: {{{1
|
||||
@@ -63,7 +57,7 @@ fun! netrwSettings#NetrwSettings()
|
||||
endif
|
||||
|
||||
put ='+ ---------------------------------------------'
|
||||
put ='+ NetrwSettings: by Charles E. Campbell'
|
||||
put ='+ NetrwSettings: by Charles E. Campbell, Jr.'
|
||||
put ='+ Press <F1> with cursor atop any line for help'
|
||||
put ='+ ---------------------------------------------'
|
||||
let s:netrw_settings_stop= line(".")
|
||||
@@ -88,7 +82,6 @@ fun! netrwSettings#NetrwSettings()
|
||||
put = 'let g:netrw_ftpmode = '.g:netrw_ftpmode
|
||||
put = 'let g:netrw_ignorenetrc = '.g:netrw_ignorenetrc
|
||||
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
||||
put = 'let g:netrw_silent = '.g:netrw_silent
|
||||
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp
|
||||
put = 'let g:netrw_win95ftp = '.g:netrw_win95ftp
|
||||
let s:netrw_xfer_stop= line(".")
|
||||
@@ -100,83 +93,51 @@ fun! netrwSettings#NetrwSettings()
|
||||
put ='+ Netrw Browser Control'
|
||||
put = 'let g:netrw_alto = '.g:netrw_alto
|
||||
put = 'let g:netrw_altv = '.g:netrw_altv
|
||||
put = 'let g:netrw_banner = '.g:netrw_banner
|
||||
if exists("g:netrw_bannerbackslash")
|
||||
put = 'let g:netrw_bannerbackslash = '.g:netrw_bannerbackslash
|
||||
else
|
||||
put = '\" let g:netrw_bannerbackslash = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_browse_split = '.g:netrw_browse_split
|
||||
if exists("g:netrw_browsex_viewer")
|
||||
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
|
||||
put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
|
||||
else
|
||||
put = '\" let g:netrw_browsex_viewer = (not defined)'
|
||||
put = 'let g:netrw_browsex_viewer = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_compress = '.g:netrw_compress
|
||||
if exists("g:Netrw_corehandler")
|
||||
put = 'let g:Netrw_corehandler = '.g:Netrw_corehandler
|
||||
else
|
||||
put = '\" let g:Netrw_corehandler = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_ctags = '.g:netrw_ctags
|
||||
put = 'let g:netrw_cursor = '.g:netrw_cursor
|
||||
let decompressline= line("$")
|
||||
put = 'let g:netrw_decompress = '.string(g:netrw_decompress)
|
||||
if exists("g:netrw_dynamic_maxfilenamelen")
|
||||
put = 'let g:netrw_dynamic_maxfilenamelen='.g:netrw_dynamic_maxfilenamelen
|
||||
else
|
||||
put = '\" let g:netrw_dynamic_maxfilenamelen= (not defined)'
|
||||
endif
|
||||
put ='let g:netrw_decompress...'
|
||||
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
|
||||
put = 'let g:netrw_errorlvl = '.g:netrw_errorlvl
|
||||
put = 'let g:netrw_fastbrowse = '.g:netrw_fastbrowse
|
||||
let fnameescline= line("$")
|
||||
put = 'let g:netrw_fname_escape = '.string(g:netrw_fname_escape)
|
||||
put = 'let g:netrw_fname_escape...'
|
||||
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
|
||||
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
|
||||
put = 'let g:netrw_ftp_sizelist_cmd = '.g:netrw_ftp_sizelist_cmd
|
||||
put = 'let g:netrw_ftp_timelist_cmd = '.g:netrw_ftp_timelist_cmd
|
||||
let globescline= line("$")
|
||||
put = 'let g:netrw_glob_escape = '.string(g:netrw_glob_escape)
|
||||
put ='let g:netrw_glob_escape...'
|
||||
put = 'let g:netrw_hide = '.g:netrw_hide
|
||||
if exists("g:netrw_home")
|
||||
put = 'let g:netrw_home = '.g:netrw_home
|
||||
else
|
||||
put = '\" let g:netrw_home = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_keepdir = '.g:netrw_keepdir
|
||||
put = 'let g:netrw_list_cmd = '.g:netrw_list_cmd
|
||||
put = 'let g:netrw_list_hide = '.g:netrw_list_hide
|
||||
put = 'let g:netrw_liststyle = '.g:netrw_liststyle
|
||||
put = 'let g:netrw_localcopycmd = '.g:netrw_localcopycmd
|
||||
put = 'let g:netrw_localmkdir = '.g:netrw_localmkdir
|
||||
put = 'let g:netrw_local_mkdir = '.g:netrw_local_mkdir
|
||||
put = 'let g:netrw_localmovecmd = '.g:netrw_localmovecmd
|
||||
put = 'let g:netrw_localrmdir = '.g:netrw_localrmdir
|
||||
put = 'let g:netrw_local_rmdir = '.g:netrw_local_rmdir
|
||||
put = 'let g:netrw_maxfilenamelen = '.g:netrw_maxfilenamelen
|
||||
put = 'let g:netrw_menu = '.g:netrw_menu
|
||||
put = 'let g:netrw_mousemaps = '.g:netrw_mousemaps
|
||||
put = 'let g:netrw_mkdir_cmd = '.g:netrw_mkdir_cmd
|
||||
if exists("g:netrw_nobeval")
|
||||
put = 'let g:netrw_nobeval = '.g:netrw_nobeval
|
||||
else
|
||||
put = '\" let g:netrw_nobeval = (not defined)'
|
||||
endif
|
||||
put = 'let g:netrw_remote_mkdir = '.g:netrw_remote_mkdir
|
||||
put = 'let g:netrw_preview = '.g:netrw_preview
|
||||
put = 'let g:netrw_rename_cmd = '.g:netrw_rename_cmd
|
||||
put = 'let g:netrw_retmap = '.g:netrw_retmap
|
||||
put = 'let g:netrw_rm_cmd = '.g:netrw_rm_cmd
|
||||
put = 'let g:netrw_rmdir_cmd = '.g:netrw_rmdir_cmd
|
||||
put = 'let g:netrw_rmf_cmd = '.g:netrw_rmf_cmd
|
||||
put = 'let g:netrw_silent = '.g:netrw_silent
|
||||
put = 'let g:netrw_sort_by = '.g:netrw_sort_by
|
||||
put = 'let g:netrw_sort_direction = '.g:netrw_sort_direction
|
||||
put = 'let g:netrw_sort_options = '.g:netrw_sort_options
|
||||
put = 'let g:netrw_sort_sequence = '.g:netrw_sort_sequence
|
||||
put = 'let g:netrw_special_syntax = '.g:netrw_special_syntax
|
||||
put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
|
||||
put = 'let g:netrw_ssh_cmd = '.g:netrw_ssh_cmd
|
||||
put = 'let g:netrw_scpport = '.g:netrw_scpport
|
||||
put = 'let g:netrw_sepchr = '.g:netrw_sepchr
|
||||
put = 'let g:netrw_sshport = '.g:netrw_sshport
|
||||
put = 'let g:netrw_timefmt = '.g:netrw_timefmt
|
||||
let tmpfileescline= line("$")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: PHP
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2011 Dec 08
|
||||
" Last Change: 2006 May 9
|
||||
"
|
||||
" TODO:
|
||||
" - Class aware completion:
|
||||
@@ -650,7 +650,6 @@ 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)
|
||||
@@ -668,9 +667,6 @@ 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)
|
||||
|
||||
@@ -1,606 +0,0 @@
|
||||
"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,28 +1,17 @@
|
||||
"pythoncomplete.vim - Omni Completion for python
|
||||
" Maintainer: Aaron Griffin <aaronmgriffin@gmail.com>
|
||||
" Version: 0.9
|
||||
" Last Updated: 18 Jun 2009
|
||||
" Version: 0.7
|
||||
" Last Updated: 19 Oct 2006
|
||||
"
|
||||
" Changes
|
||||
" TODO:
|
||||
" User defined docstrings aren't handled right...
|
||||
" '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
|
||||
@@ -74,7 +63,7 @@ function! pythoncomplete#Complete(findstart, base)
|
||||
while idx > 0
|
||||
let idx -= 1
|
||||
let c = line[idx]
|
||||
if c =~ '\w' || c =~ '\.'
|
||||
if c =~ '\w' || c =~ '\.' || c == '('
|
||||
let cword = c . cword
|
||||
continue
|
||||
elseif strlen(cword) > 0 || idx == 0
|
||||
@@ -217,7 +206,7 @@ class Completer(object):
|
||||
if len(stmt) > 0 and stmt[-1] == '(':
|
||||
result = eval(_sanitize(stmt[:-1]), self.compldict)
|
||||
doc = result.__doc__
|
||||
if doc is None: doc = ''
|
||||
if doc == None: doc = ''
|
||||
args = self.get_arguments(result)
|
||||
return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}]
|
||||
elif ridx == -1:
|
||||
@@ -234,18 +223,18 @@ class Completer(object):
|
||||
|
||||
try: maindoc = result.__doc__
|
||||
except: maindoc = ' '
|
||||
if maindoc is None: maindoc = ' '
|
||||
if maindoc == 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]
|
||||
if result == 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
|
||||
if doc == None or doc == '': doc = maindoc
|
||||
|
||||
wrd = m[len(match):]
|
||||
c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)}
|
||||
@@ -271,9 +260,9 @@ class Completer(object):
|
||||
return []
|
||||
|
||||
class Scope(object):
|
||||
def __init__(self,name,indent,docstr=''):
|
||||
def __init__(self,name,indent):
|
||||
self.subscopes = []
|
||||
self.docstr = docstr
|
||||
self.docstr = ''
|
||||
self.locals = []
|
||||
self.parent = None
|
||||
self.name = name
|
||||
@@ -292,28 +281,29 @@ class Scope(object):
|
||||
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)
|
||||
if not self._hasvaralready(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)
|
||||
return Scope(self.name,indent)
|
||||
|
||||
def _checkexisting(self,test):
|
||||
def _hasvaralready(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)
|
||||
return True
|
||||
return False
|
||||
|
||||
def get_code(self):
|
||||
str = ""
|
||||
if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n'
|
||||
# we need to start with this, to fix up broken completions
|
||||
# hopefully this name is unique enough...
|
||||
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'
|
||||
@@ -340,11 +330,11 @@ class Scope(object):
|
||||
return ' '*(self.indent+1)
|
||||
|
||||
class Class(Scope):
|
||||
def __init__(self, name, supers, indent, docstr=''):
|
||||
Scope.__init__(self,name,indent, docstr)
|
||||
def __init__(self, name, supers, indent):
|
||||
Scope.__init__(self,name,indent)
|
||||
self.supers = supers
|
||||
def copy_decl(self,indent=0):
|
||||
c = Class(self.name,self.supers,indent, self.docstr)
|
||||
c = Class(self.name,self.supers,indent)
|
||||
for s in self.subscopes:
|
||||
c.add(s.copy_decl(indent+1))
|
||||
return c
|
||||
@@ -361,11 +351,11 @@ class Class(Scope):
|
||||
|
||||
|
||||
class Function(Scope):
|
||||
def __init__(self, name, params, indent, docstr=''):
|
||||
Scope.__init__(self,name,indent, docstr)
|
||||
def __init__(self, name, params, indent):
|
||||
Scope.__init__(self,name,indent)
|
||||
self.params = params
|
||||
def copy_decl(self,indent=0):
|
||||
return Function(self.name,self.params,indent, self.docstr)
|
||||
return Function(self.name,self.params,indent)
|
||||
def get_code(self):
|
||||
str = "%sdef %s(%s):\n" % \
|
||||
(self.currentindent(),self.name,','.join(self.params))
|
||||
@@ -381,7 +371,7 @@ class PyParser:
|
||||
def _parsedotname(self,pre=None):
|
||||
#returns (dottedname, nexttoken)
|
||||
name = []
|
||||
if pre is None:
|
||||
if pre == None:
|
||||
tokentype, token, indent = self.next()
|
||||
if tokentype != NAME and token != '*':
|
||||
return ('', token)
|
||||
@@ -415,20 +405,17 @@ class PyParser:
|
||||
while True:
|
||||
tokentype, token, indent = self.next()
|
||||
if token in (')', ',') and level == 1:
|
||||
if '=' not in name: name = name.replace(' ', '')
|
||||
names.append(name.strip())
|
||||
names.append(name)
|
||||
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)
|
||||
name += str(token)
|
||||
return names
|
||||
|
||||
def _parsefunction(self,indent):
|
||||
@@ -508,26 +495,16 @@ class PyParser:
|
||||
#Handle 'self' params
|
||||
if scp.parent != None and type(scp.parent) == Class:
|
||||
slice = 1
|
||||
p = scp.params[0]
|
||||
i = p.find('=')
|
||||
if i != -1: p = p[:i]
|
||||
newscope.local('%s = %s' % (scp.params[0],scp.parent.name))
|
||||
for p in scp.params[slice:]:
|
||||
i = p.find('=')
|
||||
if len(p) == 0: continue
|
||||
pvar = ''
|
||||
ptype = ''
|
||||
if i == -1:
|
||||
pvar = p
|
||||
ptype = '_PyCmplNoType()'
|
||||
newscope.local('%s = _PyCmplNoType()' % p)
|
||||
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))
|
||||
newscope.local('%s = %s' % (p[:i],_sanitize(p[i+1])))
|
||||
|
||||
for s in scp.subscopes:
|
||||
ns = s.copy_decl(0)
|
||||
@@ -555,19 +532,17 @@ class PyParser:
|
||||
self.scope = self.scope.pop(indent)
|
||||
elif token == 'def':
|
||||
func = self._parsefunction(indent)
|
||||
if func is None:
|
||||
if func == 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:
|
||||
if cls == None:
|
||||
print "class: syntax error..."
|
||||
continue
|
||||
freshscope = True
|
||||
dbg("new scope: class")
|
||||
self.scope = self.scope.add(cls)
|
||||
|
||||
elif token == 'import':
|
||||
@@ -594,7 +569,6 @@ class PyParser:
|
||||
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
|
||||
|
||||
@@ -1,32 +1,27 @@
|
||||
" Vim completion script
|
||||
" Language: Ruby
|
||||
" Maintainer: Mark Guzman <segfault@hasno.info>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Info: $Id$
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
" Maintainer Version: 0.8.1
|
||||
" Maintainer Version: 0.8
|
||||
" ----------------------------------------------------------------------------
|
||||
"
|
||||
" Ruby IRB/Complete author: Keiju ISHITSUKA(keiju@ishitsuka.com)
|
||||
" ----------------------------------------------------------------------------
|
||||
|
||||
" {{{ requirement checks
|
||||
|
||||
function! s:ErrMsg(msg)
|
||||
echohl ErrorMsg
|
||||
echo a:msg
|
||||
echohl None
|
||||
endfunction
|
||||
|
||||
if !has('ruby')
|
||||
call s:ErrMsg( "Error: Rubycomplete requires vim compiled with +ruby" )
|
||||
call s:ErrMsg( "Error: falling back to syntax completion" )
|
||||
s:ErrMsg( "Error: Rubycomplete requires vim compiled with +ruby" )
|
||||
s:ErrMsg( "Error: falling back to syntax completion" )
|
||||
" lets fall back to syntax completion
|
||||
setlocal omnifunc=syntaxcomplete#Complete
|
||||
finish
|
||||
endif
|
||||
|
||||
if version < 700
|
||||
call s:ErrMsg( "Error: Required vim >= 7.0" )
|
||||
s:ErrMsg( "Error: Required vim >= 7.0" )
|
||||
finish
|
||||
endif
|
||||
" }}} requirement checks
|
||||
@@ -56,6 +51,12 @@ endif
|
||||
" {{{ vim-side support functions
|
||||
let s:rubycomplete_debug = 0
|
||||
|
||||
function! s:ErrMsg(msg)
|
||||
echohl ErrorMsg
|
||||
echo a:msg
|
||||
echohl None
|
||||
endfunction
|
||||
|
||||
function! s:dprint(msg)
|
||||
if s:rubycomplete_debug == 1
|
||||
echom a:msg
|
||||
@@ -132,7 +133,7 @@ function! s:GetRubyVarType(v)
|
||||
let stopline = 1
|
||||
let vtp = ''
|
||||
let pos = getpos('.')
|
||||
let sstr = '^\s*#\s*@var\s*'.escape(a:v, '*').'\>\s\+[^ \t]\+\s*$'
|
||||
let sstr = '^\s*#\s*@var\s*'.a:v.'\>\s\+[^ \t]\+\s*$'
|
||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
||||
if lnum != 0 && lcol != 0
|
||||
call setpos('.',pos)
|
||||
@@ -274,7 +275,7 @@ class VimRubyCompletion
|
||||
pare = /^\s*class\s*(.*)\s*<\s*(.*)\s*\n/.match( classdef )
|
||||
load_buffer_class( $2 ) if pare != nil && $2 != name # load parent class if needed
|
||||
|
||||
mixre = /.*\n\s*(include|prepend)\s*(.*)\s*\n/.match( classdef )
|
||||
mixre = /.*\n\s*include\s*(.*)\s*\n/.match( classdef )
|
||||
load_buffer_module( $2 ) if mixre != nil && $2 != name # load mixins if needed
|
||||
|
||||
begin
|
||||
@@ -324,7 +325,7 @@ class VimRubyCompletion
|
||||
ln = buf[x]
|
||||
if /^\s*(module|class|def|include)\s+/.match(ln)
|
||||
clscnt += 1 if $1 == "class"
|
||||
#dprint "\$1$1
|
||||
#dprint "\$1: %s" % $1
|
||||
classdef += "%s\n" % ln
|
||||
classdef += "end\n" if /def\s+/.match(ln)
|
||||
dprint ln
|
||||
@@ -363,10 +364,6 @@ class VimRubyCompletion
|
||||
print txt if @@debug
|
||||
end
|
||||
|
||||
def escape_vim_singlequote_string(str)
|
||||
str.to_s.gsub(/'/,"\\'")
|
||||
end
|
||||
|
||||
def get_buffer_entity_list( type )
|
||||
# this will be a little expensive.
|
||||
loading_allowed = VIM::evaluate("exists('g:rubycomplete_buffer_loading') && g:rubycomplete_buffer_loading")
|
||||
@@ -529,9 +526,9 @@ class VimRubyCompletion
|
||||
end
|
||||
|
||||
def clean_sel(sel, msg)
|
||||
ret = sel.reject{|x|x.nil?}.uniq
|
||||
ret = ret.grep(/^#{Regexp.quote(msg)}/) if msg != nil
|
||||
ret
|
||||
sel.delete_if { |x| x == nil }
|
||||
sel.uniq!
|
||||
sel.grep(/^#{Regexp.quote(msg)}/) if msg != nil
|
||||
end
|
||||
|
||||
def get_rails_view_methods
|
||||
@@ -635,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 ]
|
||||
@@ -669,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)
|
||||
@@ -770,10 +767,10 @@ class VimRubyCompletion
|
||||
constants = clean_sel( constants, message )
|
||||
|
||||
valid = []
|
||||
valid += methods.collect { |m| { :name => m.to_s, :type => 'm' } }
|
||||
valid += variables.collect { |v| { :name => v.to_s, :type => 'v' } }
|
||||
valid += classes.collect { |c| { :name => c.to_s, :type => 't' } }
|
||||
valid += constants.collect { |d| { :name => d.to_s, :type => 'd' } }
|
||||
valid += methods.collect { |m| { :name => m, :type => 'm' } }
|
||||
valid += variables.collect { |v| { :name => v, :type => 'v' } }
|
||||
valid += classes.collect { |c| { :name => c, :type => 't' } }
|
||||
valid += constants.collect { |d| { :name => d, :type => 'd' } }
|
||||
valid.sort! { |x,y| x[:name] <=> y[:name] }
|
||||
|
||||
outp = ""
|
||||
@@ -782,7 +779,7 @@ class VimRubyCompletion
|
||||
rg.step(150) do |x|
|
||||
stpos = 0+x
|
||||
enpos = 150+x
|
||||
valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ].map{|x|escape_vim_singlequote_string(x)} }
|
||||
valid[stpos..enpos].each { |c| outp += "{'word':'%s','item':'%s','kind':'%s'}," % [ c[:name], c[:name], c[:type] ] }
|
||||
outp.sub!(/,$/, '')
|
||||
|
||||
VIM::command("call extend(g:rubycomplete_completions, [%s])" % outp)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim script to download a missing spell file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Jan 08
|
||||
" Last Change: 2008 Jun 27
|
||||
|
||||
if !exists('g:spellfile_URL')
|
||||
" Prefer using http:// when netrw should be able to use it, since
|
||||
@@ -39,22 +39,19 @@ function! spellfile#LoadFile(lang)
|
||||
let s:donedict[a:lang . &enc] = 1
|
||||
|
||||
" Find spell directories we can write in.
|
||||
let [dirlist, dirchoices] = spellfile#GetDirChoices()
|
||||
let dirlist = []
|
||||
let dirchoices = '&Cancel'
|
||||
for dir in split(globpath(&rtp, 'spell'), "\n")
|
||||
if filewritable(dir) == 2
|
||||
call add(dirlist, dir)
|
||||
let dirchoices .= "\n&" . len(dirlist)
|
||||
endif
|
||||
endfor
|
||||
if len(dirlist) == 0
|
||||
let dir_to_create = spellfile#WritableSpellDir()
|
||||
if &verbose || dir_to_create != ''
|
||||
if &verbose
|
||||
echomsg 'spellfile#LoadFile(): There is no writable spell directory.'
|
||||
endif
|
||||
if dir_to_create != ''
|
||||
if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1
|
||||
" After creating the directory it should show up in the list.
|
||||
call mkdir(dir_to_create, "p")
|
||||
let [dirlist, dirchoices] = spellfile#GetDirChoices()
|
||||
endif
|
||||
endif
|
||||
if len(dirlist) == 0
|
||||
return
|
||||
endif
|
||||
return
|
||||
endif
|
||||
|
||||
let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
|
||||
@@ -70,7 +67,7 @@ function! spellfile#LoadFile(lang)
|
||||
" Remember the buffer number, we check it below.
|
||||
new
|
||||
let newbufnr = winbufnr(0)
|
||||
setlocal bin fenc=
|
||||
setlocal bin
|
||||
echo 'Downloading ' . fname . '...'
|
||||
call spellfile#Nread(fname)
|
||||
if getline(2) !~ 'VIMspell'
|
||||
@@ -83,7 +80,7 @@ function! spellfile#LoadFile(lang)
|
||||
" Our buffer has vanished!? Open a new window.
|
||||
echomsg "download buffer disappeared, opening a new one"
|
||||
new
|
||||
setlocal bin fenc=
|
||||
setlocal bin
|
||||
else
|
||||
exe winnr . "wincmd w"
|
||||
endif
|
||||
@@ -120,7 +117,6 @@ 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.
|
||||
@@ -181,29 +177,3 @@ function! spellfile#Nread(fname)
|
||||
unlet g:netrw_use_errorwindow
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Get a list of writable spell directories and choices for confirm().
|
||||
function! spellfile#GetDirChoices()
|
||||
let dirlist = []
|
||||
let dirchoices = '&Cancel'
|
||||
for dir in split(globpath(&rtp, 'spell'), "\n")
|
||||
if filewritable(dir) == 2
|
||||
call add(dirlist, dir)
|
||||
let dirchoices .= "\n&" . len(dirlist)
|
||||
endif
|
||||
endfor
|
||||
return [dirlist, dirchoices]
|
||||
endfunc
|
||||
|
||||
function! spellfile#WritableSpellDir()
|
||||
if has("unix")
|
||||
" For Unix always use the $HOME/.vim directory
|
||||
return $HOME . "/.vim/spell"
|
||||
endif
|
||||
for dir in split(&rtp, ',')
|
||||
if filewritable(dir) == 2
|
||||
return dir . "/spell"
|
||||
endif
|
||||
endfor
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
+103
-377
@@ -1,97 +1,16 @@
|
||||
" Vim OMNI completion script for SQL
|
||||
" Language: SQL
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 15.0
|
||||
" Last Change: 2013 May 13
|
||||
" Homepage: http://www.vim.org/scripts/script.php?script_id=1572
|
||||
" Maintainer: David Fishburn <fishburn@ianywhere.com>
|
||||
" Version: 6.0
|
||||
" Last Change: Thu 03 Apr 2008 10:37:54 PM Eastern Daylight Time
|
||||
" 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
|
||||
"
|
||||
" TODO
|
||||
" - Jonas Enberg - if no table is found when using column completion
|
||||
" look backwards to a FROM clause and find the first table
|
||||
" and complete it.
|
||||
"
|
||||
" Version 15.0 (May 2013)
|
||||
" - NF: Changed the SQL precached syntax items, omni_sql_precache_syntax_groups,
|
||||
" to use regular expressions to pick up extended syntax group names.
|
||||
" This requires an updated SyntaxComplete plugin version 13.0.
|
||||
" If the required versions have not been installed, previous
|
||||
" behaviour will not be impacted.
|
||||
"
|
||||
" Version 14.0 (Dec 2012)
|
||||
" - BF: Added check for cpo
|
||||
"
|
||||
" Version 13.0 (Dec 2012)
|
||||
" - NF: When completing column lists or drilling into a table
|
||||
" and g:omni_sql_include_owner is enabled, the
|
||||
" only the table name would be replaced with the column
|
||||
" list instead of the table name and owner (if specified).
|
||||
" - NF: When completing column lists using table aliases
|
||||
" and g:omni_sql_include_owner is enabled, account
|
||||
" for the owner name when looking up the table
|
||||
" list instead of the table name and owner (if specified).
|
||||
" - BF: When completing column lists or drilling into a table
|
||||
" and g:omni_sql_include_owner is enabled, the
|
||||
" column list could often not be found for the table.
|
||||
" - BF: When OMNI popped up, possibly the wrong word
|
||||
" would be replaced for column and column list options.
|
||||
"
|
||||
" Version 12.0 (Feb 2012)
|
||||
" - 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 (Jan 2012)
|
||||
" 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 (May 2010)
|
||||
" 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 (Jan 2010)
|
||||
" Better handling of object names
|
||||
"
|
||||
" Version 6.0 (Apr 2008)
|
||||
" 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.
|
||||
@@ -101,11 +20,9 @@ if exists('&omnifunc')
|
||||
endif
|
||||
|
||||
if exists('g:loaded_sql_completion')
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let g:loaded_sql_completion = 150
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
let g:loaded_sql_completion = 50
|
||||
|
||||
" Maintains filename of dictionary
|
||||
let s:sql_file_table = ""
|
||||
@@ -118,19 +35,17 @@ 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 = ""
|
||||
if !exists('g:omni_syntax_group_include_sql')
|
||||
let g:omni_syntax_group_include_sql = ''
|
||||
if exists('g:omni_syntax_group_include_sql')
|
||||
let s:save_inc = g:omni_syntax_group_include_sql
|
||||
endif
|
||||
if !exists('g:omni_syntax_group_exclude_sql')
|
||||
let g:omni_syntax_group_exclude_sql = ''
|
||||
if exists('g:omni_syntax_group_exclude_sql')
|
||||
let s:save_exc = g:omni_syntax_group_exclude_sql
|
||||
endif
|
||||
let s:save_inc = g:omni_syntax_group_include_sql
|
||||
let s:save_exc = g:omni_syntax_group_exclude_sql
|
||||
|
||||
|
||||
" Used with the column list
|
||||
let s:save_prev_table = ""
|
||||
|
||||
@@ -141,12 +56,12 @@ endif
|
||||
" Default syntax items to precache
|
||||
if !exists('g:omni_sql_precache_syntax_groups')
|
||||
let g:omni_sql_precache_syntax_groups = [
|
||||
\ 'syntax\w*',
|
||||
\ 'sqlKeyword\w*',
|
||||
\ 'sqlFunction\w*',
|
||||
\ 'sqlOption\w*',
|
||||
\ 'sqlType\w*',
|
||||
\ 'sqlStatement\w*'
|
||||
\ 'syntax',
|
||||
\ 'sqlKeyword',
|
||||
\ 'sqlFunction',
|
||||
\ 'sqlOption',
|
||||
\ 'sqlType',
|
||||
\ 'sqlStatement'
|
||||
\ ]
|
||||
endif
|
||||
" Set ignorecase to the ftplugin standard
|
||||
@@ -161,25 +76,14 @@ 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.
|
||||
" It is called twice by omni and it is responsible
|
||||
" for returning the completion list of items.
|
||||
" But it must also determine context of what to complete
|
||||
" and what to "replace" with the completion.
|
||||
" The a:base, is replaced directly with what the user
|
||||
" chooses from the choices.
|
||||
" The s:prepend provides context for the completion.
|
||||
function! sqlcomplete#Complete(findstart, base)
|
||||
|
||||
" Default to table name completion
|
||||
@@ -188,7 +92,6 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
if exists('b:sql_compl_type')
|
||||
let compl_type = b:sql_compl_type
|
||||
endif
|
||||
let begindot = 0
|
||||
|
||||
" First pass through this function determines how much of the line should
|
||||
" be replaced by whatever is chosen from the completion list
|
||||
@@ -197,35 +100,20 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let line = getline('.')
|
||||
let start = col('.') - 1
|
||||
let lastword = -1
|
||||
let begindot = 0
|
||||
" Check if the first character is a ".", for column completion
|
||||
if line[start - 1] == '.'
|
||||
let begindot = 1
|
||||
endif
|
||||
while start > 0
|
||||
" Additional code was required to handle objects which
|
||||
" can contain spaces like "my table name".
|
||||
if line[start - 1] !~ '\(\w\|\.\)'
|
||||
" If the previous character is not a period or word character
|
||||
break
|
||||
" elseif line[start - 1] =~ '\(\w\|\s\+\)'
|
||||
" let start -= 1
|
||||
elseif line[start - 1] =~ '\w'
|
||||
" If the previous character is word character continue back
|
||||
if line[start - 1] =~ '\(\w\|\s\+\)'
|
||||
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:
|
||||
" table_name.column_name
|
||||
" owner_name.table_name
|
||||
|
||||
" 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.
|
||||
" Unless g:omni_sql_include_owner == 1, then we can
|
||||
" include the ownername.
|
||||
if lastword != -1 && compl_type == 'column'
|
||||
\ && g:omni_sql_include_owner == 0
|
||||
if lastword != -1 && compl_type == 'column'
|
||||
break
|
||||
endif
|
||||
" If column completion was specified stop at the "." if
|
||||
@@ -236,8 +124,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\|column_csv\)\>' &&
|
||||
if lastword == -1 &&
|
||||
\ compl_type =~ 'table\|view\|procedure\column_csv' &&
|
||||
\ g:omni_sql_include_owner == 0
|
||||
let lastword = start
|
||||
break
|
||||
@@ -267,7 +155,7 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let compl_list = []
|
||||
|
||||
" Default to table name completion
|
||||
let compl_type = g:omni_sql_default_compl_type
|
||||
let compl_type = 'table'
|
||||
" Allow maps to specify what type of object completion they want
|
||||
if exists('b:sql_compl_type')
|
||||
let compl_type = b:sql_compl_type
|
||||
@@ -281,7 +169,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
|
||||
@@ -296,10 +184,9 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
endif
|
||||
|
||||
let compl_type_uc = substitute(compl_type, '\w\+', '\u&', '')
|
||||
" Same call below, no need to do it twice
|
||||
" if s:sql_file_{compl_type} == ""
|
||||
" let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
||||
" endif
|
||||
if s:sql_file_{compl_type} == ""
|
||||
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
||||
endif
|
||||
let s:sql_file_{compl_type} = DB_getDictionaryName(compl_type_uc)
|
||||
if s:sql_file_{compl_type} != ""
|
||||
if filereadable(s:sql_file_{compl_type})
|
||||
@@ -319,7 +206,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
|
||||
@@ -334,26 +221,20 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let table = matchstr( base, '^\(.*\.\)\?\zs.*\ze\..*' )
|
||||
let column = matchstr( base, '.*\.\zs.*' )
|
||||
|
||||
if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
|
||||
let owner = table
|
||||
let table = column
|
||||
let column = ''
|
||||
endif
|
||||
|
||||
" It is pretty well impossible to determine if the user
|
||||
" 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 <Right>) then
|
||||
" and the DrillIntoTable (using <C-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 == ''
|
||||
@@ -368,46 +249,17 @@ 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
|
||||
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
|
||||
if found != -1 || (g:omni_sql_include_owner == 0 && base !~ '\.$')
|
||||
let owner = table
|
||||
let table = column
|
||||
let column = ''
|
||||
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).
|
||||
else
|
||||
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.*' )
|
||||
|
||||
@@ -422,25 +274,16 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
let list_type = 'csv'
|
||||
endif
|
||||
|
||||
" If we are including the OWNER for the objects, then for
|
||||
" table completion, if we have it, it should be included
|
||||
" as there can be the same table names in a database yet
|
||||
" with different owner names.
|
||||
if g:omni_sql_include_owner == 1 && owner != '' && table != ''
|
||||
let compl_list = s:SQLCGetColumns(owner.'.'.table, list_type)
|
||||
else
|
||||
let compl_list = s:SQLCGetColumns(table, list_type)
|
||||
endif
|
||||
|
||||
let compl_list = s:SQLCGetColumns(table, list_type)
|
||||
if column != ''
|
||||
" 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 = ''
|
||||
@@ -454,14 +297,11 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
endif
|
||||
elseif compl_type == 'resetCache'
|
||||
" Reset all cached items
|
||||
let s:tbl_name = []
|
||||
let s:tbl_alias = []
|
||||
let s:tbl_cols = []
|
||||
let s:syn_list = []
|
||||
let s:syn_value = []
|
||||
let s:sql_file_table = ""
|
||||
let s:sql_file_procedure = ""
|
||||
let s:sql_file_view = ""
|
||||
let s:tbl_name = []
|
||||
let s:tbl_alias = []
|
||||
let s:tbl_cols = []
|
||||
let s:syn_list = []
|
||||
let s:syn_value = []
|
||||
|
||||
let msg = "All SQL cached items have been removed."
|
||||
call s:SQLCWarningMsg(msg)
|
||||
@@ -472,54 +312,22 @@ function! sqlcomplete#Complete(findstart, base)
|
||||
endif
|
||||
|
||||
if base != ''
|
||||
" Filter the list based on the first few characters the user entered.
|
||||
" 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.'\\)"'
|
||||
" let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
|
||||
" Filter the list based on the first few characters the user
|
||||
" entered
|
||||
let expr = 'v:val '.(g:omni_sql_ignorecase==1?'=~?':'=~#').' "\\(^'.base.'\\|\\([^.]*\\)\\?'.base.'\\)"'
|
||||
let compl_list = filter(deepcopy(compl_list), expr)
|
||||
|
||||
if empty(compl_list) && compl_type == 'table' && base =~ '\.$'
|
||||
" It is possible we could be looking for column name completion
|
||||
" and the user simply hit C-X C-O to lets try it as well
|
||||
" since we had no hits with the tables.
|
||||
" If the base ends with a . it is hard to know if we are
|
||||
" completing table names or column names.
|
||||
let list_type = ''
|
||||
|
||||
let compl_list = s:SQLCGetColumns(base, list_type)
|
||||
endif
|
||||
endif
|
||||
|
||||
if exists('b:sql_compl_savefunc') && b:sql_compl_savefunc != ""
|
||||
let &omnifunc = b:sql_compl_savefunc
|
||||
endif
|
||||
|
||||
if empty(compl_list)
|
||||
call s:SQLCWarningMsg( 'Could not find type['.compl_type.'] using prepend[.'.s:prepended.'] base['.a:base.']' )
|
||||
endif
|
||||
|
||||
return compl_list
|
||||
endfunc
|
||||
|
||||
function! sqlcomplete#PreCacheSyntax(...)
|
||||
let syn_group_arr = []
|
||||
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
|
||||
if a:0 > 0
|
||||
let syn_group_arr = a:1
|
||||
else
|
||||
let syn_group_arr = g:omni_sql_precache_syntax_groups
|
||||
@@ -528,36 +336,7 @@ function! sqlcomplete#PreCacheSyntax(...)
|
||||
" the sytnax items.
|
||||
if !empty(syn_group_arr)
|
||||
for group_name in syn_group_arr
|
||||
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
|
||||
call s:SQLCGetSyntaxList(group_name)
|
||||
endfor
|
||||
endif
|
||||
endfunction
|
||||
@@ -584,14 +363,13 @@ 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>", 'n')
|
||||
call feedkeys("\<C-Y>\<C-X>\<C-O>")
|
||||
else
|
||||
" 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")'
|
||||
if has('win32')
|
||||
" If the popup is not visible, simple perform the normal
|
||||
" <C-Right> behaviour
|
||||
exec "normal! \<C-Right>"
|
||||
endif
|
||||
endif
|
||||
return ""
|
||||
endfunction
|
||||
@@ -603,28 +381,27 @@ function! sqlcomplete#DrillOutOfColumns()
|
||||
" Trigger the omni popup to be redisplayed
|
||||
call feedkeys("\<C-X>\<C-O>")
|
||||
else
|
||||
" 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")'
|
||||
if has('win32')
|
||||
" If the popup is not visible, simple perform the normal
|
||||
" <C-Left> behaviour
|
||||
exec "normal! \<C-Left>"
|
||||
endif
|
||||
endif
|
||||
return ""
|
||||
endfunction
|
||||
|
||||
function! s:SQLCWarningMsg(msg)
|
||||
echohl WarningMsg
|
||||
echomsg 'SQLComplete:'.a:msg
|
||||
echomsg a:msg
|
||||
echohl None
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:SQLCErrorMsg(msg)
|
||||
echohl ErrorMsg
|
||||
echomsg 'SQLComplete:'.a:msg
|
||||
echomsg a:msg
|
||||
echohl None
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:SQLCGetSyntaxList(syn_group)
|
||||
let syn_group = a:syn_group
|
||||
let compl_list = []
|
||||
@@ -635,23 +412,19 @@ function! s:SQLCGetSyntaxList(syn_group)
|
||||
" Return previously cached value
|
||||
let compl_list = s:syn_value[list_idx]
|
||||
else
|
||||
let s:save_inc = g:omni_syntax_group_include_sql
|
||||
let s:save_exc = g:omni_syntax_group_exclude_sql
|
||||
let g:omni_syntax_group_include_sql = ''
|
||||
let g:omni_syntax_group_exclude_sql = ''
|
||||
|
||||
" 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
|
||||
" to indicate they want all the syntax items available,
|
||||
" so do not specify a specific include list.
|
||||
let syn_value = syntaxcomplete#OmniSyntaxList()
|
||||
let g:omni_syntax_group_include_sql = ''
|
||||
else
|
||||
" The user has specified a specific syntax group
|
||||
let g:omni_syntax_group_include_sql = syn_group
|
||||
let syn_value = syntaxcomplete#OmniSyntaxList(syn_group)
|
||||
endif
|
||||
let g:omni_syntax_group_exclude_sql = ''
|
||||
let syn_value = 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
|
||||
@@ -687,7 +460,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 =~ '_'
|
||||
@@ -697,13 +470,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
|
||||
@@ -731,7 +504,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
|
||||
@@ -744,29 +517,11 @@ 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)
|
||||
if a:table_name =~ '\.'
|
||||
" Check if the owner/creator has been specified
|
||||
let owner = matchstr( a:table_name, '^\zs.*\ze\..*\..*' )
|
||||
let table = matchstr( a:table_name, '^\(.*\.\)\?\zs.*\ze\..*' )
|
||||
let column = matchstr( a:table_name, '.*\.\zs.*' )
|
||||
|
||||
if g:omni_sql_include_owner == 1 && owner == '' && table != '' && column != ''
|
||||
let owner = table
|
||||
let table = column
|
||||
let column = ''
|
||||
endif
|
||||
else
|
||||
let owner = ''
|
||||
let table = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
|
||||
let column = ''
|
||||
endif
|
||||
|
||||
" Check if the table name was provided as part of the column name
|
||||
" let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
|
||||
let table_name = table
|
||||
let table_name = matchstr(a:table_name, '^["\[\]a-zA-Z0-9_ ]\+\ze\.\?')
|
||||
let table_cols = []
|
||||
let table_alias = ''
|
||||
let move_to_top = 1
|
||||
@@ -789,7 +544,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 *
|
||||
@@ -807,7 +562,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
|
||||
@@ -818,7 +573,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'
|
||||
@@ -827,7 +582,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! ?\<\c\(select\|update\|delete\|;\)\>'."\n"
|
||||
exec 'silent! normal! ?\<\(select\|update\|delete\|;\)\>'."\n"
|
||||
|
||||
" Start characterwise visual mode
|
||||
" Advance right one character
|
||||
@@ -836,47 +591,27 @@ 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/\c\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
|
||||
exec 'silent! normal! vl/\(\<select\>\|\<update\>\|\<delete\>\|;\s*$\|\%$\)'."\n".'"yy'
|
||||
|
||||
let query = @y
|
||||
let query = substitute(query, "\n", ' ', 'g')
|
||||
let found = 0
|
||||
|
||||
" if query =~? '^\c\(select\)'
|
||||
if query =~? '^\(select\|update\|delete\)'
|
||||
" if query =~? '^\(select\|update\|delete\)'
|
||||
if query =~? '^\(select\)'
|
||||
let found = 1
|
||||
" \(\(\<\w\+\>\)\.\)\? -
|
||||
" '\c\(from\|join\|,\).\{-}' - Starting at the from clause (case insensitive)
|
||||
" \(\(\<\w\+\>\)\.\)\? -
|
||||
" 'from.\{-}' - Starting at the from clause
|
||||
" '\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,
|
||||
" \ '\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'.
|
||||
let table_name_new = matchstr(@y,
|
||||
\ 'from.\{-}'.
|
||||
\ '\zs\(\("\|\[\)\?.\{-}\("\|\]\)\.\)\?'.
|
||||
\ '\("\|\[\)\?.\{-}\("\|\]\)\ze'.
|
||||
\ '\s\+\%(as\s\+\)\?\<'.
|
||||
\ matchstr(table_name, '.\{-}\ze\.\?$').
|
||||
\ '\>'.
|
||||
@@ -887,12 +622,7 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
if table_name_new != ''
|
||||
let table_alias = table_name
|
||||
if g:omni_sql_include_owner == 1
|
||||
let table_name = matchstr( table_name_new, '^\zs\(.\{-}\.\)\?\(.\{-}\.\)\?.*\ze' )
|
||||
else
|
||||
" let table_name = matchstr( table_name_new, '^\(.*\.\)\?\zs.*\ze' )
|
||||
let table_name = matchstr( table_name_new, '^\(.\{-}\.\)\?\zs\(.\{-}\.\)\?.*\ze' )
|
||||
endif
|
||||
let table_name = table_name_new
|
||||
|
||||
let list_idx = index(s:tbl_name, table_name, 0, &ignorecase)
|
||||
if list_idx > -1
|
||||
@@ -920,7 +650,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
|
||||
@@ -929,13 +659,12 @@ 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)
|
||||
" Specify do not comma separate (tbl, 1, 1)
|
||||
" let table_cols_str = DB_getListColumn(table_name, 1, 1)
|
||||
let table_cols_str = DB_getListColumn((owner!=''?owner.'.':'').table_name, 1, 1)
|
||||
let table_cols_str = DB_getListColumn(table_name, 1, 1)
|
||||
|
||||
if table_cols_str != ""
|
||||
let s:tbl_name = add( s:tbl_name, table_name )
|
||||
@@ -961,7 +690,4 @@ function! s:SQLCGetColumns(table_name, list_type)
|
||||
|
||||
return table_cols
|
||||
endfunction
|
||||
" Restore:
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
" vim: ts=4 fdm=marker
|
||||
|
||||
|
||||
+123
-500
@@ -1,80 +1,13 @@
|
||||
" Vim completion script
|
||||
" Language: All languages, uses existing syntax highlighting rules
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 13.0
|
||||
" Last Change: 2013 May 14
|
||||
" Usage: For detailed help, ":help ft-syntax-omni"
|
||||
" Maintainer: David Fishburn <dfishburn.vim@gmail.com>
|
||||
" Version: 4.0
|
||||
" Last Change: Fri 26 Oct 2007 05:27:03 PM Eastern Daylight Time
|
||||
" Usage: For detailed help, ":help ft-syntax-omni"
|
||||
|
||||
" History
|
||||
"
|
||||
" Version 13.0
|
||||
" - Extended the option omni_syntax_group_include_{filetype}
|
||||
" to accept a comma separated list of regex's rather than
|
||||
" string. For example, for the javascript filetype you could
|
||||
" use:
|
||||
" let g:omni_syntax_group_include_javascript = 'javascript\w\+,jquery\w\+'
|
||||
" - Some syntax files (perl.vim) use the match // syntax as a mechanism
|
||||
" to identify keywords. This update attempts to parse the
|
||||
" match syntax and pull out syntax items which are at least
|
||||
" 3 words or more.
|
||||
"
|
||||
" Version 12.0
|
||||
" - It is possible to have '-' as part of iskeyword, when
|
||||
" checking for character ranges, tighten up the regex.
|
||||
" E688: More targets than List items.
|
||||
"
|
||||
" Version 11.0
|
||||
" - Corrected which characters required escaping during
|
||||
" substitution calls.
|
||||
"
|
||||
" Version 10.0
|
||||
" - Cycle through all the character ranges specified in the
|
||||
" iskeyword option and build a list of valid word separators.
|
||||
" Prior to this change, only actual characters were used,
|
||||
" where for example ASCII "45" == "-". If "45" were used
|
||||
" in iskeyword the hyphen would not be picked up.
|
||||
" This introduces a new option, since the character ranges
|
||||
" specified could be multibyte:
|
||||
" let g:omni_syntax_use_single_byte = 1
|
||||
" - This by default will only allow single byte ASCII
|
||||
" characters to be added and an additional check to ensure
|
||||
" the charater is printable (see documentation for isprint).
|
||||
"
|
||||
" Version 9.0
|
||||
" - Add the check for cpo.
|
||||
"
|
||||
" 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
|
||||
" - 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
|
||||
" 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.
|
||||
@@ -84,13 +17,9 @@ if exists('+omnifunc')
|
||||
endif
|
||||
|
||||
if exists('g:loaded_syntax_completion')
|
||||
finish
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntax_completion = 130
|
||||
|
||||
" Turn on support for line continuations when creating the script
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
let g:loaded_syntax_completion = 40
|
||||
|
||||
" Set ignorecase to the ftplugin standard
|
||||
" This is the default setting, but if you define a buffer local
|
||||
@@ -107,18 +36,6 @@ if !exists('g:omni_syntax_use_iskeyword')
|
||||
let g:omni_syntax_use_iskeyword = 1
|
||||
endif
|
||||
|
||||
" When using iskeyword, this setting controls whether the characters
|
||||
" should be limited to single byte characters.
|
||||
if !exists('g:omni_syntax_use_single_byte')
|
||||
let g:omni_syntax_use_single_byte = 1
|
||||
endif
|
||||
|
||||
" When using iskeyword, this setting controls whether the characters
|
||||
" should be limited to single byte characters.
|
||||
if !exists('g:omni_syntax_use_iskeyword_numeric')
|
||||
let g:omni_syntax_use_iskeyword_numeric = 1
|
||||
endif
|
||||
|
||||
" Only display items in the completion window that are at least
|
||||
" this many characters in length.
|
||||
" This is the default setting, but if you define a buffer local
|
||||
@@ -129,10 +46,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,'.
|
||||
let s:syn_remove_words = 'matchgroup=,contains,'.
|
||||
\ 'links to,start=,end='
|
||||
" \ 'links to,start=,end=,nextgroup='
|
||||
let s:syn_remove_words = 'match,matchgroup=,contains,'.
|
||||
\ 'links to,start=,end=,nextgroup='
|
||||
|
||||
let s:cache_name = []
|
||||
let s:cache_list = []
|
||||
@@ -208,30 +123,7 @@ function! syntaxcomplete#Complete(findstart, base)
|
||||
return compl_list
|
||||
endfunc
|
||||
|
||||
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
|
||||
|
||||
function! OmniSyntaxList()
|
||||
" Default to returning a dictionary, if use_dictionary is set to 0
|
||||
" a list will be returned.
|
||||
" let use_dictionary = 1
|
||||
@@ -260,56 +152,22 @@ 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
|
||||
" 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 this is true for almost all syntax definitions.
|
||||
" As an example, the SQL syntax groups have this pattern:
|
||||
" sqlType
|
||||
" sqlOperators
|
||||
" sqlKeyword ...
|
||||
if !empty(list_parms) && empty(substitute(join(list_parms), '[a-zA-Z ]', '', 'g'))
|
||||
" If list_parms only includes word characters, use it to limit
|
||||
" the syntax elements.
|
||||
" If using regex syntax list will fail to find those items, so
|
||||
" simply grab the who syntax list.
|
||||
redir @l
|
||||
silent! exec 'syntax list '.join(list_parms)
|
||||
redir END
|
||||
else
|
||||
redir @l
|
||||
silent! exec 'syntax list'
|
||||
redir END
|
||||
endif
|
||||
" of the filetype. From my casual viewing of the vim7\syntax
|
||||
" directory.
|
||||
redir @l
|
||||
silent! exec 'syntax list '
|
||||
redir END
|
||||
|
||||
let syntax_full = "\n".@l
|
||||
let @l = saveL
|
||||
|
||||
if syntax_full =~ 'E28'
|
||||
if syntax_full =~ 'E28'
|
||||
\ || syntax_full =~ 'E411'
|
||||
\ || syntax_full =~ 'E415'
|
||||
\ || syntax_full =~ 'No Syntax items'
|
||||
@@ -318,187 +176,106 @@ function! OmniSyntaxList(...)
|
||||
|
||||
let filetype = substitute(&filetype, '\.', '_', '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
|
||||
" 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
|
||||
|
||||
if empty(list_parms)
|
||||
let list_parms = [&filetype.'\w\+']
|
||||
" 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'
|
||||
\ )
|
||||
endif
|
||||
endif
|
||||
|
||||
" Sometimes filetypes can be composite names, like c.doxygen
|
||||
" Loop through each individual part looking for the syntax
|
||||
" items specific to each individual filetype.
|
||||
let syn_list = ''
|
||||
let index = 0
|
||||
for group_regex in list_parms
|
||||
" Sometimes filetypes can be composite names, like c.doxygen
|
||||
" Loop through each individual part looking for the syntax
|
||||
" items specific to each individual filetype.
|
||||
" let ftindex = 0
|
||||
" let ftindex = match(syntax_full, group_regex, ftindex)
|
||||
let ftindex = 0
|
||||
let ftindex = match(&filetype, '\w\+', ftindex)
|
||||
|
||||
" while ftindex > -1
|
||||
" let ft_part_name = matchstr( syntax_full, '\w\+', ftindex )
|
||||
while ftindex > -1
|
||||
let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
|
||||
|
||||
" Syntax rules can contain items for more than just the current
|
||||
" filetype. They can contain additional items added by the user
|
||||
" via autocmds or their vimrc.
|
||||
" Some syntax files can be combined (html, php, jsp).
|
||||
" We want only items that begin with the filetype we are interested in.
|
||||
let next_group_regex = '\n' .
|
||||
\ '\zs'.group_regex.'\ze'.
|
||||
\ '\s\+xxx\s\+'
|
||||
let index = match(syntax_full, next_group_regex, index)
|
||||
" Syntax rules can contain items for more than just the current
|
||||
" filetype. They can contain additional items added by the user
|
||||
" via autocmds or their vimrc.
|
||||
" Some syntax files can be combined (html, php, jsp).
|
||||
" We want only items that begin with the filetype we are interested in.
|
||||
let next_group_regex = '\n' .
|
||||
\ '\zs'.ft_part_name.'\w\+\ze'.
|
||||
\ '\s\+xxx\s\+'
|
||||
let index = 0
|
||||
let index = match(syntax_full, next_group_regex, index)
|
||||
|
||||
" For the matched group name, strip off any of the regex special
|
||||
" characters and see if we get a match with the current syntax
|
||||
if index == -1 && exists('b:current_syntax') && substitute(group_regex, '[^a-zA-Z ]\+.*', '', 'g') !~ '^'.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)
|
||||
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.'\>'
|
||||
" 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
|
||||
|
||||
while index > -1
|
||||
let group_name = matchstr( syntax_full, '\w\+', index )
|
||||
|
||||
let get_syn_list = 1
|
||||
for exclude_group_name in list_exclude_groups
|
||||
if '\<'.exclude_group_name.'\>' =~ '\<'.group_name.'\>'
|
||||
|
||||
if get_syn_list == 1
|
||||
if syntax_group_include_{filetype} != ''
|
||||
if '\<'.syntax_group_include_{filetype}.'\>' !~ '\<'.group_name.'\>'
|
||||
let get_syn_list = 0
|
||||
endif
|
||||
endfor
|
||||
endif
|
||||
endif
|
||||
|
||||
" 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
|
||||
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
|
||||
|
||||
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)
|
||||
let syn_list = syn_list . extra_syn_list . "\n"
|
||||
endif
|
||||
let syn_list = syn_list . extra_syn_list . "\n"
|
||||
endif
|
||||
|
||||
let index = index + strlen(group_name)
|
||||
let index = match(syntax_full, next_group_regex, index)
|
||||
endwhile
|
||||
let index = index + strlen(group_name)
|
||||
let index = match(syntax_full, next_group_regex, index)
|
||||
endwhile
|
||||
|
||||
" let ftindex = ftindex + len(ft_part_name)
|
||||
" let ftindex = match( syntax_full, group_regex, ftindex )
|
||||
" endwhile
|
||||
endfor
|
||||
|
||||
" " Sometimes filetypes can be composite names, like c.doxygen
|
||||
" " Loop through each individual part looking for the syntax
|
||||
" " items specific to each individual filetype.
|
||||
" let syn_list = ''
|
||||
" let ftindex = 0
|
||||
" let ftindex = match(&filetype, '\w\+', ftindex)
|
||||
|
||||
" while ftindex > -1
|
||||
" let ft_part_name = matchstr( &filetype, '\w\+', ftindex )
|
||||
|
||||
" " Syntax rules can contain items for more than just the current
|
||||
" " filetype. They can contain additional items added by the user
|
||||
" " via autocmds or their vimrc.
|
||||
" " Some syntax files can be combined (html, php, jsp).
|
||||
" " We want only items that begin with the filetype we are interested in.
|
||||
" let next_group_regex = '\n' .
|
||||
" \ '\zs'.ft_part_name.'\w\+\ze'.
|
||||
" \ '\s\+xxx\s\+'
|
||||
" 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
|
||||
" 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
|
||||
" " 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)
|
||||
" let syn_list = syn_list . extra_syn_list . "\n"
|
||||
" endif
|
||||
|
||||
" let index = index + strlen(group_name)
|
||||
" let index = match(syntax_full, next_group_regex, index)
|
||||
" endwhile
|
||||
|
||||
" let ftindex = ftindex + len(ft_part_name)
|
||||
" let ftindex = match( &filetype, '\w\+', ftindex )
|
||||
" endwhile
|
||||
let ftindex = ftindex + len(ft_part_name)
|
||||
let ftindex = match( &filetype, '\w\+', ftindex )
|
||||
endwhile
|
||||
|
||||
" Convert the string to a List and sort it.
|
||||
let compl_list = sort(split(syn_list))
|
||||
@@ -535,13 +312,9 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
" \zs - start the match
|
||||
" .\{-} - everything ...
|
||||
" \ze - end the match
|
||||
" \( - start a group or 2 potential matches
|
||||
" \n\w - at the first newline starting with a character
|
||||
" \| - 2nd potential match
|
||||
" \%$ - matches end of the file or string
|
||||
" \) - end a group
|
||||
let syntax_group = matchstr(a:syntax_full,
|
||||
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze\(\n\w\|\%$\)'
|
||||
let syntax_group = matchstr(a:syntax_full,
|
||||
\ "\n".a:group_name.'\s\+xxx\s\+\zs.\{-}\ze'."\n".'\w'
|
||||
\ )
|
||||
|
||||
if syntax_group != ""
|
||||
@@ -550,97 +323,26 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
|
||||
" We only want the words for the lines begining with
|
||||
" containedin, but there could be other items.
|
||||
|
||||
|
||||
" Tried to remove all lines that do not begin with contained
|
||||
" but this does not work in all cases since you can have
|
||||
" contained nextgroup=...
|
||||
" So this will strip off the ending of lines with known
|
||||
" keywords.
|
||||
let syn_list = substitute(
|
||||
let syn_list = substitute(
|
||||
\ syntax_group, '\<\('.
|
||||
\ substitute(
|
||||
\ escape(s:syn_remove_words, '\\/.*$^~[]')
|
||||
\ , ',', '\\|', 'g'
|
||||
\ ).
|
||||
\ '\).\{-}\%($\|'."\n".'\)'
|
||||
\ , "\n", 'g'
|
||||
\ , "\n", 'g'
|
||||
\ )
|
||||
|
||||
" Attempt to deal with lines using the match syntax
|
||||
" javaScriptDocTags xxx match /@\(param\|argument\|requires\|file\)\>/
|
||||
" Though it can use any types of regex, so this plugin will attempt
|
||||
" to restrict it
|
||||
" 1. Only use \( or \%( constructs remove all else
|
||||
" 2 Remove and []s
|
||||
" 3. Account for match //constructs
|
||||
" \%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?
|
||||
" 4. Hope for the best
|
||||
"
|
||||
"
|
||||
let syn_list_old = syn_list
|
||||
while syn_list =~ '\<match\>\s\+\/'
|
||||
if syn_list =~ 'perlElseIfError'
|
||||
let syn_list = syn_list
|
||||
endif
|
||||
" Check if the match has words at least 3 characters long
|
||||
if syn_list =~ '\<match \/\zs.\{-}\<\w\{3,}\>.\{-}\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
|
||||
" Remove everything after / and before the first \(
|
||||
let syn_list = substitute( syn_list, '\<match \/\zs.\{-}\ze\\%\?(.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
|
||||
" Remove everything after \) and up to the ending /
|
||||
let syn_list = substitute( syn_list, '\<match \/.\{-}\\)\zs.\{-}\ze\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
|
||||
|
||||
" Remove any character classes
|
||||
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\[[^]]*\].\{-}\ze\/ ', '', 'g' )
|
||||
let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\[[^]]*\]\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?', '', 'g' )
|
||||
" Remove any words < 3 characters
|
||||
let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\<\w\{1,2}\>\ze.\{-}\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
|
||||
" Remove all non-word characters
|
||||
" let syn_list = substitute( syn_list, '\<match /\zs.\{-}\<\W\+\>.\{-}\ze\/ ', "", 'g' )
|
||||
" let syn_list = substitute( syn_list, '\%(\<match \/[^/]\{-}\)\@<=\W\+\ze.\{-}\/ ', ' ', 'g' )
|
||||
" Do this by using the outer substitue() call to gather all
|
||||
" text between the match /.../ tags.
|
||||
" The inner substitute() call operates on the text selected
|
||||
" and replaces all non-word characters.
|
||||
let syn_list = substitute( syn_list, '\<match \/\zs\(.\{-}\)\ze\\\@<!\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+'
|
||||
\ , '\=substitute(submatch(1), "\\W\\+", " ", "g")'
|
||||
\ , 'g' )
|
||||
" Remove the match / / syntax
|
||||
let syn_list = substitute( syn_list, '\<match \/\(.\{-}\)\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '\1', 'g' )
|
||||
else
|
||||
" No words long enough, remove the match
|
||||
" Remove the match syntax
|
||||
" let syn_list = substitute( syn_list, '\<match \/[^\/]*\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
|
||||
let syn_list = substitute( syn_list, '\<match \/\%(.\{-}\)\?\/\%(\%(ms\|me\|hs\|he\|rs\|re\|lc\)\S\+\)\?\s\+', '', 'g' )
|
||||
endif
|
||||
if syn_list =~ '\<match\>\s\+\/'
|
||||
" Problem removing the match / / tags
|
||||
let syn_list = ''
|
||||
endif
|
||||
endwhile
|
||||
|
||||
|
||||
" Now strip off the newline + blank space + contained.
|
||||
" Also include lines with nextgroup=@someName skip_key_words syntax_element
|
||||
" \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
|
||||
" \ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
|
||||
let syn_list = substitute(
|
||||
\ syn_list, '\<\(contained\|nextgroup=[@a-zA-Z,]*\)'
|
||||
\ , "", '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'
|
||||
" Now strip off the newline + blank space + contained
|
||||
let syn_list = substitute(
|
||||
\ syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\)'
|
||||
\ , "", 'g'
|
||||
\ )
|
||||
|
||||
if b:omni_syntax_use_iskeyword == 0
|
||||
@@ -649,74 +351,19 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
" This will replace non-word characters with spaces.
|
||||
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
|
||||
else
|
||||
if g:omni_syntax_use_iskeyword_numeric == 1
|
||||
" iskeyword can contain value like this
|
||||
" 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
||||
" Numeric values convert to their ASCII equivalent using the
|
||||
" nr2char() function.
|
||||
" & 38
|
||||
" * 42
|
||||
" + 43
|
||||
" - 45
|
||||
" ^ 94
|
||||
" Iterate through all numeric specifications and convert those
|
||||
" to their ascii equivalent ensuring the character is printable.
|
||||
" If so, add it to the list.
|
||||
let accepted_chars = ''
|
||||
for item in split(&iskeyword, ',')
|
||||
if item =~ '\d-\d'
|
||||
" This is a character range (ie 47-58),
|
||||
" cycle through each character within the range
|
||||
let [b:start, b:end] = split(item, '-')
|
||||
for range_item in range( b:start, b:end )
|
||||
if range_item <= 127 || g:omni_syntax_use_single_byte == 0
|
||||
if nr2char(range_item) =~ '\p'
|
||||
let accepted_chars = accepted_chars . nr2char(range_item)
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
elseif item =~ '^\d\+$'
|
||||
" Only numeric, translate to a character
|
||||
if item < 127 || g:omni_syntax_use_single_byte == 0
|
||||
if nr2char(item) =~ '\p'
|
||||
let accepted_chars = accepted_chars . nr2char(item)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
if char2nr(item) < 127 || g:omni_syntax_use_single_byte == 0
|
||||
if item =~ '\p'
|
||||
let accepted_chars = accepted_chars . item
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
" Escape special regex characters
|
||||
" Looks like the wrong chars are escaped. In a collection,
|
||||
" :h /[]
|
||||
" only `]', `\', `-' and `^' are special:
|
||||
" let accepted_chars = escape(accepted_chars, '\\/.*$^~[]' )
|
||||
let accepted_chars = escape(accepted_chars, ']\-^' )
|
||||
" Remove all characters that are not acceptable
|
||||
let syn_list = substitute( syn_list, '[^A-Za-z'.accepted_chars.']', ' ', 'g' )
|
||||
else
|
||||
let accept_chars = ','.&iskeyword.','
|
||||
" Remove all character ranges
|
||||
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
|
||||
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
|
||||
" Remove all numeric specifications
|
||||
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
|
||||
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
|
||||
" Remove all commas
|
||||
let accept_chars = substitute(accept_chars, ',', '', 'g')
|
||||
" Escape special regex characters
|
||||
" Looks like the wrong chars are escaped. In a collection,
|
||||
" :h /[]
|
||||
" only `]', `\', `-' and `^' are special:
|
||||
" let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
|
||||
let accept_chars = escape(accept_chars, ']\-^' )
|
||||
" Remove all characters that are not acceptable
|
||||
let syn_list = substitute( syn_list, '[^0-9A-Za-z_'.accept_chars.']', ' ', 'g' )
|
||||
endif
|
||||
let accept_chars = ','.&iskeyword.','
|
||||
" Remove all character ranges
|
||||
" let accept_chars = substitute(accept_chars, ',[^,]\+-[^,]\+,', ',', 'g')
|
||||
let accept_chars = substitute(accept_chars, ',\@<=[^,]\+-[^,]\+,', '', 'g')
|
||||
" Remove all numeric specifications
|
||||
" let accept_chars = substitute(accept_chars, ',\d\{-},', ',', 'g')
|
||||
let accept_chars = substitute(accept_chars, ',\@<=\d\{-},', '', 'g')
|
||||
" Remove all commas
|
||||
let accept_chars = substitute(accept_chars, ',', '', 'g')
|
||||
" Escape special regex characters
|
||||
let accept_chars = escape(accept_chars, '\\/.*$^~[]' )
|
||||
" Remove all characters that are not acceptable
|
||||
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ '.accept_chars.']', ' ', 'g' )
|
||||
endif
|
||||
|
||||
if b:omni_syntax_minimum_length > 0
|
||||
@@ -729,27 +376,3 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
|
||||
return syn_list
|
||||
endfunction
|
||||
|
||||
function! OmniSyntaxShowChars(spec)
|
||||
let result = []
|
||||
for item in split(a:spec, ',')
|
||||
if len(item) > 1
|
||||
if item == '@-@'
|
||||
call add(result, char2nr(item))
|
||||
else
|
||||
call extend(result, call('range', split(item, '-')))
|
||||
endif
|
||||
else
|
||||
if item == '@' " assume this is [A-Za-z]
|
||||
for [c1, c2] in [['A', 'Z'], ['a', 'z']]
|
||||
call extend(result, range(char2nr(c1), char2nr(c2)))
|
||||
endfor
|
||||
else
|
||||
call add(result, char2nr(item))
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
return join(map(result, 'nr2char(v:val)'), ', ')
|
||||
endfunction
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
+107
-233
@@ -1,13 +1,13 @@
|
||||
" tar.vim: Handles browsing tarfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Apr 17, 2013
|
||||
" Version: 29
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" Date: Aug 08, 2008
|
||||
" Version: 23 + modifications by Bram
|
||||
" 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-2011 Charles E. Campbell {{{1
|
||||
" Copyright: Copyright (C) 2005-2008 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,23 +16,19 @@
|
||||
" By using this plugin, you agree that in no event will the
|
||||
" copyright holder be liable for any damages resulting from
|
||||
" the use of this software.
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_tar")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v29"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of tar needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
if &cp || exists("g:loaded_tar") || v:version < 700
|
||||
finish
|
||||
endif
|
||||
let g:loaded_tar= "v23b"
|
||||
"call Decho("loading autoload/tar.vim")
|
||||
if v:version < 701 || (v:version == 701 && !has("patch299"))
|
||||
echoerr "(autoload/tar.vim) need vim v7.1 with patchlevel 299"
|
||||
endif
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Default Settings: {{{1
|
||||
@@ -48,6 +44,7 @@ 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\)\=$'
|
||||
@@ -59,29 +56,10 @@ if !exists("g:netrw_cygwin")
|
||||
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")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_localcopycmd= "cp"
|
||||
else
|
||||
let g:netrw_localcopycmd= "copy"
|
||||
endif
|
||||
elseif has("unix") || has("macunix")
|
||||
let g:netrw_localcopycmd= "cp"
|
||||
else
|
||||
let g:netrw_localcopycmd= ""
|
||||
endif
|
||||
endif
|
||||
let g:tar_copycmd= g:netrw_localcopycmd
|
||||
endif
|
||||
if !exists("g:tar_extractcmd")
|
||||
let g:tar_extractcmd= "tar -xf"
|
||||
endif
|
||||
|
||||
" set up shell quoting character
|
||||
if !exists("g:tar_shq")
|
||||
if exists("+shq") && exists("&shq") && &shq != ""
|
||||
if exists("&shq") && &shq != ""
|
||||
let g:tar_shq= &shq
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if exists("g:netrw_cygwin") && g:netrw_cygwin
|
||||
@@ -110,6 +88,7 @@ fun! tar#Browse(tarfile)
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse")
|
||||
return
|
||||
@@ -120,6 +99,7 @@ fun! tar#Browse(tarfile)
|
||||
" if its an url, don't complain, let url-handlers such as vim do its thing
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
endif
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : file<".a:tarfile."> not readable")
|
||||
@@ -128,7 +108,7 @@ fun! tar#Browse(tarfile)
|
||||
if &ma != 1
|
||||
set ma
|
||||
endif
|
||||
let b:tarfile= a:tarfile
|
||||
let w:tarfile= a:tarfile
|
||||
|
||||
setlocal noswapfile
|
||||
setlocal buftype=nofile
|
||||
@@ -143,54 +123,50 @@ 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')
|
||||
keepj $put =''
|
||||
keepj sil! 0d
|
||||
keepj $
|
||||
$put =''
|
||||
0d
|
||||
$
|
||||
|
||||
let tarfile= a:tarfile
|
||||
if has("win32unix") && executable("cygpath")
|
||||
if has("win32") && executable("cygpath")
|
||||
" assuming cygwin
|
||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
|
||||
endif
|
||||
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 "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
" call Decho("1: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "silent r! gzip -d -c -- ".s:Escape(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 "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 "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 "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." - "
|
||||
" call Decho("2: exe silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "silent r! cat -- ".s:Escape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
|
||||
elseif tarfile =~# '\.bz2$'
|
||||
" call Decho("3: exe silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
|
||||
exe "silent r! bzip2 -d -c -- ".s:Escape(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.
|
||||
" A file name starting with a dash may be 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 "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
|
||||
" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1))
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".s:Escape(tarfile,1)
|
||||
endif
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
|
||||
redraw!
|
||||
echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
|
||||
keepj sil! %d
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
silent %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "r ".fnameescape(a:tarfile)
|
||||
let &ei= eikeep
|
||||
keepj sil! 1d
|
||||
1d
|
||||
" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
|
||||
return
|
||||
endif
|
||||
@@ -199,13 +175,13 @@ fun! tar#Browse(tarfile)
|
||||
noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
|
||||
" call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" TarBrowseSelect: {{{2
|
||||
fun! s:TarBrowseSelect()
|
||||
" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
|
||||
" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
let fname= getline(".")
|
||||
@@ -213,7 +189,7 @@ fun! s:TarBrowseSelect()
|
||||
|
||||
if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
|
||||
echohl WarningMsg | echo '***error*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"; See :help tar-options'
|
||||
" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
@@ -225,12 +201,12 @@ fun! s:TarBrowseSelect()
|
||||
return
|
||||
endif
|
||||
|
||||
" about to make a new window, need to use b:tarfile
|
||||
let tarfile= b:tarfile
|
||||
" about to make a new window, need to use w:tarfile
|
||||
let tarfile= w:tarfile
|
||||
let curfile= expand("%")
|
||||
if has("win32unix") && executable("cygpath")
|
||||
if has("win32") && executable("cygpath")
|
||||
" assuming cygwin
|
||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
|
||||
endif
|
||||
|
||||
new
|
||||
@@ -240,8 +216,6 @@ fun! s:TarBrowseSelect()
|
||||
let s:tblfile_{winnr()}= curfile
|
||||
call tar#Read("tarfile:".tarfile.'::'.fname,1)
|
||||
filetype detect
|
||||
set nomod
|
||||
exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
@@ -255,29 +229,23 @@ fun! tar#Read(fname,mode)
|
||||
set report=10
|
||||
let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
if has("win32") && executable("cygpath")
|
||||
" assuming cygwin
|
||||
let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
|
||||
let tarfile=substitute(system("cygpath -u ".s:Escape(tarfile,0)),'\n$','','e')
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
" call Decho("fname<".fname.">")
|
||||
|
||||
if fname =~ '\.bz2$' && executable("bzcat")
|
||||
let decmp= "|bzcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.gz$' && executable("zcat")
|
||||
if fname =~ '\.gz$' && executable("zcat")
|
||||
let decmp= "|zcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.lzma$' && executable("lzcat")
|
||||
let decmp= "|lzcat"
|
||||
let doro = 1
|
||||
elseif fname =~ '\.xz$' && executable("xzcat")
|
||||
let decmp= "|xzcat"
|
||||
elseif fname =~ '\.bz2$' && executable("bzcat")
|
||||
let decmp= "|bzcat"
|
||||
let doro = 1
|
||||
else
|
||||
let decmp=""
|
||||
let doro = 0
|
||||
if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
|
||||
if fname =~ '\.gz$\|\.bz2$\|\.Z$\|\.zip$'
|
||||
setlocal bin
|
||||
endif
|
||||
endif
|
||||
@@ -287,28 +255,22 @@ fun! tar#Read(fname,mode)
|
||||
else
|
||||
let tar_secure= " "
|
||||
endif
|
||||
if tarfile =~# '\.bz2$'
|
||||
" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.\(gz\|tgz\)$'
|
||||
" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
|
||||
exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
if tarfile =~# '\.\(gz\|tgz\)$'
|
||||
" call Decho("5: exe silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.s:Escape(fname,1))
|
||||
exe "silent r! gzip -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(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 "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.lzma$'
|
||||
" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
elseif tarfile =~# '\.\(xz\|txz\)$'
|
||||
" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
|
||||
exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
|
||||
" call Decho("6: exe silent r! cat ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp)
|
||||
exe "silent r! cat -- ".s:Escape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
|
||||
elseif tarfile =~# '\.bz2$'
|
||||
" call Decho("7: exe silent r! bzip2 -d -c ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp)
|
||||
exe "silent r! bzip2 -d -c -- ".s:Escape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.s:Escape(fname,1).decmp
|
||||
else
|
||||
if tarfile =~ '^\s*-'
|
||||
" A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
|
||||
" A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
|
||||
let tarfile = substitute(tarfile, '-', './-', '')
|
||||
endif
|
||||
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
|
||||
" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions." "s:Escape(tarfile,1).tar_secure..s:Escape(fname,1).decmp)
|
||||
exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." ".s:Escape(tarfile,1).tar_secure.s:Escape(fname,1).decmp
|
||||
endif
|
||||
|
||||
if doro
|
||||
@@ -316,27 +278,27 @@ fun! tar#Read(fname,mode)
|
||||
setlocal ro
|
||||
endif
|
||||
|
||||
let b:tarfile= a:fname
|
||||
let w:tarfile= a:fname
|
||||
exe "file tarfile::".fnameescape(fname)
|
||||
|
||||
" cleanup
|
||||
keepj sil! 0d
|
||||
0d
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
|
||||
" call Dret("tar#Read : w:tarfile<".w:tarfile.">")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Write: {{{2
|
||||
fun! tar#Write(fname)
|
||||
" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
|
||||
redraw!
|
||||
echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
|
||||
echohl WarningMsg | echo '***error*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"; See :help tar-options'
|
||||
" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
|
||||
return
|
||||
endif
|
||||
@@ -345,6 +307,7 @@ fun! tar#Write(fname)
|
||||
if !executable(g:tar_cmd)
|
||||
redraw!
|
||||
echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
@@ -352,6 +315,7 @@ fun! tar#Write(fname)
|
||||
if !exists("*mkdir")
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
@@ -372,6 +336,7 @@ fun! tar#Write(fname)
|
||||
catch /^Vim\%((\a\+)\)\=:E344/
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
let &report= repkeep
|
||||
" call Dret("tar#Write")
|
||||
return
|
||||
@@ -386,35 +351,25 @@ fun! tar#Write(fname)
|
||||
cd _ZIPVIM_
|
||||
" call Decho("current directory now: ".getcwd())
|
||||
|
||||
let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
|
||||
let fname = substitute(w:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
|
||||
|
||||
" handle compressed archives
|
||||
if tarfile =~# '\.bz2'
|
||||
call system("bzip2 -d -- ".shellescape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz2','','e')
|
||||
let compress= "bzip2 -- ".shellescape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.gz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
if tarfile =~# '\.gz'
|
||||
call system("gzip -d -- ".s:Escape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.gz','','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
let compress= "gzip -- ".s:Escape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
elseif tarfile =~# '\.tgz'
|
||||
call system("gzip -d -- ".shellescape(tarfile,0))
|
||||
call system("gzip -d -- ".s:Escape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
|
||||
let compress= "gzip -- ".shellescape(tarfile,0)
|
||||
let compress= "gzip -- ".s:Escape(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)
|
||||
elseif tarfile =~# '\.bz2'
|
||||
call system("bzip2 -d -- ".s:Escape(tarfile,0))
|
||||
let tarfile = substitute(tarfile,'\.bz2','','e')
|
||||
let compress= "bzip2 -- ".s:Escape(tarfile,0)
|
||||
" call Decho("compress<".compress.">")
|
||||
endif
|
||||
" call Decho("tarfile<".tarfile.">")
|
||||
@@ -422,14 +377,15 @@ fun! tar#Write(fname)
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
else
|
||||
|
||||
" call Decho("tarfile<".tarfile."> fname<".fname.">")
|
||||
|
||||
if fname =~ '/'
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
|
||||
if executable("cygpath")
|
||||
let dirpath = substitute(system("cygpath ".s:Escape(dirpath, 0)),'\n','','e')
|
||||
endif
|
||||
call mkdir(dirpath,"p")
|
||||
endif
|
||||
@@ -448,24 +404,26 @@ fun! tar#Write(fname)
|
||||
let tar_secure= " "
|
||||
endif
|
||||
exe "w! ".fnameescape(fname)
|
||||
if has("win32unix") && executable("cygpath")
|
||||
let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
|
||||
if executable("cygpath")
|
||||
let tarfile = substitute(system("cygpath ".s:Escape(tarfile,0)),'\n','','e')
|
||||
endif
|
||||
|
||||
" delete old file from tarfile
|
||||
" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
|
||||
call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
" call Decho("system(".g:tar_cmd." --delete -f ".s:Escape(tarfile,0)." -- ".s:Escape(fname,0).")")
|
||||
call system(g:tar_cmd." --delete -f ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
else
|
||||
|
||||
" update tarfile with new file
|
||||
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
|
||||
" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
|
||||
call system(g:tar_cmd." -".g:tar_writeoptions." ".s:Escape(tarfile,0).tar_secure.s:Escape(fname,0))
|
||||
if v:shell_error != 0
|
||||
redraw!
|
||||
echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
|
||||
" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
elseif exists("compress")
|
||||
" call Decho("call system(".compress.")")
|
||||
call system(compress)
|
||||
@@ -481,13 +439,13 @@ fun! tar#Write(fname)
|
||||
" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
|
||||
let tblfile= s:tblfile_{winnr()}
|
||||
1split|enew
|
||||
let binkeep= &l:binary
|
||||
let binkeep= &binary
|
||||
let eikeep = &ei
|
||||
set binary ei=all
|
||||
exe "e! ".fnameescape(tarfile)
|
||||
call netrw#NetWrite(tblfile)
|
||||
let &ei = eikeep
|
||||
let &l:binary = binkeep
|
||||
let &ei = eikeep
|
||||
let &binary = binkeep
|
||||
q!
|
||||
unlet s:tblfile_{winnr()}
|
||||
endif
|
||||
@@ -504,122 +462,38 @@ fun! tar#Write(fname)
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Diff: {{{2
|
||||
fun! tar#Diff(userfname,fname)
|
||||
" call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
|
||||
let fname= a:fname
|
||||
if a:userfname != ""
|
||||
let fname= a:userfname
|
||||
endif
|
||||
if filereadable(fname)
|
||||
" sets current file (from tarball) for diff'ing
|
||||
" splits window vertically
|
||||
" opens original file, sets it for diff'ing
|
||||
" sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
|
||||
diffthis
|
||||
wincmd v
|
||||
exe "e ".fnameescape(fname)
|
||||
diffthis
|
||||
else
|
||||
redraw!
|
||||
echo "***warning*** unable to read file<".fname.">"
|
||||
endif
|
||||
" call Dret("tar#Diff")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Rmdir: {{{2
|
||||
" Rmdir: {{{2
|
||||
fun! s:Rmdir(fname)
|
||||
" call Dfunc("Rmdir(fname<".a:fname.">)")
|
||||
if has("unix")
|
||||
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||
call system("/bin/rm -rf -- ".s:Escape(a:fname,0))
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if &shell =~? "sh$"
|
||||
call system("/bin/rm -rf -- ".shellescape(a:fname,0))
|
||||
call system("/bin/rm -rf -- ".s:Escape(a:fname,0))
|
||||
else
|
||||
call system("del /S ".shellescape(a:fname,0))
|
||||
call system("del /S ".s:Escape(a:fname,0))
|
||||
endif
|
||||
endif
|
||||
" call Dret("Rmdir")
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
|
||||
fun! tar#Vimuntar(...)
|
||||
" call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
|
||||
let tarball = expand("%")
|
||||
" call Decho("tarball<".tarball.">")
|
||||
let tarbase = substitute(tarball,'\..*$','','')
|
||||
" call Decho("tarbase<".tarbase.">")
|
||||
let tarhome = expand("%:p")
|
||||
if has("win32") || has("win95") || has("win64") || has("win16")
|
||||
let tarhome= substitute(tarhome,'\\','/','g')
|
||||
endif
|
||||
let tarhome= substitute(tarhome,'/[^/]*$','','')
|
||||
" call Decho("tarhome<".tarhome.">")
|
||||
let tartail = expand("%:t")
|
||||
" call Decho("tartail<".tartail.">")
|
||||
let curdir = getcwd()
|
||||
" call Decho("curdir <".curdir.">")
|
||||
" set up vimhome
|
||||
if a:0 > 0 && a:1 != ""
|
||||
let vimhome= a:1
|
||||
else
|
||||
let vimhome= vimball#VimballHome()
|
||||
endif
|
||||
" call Decho("vimhome<".vimhome.">")
|
||||
|
||||
" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
|
||||
if simplify(curdir) != simplify(vimhome)
|
||||
" copy (possibly compressed) tarball to .vim/vimfiles
|
||||
" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
|
||||
" call Decho("exe cd ".fnameescape(vimhome))
|
||||
exe "cd ".fnameescape(vimhome)
|
||||
endif
|
||||
" call Decho("getcwd<".getcwd().">")
|
||||
|
||||
" if necessary, decompress the tarball; then, extract it
|
||||
if tartail =~ '\.tgz'
|
||||
if executable("gunzip")
|
||||
silent exe "!gunzip ".shellescape(tartail)
|
||||
elseif executable("gzip")
|
||||
silent exe "!gzip -d ".shellescape(tartail)
|
||||
" s:Escape: {{{2
|
||||
fun s:Escape(name,isfilt)
|
||||
" shellescape() was added by patch 7.0.111
|
||||
if exists("*shellescape")
|
||||
if a:isfilt
|
||||
let qnameq= shellescape(a:name,1)
|
||||
else
|
||||
echoerr "unable to decompress<".tartail."> on this sytem"
|
||||
if simplify(curdir) != simplify(tarhome)
|
||||
" remove decompressed tarball, restore directory
|
||||
" call Decho("delete(".tartail.".tar)")
|
||||
call delete(tartail.".tar")
|
||||
" call Decho("exe cd ".fnameescape(curdir))
|
||||
exe "cd ".fnameescape(curdir)
|
||||
endif
|
||||
" call Dret("tar#Vimuntar")
|
||||
return
|
||||
let qnameq= shellescape(a:name)
|
||||
endif
|
||||
else
|
||||
call vimball#Decompress(tartail,0)
|
||||
let qnameq= g:tar_shq . a:name . g:tar_shq
|
||||
endif
|
||||
let extractcmd= netrw#WinPath(g:tar_extractcmd)
|
||||
" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
|
||||
call system(extractcmd." ".shellescape(tarbase.".tar"))
|
||||
|
||||
" set up help
|
||||
if filereadable("doc/".tarbase.".txt")
|
||||
" call Decho("exe helptags ".getcwd()."/doc")
|
||||
exe "helptags ".getcwd()."/doc"
|
||||
endif
|
||||
|
||||
if simplify(tarhome) != simplify(vimhome)
|
||||
" remove decompressed tarball, restore directory
|
||||
call delete(vimhome."/".tarbase.".tar")
|
||||
exe "cd ".fnameescape(curdir)
|
||||
endif
|
||||
|
||||
" call Dret("tar#Vimuntar")
|
||||
return qnameq
|
||||
endfun
|
||||
|
||||
" =====================================================================
|
||||
" ---------------------------------------------------------------------
|
||||
" Modelines And Restoration: {{{1
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,923 +0,0 @@
|
||||
" Vim autoload file for the tohtml plugin.
|
||||
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
|
||||
" Last Change: 2013 Jun 19
|
||||
"
|
||||
" 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&vim
|
||||
|
||||
" 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]'),',').
|
||||
\ ',prevent_copy='.s:settings.prevent_copy.
|
||||
\ '"'.tag_close)
|
||||
call add(html, '<meta name="colorscheme" content="'.
|
||||
\ (exists('g:colors_name')
|
||||
\ ? g:colors_name
|
||||
\ : 'none'). '"'.tag_close)
|
||||
|
||||
call add(html, '</head>')
|
||||
let body_line_num = len(html)
|
||||
if !empty(s:settings.prevent_copy)
|
||||
call add(html, "<body onload='FixCharWidth();".(s:settings.line_ids ? " JumpToLine();" : "")."'>")
|
||||
call add(html, "<!-- hidden divs used by javascript to get the width of a char -->")
|
||||
call add(html, "<div id='oneCharWidth'>0</div>")
|
||||
call add(html, "<div id='oneInputWidth'><input size='1' value='0'".tag_close."</div>")
|
||||
call add(html, "<div id='oneEmWidth' style='width: 1em;'></div>")
|
||||
else
|
||||
call add(html, '<body'.(s:settings.line_ids ? ' onload="JumpToLine();"' : '').'>')
|
||||
endif
|
||||
call add(html, "<table border='1' width='100%' id='vimCodeElement".s:settings.id_suffix."'>")
|
||||
|
||||
call add(html, '<tr>')
|
||||
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.*\%(\n<!--.*-->\_s\+.*id='oneCharWidth'.*\_s\+.*id='oneInputWidth'.*\_s\+.*id='oneEmWidth'\)\?\zs/d_
|
||||
$
|
||||
?</body>?,$d_
|
||||
let temp = getline(1,'$')
|
||||
" clean out id on the main content container because we already set it on
|
||||
" the table
|
||||
let temp[0] = substitute(temp[0], " id='vimCodeElement[^']*'", "", "")
|
||||
" 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>')
|
||||
|
||||
" The generated HTML is admittedly ugly and takes a LONG time to fold.
|
||||
" Make sure the user doesn't do syntax folding when loading a generated file,
|
||||
" using a modeline.
|
||||
call add(html, '<!-- vim: set foldmethod=manual : -->')
|
||||
|
||||
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
|
||||
|
||||
" add required javascript in reverse order so we can just call append again
|
||||
" and again without adjusting {{{
|
||||
|
||||
" insert script closing tag
|
||||
call append(style_start, [
|
||||
\ '',
|
||||
\ s:settings.use_xhtml ? '//]]>' : '-->',
|
||||
\ "</script>"
|
||||
\ ])
|
||||
|
||||
" insert script which corrects the size of small input elements in
|
||||
" prevent_copy mode. See 2html.vim for details on why this is needed and how
|
||||
" it works.
|
||||
if !empty(s:settings.prevent_copy)
|
||||
call append(style_start, [
|
||||
\ '',
|
||||
\ '/* simulate a "ch" unit by asking the browser how big a zero character is */',
|
||||
\ 'function FixCharWidth() {',
|
||||
\ ' /* get the hidden element which gives the width of a single character */',
|
||||
\ ' var goodWidth = document.getElementById("oneCharWidth").clientWidth;',
|
||||
\ ' /* get all input elements, we''ll filter on class later */',
|
||||
\ ' var inputTags = document.getElementsByTagName("input");',
|
||||
\ ' var ratio = 5;',
|
||||
\ ' var inputWidth = document.getElementById("oneInputWidth").clientWidth;',
|
||||
\ ' var emWidth = document.getElementById("oneEmWidth").clientWidth;',
|
||||
\ ' if (inputWidth > goodWidth) {',
|
||||
\ ' while (ratio < 100*goodWidth/emWidth && ratio < 100) {',
|
||||
\ ' ratio += 5;',
|
||||
\ ' }',
|
||||
\ ' document.getElementById("vimCodeElement'.s:settings.id_suffix.'").className = "em"+ratio;',
|
||||
\ ' }',
|
||||
\ '}'
|
||||
\ ])
|
||||
endif
|
||||
"
|
||||
" insert javascript to get IDs from line numbers, and to open a fold before
|
||||
" jumping to any lines contained therein
|
||||
call append(style_start, [
|
||||
\ " /* Always jump to new location even if the line was hidden inside a fold, or",
|
||||
\ " * we corrected the raw number to a line ID.",
|
||||
\ " */",
|
||||
\ " if (lineElem) {",
|
||||
\ " lineElem.scrollIntoView(true);",
|
||||
\ " }",
|
||||
\ " return true;",
|
||||
\ "}",
|
||||
\ "if ('onhashchange' in window) {",
|
||||
\ " window.onhashchange = JumpToLine;",
|
||||
\ "}"
|
||||
\ ])
|
||||
if s:settings.dynamic_folds
|
||||
call append(style_start, [
|
||||
\ "",
|
||||
\ " /* navigate upwards in the DOM tree to open all folds containing the line */",
|
||||
\ " var node = lineElem;",
|
||||
\ " while (node && node.id != 'vimCodeElement".s:settings.id_suffix."')",
|
||||
\ " {",
|
||||
\ " if (node.className == 'closed-fold')",
|
||||
\ " {",
|
||||
\ " /* toggle open the fold ID (remove window ID) */",
|
||||
\ " toggleFold(node.id.substr(4));",
|
||||
\ " }",
|
||||
\ " node = node.parentNode;",
|
||||
\ " }",
|
||||
\ ])
|
||||
endif
|
||||
call append(style_start, [
|
||||
\ "",
|
||||
\ "/* function to open any folds containing a jumped-to line before jumping to it */",
|
||||
\ "function JumpToLine()",
|
||||
\ "{",
|
||||
\ " var lineNum;",
|
||||
\ " lineNum = window.location.hash;",
|
||||
\ " lineNum = lineNum.substr(1); /* strip off '#' */",
|
||||
\ "",
|
||||
\ " if (lineNum.indexOf('L') == -1) {",
|
||||
\ " lineNum = 'L'+lineNum;",
|
||||
\ " }",
|
||||
\ " if (lineNum.indexOf('W') == -1) {",
|
||||
\ " lineNum = 'W1'+lineNum;",
|
||||
\ " }",
|
||||
\ " lineElem = document.getElementById(lineNum);"
|
||||
\ ])
|
||||
|
||||
" 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, [
|
||||
\ " 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';",
|
||||
\ " }",
|
||||
\ " }",
|
||||
\ " }",
|
||||
\ ])
|
||||
endif
|
||||
|
||||
" insert script tag; javascript is always needed for the line number
|
||||
" normalization for URL hashes
|
||||
call append(style_start, [
|
||||
\ "<script type='text/javascript'>",
|
||||
\ s:settings.use_xhtml ? '//<![CDATA[' : "<!--"])
|
||||
|
||||
" 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', user_settings.ignore_folding)
|
||||
call tohtml#GetOption(user_settings, 'hover_unfold', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_pre', 0 )
|
||||
call tohtml#GetOption(user_settings, 'no_invalid', 0 )
|
||||
call tohtml#GetOption(user_settings, 'whole_filler', 0 )
|
||||
call tohtml#GetOption(user_settings, 'use_xhtml', 0 )
|
||||
call tohtml#GetOption(user_settings, 'line_ids', user_settings.number_lines )
|
||||
" }}}
|
||||
|
||||
" 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
|
||||
else
|
||||
let user_settings.no_foldcolumn = 1 " won't do anything but for consistency and for the test suite
|
||||
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
|
||||
" }}}
|
||||
|
||||
" textual options
|
||||
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 "}}}
|
||||
|
||||
" Default to making nothing uncopyable, because we default to
|
||||
" not-standards way of doing things, and also because Microsoft Word and
|
||||
" others paste the <input> elements anyway.
|
||||
"
|
||||
" html_prevent_copy only has an effect when using CSS.
|
||||
"
|
||||
" All options:
|
||||
" f - fold column
|
||||
" n - line numbers (also within fold text)
|
||||
" t - fold text
|
||||
" d - diff filler
|
||||
" c - concealed text (reserved future)
|
||||
" l - listchars (reserved possible future)
|
||||
" s - signs (reserved possible future)
|
||||
"
|
||||
" Normal text is always selectable.
|
||||
let user_settings.prevent_copy = ""
|
||||
if user_settings.use_css
|
||||
if exists("g:html_prevent_copy")
|
||||
if user_settings.dynamic_folds && !user_settings.no_foldcolumn && g:html_prevent_copy =~# 'f'
|
||||
let user_settings.prevent_copy .= 'f'
|
||||
endif
|
||||
if user_settings.number_lines && g:html_prevent_copy =~# 'n'
|
||||
let user_settings.prevent_copy .= 'n'
|
||||
endif
|
||||
if &diff && g:html_prevent_copy =~# 'd'
|
||||
let user_settings.prevent_copy .= 'd'
|
||||
endif
|
||||
if !user_settings.ignore_folding && g:html_prevent_copy =~# 't'
|
||||
let user_settings.prevent_copy .= 't'
|
||||
endif
|
||||
else
|
||||
let user_settings.prevent_copy = ""
|
||||
endif
|
||||
endif
|
||||
if empty(user_settings.prevent_copy)
|
||||
let user_settings.no_invalid = 0
|
||||
endif
|
||||
|
||||
if exists('g:html_id_expr')
|
||||
let user_settings.id_suffix = eval(g:html_id_expr)
|
||||
if user_settings.id_suffix !~ '^[-_:.A-Za-z0-9]*$'
|
||||
echohl WarningMsg
|
||||
echomsg '2html: g:html_id_expr evaluated to invalid string for HTML id attributes'
|
||||
echomsg '2html: Omitting user-specified suffix'
|
||||
echohl None
|
||||
sleep 3
|
||||
let user_settings.id_suffix=""
|
||||
endif
|
||||
else
|
||||
let user_settings.id_suffix=""
|
||||
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
|
||||
+123
-136
@@ -1,9 +1,9 @@
|
||||
" vimball.vim : construct a file containing both paths and files
|
||||
" Author: Charles E. Campbell, Jr.
|
||||
" Date: Jan 17, 2012
|
||||
" Version: 35
|
||||
" Date: Jul 30, 2008
|
||||
" Version: 29
|
||||
" GetLatestVimScripts: 1502 1 :AutoInstall: vimball.vim
|
||||
" Copyright: (c) 2004-2011 by Charles E. Campbell, Jr.
|
||||
" Copyright: (c) 2004-2008 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.
|
||||
@@ -11,17 +11,11 @@
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_vimball")
|
||||
if &cp || exists("g:loaded_vimball") || v:version < 700
|
||||
finish
|
||||
endif
|
||||
let g:loaded_vimball = "v35"
|
||||
if v:version < 702
|
||||
echohl WarningMsg
|
||||
echo "***warning*** this version of vimball needs vim 7.2"
|
||||
echohl Normal
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
let s:keepcpo = &cpo
|
||||
let g:loaded_vimball = "v29"
|
||||
set cpo&vim
|
||||
"DechoTabOn
|
||||
|
||||
@@ -58,6 +52,30 @@ if !exists("s:USAGE")
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball) g:vimball_mkdir undefined")
|
||||
endif
|
||||
endif
|
||||
|
||||
" set up shell quoting character
|
||||
if exists("g:vimball_shq") && !exists("g:netrw_shq")
|
||||
let g:netrw_shq= g:vimball_shq
|
||||
endif
|
||||
if !exists("g:netrw_shq")
|
||||
if exists("&shq") && &shq != ""
|
||||
let g:netrw_shq= &shq
|
||||
elseif has("win32") || has("win95") || has("win64") || has("win16")
|
||||
if g:netrw_cygwin
|
||||
let g:netrw_shq= "'"
|
||||
else
|
||||
let g:netrw_shq= '"'
|
||||
endif
|
||||
else
|
||||
let g:netrw_shq= "'"
|
||||
endif
|
||||
" call Decho("g:netrw_shq<".g:netrw_shq.">")
|
||||
endif
|
||||
|
||||
" set up escape string (used to protect paths)
|
||||
if !exists("g:vimball_path_escape")
|
||||
let g:vimball_path_escape= ' ;#%'
|
||||
endif
|
||||
endif
|
||||
|
||||
" =====================================================================
|
||||
@@ -67,10 +85,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.vmb, even if it exists
|
||||
" writelevel : if true, force a write to filename.vba, even if it exists
|
||||
" (usually accomplished with :MkVimball! ...
|
||||
" filename : base name of file to be created (ie. filename.vmb)
|
||||
" Output: a filename.vmb using vimball format:
|
||||
" filename : base name of file to be created (ie. filename.vba)
|
||||
" Output: a filename.vba using vimball format:
|
||||
" path
|
||||
" filesize
|
||||
" [file]
|
||||
@@ -80,16 +98,16 @@ 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}$','.vmb','')
|
||||
let vbname= substitute(a:1,'\.\a\{3}$','.vba','')
|
||||
else
|
||||
let vbname= a:1
|
||||
endif
|
||||
if vbname !~ '\.vmb$'
|
||||
let vbname= vbname.'.vmb'
|
||||
if vbname !~ '\.vba$'
|
||||
let vbname= vbname.'.vba'
|
||||
endif
|
||||
" call Decho("vbname<".vbname.">")
|
||||
if !a:writelevel && a:1 =~ '[\/]'
|
||||
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes; use ! to insist")
|
||||
if a:1 =~ '[\/]'
|
||||
call vimball#ShowMesg(s:ERROR,"(MkVimball) vimball name<".a:1."> should not include slashes")
|
||||
" call Dret("MkVimball : vimball name<".a:1."> should not include slashes")
|
||||
return
|
||||
endif
|
||||
@@ -107,7 +125,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
let home= expand(a:2)
|
||||
else
|
||||
" use first existing directory from rtp
|
||||
let home= vimball#VimballHome()
|
||||
let home= s:VimballHome()
|
||||
endif
|
||||
|
||||
" save current directory
|
||||
@@ -134,7 +152,7 @@ fun! vimball#MkVimball(line1,line2,writelevel,...) range
|
||||
" create/switch to mkvimball tab
|
||||
if !exists("vbtabnr")
|
||||
tabnew
|
||||
sil! file Vimball
|
||||
silent! file Vimball
|
||||
let vbtabnr= tabpagenr()
|
||||
else
|
||||
exe "tabn ".vbtabnr
|
||||
@@ -195,12 +213,12 @@ 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 (pls upgrade to vim 7.2 or later)"
|
||||
" call Dret("vimball#Vimball : needs 7.1 with patch 299 or later")
|
||||
echoerr "your vim is missing the fnameescape() function"
|
||||
" call Dret("vimball#Vimball : needs 7.1 with patch 299")
|
||||
return
|
||||
endif
|
||||
|
||||
if getline(1) !~ '^" Vimball Archiver'
|
||||
if getline(1) !~ '^" Vimball Archiver by Charles E. Campbell, Jr., Ph.D.$'
|
||||
echoerr "(Vimball) The current file does not appear to be a Vimball!"
|
||||
" call Dret("vimball#Vimball")
|
||||
return
|
||||
@@ -214,24 +232,15 @@ fun! vimball#Vimball(really,...)
|
||||
" set up vimball tab
|
||||
" call Decho("setting up vimball tab")
|
||||
tabnew
|
||||
sil! file Vimball
|
||||
silent! 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()
|
||||
let home= s:VimballHome()
|
||||
endif
|
||||
" call Decho("home<".home.">")
|
||||
|
||||
@@ -263,10 +272,9 @@ fun! vimball#Vimball(really,...)
|
||||
while 1 < linenr && linenr < line("$")
|
||||
let fname = substitute(getline(linenr),'\t\[\[\[1$','','')
|
||||
let fname = substitute(fname,'\\','/','g')
|
||||
let fsize = substitute(getline(linenr+1),'^\(\d\+\).\{-}$','\1','')+0
|
||||
let fenc = substitute(getline(linenr+1),'^\d\+\s*\(\S\{-}\)$','\1','')
|
||||
let fsize = getline(linenr+1)+0
|
||||
let filecnt = filecnt + 1
|
||||
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt. " fenc=".fenc)
|
||||
" call Decho("fname<".fname."> fsize=".fsize." filecnt=".filecnt)
|
||||
|
||||
if a:really
|
||||
echomsg "extracted <".fname.">: ".fsize." lines"
|
||||
@@ -291,18 +299,15 @@ 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")
|
||||
call system(g:vimball_mkdir." ".shellescape(dirname))
|
||||
call system(g:vimball_mkdir." ".s:Escape(dirname))
|
||||
else
|
||||
call mkdir(dirname)
|
||||
endif
|
||||
@@ -317,42 +322,35 @@ fun! vimball#Vimball(really,...)
|
||||
let linenr = linenr + 2
|
||||
let lastline = linenr + fsize - 1
|
||||
" call Decho("exe ".linenr.",".lastline."yank a")
|
||||
" no point in handling a zero-length file
|
||||
if lastline >= linenr
|
||||
exe "silent ".linenr.",".lastline."yank a"
|
||||
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
|
||||
sil! %d
|
||||
silent put a
|
||||
1
|
||||
sil! d
|
||||
exe "tabn ".vbtabnr
|
||||
setlocal ma
|
||||
silent! %d
|
||||
silent put a
|
||||
1
|
||||
silent 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)
|
||||
else
|
||||
exe "silent w! ".fnameescape(fnamepath)
|
||||
endif
|
||||
echo "wrote ".fnameescape(fnamepath)
|
||||
call s:RecordInVar(home,"call delete('".fnamepath."')")
|
||||
endif
|
||||
exe "silent w! ".fnameescape(fnamepath)
|
||||
echo "wrote ".fnamepath
|
||||
call s:RecordInVar(home,"call delete('".fnameescape(fnamepath)."')")
|
||||
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
|
||||
@@ -414,15 +412,13 @@ fun! vimball#RmVimball(...)
|
||||
let curfile= a:1
|
||||
" call Decho("case a:0=".a:0.": curfile<".curfile.">")
|
||||
endif
|
||||
if curfile =~ '\.vmb$'
|
||||
let curfile= substitute(curfile,'\.vmb','','')
|
||||
elseif curfile =~ '\.vba$'
|
||||
if curfile =~ '\.vba$'
|
||||
let curfile= substitute(curfile,'\.vba','','')
|
||||
endif
|
||||
if a:0 >= 2
|
||||
let home= expand(a:2)
|
||||
else
|
||||
let home= vimball#VimballHome()
|
||||
let home= s:VimballHome()
|
||||
endif
|
||||
let curdir = getcwd()
|
||||
" call Decho("home <".home.">")
|
||||
@@ -434,48 +430,39 @@ fun! vimball#RmVimball(...)
|
||||
" call Decho(".VimballRecord is readable")
|
||||
" call Decho("curfile<".curfile.">")
|
||||
keepalt keepjumps 1split
|
||||
sil! keepalt keepjumps e .VimballRecord
|
||||
silent! keepalt keepjumps e .VimballRecord
|
||||
let keepsrch= @/
|
||||
" call Decho('search for ^\M'.curfile.'.\m: ')
|
||||
" 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')
|
||||
" call Decho("search for ^".curfile.".vba:")
|
||||
" call Decho("search for ^".curfile."[-0-9.]*.vba:")
|
||||
if search('^'.curfile.": ".'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')
|
||||
elseif search('^'.curfile.".vba: ",'cw')
|
||||
let foundit= 1
|
||||
elseif search('^\M'.curfile.'\m[-0-9.]*\.vba: ','cw')
|
||||
elseif search('^'.curfile.'[-0-9.]*.vba: ','cw')
|
||||
let foundit= 1
|
||||
else
|
||||
let foundit = 0
|
||||
endif
|
||||
if foundit
|
||||
if foundit == 1
|
||||
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vba: ','','')
|
||||
else
|
||||
let exestring = substitute(getline("."),'^\M'.curfile.'\m\S\{-}\.vmb: ','','')
|
||||
endif
|
||||
let exestring = substitute(getline("."),'^'.curfile.'\S\{-}\.vba: ','','')
|
||||
let s:VBRstring= substitute(exestring,'call delete(','','g')
|
||||
let s:VBRstring= substitute(s:VBRstring,"[')]",'','g')
|
||||
" call Decho("exe ".exestring)
|
||||
sil! keepalt keepjumps exe exestring
|
||||
sil! keepalt keepjumps d
|
||||
silent! keepalt keepjumps exe exestring
|
||||
silent! 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,'\.vmb','','')
|
||||
let curfile = substitute(curfile,'\.vba','','')
|
||||
" 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
|
||||
sil! keepalt keepjumps g/^\s*$/d
|
||||
sil! keepalt keepjumps wq!
|
||||
silent! keepalt keepjumps g/^\s*$/d
|
||||
silent! keepalt keepjumps wq!
|
||||
let @/= keepsrch
|
||||
endif
|
||||
call s:ChgDir(curdir)
|
||||
@@ -485,62 +472,62 @@ endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" vimball#Decompress: attempts to automatically decompress vimballs {{{2
|
||||
fun! vimball#Decompress(fname,...)
|
||||
" call Dfunc("Decompress(fname<".a:fname.">) a:0=".a:0)
|
||||
fun! vimball#Decompress(fname)
|
||||
" call Dfunc("Decompress(fname<".a:fname.">)")
|
||||
|
||||
" decompression:
|
||||
if expand("%") =~ '.*\.gz' && executable("gunzip")
|
||||
" handle *.gz with gunzip
|
||||
silent exe "!gunzip ".shellescape(a:fname)
|
||||
silent exe "!gunzip ".s:Escape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) gunzip may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.gz$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
|
||||
elseif expand("%") =~ '.*\.gz' && executable("gzip")
|
||||
" handle *.gz with gzip -d
|
||||
silent exe "!gzip -d ".shellescape(a:fname)
|
||||
silent exe "!gzip -d ".s:Escape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "gzip -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.gz$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
|
||||
elseif expand("%") =~ '.*\.bz2' && executable("bunzip2")
|
||||
" handle *.bz2 with bunzip2
|
||||
silent exe "!bunzip2 ".shellescape(a:fname)
|
||||
silent exe "!bunzip2 ".s:Escape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) bunzip2 may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.bz2$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
|
||||
elseif expand("%") =~ '.*\.bz2' && executable("bzip2")
|
||||
" handle *.bz2 with bzip2 -d
|
||||
silent exe "!bzip2 -d ".shellescape(a:fname)
|
||||
silent exe "!bzip2 -d ".s:Escape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "bzip2 -d" may have failed with <'.a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.bz2$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
|
||||
elseif expand("%") =~ '.*\.zip' && executable("unzip")
|
||||
" handle *.zip with unzip
|
||||
silent exe "!unzip ".shellescape(a:fname)
|
||||
silent exe "!unzip ".s:Escape(a:fname)
|
||||
if v:shell_error != 0
|
||||
call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unzip may have failed with <".a:fname.">")
|
||||
endif
|
||||
let fname= substitute(a:fname,'\.zip$','','')
|
||||
exe "e ".escape(fname,' \')
|
||||
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
|
||||
call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)")
|
||||
endif
|
||||
|
||||
if a:0 == 0| setlocal noma bt=nofile fmr=[[[,]]] fdm=marker | endif
|
||||
set noma bt=nofile fmr=[[[,]]] fdm=marker
|
||||
|
||||
" call Dret("Decompress")
|
||||
endfun
|
||||
@@ -549,21 +536,20 @@ endfun
|
||||
" vimball#ShowMesg: {{{2
|
||||
fun! vimball#ShowMesg(level,msg)
|
||||
" call Dfunc("vimball#ShowMesg(level=".a:level." msg<".a:msg.">)")
|
||||
|
||||
let rulerkeep = &ruler
|
||||
let showcmdkeep = &showcmd
|
||||
set noruler noshowcmd
|
||||
redraw!
|
||||
|
||||
if &fo =~ '[ta]'
|
||||
echomsg "***vimball*** ".a:msg
|
||||
echomsg "***vimball*** " a:msg
|
||||
else
|
||||
if a:level == s:WARNING || a:level == s:USAGE
|
||||
echohl WarningMsg
|
||||
elseif a:level == s:ERROR
|
||||
echohl Error
|
||||
endif
|
||||
echomsg "***vimball*** ".a:msg
|
||||
echomsg "***vimball*** " a:msg
|
||||
echohl None
|
||||
endif
|
||||
|
||||
@@ -581,19 +567,9 @@ endfun
|
||||
fun! s:ChgDir(newdir)
|
||||
" call Dfunc("ChgDir(newdir<".a:newdir.">)")
|
||||
if (has("win32") || has("win95") || has("win64") || has("win16"))
|
||||
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
|
||||
exe 'silent cd '.fnameescape(substitute(a:newdir,'/','\\','g'))
|
||||
else
|
||||
try
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
catch /^Vim\%((\a\+)\)\=:E/
|
||||
call mkdir(fnameescape(a:newdir))
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
endtry
|
||||
exe 'silent cd '.fnameescape(a:newdir)
|
||||
endif
|
||||
" call Dret("ChgDir : curdir<".getcwd().">")
|
||||
endfun
|
||||
@@ -633,7 +609,7 @@ fun! s:RecordInFile(home)
|
||||
let cmd= expand("%:tr").": "
|
||||
" call Decho("cmd<".cmd.">")
|
||||
|
||||
sil! keepalt keepjumps e .VimballRecord
|
||||
silent! keepalt keepjumps e .VimballRecord
|
||||
setlocal ma
|
||||
$
|
||||
if exists("s:recordfile") && exists("s:recorddir")
|
||||
@@ -650,8 +626,8 @@ fun! s:RecordInFile(home)
|
||||
|
||||
" put command into buffer, write .VimballRecord `file
|
||||
keepalt keepjumps put=cmd
|
||||
sil! keepalt keepjumps g/^\s*$/d
|
||||
sil! keepalt keepjumps wq!
|
||||
silent! keepalt keepjumps g/^\s*$/d
|
||||
silent! keepalt keepjumps wq!
|
||||
call s:ChgDir(curdir)
|
||||
|
||||
if exists("s:recorddir")
|
||||
@@ -670,9 +646,9 @@ fun! s:RecordInFile(home)
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" vimball#VimballHome: determine/get home directory path (usually from rtp) {{{2
|
||||
fun! vimball#VimballHome()
|
||||
" call Dfunc("vimball#VimballHome()")
|
||||
" s:VimballHome: determine/get home directory path (usually from rtp) {{{2
|
||||
fun! s:VimballHome()
|
||||
" call Dfunc("VimballHome()")
|
||||
if exists("g:vimball_home")
|
||||
let home= g:vimball_home
|
||||
else
|
||||
@@ -698,14 +674,14 @@ fun! vimball#VimballHome()
|
||||
if !isdirectory(home)
|
||||
if exists("g:vimball_mkdir")
|
||||
" call Decho("home<".home."> isn't a directory -- making it now with g:vimball_mkdir<".g:vimball_mkdir.">")
|
||||
" call Decho("system(".g:vimball_mkdir." ".shellescape(home).")")
|
||||
call system(g:vimball_mkdir." ".shellescape(home))
|
||||
" call Decho("system(".g:vimball_mkdir." ".s:Escape(home).")")
|
||||
call system(g:vimball_mkdir." ".s:Escape(home))
|
||||
else
|
||||
" call Decho("home<".home."> isn't a directory -- making it now with mkdir()")
|
||||
call mkdir(home)
|
||||
endif
|
||||
endif
|
||||
" call Dret("vimball#VimballHome <".home.">")
|
||||
" call Dret("VimballHome <".home.">")
|
||||
return home
|
||||
endfun
|
||||
|
||||
@@ -727,11 +703,10 @@ 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 noswf
|
||||
setlocal ei=all ve=all noacd nofen noic report=999 nohid bt= ma lz pm= ff=unix
|
||||
else
|
||||
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix noswf
|
||||
setlocal ei=all ve=all nofen noic report=999 nohid bt= ma lz pm= ff=unix
|
||||
endif
|
||||
" vimballs should be in unix format
|
||||
setlocal ff=unix
|
||||
@@ -767,7 +742,19 @@ fun! vimball#RestoreSettings()
|
||||
" call Dret("RestoreSettings")
|
||||
endfun
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
" ---------------------------------------------------------------------
|
||||
" s:Escape: {{{2
|
||||
fun s:Escape(name)
|
||||
" shellescape() was added by patch 7.0.111
|
||||
if exists("*shellescape")
|
||||
return shellescape(a:name)
|
||||
endif
|
||||
return g:netrw_shq . a:name . g:netrw_shq
|
||||
endfun
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Restore:
|
||||
let &cpo= s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim completion script
|
||||
" Language: XML
|
||||
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
|
||||
" Last Change: 2013 Jun 29
|
||||
" Last Change: 2006 Aug 15
|
||||
" Version: 1.9
|
||||
"
|
||||
" Changelog:
|
||||
@@ -475,12 +475,12 @@ function! s:InCommentAt(line, col)
|
||||
endfunction
|
||||
|
||||
function! s:SetKeywords()
|
||||
let s:IsKeywordBak=&l:iskeyword
|
||||
let &l:iskeyword='33-255'
|
||||
let g:IsKeywordBak=&iskeyword
|
||||
let &iskeyword='33-255'
|
||||
endfunction
|
||||
|
||||
function! s:RestoreKeywords()
|
||||
let &l:iskeyword=s:IsKeywordBak
|
||||
let &iskeyword=g:IsKeywordBak
|
||||
endfunction
|
||||
|
||||
function! s:Push(el, sname)
|
||||
|
||||
+34
-52
@@ -1,10 +1,10 @@
|
||||
" zip.vim: Handles browsing zipfiles
|
||||
" AUTOLOAD PORTION
|
||||
" Date: Jul 02, 2013
|
||||
" Version: 27
|
||||
" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" Date: Jul 30, 2008
|
||||
" Version: 22
|
||||
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
|
||||
" License: Vim License (see vim's :help license)
|
||||
" Copyright: Copyright (C) 2005-2013 Charles E. Campbell {{{1
|
||||
" Copyright: Copyright (C) 2005-2008 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,
|
||||
@@ -13,24 +13,16 @@
|
||||
" this plugin, you agree that in no event will the copyright
|
||||
" holder be liable for any damages resulting from the use
|
||||
" of this software.
|
||||
"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore()
|
||||
|
||||
" ---------------------------------------------------------------------
|
||||
" Load Once: {{{1
|
||||
if &cp || exists("g:loaded_zip")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_zip= "v27"
|
||||
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
|
||||
"DechoTabOn
|
||||
if &cp || exists("g:loaded_zip") || v:version < 700
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:loaded_zip = "v22"
|
||||
let s:zipfile_escape = ' ?&;\'
|
||||
let s:ERROR = 2
|
||||
let s:WARNING = 1
|
||||
@@ -62,16 +54,6 @@ endif
|
||||
" zip#Browse: {{{2
|
||||
fun! zip#Browse(zipfile)
|
||||
" call Dfunc("zip#Browse(zipfile<".a:zipfile.">)")
|
||||
" sanity check: insure that the zipfile has "PK" as its first two letters
|
||||
" (zipped files have a leading PK as a "magic cookie")
|
||||
if !filereadable(a:zipfile) || readfile(a:zipfile, "", 1)[0] !~ '^PK'
|
||||
exe "noautocmd e ".fnameescape(a:zipfile)
|
||||
" call Dret("zip#Browse : not a zipfile<".a:zipfile.">")
|
||||
return
|
||||
" else " Decho
|
||||
" call Decho("zip#Browse: a:zipfile<".a:zipfile."> passed PK test - its a zip file")
|
||||
endif
|
||||
|
||||
let repkeep= &report
|
||||
set report=10
|
||||
|
||||
@@ -115,26 +97,38 @@ fun! zip#Browse(zipfile)
|
||||
set ft=tar
|
||||
|
||||
" give header
|
||||
call append(0, ['" zip.vim version '.g:loaded_zip,
|
||||
\ '" Browsing zipfile '.a:zipfile,
|
||||
\ '" Select a file with cursor and press ENTER'])
|
||||
keepj $
|
||||
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 Decho("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)
|
||||
exe "silent r! ".g:zip_unzipcmd." -l -- ".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()
|
||||
keepj sil! %d
|
||||
silent %d
|
||||
let eikeep= &ei
|
||||
set ei=BufReadCmd,FileReadCmd
|
||||
exe "keepj r ".fnameescape(a:zipfile)
|
||||
exe "r ".fnameescape(a:zipfile)
|
||||
let &ei= eikeep
|
||||
keepj 1d
|
||||
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>
|
||||
@@ -200,28 +194,16 @@ fun! zip#Read(fname,mode)
|
||||
else
|
||||
let zipfile = substitute(a:fname,'^.\{-}zipfile:\(.\{-}\)::[^\\].*$','\1','')
|
||||
let fname = substitute(a:fname,'^.\{-}zipfile:.\{-}::\([^\\].*\)$','\1','')
|
||||
let fname = substitute(fname, '[', '[[]', 'g')
|
||||
let fname = substitute(fname, '[', '[[]', 'g')
|
||||
endif
|
||||
" call Decho("zipfile<".zipfile.">")
|
||||
" call Decho("fname <".fname.">")
|
||||
|
||||
" the following code does much the same thing as
|
||||
" exe "keepj sil! r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1)
|
||||
" but allows zipfile:... entries in quickfix lists
|
||||
let temp = tempname()
|
||||
" call Decho("using temp file<".temp.">")
|
||||
let fn = expand('%:p')
|
||||
exe "sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp
|
||||
" call Decho("exe sil! !".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fnameescape(fname),1).' > '.temp)
|
||||
sil exe 'keepalt file '.temp
|
||||
sil keepj e!
|
||||
sil exe 'keepalt file '.fnameescape(fn)
|
||||
call delete(temp)
|
||||
|
||||
filetype detect
|
||||
" 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)
|
||||
|
||||
" cleanup
|
||||
" keepj 0d " used to be needed for the ...r! ... method
|
||||
0d
|
||||
set nomod
|
||||
|
||||
let &report= repkeep
|
||||
@@ -290,7 +272,7 @@ fun! zip#Write(fname)
|
||||
|
||||
if fname =~ '/'
|
||||
let dirpath = substitute(fname,'/[^/]\+$','','e')
|
||||
if has("win32unix") && executable("cygpath")
|
||||
if executable("cygpath")
|
||||
let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
|
||||
endif
|
||||
" call Decho("mkdir(dirpath<".dirpath.">,p)")
|
||||
@@ -302,7 +284,7 @@ fun! zip#Write(fname)
|
||||
" call Decho("zipfile<".zipfile."> fname<".fname.">")
|
||||
|
||||
exe "w! ".fnameescape(fname)
|
||||
if has("win32unix") && executable("cygpath")
|
||||
if executable("cygpath")
|
||||
let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim color file
|
||||
" Maintainer: Hans Fugal <hans@fugal.net>
|
||||
" Last Change: $Date: 2004/06/13 19:30:30 $
|
||||
" Last Change: $Date: 2004/06/13 19:30:30 $
|
||||
" Last Change: $Date$
|
||||
" Last Change: $Date$
|
||||
" URL: http://hans.fugal.net/vim/colors/desert.vim
|
||||
" Version: $Id: desert.vim,v 1.1 2004/06/13 19:30:30 vimboss Exp $
|
||||
" Version: $Id$
|
||||
|
||||
" cool help screens
|
||||
" :he group-name
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" vim: tw=0 ts=4 sw=4
|
||||
" Vim color file
|
||||
" Maintainer: Ron Aaron <ron@ronware.org>
|
||||
" Last Change: 2013 May 23
|
||||
" Last Change: 2006 Dec 10
|
||||
|
||||
hi clear
|
||||
set background=dark
|
||||
@@ -43,8 +43,6 @@ hi MatchParen term=reverse ctermfg=blue guibg=Blue
|
||||
hi TabLine term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
|
||||
hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white gui=bold guifg=blue guibg=white
|
||||
hi TabLineSel term=reverse ctermfg=white ctermbg=lightblue guifg=white guibg=blue
|
||||
hi Underlined term=underline cterm=bold,underline ctermfg=lightblue guifg=lightblue gui=bold,underline
|
||||
hi Ignore ctermfg=black ctermbg=black guifg=black guibg=black
|
||||
hi link IncSearch Visual
|
||||
hi link String Constant
|
||||
hi link Character Constant
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
" MacVim colorscheme
|
||||
"
|
||||
" Maintainer: Bjorn Winckler <bjorn.winckler@gmail.com>
|
||||
" Last Change: 2008 May 9
|
||||
"
|
||||
" This is the default MacVim color scheme. It supports both light and dark
|
||||
" backgrounds (see :h 'background').
|
||||
"
|
||||
|
||||
|
||||
highlight clear
|
||||
|
||||
" Reset String -> Constant links etc if they were reset
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let colors_name = "macvim"
|
||||
|
||||
|
||||
"
|
||||
" First list all groups common to both 'light' and 'dark' background.
|
||||
"
|
||||
|
||||
" `:he highlight-groups`
|
||||
hi DiffAdd guibg=MediumSeaGreen
|
||||
hi Directory guifg=#1600FF
|
||||
hi ErrorMsg guibg=Firebrick2 guifg=White
|
||||
hi FoldColumn guibg=Grey guifg=DarkBlue
|
||||
hi Folded guibg=#E6E6E6 guifg=DarkBlue
|
||||
hi IncSearch gui=reverse
|
||||
hi ModeMsg gui=bold
|
||||
hi MoreMsg gui=bold guifg=SeaGreen4
|
||||
hi NonText gui=bold guifg=Blue
|
||||
hi Pmenu guibg=LightSteelBlue1
|
||||
hi PmenuSbar guibg=Grey
|
||||
hi PmenuSel guifg=White guibg=SkyBlue4
|
||||
hi PmenuThumb gui=reverse
|
||||
hi Question gui=bold guifg=Chartreuse4
|
||||
hi SignColumn guibg=Grey guifg=DarkBlue
|
||||
hi SpecialKey guifg=Blue
|
||||
hi SpellBad guisp=Firebrick2 gui=undercurl
|
||||
hi SpellCap guisp=Blue gui=undercurl
|
||||
hi SpellLocal guisp=DarkCyan gui=undercurl
|
||||
hi SpellRare guisp=Magenta gui=undercurl
|
||||
hi StatusLine gui=NONE guifg=White guibg=DarkSlateGray
|
||||
hi StatusLineNC gui=NONE guifg=SlateGray guibg=Gray90
|
||||
hi TabLine gui=underline guibg=LightGrey
|
||||
hi TabLineFill gui=reverse
|
||||
hi TabLineSel gui=bold
|
||||
hi Title gui=bold guifg=DeepSkyBlue3
|
||||
hi VertSplit gui=NONE guifg=DarkSlateGray guibg=Gray90
|
||||
if has("gui_macvim")
|
||||
hi Visual guibg=MacSelectedTextBackgroundColor
|
||||
else
|
||||
hi Visual guibg=#72F7FF
|
||||
endif
|
||||
hi WarningMsg guifg=Firebrick2
|
||||
|
||||
" Syntax items (`:he group-name` -- more groups are available, these are just
|
||||
" the top level syntax items for now).
|
||||
hi Error gui=NONE guifg=White guibg=Firebrick3
|
||||
hi Identifier gui=NONE guifg=Aquamarine4 guibg=NONE
|
||||
hi Ignore gui=NONE guifg=bg guibg=NONE
|
||||
hi PreProc gui=NONE guifg=DodgerBlue3 guibg=NONE
|
||||
hi Special gui=NONE guifg=BlueViolet guibg=NONE
|
||||
hi String gui=NONE guifg=SkyBlue4 guibg=NONE
|
||||
hi Underlined gui=underline guifg=SteelBlue1
|
||||
|
||||
|
||||
"
|
||||
" Groups that differ between 'light' and 'dark' background.
|
||||
"
|
||||
|
||||
if &background == "dark"
|
||||
hi Boolean gui=NONE guifg=DeepPink4 guibg=NONE
|
||||
hi Comment gui=italic guifg=CadetBlue3
|
||||
hi Constant gui=NONE guifg=Goldenrod1 guibg=NONE
|
||||
hi Cursor guibg=LightGoldenrod guifg=bg
|
||||
hi CursorColumn guibg=Gray20
|
||||
hi CursorIM guibg=LightSlateGrey guifg=bg
|
||||
hi CursorLine guibg=Gray20
|
||||
hi DiffChange guibg=MediumPurple4
|
||||
hi DiffDelete gui=bold guifg=White guibg=SlateBlue
|
||||
hi DiffText gui=NONE guifg=White guibg=SteelBlue
|
||||
hi LineNr guifg=#552A7B guibg=Grey5
|
||||
hi MatchParen guifg=White guibg=Magenta
|
||||
hi Normal guifg=Grey50 guibg=Grey10
|
||||
hi Search guibg=Blue4 guifg=NONE
|
||||
hi Statement gui=bold guifg=Purple1 guibg=NONE
|
||||
hi Todo gui=NONE guifg=Green4 guibg=DeepSkyBlue1
|
||||
hi Type gui=bold guifg=Cyan4 guibg=NONE
|
||||
hi WildMenu guibg=SkyBlue guifg=White
|
||||
hi lCursor guibg=LightSlateGrey guifg=bg
|
||||
else
|
||||
hi Boolean gui=NONE guifg=Red3 guibg=NONE
|
||||
hi Comment gui=italic guifg=Blue2 guibg=NONE
|
||||
hi Constant gui=NONE guifg=DarkOrange guibg=NONE
|
||||
hi Cursor guibg=fg guifg=bg
|
||||
hi CursorColumn guibg=#F1F5FA
|
||||
hi CursorIM guibg=fg guifg=bg
|
||||
hi CursorLine guibg=#F1F5FA
|
||||
hi DiffChange guibg=DeepSkyBlue
|
||||
hi DiffDelete gui=bold guifg=Black guibg=SlateBlue
|
||||
hi DiffText gui=NONE guibg=Gold
|
||||
hi LineNr guifg=#888888 guibg=#E6E6E6
|
||||
hi MatchParen guifg=White guibg=MediumPurple1
|
||||
if has("gui_macvim")
|
||||
hi Normal gui=NONE guifg=MacTextColor guibg=MacTextBackgroundColor
|
||||
else
|
||||
hi Normal gui=NONE guifg=Black guibg=White
|
||||
endif
|
||||
hi Search guibg=CadetBlue1 guifg=NONE
|
||||
hi Statement gui=bold guifg=Maroon guibg=NONE
|
||||
hi Todo gui=NONE guifg=DarkGreen guibg=PaleGreen1
|
||||
hi Type gui=bold guifg=Green4 guibg=NONE
|
||||
hi WildMenu guibg=SkyBlue guifg=Black
|
||||
hi lCursor guibg=fg guifg=bg
|
||||
endif
|
||||
|
||||
|
||||
"
|
||||
" Change the selection color on focus change (but only if the "macvim"
|
||||
" colorscheme is active).
|
||||
"
|
||||
if has("gui_macvim") && !exists("s:augroups_defined")
|
||||
au FocusLost * if exists("colors_name") && colors_name == "macvim" | hi Visual guibg=MacSecondarySelectedControlColor | endif
|
||||
au FocusGained * if exists("colors_name") && colors_name == "macvim" | hi Visual guibg=MacSelectedTextBackgroundColor | endif
|
||||
|
||||
let s:augroups_defined = 1
|
||||
endif
|
||||
|
||||
" vim: sw=2
|
||||
@@ -2,7 +2,7 @@
|
||||
" vim: tw=0 ts=4 sw=4
|
||||
" Vim color file
|
||||
" Maintainer: Ron Aaron <ron@ronware.org>
|
||||
" Last Change: 2013 May 24
|
||||
" Last Change: 2003 May 02
|
||||
|
||||
set background=dark
|
||||
hi clear
|
||||
@@ -11,7 +11,7 @@ if exists("syntax_on")
|
||||
endif
|
||||
let g:colors_name = "ron"
|
||||
hi Normal guifg=cyan guibg=black
|
||||
hi NonText guifg=yellow guibg=#303030
|
||||
hi NonText guifg=brown
|
||||
hi comment guifg=green
|
||||
hi constant guifg=cyan gui=bold
|
||||
hi identifier guifg=cyan gui=NONE
|
||||
@@ -24,11 +24,10 @@ hi WarningMsg guifg=Black guibg=Green
|
||||
hi Error guibg=Red
|
||||
hi Todo guifg=Black guibg=orange
|
||||
hi Cursor guibg=#60a060 guifg=#00ff00
|
||||
hi Search guibg=darkgray guifg=black gui=bold
|
||||
hi Search guibg=lightslateblue
|
||||
hi IncSearch gui=NONE guibg=steelblue
|
||||
hi LineNr guifg=darkgrey
|
||||
hi title guifg=darkgrey
|
||||
hi ShowMarksHL ctermfg=cyan ctermbg=lightblue cterm=bold guifg=yellow guibg=black gui=bold
|
||||
hi StatusLineNC gui=NONE guifg=lightblue guibg=darkblue
|
||||
hi StatusLine gui=bold guifg=cyan guibg=blue
|
||||
hi label guifg=gold2
|
||||
@@ -42,4 +41,3 @@ hi DiffDelete guibg=coral
|
||||
hi Folded guibg=gray30
|
||||
hi FoldColumn guibg=gray30 guifg=white
|
||||
hi cIf0 guifg=gray
|
||||
hi diffOnly guifg=red gui=bold
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Checkstyle
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jun 26
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/checkstyle.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -16,4 +17,4 @@ CompilerSet makeprg=java\ com.puppycrawl.tools.checkstyle.Main\ -f\ plain
|
||||
|
||||
" sample error: WebTable.java:282: '+=' is not preceeded with whitespace.
|
||||
" WebTable.java:201:1: '{' should be on the previous line.
|
||||
CompilerSet errorformat=%f:%l:%v:\ %m,%f:%l:\ %m,%-G%.%#
|
||||
CompilerSet errorformat=%f:%l:\ %m,%f:%l:%v:\ %m,%-G%.%#
|
||||
|
||||
+5
-12
@@ -1,26 +1,19 @@
|
||||
" Vim compiler file
|
||||
" 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
|
||||
" Compiler: ms C#
|
||||
" Maintainer: Joseph H. Yao (hyao@sina.com)
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 Aug 09
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "cucumber"
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=cucumber
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%W%m\ (Cucumber::Undefined),
|
||||
\%E%m\ (%.%#),
|
||||
\%Z%f:%l,
|
||||
\%Z%f:%l:%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
@@ -1,13 +1,13 @@
|
||||
"------------------------------------------------------------------------------
|
||||
" Description: Vim Ada/Dec Ada compiler file
|
||||
" Language: Ada (Dec Ada)
|
||||
" $Id: decada.vim 887 2008-07-08 14:29:01Z krischik $
|
||||
" $Id$
|
||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||
" Maintainer: Martin Krischik <krischik@users.sourceforge.net>
|
||||
" $Author: krischik $
|
||||
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||
" $Author$
|
||||
" $Date$
|
||||
" Version: 4.6
|
||||
" $Revision: 887 $
|
||||
" $Revision$
|
||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/decada.vim $
|
||||
" History: 21.07.2006 MK New Dec Ada
|
||||
" 15.10.2006 MK Bram's suggestion for runtime integration
|
||||
@@ -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,9 +44,6 @@ 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}}}
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
" 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,9 @@
|
||||
" Vim compiler file
|
||||
" Language: eRuby
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Info: $Id$
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
if exists("current_compiler")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: g77 (GNU Fortran)
|
||||
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
" Last Change: $Date: 2004/06/13 18:17:36 $
|
||||
" $Revision: 1.1 $
|
||||
" Last Change: $Date$
|
||||
" $Revision$
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
" 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: 2010-10-14
|
||||
" Latest Revision: 2006-12-20
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -9,20 +9,13 @@ endif
|
||||
let current_compiler = "gcc"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%*[^\"]\"%f\"%*\\D%l:%c:\ %m,
|
||||
\%*[^\"]\"%f\"%*\\D%l:\ %m,
|
||||
\\"%f\"%*\\D%l:%c:\ %m,
|
||||
\\"%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',
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
" 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
|
||||
@@ -1,14 +1,14 @@
|
||||
"------------------------------------------------------------------------------
|
||||
" Description: Vim Ada/GNAT compiler file
|
||||
" Language: Ada (GNAT)
|
||||
" $Id: gnat.vim 887 2008-07-08 14:29:01Z krischik $
|
||||
" $Id$
|
||||
" Copyright: Copyright (C) 2006 Martin Krischik
|
||||
" Maintainer: Martin Krischi <krischik@users.sourceforge.net>k
|
||||
" Ned Okie <nokie@radford.edu>
|
||||
" $Author: krischik $
|
||||
" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
|
||||
" $Author$
|
||||
" $Date$
|
||||
" Version: 4.6
|
||||
" $Revision: 887 $
|
||||
" $Revision$
|
||||
" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/compiler/gnat.vim $
|
||||
" History: 24.05.2006 MK Unified Headers
|
||||
" 16.07.2006 MK Ada-Mode as vim-ball
|
||||
@@ -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,9 +62,6 @@ 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}}}
|
||||
|
||||
"------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "haml"
|
||||
|
||||
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=haml\ -c
|
||||
|
||||
CompilerSet errorformat=
|
||||
\Haml\ %trror\ on\ line\ %l:\ %m,
|
||||
\Syntax\ %trror\ on\ line\ %l:\ %m,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
@@ -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: 2012 Apr 30
|
||||
" Last Change: 2005 Nov 19
|
||||
"
|
||||
" aCC --version says: "HP ANSI C++ B3910B A.03.13"
|
||||
" This compiler has been tested on:
|
||||
@@ -19,8 +19,6 @@ 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>
|
||||
@@ -32,7 +30,4 @@ 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
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
" 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,14 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Intel C++ 7.1
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 May 16
|
||||
|
||||
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>
|
||||
@@ -21,6 +19,3 @@ CompilerSet errorformat=%E%f(%l):\ error:\ %m,
|
||||
\%-Z\ \ %p^,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 5.3 cc
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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>
|
||||
@@ -21,6 +19,3 @@ CompilerSet errorformat=\%Ecfe:\ Error:\ %f\\,\ line\ %l:\ %m,
|
||||
\%-Z\ %p^,
|
||||
\-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 5.3 CC or NCC
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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>
|
||||
@@ -21,6 +19,3 @@ CompilerSet errorformat=%E\"%f\"\\,\ line\ %l:\ error(%n):\ ,
|
||||
\%-Z\ \ %p%^,
|
||||
\%+C\ %\\{10}%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: javac
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2004 Nov 27
|
||||
" Compiler: javac
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/javac.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
" Vim Compiler File
|
||||
" Compiler: Jikes
|
||||
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
|
||||
" Last Change: 20 Jan 2009
|
||||
" URL: http://dwsharp.users.sourceforge.net/vim/compiler
|
||||
" Last Change: 2004 Mar 27
|
||||
" URL: http://mywebpage.netscape.com/sharppeople/vim/compiler
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Mono C# Compiler
|
||||
" Maintainer: Jarek Sobiecki <harijari@go2.pl>
|
||||
" Last Updated By: Peter Collingbourne
|
||||
" Latest Revision: 2012 Jul 19
|
||||
" Latest Revision: 2006-06-18
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -13,18 +12,13 @@ let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
setlocal errorformat=
|
||||
\%D%.%#Project\ \"%f/%[%^/\"]%#\"%.%#,
|
||||
\%X%.%#Done\ building\ project\ \"%f/%[%^/\"]%#\"%.%#,
|
||||
\%-G%\\s%.%#,
|
||||
\%E%f(%l):\ error\ CS%n:%m,
|
||||
\%W%f(%l):\ warning\ CS%n:%m,
|
||||
\%E%f(%l\\,%c):\ error\ CS%n:%m,
|
||||
\%W%f(%l\\,%c):\ warning\ CS%n:%m,
|
||||
\%E%>syntax\ error\\,%m,%Z%f(%l\\,%c):\ error\ CS%n:%m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
|
||||
\%DMaking\ %*\\a\ in\ %f,
|
||||
\%-G%.%#
|
||||
\%G-%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 6.5 MIPS C (cc)
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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>
|
||||
@@ -21,6 +19,3 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
|
||||
\%-Z\ \ %p^,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 6.5 MIPSPro C (c89)
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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>
|
||||
@@ -22,6 +20,3 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
|
||||
\%+C\ \ %m,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
" Vim compiler file
|
||||
" Compiler: SGI IRIX 6.5 MIPSPro C++ (CC)
|
||||
" Maintainer: David Harrison <david_jr@users.sourceforge.net>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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>
|
||||
@@ -21,6 +19,3 @@ CompilerSet errorformat=%Ecc\-%n\ %.%#:\ ERROR\ File\ =\ %f\%\\,\ Line\ =\ %l,
|
||||
\%-Z\ \ %p^,
|
||||
\%-G\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Microsoft Visual Studio C#
|
||||
" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
|
||||
" Last Change: 2013 May 13
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "msbuild"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
|
||||
CompilerSet makeprg=msbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
@@ -1,44 +0,0 @@
|
||||
" Vim Compiler File
|
||||
" Compiler: ocaml
|
||||
" Maintainer: See ftplugin/ocaml.vim (?)
|
||||
" Last Change: June 2013 by Marc Weber
|
||||
"
|
||||
" Marc Weber's comments:
|
||||
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
|
||||
" ocamake and whatnot. So which one to use?
|
||||
"
|
||||
" This error format was moved from ftplugin/ocaml.vim to this file,
|
||||
" because ftplugin is the wrong file to set an error format
|
||||
" and the error format itself is annoying because it joins many lines in this
|
||||
" error case:
|
||||
"
|
||||
" Error: The implementation foo.ml does not match the interface foo.cmi:
|
||||
" Modules do not match case.
|
||||
"
|
||||
" So having it here makes people opt-in
|
||||
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "ocaml"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
CompilerSet errorformat =
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
|
||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
|
||||
\%+EReference\ to\ unbound\ regexp\ name\ %m,
|
||||
\%Eocamlyacc:\ e\ -\ line\ %l\ of\ \"%f\"\\,\ %m,
|
||||
\%Wocamlyacc:\ w\ -\ %m,
|
||||
\%-Zmake%.%#,
|
||||
\%C%m,
|
||||
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
|
||||
\%D%*\\a:\ Entering\ directory\ `%f',
|
||||
\%X%*\\a:\ Leaving\ directory\ `%f',
|
||||
\%DMaking\ %*\\a\ in\ %f
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,6 +1,6 @@
|
||||
" Vim Compiler File
|
||||
" Compiler: Perl syntax checks (perl -Wc)
|
||||
" Maintainer: Christian J. Robinson <heptite@gmail.com>
|
||||
" Maintainer: Christian J. Robinson <infynity@onewest.net>
|
||||
" Last Change: 2006 Aug 13
|
||||
|
||||
if exists("current_compiler")
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: PHP CLI
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jun 25
|
||||
" Compiler: PHP
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/php.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -16,11 +17,12 @@ let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=php\ -lq
|
||||
CompilerSet errorformat=%E<b>%.%#Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
|
||||
\%W<b>%.%#Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
|
||||
\%E%.%#Parse\ error:\ %m\ in\ %f\ on\ line\ %l,
|
||||
\%W%.%#Notice:\ %m\ in\ %f\ on\ line\ %l,
|
||||
\%-G%.%#
|
||||
|
||||
CompilerSet errorformat=%E<b>Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
|
||||
\%W<b>Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
|
||||
\%EParse\ error:\ %m\ in\ %f\ on\ line\ %l,
|
||||
\%WNotice:\ %m\ in\ %f</b>\ on\ line\ %l,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
" Vim compiler file
|
||||
" Language: Rake
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "rake"
|
||||
|
||||
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=rake
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%D(in\ %f),
|
||||
\%\\s%#from\ %f:%l:%m,
|
||||
\%\\s%#from\ %f:%l:,
|
||||
\%\\s%##\ %f:%l:%m,
|
||||
\%\\s%##\ %f:%l,
|
||||
\%\\s%#[%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:,
|
||||
\%m\ [%f:%l]:
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8:
|
||||
@@ -1,7 +1,9 @@
|
||||
" Vim compiler file
|
||||
" Language: RSpec
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
|
||||
" Info: $Id$
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
if exists("current_compiler")
|
||||
@@ -16,15 +18,21 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=rspec
|
||||
CompilerSet makeprg=spec
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%+W'%.%#'\ FAILED,
|
||||
\%+I'%.%#'\ FIXED,
|
||||
\%-Cexpected:%.%#,
|
||||
\%-C\ \ \ \ \ got:%.%#,
|
||||
\%E%.%#:in\ `load':\ %f:%l:%m,
|
||||
\%E%f:%l:in\ `%*[^']':\ %m,
|
||||
\%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
|
||||
\%E\ \ %\\d%\\+)%.%#,
|
||||
\%C\ \ \ \ \ %m,
|
||||
\%C%f:%l:,
|
||||
\%W%f:%l:\ warning:\ %m,
|
||||
\%E%f:%l:in\ %*[^:]:\ %m,
|
||||
\%E%f:%l:\ %m,
|
||||
\%-Z%\tfrom\ %f:%l,
|
||||
\%-Z%p^%.%#,
|
||||
\%-C%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -9,7 +9,7 @@ endif
|
||||
let current_compiler = "rst"
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
set cpo-=C
|
||||
|
||||
setlocal errorformat=
|
||||
\%f:%l:\ (%tEBUG/0)\ %m,
|
||||
|
||||
@@ -1,10 +1,33 @@
|
||||
" Vim compiler file
|
||||
" Language: Ruby
|
||||
" Function: Syntax check and/or error reporting
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Maintainer: Tim Hammerquist <timh at rubyforge.org>
|
||||
" Info: $Id$
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
" ----------------------------------------------------------------------------
|
||||
"
|
||||
" Changelog:
|
||||
" 0.2: script saves and restores 'cpoptions' value to prevent problems with
|
||||
" line continuations
|
||||
" 0.1: initial release
|
||||
"
|
||||
" Contributors:
|
||||
" Hugh Sasse <hgs@dmu.ac.uk>
|
||||
" Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
"
|
||||
" Todo:
|
||||
" match error type %m
|
||||
"
|
||||
" Comments:
|
||||
" I know this file isn't perfect. If you have any questions, suggestions,
|
||||
" patches, etc., please don't hesitate to let me know.
|
||||
"
|
||||
" This is my first experience with 'errorformat' and compiler plugins and
|
||||
" I welcome any input from more experienced (or clearer-thinking)
|
||||
" individuals.
|
||||
" ----------------------------------------------------------------------------
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
" Vim compiler file
|
||||
" Language: Test::Unit - Ruby Unit Testing Framework
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" URL: https://github.com/vim-ruby/vim-ruby
|
||||
" Info: $Id$
|
||||
" URL: http://vim-ruby.rubyforge.org
|
||||
" Anon CVS: See above site
|
||||
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
|
||||
|
||||
if exists("current_compiler")
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
let current_compiler = "sass"
|
||||
|
||||
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=sass\ -c
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||
\%ESyntax\ %trror:%m,
|
||||
\%C%\\s%\\+on\ line\ %l\ of\ %f,
|
||||
\%Z%.%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim:set sw=2 sts=2:
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: se (Liberty Eiffel Compiler)
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jun 29
|
||||
" Compiler: se (SmartEiffel Compiler)
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/se.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -15,15 +16,12 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=se\ c
|
||||
CompilerSet makeprg=compile\ %
|
||||
|
||||
CompilerSet errorformat=%W******\ Warning:\ %m,
|
||||
\%E******\ Fatal\ Error:\ %m,
|
||||
\%E******\ Error:\ %m,
|
||||
\%ZLine\ %l\ column\ %c\ in\ %.%#\ (%f)\ %\\=:,
|
||||
\%ZLine\ %l\ columns\ %c\\,\ %\\d%\\+\ %.%#\ (%f)\ %\\=:,
|
||||
\%+C%*[^\ ]%.%#,
|
||||
\%-GThe\ source\ lines\ involved,
|
||||
\%CLine\ %l\ column\ %c\ in\ %\\w%\\+\ (%f)\ :,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
||||
" Splint Home: http://www.splint.org/
|
||||
" Last Change: 2005 Apr 21
|
||||
" $Revision: 1.3 $
|
||||
" $Revision$
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: tcl
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/tcl.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
" Vim compiler file
|
||||
" Compiler: TeX
|
||||
" Maintainer: Artem Chuprina <ran@ran.pp.ru>
|
||||
" Last Change: 2012 Apr 30
|
||||
" Last Change: 2004 Mar 27
|
||||
|
||||
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>
|
||||
@@ -32,6 +30,9 @@ 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,
|
||||
@@ -63,5 +64,5 @@ CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
|
||||
\%+Q%*[^()])%r,
|
||||
\%+Q[%\\d%*[^()])%r
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
" Vim compiler file
|
||||
" Compiler: HTML Tidy
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jul 7
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/tidy.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
" NOTE: set 'tidy_compiler_040800' if you are using the 4th August 2000 release
|
||||
" of HTML Tidy.
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -12,7 +16,13 @@ if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %
|
||||
" this is needed to work around a bug in the 04/08/00 release of tidy which
|
||||
" failed to set the filename if the -quiet option was used
|
||||
if exists("tidy_compiler_040800")
|
||||
CompilerSet makeprg=tidy\ -errors\ --gnu-emacs\ yes\ %
|
||||
else
|
||||
CompilerSet makeprg=tidy\ -quiet\ -errors\ --gnu-emacs\ yes\ %
|
||||
endif
|
||||
|
||||
" sample warning: foo.html:8:1: Warning: inserting missing 'foobar' element
|
||||
" sample error: foo.html:9:2: Error: <foobar> is not recognized!
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Mono C#
|
||||
" Maintainer: Chiel ten Brinke (ctje92@gmail.com)
|
||||
" Last Change: 2013 May 13
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
endif
|
||||
|
||||
let current_compiler = "xbuild"
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
|
||||
command -nargs=* CompilerSet setlocal <args>
|
||||
endif
|
||||
|
||||
CompilerSet errorformat=\ %#%f(%l\\\,%c):\ %m
|
||||
CompilerSet makeprg=xbuild\ /nologo\ /v:q\ /property:GenerateFullPaths=true
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
@@ -1,7 +1,8 @@
|
||||
" Vim compiler file
|
||||
" Compiler: xmllint
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2013 Jul 8
|
||||
" Maintainer: Doug Kearns <djkea2@gus.gscit.monash.edu.au>
|
||||
" URL: http://gus.gscit.monash.edu.au/~djkea2/vim/compiler/xmllint.vim
|
||||
" Last Change: 2004 Nov 27
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -15,10 +16,12 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=xmllint\ --valid\ --noout
|
||||
CompilerSet makeprg=xmllint\ --valid\ --noout\
|
||||
|
||||
CompilerSet errorformat=%+E%f:%l:\ %.%#\ error\ :\ %m,
|
||||
\%+W%f:%l:\ %.%#\ warning\ :\ %m,
|
||||
CompilerSet errorformat=%E%f:%l:\ error:\ %m,
|
||||
\%W%f:%l:\ warning:\ %m,
|
||||
\%E%f:%l:\ validity\ error:\ %m,
|
||||
\%W%f:%l:\ validity\ warning:\ %m,
|
||||
\%-Z%p^,
|
||||
\%-G%.%#
|
||||
|
||||
|
||||
@@ -37,10 +37,8 @@ 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 \
|
||||
@@ -169,10 +167,8 @@ 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 \
|
||||
@@ -340,14 +336,12 @@ uganda.nsis.txt: uganda.txt
|
||||
uganda.txt | uniq >uganda.nsis.txt
|
||||
|
||||
# Awk version of .txt to .html conversion.
|
||||
html: noerrors tags $(HTMLS)
|
||||
html: noerrors tags tags.ref $(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.4. Last change: 2010 Nov 13
|
||||
*arabic.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
||||
|
||||
|
||||
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. Barring an enabled 'termbidi'
|
||||
in which users are instructed to proceed. Baring 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
|
||||
de facto standard in the Arab world):
|
||||
defacto standard in the Arab world):
|
||||
|
||||
+---------------------------------------------------------------------+
|
||||
|! |@ |# |$ |% |^ |& |* |( |) |_ |+ || |~ ّ |
|
||||
|
||||
+35
-121
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2013 Aug 04
|
||||
*autocmd.txt* For Vim version 7.2. Last change: 2008 Jun 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -33,7 +33,7 @@ files matching *.c. You can also use autocommands to implement advanced
|
||||
features, such as editing compressed files (see |gzip-example|). The usual
|
||||
place to put autocommands is in your .vimrc or .exrc file.
|
||||
|
||||
*E203* *E204* *E143* *E855*
|
||||
*E203* *E204* *E143*
|
||||
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.
|
||||
@@ -59,10 +59,10 @@ Note: The ":autocmd" command cannot be followed by another command, since any
|
||||
:au[tocmd] [group] {event} {pat} [nested] {cmd}
|
||||
Add {cmd} to the list of commands that Vim will
|
||||
execute automatically on {event} for a file matching
|
||||
{pat} |autocmd-patterns|.
|
||||
Vim always adds the {cmd} after existing autocommands,
|
||||
so that the autocommands execute in the order in which
|
||||
they were given. See |autocmd-nested| for [nested].
|
||||
{pat}. Vim always adds the {cmd} after existing
|
||||
autocommands, so that the autocommands execute in the
|
||||
order in which they were given. See |autocmd-nested|
|
||||
for [nested].
|
||||
|
||||
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
|
||||
See |autocmd-buflocal|.
|
||||
@@ -263,10 +263,8 @@ Name triggered by ~
|
||||
Startup and exit
|
||||
|VimEnter| after doing all the startup stuff
|
||||
|GUIEnter| after starting the GUI successfully
|
||||
|GUIFailed| after starting the GUI failed
|
||||
|TermResponse| after the terminal response to |t_RV| is received
|
||||
|
||||
|QuitPre| when using `:quit`, before deciding whether to quit
|
||||
|VimLeavePre| before exiting Vim, before writing the viminfo file
|
||||
|VimLeave| before exiting Vim, after writing the viminfo file
|
||||
|
||||
@@ -301,8 +299,6 @@ 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
|
||||
|
||||
@@ -314,7 +310,6 @@ Name triggered by ~
|
||||
|SessionLoadPost| after loading a session file
|
||||
|
||||
|MenuPopup| just before showing the popup menu
|
||||
|CompleteDone| after Insert mode completion is done
|
||||
|
||||
|User| to be used in combination with ":doautocmd"
|
||||
|
||||
@@ -340,8 +335,6 @@ BufDelete Before deleting a buffer from the buffer list.
|
||||
NOTE: When this autocommand is executed, the
|
||||
current buffer "%" may be different from the
|
||||
buffer being deleted "<afile>" and "<abuf>".
|
||||
Don't change to another buffer, it will cause
|
||||
problems.
|
||||
*BufEnter*
|
||||
BufEnter After entering a buffer. Useful for setting
|
||||
options for a file type. Also executed when
|
||||
@@ -388,10 +381,6 @@ 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|
|
||||
@@ -408,10 +397,6 @@ BufUnload Before unloading a buffer. This is when the
|
||||
NOTE: When this autocommand is executed, the
|
||||
current buffer "%" may be different from the
|
||||
buffer being unloaded "<afile>".
|
||||
Don't change to another buffer, it will cause
|
||||
problems.
|
||||
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
|
||||
@@ -433,8 +418,6 @@ 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
|
||||
@@ -445,8 +428,6 @@ BufWipeout Before completely deleting a buffer. The
|
||||
NOTE: When this autocommand is executed, the
|
||||
current buffer "%" may be different from the
|
||||
buffer being deleted "<afile>".
|
||||
Don't change to another buffer, it will cause
|
||||
problems.
|
||||
*BufWrite* *BufWritePre*
|
||||
BufWrite or BufWritePre Before writing the whole buffer to a file.
|
||||
*BufWriteCmd*
|
||||
@@ -455,9 +436,6 @@ 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
|
||||
@@ -481,11 +459,6 @@ 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
|
||||
@@ -513,18 +486,16 @@ CursorHold When the user doesn't press a key for the time
|
||||
CursorHoldI Just like CursorHold, but in Insert mode.
|
||||
|
||||
*CursorMoved*
|
||||
CursorMoved After the cursor was moved in Normal or Visual
|
||||
mode. Also when the text of the cursor line
|
||||
has been changed, e.g., with "x", "rx" or "p".
|
||||
CursorMoved After the cursor was moved in Normal mode.
|
||||
Also when the text of the cursor line has been
|
||||
changed, e.g., with "x", "rx" or "p".
|
||||
Not triggered when there is typeahead or when
|
||||
an operator is pending.
|
||||
For an example see |match-parens|.
|
||||
Careful: This is triggered very often, don't
|
||||
do anything that the user does not expect or
|
||||
that is slow.
|
||||
Careful: Don't do anything that the user does
|
||||
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
|
||||
@@ -574,7 +545,7 @@ FileChangedShell When Vim notices that the modification time of
|
||||
buffer that was changed "<afile>".
|
||||
NOTE: The commands must not change the current
|
||||
buffer, jump to another buffer or delete a
|
||||
buffer. *E246* *E811*
|
||||
buffer. *E246*
|
||||
NOTE: This event never nests, to avoid an
|
||||
endless loop. This means that while executing
|
||||
commands for the FileChangedShell event no
|
||||
@@ -676,26 +647,12 @@ 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
|
||||
|v:insertmode| variable indicates the mode.
|
||||
Be careful not to do anything else that the
|
||||
user does not expect.
|
||||
The cursor is restored afterwards. If you do
|
||||
not want that set |v:char| to a non-empty
|
||||
string.
|
||||
Be careful not to move the cursor or do
|
||||
anything else that the user does not expect.
|
||||
*InsertLeave*
|
||||
InsertLeave When leaving Insert mode. Also when using
|
||||
CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.
|
||||
@@ -715,13 +672,10 @@ 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|, |: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".
|
||||
|: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".
|
||||
This command cannot be used to set the
|
||||
'makeprg' and 'grepprg' variables.
|
||||
If this command causes an error, the quickfix
|
||||
@@ -729,16 +683,7 @@ 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. 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`, `:wq` or `:qall`, 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.
|
||||
location. See |QuickFixCmdPost-example|.
|
||||
*RemoteReply*
|
||||
RemoteReply When a reply from a Vim that functions as
|
||||
server was received |server2client()|. The
|
||||
@@ -803,10 +748,8 @@ SwapExists Detected an existing swap file when starting
|
||||
'a' abort, like hitting CTRL-C
|
||||
When set to an empty string the user will be
|
||||
asked, as if there was no SwapExists autocmd.
|
||||
*E812*
|
||||
It is not allowed to change to another buffer,
|
||||
change a buffer name or change directory
|
||||
here.
|
||||
Note: Do not try to change the buffer, the
|
||||
results are unpredictable.
|
||||
*Syntax*
|
||||
Syntax When the 'syntax' option has been set. The
|
||||
pattern is matched against the syntax name.
|
||||
@@ -831,31 +774,13 @@ 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. 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.
|
||||
*TextChanged*
|
||||
TextChanged After a change was made to the text in the
|
||||
current buffer in Normal mode. That is when
|
||||
|b:changedtick| has changed.
|
||||
Not triggered when there is typeahead or when
|
||||
an operator is pending.
|
||||
Careful: This is triggered very often, don't
|
||||
do anything that the user does not expect or
|
||||
that is slow.
|
||||
*TextChangedI*
|
||||
TextChangedI After a change was made to the text in the
|
||||
current buffer in Insert mode.
|
||||
Not triggered when the popup menu is visible.
|
||||
Otherwise the same as TextChanged.
|
||||
terminal version.
|
||||
*User*
|
||||
User Never executed automatically. To be used for
|
||||
autocommands that are only executed with
|
||||
":doautocmd".
|
||||
*UserGettingBored*
|
||||
UserGettingBored When the user presses the same key 42 times.
|
||||
Just kidding! :-)
|
||||
UserGettingBored When the user hits CTRL-C. Just kidding! :-)
|
||||
*VimEnter*
|
||||
VimEnter After doing all the startup stuff, including
|
||||
loading .vimrc files, executing the "-c cmd"
|
||||
@@ -866,8 +791,6 @@ 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,
|
||||
@@ -876,8 +799,6 @@ 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
|
||||
@@ -906,9 +827,9 @@ The file pattern {pat} is tested for a match against the file name in one of
|
||||
two ways:
|
||||
1. When there is no '/' in the pattern, Vim checks for a match against only
|
||||
the tail part of the file name (without its leading directory path).
|
||||
2. When there is a '/' in the pattern, Vim checks for a match against both the
|
||||
short file name (as you typed it) and the full file name (after expanding
|
||||
it to a full path and resolving symbolic links).
|
||||
2. When there is a '/' in the pattern, Vim checks for a match against the
|
||||
both short file name (as you typed it) and the full file name (after
|
||||
expanding it to a full path and resolving symbolic links).
|
||||
|
||||
The special pattern <buffer> or <buffer=N> is used for buffer-local
|
||||
autocommands |autocmd-buflocal|. This pattern is not matched against the name
|
||||
@@ -952,8 +873,7 @@ the autocommand is executed. This is different from the command!
|
||||
|
||||
*file-pattern*
|
||||
The pattern is interpreted like mostly used in file names:
|
||||
* matches any sequence of characters; Unusual: includes path
|
||||
separators
|
||||
* matches any sequence of characters
|
||||
? matches any single character
|
||||
\? matches a '?'
|
||||
. matches a '.'
|
||||
@@ -962,9 +882,6 @@ The pattern is interpreted like mostly used in file names:
|
||||
\, matches a ','
|
||||
{ } like \( \) in a |pattern|
|
||||
, inside { }: like \| in a |pattern|
|
||||
\} literal }
|
||||
\{ literal {
|
||||
\\\{n,m\} like \{n,m} in a |pattern|
|
||||
\ special meaning like in a |pattern|
|
||||
[ch] matches 'c' or 'h'
|
||||
[^ch] match any character but 'c' and 'h'
|
||||
@@ -1099,7 +1016,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] [<nomodeline>] [group] {event} [fname]
|
||||
:do[autocmd] [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
|
||||
@@ -1108,8 +1025,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|.
|
||||
|
||||
@@ -1118,19 +1035,16 @@ 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. 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|.
|
||||
editing a file.
|
||||
|
||||
*:doautoa* *:doautoall*
|
||||
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
|
||||
:doautoa[ll] [group] {event} [fname]
|
||||
Like ":doautocmd", but apply the autocommands to each
|
||||
loaded buffer. Note that [fname] is used to select
|
||||
loaded buffer. Note that {fname} is used to select
|
||||
the autocommands, not the buffers to which they are
|
||||
applied.
|
||||
Careful: Don't use this for autocommands that delete a
|
||||
@@ -1350,7 +1264,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/netrwPlugin.vim for examples.
|
||||
See the $VIMRUNTIME/plugin/netrw.vim for examples.
|
||||
|
||||
==============================================================================
|
||||
11. Disabling autocommands *autocmd-disable*
|
||||
|
||||
+78
-170
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.4. Last change: 2013 Jul 17
|
||||
*change.txt* For Vim version 7.2. Last change: 2008 Jul 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -71,37 +71,24 @@ 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* *:dl* *:dp*
|
||||
*:d* *:de* *:del* *:delete*
|
||||
:[range]d[elete] [x] Delete [range] lines (default: current line) [into
|
||||
register x].
|
||||
Note these weird abbreviations:
|
||||
:dl delete and list
|
||||
:dell idem
|
||||
:delel idem
|
||||
:deletl idem
|
||||
:deletel idem
|
||||
:dp delete and print
|
||||
:dep idem
|
||||
:delp idem
|
||||
:delep idem
|
||||
:deletp idem
|
||||
:deletep idem
|
||||
|
||||
:[range]d[elete] [x] {count}
|
||||
Delete {count} lines, starting with [range]
|
||||
(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. Use the |o_v| operator to force the motion to be
|
||||
characterwise.
|
||||
might expect to remain.
|
||||
|
||||
Trying to delete an empty region of text (e.g., "d0" in the first column)
|
||||
is an error when 'cpoptions' includes the 'E' flag.
|
||||
@@ -144,7 +131,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
|
||||
@@ -172,7 +159,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*
|
||||
@@ -272,12 +259,6 @@ 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
|
||||
@@ -298,7 +279,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*
|
||||
@@ -483,9 +464,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
|
||||
@@ -505,7 +486,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
|
||||
@@ -525,9 +506,9 @@ comment (starting with '"') after the `:!` command.
|
||||
{filter}. Vim replaces the optional bangs with the
|
||||
latest given command and appends the optional [arg].
|
||||
Vim saves the output of the filter command in a
|
||||
temporary file and then reads the file into the buffer
|
||||
|tempfile|. Vim uses the 'shellredir' option to
|
||||
redirect the filter output to the temporary file.
|
||||
temporary file and then reads the file into the
|
||||
buffer. Vim uses the 'shellredir' option to redirect
|
||||
the filter output to the temporary file.
|
||||
However, if the 'shelltemp' option is off then pipes
|
||||
are used when possible (on Unix).
|
||||
When the 'R' flag is included in 'cpoptions' marks in
|
||||
@@ -541,11 +522,9 @@ 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| 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.
|
||||
internal formatting function |C-indenting|. But when
|
||||
'indentexpr' is not empty, it will be used instead
|
||||
|indent-expression|.
|
||||
|
||||
*==*
|
||||
== Filter [count] lines like with ={motion}.
|
||||
@@ -555,22 +534,6 @@ comment (starting with '"') after the `:!` command.
|
||||
{not in Vi}
|
||||
|
||||
|
||||
*tempfile* *setuid*
|
||||
Vim uses temporary files for filtering, generating diffs and also for
|
||||
tempname(). For Unix, the file will be in a private directory (only
|
||||
accessible by the current user) to avoid security problems (e.g., a symlink
|
||||
attack or other people reading your file). When Vim exits the directory and
|
||||
all files in it are deleted. When Vim has the setuid bit set this may cause
|
||||
problems, the temp file is owned by the setuid user but the filter command
|
||||
probably runs as the original user.
|
||||
On MS-DOS and OS/2 the first of these directories that works is used: $TMP,
|
||||
$TEMP, c:\TMP, c:\TEMP.
|
||||
For Unix the list of directories is: $TMPDIR, /tmp, current-dir, $HOME.
|
||||
For MS-Windows the GetTempFileName() system function is used.
|
||||
For other systems the tmpnam() library function is used.
|
||||
|
||||
|
||||
|
||||
4.2 Substitute *:substitute*
|
||||
*:s* *:su*
|
||||
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
|
||||
@@ -592,37 +555,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 with
|
||||
last search pattern on all lines with the same flags).
|
||||
For example, when you first do a substitution with
|
||||
`:s/pattern/repl/flags` and then `/search` for
|
||||
something else, `g&` will do `:%s/search/repl/flags`.
|
||||
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*
|
||||
@@ -632,7 +592,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
|
||||
@@ -644,9 +604,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.
|
||||
@@ -681,8 +641,6 @@ The flags that you can use for the substitute commands:
|
||||
[n] Report the number of matches, do not actually substitute. The [c]
|
||||
flag is ignored. The matches are reported as if 'report' is zero.
|
||||
Useful to |count-items|.
|
||||
If \= |sub-replace-expression| is used, the expression will be
|
||||
evaluated in the |sandbox| at every match.
|
||||
|
||||
[p] Print the line containing the last substitute.
|
||||
|
||||
@@ -690,14 +648,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
|
||||
@@ -714,9 +672,8 @@ reason is that the flags can only be found by skipping the pattern, and in
|
||||
order to skip the pattern the "magicness" must be known. Catch 22!
|
||||
|
||||
If the {pattern} for the substitute command is empty, the command uses the
|
||||
pattern from the last substitute or `:global` command. If there is none, but
|
||||
there is a previous search pattern, that one is used. With the [r] flag, the
|
||||
command uses the pattern from the last substitute, `:global`, or search
|
||||
pattern from the last substitute or ":global" command. 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
|
||||
@@ -741,13 +698,11 @@ 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 complex replacement or special
|
||||
characters.
|
||||
|
||||
|sub-replace-expression|. You can use that for any 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, see |cpo-/|
|
||||
then the {string} of the previous substitute command is used. |cpo-/|
|
||||
|
||||
magic nomagic action ~
|
||||
& \& replaced with the whole matched pattern *s/\&*
|
||||
@@ -782,25 +737,12 @@ 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"
|
||||
:s/abcde/abc^Mde/ modifies "abcde" to "abc", "de" (two lines)
|
||||
:s/$/\^M/ modifies "abcde" to "abcde^M"
|
||||
:s/\w\+/\u\0/g modifies "bla bla" to "Bla Bla"
|
||||
:s/\w\+/\L\u/g modifies "BLA bla" to "Bla Bla"
|
||||
|
||||
Note: "\L\u" can be used to capitalize the first letter of a word. This is
|
||||
not compatible with Vi and older versions of Vim, where the "\u" would cancel
|
||||
out the "\L". Same for "\U\l".
|
||||
|
||||
Note: In previous versions CTRL-V was handled in a special way. Since this is
|
||||
not Vi compatible, this was removed. Use a backslash instead.
|
||||
@@ -826,19 +768,17 @@ 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>". 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).
|
||||
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.
|
||||
|
||||
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.
|
||||
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).
|
||||
|
||||
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
|
||||
@@ -866,17 +806,17 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
|
||||
:promptf[ind] [string]
|
||||
Put up a Search dialog. When [string] is given, it is
|
||||
used as the initial search string.
|
||||
{only for Win32, Motif and GTK GUI}
|
||||
{only for Win32, Motif, GTK and MacVim GUI}
|
||||
|
||||
*:promptr* *:promptrepl*
|
||||
:promptr[epl] [string]
|
||||
Put up a Search/Replace dialog. When [string] is
|
||||
given, it is used as the initial search string.
|
||||
{only for Win32, Motif and GTK GUI}
|
||||
{only for Win32, Motif, GTK and MacVim GUI}
|
||||
|
||||
|
||||
4.4 Changing tabs *change-tabs*
|
||||
*:ret* *:retab* *:retab!*
|
||||
*:ret* *:retab*
|
||||
:[range]ret[ab][!] [new_tabstop]
|
||||
Replace all sequences of white-space containing a
|
||||
<Tab> with new strings of white-space using the new
|
||||
@@ -895,7 +835,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
|
||||
@@ -921,10 +861,7 @@ inside of strings can change! Also see 'softtabstop' option. >
|
||||
|
||||
*:reg* *:registers*
|
||||
:reg[isters] Display the contents of all numbered and named
|
||||
registers. If a register is written to for |:redir|
|
||||
it will not be listed.
|
||||
{not in Vi}
|
||||
|
||||
registers. {not in Vi}
|
||||
|
||||
:reg[isters] {arg} Display the contents of the numbered and named
|
||||
registers that are mentioned in {arg}. For example: >
|
||||
@@ -958,10 +895,8 @@ 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* *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.
|
||||
*:y* *:yank*
|
||||
:[range]y[ank] [x] Yank [range] lines [into register x].
|
||||
|
||||
:[range]y[ank] [x] {count}
|
||||
Yank {count} lines, starting with last line number
|
||||
@@ -1005,12 +940,8 @@ 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.
|
||||
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 cursor is left on the first non-blank in the last
|
||||
new line.
|
||||
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 '"'
|
||||
@@ -1063,11 +994,6 @@ register. With blockwise selection it also depends on the size of the block
|
||||
and whether the corners are on an existing character. (Implementation detail:
|
||||
it actually works by first putting the register after the selection and then
|
||||
deleting the selection.)
|
||||
The previously selected text is put in the unnamed register. If you want to
|
||||
put the same text into a Visual selection several times you need to use
|
||||
another register. E.g., yank the text to copy, Visually select the text to
|
||||
replace and use "0p . You can repeat this as many times as you like, the
|
||||
unnamed register will be changed each time.
|
||||
|
||||
*blockwise-register*
|
||||
If you use a blockwise Visual mode command to get the text into the register,
|
||||
@@ -1105,10 +1031,8 @@ There are nine types of registers: *registers* *E354*
|
||||
Vim fills this register with text deleted with the "d", "c", "s", "x" commands
|
||||
or copied with the yank "y" command, regardless of whether or not a specific
|
||||
register was used (e.g. "xdd). This is like the unnamed register is pointing
|
||||
to the last used register. Thus when appending using an uppercase register
|
||||
name, the unnamed register contains the same text as the named register.
|
||||
An exception is the '_' register: "_dd does not store the deleted text in any
|
||||
register.
|
||||
to the last used register. An exception is the '_' register: "_dd does not
|
||||
store the deleted text in any register.
|
||||
Vim uses the contents of the unnamed register for any put command (p or P)
|
||||
which does not specify a register. Additionally you can access it with the
|
||||
name '"'. This means you have to type two double quotes. Writing to the ""
|
||||
@@ -1174,20 +1098,15 @@ normal command-line editing commands are available, including a special
|
||||
history for expressions. When you end the command-line by typing <CR>, Vim
|
||||
computes the result of the expression. If you end it with <Esc>, Vim abandons
|
||||
the expression. If you do not enter an expression, Vim uses the previous
|
||||
expression (like with the "/" command).
|
||||
|
||||
The expression must evaluate to a String. A Number is always automatically
|
||||
converted to a String. For the "p" and ":put" command, if the result is a
|
||||
Float it's converted into a String. If the result is a List each element is
|
||||
turned into a String and used as a line. A Dictionary or FuncRef results in
|
||||
an error message (use string() to convert).
|
||||
|
||||
If the "= register is used for the "p" command, the String is split up at <NL>
|
||||
characters. If the String ends in a <NL>, it is regarded as a linewise
|
||||
expression (like with the "/" command). The expression must evaluate to a
|
||||
string. If the result is a number it's turned into a string. A List,
|
||||
Dictionary or FuncRef results in an error message (use string() to convert).
|
||||
If the "= register is used for the "p" command, the string is split up at <NL>
|
||||
characters. If the string ends in a <NL>, it is regarded as a linewise
|
||||
register. {not in Vi}
|
||||
|
||||
7. Selection and drop registers "*, "+ and "~
|
||||
Use these registers for storing and retrieving the selected text for the GUI.
|
||||
Use these register 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}
|
||||
@@ -1215,7 +1134,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
|
||||
@@ -1223,12 +1142,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 '"').
|
||||
|
||||
@@ -1293,8 +1212,7 @@ gq{motion} Format the lines that {motion} moves over.
|
||||
:nnoremap Q gq
|
||||
|
||||
gqgq *gqgq* *gqq*
|
||||
gqq Format the current line. With a count format that
|
||||
many lines. {not in Vi}
|
||||
gqq Format the current line. {not in Vi}
|
||||
|
||||
*v_gq*
|
||||
{Visual}gq Format the highlighted text. (for {Visual} see
|
||||
@@ -1435,19 +1353,16 @@ 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: >
|
||||
:set comments=sr:/***,m:**,ex-2:******/
|
||||
<
|
||||
/*** ~
|
||||
**<--right aligned from "r" flag ~
|
||||
** ~
|
||||
offset 2 spaces for the "-2" flag--->** ~
|
||||
******/ ~
|
||||
(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--->**
|
||||
******/
|
||||
In this case, the first comment was typed, then return was pressed 4 times,
|
||||
then "/" was pressed to end the comment.
|
||||
|
||||
@@ -1465,8 +1380,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' has the ability to work better with
|
||||
three piece comments.
|
||||
indent alignments. However, 'indentexpr' is has the ability to work better
|
||||
with three piece comments.
|
||||
|
||||
Other examples: >
|
||||
"b:*" Includes lines starting with "*", but not if the "*" is
|
||||
@@ -1524,7 +1439,6 @@ 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
|
||||
@@ -1545,12 +1459,6 @@ 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:
|
||||
@@ -1594,7 +1502,7 @@ Some examples:
|
||||
:set fo=tcrq
|
||||
<
|
||||
|
||||
Automatic formatting *auto-format* *autoformat*
|
||||
Automatic formatting *auto-format*
|
||||
|
||||
When the 'a' flag is present in 'formatoptions' text is formatted
|
||||
automatically when inserting text or deleting text. This works nice for
|
||||
@@ -1703,7 +1611,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
|
||||
|
||||
+55
-79
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2013 Mar 16
|
||||
*cmdline.txt* For Vim version 7.2. Last change: 2008 Sep 18
|
||||
|
||||
|
||||
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>* *c_Home*
|
||||
CTRL-B or <Home> *c_CTRL-B* *c_<Home>*
|
||||
cursor to beginning of command-line
|
||||
CTRL-E or <End> *c_CTRL-E* *c_<End>* *c_End*
|
||||
CTRL-E or <End> *c_CTRL-E* *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* *c_BS*
|
||||
CTRL-H *c_<BS>* *c_CTRL-H*
|
||||
<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,9 @@ 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*
|
||||
Note: if the command-line becomes empty with one of the
|
||||
delete commands, Command-line mode is quit.
|
||||
*c_<Insert>*
|
||||
<Insert> Toggle between insert and overstrike. {not in Vi}
|
||||
|
||||
{char1} <BS> {char2} or *c_digraph*
|
||||
@@ -182,7 +184,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>*
|
||||
@@ -217,16 +219,16 @@ CTRL-\ e {expr} *c_CTRL-\_e*
|
||||
:return cmd
|
||||
:endfunc
|
||||
< This doesn't work recursively, thus not when already editing
|
||||
an expression. But it is possible to use in a mapping.
|
||||
an expression.
|
||||
|
||||
*c_CTRL-Y*
|
||||
CTRL-Y When there is a modeless selection, copy the selection into
|
||||
the clipboard. |modeless-selection|
|
||||
If there is no selection CTRL-Y is inserted as a character.
|
||||
|
||||
CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR*
|
||||
CTRL-J *c_CTRL-J* *c_<NL>* *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 +237,12 @@ CTRL-J *c_CTRL-J* *c_<NL>* *c_<CR>* *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 +332,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 / 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 / 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 +374,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 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.
|
||||
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.
|
||||
|
||||
These are the commands that can be used:
|
||||
|
||||
@@ -416,17 +418,11 @@ 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. If
|
||||
'ignorecase' and 'smartcase' are set and the command line has
|
||||
no uppercase characters, the added character is converted to
|
||||
lowercase.
|
||||
one character from the end of the current match.
|
||||
|
||||
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 when matching file names. '*' matches any string, '?'
|
||||
matches exactly one character.
|
||||
|
||||
The 'wildignorecase' option can be set to ignore case in filenames.
|
||||
'?' are accepted. '*' matches any string, '?' matches exactly one character.
|
||||
|
||||
If you like tcsh's autolist completion, you can use this mapping:
|
||||
:cnoremap X <C-L><C-D>
|
||||
@@ -445,20 +441,13 @@ between files with almost the same name. If there are multiple matches,
|
||||
those files with an extension that is in the 'suffixes' option are ignored.
|
||||
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
|
||||
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.
|
||||
|
||||
An empty entry, two consecutive commas, match a file name that does not
|
||||
contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer
|
||||
"prog.c".
|
||||
|
||||
Examples:
|
||||
It is impossible to ignore suffixes with two dots. Examples:
|
||||
|
||||
pattern: files: match: ~
|
||||
test* test.c test.h test.o test.c
|
||||
test* test.h test.o test.h and test.o
|
||||
test* test.i test.h test.c test.i and test.c
|
||||
|
||||
It is impossible to ignore suffixes with two dots.
|
||||
|
||||
If there is more than one matching file (after ignoring the ones matching
|
||||
the 'suffixes' option) the first file name is inserted. You can see that
|
||||
there is only one match when you type 'wildchar' twice and the completed
|
||||
@@ -489,14 +478,14 @@ And this in your .vimrc: >
|
||||
|
||||
The Ex commands have a few specialties:
|
||||
|
||||
*:quote* *:comment*
|
||||
*:quote*
|
||||
'"' at the start of a line causes the whole line to be ignored. '"'
|
||||
after a command causes the rest of the line to be ignored. This can be used
|
||||
to add comments. Example: >
|
||||
:set ai "set 'autoindent' option
|
||||
It is not possible to add a comment to a shell command ":!cmd" or to the
|
||||
":map" command and a few others, because they see the '"' as part of their
|
||||
argument. This is mentioned where the command is explained.
|
||||
":map" command and friends, because they see the '"' as part of their
|
||||
argument.
|
||||
|
||||
*:bar* *:\bar*
|
||||
'|' can be used to separate commands, so you can give multiple commands in one
|
||||
@@ -528,7 +517,6 @@ followed by another Vim command:
|
||||
:registers
|
||||
:read !
|
||||
:scscope
|
||||
:sign
|
||||
:tcl
|
||||
:tcldo
|
||||
:tclfile
|
||||
@@ -714,15 +702,10 @@ three lines: >
|
||||
Visual Mode and Range *v_:*
|
||||
|
||||
{Visual}: Starts a command-line with the Visual selected lines as a
|
||||
range. The code `:'<,'>` is used for this range, which makes
|
||||
range. The code ":'<,'>" is used for this range, which makes
|
||||
it possible to select a similar line from the command-line
|
||||
history for repeating a command on different Visually selected
|
||||
lines.
|
||||
When Visual mode was already ended, a short way to use the
|
||||
Visual area for a range is `:*`. This requires that "*" does
|
||||
not appear in 'cpo', see |cpo-star|. Otherwise you will have
|
||||
to type `:'<,'>`
|
||||
|
||||
|
||||
==============================================================================
|
||||
5. Ex command-line flags *ex-flags*
|
||||
@@ -754,15 +737,15 @@ characters have a special meaning. These can also be used in the expression
|
||||
function expand() |expand()|.
|
||||
% Is replaced with the current file name. *:_%* *c_%*
|
||||
# Is replaced with the alternate file name. *:_#* *c_#*
|
||||
#n (where n is a number) is replaced with *:_#0* *:_#n*
|
||||
the file name of buffer n. "#0" is the same as "#". *c_#n*
|
||||
#n (where n is a number) is replaced with the file name of
|
||||
buffer n. "#0" is the same as "#".
|
||||
## Is replaced with all names in the argument list *:_##* *c_##*
|
||||
concatenated, separated by spaces. Each space in a name
|
||||
is preceded with a backslash.
|
||||
#<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),
|
||||
@@ -789,38 +772,33 @@ it, no matter how many backslashes.
|
||||
*:<cword>* *:<cWORD>* *:<cfile>* *<cfile>*
|
||||
*:<sfile>* *<sfile>* *:<afile>* *<afile>*
|
||||
*:<abuf>* *<abuf>* *:<amatch>* *<amatch>*
|
||||
*<slnum>* *E495* *E496* *E497* *E499* *E500*
|
||||
*E495* *E496* *E497* *E498* *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. *E498*
|
||||
When executing a function, is replaced with
|
||||
<sfile> when executing a ":source" command, is replaced with the
|
||||
file name of the sourced file;
|
||||
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|
|
||||
@@ -831,11 +809,10 @@ 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. On MS-Windows an 8.3 filename is expanded to
|
||||
the long name.
|
||||
unpredictable.
|
||||
:8 Converts the path to 8.3 short format (currently only on
|
||||
MS-Windows). Will act on as much of a path that is an
|
||||
existing path.
|
||||
win32). 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.
|
||||
@@ -873,7 +850,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 "pat" with "sub". Otherwise
|
||||
Substitute all occurrences of "path" with "sub". Otherwise
|
||||
this works like ":s".
|
||||
|
||||
Examples, when the file name is "src/version.c", current dir
|
||||
@@ -964,8 +941,8 @@ for the file "$home" in the root directory. A few examples:
|
||||
\\$home file "\\", followed by expanded $home
|
||||
|
||||
==============================================================================
|
||||
7. Command-line window *cmdline-window* *cmdwin*
|
||||
*command-line-window*
|
||||
6. Command-line window *cmdline-window* *cmdwin*
|
||||
|
||||
In the command-line window the command line can be edited just like editing
|
||||
text in any window. It is a special kind of window, because you cannot leave
|
||||
it in a normal way.
|
||||
@@ -973,12 +950,12 @@ it in a normal way.
|
||||
feature}
|
||||
|
||||
|
||||
OPEN *c_CTRL-F* *q:* *q/* *q?*
|
||||
OPEN
|
||||
|
||||
There are two ways to open the command-line window:
|
||||
1. From Command-line mode, use the key specified with the 'cedit' option.
|
||||
The default is CTRL-F when 'compatible' is not set.
|
||||
2. From Normal mode, use the "q:", "q/" or "q?" command.
|
||||
2. From Normal mode, use the "q:", "q/" or "q?" command. *q:* *q/* *q?*
|
||||
This starts editing an Ex command-line ("q:") or search string ("q/" or
|
||||
"q?"). Note that this is not possible while recording is in progress (the
|
||||
"q" stops recording then).
|
||||
@@ -1008,8 +985,7 @@ nesting.
|
||||
The command-line window is not a normal window. It is not possible to move to
|
||||
another window or edit another buffer. All commands that would do this are
|
||||
disabled in the command-line window. Of course it _is_ possible to execute
|
||||
any command that you entered in the command-line window. Other text edits are
|
||||
discarded when closing the window.
|
||||
any command that you entered in the command-line window.
|
||||
|
||||
|
||||
CLOSE *E199*
|
||||
@@ -1044,8 +1020,8 @@ 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
|
||||
- for entering a encryption key or when using inputsecret()
|
||||
- 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
|
||||
|
||||
+11
-35
@@ -1,4 +1,4 @@
|
||||
*debug.txt* For Vim version 7.4. Last change: 2012 Feb 11
|
||||
*debug.txt* For Vim version 7.2. Last change: 2006 May 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -10,20 +10,18 @@ This is for debugging Vim itself, when it doesn't work properly.
|
||||
For debugging Vim scripts, functions, etc. see |debug-scripts|
|
||||
|
||||
1. Location of a crash, using gcc and gdb |debug-gcc|
|
||||
2. Locating memory leaks |debug-leaks|
|
||||
3. Windows Bug Reporting |debug-win32|
|
||||
2. Windows Bug Reporting |debug-win32|
|
||||
|
||||
==============================================================================
|
||||
|
||||
1. Location of a crash, using gcc and gdb *debug-gcc* *gdb*
|
||||
1. Location of a crash, using gcc and gdb *debug-gcc*
|
||||
|
||||
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 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").
|
||||
1. Compile Vim with the "-g" option (there is a line in the Makefile for this,
|
||||
which you can uncomment).
|
||||
|
||||
2. Execute these commands (replace "11" with the test that fails): >
|
||||
cd testdir
|
||||
@@ -40,35 +38,13 @@ This also applies when using the MingW tools.
|
||||
|
||||
==============================================================================
|
||||
|
||||
2. Locating memory leaks *debug-leaks* *valgrind*
|
||||
|
||||
If you suspect Vim is leaking memory and you are using Linux, the valgrind
|
||||
tool is very useful to pinpoint memory leaks.
|
||||
|
||||
First of all, build Vim with EXITFREE defined. Search for this in MAKEFILE
|
||||
and uncomment the line.
|
||||
|
||||
Use this command to start Vim:
|
||||
>
|
||||
valgrind --log-file=valgrind.log --leak-check=full ./vim
|
||||
|
||||
Note: Vim will run much slower. If your .vimrc is big or you have several
|
||||
plugins you need to be patient for startup, or run with the "-u NONE"
|
||||
argument.
|
||||
|
||||
There are often a few leaks from libraries, such as getpwuid() and
|
||||
XtVaAppCreateShell(). Those are unavoidable. The number of bytes should be
|
||||
very small a Kbyte or less.
|
||||
|
||||
==============================================================================
|
||||
|
||||
3. Windows Bug Reporting *debug-win32*
|
||||
2. Windows Bug Reporting *debug-win32*
|
||||
|
||||
If the Windows version of Vim crashes in a reproducible manner, you can take
|
||||
some steps to provide a useful bug report.
|
||||
|
||||
|
||||
3.1 GENERIC ~
|
||||
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
|
||||
@@ -90,7 +66,7 @@ a Vim executable compiled with the Borland compiler; gdb (see above
|
||||
|
||||
|
||||
*debug-vs2005*
|
||||
3.2 Debugging Vim crashes with Visual Studio 2005/Visual C++ 2005 Express ~
|
||||
2.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
|
||||
@@ -124,7 +100,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*
|
||||
3.3 Debugging Vim crashes with WinDbg ~
|
||||
2.3 Debugging Vim crashes with WinDbg ~
|
||||
|
||||
See |get-ms-debuggers| to obtain a copy of WinDbg.
|
||||
|
||||
@@ -150,7 +126,7 @@ To save a minidump, type the following at the WinDbg command line: >
|
||||
.dump vim.dmp
|
||||
<
|
||||
*debug-minidump*
|
||||
3.4 Opening a Minidump ~
|
||||
2.4 Opening a Minidump ~
|
||||
|
||||
If you have a minidump file, you can open it in Visual Studio or in WinDbg.
|
||||
|
||||
@@ -162,7 +138,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*
|
||||
3.5 Obtaining Microsoft Debugging Tools ~
|
||||
2.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.4. Last change: 2005 Mar 29
|
||||
*debugger.txt* For Vim version 7.2. Last change: 2005 Mar 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
|
||||
+3
-15
@@ -1,4 +1,4 @@
|
||||
*develop.txt* For Vim version 7.4. Last change: 2013 Apr 27
|
||||
*develop.txt* For Vim version 7.2. Last change: 2007 May 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -20,7 +20,6 @@ code.
|
||||
Vim is open source software. Everybody is encouraged to contribute to help
|
||||
improving Vim. For sending patches a context diff "diff -c" is preferred.
|
||||
Also see http://www.vim.org/tips/tip.php?tip_id=618.
|
||||
Also see http://vim.wikia.com/wiki/How_to_make_and_submit_a_patch.
|
||||
|
||||
==============================================================================
|
||||
1. Design goals *design-goals*
|
||||
@@ -65,7 +64,7 @@ completely different editor. Extensions are done with a "Vi spirit".
|
||||
hard time finding and remembering them. Keep in mind that more commands and
|
||||
options will be added later.
|
||||
- A feature that people do not know about is a useless feature. Don't add
|
||||
obscure features, or at least add hints in documentation that they exist.
|
||||
obscure features, or at least add hints in documentation that they exists.
|
||||
- Minimize using CTRL and other modifiers, they are more difficult to type.
|
||||
- There are many first-time and inexperienced Vim users. Make it easy for
|
||||
them to start using Vim and learn more over time.
|
||||
@@ -233,17 +232,6 @@ 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
|
||||
@@ -335,7 +323,7 @@ Wrong: var=a*5;
|
||||
OK: var = a * 5;
|
||||
|
||||
In general: Use empty lines to group lines of code together. Put a comment
|
||||
just above the group of lines. This makes it easier to quickly see what is
|
||||
just above the group of lines. This makes it more easy to quickly see what is
|
||||
being done.
|
||||
|
||||
OK: /* Prepare for building the table. */
|
||||
|
||||
+22
-34
@@ -1,11 +1,11 @@
|
||||
*diff.txt* For Vim version 7.4. Last change: 2013 Jul 07
|
||||
*diff.txt* For Vim version 7.2. Last change: 2008 Jul 21
|
||||
|
||||
|
||||
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,7 +57,6 @@ In each of the edited files these options are set:
|
||||
|
||||
'diff' on
|
||||
'scrollbind' on
|
||||
'cursorbind' on
|
||||
'scrollopt' includes "hor"
|
||||
'wrap' off
|
||||
'foldmethod' "diff"
|
||||
@@ -65,9 +64,6 @@ In each of the edited files these options are set:
|
||||
|
||||
These options are set local to the window. When editing another file they are
|
||||
reset to the global value.
|
||||
The options can still be overruled from a modeline when re-editing the file.
|
||||
However, 'foldmethod' and 'wrap' won't be set from a modeline when 'diff' is
|
||||
set.
|
||||
|
||||
The differences shown are actually the differences in the buffer. Thus if you
|
||||
make changes after loading a file, these will be included in the displayed
|
||||
@@ -86,16 +82,16 @@ diff mode. You could use a construct like this: >
|
||||
While already in Vim you can start diff mode in three ways.
|
||||
|
||||
*E98*
|
||||
:diffs[plit] {filename} *:diffs* *:diffsplit*
|
||||
:diffsplit {filename} *:diffs* *:diffsplit*
|
||||
Open a new window on the file {filename}. The options are set
|
||||
as for "vimdiff" for the current and the newly opened window.
|
||||
Also see 'diffexpr'.
|
||||
|
||||
*:difft* *:diffthis*
|
||||
:difft[his] Make the current window part of the diff windows. This sets
|
||||
:diffthis Make the current window part of the diff windows. This sets
|
||||
the options like for "vimdiff".
|
||||
|
||||
:diffp[atch] {patchfile} *E816* *:diffp* *:diffpatch*
|
||||
:diffpatch {patchfile} *:diffp* *:diffpatch*
|
||||
Use the current buffer, patch it with the diff found in
|
||||
{patchfile} and open a buffer on the result. The options are
|
||||
set as for "vimdiff".
|
||||
@@ -123,18 +119,16 @@ Since the option values are remembered with the buffer, you can edit another
|
||||
file for a moment and come back to the same file and be in diff mode again.
|
||||
|
||||
*:diffo* *:diffoff*
|
||||
:diffo[ff] Switch off diff mode for the current window.
|
||||
:diffoff Switch off diff mode for the current window.
|
||||
|
||||
:diffo[ff]! Switch off diff mode for the current window and in all windows
|
||||
in the current tab page where 'diff' is set.
|
||||
:diffoff! Switch off diff mode for all windows in the current tab page.
|
||||
|
||||
The ":diffoff" command resets the relevant options to the values they had when
|
||||
using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode.
|
||||
Otherwise they are set to their default value:
|
||||
The ":diffoff" command resets the relevant options to their default value.
|
||||
This may be different from what the values were before diff mode was started,
|
||||
the old values are not remembered.
|
||||
|
||||
'diff' off
|
||||
'scrollbind' off
|
||||
'cursorbind' off
|
||||
'scrollopt' without "hor"
|
||||
'wrap' on
|
||||
'foldmethod' "manual"
|
||||
@@ -167,8 +161,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 ++edit # | 0d_
|
||||
\ | diffthis | wincmd p | diffthis
|
||||
command DiffOrig vert new | set bt=nofile | r # | 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.
|
||||
|
||||
@@ -178,7 +172,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
|
||||
@@ -187,9 +181,6 @@ 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
|
||||
@@ -220,7 +211,7 @@ The diffs are highlighted with these groups:
|
||||
that parts in the middle that are still the
|
||||
same are highlighted anyway. Only "iwhite" of
|
||||
'diffopt' is used here.
|
||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||
|hl-DiffDelete| DiffDelete Deleted lines. Also called filler lines,
|
||||
because they don't really exist in this
|
||||
buffer.
|
||||
|
||||
@@ -246,8 +237,7 @@ that the buffers will be equal within the specified range.
|
||||
*:diffg* *:diffget*
|
||||
:[range]diffg[et] [bufspec]
|
||||
Modify the current buffer to undo difference with another
|
||||
buffer. If [bufspec] is given, that buffer is used. If
|
||||
[bufspec] refers to the current buffer then nothing happens.
|
||||
buffer. If [bufspec] is given, that buffer is used.
|
||||
Otherwise this only works if there is one other buffer in diff
|
||||
mode.
|
||||
See below for [range].
|
||||
@@ -264,12 +254,10 @@ 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"!). Note: this doesn't work in Visual mode.
|
||||
"dgg"!).
|
||||
|
||||
*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
|
||||
@@ -333,9 +321,9 @@ diff. This example explains the format that Vim expects: >
|
||||
|
||||
The "1a2" item appends the line "bbb".
|
||||
The "4d4" item deletes the line "111".
|
||||
The "7c7" item replaces the line "GGG" with "ggg".
|
||||
The '7c7" item replaces the line "GGG" with "ggg".
|
||||
|
||||
When 'diffexpr' is not empty, Vim evaluates it to obtain a diff file in the
|
||||
When 'diffexpr' is not empty, Vim evaluates to obtain a diff file in the
|
||||
format mentioned. These variables are set to the file names used:
|
||||
|
||||
v:fname_in original file
|
||||
@@ -365,7 +353,7 @@ The "-a" argument is used to force comparing the files as text, comparing as
|
||||
binaries isn't useful. The "--binary" argument makes the files read in binary
|
||||
mode, so that a CTRL-Z doesn't end the text on DOS.
|
||||
|
||||
*E810* *E97*
|
||||
*E97*
|
||||
Vim will do a test if the diff output looks alright. If it doesn't, you will
|
||||
get an error message. Possible causes:
|
||||
- The "diff" program cannot be executed.
|
||||
@@ -376,9 +364,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 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.
|
||||
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.
|
||||
|
||||
|
||||
USING PATCHES *diff-patchexpr*
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user