mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-02 11:19:22 +02:00
Compare commits
747 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8ac94c2b7a | |||
| e23c64e08f | |||
| e1c8c7a674 | |||
| cbeab96f87 | |||
| 7e1479b86c | |||
| 4930a76a03 | |||
| 2b4671c6fc | |||
| ee39ef0b93 | |||
| 80c3fd7c55 | |||
| 26fe0d5691 | |||
| 8287abd245 | |||
| d47d83745f | |||
| 46643713dc | |||
| ea683da58c | |||
| 16b3578f35 | |||
| d563883a1f | |||
| 2931f2a5df | |||
| 922a443cfd | |||
| ff330ff2c4 | |||
| cf703fe9d6 | |||
| 2321ca2a78 | |||
| 9a27c7fde6 | |||
| c15c0d6983 | |||
| c4a908e836 | |||
| abd468ed0f | |||
| f18c4dbbe5 | |||
| 0eaadec6b2 | |||
| e30d19e69d | |||
| 169ebb0804 | |||
| 53f1673cd9 | |||
| 1954f8f191 | |||
| 1b0c1d050e | |||
| aeac9006d5 | |||
| 64d8e25bf6 | |||
| 6384c5db8d | |||
| 100f5c90f4 | |||
| 7947312871 | |||
| 6df94112d9 | |||
| 77b642501a | |||
| df0db16cf7 | |||
| 72b4b870fc | |||
| e226fb8015 | |||
| 33f0aed0ac | |||
| 1b0c2fcf6e | |||
| 31845093b7 | |||
| 75537a93e9 | |||
| 33a80eeb85 | |||
| b044cf0849 | |||
| 030cddc7ec | |||
| 26b84339fd | |||
| f9e687e068 | |||
| c8fe338d64 | |||
| d5824ce1b5 | |||
| 30180b8dad | |||
| e0ab94e712 | |||
| d77f9d595e | |||
| bc54f3f3fe | |||
| 3cc4453075 | |||
| dac1947bb3 | |||
| dda933d06c | |||
| b07a82b6d5 | |||
| 349e7d94e6 | |||
| 0913a1089a | |||
| f7f3e32fcc | |||
| 87bc3f7459 | |||
| de653f0880 | |||
| b62cc36a60 | |||
| 5a49789a9b | |||
| 4338f80a4b | |||
| dd905a2ae1 | |||
| a5d4121eed | |||
| 11fbc2866c | |||
| 44f660c421 | |||
| cd055da370 | |||
| da9ce2cde1 | |||
| 89f8880325 | |||
| a8c2fa5b29 | |||
| bb5c4a4fee | |||
| 19a1669ffc | |||
| 417ccd7138 | |||
| 779f2fc3a7 | |||
| f1b512a0b6 | |||
| 641ad6c7ac | |||
| 5c80908ced | |||
| 04c4ce650f | |||
| 0874a83e9b | |||
| d8b554904d | |||
| 8a54cfdb32 | |||
| f37506f60f | |||
| c628fdcd46 | |||
| a2a8de37fa | |||
| 89bcfda683 | |||
| 4792255eff | |||
| 42e65225c6 | |||
| 64cefedfc8 | |||
| edf3f97ae2 | |||
| 965ed14973 | |||
| 0418609534 | |||
| 1645f95201 | |||
| 7f7bd297d6 | |||
| 7683aaa506 | |||
| cb03397aba | |||
| 6fc8227ebf | |||
| fec246d2c5 | |||
| 36f44c21da | |||
| d90b6c02e2 | |||
| f4145d8e99 | |||
| 885c00eabe | |||
| 0abe0522d0 | |||
| 0426bae2ab | |||
| e999782e36 | |||
| 46328f9a1c | |||
| 4427db9bb2 | |||
| 6a402edbeb | |||
| 1773ddfdcd | |||
| ef743adcc1 | |||
| 7b125feed1 | |||
| e67d546f3c | |||
| 818078ddfb | |||
| 73d4e4c892 | |||
| 3056735ae8 | |||
| 9f8187c335 | |||
| ffdf08c94e | |||
| 821179809d | |||
| e17bdffff7 | |||
| 1195669f9e | |||
| 44ca54aeb9 | |||
| 9992237a3e | |||
| 76efafba2a | |||
| 2b529bb626 | |||
| 2f9bb2a226 | |||
| be7c0123e6 | |||
| d29459baa6 | |||
| 2570957607 | |||
| 7df0f6313a | |||
| e4a3bcf28d | |||
| dd74ab9b46 | |||
| 4d6f32cbfb | |||
| f1f0792e55 | |||
| 9f28953f0c | |||
| db249f26ed | |||
| ec42059b78 | |||
| 54b6352c6f | |||
| c2a58d5855 | |||
| 5b5a28c1ab | |||
| 78c7e274f2 | |||
| 424d74bb20 | |||
| 5b9f4455bf | |||
| 015efc32c1 | |||
| 5b30291785 | |||
| ba2099034f | |||
| 358308dd99 | |||
| b9a41370cf | |||
| 0e3e555cae | |||
| 2f31b6167c | |||
| 0a001725b6 | |||
| 25bc16eeb3 | |||
| 2ce1dbd777 | |||
| 1b4fddf63f | |||
| b58fe4588c | |||
| d6f2ee32dc | |||
| 77401add71 | |||
| 7b668e83d0 | |||
| c20131f0f8 | |||
| 247f8a5b5d | |||
| 2b0affaf2e | |||
| 1b58cdd160 | |||
| 17f1347b86 | |||
| 973365dcc4 | |||
| f267f8bdf7 | |||
| ab44a4c717 | |||
| 9baf297c99 | |||
| de7762a2c1 | |||
| 9b7f8ce9eb | |||
| 920694c1b6 | |||
| 989f592f7f | |||
| dd1248143e | |||
| 843b884461 | |||
| 54d43879bc | |||
| 854c1d8007 | |||
| a25feb981a | |||
| e07e797db0 | |||
| e11d61a3b1 | |||
| 66e29d7112 | |||
| f04507d132 | |||
| b97a43f27d | |||
| 61c3cf2197 | |||
| c2ff332dca | |||
| f9971749e5 | |||
| 8f76c0010f | |||
| 9e4d8215d3 | |||
| 7571d55f7d | |||
| 1381d79147 | |||
| 3392883770 | |||
| d618f0bb08 | |||
| 0de29e30dc | |||
| cf3c9283b0 | |||
| c617acfc46 | |||
| fa52c6497a | |||
| bfd096d020 | |||
| af9c4c9b57 | |||
| d3c907b5d2 | |||
| 7f4c26a9eb | |||
| 6bff02eb53 | |||
| 91984b9034 | |||
| e5a8f35b42 | |||
| f5a39447a8 | |||
| 13d216d302 | |||
| dc1f1645cb | |||
| 4f416e4124 | |||
| 22177f0c08 | |||
| 386600f0cb | |||
| 16350cb979 | |||
| 58b853460a | |||
| e59215c7dc | |||
| e56132bb41 | |||
| cff50f5ec9 | |||
| 35a4cfa200 | |||
| 2d1a248762 | |||
| d58b0f982a | |||
| 4ae209597c | |||
| e9d58a6459 | |||
| 0952131376 | |||
| b5ae48e9ff | |||
| ebcccad573 | |||
| b338483152 | |||
| 95ec9d6a6a | |||
| d823fa910c | |||
| 107abd2ca5 | |||
| 01c9e10e73 | |||
| 0e5d3a2940 | |||
| c257487035 | |||
| 50099467e9 | |||
| 24d6b9ae7d | |||
| 6480401b5c | |||
| b0501922f1 | |||
| 8df28f3029 | |||
| 91c5262b19 | |||
| bcc1dcc981 | |||
| 446a973ce3 | |||
| 717e196060 | |||
| a6b7a08ae0 | |||
| a357e44ccd | |||
| a1977aa8d2 | |||
| 8d7a68e9fa | |||
| 50fa8dd00c | |||
| f71d7b9ee5 | |||
| c9fb77c692 | |||
| 3a0c5e14c6 | |||
| 51073cf6d0 | |||
| 064b366275 | |||
| 7547a78446 | |||
| 36d1c0fef4 | |||
| 71dd9744cf | |||
| 7a9a5f4019 | |||
| 09de17536d | |||
| 2147746cf8 | |||
| fa4076a018 | |||
| a772ec5e91 | |||
| b73598e2f0 | |||
| e4a76ad0e7 | |||
| 3a93838339 | |||
| ba98bef191 | |||
| a8e691d449 | |||
| 812ad4f3a2 | |||
| c8ce615299 | |||
| 66dc68524d | |||
| 3321e9d8a3 | |||
| 472a0a880a | |||
| 00ff380295 | |||
| 8e97bd74b5 | |||
| 446cce6d53 | |||
| 5b4a3767f6 | |||
| c96a2f3b88 | |||
| 328604307b | |||
| 83b3c3d8a0 | |||
| 66459b7c98 | |||
| d76a0c15f8 | |||
| 7522f69821 | |||
| c6b93c1711 | |||
| faacf32800 | |||
| 631fa281b4 | |||
| a42ef3c074 | |||
| 41132b4302 | |||
| 93c8f8246c | |||
| 7ab6defcaf | |||
| 7dc5e2e486 | |||
| 5971dab112 | |||
| b650b9878e | |||
| 46c4d4ac66 | |||
| c8a877b38d | |||
| c90f2aedd0 | |||
| 9d5b876d45 | |||
| fe9489233c | |||
| 877e957798 | |||
| f852a0e9c2 | |||
| b3281ddf34 | |||
| ee695f787a | |||
| cf25fdb8f1 | |||
| 4c38d66d25 | |||
| a1fea82f7b | |||
| 7cba71d7e3 | |||
| edf634e0f1 | |||
| abb71fbd39 | |||
| 472472898a | |||
| 86f2cd5bc5 | |||
| 796aa9c804 | |||
| bc8801c931 | |||
| 8bb6902421 | |||
| bc7ce675b2 | |||
| 8dd3a43d75 | |||
| ba96e9af38 | |||
| acadbeabe1 | |||
| 0588d4f9d2 | |||
| 2d3d60a7d4 | |||
| 437bafe4c8 | |||
| 5801644819 | |||
| 89eaa4185e | |||
| b54c3ff317 | |||
| 0e351c1779 | |||
| 5cbe25f073 | |||
| 1e033f5594 | |||
| fc1f2015e8 | |||
| 31440a1f2b | |||
| 57e69ff2cc | |||
| 623e263ffb | |||
| 3ab14355ed | |||
| 1e2258297b | |||
| 3bcfca3ab4 | |||
| 90d121fa36 | |||
| b20617b0b0 | |||
| a5c0cc1133 | |||
| 623cf88f9c | |||
| 42093c0ec5 | |||
| b822cb0f93 | |||
| 05c5a9977c | |||
| 01f1fdeb67 | |||
| 8eae3da210 | |||
| 9532fe7fbe | |||
| 10ce39a0d5 | |||
| 1e96d9bf98 | |||
| 83a2a80d6f | |||
| f2c4c39119 | |||
| c73e4474b1 | |||
| b9a46fec3e | |||
| d05b191b91 | |||
| 170b10b421 | |||
| 05f67238e5 | |||
| b56195ed00 | |||
| 471a897569 | |||
| 8c08b5b569 | |||
| eac784eced | |||
| 5e73ac7ea1 | |||
| ad9c2a08f0 | |||
| adfc5c2f9c | |||
| d955a0971c | |||
| ac77aec4da | |||
| eec2981bbe | |||
| 97baee80f0 | |||
| e99e84497b | |||
| 8a4e0240ae | |||
| 45a249513f | |||
| 2932359000 | |||
| 6835dc61ae | |||
| 73ac0c4281 | |||
| 6f1d9a096b | |||
| 9d68878f5f | |||
| 00b24be454 | |||
| d4f31dc454 | |||
| b49edc11a1 | |||
| 61c04493b0 | |||
| 4658228262 | |||
| a58c58b7e1 | |||
| 436394b427 | |||
| 870b749ce1 | |||
| 2e45d21c81 | |||
| df48fb456f | |||
| e259374998 | |||
| 36edf0685c | |||
| f36213597d | |||
| e25bc5abb4 | |||
| ac105ed3c4 | |||
| dfd63e30d1 | |||
| 6008433381 | |||
| 19df5cc04d | |||
| 397eadbe25 | |||
| c1542744e7 | |||
| 6736c31ad5 | |||
| b869c0da31 | |||
| 53bdec2ac9 | |||
| ca8942c6e3 | |||
| 12c11d5530 | |||
| 4f0383bc3f | |||
| c917da4b3e | |||
| 0a0f641b98 | |||
| 68015bbd84 | |||
| 72ab729c3d | |||
| f562e72df7 | |||
| 6cfdb2a3ba | |||
| 9ccfebddc3 | |||
| b9644433d2 | |||
| e5d872285e | |||
| d002b40633 | |||
| c9b378eeb3 | |||
| a70eb573ff | |||
| c8da80e59a | |||
| 16ec3c9be3 | |||
| 800be6789a | |||
| c1fb763184 | |||
| 69aa099641 | |||
| 4f5c5f2980 | |||
| 73dad1e64c | |||
| 840268400d | |||
| e87e6dddc2 | |||
| a9093fe094 | |||
| 6583c44857 | |||
| 463f72af9d | |||
| a9b579f3d7 | |||
| da861d631d | |||
| 1abc52c159 | |||
| cd52459c38 | |||
| 42ebd06642 | |||
| 4064af0119 | |||
| aa1cb39431 | |||
| 2cb70a2744 | |||
| b2b050ab16 | |||
| 87776a1ac1 | |||
| 8de7465d77 | |||
| 1a9f947cde | |||
| 8211fcbdc9 | |||
| e21d62435e | |||
| c3e539fa70 | |||
| 502ae4ba63 | |||
| 6a8af0469d | |||
| 015102e91e | |||
| 2ce308427a | |||
| f6acffbe83 | |||
| a06ecab7a5 | |||
| bfafb4c4a0 | |||
| 269f595f9e | |||
| e0d3797664 | |||
| 5ef2e76284 | |||
| 069c1e7fa9 | |||
| 93431df9eb | |||
| fdadad994a | |||
| 603d657219 | |||
| a6aa78a3e3 | |||
| 321efdd77a | |||
| 9280e3f95d | |||
| 7399895520 | |||
| 480778b805 | |||
| da4127794a | |||
| f62e797ffa | |||
| 6d20e17544 | |||
| 3e946fdc7b | |||
| 3e1de2e0b2 | |||
| 89b10421ca | |||
| e048539195 | |||
| 38ee6b041e | |||
| 4f2707d424 | |||
| 5498a41f5a | |||
| 4c06815c44 | |||
| 1436d8d51c | |||
| ead07edb19 | |||
| da3a77d9ec | |||
| 7c0a2f367f | |||
| ea3f2e7be4 | |||
| 25065ec375 | |||
| 19ff9bf454 | |||
| 453f37dbfd | |||
| c4a927ca8d | |||
| b25f9a97e9 | |||
| 8240433f48 | |||
| 2bc127f940 | |||
| 6ff572c586 | |||
| 5c71994f4e | |||
| 32b808a4bd | |||
| 67081e5061 | |||
| 063b9d15ab | |||
| 0d3e24be56 | |||
| aa4d73235b | |||
| 537ef08408 | |||
| ed59aa60d3 | |||
| 79815f1ec7 | |||
| fc4ad61607 | |||
| 30445cb6e9 | |||
| ee1deb4a00 | |||
| 65549bdef5 | |||
| 144445d15f | |||
| a06ec8f345 | |||
| ba768495c2 | |||
| 245a7cb6d3 | |||
| efbf09da2f | |||
| d8ecb73ed1 | |||
| ea0f3f63c2 | |||
| bc5d6dd1dd | |||
| bf2cc5f36d | |||
| dcb1700186 | |||
| 1e5e1231ac | |||
| 9d5d3c9c44 | |||
| 05e418d436 | |||
| 6bb450145e | |||
| e381d3d5e0 | |||
| 00efded106 | |||
| 414a928a87 | |||
| 80632db65e | |||
| 2e30357116 | |||
| b33c7eb5b8 | |||
| ab9c89b68d | |||
| dec85cf750 | |||
| fef524bbff | |||
| 3b98b83001 | |||
| e18dbe865d | |||
| 0fcc7c6dd1 | |||
| 75464dc434 | |||
| 951fa1819a | |||
| ee2615af64 | |||
| 361c8f0e51 | |||
| 2acfbed9db | |||
| 94249acf82 | |||
| c5af40ae64 | |||
| bde9810d61 | |||
| 22fcfad292 | |||
| 8767f52fbf | |||
| 4a6c670b84 | |||
| 4c5717ed8a | |||
| 40de45664c | |||
| e8fea0728a | |||
| 70e136e1d8 | |||
| 24cf233ef9 | |||
| 1d90a5a5af | |||
| 6747fabc73 | |||
| bcf7772a23 | |||
| b710d50cee | |||
| adb78a77eb | |||
| 8c4a835205 | |||
| 688e3d1fd9 | |||
| 6ad0757971 | |||
| 97ff9b9cff | |||
| 52df117df7 | |||
| 00672e1d3f | |||
| 04e2b4b0c4 | |||
| aad30bbcde | |||
| eeb50ab522 | |||
| 7b61bf187a | |||
| 5d2ca04029 | |||
| f4fba6dcd5 | |||
| d388d2ac8b | |||
| 802a0d902f | |||
| 049cba9e97 | |||
| dd0fcab4ec | |||
| b12e7ef956 | |||
| 85babd6db6 | |||
| f50df3925b | |||
| bdcab3eb7f | |||
| 38df43bd13 | |||
| ad5ca9bc1e | |||
| ecefe71704 | |||
| cf2d77987c | |||
| ddf8d1c746 | |||
| b5b95750a6 | |||
| 678e480529 | |||
| d18f672fc9 | |||
| a02a551e18 | |||
| 3087674277 | |||
| 3ef5bf7d45 | |||
| 23c60f21b0 | |||
| 28607ba2b8 | |||
| 7d06ae4c39 | |||
| 36f0f0686c | |||
| ab47c61f46 | |||
| 67e3720a9d | |||
| bee666f239 | |||
| 8f65bea132 | |||
| 9bd3186052 | |||
| 72e697d189 | |||
| ece74ab103 | |||
| a641e1d4da | |||
| bf2c0ee0b2 | |||
| 2016ae586b | |||
| 76ae22fef3 | |||
| 5b7d177e89 | |||
| a890f5e348 | |||
| c95a302a4c | |||
| 2d35899721 | |||
| cf08946349 | |||
| 0ffe542baa | |||
| 90d1eedfd7 | |||
| d40d5c7276 | |||
| ae3150ec8d | |||
| 06469e979f | |||
| 724f2edf75 | |||
| e80ff7448d | |||
| 46bbb0c4ba | |||
| 62f8b4e180 | |||
| 012270936c | |||
| 417c1fc5a2 | |||
| b8aefa46ad | |||
| 2a67ed83a8 | |||
| e429e70f05 | |||
| 6ced2028cf | |||
| 1550cece3a | |||
| 9868c9f671 | |||
| a74dd6884f | |||
| 8a138245e8 | |||
| 1610d05241 | |||
| 1cee693b31 | |||
| 1fd99c1ca8 | |||
| ff3dd64e96 | |||
| 72234fae0f | |||
| 9295c0b376 | |||
| abc70bbf36 | |||
| 945ec093cd | |||
| 5ce4a0b96a | |||
| 8c283ae248 | |||
| 7d6fb24826 | |||
| aad13c34bb | |||
| 1d5f1d07ae | |||
| 5f1032d2a5 | |||
| 1ab2e6b6dd | |||
| 4b15c68164 | |||
| 6de757a83c | |||
| fdd82fe365 | |||
| c60954b48e | |||
| 45d2eeaad6 | |||
| bbe8d91e69 | |||
| 0e77b94272 | |||
| 61ad6863a0 | |||
| 6d6f1351bd | |||
| 762f175437 | |||
| 28b942a064 | |||
| 8e31fd52ec | |||
| 63a60ded3f | |||
| fd89d7ea81 | |||
| 82af8710bf | |||
| 82faa259cc | |||
| 888ccac890 | |||
| 511972d810 | |||
| b3619a90ea | |||
| c9721bdc63 | |||
| 9ed96efb3d | |||
| 703a8044b5 | |||
| 35d88f4e2f | |||
| 76b6dfe54b | |||
| e30a3d01dc | |||
| cda7764d8e | |||
| d16a205448 | |||
| 1aa07bdead | |||
| 2f095a4bc4 | |||
| 12547c77fa | |||
| ea0345901c | |||
| b37662a0fb | |||
| 83e6d7ac6a | |||
| 76929af431 | |||
| e38a2f7ebd | |||
| cf7c11a947 | |||
| 01d46e41ba | |||
| a0055ad3a7 | |||
| 8e759ba865 | |||
| ae3f33040b | |||
| 4231da403e | |||
| c4bc0e6542 | |||
| 864293abb7 | |||
| dec6c7beda | |||
| cf190c6f01 | |||
| 3f00cad71f | |||
| b89a25f17e | |||
| 3c809343c7 | |||
| a96732150c | |||
| 9ad73239c2 | |||
| 22081f4a33 | |||
| 9b0ac229bc | |||
| ca92f49a56 | |||
| 18dfb4404a | |||
| b055066a1d | |||
| e3188e2615 | |||
| ef3abc6442 | |||
| b127cfd75f | |||
| 9f5842e63f | |||
| 324a78f3b6 | |||
| 655da31a18 | |||
| d80629cef0 | |||
| 28ae577342 | |||
| af6c12c27b | |||
| 180fc2d418 | |||
| bf981eeb6b | |||
| d81024334a | |||
| 5850a764ea | |||
| 9bfe278570 | |||
| 6727bf8617 | |||
| 40a9e00ed3 | |||
| 13ddc5c359 | |||
| 54c10ccf92 | |||
| f8df45d84f | |||
| 8e8df251bf | |||
| 2177f9fe18 | |||
| f0a930b685 | |||
| 03e19a04ac | |||
| 26852128a2 | |||
| 2b2b8ae5ab | |||
| a570244531 | |||
| 2bbf8eff6f | |||
| 574860b5ee | |||
| c67e892134 | |||
| 1d429610bf | |||
| 991dea3ab1 | |||
| 908be43879 | |||
| 2ff8b64679 | |||
| c3adca5e0f | |||
| 06d2d38ab7 | |||
| 385b36eb53 | |||
| 62afa1dd13 | |||
| 1a84f8da5c | |||
| dc303bce10 | |||
| 5e1d8fba9e | |||
| 392fcf3037 | |||
| 417dd190a5 | |||
| fa9800e39b | |||
| 88f4fe0968 | |||
| 2375f35235 | |||
| e40d75f6ef | |||
| 32080ba100 | |||
| 73a733e08b | |||
| fd5b06fddd | |||
| e026051f1d | |||
| 0fee3f143c | |||
| ae529b5e4a | |||
| de7eb0a47b | |||
| e0f76d0097 | |||
| fb6ffc732e | |||
| cf7ff70ca7 | |||
| 949fc40089 | |||
| 5d96e3ae53 | |||
| 36e0f7da9b | |||
| d9db8b448c | |||
| 91c4937be1 | |||
| ea83bf06b9 | |||
| 4ed6b2e2d7 | |||
| 9ccaae04c6 | |||
| 2989db56e7 | |||
| f0ba2aaec3 | |||
| b31f06a1ea | |||
| 827b165b2a | |||
| 89c79b9932 | |||
| 7330a2e5cf | |||
| e764e5a393 | |||
| cefe4f9948 |
@@ -79,6 +79,7 @@ src/testdir/messages
|
||||
src/testdir/viminfo
|
||||
src/memfile_test
|
||||
src/json_test
|
||||
src/message_test
|
||||
|
||||
# From MacVim
|
||||
.*.swp
|
||||
|
||||
+3
-1
@@ -18,7 +18,7 @@ env:
|
||||
vi_cv_dll_name_python=/System/Library/Frameworks/Python.framework/Versions/2.7/Python
|
||||
vi_cv_dll_name_python3=/usr/local/Frameworks/Python.framework/Versions/3.5/Python
|
||||
VIMCMD=src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
|
||||
"CONFOPT='--with-features=huge --enable-multibyte --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-termtruecolor --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
|
||||
"CONFOPT='--with-features=huge --enable-multibyte --enable-netbeans --with-tlib=ncurses --enable-cscope --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-python3interp=dynamic --enable-rubyinterp=dynamic --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-gui=macvim'"
|
||||
|
||||
sudo: false
|
||||
|
||||
@@ -41,6 +41,8 @@ script:
|
||||
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "py3 print(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
|
||||
- rm -f result; $VIMCMD -g -f -c "redir>result" -c "ruby puts(\"Test\")" -c "redir END" -c q; cat result; echo; grep -q -w Test result
|
||||
- make test
|
||||
- make -C src/testdir clean
|
||||
- make -C src testgui
|
||||
|
||||
before_deploy:
|
||||
- make -C src macvim-dmg
|
||||
|
||||
@@ -18,10 +18,12 @@ SRC_ALL = \
|
||||
src/charset.c \
|
||||
src/crypt.c \
|
||||
src/crypt_zip.c \
|
||||
src/dict.c \
|
||||
src/diff.c \
|
||||
src/digraph.c \
|
||||
src/edit.c \
|
||||
src/eval.c \
|
||||
src/evalfunc.c \
|
||||
src/ex_cmds.c \
|
||||
src/ex_cmds.h \
|
||||
src/ex_cmds2.c \
|
||||
@@ -43,6 +45,7 @@ SRC_ALL = \
|
||||
src/hashtab.c \
|
||||
src/json.c \
|
||||
src/json_test.c \
|
||||
src/list.c \
|
||||
src/keymap.h \
|
||||
src/macros.h \
|
||||
src/main.c \
|
||||
@@ -53,6 +56,7 @@ SRC_ALL = \
|
||||
src/memline.c \
|
||||
src/menu.c \
|
||||
src/message.c \
|
||||
src/message_test.c \
|
||||
src/misc1.c \
|
||||
src/misc2.c \
|
||||
src/move.c \
|
||||
@@ -74,6 +78,8 @@ SRC_ALL = \
|
||||
src/sha256.c \
|
||||
src/structs.h \
|
||||
src/spell.c \
|
||||
src/spell.h \
|
||||
src/spellfile.c \
|
||||
src/syntax.c \
|
||||
src/tag.c \
|
||||
src/term.c \
|
||||
@@ -81,11 +87,13 @@ SRC_ALL = \
|
||||
src/termlib.c \
|
||||
src/ui.c \
|
||||
src/undo.c \
|
||||
src/userfunc.c \
|
||||
src/version.c \
|
||||
src/version.h \
|
||||
src/vim.h \
|
||||
src/winclip.c \
|
||||
src/window.c \
|
||||
src/tee/tee.c \
|
||||
src/xxd/xxd.c \
|
||||
src/main.aap \
|
||||
src/testdir/main.aap \
|
||||
@@ -95,6 +103,8 @@ SRC_ALL = \
|
||||
src/testdir/*.py \
|
||||
src/testdir/sautest/autoload/*.vim \
|
||||
src/testdir/runtest.vim \
|
||||
src/testdir/shared.vim \
|
||||
src/testdir/setup.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test[0-9]*a.ok \
|
||||
src/testdir/test_[a-z]*.ok \
|
||||
@@ -116,21 +126,25 @@ SRC_ALL = \
|
||||
src/testdir/bench*.vim \
|
||||
src/testdir/samples/*.txt \
|
||||
src/proto.h \
|
||||
src/proto/arabic.pro \
|
||||
src/proto/blowfish.pro \
|
||||
src/proto/buffer.pro \
|
||||
src/proto/channel.pro \
|
||||
src/proto/charset.pro \
|
||||
src/proto/crypt.pro \
|
||||
src/proto/crypt_zip.pro \
|
||||
src/proto/dict.pro \
|
||||
src/proto/diff.pro \
|
||||
src/proto/digraph.pro \
|
||||
src/proto/edit.pro \
|
||||
src/proto/eval.pro \
|
||||
src/proto/evalfunc.pro \
|
||||
src/proto/ex_cmds.pro \
|
||||
src/proto/ex_cmds2.pro \
|
||||
src/proto/ex_docmd.pro \
|
||||
src/proto/ex_eval.pro \
|
||||
src/proto/ex_getln.pro \
|
||||
src/proto/farsi.pro \
|
||||
src/proto/fileio.pro \
|
||||
src/proto/fold.pro \
|
||||
src/proto/getchar.pro \
|
||||
@@ -139,6 +153,7 @@ SRC_ALL = \
|
||||
src/proto/hardcopy.pro \
|
||||
src/proto/hashtab.pro \
|
||||
src/proto/json.pro \
|
||||
src/proto/list.pro \
|
||||
src/proto/main.pro \
|
||||
src/proto/mark.pro \
|
||||
src/proto/mbyte.pro \
|
||||
@@ -160,12 +175,14 @@ SRC_ALL = \
|
||||
src/proto/search.pro \
|
||||
src/proto/sha256.pro \
|
||||
src/proto/spell.pro \
|
||||
src/proto/spellfile.pro \
|
||||
src/proto/syntax.pro \
|
||||
src/proto/tag.pro \
|
||||
src/proto/term.pro \
|
||||
src/proto/termlib.pro \
|
||||
src/proto/ui.pro \
|
||||
src/proto/undo.pro \
|
||||
src/proto/userfunc.pro \
|
||||
src/proto/version.pro \
|
||||
src/proto/winclip.pro \
|
||||
src/proto/window.pro \
|
||||
@@ -247,6 +264,7 @@ SRC_UNIX = \
|
||||
src/workshop.h \
|
||||
src/wsdebug.c \
|
||||
src/wsdebug.h \
|
||||
src/tee/Makefile \
|
||||
src/xxd/Makefile \
|
||||
|
||||
# source files for both DOS and Unix
|
||||
@@ -298,6 +316,7 @@ SRC_DOS = \
|
||||
src/Make_dvc.mak \
|
||||
src/Make_ming.mak \
|
||||
src/Make_mvc.mak \
|
||||
tools/rename.bat \
|
||||
src/bigvim.bat \
|
||||
src/bigvim64.bat \
|
||||
src/msvcsetup.bat \
|
||||
@@ -317,6 +336,8 @@ SRC_DOS = \
|
||||
src/if_ole.h \
|
||||
src/if_ole.idl \
|
||||
src/if_perl_msvc/stdbool.h \
|
||||
src/iscygpty.c \
|
||||
src/iscygpty.h \
|
||||
src/iid_ole.c \
|
||||
src/os_dos.h \
|
||||
src/os_w32dll.c \
|
||||
@@ -339,6 +360,7 @@ SRC_DOS = \
|
||||
src/vimrun.c \
|
||||
src/xpm_w32.c \
|
||||
src/xpm_w32.h \
|
||||
src/tee/Make_mvc.mak \
|
||||
src/xxd/Make_bc5.mak \
|
||||
src/xxd/Make_ming.mak \
|
||||
src/xxd/Make_mvc.mak \
|
||||
@@ -379,8 +401,10 @@ SRC_DOS_BIN = \
|
||||
src/xpm/include/*.h \
|
||||
src/xpm/x64/lib/libXpm.a \
|
||||
src/xpm/x64/lib/libXpm.lib \
|
||||
src/xpm/x64/lib-vc14/libXpm.lib \
|
||||
src/xpm/x86/lib/libXpm.a \
|
||||
src/xpm/x86/lib/libXpm.lib \
|
||||
src/xpm/x86/lib-vc14/libXpm.lib \
|
||||
nsis/icons/*.bmp \
|
||||
nsis/icons/*.ico \
|
||||
|
||||
@@ -506,8 +530,9 @@ RT_ALL = \
|
||||
runtime/macros/urm/examples \
|
||||
runtime/macros/urm/urm \
|
||||
runtime/macros/urm/urm.vim \
|
||||
runtime/mswin.vim \
|
||||
runtime/defaults.vim \
|
||||
runtime/evim.vim \
|
||||
runtime/mswin.vim \
|
||||
runtime/optwin.vim \
|
||||
runtime/ftplugin.vim \
|
||||
runtime/ftplugof.vim \
|
||||
|
||||
@@ -32,7 +32,7 @@ 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:
|
||||
all install uninstall tools config configure reconfig proto depend lint tags types test scripttests unittests testclean clean distclean:
|
||||
@if test ! -f src/auto/config.mk; then \
|
||||
cp src/config.mk.dist src/auto/config.mk; \
|
||||
fi
|
||||
@@ -51,12 +51,9 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
#
|
||||
# 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
|
||||
# vim##d32.zip binary for MS-DOS 32 bits
|
||||
# vim##w32.zip binary for Win32
|
||||
# dosbin vim##w32.zip binary for Win32
|
||||
# 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
|
||||
@@ -73,15 +70,6 @@ all install uninstall tools config configure reconfig proto depend lint tags typ
|
||||
MAJOR = 7
|
||||
MINOR = 4
|
||||
|
||||
# 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
|
||||
|
||||
# CHECKLIST for creating a new version:
|
||||
#
|
||||
# - Update Vim version number. For a test version in: src/version.h, Contents,
|
||||
@@ -149,31 +137,35 @@ MINOR = 4
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak
|
||||
# - Run the tests:
|
||||
# > rm testdir/*.out testdir/*.res
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak test
|
||||
# - check the output.
|
||||
# - Rename vim.exe to vimw32.exe, xxd/xxd.exe to xxdw32.exe.
|
||||
# - Rename vim.pdb to vimw32.pdb.
|
||||
# - Rename install.exe to installw32.exe and uninstal.exe to uninstalw32.exe.
|
||||
# - Rename (using tools/rename.bat):
|
||||
# vim.exe to vimw32.exe
|
||||
# tee/tee.exe to teew32.exe
|
||||
# xxd/xxd.exe to xxdw32.exe
|
||||
# vim.pdb to vimw32.pdb
|
||||
# install.exe to installw32.exe
|
||||
# uninstal.exe to uninstalw32.exe
|
||||
# Win32 GUI version build:
|
||||
# - > cd src
|
||||
# > nmake -f Make_mvc.mak GUI=yes
|
||||
# - Run the tests:
|
||||
# > rm testdir/*.out testdir/*.res
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
|
||||
# - Move gvim.pdb to here.
|
||||
# - Copy "GvimExt/gvimext.dll" to here.
|
||||
# - Delete vimrun.exe, install.exe and uninstal.exe.
|
||||
# Win32 GUI version with OLE, PERL, TCL, PYTHON and dynamic IME:
|
||||
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
|
||||
# - Install the interfaces you want, see src/INSTALLpc.txt
|
||||
# - Build:
|
||||
# > cd src
|
||||
# Adjust bigvim.bat to match the version of each interface you want.
|
||||
# > bigvim.bat
|
||||
# - Run the tests:
|
||||
# > rm testdir/*.out testdir/*.res
|
||||
# > nmake -f Make_mvc.mak testclean
|
||||
# > nmake -f Make_mvc.mak testgvim
|
||||
# - check the output.
|
||||
# - Rename "gvim.exe" to "gvim_ole.exe".
|
||||
@@ -187,7 +179,8 @@ MINOR = 4
|
||||
# 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.
|
||||
# uninstalw32.exe, teew32.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
|
||||
@@ -221,15 +214,7 @@ MINOR = 4
|
||||
# 32 bit DOS version: Support was removed in 7.4.1399. When syncing to before
|
||||
# that it probably won't build.
|
||||
#
|
||||
# Win32s GUI version: (requires a 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)
|
||||
# - "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.
|
||||
# Win32s GUI version: Support was removed in patch 7.4.1364.
|
||||
#
|
||||
# OS/2 support was removed in patch 7.4.1008. If you want to give it a try
|
||||
# sync to before that and check the old version of this Makefile for
|
||||
@@ -268,12 +253,9 @@ dist/comment:
|
||||
mkdir dist/comment
|
||||
|
||||
COMMENT_RT = comment/$(VERSION)-rt
|
||||
COMMENT_D16 = comment/$(VERSION)-bin-d16
|
||||
COMMENT_D32 = comment/$(VERSION)-bin-d32
|
||||
COMMENT_W32 = comment/$(VERSION)-bin-w32
|
||||
COMMENT_GVIM = comment/$(VERSION)-bin-gvim
|
||||
COMMENT_OLE = comment/$(VERSION)-bin-ole
|
||||
COMMENT_W32S = comment/$(VERSION)-bin-w32s
|
||||
COMMENT_SRC = comment/$(VERSION)-src
|
||||
COMMENT_HTML = comment/$(VERSION)-html
|
||||
COMMENT_FARSI = comment/$(VERSION)-farsi
|
||||
@@ -281,12 +263,6 @@ COMMENT_FARSI = comment/$(VERSION)-farsi
|
||||
dist/$(COMMENT_RT): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) runtime files for MS-DOS and MS-Windows" > dist/$(COMMENT_RT)
|
||||
|
||||
dist/$(COMMENT_D16): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 16 bit real mode" > dist/$(COMMENT_D16)
|
||||
|
||||
dist/$(COMMENT_D32): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-DOS 32 bit protected mode" > dist/$(COMMENT_D32)
|
||||
|
||||
dist/$(COMMENT_W32): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) binaries for MS-Windows NT/95" > dist/$(COMMENT_W32)
|
||||
|
||||
@@ -296,9 +272,6 @@ dist/$(COMMENT_GVIM): dist/comment
|
||||
dist/$(COMMENT_OLE): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) MS-Windows GUI binaries with OLE support" > dist/$(COMMENT_OLE)
|
||||
|
||||
dist/$(COMMENT_W32S): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) GUI binaries for MS-Windows 3.1/3.11" > dist/$(COMMENT_W32S)
|
||||
|
||||
dist/$(COMMENT_SRC): dist/comment
|
||||
echo "Vim - Vi IMproved - v$(VDOT) sources for MS-DOS and MS-Windows" > dist/$(COMMENT_SRC)
|
||||
|
||||
@@ -501,7 +474,8 @@ runtime_unix2dos: dosrt_files
|
||||
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_ole $(DOSBIN_S)
|
||||
-rm $(IN_README_DIR)
|
||||
|
||||
# make Win32 gvim
|
||||
dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
@@ -512,8 +486,8 @@ dosbin_gvim: dist no_title.vim dist/$(COMMENT_GVIM)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
-rm $(IN_README_DIR)
|
||||
cp gvim.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@@ -532,43 +506,13 @@ dosbin_w32: dist no_title.vim dist/$(COMMENT_W32)
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp vimw32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)w32.zip vim <$(COMMENT_W32)
|
||||
cp vimw32.pdb dist/vim$(VERSION)w32.pdb
|
||||
|
||||
# make 32bit DOS
|
||||
dosbin_d32: dist no_title.vim dist/$(COMMENT_D32)
|
||||
-rm -rf dist/vim$(VERSION)d32.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp vimd32.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installd32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstald32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cp csdpmi4b.zip dist/vim/$(VIMRTDIR)
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)d32.zip vim <$(COMMENT_D32)
|
||||
|
||||
# make 16bit DOS
|
||||
dosbin_d16: dist no_title.vim dist/$(COMMENT_D16)
|
||||
-rm -rf dist/vim$(VERSION)d16.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp vimd16.exe dist/vim/$(VIMRTDIR)/vim.exe
|
||||
cp xxdd16.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp installd16.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstald16.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cd dist && zip -9 -rD -z vim$(VERSION)d16.zip vim <$(COMMENT_D16)
|
||||
|
||||
# make Win32 gvim with OLE
|
||||
dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
-rm -rf dist/gvim$(VERSION)ole.zip
|
||||
@@ -579,6 +523,7 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp gvim_ole.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp teew32.exe dist/vim/$(VIMRTDIR)/tee.exe
|
||||
cp xxdw32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp vimrun.exe dist/vim/$(VIMRTDIR)/vimrun.exe
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
@@ -590,22 +535,6 @@ dosbin_ole: dist no_title.vim dist/$(COMMENT_OLE)
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION)ole.zip vim <$(COMMENT_OLE)
|
||||
cp gvim_ole.pdb dist/gvim$(VERSION)ole.pdb
|
||||
|
||||
# make Win32s gvim
|
||||
dosbin_s: dist no_title.vim dist/$(COMMENT_W32S)
|
||||
-rm -rf dist/gvim$(VERSION)_s.zip
|
||||
-rm -rf dist/vim
|
||||
mkdir dist/vim
|
||||
mkdir dist/vim/$(VIMRTDIR)
|
||||
tar cf - \
|
||||
$(BIN_DOS) \
|
||||
| (cd dist/vim/$(VIMRTDIR); tar xf -)
|
||||
cp gvim_w32s.exe dist/vim/$(VIMRTDIR)/gvim.exe
|
||||
cp xxdd32.exe dist/vim/$(VIMRTDIR)/xxd.exe
|
||||
cp README_w32s.txt dist/vim/$(VIMRTDIR)
|
||||
cp installw32.exe dist/vim/$(VIMRTDIR)/install.exe
|
||||
cp uninstalw32.exe dist/vim/$(VIMRTDIR)/uninstal.exe
|
||||
cd dist && zip -9 -rD -z gvim$(VERSION)_s.zip vim <$(COMMENT_W32S)
|
||||
|
||||
html: dist dist/$(COMMENT_HTML)
|
||||
-rm -rf dist/vim$(VERSION)html.zip
|
||||
cd runtime/doc && zip -9 -z ../../dist/vim$(VERSION)html.zip *.html <../../dist/$(COMMENT_HTML)
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
Vim - the text editor - for Mac OS X
|
||||
|
||||
This is the official GitHub repository for MacVim, the macOS port of [vim](https://github.com/vim/vim). It is based on
|
||||
[Björn Winckler's repository](https://github.com/b4winckler/macvim), which was official until he stepped down as the
|
||||
maintainer of the port.
|
||||
|
||||
- MacVim homepage http://macvim-dev.github.io/macvim
|
||||
|
||||
- Vim README https://github.com/macvim-dev/macvim/blob/master/README_vim.md
|
||||
|
||||
+2
-1
@@ -26,9 +26,10 @@ build_script:
|
||||
test_script:
|
||||
- cd src/testdir
|
||||
# Testing with MSVC gvim
|
||||
- path C:\Python35-x64;%PATH%
|
||||
- nmake -f Make_dos.mak VIMPROG=..\gvim
|
||||
- nmake -f Make_dos.mak clean
|
||||
# Testing with MingW console version
|
||||
- nmake -f Make_dos.mak VIMPROG=..\vim
|
||||
|
||||
# vim: sw=2 sts=2 et ts=2 sr
|
||||
# vim: sw=2 sts=2 et ts=8 sr
|
||||
|
||||
@@ -188,6 +188,7 @@ Section "Vim executables and runtime files"
|
||||
File /oname=install.exe ${VIMSRC}\installw32.exe
|
||||
File /oname=uninstal.exe ${VIMSRC}\uninstalw32.exe
|
||||
File ${VIMSRC}\vimrun.exe
|
||||
File /oname=tee.exe ${VIMSRC}\teew32.exe
|
||||
File /oname=xxd.exe ${VIMSRC}\xxdw32.exe
|
||||
File ${VIMTOOLS}\diff.exe
|
||||
File ${VIMRT}\vimtutor.bat
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -93,7 +93,7 @@ function! s:GetBufferRubyEntity( name, type, ... )
|
||||
|
||||
let stopline = 1
|
||||
|
||||
let crex = '^\s*\<' . a:type . '\>\s*\<' . a:name . '\>\s*\(<\s*.*\s*\)\?'
|
||||
let crex = '^\s*\<' . a:type . '\>\s*\<' . escape(a:name, '*') . '\>\s*\(<\s*.*\s*\)\?'
|
||||
let [lnum,lcol] = searchpos( crex, 'w' )
|
||||
"let [lnum,lcol] = searchpairpos( crex . '\zs', '', '\(end\|}\)', 'w' )
|
||||
|
||||
@@ -149,7 +149,7 @@ function! s:GetRubyVarType(v)
|
||||
let ctors = ctors.'\)'
|
||||
|
||||
let fstr = '=\s*\([^ \t]\+.' . ctors .'\>\|[\[{"''/]\|%[xwQqr][(\[{@]\|[A-Za-z0-9@:\-()\.]\+...\?\|lambda\|&\)'
|
||||
let sstr = ''.a:v.'\>\s*[+\-*/]*'.fstr
|
||||
let sstr = ''.escape(a:v, '*').'\>\s*[+\-*/]*'.fstr
|
||||
let [lnum,lcol] = searchpos(sstr,'nb',stopline)
|
||||
if lnum != 0 && lcol != 0
|
||||
let str = matchstr(getline(lnum),fstr,lcol)
|
||||
@@ -266,6 +266,28 @@ class VimRubyCompletion
|
||||
end
|
||||
end
|
||||
|
||||
def load_gems
|
||||
fpath = VIM::evaluate("get(g:, 'rubycomplete_gemfile_path', 'Gemfile')")
|
||||
return unless File.file?(fpath) && File.readable?(fpath)
|
||||
want_bundler = VIM::evaluate("get(g:, 'rubycomplete_use_bundler')")
|
||||
parse_file = !want_bundler
|
||||
begin
|
||||
require 'bundler'
|
||||
Bundler.setup
|
||||
Bundler.require
|
||||
rescue Exception
|
||||
parse_file = true
|
||||
end
|
||||
if parse_file
|
||||
File.new(fpath).each_line do |line|
|
||||
begin
|
||||
require $1 if /\s*gem\s*['"]([^'"]+)/.match(line)
|
||||
rescue Exception
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def load_buffer_class(name)
|
||||
dprint "load_buffer_class(%s) START" % name
|
||||
classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")')
|
||||
@@ -588,6 +610,10 @@ class VimRubyCompletion
|
||||
load_rails
|
||||
end
|
||||
|
||||
want_gems = VIM::evaluate("get(g:, 'rubycomplete_load_gemfile')")
|
||||
load_gems unless want_gems.to_i.zero?
|
||||
|
||||
|
||||
input = VIM::Buffer.current.line
|
||||
cpos = VIM::Window.current.cursor[1] - 1
|
||||
input = input[0..cpos]
|
||||
@@ -678,7 +704,9 @@ class VimRubyCompletion
|
||||
cv = eval("self.class.constants")
|
||||
vartype = get_var_type( receiver )
|
||||
dprint "vartype: %s" % vartype
|
||||
if vartype != ''
|
||||
|
||||
invalid_vartype = ['', "gets"]
|
||||
if !invalid_vartype.include?(vartype)
|
||||
load_buffer_class( vartype )
|
||||
|
||||
begin
|
||||
@@ -706,7 +734,7 @@ class VimRubyCompletion
|
||||
methods.concat m.instance_methods(false)
|
||||
}
|
||||
end
|
||||
variables += add_rails_columns( "#{vartype}" ) if vartype && vartype.length > 0
|
||||
variables += add_rails_columns( "#{vartype}" ) if vartype && !invalid_vartype.include?(vartype)
|
||||
|
||||
when /^\(?\s*[A-Za-z0-9:^@.%\/+*\(\)]+\.\.\.?[A-Za-z0-9:^@.%\/+*\(\)]+\s*\)?\.([^.]*)/
|
||||
message = $1
|
||||
|
||||
@@ -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: 2016 Sep 04
|
||||
|
||||
hi clear
|
||||
set background=dark
|
||||
@@ -45,6 +45,7 @@ hi TabLineFill term=bold,reverse cterm=bold ctermfg=lightblue ctermbg=white g
|
||||
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 EndOfBuffer term=bold cterm=bold ctermfg=darkred guifg=#cc0000 gui=bold
|
||||
hi link IncSearch Visual
|
||||
hi link String Constant
|
||||
hi link Character Constant
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 Aug 09
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -19,7 +19,7 @@ CompilerSet makeprg=cucumber
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%W%m\ (Cucumber::Undefined),
|
||||
\%E%m\ (%.%#),
|
||||
\%E%m\ (%\\S%#),
|
||||
\%Z%f:%l,
|
||||
\%Z%f:%l:%.%#
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -15,7 +15,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=haml\ -c
|
||||
CompilerSet makeprg=haml
|
||||
|
||||
CompilerSet errorformat=
|
||||
\Haml\ %trror\ on\ line\ %l:\ %m,
|
||||
|
||||
@@ -27,7 +27,11 @@ CompilerSet errorformat=
|
||||
\%\\s%#[%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:\ %#%m,
|
||||
\%\\s%#%f:%l:,
|
||||
\%m\ [%f:%l]:
|
||||
\%m\ [%f:%l]:,
|
||||
\%+Erake\ aborted!,
|
||||
\%+EDon't\ know\ how\ to\ build\ task\ %.%#,
|
||||
\%+Einvalid\ option:%.%#,
|
||||
\%+Irake\ %\\S%\\+%\\s%\\+#\ %.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -22,9 +22,10 @@ CompilerSet errorformat=
|
||||
\%f:%l:\ %tarning:\ %m,
|
||||
\%E%.%#:in\ `load':\ %f:%l:%m,
|
||||
\%E%f:%l:in\ `%*[^']':\ %m,
|
||||
\%-Z\ \ \ \ \ \#\ %f:%l:%.%#,
|
||||
\%-Z\ \ \ \ \ %\\+\#\ %f:%l:%.%#,
|
||||
\%E\ \ %\\d%\\+)%.%#,
|
||||
\%C\ \ \ \ \ %m,
|
||||
\%C%\\s%#,
|
||||
\%-G%.%#
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
@@ -17,6 +17,8 @@ let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=testrb
|
||||
" CompilerSet makeprg=ruby\ -Itest
|
||||
" CompilerSet makeprg=m
|
||||
|
||||
CompilerSet errorformat=\%W\ %\\+%\\d%\\+)\ Failure:,
|
||||
\%C%m\ [%f:%l]:,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim compiler file
|
||||
" Compiler: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
@@ -15,7 +15,7 @@ endif
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
CompilerSet makeprg=sass\ -c
|
||||
CompilerSet makeprg=sass
|
||||
|
||||
CompilerSet errorformat=
|
||||
\%f:%l:%m\ (Sass::Syntax%trror),
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
" The default vimrc file.
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last change: 2016 Sep 02
|
||||
"
|
||||
" This is loaded if no vimrc file was found.
|
||||
" Except when Vim is run with "-u NONE" or "-C".
|
||||
" Individual settings can be reverted with ":set option&".
|
||||
" Other commands can be reverted as mentioned below.
|
||||
|
||||
" When started as "evim", evim.vim will already have done these settings.
|
||||
if v:progname =~? "evim"
|
||||
finish
|
||||
endif
|
||||
|
||||
" Bail out if something that ran earlier, e.g. a system wide vimrc, does not
|
||||
" want Vim to use these default values.
|
||||
if exists('skip_defaults_vim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Use Vim settings, rather than Vi settings (much better!).
|
||||
" This must be first, because it changes other options as a side effect.
|
||||
set nocompatible
|
||||
|
||||
" Allow backspacing over everything in insert mode.
|
||||
set backspace=indent,eol,start
|
||||
|
||||
set history=200 " keep 200 lines of command line history
|
||||
set ruler " show the cursor position all the time
|
||||
set showcmd " display incomplete commands
|
||||
set wildmenu " display completion matches in a status line
|
||||
|
||||
set ttimeout " time out for key codes
|
||||
set ttimeoutlen=100 " wait up to 100ms after Esc for special key
|
||||
|
||||
" Show @@@ in the last line if it is truncated.
|
||||
set display=truncate
|
||||
|
||||
" Show a few lines of context around the cursor. Note that this makes the
|
||||
" text scroll if you mouse-click near the start or end of the window.
|
||||
set scrolloff=5
|
||||
|
||||
" Do incremental searching when it's possible to timeout.
|
||||
if has('reltime')
|
||||
set incsearch
|
||||
endif
|
||||
|
||||
" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it
|
||||
" confusing.
|
||||
set nrformats-=octal
|
||||
|
||||
" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries.
|
||||
if has('win32')
|
||||
set guioptions-=t
|
||||
endif
|
||||
|
||||
" Don't use Ex mode, use Q for formatting.
|
||||
" Revert with ":unmap Q".
|
||||
map Q gq
|
||||
|
||||
" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo,
|
||||
" so that you can undo CTRL-U after inserting a line break.
|
||||
" Revert with ":iunmap <C-U>".
|
||||
inoremap <C-U> <C-G>u<C-U>
|
||||
|
||||
" In many terminal emulators the mouse works just fine. By enabling it you
|
||||
" can position the cursor, Visually select and scroll with the mouse.
|
||||
if has('mouse')
|
||||
set mouse=a
|
||||
endif
|
||||
|
||||
" Switch syntax highlighting on when the terminal has colors or when using the
|
||||
" GUI (which always has colors).
|
||||
if &t_Co > 2 || has("gui_running")
|
||||
" Revert with ":syntax off".
|
||||
syntax on
|
||||
|
||||
" I like highlighting strings inside C comments.
|
||||
" Revert with ":unlet c_comment_strings".
|
||||
let c_comment_strings=1
|
||||
endif
|
||||
|
||||
" Only do this part when compiled with support for autocommands.
|
||||
if has("autocmd")
|
||||
|
||||
" Enable file type detection.
|
||||
" Use the default filetype settings, so that mail gets 'tw' set to 72,
|
||||
" 'cindent' is on in C files, etc.
|
||||
" Also load indent files, to automatically do language-dependent indenting.
|
||||
" Revert with ":filetype off".
|
||||
filetype plugin indent on
|
||||
|
||||
" Put these in an autocmd group, so that you can revert them with:
|
||||
" ":augroup vimStartup | au! | augroup END"
|
||||
augroup vimStartup
|
||||
au!
|
||||
|
||||
" When editing a file, always jump to the last known cursor position.
|
||||
" Don't do it when the position is invalid or when inside an event handler
|
||||
" (happens when dropping a file on gvim).
|
||||
autocmd BufReadPost *
|
||||
\ if line("'\"") >= 1 && line("'\"") <= line("$") |
|
||||
\ exe "normal! g`\"" |
|
||||
\ endif
|
||||
|
||||
augroup END
|
||||
|
||||
endif " has("autocmd")
|
||||
|
||||
" Convenient command to see the difference between the current buffer and the
|
||||
" file it was loaded from, thus the changes you made.
|
||||
" Only define it when not defined already.
|
||||
" Revert with: ":delcommand DiffOrig".
|
||||
if !exists(":DiffOrig")
|
||||
command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
|
||||
\ | wincmd p | diffthis
|
||||
endif
|
||||
|
||||
if has('langmap') && exists('+langremap')
|
||||
" Prevent that the langmap option applies to characters that result from a
|
||||
" mapping. If set (default), this may break plugins (but it's backward
|
||||
" compatible).
|
||||
set nolangremap
|
||||
endif
|
||||
+35
-9
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2016 Apr 20
|
||||
*autocmd.txt* For Vim version 7.4. Last change: 2016 Sep 03
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -52,9 +52,6 @@ effects. Be careful not to destroy your text.
|
||||
==============================================================================
|
||||
2. Defining autocommands *autocmd-define*
|
||||
|
||||
Note: The ":autocmd" command cannot be followed by another command, since any
|
||||
'|' is considered part of the command.
|
||||
|
||||
*:au* *:autocmd*
|
||||
:au[tocmd] [group] {event} {pat} [nested] {cmd}
|
||||
Add {cmd} to the list of commands that Vim will
|
||||
@@ -67,6 +64,12 @@ Note: The ":autocmd" command cannot be followed by another command, since any
|
||||
The special pattern <buffer> or <buffer=N> defines a buffer-local autocommand.
|
||||
See |autocmd-buflocal|.
|
||||
|
||||
Note: The ":autocmd" command can only be followed by another command when the
|
||||
'|' appears before {cmd}. This works: >
|
||||
:augroup mine | au! BufRead | augroup END
|
||||
But this sees "augroup" as part of the defined command: >
|
||||
:augroup mine | au BufRead * set tw=70 | augroup END
|
||||
|
||||
Note that special characters (e.g., "%", "<cword>") in the ":autocmd"
|
||||
arguments are not expanded when the autocommand is defined. These will be
|
||||
expanded when the Event is recognized, and the {cmd} is executed. The only
|
||||
@@ -293,6 +296,9 @@ Name triggered by ~
|
||||
|CursorMoved| the cursor was moved in Normal mode
|
||||
|CursorMovedI| the cursor was moved in Insert mode
|
||||
|
||||
|WinNew| after creating a new window
|
||||
|TabNew| after creating a new tab page
|
||||
|TabClosed| after closing a tab page
|
||||
|WinEnter| after entering another window
|
||||
|WinLeave| before leaving a window
|
||||
|TabEnter| after entering another tab page
|
||||
@@ -413,8 +419,8 @@ 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.
|
||||
Don't change to another buffer or window, it
|
||||
will cause problems!
|
||||
When exiting and v:dying is 2 or more this
|
||||
event is not triggered.
|
||||
*BufWinEnter*
|
||||
@@ -778,7 +784,9 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|
||||
|:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
|
||||
|:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
|
||||
|:lgetfile|, |:laddfile|, |:helpgrep|,
|
||||
|:lhelpgrep|).
|
||||
|:lhelpgrep|, |:cexpr|, |:cgetexpr|,
|
||||
|:caddexpr|, |:cbuffer|, |:cgetbuffer|,
|
||||
|:caddbuffer|).
|
||||
The pattern is matched against the command
|
||||
being run. When |:grep| is used but 'grepprg'
|
||||
is set to "internal" it still matches "grep".
|
||||
@@ -874,6 +882,8 @@ Syntax When the 'syntax' option has been set. The
|
||||
where this option was set, and <amatch> for
|
||||
the new value of 'syntax'.
|
||||
See |:syn-on|.
|
||||
*TabClosed*
|
||||
TabClosed After closing a tab page.
|
||||
*TabEnter*
|
||||
TabEnter Just after entering a tab page. |tab-page|
|
||||
After triggering the WinEnter and before
|
||||
@@ -882,6 +892,10 @@ TabEnter Just after entering a tab page. |tab-page|
|
||||
TabLeave Just before leaving a tab page. |tab-page|
|
||||
A WinLeave event will have been triggered
|
||||
first.
|
||||
*TabNew*
|
||||
TabNew When a tab page was created. |tab-page|
|
||||
A WinEnter event will have been triggered
|
||||
first, TabEnter follows.
|
||||
*TermChanged*
|
||||
TermChanged After the value of 'term' has changed. Useful
|
||||
for re-loading the syntax file to update the
|
||||
@@ -967,6 +981,11 @@ WinLeave Before leaving a window. If the window to be
|
||||
WinLeave autocommands (but not for ":new").
|
||||
Not used for ":qa" or ":q" when exiting Vim.
|
||||
|
||||
*WinNew*
|
||||
WinNew When a new window was created. Not done for
|
||||
the fist window, when Vim has just started.
|
||||
Before a WinEnter event.
|
||||
|
||||
==============================================================================
|
||||
6. Patterns *autocmd-patterns* *{pat}*
|
||||
|
||||
@@ -1048,6 +1067,9 @@ Note that for all systems the '/' character is used for path separator (even
|
||||
MS-DOS and OS/2). This was done because the backslash is difficult to use
|
||||
in a pattern and to make the autocommands portable across different systems.
|
||||
|
||||
It is possible to use |pattern| items, but they may not work as expected,
|
||||
because of the translation done for the above.
|
||||
|
||||
*autocmd-changes*
|
||||
Matching with the pattern is done when an event is triggered. Changing the
|
||||
buffer name in one of the autocommands, or even deleting the buffer, does not
|
||||
@@ -1146,10 +1168,12 @@ name!
|
||||
different from existing {event} names, as this
|
||||
most likely will not do what you intended.
|
||||
|
||||
*:augroup-delete* *E367*
|
||||
*:augroup-delete* *E367* *W19* *E936*
|
||||
:aug[roup]! {name} Delete the autocmd group {name}. Don't use
|
||||
this if there is still an autocommand using
|
||||
this group! This is not checked.
|
||||
this group! You will get a warning if doing
|
||||
it anyway. when the group is the current group
|
||||
you will get error E936.
|
||||
|
||||
To enter autocommands for a specific group, use this method:
|
||||
1. Select the group with ":augroup {name}".
|
||||
@@ -1204,6 +1228,8 @@ option will not cause any commands to be executed.
|
||||
argument is present. You probably want to use
|
||||
<nomodeline> for events that are not used when loading
|
||||
a buffer, such as |User|.
|
||||
Processing modelines is also skipped when no
|
||||
matching autocommands were executed.
|
||||
|
||||
*:doautoa* *:doautoall*
|
||||
:doautoa[ll] [<nomodeline>] [group] {event} [fname]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*change.txt* For Vim version 7.4. Last change: 2016 Apr 12
|
||||
*change.txt* For Vim version 7.4. Last change: 2016 Sep 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -872,6 +872,7 @@ The numbering of "\1", "\2" etc. is done based on which "\(" comes first in
|
||||
the pattern (going left to right). When a parentheses group matches several
|
||||
times, the last one will be used for "\1", "\2", etc. Example: >
|
||||
:s/\(\(a[a-d] \)*\)/\2/ modifies "aa ab x" to "ab x"
|
||||
The "\2" is for "\(a[a-d] \)". At first it matches "aa ", secondly "ab ".
|
||||
|
||||
When using parentheses in combination with '|', like in \([ab]\)\|\([cd]\),
|
||||
either the first or second pattern in parentheses did not match, so either
|
||||
|
||||
+78
-26
@@ -1,4 +1,4 @@
|
||||
*channel.txt* For Vim version 7.4. Last change: 2016 Apr 26
|
||||
*channel.txt* For Vim version 7.4. Last change: 2016 Sep 07
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -6,13 +6,9 @@
|
||||
|
||||
Inter-process communication *channel*
|
||||
|
||||
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
|
||||
|
||||
Vim uses channels to communicate with other processes.
|
||||
A channel uses a socket or pipes *socket-interface*
|
||||
A channel uses a socket or pipes. *socket-interface*
|
||||
Jobs can be used to start processes and communicate with them.
|
||||
|
||||
Vim current supports up to 10 simultaneous channels.
|
||||
The Netbeans interface also uses a channel. |netbeans|
|
||||
|
||||
1. Overview |job-channel-overview|
|
||||
@@ -29,7 +25,9 @@ The Netbeans interface also uses a channel. |netbeans|
|
||||
|
||||
{Vi does not have any of these features}
|
||||
{only when compiled with the |+channel| feature for channel stuff}
|
||||
You can check this with: `has('channel')`
|
||||
{only when compiled with the |+job| feature for job stuff}
|
||||
You can check this with: `has('job')`
|
||||
|
||||
==============================================================================
|
||||
1. Overview *job-channel-overview*
|
||||
@@ -58,10 +56,10 @@ Common combination are:
|
||||
- Using a job connected through pipes in NL mode. E.g., to run a style
|
||||
checker and receive errors and warnings.
|
||||
- Using a deamon, connecting over a socket in JSON mode. E.g. to lookup
|
||||
crosss-refrences in a database.
|
||||
cross-references in a database.
|
||||
|
||||
==============================================================================
|
||||
2. Channel demo *channel-demo*
|
||||
2. Channel demo *channel-demo* *demoserver.py*
|
||||
|
||||
This requires Python. The demo program can be found in
|
||||
$VIMRUNTIME/tools/demoserver.py
|
||||
@@ -146,11 +144,19 @@ Use |ch_status()| to see if the channel could be opened.
|
||||
For all callbacks: Use |function()| to bind it to arguments
|
||||
and/or a Dictionary. Or use the form "dict.function" to bind
|
||||
the Dictionary.
|
||||
|
||||
Callbacks are only called at a "safe" moment, usually when Vim
|
||||
is waiting for the user to type a character. Vim does not use
|
||||
multi-threading.
|
||||
|
||||
*close_cb*
|
||||
"close_cb" A function that is called when the channel gets closed, other
|
||||
than by calling ch_close(). It should be defined like this: >
|
||||
func MyCloseHandler(channel)
|
||||
< *waittime*
|
||||
< Vim will invoke callbacks that handle data before invoking
|
||||
close_cb, thus when this function is called no more data will
|
||||
be received.
|
||||
*waittime*
|
||||
"waittime" The time to wait for the connection to be made in
|
||||
milliseconds. A negative number waits forever.
|
||||
|
||||
@@ -243,9 +249,15 @@ In which {number} is different every time. It must be used in the response
|
||||
This way Vim knows which sent message matches with which received message and
|
||||
can call the right handler. Also when the messages arrive out of order.
|
||||
|
||||
A newline character is terminating the JSON text. This can be used to
|
||||
separate the read text. For example, in Python:
|
||||
splitidx = read_text.find('\n')
|
||||
message = read_text[:splitidx]
|
||||
rest = read_text[splitidx + 1:]
|
||||
|
||||
The sender must always send valid JSON to Vim. Vim can check for the end of
|
||||
the message by parsing the JSON. It will only accept the message if the end
|
||||
was received.
|
||||
was received. A newline after the message is optional.
|
||||
|
||||
When the process wants to send a message to Vim without first receiving a
|
||||
message, it must use the number zero:
|
||||
@@ -254,10 +266,6 @@ message, it must use the number zero:
|
||||
Then channel handler will then get {response} converted to Vim types. If the
|
||||
channel does not have a handler the message is dropped.
|
||||
|
||||
On read error or ch_close(), when using a socket with RAW or NL mode, the
|
||||
string "DETACH\n" is sent, if still possible. The channel will then be
|
||||
inactive.
|
||||
|
||||
It is also possible to use ch_sendraw() and ch_evalraw() on a JSON or JS
|
||||
channel. The caller is then completely responsible for correct encoding and
|
||||
decoding.
|
||||
@@ -389,6 +397,9 @@ This {string} can also be JSON, use |json_encode()| to create it and
|
||||
|
||||
It is not possible to use |ch_evalexpr()| or |ch_sendexpr()| on a raw channel.
|
||||
|
||||
A String in Vim cannot contain NUL bytes. To send or receive NUL bytes read
|
||||
or write from a buffer. See |in_io-buffer| and |out_io-buffer|.
|
||||
|
||||
==============================================================================
|
||||
7. More channel functions *channel-more*
|
||||
|
||||
@@ -474,7 +485,7 @@ For example, to start a job and write its output in buffer "dummy": >
|
||||
|
||||
|
||||
Job input from a buffer ~
|
||||
|
||||
*in_io-buffer*
|
||||
To run a job that reads from a buffer: >
|
||||
let job = job_start({command},
|
||||
\ {'in_io': 'buffer', 'in_name': 'mybuffer'})
|
||||
@@ -490,6 +501,13 @@ A special mode is when "in_top" is set to zero and "in_bot" is not set: Every
|
||||
time a line is added to the buffer, the last-but-one line will be send to the
|
||||
job stdin. This allows for editing the last line and sending it when pressing
|
||||
Enter.
|
||||
*channel-close-in*
|
||||
When not using the special mode the pipe or socket will be closed after the
|
||||
last line has been written. This signals the reading end that the input
|
||||
finished. You can also use |ch_close_in()| to close it sooner.
|
||||
|
||||
NUL bytes in the text will be passed to the job (internally Vim stores these
|
||||
as NL bytes).
|
||||
|
||||
|
||||
Reading job output in the close callback ~
|
||||
@@ -562,20 +580,24 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
"out_cb": handler Callback for when there is something to read on
|
||||
stdout. Only for when the channel uses pipes. When
|
||||
"out_cb" wasn't set the channel callback is used.
|
||||
The two arguments are the channel and the message.
|
||||
|
||||
*job-err_cb* *err_cb*
|
||||
"err_cb": handler Callback for when there is something to read on
|
||||
stderr. Only for when the channel uses pipes. When
|
||||
"err_cb" wasn't set the channel callback is used.
|
||||
The two arguments are the channel and the message.
|
||||
*job-close_cb*
|
||||
"close_cb": handler Callback for when the channel is closed. Same as
|
||||
"close_cb" on ch_open().
|
||||
"close_cb" on |ch_open()|, see |close_cb|.
|
||||
*job-exit_cb*
|
||||
"exit_cb": handler Callback for when the job ends. The arguments are the
|
||||
job and the exit status.
|
||||
Vim checks about every 10 seconds for jobs that ended.
|
||||
The callback can also be triggered by calling
|
||||
|job_status()|.
|
||||
The check also be triggered by calling |job_status()|,
|
||||
which may then invoke the exit_cb handler.
|
||||
Note that data can be buffered, callbacks may still be
|
||||
called after the process ends.
|
||||
*job-timeout*
|
||||
"timeout" The time to wait for a request when blocking, E.g.
|
||||
when using ch_evalexpr(). In milliseconds. The
|
||||
@@ -619,25 +641,33 @@ See |job_setoptions()| and |ch_setoptions()|.
|
||||
"out_io": "null" disconnect stdout (goes to /dev/null)
|
||||
"out_io": "pipe" stdout is connected to the channel (default)
|
||||
"out_io": "file" stdout writes to a file
|
||||
"out_io": "buffer" stdout appends to a buffer
|
||||
"out_io": "buffer" stdout appends to a buffer (see below)
|
||||
"out_name": "/path/file" the name of the file or buffer to write to
|
||||
"out_buf": number the number of the buffer to write to
|
||||
"out_modifiable": 0 when writing to a buffer, 'modifiable' will be off
|
||||
(see below)
|
||||
"out_msg": 0 when writing to a new buffer, the first line will be
|
||||
set to "Reading from channel output..."
|
||||
|
||||
*job-err_io* *err_name* *err_buf*
|
||||
"err_io": "out" stderr messages to go to stdout
|
||||
"err_io": "null" disconnect stderr (goes to /dev/null)
|
||||
"err_io": "pipe" stderr is connected to the channel (default)
|
||||
"err_io": "file" stderr writes to a file
|
||||
"err_io": "buffer" stderr appends to a buffer
|
||||
"err_io": "buffer" stderr appends to a buffer (see below)
|
||||
"err_name": "/path/file" the name of the file or buffer to write to
|
||||
"err_buf": number the number of the buffer to write to
|
||||
"err_modifiable": 0 when writing to a buffer, 'modifiable' will be off
|
||||
(see below)
|
||||
"err_msg": 0 when writing to a new buffer, the first line will be
|
||||
set to "Reading from channel error..."
|
||||
|
||||
"block_write": number only for testing: pretend every other write to stdin
|
||||
will block
|
||||
|
||||
|
||||
Writing to a buffer ~
|
||||
|
||||
*out_io-buffer*
|
||||
When the out_io or err_io mode is "buffer" and there is a callback, the text
|
||||
is appended to the buffer before invoking the callback.
|
||||
|
||||
@@ -649,19 +679,41 @@ When using JS or JSON mode with "buffer", only messages with zero or negative
|
||||
ID will be added to the buffer, after decoding + encoding. Messages with a
|
||||
positive number will be handled by a callback, commands are handled as usual.
|
||||
|
||||
The name of the buffer is compared the full name of existing buffers. If
|
||||
there is a match that buffer is used. Otherwise a new buffer is created.
|
||||
Use an empty name to always create a new buffer. |ch_getbufnr()| can then be
|
||||
used to get the buffer number.
|
||||
The name of the buffer from "out_name" or "err_name" is compared the full name
|
||||
of existing buffers, also after expanding the name for the current directory.
|
||||
E.g., when a buffer was created with ":edit somename" and the buffer name is
|
||||
"somename" it will use that buffer.
|
||||
|
||||
If there is no matching buffer a new buffer is created. Use an empty name to
|
||||
always create a new buffer. |ch_getbufnr()| can then be used to get the
|
||||
buffer number.
|
||||
|
||||
For a new buffer 'buftype' is set to "nofile" and 'bufhidden' to "hide". If
|
||||
you prefer other settings, create the buffer first and pass the buffer number.
|
||||
*out_modifiable* *err_modifiable*
|
||||
The "out_modifiable" and "err_modifiable" options can be used to set the
|
||||
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
|
||||
means that lines will be appended to the buffer, but the user can't easily
|
||||
change the buffer.
|
||||
*out_msg* *err_msg*
|
||||
The "out_msg" option can be used to specify whether a new buffer will have the
|
||||
first line set to "Reading from channel output...". The default is to add the
|
||||
message. "err_msg" does the same for channel error.
|
||||
|
||||
'modifiable' option off, or write to a buffer that has 'modifiable' off. That
|
||||
means that lines will be appended to the buffer, but the user can't easily
|
||||
change the buffer.
|
||||
|
||||
When an existing buffer is to be written where 'modifiable' is off and the
|
||||
"out_modifiable" or "err_modifiable" options is not zero, an error is given
|
||||
and the buffer will not be written to.
|
||||
|
||||
When the buffer written to is displayed in a window and the cursor is in the
|
||||
first column of the last line, the cursor will be moved to the newly added
|
||||
line and the window is scrolled up to show the cursor if needed.
|
||||
|
||||
Undo is synced for every added line.
|
||||
Undo is synced for every added line. NUL bytes are accepted (internally Vim
|
||||
stores these as NL bytes).
|
||||
|
||||
|
||||
Writing to a file ~
|
||||
|
||||
+15
-1
@@ -1,4 +1,4 @@
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2015 Dec 17
|
||||
*cmdline.txt* For Vim version 7.4. Last change: 2016 Aug 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -423,12 +423,26 @@ CTRL-L A match is done on the pattern in front of the cursor. If
|
||||
If there are multiple matches the longest common part is
|
||||
inserted in place of the pattern. If the result is shorter
|
||||
than the pattern, no completion is done.
|
||||
*/_CTRL-L*
|
||||
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.
|
||||
*c_CTRL-G* */_CTRL-G*
|
||||
CTRL-G When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-G will move
|
||||
to the next match (does not take |search-offset| into account)
|
||||
Use CTRL-T to move to the previous match. Hint: on a regular
|
||||
keyboard T is above G.
|
||||
*c_CTRL-T* */_CTRL-T*
|
||||
CTRL-T When 'incsearch' is set, entering a search pattern for "/" or
|
||||
"?" and the current match is displayed then CTRL-T will move
|
||||
to the previous match (does not take |search-offset| into
|
||||
account).
|
||||
Use CTRL-G to move to the next match. Hint: on a regular
|
||||
keyboard T is above G.
|
||||
|
||||
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
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
*diff.txt* For Vim version 7.4. Last change: 2015 Nov 01
|
||||
*diff.txt* For Vim version 7.4. Last change: 2016 Aug 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
||||
|
||||
*diff* *vimdiff* *gvimdiff* *diff-mode*
|
||||
This file describes the |+diff| feature: Showing differences between two,
|
||||
three or four versions of the same file.
|
||||
This file describes the |+diff| feature: Showing differences between two to
|
||||
eight versions of the same file.
|
||||
|
||||
The basics are explained in section |08.7| of the user manual.
|
||||
|
||||
@@ -117,7 +117,7 @@ To make these commands use a vertical split, prepend |:vertical|. Examples: >
|
||||
If you always prefer a vertical split include "vertical" in 'diffopt'.
|
||||
|
||||
*E96*
|
||||
There can be up to four buffers with 'diff' set.
|
||||
There can be up to eight buffers with 'diff' set.
|
||||
|
||||
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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*editing.txt* For Vim version 7.4. Last change: 2016 Mar 28
|
||||
*editing.txt* For Vim version 7.4. Last change: 2016 Aug 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1114,10 +1114,12 @@ The names can be in upper- or lowercase.
|
||||
edited. See |:confirm| and 'confirm'. {not in Vi}
|
||||
|
||||
:q[uit]! Quit without writing, also when the current buffer has
|
||||
changes. If this is the last window and there is a
|
||||
modified hidden buffer, the current buffer is
|
||||
abandoned and the first changed hidden buffer becomes
|
||||
the current buffer.
|
||||
changes. The buffer is unloaded, also when it has
|
||||
'hidden' set.
|
||||
If this is the last window and there is a modified
|
||||
hidden buffer, the current buffer is abandoned and the
|
||||
first changed hidden buffer becomes the current
|
||||
buffer.
|
||||
Use ":qall!" to exit always.
|
||||
|
||||
:cq[uit] Quit always, without writing, and return an error
|
||||
|
||||
+1089
-406
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2016 Apr 30
|
||||
*filetype.txt* For Vim version 7.4. Last change: 2016 Sep 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -579,12 +579,21 @@ CTRL-] Jump to the manual page for the word under the cursor.
|
||||
CTRL-T Jump back to the previous manual page.
|
||||
q Same as ":quit"
|
||||
|
||||
To use a vertical split instead of horizontal: >
|
||||
let g:ft_man_open_mode = 'vert'
|
||||
To use a new tab: >
|
||||
let g:ft_man_open_mode = 'tab'
|
||||
|
||||
To enable folding use this: >
|
||||
let g:ft_man_folding_enable = 1
|
||||
If you do not like the default folding, use an autocommand to add your desired
|
||||
folding style instead. For example: >
|
||||
autocmd FileType man setlocal foldmethod=indent foldenable
|
||||
|
||||
You may also want to set 'keywordprg' to make the |K| command open a manual
|
||||
page in a Vim window: >
|
||||
set keywordprg=:Man
|
||||
|
||||
|
||||
MANPAGER *manpager.vim*
|
||||
|
||||
@@ -635,6 +644,17 @@ These maps can be disabled with >
|
||||
:let g:no_pdf_maps = 1
|
||||
<
|
||||
|
||||
PYTHON *ft-python-plugin* *PEP8*
|
||||
|
||||
By default the following options are set, in accordance with PEP8: >
|
||||
|
||||
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
|
||||
|
||||
To disable this behaviour, set the following variable in your vimrc: >
|
||||
|
||||
let g:python_recommended_style = 0
|
||||
|
||||
|
||||
RPM SPEC *ft-spec-plugin*
|
||||
|
||||
Since the text for this plugin is rather long it has been put in a separate
|
||||
|
||||
@@ -111,8 +111,8 @@ to your .gvimrc file to revert back to the default Vim tab label.
|
||||
*macvim-options*
|
||||
These are the non-standard options that MacVim supports:
|
||||
'antialias' 'blurradius' 'fullscreen'
|
||||
'fuoptions' 'macligatures' 'macmeta' 'toolbariconsize'
|
||||
'transparency'
|
||||
'fuoptions' 'macligatures' 'macmeta' 'macthinstrokes'
|
||||
'toolbariconsize' 'transparency'
|
||||
|
||||
*macvim-commands*
|
||||
These are the non-standard commands that MacVim supports:
|
||||
@@ -256,6 +256,7 @@ Here is a list of relevant dictionary entries:
|
||||
KEY VALUE ~
|
||||
MMCellWidthMultiplier width of a normal glyph in em units [float]
|
||||
MMDialogsTrackPwd open/save dialogs track the Vim pwd [bool]
|
||||
MMFullScreenFadeTime fade delay for non-native fullscreen [float]
|
||||
MMLoginShellArgument login shell parameter [string]
|
||||
MMLoginShellCommand which shell to use to launch Vim [string]
|
||||
MMNoFontSubstitution disable automatic font substitution [bool]
|
||||
|
||||
+39
-23
@@ -1,4 +1,4 @@
|
||||
*gui_x11.txt* For Vim version 7.4. Last change: 2016 Apr 08
|
||||
*gui_x11.txt* For Vim version 7.4. Last change: 2016 Aug 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -430,6 +430,9 @@ These are the different looks:
|
||||
GNOME is compiled with if it was found by configure and the
|
||||
--enable-gnome-check argument was used.
|
||||
|
||||
Note: Avoid use of --enable-gnome-check with GTK+ 3 GUI build. The
|
||||
functionality mentioned above is consolidated in GTK+ 3.
|
||||
|
||||
|
||||
GNOME session support *gui-gnome-session* *gnome-session*
|
||||
|
||||
@@ -466,20 +469,37 @@ continues on Yzis: https://github.com/chrizel/Yzis.
|
||||
==============================================================================
|
||||
8. Compiling *gui-x11-compiling*
|
||||
|
||||
If using X11, Vim's Makefile will by default first try to find the necessary
|
||||
GTK+ files on your system. If the GTK+ files cannot be found, then the Motif
|
||||
files will be searched for. Finally, if this fails, the Athena files will be
|
||||
searched for. If all three fail, the GUI will be disabled.
|
||||
If using X11, Vim's configure will by default first try to find the necessary
|
||||
GTK+ files on your system. When both GTK+ 2 and GTK+ 3 are available, GTK+ 2
|
||||
will be chosen unless --enable-gui=gtk3 is passed explicitly to configure.
|
||||
|
||||
For GTK+, Vim's configuration process requires that GTK+ be properly
|
||||
installed. That is, the shell script 'gtk-config' must be in your PATH, and
|
||||
you can already successful compile, build, and execute a GTK+ program. The
|
||||
reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS)
|
||||
are obtained through the 'gtk-config' shell script.
|
||||
If the GTK+ files cannot be found, then the Motif files will be searched for.
|
||||
Finally, if this fails, the Athena files will be searched for. If all three
|
||||
fail, the GUI will be disabled.
|
||||
|
||||
If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
|
||||
to ./configure. Optionally, support for GNOME 2 will be compiled if the
|
||||
--enable-gnome-check option is also given.
|
||||
For GTK+, Vim's configuration process uses pkg-config(1) to check if the
|
||||
GTK+ required for a specified build is properly installed and usable.
|
||||
Accordingly, it is a good idea to make sure before running configure that
|
||||
your system has a working pkg-config together with the .pc file of the
|
||||
required GTK+. For that, say, run the following on the command line to see if
|
||||
your pkg-config works with your GTK+ 2: >
|
||||
|
||||
$ pkgconfig --modversion gtk+-2.0
|
||||
|
||||
Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version
|
||||
number of your GTK+, you can proceed; if not, you probably need to do some
|
||||
system administration chores to set up pkg-config and GTK+ correctly.
|
||||
|
||||
The GTK+ 2 GUI is built by default. Therefore, you usually don't need to pass
|
||||
any options such as --enable-gui=gtk2 to configure and build that.
|
||||
|
||||
Optionally, the GTK+ 2 GUI can consolidate the GNOME 2 support. This support
|
||||
is enabled by passing --enable-gnome-check to configure.
|
||||
|
||||
If you want to build the GTK+ 3 GUI, you have to pass --enable-gui=gtk3
|
||||
explicitly to configure, and avoid passing --enable-gnome-check to that, as
|
||||
the functionality of the GNOME 2 support has already been consolidated in
|
||||
GTK+ 3.
|
||||
|
||||
Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
|
||||
files in a directory where configure doesn't look, edit the Makefile to enter
|
||||
@@ -487,18 +507,14 @@ the names of the directories. Search for "GUI_INC_LOC" for an example to set
|
||||
the Motif directories, "CONF_OPT_X" for Athena.
|
||||
|
||||
*gui-x11-gtk*
|
||||
At the time of this writing, GTK+ version 1.0.6 and 1.2 are outdated. It
|
||||
is suggested that you use GTK 2. The GTK 1 support will most likely be
|
||||
dropped soon.
|
||||
Currently, Vim supports both GTK+ 2 and GTK+ 3.
|
||||
|
||||
For the GTK+ 2 GUI, using the latest release of the GTK+ 2.0 or GTK+ 2.2
|
||||
series is recommended.
|
||||
The GTK+ 2 GUI requires GTK+ 2.2 or later.
|
||||
|
||||
Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
|
||||
has not been tested with Vim and is also unsupported. Also, it's unlikely to
|
||||
even compile since GTK+ GUI uses parts of the generic X11 code. This might
|
||||
change in distant future; particularly because getting rid of the X11 centric
|
||||
code parts is also required for GTK+ framebuffer support.
|
||||
Although the GTK+ 3 GUI is written in such a way that the source code can be
|
||||
compiled against all versions of the 3.x series, we recommend GTK+ 3.10 or
|
||||
later because of its substantial implementation changes in redraw done at
|
||||
that version.
|
||||
|
||||
*gui-x11-motif*
|
||||
For Motif, you need at least Motif version 1.2 and/or X11R5. Motif 2.0 and
|
||||
|
||||
@@ -129,6 +129,7 @@ The available subcommands are:
|
||||
6 or e: Find this egrep pattern
|
||||
7 or f: Find this file
|
||||
8 or i: Find files #including this file
|
||||
9 or a: Find places where this symbol is assigned a value
|
||||
|
||||
For all types, except 4 and 6, leading white space for {name} is
|
||||
removed. For 4 and 6 there is exactly one space between {querytype}
|
||||
@@ -255,13 +256,13 @@ started will have no effect!
|
||||
{not available when compiled without the |+quickfix| feature}
|
||||
'cscopequickfix' specifies whether to use quickfix window to show cscope
|
||||
results. This is a list of comma-separated values. Each item consists of
|
||||
|cscope-find| command (s, g, d, c, t, e, f or i) and flag (+, - or 0).
|
||||
|cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0).
|
||||
'+' indicates that results must be appended to quickfix window,
|
||||
'-' implies previous results clearance, '0' or command absence - don't use
|
||||
quickfix. Search is performed from start until first command occurrence.
|
||||
The default value is "" (don't use quickfix anyway). The following value
|
||||
seems to be useful: >
|
||||
:set cscopequickfix=s-,c-,d-,i-,t-,e-
|
||||
:set cscopequickfix=s-,c-,d-,i-,t-,e-,a-
|
||||
<
|
||||
*cscopetag* *cst*
|
||||
If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t"
|
||||
@@ -422,6 +423,7 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
|
||||
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-_>a :cs find a <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
" Using 'CTRL-spacebar' then a search type makes the vim window
|
||||
" split horizontally, with search result displayed in
|
||||
@@ -435,6 +437,7 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
|
||||
nmap <C-Space>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
|
||||
nmap <C-Space>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-Space>d :scs find d <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-Space>a :scs find a <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
" Hitting CTRL-space *twice* before the search type does a vertical
|
||||
" split instead of a horizontal one
|
||||
@@ -453,6 +456,8 @@ Cscope Home Page (http://cscope.sourceforge.net/): >
|
||||
\:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
|
||||
nmap <C-Space><C-Space>d
|
||||
\:vert scs find d <C-R>=expand("<cword>")<CR><CR>
|
||||
nmap <C-Space><C-Space>a
|
||||
\:vert scs find a <C-R>=expand("<cword>")<CR><CR>
|
||||
|
||||
==============================================================================
|
||||
7. Cscope availability and information *cscope-info*
|
||||
|
||||
@@ -59,6 +59,12 @@ Example:
|
||||
EOF
|
||||
endfunction
|
||||
<
|
||||
To see what version of Lua you have: >
|
||||
:lua print(_VERSION)
|
||||
|
||||
If you use LuaJIT you can also use this: >
|
||||
:lua print(jit.version)
|
||||
<
|
||||
|
||||
*:luado*
|
||||
:[range]luado {body} Execute Lua function "function (line, linenr) {body}
|
||||
|
||||
@@ -97,6 +97,9 @@ procedures is restricted.
|
||||
:mzscheme (require (prefix vim- vimext)) ; for MzScheme < 4.x
|
||||
:mzscheme (require (prefix-in vim- 'vimext)) ; MzScheme 4.x
|
||||
:mzscheme (vim-set-buff-line 10 "This is line #10")
|
||||
|
||||
To see what version of MzScheme you have: >
|
||||
:mzscheme (display (version))
|
||||
<
|
||||
Inline script usage: >
|
||||
function! <SID>SetFirstLine()
|
||||
|
||||
@@ -83,6 +83,9 @@ Example vim script: >
|
||||
EOF
|
||||
endfunction
|
||||
<
|
||||
To see what version of Perl you have: >
|
||||
:perl print $^V
|
||||
<
|
||||
|
||||
*:perldo* *:perld*
|
||||
:[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the
|
||||
|
||||
+34
-14
@@ -1,4 +1,4 @@
|
||||
*if_pyth.txt* For Vim version 7.4. Last change: 2015 Nov 10
|
||||
*if_pyth.txt* For Vim version 7.4. Last change: 2016 Sep 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Paul Moore
|
||||
@@ -56,7 +56,11 @@ Example: >
|
||||
print 'EAT ME'
|
||||
EOF
|
||||
endfunction
|
||||
<
|
||||
|
||||
To see what version of Python you have: >
|
||||
:python import sys
|
||||
:python print(sys.version)
|
||||
|
||||
Note: Python is very sensitive to the indenting. Make sure the "class" line
|
||||
and "EOF" do not have any indent.
|
||||
|
||||
@@ -659,19 +663,31 @@ vim.Function object *python-Function*
|
||||
`vim.bindeval('function(%s)'%json.dumps(name))`.
|
||||
|
||||
Attributes (read-only):
|
||||
Attribute Description ~
|
||||
name Function name.
|
||||
args `None` or a |python-List| object with arguments. Note that
|
||||
this is a copy of the arguments list, constructed each time
|
||||
you request this attribute. Modifications made to the list
|
||||
will be ignored (but not to the containers inside argument
|
||||
list: this is like |copy()| and not |deepcopy()|).
|
||||
self `None` or a |python-Dictionary| object with self
|
||||
dictionary. Note that explicit `self` keyword used when
|
||||
calling resulting object overrides this attribute.
|
||||
Attribute Description ~
|
||||
name Function name.
|
||||
args `None` or a |python-List| object with arguments. Note
|
||||
that this is a copy of the arguments list, constructed
|
||||
each time you request this attribute. Modifications made
|
||||
to the list will be ignored (but not to the containers
|
||||
inside argument list: this is like |copy()| and not
|
||||
|deepcopy()|).
|
||||
self `None` or a |python-Dictionary| object with self
|
||||
dictionary. Note that explicit `self` keyword used when
|
||||
calling resulting object overrides this attribute.
|
||||
auto_rebind Boolean. True if partial created from this Python object
|
||||
and stored in the VimL dictionary should be automatically
|
||||
rebound to the dictionary it is stored in when this
|
||||
dictionary is indexed. Exposes Vim internal difference
|
||||
between `dict.func` (auto_rebind=True) and
|
||||
`function(dict.func,dict)` (auto_rebind=False). This
|
||||
attribute makes no sense if `self` attribute is `None`.
|
||||
|
||||
Constructor additionally accepts `args` and `self` keywords. If any of
|
||||
them is given then it constructs a partial, see |function()|.
|
||||
Constructor additionally accepts `args`, `self` and `auto_rebind`
|
||||
keywords. If `args` and/or `self` argument is given then it constructs
|
||||
a partial, see |function()|. `auto_rebind` is only used when `self`
|
||||
argument is given, otherwise it is assumed to be `True` regardless of
|
||||
whether it was given or not. If `self` is given then it defaults to
|
||||
`False`.
|
||||
|
||||
Examples: >
|
||||
f = vim.Function('tr') # Constructor
|
||||
@@ -733,6 +749,10 @@ The `:py3` and `:python3` commands work similar to `:python`. A simple check
|
||||
if the `:py3` command is working: >
|
||||
:py3 print("Hello")
|
||||
< *:py3file*
|
||||
To see what version of Python you have: >
|
||||
:py3 import sys
|
||||
:py3 print(sys.version)
|
||||
|
||||
The `:py3file` command works similar to `:pyfile`.
|
||||
*:py3do*
|
||||
The `:py3do` command works similar to `:pydo`.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*if_ruby.txt* For Vim version 7.4. Last change: 2015 Dec 03
|
||||
*if_ruby.txt* For Vim version 7.4. Last change: 2016 Sep 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Shugo Maeda
|
||||
@@ -58,6 +58,9 @@ Example Vim script: >
|
||||
EOF
|
||||
endfunction
|
||||
<
|
||||
To see what version of Ruby you have: >
|
||||
:ruby print RUBY_VERSION
|
||||
<
|
||||
|
||||
*:rubydo* *:rubyd* *E265*
|
||||
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
|
||||
@@ -205,7 +208,7 @@ MS-Windows ~
|
||||
You need to install the right version of Ruby for this to work. You can find
|
||||
the package to download from:
|
||||
http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html
|
||||
Currently that is ruby-1.9.1-p429-i386-mswin32.zip
|
||||
Currently that is ruby-1.9.2-p136-i386-mswin32.zip
|
||||
|
||||
To use the Ruby interface the Ruby DLL must be in your search path. In a
|
||||
console window type "path" to see what directories are used. The 'rubydll'
|
||||
|
||||
@@ -54,6 +54,9 @@ Example: >
|
||||
EOF
|
||||
endfunction
|
||||
<
|
||||
To see what version of Tcl you have: >
|
||||
:tcl puts [info patchlevel]
|
||||
<
|
||||
|
||||
*:tcldo* *:tcld*
|
||||
:[range]tcld[o] {cmd} Execute Tcl command {cmd} for each line in [range]
|
||||
|
||||
@@ -813,7 +813,7 @@ PHP indenting can be altered in several ways by modifying the values of some
|
||||
global variables:
|
||||
|
||||
*php-comment* *PHP_autoformatcomment*
|
||||
To not enable auto-formating of comments by default (if you want to use your
|
||||
To not enable auto-formatting of comments by default (if you want to use your
|
||||
own 'formatoptions'): >
|
||||
:let g:PHP_autoformatcomment = 0
|
||||
|
||||
|
||||
+11
-5
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 7.4. Last change: 2016 Apr 12
|
||||
*index.txt* For Vim version 7.4. Last change: 2016 Aug 27
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -984,7 +984,7 @@ tag command action in Command-line editing mode ~
|
||||
|c_CTRL-E| CTRL-E cursor to end of command-line
|
||||
|'cedit'| CTRL-F default value for 'cedit': opens the
|
||||
command-line window; otherwise not used
|
||||
CTRL-G not used
|
||||
|c_CTRL-G| CTRL-G next match when 'incsearch' is active
|
||||
|c_<BS>| <BS> delete the character in front of the cursor
|
||||
|c_digraph| {char1} <BS> {char2}
|
||||
enter digraph when 'digraph' is on
|
||||
@@ -1017,7 +1017,7 @@ tag command action in Command-line editing mode ~
|
||||
insert the contents of a register or object
|
||||
under the cursor literally
|
||||
CTRL-S (used for terminal control flow)
|
||||
CTRL-T not used
|
||||
|c_CTRL-T| CTRL-T previous match when 'incsearch' is active
|
||||
|c_CTRL-U| CTRL-U remove all characters
|
||||
|c_CTRL-V| CTRL-V insert next non-digit literally, insert three
|
||||
digit decimal number as a single byte.
|
||||
@@ -1139,6 +1139,7 @@ tag command action ~
|
||||
|:caddfile| :caddf[ile] add error message to current quickfix list
|
||||
|:call| :cal[l] call a function
|
||||
|:catch| :cat[ch] part of a :try command
|
||||
|:cbottom| :cbo[ttom] scroll to the bottom of the quickfix window
|
||||
|:cbuffer| :cb[uffer] parse error messages and jump to first error
|
||||
|:cc| :cc go to specific error
|
||||
|:cclose| :ccl[ose] close quickfix window
|
||||
@@ -1156,8 +1157,10 @@ tag command action ~
|
||||
|:chdir| :chd[ir] change directory
|
||||
|:checkpath| :che[ckpath] list included files
|
||||
|:checktime| :checkt[ime] check timestamp of loaded buffers
|
||||
|:clist| :cl[ist] list all errors
|
||||
|:chistory| :chi[story] list the error lists
|
||||
|:clast| :cla[st] go to the specified error, default last one
|
||||
|:clearjumps| :cle[arjumps] clear the jump list
|
||||
|:clist| :cl[ist] list all errors
|
||||
|:close| :clo[se] close current window
|
||||
|:cmap| :cm[ap] like ":map" but for Command-line mode
|
||||
|:cmapclear| :cmapc[lear] clear all mappings for Command-line mode
|
||||
@@ -1204,7 +1207,7 @@ tag command action ~
|
||||
|:display| :di[splay] display registers
|
||||
|:djump| :dj[ump] jump to #define
|
||||
|:dl| :dl short for |:delete| with the 'l' flag
|
||||
|:dl| :del[ete]l short for |:delete| with the 'l' flag
|
||||
|:del| :del[ete]l short for |:delete| with the 'l' flag
|
||||
|:dlist| :dli[st] list #defines
|
||||
|:doautocmd| :do[autocmd] apply autocommands to current buffer
|
||||
|:doautoall| :doautoa[ll] apply autocommands for all loaded buffers
|
||||
@@ -1236,6 +1239,7 @@ tag command action ~
|
||||
|:file| :f[ile] show or set the current file name
|
||||
|:files| :files list all files in the buffer list
|
||||
|:filetype| :filet[ype] switch file type detection on/off
|
||||
|:filter| :filt[er] filter output of following command
|
||||
|:find| :fin[d] find file in 'path' and edit it
|
||||
|:finally| :fina[lly] part of a :try command
|
||||
|:finish| :fini[sh] quit sourcing a Vim script
|
||||
@@ -1298,6 +1302,7 @@ tag command action ~
|
||||
|:last| :la[st] go to the last file in the argument list
|
||||
|:language| :lan[guage] set the language (locale)
|
||||
|:later| :lat[er] go to newer change, redo
|
||||
|:lbottom| :lbo[ttom] scroll to the bottom of the location window
|
||||
|:lbuffer| :lb[uffer] parse locations and jump to first location
|
||||
|:lcd| :lc[d] change directory locally
|
||||
|:lchdir| :lch[dir] change directory locally
|
||||
@@ -1317,6 +1322,7 @@ tag command action ~
|
||||
|:lgrep| :lgr[ep] run 'grepprg' and jump to first match
|
||||
|:lgrepadd| :lgrepa[dd] like :grep, but append to current list
|
||||
|:lhelpgrep| :lh[elpgrep] like ":helpgrep" but uses location list
|
||||
|:lhistory| :lhi[story] list the location lists
|
||||
|:ll| :ll go to specific location
|
||||
|:llast| :lla[st] go to the specified location, default last one
|
||||
|:llist| :lli[st] list all locations
|
||||
|
||||
+32
-1
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 7.4. Last change: 2016 Jan 10
|
||||
*map.txt* For Vim version 7.4. Last change: 2016 Aug 26
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -431,6 +431,9 @@ with a space.
|
||||
Note: When using mappings for Visual mode, you can use the "'<" mark, which
|
||||
is the start of the last selected Visual area in the current buffer |'<|.
|
||||
|
||||
The |:filter| command can be used to select what mappings to list. The
|
||||
pattern is matched against the {lhs} and {rhs} in the raw form.
|
||||
|
||||
*:map-verbose*
|
||||
When 'verbose' is non-zero, listing a key map will also display where it was
|
||||
last defined. Example: >
|
||||
@@ -1177,6 +1180,10 @@ scripts.
|
||||
" Command has the -register attribute
|
||||
b Command is local to current buffer
|
||||
(see below for details on attributes)
|
||||
The list can be filtered on command name with
|
||||
|:filter|, e.g., to list all commands with "Pyth" in
|
||||
the name: >
|
||||
filter Pyth command
|
||||
|
||||
:com[mand] {cmd} List the user-defined commands that start with {cmd}
|
||||
|
||||
@@ -1274,6 +1281,7 @@ completion can be enabled:
|
||||
-complete=mapping mapping name
|
||||
-complete=menu menus
|
||||
-complete=option options
|
||||
-complete=packadd optional package |pack-add| names
|
||||
-complete=shellcmd Shell command
|
||||
-complete=sign |:sign| suboptions
|
||||
-complete=syntax syntax file names |'syntax'|
|
||||
@@ -1411,6 +1419,29 @@ The valid escape sequences are
|
||||
<bang> (See the '-bang' attribute) Expands to a ! if the
|
||||
command was executed with a ! modifier, otherwise
|
||||
expands to nothing.
|
||||
*<mods>*
|
||||
<mods> The command modifiers, if specified. Otherwise, expands to
|
||||
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|
||||
|:botright|, |:browse|, |:confirm|, |:hide|, |:keepalt|,
|
||||
|:keepjumps|, |:keepmarks|, |:keeppatterns|, |:leftabove|,
|
||||
|:lockmarks|, |:noswapfile| |:rightbelow|, |:silent|, |:tab|,
|
||||
|:topleft|, |:verbose|, and |:vertical|.
|
||||
Note that these are not yet supported: |:noautocmd|,
|
||||
|:sandbox| and |:unsilent|.
|
||||
Examples: >
|
||||
command! -nargs=+ -complete=file MyEdit
|
||||
\ for f in expand(<q-args>, 0, 1) |
|
||||
\ exe '<mods> split ' . f |
|
||||
\ endfor
|
||||
|
||||
function! SpecialEdit(files, mods)
|
||||
for f in expand(a:files, 0, 1)
|
||||
exe a:mods . ' split ' . f
|
||||
endfor
|
||||
endfunction
|
||||
command! -nargs=+ -complete=file Sedit
|
||||
\ call SpecialEdit(<q-args>, <q-mods>)
|
||||
<
|
||||
*<reg>* *<register>*
|
||||
<reg> (See the '-register' attribute) The optional register,
|
||||
if specified. Otherwise, expands to nothing. <register>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*mbyte.txt* For Vim version 7.4. Last change: 2013 May 18
|
||||
*mbyte.txt* For Vim version 7.4. Last change: 2016 Jul 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
||||
@@ -1010,6 +1010,7 @@ text, you can use the 'keymap' option. This will translate one or more
|
||||
(English) characters to another (non-English) character. This only happens
|
||||
when typing text, not when typing Vim commands. This avoids having to switch
|
||||
between two keyboard settings.
|
||||
{only available when compiled with the |+keymap| feature}
|
||||
|
||||
The value of the 'keymap' option specifies a keymap file to use. The name of
|
||||
this file is one of these two:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*message.txt* For Vim version 7.4. Last change: 2016 Apr 14
|
||||
*message.txt* For Vim version 7.4. Last change: 2016 Sep 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -39,6 +39,7 @@ back.
|
||||
Note: If the output has been stopped with "q" at the more prompt, it will only
|
||||
be displayed up to this point.
|
||||
The previous command output is cleared when another command produces output.
|
||||
The "g<" output is not redirected.
|
||||
|
||||
If you are using translated messages, the first printed line tells who
|
||||
maintains the messages or the translations. You can use this to contact the
|
||||
@@ -673,6 +674,12 @@ You must be using an awful lot of buffers. It's now possible that two buffers
|
||||
have the same number, which causes various problems. You might want to exit
|
||||
Vim and restart it.
|
||||
|
||||
*E931* >
|
||||
Buffer cannot be registered
|
||||
|
||||
Out of memory or a duplicate buffer number. May happen after W14. Looking up
|
||||
a buffer will not always work, better restart Vim.
|
||||
|
||||
*E296* *E297* >
|
||||
Seek error in swap file write
|
||||
Write error in swap file
|
||||
|
||||
+13
-6
@@ -1,4 +1,4 @@
|
||||
*motion.txt* For Vim version 7.4. Last change: 2015 Jun 06
|
||||
*motion.txt* For Vim version 7.4. Last change: 2016 Jul 12
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -586,7 +586,7 @@ i[ "inner [] block", select [count] '[' ']' blocks. This
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
a) *v_a)* *a)* *a(*
|
||||
a( *v_ab* *v_a(* *ab*
|
||||
a( *vab* *v_ab* *v_a(* *ab*
|
||||
ab "a block", select [count] blocks, from "[count] [(" to
|
||||
the matching ')', including the '(' and ')' (see
|
||||
|[(|). Does not include white space outside of the
|
||||
@@ -594,7 +594,7 @@ ab "a block", select [count] blocks, from "[count] [(" to
|
||||
When used in Visual mode it is made characterwise.
|
||||
|
||||
i) *v_i)* *i)* *i(*
|
||||
i( *v_ib* *v_i(* *ib*
|
||||
i( *vib* *v_ib* *v_i(* *ib*
|
||||
ib "inner block", select [count] blocks, from "[count] [("
|
||||
to the matching ')', excluding the '(' and ')' (see
|
||||
|[(|).
|
||||
@@ -1027,7 +1027,8 @@ unless the line containing that position was changed or deleted.
|
||||
|
||||
*CTRL-O*
|
||||
CTRL-O Go to [count] Older cursor position in jump list
|
||||
(not a motion command). {not in Vi}
|
||||
(not a motion command).
|
||||
{not in Vi}
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
<Tab> or *CTRL-I* *<Tab>*
|
||||
@@ -1037,8 +1038,14 @@ CTRL-I Go to [count] newer cursor position in jump list
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
*:ju* *:jumps*
|
||||
:ju[mps] Print the jump list (not a motion command). {not in
|
||||
Vi} {not available without the |+jumplist| feature}
|
||||
:ju[mps] Print the jump list (not a motion command).
|
||||
{not in Vi}
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
*:cle* *:clearjumps*
|
||||
:cle[arjumps] Clear the jump list of the current window.
|
||||
{not in Vi}
|
||||
{not available without the |+jumplist| feature}
|
||||
|
||||
*jumplist*
|
||||
Jumps are remembered in a jump list. With the CTRL-O and CTRL-I command you
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*netbeans.txt* For Vim version 7.4. Last change: 2016 Feb 18
|
||||
*netbeans.txt* For Vim version 7.4. Last change: 2016 Jul 15
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur et al.
|
||||
@@ -59,6 +59,8 @@ Current projects using the NetBeans protocol of Vim are:
|
||||
|
||||
Check the specific project pages to see how to use Vim with these projects.
|
||||
|
||||
An alternative is to use a channel, see |channel|.
|
||||
|
||||
In the rest of this help page, we will use the term "Vim Controller" to
|
||||
describe the program controlling Vim through the NetBeans socket interface.
|
||||
|
||||
|
||||
+174
-98
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 7.4. Last change: 2016 Apr 21
|
||||
*options.txt* For Vim version 7.4. Last change: 2016 Sep 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -261,10 +261,10 @@ global value, which is used for new buffers. With ":set" both the local and
|
||||
global value is changed. With "setlocal" only the local value is changed,
|
||||
thus this value is not used when editing a new buffer.
|
||||
|
||||
When editing a buffer that has been edited before, the last used window
|
||||
options are used again. If this buffer has been edited in this window, the
|
||||
values from back then are used. Otherwise the values from the window where
|
||||
the buffer was edited last are used.
|
||||
When editing a buffer that has been edited before, the options from the window
|
||||
that was last closed are used again. If this buffer has been edited in this
|
||||
window, the values from back then are used. Otherwise the values from the
|
||||
last closed window where the buffer was edited last are used.
|
||||
|
||||
It's possible to set a local window option specifically for a type of buffer.
|
||||
When you edit another buffer in the same window, you don't want to keep
|
||||
@@ -892,7 +892,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
done with ":syntax on".
|
||||
|
||||
*'backspace'* *'bs'*
|
||||
'backspace' 'bs' string (default "")
|
||||
'backspace' 'bs' string (default "", set to "indent,eol,start"
|
||||
in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
Influences the working of <BS>, <Del>, CTRL-W and CTRL-U in Insert
|
||||
@@ -1108,6 +1109,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
v:beval_bufnr number of the buffer in which balloon is going to show
|
||||
v:beval_winnr number of the window
|
||||
v:beval_winid ID of the window
|
||||
v:beval_lnum line number
|
||||
v:beval_col column number (byte index)
|
||||
v:beval_text word under or after the mouse pointer
|
||||
@@ -1439,8 +1441,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Only non-printable keys are allowed.
|
||||
The key can be specified as a single character, but it is difficult to
|
||||
type. The preferred way is to use the <> notation. Examples: >
|
||||
:set cedit=<C-Y>
|
||||
:set cedit=<Esc>
|
||||
:exe "set cedit=\<C-Y>"
|
||||
:exe "set cedit=\<Esc>"
|
||||
< |Nvi| also has this option, but it only uses the first character.
|
||||
See |cmdwin|.
|
||||
|
||||
@@ -1708,7 +1710,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'compatible'* *'cp'* *'nocompatible'* *'nocp'*
|
||||
'compatible' 'cp' boolean (default on, off when a |vimrc| or |gvimrc|
|
||||
file is found)
|
||||
file is found, reset in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
This option has the effect of making Vim either more Vi-compatible, or
|
||||
@@ -2629,17 +2631,24 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
{Vi: directory to put temp file in, defaults to "/tmp"}
|
||||
|
||||
*'display'* *'dy'*
|
||||
'display' 'dy' string (default "")
|
||||
'display' 'dy' string (default "", set to "truncate" in
|
||||
|defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
Change the way text is displayed. This is comma separated list of
|
||||
flags:
|
||||
lastline When included, as much as possible of the last line
|
||||
in a window will be displayed. When not included, a
|
||||
last line that doesn't fit is replaced with "@" lines.
|
||||
in a window will be displayed. "@@@" is put in the
|
||||
last columns of the last screen line to indicate the
|
||||
rest of the line is not displayed.
|
||||
truncate Like "lastline", but "@@@" is displayed in the first
|
||||
column of the last screen line. Overrules "lastline".
|
||||
uhex Show unprintable characters hexadecimal as <xx>
|
||||
instead of using ^C and ~C.
|
||||
|
||||
When neither "lastline" or "truncate" is included, a last line that
|
||||
doesn't fit is replaced with "@" lines.
|
||||
|
||||
*'eadirection'* *'ead'*
|
||||
'eadirection' 'ead' string (default "both")
|
||||
global
|
||||
@@ -2860,10 +2869,17 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
{not in Vi}
|
||||
Enables the reading of .vimrc, .exrc and .gvimrc in the current
|
||||
directory. If you switch this option on you should also consider
|
||||
setting the 'secure' option (see |initialization|). Using a local
|
||||
.exrc, .vimrc or .gvimrc is a potential security leak, use with care!
|
||||
also see |.vimrc| and |gui-init|.
|
||||
directory.
|
||||
|
||||
Setting this option is a potential security leak. E.g., consider
|
||||
unpacking a package or fetching files from github, a .vimrc in there
|
||||
might be a trojan horse. BETTER NOT SET THIS OPTION!
|
||||
Instead, define an autocommand in your .vimrc to set options for a
|
||||
matching directory.
|
||||
|
||||
If you do switch this option on you should also consider setting the
|
||||
'secure' option (see |initialization|).
|
||||
Also see |.vimrc| and |gui-init|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
@@ -3349,6 +3365,41 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
It is not allowed to change text or jump to another window while
|
||||
evaluating 'foldtext' |textlock|.
|
||||
|
||||
*'formatexpr'* *'fex'*
|
||||
'formatexpr' 'fex' string (default "")
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+eval|
|
||||
feature}
|
||||
Expression which is evaluated to format a range of lines for the |gq|
|
||||
operator or automatic formatting (see 'formatoptions'). When this
|
||||
option is empty 'formatprg' is used.
|
||||
|
||||
The |v:lnum| variable holds the first line to be formatted.
|
||||
The |v:count| variable holds the number of lines to be formatted.
|
||||
The |v:char| variable holds the character that is going to be
|
||||
inserted if the expression is being evaluated due to
|
||||
automatic formatting. This can be empty. Don't insert
|
||||
it yet!
|
||||
|
||||
Example: >
|
||||
:set formatexpr=mylang#Format()
|
||||
< This will invoke the mylang#Format() function in the
|
||||
autoload/mylang.vim file in 'runtimepath'. |autoload|
|
||||
|
||||
The expression is also evaluated when 'textwidth' is set and adding
|
||||
text beyond that limit. This happens under the same conditions as
|
||||
when internal formatting is used. Make sure the cursor is kept in the
|
||||
same spot relative to the text then! The |mode()| function will
|
||||
return "i" or "R" in this situation.
|
||||
|
||||
When the expression evaluates to non-zero Vim will fall back to using
|
||||
the internal format mechanism.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|. That stops the option from working,
|
||||
since changing the buffer text is not allowed.
|
||||
|
||||
*'formatoptions'* *'fo'*
|
||||
'formatoptions' 'fo' string (Vim default: "tcq", Vi default: "vt")
|
||||
local to buffer
|
||||
@@ -3392,41 +3443,6 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
|
||||
*'formatexpr'* *'fex'*
|
||||
'formatexpr' 'fex' string (default "")
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+eval|
|
||||
feature}
|
||||
Expression which is evaluated to format a range of lines for the |gq|
|
||||
operator or automatic formatting (see 'formatoptions'). When this
|
||||
option is empty 'formatprg' is used.
|
||||
|
||||
The |v:lnum| variable holds the first line to be formatted.
|
||||
The |v:count| variable holds the number of lines to be formatted.
|
||||
The |v:char| variable holds the character that is going to be
|
||||
inserted if the expression is being evaluated due to
|
||||
automatic formatting. This can be empty. Don't insert
|
||||
it yet!
|
||||
|
||||
Example: >
|
||||
:set formatexpr=mylang#Format()
|
||||
< This will invoke the mylang#Format() function in the
|
||||
autoload/mylang.vim file in 'runtimepath'. |autoload|
|
||||
|
||||
The expression is also evaluated when 'textwidth' is set and adding
|
||||
text beyond that limit. This happens under the same conditions as
|
||||
when internal formatting is used. Make sure the cursor is kept in the
|
||||
same spot relative to the text then! The |mode()| function will
|
||||
return "i" or "R" in this situation.
|
||||
|
||||
When the expression evaluates to non-zero Vim will fall back to using
|
||||
the internal format mechanism.
|
||||
|
||||
The expression will be evaluated in the |sandbox| when set from a
|
||||
modeline, see |sandbox-option|. That stops the option from working,
|
||||
since changing the buffer text is not allowed.
|
||||
|
||||
*'fsync'* *'fs'* *'nofsync'* *'nofs'*
|
||||
'fsync' 'fs' boolean (default on)
|
||||
global
|
||||
@@ -3455,6 +3471,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
See 'fuoptions' for how Vim resizes and colors the background when
|
||||
entering and leaving fullscreen mode.
|
||||
|
||||
You can use the hidden preference MMFullScreenFadeTime to adjust how
|
||||
long the animation takes to fade in and out. The default is 0.25
|
||||
seconds. See |macvim-preferences|for how to set hidden preferences.
|
||||
|
||||
Note: Setting 'fullscreen' usually changes the size of the Vim
|
||||
control. However, for technical reasons, 'lines' and 'columns' will
|
||||
currently only be updated when Vim runs its event loop. As a
|
||||
@@ -3736,9 +3756,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.
|
||||
Normally you would use "cDEFAULT".
|
||||
qXX - quality XX. Valid quality names are: PROOF, DRAFT,
|
||||
ANTIALIASED, UNANTIALIASED, CLEARTYPE, DEFAULT.
|
||||
ANTIALIASED, NONANTIALIASED, CLEARTYPE, DEFAULT.
|
||||
Normally you would use "qDEFAULT".
|
||||
Some quality values isn't supported in legacy OSs.
|
||||
Some quality values are not supported in legacy OSs.
|
||||
|
||||
Use a ':' to separate the options.
|
||||
- A '_' can be used in the place of a space, so you don't need to use
|
||||
@@ -3825,8 +3845,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
screen.
|
||||
|
||||
*'guioptions'* *'go'*
|
||||
'guioptions' 'go' string (default "egmrLtT" (MS-Windows),
|
||||
"aegimrLtT" (GTK, Motif and Athena))
|
||||
'guioptions' 'go' string (default "egmrLtT" (MS-Windows, "t" is
|
||||
removed in |defaults.vim|),
|
||||
"aegimrLtT" (GTK, Motif and Athena),
|
||||
)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with GUI enabled}
|
||||
@@ -4043,17 +4065,16 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'highlight'* *'hl'*
|
||||
'highlight' 'hl' string (default (as a single string):
|
||||
"8:SpecialKey,@:NonText,d:Directory,
|
||||
e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,
|
||||
M:ModeMsg,n:LineNr,N:CursorLineNr,
|
||||
r:Question,s:StatusLine,S:StatusLineNC,
|
||||
c:VertSplit, t:Title,v:Visual,
|
||||
w:WarningMsg,W:WildMenu,
|
||||
f:Folded,F:FoldColumn,A:DiffAdd,
|
||||
C:DiffChange,D:DiffDelete,T:DiffText,
|
||||
>:SignColumn,B:SpellBad,P:SpellCap,
|
||||
R:SpellRare,L:SpellLocal,-:Conceal,
|
||||
+:Pmenu,=:PmenuSel,
|
||||
"8:SpecialKey,~:EndOfBuffer,@:NonText,
|
||||
d:Directory,e:ErrorMsg,i:IncSearch,
|
||||
l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,
|
||||
N:CursorLineNr,r:Question,s:StatusLine,
|
||||
S:StatusLineNC,c:VertSplit,t:Title,
|
||||
v:Visual,w:WarningMsg,W:WildMenu,f:Folded,
|
||||
F:FoldColumn,A:DiffAdd,C:DiffChange,
|
||||
D:DiffDelete,T:DiffText,>:SignColumn,
|
||||
B:SpellBad,P:SpellCap,R:SpellRare,
|
||||
L:SpellLocal,-:Conceal,+:Pmenu,=:PmenuSel,
|
||||
x:PmenuSbar,X:PmenuThumb")
|
||||
global
|
||||
{not in Vi}
|
||||
@@ -4062,7 +4083,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
first character in a pair gives the occasion, the second the mode to
|
||||
use for that occasion. The occasions are:
|
||||
|hl-SpecialKey| 8 Meta and special keys listed with ":map"
|
||||
|hl-NonText| @ '~' and '@' at the end of the window and
|
||||
|hl-EndOfBuffer| ~ lines after the last line in the buffer
|
||||
|hl-NonText| @ '@' at the end of the window and
|
||||
characters from 'showbreak'
|
||||
|hl-Directory| d directories in CTRL-D listing and other special
|
||||
things in listings
|
||||
@@ -4150,7 +4172,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
NOTE: This option is reset when 'compatible' is set.
|
||||
|
||||
*'history'* *'hi'*
|
||||
'history' 'hi' number (Vim default: 50, Vi default: 0)
|
||||
'history' 'hi' number (Vim default: 50, Vi default: 0,
|
||||
set to 200 in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
A history of ":" commands, and a history of previous search patterns
|
||||
@@ -4403,7 +4426,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
evaluating 'includeexpr' |textlock|.
|
||||
|
||||
*'incsearch'* *'is'* *'noincsearch'* *'nois'*
|
||||
'incsearch' 'is' boolean (default off)
|
||||
'incsearch' 'is' boolean (default off, set in |defaults.vim| if the
|
||||
+reltime feature is supported)
|
||||
global
|
||||
{not in Vi}
|
||||
{not available when compiled without the
|
||||
@@ -4416,6 +4440,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
original position when no match is found and when pressing <Esc>. You
|
||||
still need to finish the search command with <Enter> to move the
|
||||
cursor to the match.
|
||||
You can use the CTRL-N and CTRL-P keys to move to the next and
|
||||
previous match. |c_CTRL-N| |c_CTRL-P|
|
||||
When compiled with the |+reltime| feature Vim only searches for about
|
||||
half a second. With a complicated pattern and/or a lot of text the
|
||||
match may not be found. This is to avoid that Vim hangs while you
|
||||
@@ -4500,7 +4526,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
if you want to use Vim as a modeless editor. Used for |evim|.
|
||||
These Insert mode commands will be useful:
|
||||
- Use the cursor keys to move around.
|
||||
- Use CTRL-O to execute one Normal mode command |i_CTRL-O|). When
|
||||
- Use CTRL-O to execute one Normal mode command |i_CTRL-O|. When
|
||||
this is a mapping, it is executed as if 'insertmode' was off.
|
||||
Normal mode remains active until the mapping is finished.
|
||||
- Use CTRL-L to execute a number of Normal mode commands, then use
|
||||
@@ -4697,16 +4723,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'keywordprg'* *'kp'*
|
||||
'keywordprg' 'kp' string (default "man" or "man -s", DOS: ":help",
|
||||
OS/2: "view /", VMS: "help")
|
||||
VMS: "help")
|
||||
global or local to buffer |global-local|
|
||||
{not in Vi}
|
||||
Program to use for the |K| command. Environment variables are
|
||||
expanded |:set_env|. ":help" may be used to access the Vim internal
|
||||
help. (Note that previously setting the global option to the empty
|
||||
value did this, which is now deprecated.)
|
||||
When "man" is used, Vim will automatically translate a count for the
|
||||
"K" command to a section number. Also for "man -s", in which case the
|
||||
"-s" is removed when there is no count.
|
||||
When the first character is ":", the command is invoked as a Vim
|
||||
Ex command prefixed with [count].
|
||||
When "man", "man -s" or an Ex command is used, Vim will automatically
|
||||
translate a count for the "K" command and pass it as the first
|
||||
argument. For "man -s" the "-s" is removed when there is no count.
|
||||
See |option-backslash| about including spaces and backslashes.
|
||||
Example: >
|
||||
:set keywordprg=man\ -s
|
||||
@@ -4727,7 +4755,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
be able to execute Normal mode commands.
|
||||
This is the opposite of the 'keymap' option, where characters are
|
||||
mapped in Insert mode.
|
||||
Also consider setting 'langnoremap' to avoid 'langmap' applies to
|
||||
Also consider resetting 'langremap' to avoid 'langmap' applies to
|
||||
characters resulting from a mapping.
|
||||
This option cannot be set from a |modeline| or in the |sandbox|, for
|
||||
security reasons.
|
||||
@@ -4785,15 +4813,25 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
< Warning: This deletes all menus that you defined yourself!
|
||||
|
||||
*'langnoremap'* *'lnr'* *'nolangnoremap'* *'nolnr'*
|
||||
'langnoremap' 'lnr' boolean (default off)
|
||||
'langnoremap' 'lnr' boolean (default off, set in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+langmap|
|
||||
feature}
|
||||
When on, setting 'langmap' does not apply to characters resulting from
|
||||
This is just like 'langremap' but with the value inverted. It only
|
||||
exists for backwards compatibility. When setting 'langremap' then
|
||||
'langnoremap' is set to the inverted value, and the other way around.
|
||||
|
||||
*'langremap'* *'lrm'* *'nolangremap'* *'nolrm'*
|
||||
'langremap' 'lrm' boolean (default on, reset in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with the |+langmap|
|
||||
feature}
|
||||
When off, setting 'langmap' does not apply to characters resulting from
|
||||
a mapping. This basically means, if you noticed that setting
|
||||
'langmap' disables some of your mappings, try setting this option.
|
||||
This option defaults to off for backwards compatibility. Set it on if
|
||||
'langmap' disables some of your mappings, try resetting this option.
|
||||
This option defaults to on for backwards compatibility. Set it off if
|
||||
that works for you to avoid mappings to break.
|
||||
|
||||
*'laststatus'* *'ls'*
|
||||
@@ -4846,7 +4884,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
use this command to get the tallest window possible: >
|
||||
:set lines=999
|
||||
< Minimum value is 2, maximum value is 1000.
|
||||
If you get less lines than expected, check the 'guiheadroom' option.
|
||||
If you get fewer lines than expected, check the 'guiheadroom' option.
|
||||
When you set this option and Vim is unable to change the physical
|
||||
number of lines of the display, the display may be messed up.
|
||||
|
||||
@@ -5005,6 +5043,18 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'guifont' supports them. Examples for such fonts are Fira Code or
|
||||
Haskelig.
|
||||
Note: Currently this option only has an effect if
|
||||
'Use Core Text renderer' is enabled in the GUI preferences pane.
|
||||
|
||||
*'macthinstrokes'* *'nomacthinstrokes'*
|
||||
'macthinstrokes' boolean (default off)
|
||||
global
|
||||
{not in Vi}
|
||||
{only available when compiled with GUI enabled on
|
||||
Mac OS X}
|
||||
This option only has an effect in the GUI version of Vim on Mac OS X
|
||||
v10.8 or later. When on, Vim will render the text a little lighter
|
||||
which looks nice with a dark colorscheme.
|
||||
Note: Currently this option only has an effect if
|
||||
'Use Core Text renderer' is enabled in the GUI preferences pane.
|
||||
|
||||
*'macmeta'* *'mmta'* *'nomacmeta'* *'nommta'*
|
||||
@@ -5024,10 +5074,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
global
|
||||
Changes the special characters that can be used in search patterns.
|
||||
See |pattern|.
|
||||
NOTE: To avoid portability problems with using patterns, always keep
|
||||
this option at the default "on". Only switch it off when working with
|
||||
old Vi scripts. In any other situation write patterns that work when
|
||||
'magic' is on. Include "\M" when you want to |/\M|.
|
||||
WARNING: Switching this option off most likely breaks plugins! That
|
||||
is because many patterns assume it's on and will fail when it's off.
|
||||
Only switch it off when working with old Vi scripts. In any other
|
||||
situation write patterns that work when 'magic' is on. Include "\M"
|
||||
when you want to |/\M|.
|
||||
|
||||
*'makeef'* *'mef'*
|
||||
'makeef' 'mef' string (default: "")
|
||||
@@ -5277,7 +5328,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
set and to the Vim default value when 'compatible' is reset.
|
||||
|
||||
*'mouse'* *E538*
|
||||
'mouse' string (default "", "a" for GUI, MS-DOS and Win32)
|
||||
'mouse' string (default "", "a" for GUI, MS-DOS and Win32,
|
||||
set to "a" in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
Enable the use of the mouse. Only works for certain terminals
|
||||
@@ -5443,7 +5495,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Negative or zero value means no thread scheduling.
|
||||
|
||||
*'nrformats'* *'nf'*
|
||||
'nrformats' 'nf' string (default "bin,octal,hex")
|
||||
'nrformats' 'nf' string (default "bin,octal,hex",
|
||||
set to "bin,hex" in |defaults.vim|)
|
||||
local to buffer
|
||||
{not in Vi}
|
||||
This defines what bases Vim will consider for numbers when using the
|
||||
@@ -6113,7 +6166,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
security reasons.
|
||||
|
||||
*'ruler'* *'ru'* *'noruler'* *'noru'*
|
||||
'ruler' 'ru' boolean (default off)
|
||||
'ruler' 'ru' boolean (default off, set in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
{not available when compiled without the
|
||||
@@ -6199,6 +6252,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
keymap/ key mapping files |mbyte-keymap|
|
||||
lang/ menu translations |:menutrans|
|
||||
menu.vim GUI menus |menu.vim|
|
||||
pack/ packages |:packadd|
|
||||
plugin/ plugin scripts |write-plugin|
|
||||
print/ files for printing |postscript-print-encoding|
|
||||
spell/ spell checking files |spell|
|
||||
@@ -6220,6 +6274,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
personal preferences to overrule or add to the distributed defaults
|
||||
or system-wide settings (rarely needed).
|
||||
|
||||
More entries are added when using |packages|.
|
||||
|
||||
Note that, unlike 'path', no wildcards like "**" are allowed. Normal
|
||||
wildcards are allowed, but can significantly slow down searching for
|
||||
runtime files. For speed, use as few items as possible and avoid
|
||||
@@ -6361,6 +6417,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"inclusive" means that the last character of the selection is included
|
||||
in an operation. For example, when "x" is used to delete the
|
||||
selection.
|
||||
When "old" is used and 'virtualedit' allows the cursor to move past
|
||||
the end of line the line break still isn't included.
|
||||
Note that when "exclusive" is used and selecting from the end
|
||||
backwards, you cannot include the last character of a line, when
|
||||
starting in Normal mode and 'virtualedit' empty.
|
||||
@@ -6585,6 +6643,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
The |FilterReadPre|, |FilterReadPost| and |FilterWritePre|,
|
||||
|FilterWritePost| autocommands event are not triggered when
|
||||
'shelltemp' is off.
|
||||
The `system()` function does not respect this option and always uses
|
||||
temp files.
|
||||
|
||||
*'shelltype'* *'st'*
|
||||
'shelltype' 'st' number (default 0)
|
||||
@@ -6741,8 +6801,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"n" flag to 'cpoptions'.
|
||||
|
||||
*'showcmd'* *'sc'* *'noshowcmd'* *'nosc'*
|
||||
'showcmd' 'sc' boolean (Vim default: on, off for Unix, Vi default:
|
||||
off)
|
||||
'showcmd' 'sc' boolean (Vim default: on, off for Unix,
|
||||
Vi default: off, set in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
{not available when compiled without the
|
||||
@@ -6847,10 +6907,21 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
Example: Try this together with 'sidescroll' and 'listchars' as
|
||||
in the following example to never allow the cursor to move
|
||||
onto the "extends" character:
|
||||
onto the "extends" character: >
|
||||
|
||||
:set nowrap sidescroll=1 listchars=extends:>,precedes:<
|
||||
:set sidescrolloff=1
|
||||
<
|
||||
*'signcolumn'* *'scl'*
|
||||
'signcolumn' 'scl' string (default "auto")
|
||||
local to window
|
||||
{not in Vi}
|
||||
{not available when compiled without the |+signs|
|
||||
feature}
|
||||
Whether or not to draw the signcolumn. Valid values are:
|
||||
"auto" only when there is a sign to display
|
||||
"no" never
|
||||
"yes" always
|
||||
|
||||
|
||||
*'smartcase'* *'scs'* *'nosmartcase'* *'noscs'*
|
||||
@@ -7520,6 +7591,9 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
By default, tag searches are case-sensitive. Case is ignored when
|
||||
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
|
||||
"ignore".
|
||||
Also when 'tagcase' is "followscs" and 'smartcase' is set, or
|
||||
'tagcase' is "smart", and the pattern contains only lowercase
|
||||
characters.
|
||||
|
||||
When 'tagbsearch' is off, tags searching is slower when a full match
|
||||
exists, but faster when no full match exists. Tags in unsorted tags
|
||||
@@ -7538,8 +7612,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
This option specifies how case is handled when searching the tags
|
||||
file:
|
||||
followic Follow the 'ignorecase' option
|
||||
followscs Follow the 'smartcase' and 'ignorecase' options
|
||||
ignore Ignore case
|
||||
match Match case
|
||||
smart Ignore case unless an upper case letter is used
|
||||
|
||||
*'taglength'* *'tl'*
|
||||
'taglength' 'tl' number (default 0)
|
||||
@@ -8053,8 +8129,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
"xterm", "xterm2", "urxvt" or "sgr" (because dec mouse codes conflict
|
||||
with them).
|
||||
This option is automatically set to "xterm", when the 'term' option is
|
||||
set to a name that starts with "xterm", "mlterm", or "screen", and
|
||||
'ttymouse' is not set already.
|
||||
set to a name that starts with "xterm", "mlterm", "screen", "st" (full
|
||||
match only), "st-" or "stterm", and 'ttymouse' is not set already.
|
||||
Additionally, if vim is compiled with the |+termresponse| feature and
|
||||
|t_RV| is set to the escape sequence to request the xterm version
|
||||
number, more intelligent detection process runs.
|
||||
@@ -8324,10 +8400,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
has been used since the last search command.
|
||||
*viminfo-n*
|
||||
n Name of the viminfo file. The name must immediately follow
|
||||
the 'n'. Must be the last one! If the "-i" argument was
|
||||
given when starting Vim, that file name overrides the one
|
||||
given here with 'viminfo'. Environment variables are expanded
|
||||
when opening the file, not when setting the option.
|
||||
the 'n'. Must be at the end of the option! If the "-i"
|
||||
argument was given when starting Vim, that file name overrides
|
||||
the one given here with 'viminfo'. Environment variables are
|
||||
expanded when opening the file, not when setting the option.
|
||||
*viminfo-r*
|
||||
r Removable media. The argument is a string (up to the next
|
||||
','). This parameter can be given several times. Each
|
||||
@@ -8513,7 +8589,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
|
||||
*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
|
||||
'wildmenu' 'wmnu' boolean (default off)
|
||||
'wildmenu' 'wmnu' boolean (default off, set in |defaults.vim|)
|
||||
global
|
||||
{not in Vi}
|
||||
{not available if compiled without the |+wildmenu|
|
||||
@@ -8812,7 +8888,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
'writedelay' 'wd' number (default 0)
|
||||
global
|
||||
{not in Vi}
|
||||
The number of microseconds to wait for each character sent to the
|
||||
The number of milliseconds to wait for each character sent to the
|
||||
screen. When non-zero, characters are sent to the terminal one by
|
||||
one. For MS-DOS pcterm this does not work. For debugging purposes.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*os_win32.txt* For Vim version 7.4. Last change: 2016 Mar 05
|
||||
*os_win32.txt* For Vim version 7.4. Last change: 2016 Aug 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by George Reilly
|
||||
@@ -144,29 +144,8 @@ the console.
|
||||
5. Running under Windows 3.1 *win32-win3.1*
|
||||
|
||||
*win32s* *windows-3.1*
|
||||
There is a special version of Gvim that runs under Windows 3.1 and 3.11. You
|
||||
need the gvim.exe that was compiled with Visual C++ 4.1.
|
||||
|
||||
To run the Win32 version under Windows 3.1, you need to install Win32s. You
|
||||
might have it already from another Win32 application which you have installed.
|
||||
If Vim doesn't seem to be running properly, get the latest version: 1.30c.
|
||||
You can find it at:
|
||||
|
||||
http://support.microsoft.com/download/support/mslfiles/pw1118.exe
|
||||
|
||||
(Microsoft moved it again, we don't know where it is now :-( ).
|
||||
|
||||
The reason for having two versions of gvim.exe is that the Win32s version was
|
||||
compiled with VC++ 4.1. This is the last version of VC++ that supports Win32s
|
||||
programs. VC++ 5.0 is better, so that one was used for the Win32 version.
|
||||
Apart from that, there is no difference between the programs. If you are in a
|
||||
mixed environment, you can use the gvim.exe for Win32s on both.
|
||||
|
||||
The Win32s version works the same way as the Win32 version under 95/NT. When
|
||||
running under Win32s the following differences apply:
|
||||
- You cannot use long file names, because Windows 3.1 doesn't support them!
|
||||
- When executing an external command, it doesn't return an exit code. After
|
||||
doing ":make" you have to do ":cn" yourself.
|
||||
There was a special version of Gvim that runs under Windows 3.1 and 3.11.
|
||||
Support was removed in patch 7.4.1363.
|
||||
|
||||
==============================================================================
|
||||
6. Win32 mini FAQ *win32-faq*
|
||||
|
||||
+11
-7
@@ -1,4 +1,4 @@
|
||||
*pattern.txt* For Vim version 7.4. Last change: 2016 Apr 26
|
||||
*pattern.txt* For Vim version 7.4. Last change: 2016 Jun 08
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -954,14 +954,18 @@ $ At end of pattern or in front of "\|", "\)" or "\n" ('magic' on):
|
||||
< When 'hlsearch' is set and you move the cursor around and make changes
|
||||
this will clearly show when the match is updated or not.
|
||||
To match the text up to column 17: >
|
||||
/.*\%17v
|
||||
< Column 17 is included, because that's where the "\%17v" matches,
|
||||
even though this is a |/zero-width| match. Adding a dot to match the
|
||||
next character has the same result: >
|
||||
/.*\%17v.
|
||||
/^.*\%17v
|
||||
< Column 17 is not included, because this is a |/zero-width| match. To
|
||||
include the column use: >
|
||||
/^.*\%17v.
|
||||
< This command does the same thing, but also matches when there is no
|
||||
character in column 17: >
|
||||
/.*\%<18v.
|
||||
/^.*\%<18v.
|
||||
< Note that without the "^" to anchor the match in the first column,
|
||||
this will also highlight column 17: >
|
||||
/.*\%17v
|
||||
< Column 17 is highlighted by 'hlsearch' because there is another match
|
||||
where ".*" matches zero characters.
|
||||
<
|
||||
|
||||
Character classes: {not in Vi}
|
||||
|
||||
+53
-13
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 7.4. Last change: 2016 Mar 23
|
||||
*quickfix.txt* For Vim version 7.4. Last change: 2016 Jul 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -35,11 +35,13 @@ positions in files. For example, |:vimgrep| finds pattern matches. You can
|
||||
use the positions in a script with the |getqflist()| function. Thus you can
|
||||
do a lot more than the edit/compile/fix cycle!
|
||||
|
||||
If you are using Manx's Aztec C compiler on the Amiga look here for how to use
|
||||
it with Vim: |quickfix-manx|. If you are using another compiler you should
|
||||
save the error messages in a file and start Vim with "vim -q filename". An
|
||||
easy way to do this is with the |:make| command (see below). The
|
||||
'errorformat' option should be set to match the error messages from your
|
||||
If you have the error messages in a file you can start Vim with: >
|
||||
vim -q filename
|
||||
|
||||
From inside Vim an easy way to run a command and handle the output is with the
|
||||
|:make| command (see below).
|
||||
|
||||
The 'errorformat' option should be set to match the error messages from your
|
||||
compiler (see |errorformat| below).
|
||||
|
||||
*location-list* *E776*
|
||||
@@ -49,8 +51,8 @@ have a separate location list. A location list can be associated with only
|
||||
one window. The location list is independent of the quickfix list.
|
||||
|
||||
When a window with a location list is split, the new window gets a copy of the
|
||||
location list. When there are no references to a location list, the location
|
||||
list is destroyed.
|
||||
location list. When there are no longer any references to a location list,
|
||||
the location list is destroyed.
|
||||
|
||||
The following quickfix commands can be used. The location list commands are
|
||||
similar to the quickfix commands, replacing the 'c' prefix in the quickfix
|
||||
@@ -270,11 +272,24 @@ processing a quickfix or location list command, it will be aborted.
|
||||
The 'switchbuf' settings are respected when jumping
|
||||
to a buffer.
|
||||
|
||||
:cl[ist] +{count} List the current and next {count} valid errors. This
|
||||
is similar to ":clist from from+count", where "from"
|
||||
is the current error position.
|
||||
|
||||
:cl[ist]! [from] [, [to]]
|
||||
List all errors.
|
||||
|
||||
*:lli* *:llist*
|
||||
:lli[st] [from] [, [to]]
|
||||
:cl[ist]! +{count} List the current and next {count} error lines. This
|
||||
is useful to see unrecognized lines after the current
|
||||
one. For example, if ":clist" shows:
|
||||
8384 testje.java:252: error: cannot find symbol ~
|
||||
Then using ":cl! +3" shows the reason:
|
||||
8384 testje.java:252: error: cannot find symbol ~
|
||||
8385: ZexitCode = Fmainx(); ~
|
||||
8386: ^ ~
|
||||
8387: symbol: method Fmainx() ~
|
||||
|
||||
:lli[st] [from] [, [to]] *:lli* *:llist*
|
||||
Same as ":clist", except the location list for the
|
||||
current window is used instead of the quickfix list.
|
||||
|
||||
@@ -318,7 +333,7 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
||||
etc.
|
||||
< When the current file can't be |abandon|ed and the [!]
|
||||
is not present, the command fails.
|
||||
When an error is detected excecution stops.
|
||||
When an error is detected execution stops.
|
||||
The last buffer (or where an error occurred) becomes
|
||||
the current buffer.
|
||||
{cmd} can contain '|' to concatenate several commands.
|
||||
@@ -420,6 +435,17 @@ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST:
|
||||
|
||||
*:lw* *:lwindow*
|
||||
:lw[indow] [height] Same as ":cwindow", except use the window showing the
|
||||
location list for the current window.
|
||||
|
||||
*:cbo* *:cbottom*
|
||||
:cbo[ttom] Put the cursor in the last line of the quickfix window
|
||||
and scroll to make it visible. This is useful for
|
||||
when errors are added by an asynchronous callback.
|
||||
Only call it once in a while if there are many
|
||||
updates to avoid a lot of redrawing.
|
||||
|
||||
*:lbo* *:lbottom*
|
||||
:lbo[ttom] Same as ":cbottom", except use the window showing the
|
||||
location list for the current window.
|
||||
|
||||
Normally the quickfix window is at the bottom of the screen. If there are
|
||||
@@ -457,6 +483,9 @@ expression.
|
||||
The BufWinEnter event is also triggered, again using "quickfix" for the buffer
|
||||
name.
|
||||
|
||||
Note: When adding to an existing quickfix list the autocommand are not
|
||||
triggered.
|
||||
|
||||
Note: Making changes in the quickfix window has no effect on the list of
|
||||
errors. 'modifiable' is off to avoid making changes. If you delete or insert
|
||||
lines anyway, the relation between the text and the error number is messed up.
|
||||
@@ -501,7 +530,7 @@ lists. They set one of the existing error lists as the current one.
|
||||
list, an error message is given.
|
||||
|
||||
*:lolder* *:lol*
|
||||
:lol[der] [count] Same as ":colder", except use the location list for
|
||||
:lol[der] [count] Same as `:colder`, except use the location list for
|
||||
the current window instead of the quickfix list.
|
||||
|
||||
*:cnewer* *:cnew* *E381*
|
||||
@@ -510,9 +539,20 @@ lists. They set one of the existing error lists as the current one.
|
||||
list, an error message is given.
|
||||
|
||||
*:lnewer* *:lnew*
|
||||
:lnew[er] [count] Same as ":cnewer", except use the location list for
|
||||
:lnew[er] [count] Same as `:cnewer`, except use the location list for
|
||||
the current window instead of the quickfix list.
|
||||
|
||||
*:chistory* *:chi*
|
||||
:chi[story] Show the list of error lists. The current list is
|
||||
marked with ">". The output looks like:
|
||||
error list 1 of 3; 43 errors ~
|
||||
> error list 2 of 3; 0 errors ~
|
||||
error list 3 of 3; 15 errors ~
|
||||
|
||||
*:lhistory* *:lhi*
|
||||
:lhi[story] Show the list of location lists, otherwise like
|
||||
`:chistory`.
|
||||
|
||||
When adding a new error list, it becomes the current list.
|
||||
|
||||
When ":colder" has been used and ":make" or ":grep" is used to add a new error
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*quickref.txt* For Vim version 7.4. Last change: 2016 Apr 29
|
||||
*quickref.txt* For Vim version 7.4. Last change: 2016 Aug 21
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -770,7 +770,7 @@ Short explanation of each option: *option-list*
|
||||
'keywordprg' 'kp' program to use for the "K" command
|
||||
'langmap' 'lmap' alphabetic characters for other language mode
|
||||
'langmenu' 'lm' language to be used for the menus
|
||||
'langnoremap' 'lnr' do not apply 'langmap' to mapped characters
|
||||
'langremap' 'lrm' do apply 'langmap' to mapped characters
|
||||
'laststatus' 'ls' tells when last window has status lines
|
||||
'lazyredraw' 'lz' don't redraw while executing macros
|
||||
'linebreak' 'lbr' wrap long lines at a blank
|
||||
@@ -785,6 +785,7 @@ Short explanation of each option: *option-list*
|
||||
'macatsui' Mac GUI: use ATSUI text drawing
|
||||
'macligatures' display ligatures (MacVim GUI only)
|
||||
'macmeta' 'mmta' use option as meta key (MacVim GUI only)
|
||||
'macthinstrokes' render the text lighter by using thin strokes (MacVim GUI only)
|
||||
'magic' changes special characters in search patterns
|
||||
'makeef' 'mef' name of the errorfile for ":make"
|
||||
'makeprg' 'mp' program to use for the ":make" command
|
||||
@@ -836,6 +837,7 @@ Short explanation of each option: *option-list*
|
||||
'printmbcharset' 'pmbcs' CJK character set to be used for :hardcopy
|
||||
'printmbfont' 'pmbfn' font names to be used for CJK output of :hardcopy
|
||||
'printoptions' 'popt' controls the format of :hardcopy output
|
||||
'prompt' 'prompt' enable prompt in Ex mode
|
||||
'pumheight' 'ph' maximum height of the popup menu
|
||||
'pythondll' name of the Python 2 dynamic library
|
||||
'pythonthreedll' name of the Python 3 dynamic library
|
||||
@@ -887,6 +889,7 @@ Short explanation of each option: *option-list*
|
||||
'showtabline' 'stal' tells when the tab pages line is displayed
|
||||
'sidescroll' 'ss' minimum number of columns to scroll horizontal
|
||||
'sidescrolloff' 'siso' min. nr. of columns to left and right of cursor
|
||||
'signcolumn' 'scl' when to display the sign column
|
||||
'smartcase' 'scs' no ignore case when pattern has uppercase
|
||||
'smartindent' 'si' smart autoindenting for C programs
|
||||
'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>
|
||||
|
||||
+12
-5
@@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 7.4. Last change: 2016 Apr 05
|
||||
*repeat.txt* For Vim version 7.4. Last change: 2016 Sep 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -158,7 +158,7 @@ q Stops recording. (Implementation note: The 'q' that
|
||||
:[addr]@: Repeat last command-line. First set cursor at line
|
||||
[addr] (default is current line). {not in Vi}
|
||||
|
||||
*:@@*
|
||||
:[addr]@ *:@@*
|
||||
:[addr]@@ Repeat the previous :@{0-9a-z"}. First set cursor at
|
||||
line [addr] (default is current line). {Vi: only in
|
||||
some versions}
|
||||
@@ -232,6 +232,8 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
pack/*/opt/{name} ~
|
||||
The directory is added to 'runtimepath' if it wasn't
|
||||
there yet.
|
||||
If the directory pack/*/opt/{name}/after exists it is
|
||||
added at the end of 'runtimepath'.
|
||||
|
||||
Note that {name} is the directory name, not the name
|
||||
of the .vim file. All the files matching the pattern
|
||||
@@ -293,7 +295,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
||||
... not converted ...
|
||||
|
||||
< When conversion isn't supported by the system, there
|
||||
is no error message and no conversion is done.
|
||||
is no error message and no conversion is done. When a
|
||||
line can't be converted there is no error and the
|
||||
original line is kept.
|
||||
|
||||
Don't use "ucs-2" or "ucs-4", scripts cannot be in
|
||||
these encodings (they would contain NUL bytes).
|
||||
@@ -507,6 +511,9 @@ To load packages earlier, so that 'runtimepath' gets updated: >
|
||||
This also works when loading plugins is disabled. The automatic loading will
|
||||
only happen once.
|
||||
|
||||
If the package has an "after" directory, that directory is added to the end of
|
||||
'runtimepath', so that anything there will be loaded later.
|
||||
|
||||
|
||||
Using a single plugin and loading it automatically ~
|
||||
|
||||
@@ -536,7 +543,7 @@ whether Vim supports a feature or a dependency is missing.
|
||||
You can also load an optional plugin at startup, by putting this command in
|
||||
your |.vimrc|: >
|
||||
:packadd! foodebug
|
||||
The extra "!" is so that the plugin isn't loaded with Vim was started with
|
||||
The extra "!" is so that the plugin isn't loaded if Vim was started with
|
||||
|--noplugin|.
|
||||
|
||||
It is perfectly normal for a package to only have files in the "opt"
|
||||
@@ -615,7 +622,7 @@ the command after changing the plugin help: >
|
||||
|
||||
Dependencies between plugins ~
|
||||
*packload-two-steps*
|
||||
Suppose you have a two plugins that depend on the same functionality. You can
|
||||
Suppose you have two plugins that depend on the same functionality. You can
|
||||
put the common functionality in an autoload directory, so that it will be
|
||||
found automatically. Your package would have these files:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*sign.txt* For Vim version 7.4. Last change: 2014 May 07
|
||||
*sign.txt* For Vim version 7.4. Last change: 2016 Aug 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Gordon Prieur
|
||||
@@ -45,8 +45,10 @@ There are two steps in using signs:
|
||||
|
||||
When signs are defined for a file, Vim will automatically add a column of two
|
||||
characters to display them in. When the last sign is unplaced the column
|
||||
disappears again. The color of the column is set with the SignColumn group
|
||||
|hl-SignColumn|. Example to set the color: >
|
||||
disappears again. This behavior can be changed with the 'signcolumn' option.
|
||||
|
||||
The color of the column is set with the SignColumn group |hl-SignColumn|.
|
||||
Example to set the color: >
|
||||
|
||||
:highlight SignColumn guibg=darkgrey
|
||||
|
||||
@@ -195,7 +197,9 @@ JUMPING TO A SIGN *:sign-jump* *E157*
|
||||
If the file isn't displayed in window and the current file can
|
||||
not be |abandon|ed this fails.
|
||||
|
||||
:sign jump {id} buffer={nr}
|
||||
Same, but use buffer {nr}.
|
||||
:sign jump {id} buffer={nr} *E934*
|
||||
Same, but use buffer {nr}. This fails if buffer {nr} does not
|
||||
have a name.
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
+130
-43
@@ -1,4 +1,4 @@
|
||||
*starting.txt* For Vim version 7.4. Last change: 2016 Apr 22
|
||||
*starting.txt* For Vim version 7.4. Last change: 2016 Sep 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -807,13 +807,13 @@ accordingly. Vim proceeds in this order:
|
||||
MacVim.app, this only applies to the older Carbon version).
|
||||
|
||||
*VIMINIT* *.vimrc* *_vimrc* *EXINIT* *.exrc* *_exrc* *$MYVIMRC*
|
||||
c. Four places are searched for initializations. The first that exists
|
||||
c. Five places are searched for initializations. The first that exists
|
||||
is used, the others are ignored. The $MYVIMRC environment variable is
|
||||
set to the file that was first found, unless $MYVIMRC was already set
|
||||
and when using VIMINIT.
|
||||
- The environment variable VIMINIT (see also |compatible-default|) (*)
|
||||
The value of $VIMINIT is used as an Ex command line.
|
||||
- The user vimrc file(s):
|
||||
I The environment variable VIMINIT (see also |compatible-default|) (*)
|
||||
The value of $VIMINIT is used as an Ex command line.
|
||||
II The user vimrc file(s):
|
||||
"$HOME/.vimrc" (for Unix and OS/2) (*)
|
||||
"$HOME/.vim/vimrc" (for Unix and OS/2) (*)
|
||||
"s:.vimrc" (for Amiga) (*)
|
||||
@@ -830,15 +830,16 @@ accordingly. Vim proceeds in this order:
|
||||
Note: For MS-DOS and Win32, "$HOME" is checked first. If no
|
||||
"_vimrc" or ".vimrc" is found there, "$VIM" is tried.
|
||||
See |$VIM| for when $VIM is not set.
|
||||
- The environment variable EXINIT.
|
||||
The value of $EXINIT is used as an Ex command line.
|
||||
- The user exrc file(s). Same as for the user vimrc file, but with
|
||||
"vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
|
||||
used, depending on the system. And without the (*)!
|
||||
- You would usually have "syntax on" and/or "filetype on" commands,
|
||||
which trigger initializing filetype detection, see |syntax-loading|.
|
||||
III The environment variable EXINIT.
|
||||
The value of $EXINIT is used as an Ex command line.
|
||||
IV The user exrc file(s). Same as for the user vimrc file, but with
|
||||
"vimrc" replaced by "exrc". But only one of ".exrc" and "_exrc" is
|
||||
used, depending on the system. And without the (*)!
|
||||
V The default vimrc file, $VIMRUNTIME/defaults.vim. This sets up
|
||||
options values and has "syntax on" and "filetype on" commands,
|
||||
which is what most new users will want. See |defaults.vim|.
|
||||
|
||||
d. If the 'exrc' option is on (which is not the default), the current
|
||||
d. If the 'exrc' option is on (which is NOT the default), the current
|
||||
directory is searched for three files. The first that exists is used,
|
||||
the others are ignored.
|
||||
- The file ".vimrc" (for Unix, Amiga and OS/2) (*)
|
||||
@@ -858,6 +859,8 @@ accordingly. Vim proceeds in this order:
|
||||
searched for the "plugin" sub-directory and all files ending in ".vim"
|
||||
will be sourced (in alphabetical order per directory), also in
|
||||
subdirectories.
|
||||
However, directories in 'runtimepath' ending in "after" are skipped
|
||||
here and only loaded after packages, see below.
|
||||
Loading plugins won't be done when:
|
||||
- The 'loadplugins' option was reset in a vimrc file.
|
||||
- The |--noplugin| command line argument is used.
|
||||
@@ -865,13 +868,18 @@ accordingly. Vim proceeds in this order:
|
||||
- When Vim was compiled without the |+eval| feature.
|
||||
Note that using "-c 'set noloadplugins'" doesn't work, because the
|
||||
commands from the command line have not been executed yet. You can
|
||||
use "--cmd 'set noloadplugins'" |--cmd|.
|
||||
use "--cmd 'set noloadplugins'" or "--cmd 'set loadplugins'" |--cmd|.
|
||||
|
||||
Packages are loaded. These are plugins, as above, but found in the
|
||||
"start" directory of each entry in 'packpath'. Every plugin directory
|
||||
found is added in 'runtimepath' and then the plugins are sourced. See
|
||||
|packages|.
|
||||
|
||||
The plugins scripts are loaded, as above, but now only the directories
|
||||
ending in "after" are used. Note that 'runtimepath' will have changed
|
||||
if packages have been found, but that should not add a directory
|
||||
ending in "after".
|
||||
|
||||
5. Set 'shellpipe' and 'shellredir'
|
||||
The 'shellpipe' and 'shellredir' options are set according to the
|
||||
value of the 'shell' option, unless they have been set before.
|
||||
@@ -913,7 +921,11 @@ accordingly. Vim proceeds in this order:
|
||||
The |v:vim_did_enter| variable is set to 1.
|
||||
The |VimEnter| autocommands are executed.
|
||||
|
||||
Some hints on using initializations:
|
||||
The $MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or
|
||||
gvimrc file.
|
||||
|
||||
|
||||
Some hints on using initializations ~
|
||||
|
||||
Standard setup:
|
||||
Create a vimrc file to set the default settings and mappings for all your edit
|
||||
@@ -936,39 +948,62 @@ want to set the defaults for all users. Create a vimrc file with commands
|
||||
for default settings and mappings and put it in the place that is given with
|
||||
the ":version" command.
|
||||
|
||||
Saving the current state of Vim to a file:
|
||||
|
||||
Saving the current state of Vim to a file ~
|
||||
|
||||
Whenever you have changed values of options or when you have created a
|
||||
mapping, then you may want to save them in a vimrc file for later use. See
|
||||
|save-settings| about saving the current state of settings to a file.
|
||||
|
||||
Avoiding setup problems for Vi users:
|
||||
|
||||
Avoiding setup problems for Vi users ~
|
||||
|
||||
Vi uses the variable EXINIT and the file "~/.exrc". So if you do not want to
|
||||
interfere with Vi, then use the variable VIMINIT and the file "vimrc" instead.
|
||||
|
||||
Amiga environment variables:
|
||||
|
||||
Amiga environment variables ~
|
||||
|
||||
On the Amiga, two types of environment variables exist. The ones set with the
|
||||
DOS 1.3 (or later) setenv command are recognized. See the AmigaDos 1.3
|
||||
manual. The environment variables set with the old Manx Set command (before
|
||||
version 5.0) are not recognized.
|
||||
|
||||
MS-DOS line separators:
|
||||
|
||||
MS-DOS line separators ~
|
||||
|
||||
On MS-DOS-like systems (MS-DOS itself, Win32, and OS/2), Vim assumes that all
|
||||
the vimrc files have <CR> <NL> pairs as line separators. This will give
|
||||
problems if you have a file with only <NL>s and have a line like
|
||||
":map xx yy^M". The trailing ^M will be ignored.
|
||||
|
||||
|
||||
Vi compatible default value ~
|
||||
*compatible-default*
|
||||
When Vim starts, the 'compatible' option is on. This will be used when Vim
|
||||
starts its initializations. But as soon as a user vimrc file is found, or a
|
||||
vimrc file in the current directory, or the "VIMINIT" environment variable is
|
||||
set, it will be set to 'nocompatible'. This has the side effect of setting or
|
||||
resetting other options (see 'compatible'). But only the options that have
|
||||
not been set or reset will be changed. This has the same effect like the
|
||||
value of 'compatible' had this value when starting Vim. Note that this
|
||||
doesn't happen for the system-wide vimrc file nor when Vim was started with
|
||||
the |-u| command line argument. It does also happen for gvimrc files. The
|
||||
$MYVIMRC or $MYGVIMRC file will be set to the first found vimrc and/or gvimrc
|
||||
file.
|
||||
starts its initializations. But as soon as:
|
||||
- a user vimrc file is found, or
|
||||
- a vimrc file in the current directory, or
|
||||
- the "VIMINIT" environment variable is set, or
|
||||
- the "-N" command line argument is given, or
|
||||
even when no vimrc file exists.
|
||||
- the |defaults.vim| script is loaded, or
|
||||
- gvimrc file was found,
|
||||
then it will be set to 'nocompatible'.
|
||||
|
||||
Note that this does NOT happen when a system-wide vimrc file was found.
|
||||
|
||||
This has the side effect of setting or resetting other options (see
|
||||
'compatible'). But only the options that have not been set or reset will be
|
||||
changed. This has the same effect like the value of 'compatible' had this
|
||||
value when starting Vim.
|
||||
|
||||
'compatible' is NOT reset, and |defaults.vim| is not loaded:
|
||||
- when Vim was started with the |-u| command line argument, especially with
|
||||
"-u NONE", or
|
||||
- when started with the |-C| command line argument, or
|
||||
- when the name of the executable ends in "ex". (This has been done to make
|
||||
Vim behave like "ex", when it is started as "ex")
|
||||
|
||||
But there is a side effect of setting or resetting 'compatible' at the moment
|
||||
a .vimrc file is found: Mappings are interpreted the moment they are
|
||||
@@ -976,18 +1011,35 @@ encountered. This makes a difference when using things like "<CR>". If the
|
||||
mappings depend on a certain value of 'compatible', set or reset it before
|
||||
giving the mapping.
|
||||
|
||||
The above behavior can be overridden in these ways:
|
||||
- If the "-N" command line argument is given, 'nocompatible' will be used,
|
||||
even when no vimrc file exists.
|
||||
- If the "-C" command line argument is given, 'compatible' will be used, even
|
||||
when a vimrc file exists.
|
||||
- If the "-u {vimrc}" argument is used, 'compatible' will be used.
|
||||
- When the name of the executable ends in "ex", then this works like the "-C"
|
||||
argument was given: 'compatible' will be used, even when a vimrc file
|
||||
exists. This has been done to make Vim behave like "ex", when it is started
|
||||
as "ex".
|
||||
|
||||
Avoiding trojan horses: *trojan-horse*
|
||||
Defaults without a .vimrc file ~
|
||||
*defaults.vim*
|
||||
If Vim is started normally and no user vimrc file is found, the
|
||||
$VIMRUTIME/defaults.vim script is loaded. This will set 'compatible' off,
|
||||
switch on syntax highlighting and a few more things. See the script for
|
||||
details. NOTE: this is done since Vim 8.0, not in Vim 7.4. (it was added in
|
||||
patch 7.4.2111 to be exact).
|
||||
|
||||
This should work well for new Vim users. If you create your own .vimrc, it is
|
||||
recommended to add this line somewhere near the top: >
|
||||
unlet! skip_defaults_vim
|
||||
source $VIMRUNTIME/defaults.vim
|
||||
Then Vim works like before you had a .vimrc. Copying $VIMRUNTIME/vimrc_example
|
||||
is way to do this. Alternatively, you can copy defaults.vim to your .vimrc
|
||||
and modify it (but then you won't get updates when it changes).
|
||||
|
||||
If you don't like some of the defaults, you can still source defaults.vim and
|
||||
revert individual settings. See the defaults.vim file for hints on how to
|
||||
revert each item.
|
||||
*skip_defaults_vim*
|
||||
If you use a system-wide vimrc and don't want defaults.vim to change settings,
|
||||
set the "skip_defaults_vim" variable. If this was set and you want to load
|
||||
defaults.vim from your .vimrc, first unlet skip_defaults_vim, as in the
|
||||
example above.
|
||||
|
||||
|
||||
Avoiding trojan horses ~
|
||||
*trojan-horse*
|
||||
While reading the "vimrc" or the "exrc" file in the current directory, some
|
||||
commands can be disabled for security reasons by setting the 'secure' option.
|
||||
This is always done when executing the command from a tags file. Otherwise it
|
||||
@@ -1010,6 +1062,8 @@ Be careful!
|
||||
part of the line in the tags file) is always done in secure mode. This works
|
||||
just like executing a command from a vimrc/exrc in the current directory.
|
||||
|
||||
|
||||
If Vim startup is slow ~
|
||||
*slow-start*
|
||||
If Vim takes a long time to start up, use the |--startuptime| argument to find
|
||||
out what happens. There are a few common causes:
|
||||
@@ -1024,6 +1078,8 @@ out what happens. There are a few common causes:
|
||||
moment (use the Vim argument "-i NONE", |-i|). Try reducing the number of
|
||||
lines stored in a register with ":set viminfo='20,<50,s10". |viminfo-file|.
|
||||
|
||||
|
||||
Intro message ~
|
||||
*:intro*
|
||||
When Vim starts without a file name, an introductory message is displayed (for
|
||||
those who don't know what Vim is). It is removed as soon as the display is
|
||||
@@ -1414,6 +1470,34 @@ file (it's actually merged with the existing one, if one exists). The
|
||||
'viminfo' option is a string containing information about what info should be
|
||||
stored, and contains limits on how much should be stored (see 'viminfo').
|
||||
|
||||
Merging happens in two ways. Most items that have been changed or set in the
|
||||
current Vim session are stored, and what was not changed is filled from what
|
||||
is currently in the viminfo file. For example:
|
||||
- Vim session A reads the viminfo, which contains variable START.
|
||||
- Vim session B does the same
|
||||
- Vim session A sets the variables AAA and BOTH and exits
|
||||
- Vim session B sets the variables BBB and BOTH and exits
|
||||
Now the viminfo will have:
|
||||
START - it was in the viminfo and wasn't changed in session A or B
|
||||
AAA - value from session A, session B kept it
|
||||
BBB - value from session B
|
||||
BOTH - value from session B, value from session A is lost
|
||||
|
||||
*viminfo-timestamp*
|
||||
For some items a timestamp is used to keep the last changed version. Here it
|
||||
doesn't matter in which sequence Vim sessions exit, the newest item(s) are
|
||||
always kept. This is used for:
|
||||
- The command line history.
|
||||
- The search string history.
|
||||
- The input-line history.
|
||||
- Contents of non-empty registers.
|
||||
- The jump list
|
||||
- File marks
|
||||
The timestamp feature was added before Vim 8.0. Older versions of Vim,
|
||||
starting with 7.4.1131, will keep the items with timestamp, but not use them.
|
||||
Thus when using both an older and a newer version of Vim the most recent data
|
||||
will be kept.
|
||||
|
||||
Notes for Unix:
|
||||
- The file protection for the viminfo file will be set to prevent other users
|
||||
from being able to read it, because it may contain any text or commands that
|
||||
@@ -1536,14 +1620,14 @@ most of the information will be restored).
|
||||
already set (registers, marks, |v:oldfiles|, etc.)
|
||||
will be overwritten {not in Vi}
|
||||
|
||||
*:wv* *:wviminfo* *E137* *E138* *E574* *E886*
|
||||
*:wv* *:wviminfo* *E137* *E138* *E574* *E886* *E929*
|
||||
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
|
||||
The information in the file is first read in to make
|
||||
a merge between old and new info. When [!] is used,
|
||||
the old information is not read first, only the
|
||||
internal info is written. If 'viminfo' is empty, marks
|
||||
for up to 100 files will be written.
|
||||
When you get error "E138: Can't write viminfo file"
|
||||
When you get error "E929: Too many viminfo temp files"
|
||||
check that no old temp files were left behind (e.g.
|
||||
~/.viminf*) and that you can write in the directory of
|
||||
the .viminfo file.
|
||||
@@ -1552,8 +1636,11 @@ most of the information will be restored).
|
||||
*:ol* *:oldfiles*
|
||||
:ol[dfiles] List the files that have marks stored in the viminfo
|
||||
file. This list is read on startup and only changes
|
||||
afterwards with ":rviminfo!". Also see |v:oldfiles|.
|
||||
afterwards with `:rviminfo!`. Also see |v:oldfiles|.
|
||||
The number can be used with |c_#<|.
|
||||
The output can be filtered with |:filter|, e.g.: >
|
||||
filter /\.vim/ oldfiles
|
||||
< The filtering happens on the file name.
|
||||
{not in Vi, only when compiled with the |+eval|
|
||||
feature}
|
||||
|
||||
|
||||
+107
-47
@@ -1,4 +1,4 @@
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2016 Apr 10
|
||||
*syntax.txt* For Vim version 7.4. Last change: 2016 Sep 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -949,6 +949,8 @@ Variable Highlight ~
|
||||
*c_no_bracket_error* don't highlight {}; inside [] as errors
|
||||
*c_no_curly_error* don't highlight {}; inside [] and () as errors;
|
||||
except { and } in first column
|
||||
Default is to highlight them, otherwise you
|
||||
can't spot a missing ")".
|
||||
*c_curly_error* highlight a missing }; this forces syncing from the
|
||||
start of the file, can be slow
|
||||
*c_no_ansi* don't do standard ANSI types and constants
|
||||
@@ -1043,6 +1045,21 @@ This works immediately.
|
||||
|
||||
CLOJURE *ft-clojure-syntax*
|
||||
|
||||
The default syntax groups can be augmented through the
|
||||
*g:clojure_syntax_keywords* and *b:clojure_syntax_keywords* variables. The
|
||||
value should be a |Dictionary| of syntax group names to a |List| of custom
|
||||
identifiers:
|
||||
>
|
||||
let g:clojure_syntax_keywords = {
|
||||
\ 'clojureMacro': ["defproject", "defcustom"],
|
||||
\ 'clojureFunc': ["string/join", "string/replace"]
|
||||
\ }
|
||||
<
|
||||
Refer to the Clojure syntax script for valid syntax group names.
|
||||
|
||||
If the |buffer-variable| *b:clojure_syntax_without_core_keywords* is set, only
|
||||
language constants and special forms are matched.
|
||||
|
||||
Setting *g:clojure_fold* enables folding Clojure code via the syntax engine.
|
||||
Any list, vector, or map that extends over more than one line can be folded
|
||||
using the standard Vim |fold-commands|.
|
||||
@@ -2652,7 +2669,76 @@ your .vimrc: *g:filetype_r*
|
||||
|
||||
RUBY *ruby.vim* *ft-ruby-syntax*
|
||||
|
||||
There are a number of options to the Ruby syntax highlighting.
|
||||
Ruby: Operator highlighting |ruby_operators|
|
||||
Ruby: Whitespace errors |ruby_space_errors|
|
||||
Ruby: Folding |ruby_fold| |ruby_foldable_groups|
|
||||
Ruby: Reducing expensive operations |ruby_no_expensive| |ruby_minlines|
|
||||
Ruby: Spellchecking strings |ruby_spellcheck_strings|
|
||||
|
||||
*ruby_operators*
|
||||
Ruby: Operator highlighting ~
|
||||
|
||||
Operators can be highlighted by defining "ruby_operators": >
|
||||
|
||||
:let ruby_operators = 1
|
||||
<
|
||||
*ruby_space_errors*
|
||||
Ruby: Whitespace errors ~
|
||||
|
||||
Whitespace errors can be highlighted by defining "ruby_space_errors": >
|
||||
|
||||
:let ruby_space_errors = 1
|
||||
<
|
||||
This will highlight trailing whitespace and tabs preceded by a space character
|
||||
as errors. This can be refined by defining "ruby_no_trail_space_error" and
|
||||
"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
|
||||
spaces respectively.
|
||||
|
||||
*ruby_fold* *ruby_foldable_groups*
|
||||
Ruby: Folding ~
|
||||
|
||||
Folding can be enabled by defining "ruby_fold": >
|
||||
|
||||
:let ruby_fold = 1
|
||||
<
|
||||
This will set the value of 'foldmethod' to "syntax" locally to the current
|
||||
buffer or window, which will enable syntax-based folding when editing Ruby
|
||||
filetypes.
|
||||
|
||||
*ruby_foldable_groups*
|
||||
Default folding is rather detailed, i.e., small syntax units like "if", "do",
|
||||
"%w[]" may create corresponding fold levels.
|
||||
|
||||
You can set "ruby_foldable_groups" to restrict which groups are foldable: >
|
||||
|
||||
:let ruby_foldable_groups = 'if case %'
|
||||
<
|
||||
The value is a space-separated list of keywords:
|
||||
|
||||
keyword meaning ~
|
||||
-------- ------------------------------------- ~
|
||||
ALL Most block syntax (default)
|
||||
NONE Nothing
|
||||
if "if" or "unless" block
|
||||
def "def" block
|
||||
class "class" block
|
||||
module "module" block
|
||||
do "do" block
|
||||
begin "begin" block
|
||||
case "case" block
|
||||
for "for", "while", "until" loops
|
||||
{ Curly bracket block or hash literal
|
||||
[ Array literal
|
||||
% Literal with "%" notation, e.g.: %w(STRING), %!STRING!
|
||||
/ Regexp
|
||||
string String and shell command output (surrounded by ', ", `)
|
||||
: Symbol
|
||||
# Multiline comment
|
||||
<< Here documents
|
||||
__END__ Source code after "__END__" directive
|
||||
|
||||
*ruby_no_expensive*
|
||||
Ruby: Reducing expensive operations ~
|
||||
|
||||
By default, the "end" keyword is colorized according to the opening statement
|
||||
of the block it closes. While useful, this feature can be expensive; if you
|
||||
@@ -2663,6 +2749,8 @@ you may want to turn it off by defining the "ruby_no_expensive" variable: >
|
||||
<
|
||||
In this case the same color will be used for all control keywords.
|
||||
|
||||
*ruby_minlines*
|
||||
|
||||
If you do want this feature enabled, but notice highlighting errors while
|
||||
scrolling backwards, which are fixed when redrawing with CTRL-L, try setting
|
||||
the "ruby_minlines" variable to a value larger than 50: >
|
||||
@@ -2672,48 +2760,13 @@ the "ruby_minlines" variable to a value larger than 50: >
|
||||
Ideally, this value should be a number of lines large enough to embrace your
|
||||
largest class or module.
|
||||
|
||||
Highlighting of special identifiers can be disabled by removing the
|
||||
rubyIdentifier highlighting: >
|
||||
*ruby_spellcheck_strings*
|
||||
Ruby: Spellchecking strings ~
|
||||
|
||||
:hi link rubyIdentifier NONE
|
||||
<
|
||||
This will prevent highlighting of special identifiers like "ConstantName",
|
||||
"$global_var", "@@class_var", "@instance_var", "| block_param |", and
|
||||
":symbol".
|
||||
Ruby syntax will perform spellchecking of strings if you define
|
||||
"ruby_spellcheck_strings": >
|
||||
|
||||
Significant methods of Kernel, Module and Object are highlighted by default.
|
||||
This can be disabled by defining "ruby_no_special_methods": >
|
||||
|
||||
:let ruby_no_special_methods = 1
|
||||
<
|
||||
This will prevent highlighting of important methods such as "require", "attr",
|
||||
"private", "raise" and "proc".
|
||||
|
||||
Ruby operators can be highlighted. This is enabled by defining
|
||||
"ruby_operators": >
|
||||
|
||||
:let ruby_operators = 1
|
||||
<
|
||||
Whitespace errors can be highlighted by defining "ruby_space_errors": >
|
||||
|
||||
:let ruby_space_errors = 1
|
||||
<
|
||||
This will highlight trailing whitespace and tabs preceded by a space character
|
||||
as errors. This can be refined by defining "ruby_no_trail_space_error" and
|
||||
"ruby_no_tab_space_error" which will ignore trailing whitespace and tabs after
|
||||
spaces respectively.
|
||||
|
||||
Folding can be enabled by defining "ruby_fold": >
|
||||
|
||||
:let ruby_fold = 1
|
||||
<
|
||||
This will set the 'foldmethod' option to "syntax" and allow folding of
|
||||
classes, modules, methods, code blocks, heredocs and comments.
|
||||
|
||||
Folding of multiline comments can be disabled by defining
|
||||
"ruby_no_comment_fold": >
|
||||
|
||||
:let ruby_no_comment_fold = 1
|
||||
:let ruby_spellcheck_strings = 1
|
||||
<
|
||||
|
||||
SCHEME *scheme.vim* *ft-scheme-syntax*
|
||||
@@ -3747,7 +3800,7 @@ Whether or not it is actually concealed depends on the value of the
|
||||
'conceallevel' option. The 'concealcursor' option is used to decide whether
|
||||
concealable items in the current line are displayed unconcealed to be able to
|
||||
edit the line.
|
||||
Another way to conceal text with with |matchadd()|.
|
||||
Another way to conceal text is with |matchadd()|.
|
||||
|
||||
concealends *:syn-concealends*
|
||||
|
||||
@@ -4779,6 +4832,10 @@ font={font-name} *highlight-font*
|
||||
All fonts used, except for Menu and Tooltip, should be of the same
|
||||
character size as the default font! Otherwise redrawing problems will
|
||||
occur.
|
||||
To use a font name with an embedded space or other special character,
|
||||
put it in single quotes. The single quote cannot be used then.
|
||||
Example: >
|
||||
:hi comment font='Monospace 10'
|
||||
|
||||
guifg={color-name} *highlight-guifg*
|
||||
guibg={color-name} *highlight-guibg*
|
||||
@@ -4849,6 +4906,9 @@ DiffChange diff mode: Changed line |diff.txt|
|
||||
DiffDelete diff mode: Deleted line |diff.txt|
|
||||
*hl-DiffText*
|
||||
DiffText diff mode: Changed text within a changed line |diff.txt|
|
||||
*hl-EndOfBuffer*
|
||||
EndOfBuffer filler lines (~) after the last line in the buffer.
|
||||
By default, this is highlighted like |hl-NonText|.
|
||||
*hl-ErrorMsg*
|
||||
ErrorMsg error messages on the command line
|
||||
*hl-VertSplit*
|
||||
@@ -4877,10 +4937,10 @@ ModeMsg 'showmode' message (e.g., "-- INSERT --")
|
||||
*hl-MoreMsg*
|
||||
MoreMsg |more-prompt|
|
||||
*hl-NonText*
|
||||
NonText '~' and '@' at the end of the window, characters from
|
||||
'showbreak' and other characters that do not really exist in
|
||||
the text (e.g., ">" displayed when a double-wide character
|
||||
doesn't fit at the end of the line).
|
||||
NonText '@' at the end of the window, characters from 'showbreak'
|
||||
and other characters that do not really exist in the text
|
||||
(e.g., ">" displayed when a double-wide character doesn't
|
||||
fit at the end of the line).
|
||||
*hl-Normal*
|
||||
Normal normal text
|
||||
*hl-Pmenu*
|
||||
|
||||
+23
-9
@@ -1,4 +1,4 @@
|
||||
*tabpage.txt* For Vim version 7.4. Last change: 2015 Jan 04
|
||||
*tabpage.txt* For Vim version 7.4. Last change: 2016 Sep 09
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -87,14 +87,21 @@ In the GUI tab pages line you can use the right mouse button to open menu.
|
||||
Execute {cmd} and when it opens a new window open a new tab
|
||||
page instead. Doesn't work for |:diffsplit|, |:diffpatch|,
|
||||
|:execute| and |:normal|.
|
||||
When [count] is omitted the tab page appears after the current
|
||||
one.
|
||||
When [count] is specified the new tab page comes after tab
|
||||
page [count]. Use ":0tab cmd" to get the new tab page as the
|
||||
first one.
|
||||
If [count] is given the new tab page appears after the tab
|
||||
page [count] otherwise the new tab page will appear after the
|
||||
current one.
|
||||
Examples: >
|
||||
:tab split " opens current buffer in new tab page
|
||||
:tab help gt " opens tab page with help for "gt"
|
||||
:tab split " opens current buffer in new tab page
|
||||
:tab help gt " opens tab page with help for "gt"
|
||||
:.tab help gt " as above
|
||||
:+tab help " opens tab page with help after the next
|
||||
" tab page
|
||||
:-tab help " opens tab page with help before the
|
||||
" current one
|
||||
:0tab help " opens tab page with help before the
|
||||
" first one
|
||||
:$tab help " opens tab page with help after the last
|
||||
" one
|
||||
|
||||
CTRL-W gf Open a new tab page and edit the file name under the cursor.
|
||||
See |CTRL-W_gf|.
|
||||
@@ -141,10 +148,11 @@ something else.
|
||||
given, then they become hidden. But modified buffers are
|
||||
never abandoned, so changes cannot get lost. >
|
||||
:tabonly " close all tab pages except the current
|
||||
" one
|
||||
|
||||
:{count}tabo[nly][!]
|
||||
Close all tab pages except the {count}th one. >
|
||||
:.tabonly " one
|
||||
:.tabonly " as above
|
||||
:-tabonly " close all tab pages except the previous
|
||||
" one
|
||||
:+tabonly " close all tab pages except the next one
|
||||
@@ -193,6 +201,12 @@ Other commands:
|
||||
:tabs List the tab pages and the windows they contain.
|
||||
Shows a ">" for the current window.
|
||||
Shows a "+" for modified buffers.
|
||||
For example:
|
||||
Tab page 1 ~
|
||||
+ tabpage.txt ~
|
||||
ex_docmd.c ~
|
||||
Tab page 2 ~
|
||||
> main.c ~
|
||||
|
||||
|
||||
REORDERING TAB PAGES:
|
||||
|
||||
+138
-3
@@ -406,6 +406,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'langmap' options.txt /*'langmap'*
|
||||
'langmenu' options.txt /*'langmenu'*
|
||||
'langnoremap' options.txt /*'langnoremap'*
|
||||
'langremap' options.txt /*'langremap'*
|
||||
'laststatus' options.txt /*'laststatus'*
|
||||
'lazyredraw' options.txt /*'lazyredraw'*
|
||||
'lbr' options.txt /*'lbr'*
|
||||
@@ -422,6 +423,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'lnr' options.txt /*'lnr'*
|
||||
'loadplugins' options.txt /*'loadplugins'*
|
||||
'lpl' options.txt /*'lpl'*
|
||||
'lrm' options.txt /*'lrm'*
|
||||
'ls' options.txt /*'ls'*
|
||||
'lsp' options.txt /*'lsp'*
|
||||
'luadll' options.txt /*'luadll'*
|
||||
@@ -431,6 +433,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'macatsui' options.txt /*'macatsui'*
|
||||
'macligatures' options.txt /*'macligatures'*
|
||||
'macmeta' options.txt /*'macmeta'*
|
||||
'macthinstrokes' options.txt /*'macthinstrokes'*
|
||||
'magic' options.txt /*'magic'*
|
||||
'makeef' options.txt /*'makeef'*
|
||||
'makeprg' options.txt /*'makeprg'*
|
||||
@@ -597,6 +600,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'nojoinspaces' options.txt /*'nojoinspaces'*
|
||||
'nojs' options.txt /*'nojs'*
|
||||
'nolangnoremap' options.txt /*'nolangnoremap'*
|
||||
'nolangremap' options.txt /*'nolangremap'*
|
||||
'nolazyredraw' options.txt /*'nolazyredraw'*
|
||||
'nolbr' options.txt /*'nolbr'*
|
||||
'nolinebreak' options.txt /*'nolinebreak'*
|
||||
@@ -605,11 +609,13 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'nolnr' options.txt /*'nolnr'*
|
||||
'noloadplugins' options.txt /*'noloadplugins'*
|
||||
'nolpl' options.txt /*'nolpl'*
|
||||
'nolrm' options.txt /*'nolrm'*
|
||||
'nolz' options.txt /*'nolz'*
|
||||
'noma' options.txt /*'noma'*
|
||||
'nomacatsui' options.txt /*'nomacatsui'*
|
||||
'nomacligatures' options.txt /*'nomacligatures'*
|
||||
'nomacmeta' options.txt /*'nomacmeta'*
|
||||
'nomacthinstrokes' options.txt /*'nomacthinstrokes'*
|
||||
'nomagic' options.txt /*'nomagic'*
|
||||
'nomh' options.txt /*'nomh'*
|
||||
'noml' options.txt /*'noml'*
|
||||
@@ -820,6 +826,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'sbr' options.txt /*'sbr'*
|
||||
'sc' options.txt /*'sc'*
|
||||
'scb' options.txt /*'scb'*
|
||||
'scl' options.txt /*'scl'*
|
||||
'scr' options.txt /*'scr'*
|
||||
'scroll' options.txt /*'scroll'*
|
||||
'scrollbind' options.txt /*'scrollbind'*
|
||||
@@ -862,6 +869,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
'si' options.txt /*'si'*
|
||||
'sidescroll' options.txt /*'sidescroll'*
|
||||
'sidescrolloff' options.txt /*'sidescrolloff'*
|
||||
'signcolumn' options.txt /*'signcolumn'*
|
||||
'siso' options.txt /*'siso'*
|
||||
'sj' options.txt /*'sj'*
|
||||
'slm' options.txt /*'slm'*
|
||||
@@ -1249,6 +1257,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+job various.txt /*+job*
|
||||
+jumplist various.txt /*+jumplist*
|
||||
+keymap various.txt /*+keymap*
|
||||
+lambda various.txt /*+lambda*
|
||||
+langmap various.txt /*+langmap*
|
||||
+libcall various.txt /*+libcall*
|
||||
+linebreak various.txt /*+linebreak*
|
||||
@@ -1277,8 +1286,10 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
+mzscheme various.txt /*+mzscheme*
|
||||
+mzscheme/dyn various.txt /*+mzscheme\/dyn*
|
||||
+netbeans_intg various.txt /*+netbeans_intg*
|
||||
+num64 various.txt /*+num64*
|
||||
+odbeditor various.txt /*+odbeditor*
|
||||
+ole various.txt /*+ole*
|
||||
+packages various.txt /*+packages*
|
||||
+path_extra various.txt /*+path_extra*
|
||||
+perl various.txt /*+perl*
|
||||
+perl/dyn various.txt /*+perl\/dyn*
|
||||
@@ -1607,6 +1618,9 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
/\{- pattern.txt /*\/\\{-*
|
||||
/\~ pattern.txt /*\/\\~*
|
||||
/^ pattern.txt /*\/^*
|
||||
/_CTRL-G cmdline.txt /*\/_CTRL-G*
|
||||
/_CTRL-L cmdline.txt /*\/_CTRL-L*
|
||||
/_CTRL-T cmdline.txt /*\/_CTRL-T*
|
||||
/atom pattern.txt /*\/atom*
|
||||
/bar pattern.txt /*\/bar*
|
||||
/branch pattern.txt /*\/branch*
|
||||
@@ -2011,6 +2025,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:bmodified windows.txt /*:bmodified*
|
||||
:bn windows.txt /*:bn*
|
||||
:bnext windows.txt /*:bnext*
|
||||
:bo windows.txt /*:bo*
|
||||
:botright windows.txt /*:botright*
|
||||
:bp windows.txt /*:bp*
|
||||
:bprevious windows.txt /*:bprevious*
|
||||
@@ -2058,6 +2073,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:cat eval.txt /*:cat*
|
||||
:catch eval.txt /*:catch*
|
||||
:cb quickfix.txt /*:cb*
|
||||
:cbo quickfix.txt /*:cbo*
|
||||
:cbottom quickfix.txt /*:cbottom*
|
||||
:cbuffer quickfix.txt /*:cbuffer*
|
||||
:cc quickfix.txt /*:cc*
|
||||
:ccl quickfix.txt /*:ccl*
|
||||
@@ -2089,9 +2106,13 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:checkpath tagsrch.txt /*:checkpath*
|
||||
:checkt editing.txt /*:checkt*
|
||||
:checktime editing.txt /*:checktime*
|
||||
:chi quickfix.txt /*:chi*
|
||||
:chistory quickfix.txt /*:chistory*
|
||||
:cl quickfix.txt /*:cl*
|
||||
:cla quickfix.txt /*:cla*
|
||||
:clast quickfix.txt /*:clast*
|
||||
:cle motion.txt /*:cle*
|
||||
:clearjumps motion.txt /*:clearjumps*
|
||||
:clist quickfix.txt /*:clist*
|
||||
:clo windows.txt /*:clo*
|
||||
:close windows.txt /*:close*
|
||||
@@ -2274,6 +2295,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:filetype-overview filetype.txt /*:filetype-overview*
|
||||
:filetype-plugin-off filetype.txt /*:filetype-plugin-off*
|
||||
:filetype-plugin-on filetype.txt /*:filetype-plugin-on*
|
||||
:filt various.txt /*:filt*
|
||||
:filter various.txt /*:filter*
|
||||
:fin editing.txt /*:fin*
|
||||
:fina eval.txt /*:fina*
|
||||
:finally eval.txt /*:finally*
|
||||
@@ -2297,6 +2320,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:for eval.txt /*:for*
|
||||
:fu eval.txt /*:fu*
|
||||
:func-abort eval.txt /*:func-abort*
|
||||
:func-closure eval.txt /*:func-closure*
|
||||
:func-dict eval.txt /*:func-dict*
|
||||
:func-range eval.txt /*:func-range*
|
||||
:function eval.txt /*:function*
|
||||
@@ -2408,6 +2432,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:lat undo.txt /*:lat*
|
||||
:later undo.txt /*:later*
|
||||
:lb quickfix.txt /*:lb*
|
||||
:lbo quickfix.txt /*:lbo*
|
||||
:lbottom quickfix.txt /*:lbottom*
|
||||
:lbuffer quickfix.txt /*:lbuffer*
|
||||
:lc editing.txt /*:lc*
|
||||
:lcd editing.txt /*:lcd*
|
||||
@@ -2452,6 +2478,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:lgrepadd quickfix.txt /*:lgrepadd*
|
||||
:lh helphelp.txt /*:lh*
|
||||
:lhelpgrep helphelp.txt /*:lhelpgrep*
|
||||
:lhi quickfix.txt /*:lhi*
|
||||
:lhistory quickfix.txt /*:lhistory*
|
||||
:list various.txt /*:list*
|
||||
:ll quickfix.txt /*:ll*
|
||||
:lla quickfix.txt /*:lla*
|
||||
@@ -3396,6 +3424,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
<line1> map.txt /*<line1>*
|
||||
<line2> map.txt /*<line2>*
|
||||
<lt> intro.txt /*<lt>*
|
||||
<mods> map.txt /*<mods>*
|
||||
<nomodeline> autocmd.txt /*<nomodeline>*
|
||||
<q-args> map.txt /*<q-args>*
|
||||
<reg> map.txt /*<reg>*
|
||||
@@ -4499,7 +4528,15 @@ E925 quickfix.txt /*E925*
|
||||
E926 quickfix.txt /*E926*
|
||||
E927 eval.txt /*E927*
|
||||
E928 eval.txt /*E928*
|
||||
E929 starting.txt /*E929*
|
||||
E93 windows.txt /*E93*
|
||||
E930 eval.txt /*E930*
|
||||
E931 message.txt /*E931*
|
||||
E932 eval.txt /*E932*
|
||||
E933 eval.txt /*E933*
|
||||
E934 sign.txt /*E934*
|
||||
E935 eval.txt /*E935*
|
||||
E936 autocmd.txt /*E936*
|
||||
E94 windows.txt /*E94*
|
||||
E95 message.txt /*E95*
|
||||
E96 diff.txt /*E96*
|
||||
@@ -4515,6 +4552,7 @@ Ex intro.txt /*Ex*
|
||||
Ex-mode intro.txt /*Ex-mode*
|
||||
Exuberant_ctags tagsrch.txt /*Exuberant_ctags*
|
||||
F motion.txt /*F*
|
||||
FALSE eval.txt /*FALSE*
|
||||
FAQ intro.txt /*FAQ*
|
||||
Farsi farsi.txt /*Farsi*
|
||||
FileAppendCmd autocmd.txt /*FileAppendCmd*
|
||||
@@ -4630,6 +4668,7 @@ OptionSet autocmd.txt /*OptionSet*
|
||||
OverTheSpot mbyte.txt /*OverTheSpot*
|
||||
P change.txt /*P*
|
||||
PATHEXT eval.txt /*PATHEXT*
|
||||
PEP8 filetype.txt /*PEP8*
|
||||
PHP_BracesAtCodeLevel indent.txt /*PHP_BracesAtCodeLevel*
|
||||
PHP_autoformatcomment indent.txt /*PHP_autoformatcomment*
|
||||
PHP_default_indenting indent.txt /*PHP_default_indenting*
|
||||
@@ -4637,6 +4676,7 @@ PHP_outdentSLComments indent.txt /*PHP_outdentSLComments*
|
||||
PHP_outdentphpescape indent.txt /*PHP_outdentphpescape*
|
||||
PHP_removeCRwhenUnix indent.txt /*PHP_removeCRwhenUnix*
|
||||
PHP_vintage_case_default_indent indent.txt /*PHP_vintage_case_default_indent*
|
||||
Partial eval.txt /*Partial*
|
||||
Pattern pattern.txt /*Pattern*
|
||||
Perl if_perl.txt /*Perl*
|
||||
Posix intro.txt /*Posix*
|
||||
@@ -4730,11 +4770,14 @@ TOhtml-encoding-detect syntax.txt /*TOhtml-encoding-detect*
|
||||
TOhtml-performance syntax.txt /*TOhtml-performance*
|
||||
TOhtml-uncopyable-text syntax.txt /*TOhtml-uncopyable-text*
|
||||
TOhtml-wrap-text syntax.txt /*TOhtml-wrap-text*
|
||||
TRUE eval.txt /*TRUE*
|
||||
TSQL ft_sql.txt /*TSQL*
|
||||
TTpro-telnet syntax.txt /*TTpro-telnet*
|
||||
Tab intro.txt /*Tab*
|
||||
TabClosed autocmd.txt /*TabClosed*
|
||||
TabEnter autocmd.txt /*TabEnter*
|
||||
TabLeave autocmd.txt /*TabLeave*
|
||||
TabNew autocmd.txt /*TabNew*
|
||||
Tcl if_tcl.txt /*Tcl*
|
||||
TermChanged autocmd.txt /*TermChanged*
|
||||
TermResponse autocmd.txt /*TermResponse*
|
||||
@@ -4775,11 +4818,13 @@ W15 repeat.txt /*W15*
|
||||
W16 message.txt /*W16*
|
||||
W17 arabic.txt /*W17*
|
||||
W18 syntax.txt /*W18*
|
||||
W19 autocmd.txt /*W19*
|
||||
WORD motion.txt /*WORD*
|
||||
WWW intro.txt /*WWW*
|
||||
Win32 os_win32.txt /*Win32*
|
||||
WinEnter autocmd.txt /*WinEnter*
|
||||
WinLeave autocmd.txt /*WinLeave*
|
||||
WinNew autocmd.txt /*WinNew*
|
||||
X change.txt /*X*
|
||||
X11 options.txt /*X11*
|
||||
X11-icon gui_x11.txt /*X11-icon*
|
||||
@@ -4965,7 +5010,6 @@ added-win32-GUI version5.txt /*added-win32-GUI*
|
||||
aff-dic-format spell.txt /*aff-dic-format*
|
||||
after-directory options.txt /*after-directory*
|
||||
aleph options.txt /*aleph*
|
||||
alloc_fail() eval.txt /*alloc_fail()*
|
||||
alt intro.txt /*alt*
|
||||
alt-input debugger.txt /*alt-input*
|
||||
alt-movement gui_mac.txt /*alt-movement*
|
||||
@@ -4999,6 +5043,7 @@ assert_equal() eval.txt /*assert_equal()*
|
||||
assert_exception() eval.txt /*assert_exception()*
|
||||
assert_fails() eval.txt /*assert_fails()*
|
||||
assert_false() eval.txt /*assert_false()*
|
||||
assert_inrange() eval.txt /*assert_inrange()*
|
||||
assert_match() eval.txt /*assert_match()*
|
||||
assert_notequal() eval.txt /*assert_notequal()*
|
||||
assert_notmatch() eval.txt /*assert_notmatch()*
|
||||
@@ -5046,6 +5091,8 @@ b motion.txt /*b*
|
||||
b: eval.txt /*b:*
|
||||
b:changedtick eval.txt /*b:changedtick*
|
||||
b:changelog_name filetype.txt /*b:changelog_name*
|
||||
b:clojure_syntax_keywords syntax.txt /*b:clojure_syntax_keywords*
|
||||
b:clojure_syntax_without_core_keywords syntax.txt /*b:clojure_syntax_without_core_keywords*
|
||||
b:current_syntax-variable syntax.txt /*b:current_syntax-variable*
|
||||
b:netrw_lastfile pi_netrw.txt /*b:netrw_lastfile*
|
||||
b:tex_stylish syntax.txt /*b:tex_stylish*
|
||||
@@ -5087,7 +5134,9 @@ beval_bufnr-variable eval.txt /*beval_bufnr-variable*
|
||||
beval_col-variable eval.txt /*beval_col-variable*
|
||||
beval_lnum-variable eval.txt /*beval_lnum-variable*
|
||||
beval_text-variable eval.txt /*beval_text-variable*
|
||||
beval_winid-variable eval.txt /*beval_winid-variable*
|
||||
beval_winnr-variable eval.txt /*beval_winnr-variable*
|
||||
binary-number eval.txt /*binary-number*
|
||||
bitwise-function usr_41.txt /*bitwise-function*
|
||||
blockwise-examples visual.txt /*blockwise-examples*
|
||||
blockwise-operators visual.txt /*blockwise-operators*
|
||||
@@ -5119,6 +5168,7 @@ buflisted() eval.txt /*buflisted()*
|
||||
bufloaded() eval.txt /*bufloaded()*
|
||||
bufname() eval.txt /*bufname()*
|
||||
bufnr() eval.txt /*bufnr()*
|
||||
bufwinid() eval.txt /*bufwinid()*
|
||||
bufwinnr() eval.txt /*bufwinnr()*
|
||||
bug-fixes-5 version5.txt /*bug-fixes-5*
|
||||
bug-fixes-6 version6.txt /*bug-fixes-6*
|
||||
@@ -5182,6 +5232,7 @@ c_CTRL-C cmdline.txt /*c_CTRL-C*
|
||||
c_CTRL-D cmdline.txt /*c_CTRL-D*
|
||||
c_CTRL-E cmdline.txt /*c_CTRL-E*
|
||||
c_CTRL-F cmdline.txt /*c_CTRL-F*
|
||||
c_CTRL-G cmdline.txt /*c_CTRL-G*
|
||||
c_CTRL-H cmdline.txt /*c_CTRL-H*
|
||||
c_CTRL-I cmdline.txt /*c_CTRL-I*
|
||||
c_CTRL-J cmdline.txt /*c_CTRL-J*
|
||||
@@ -5198,6 +5249,7 @@ c_CTRL-R_CTRL-O cmdline.txt /*c_CTRL-R_CTRL-O*
|
||||
c_CTRL-R_CTRL-P cmdline.txt /*c_CTRL-R_CTRL-P*
|
||||
c_CTRL-R_CTRL-R cmdline.txt /*c_CTRL-R_CTRL-R*
|
||||
c_CTRL-R_CTRL-W cmdline.txt /*c_CTRL-R_CTRL-W*
|
||||
c_CTRL-T cmdline.txt /*c_CTRL-T*
|
||||
c_CTRL-U cmdline.txt /*c_CTRL-U*
|
||||
c_CTRL-V cmdline.txt /*c_CTRL-V*
|
||||
c_CTRL-W cmdline.txt /*c_CTRL-W*
|
||||
@@ -5249,6 +5301,7 @@ cc change.txt /*cc*
|
||||
ceil() eval.txt /*ceil()*
|
||||
ch.vim syntax.txt /*ch.vim*
|
||||
ch_close() eval.txt /*ch_close()*
|
||||
ch_close_in() eval.txt /*ch_close_in()*
|
||||
ch_evalexpr() eval.txt /*ch_evalexpr()*
|
||||
ch_evalraw() eval.txt /*ch_evalraw()*
|
||||
ch_getbufnr() eval.txt /*ch_getbufnr()*
|
||||
@@ -5291,8 +5344,10 @@ changing change.txt /*changing*
|
||||
channel channel.txt /*channel*
|
||||
channel-callback channel.txt /*channel-callback*
|
||||
channel-close channel.txt /*channel-close*
|
||||
channel-close-in channel.txt /*channel-close-in*
|
||||
channel-commands channel.txt /*channel-commands*
|
||||
channel-demo channel.txt /*channel-demo*
|
||||
channel-functions usr_41.txt /*channel-functions*
|
||||
channel-mode channel.txt /*channel-mode*
|
||||
channel-more channel.txt /*channel-more*
|
||||
channel-open channel.txt /*channel-open*
|
||||
@@ -5365,6 +5420,7 @@ clipboard-unnamed options.txt /*clipboard-unnamed*
|
||||
clipboard-unnamedplus options.txt /*clipboard-unnamedplus*
|
||||
clojure-indent indent.txt /*clojure-indent*
|
||||
close_cb channel.txt /*close_cb*
|
||||
closure eval.txt /*closure*
|
||||
cmd-key gui_mac.txt /*cmd-key*
|
||||
cmd-movement gui_mac.txt /*cmd-movement*
|
||||
cmd-shortcuts gui_mac.txt /*cmd-shortcuts*
|
||||
@@ -5610,12 +5666,14 @@ debugger.txt debugger.txt /*debugger.txt*
|
||||
dec-mouse options.txt /*dec-mouse*
|
||||
decada_members ft_ada.txt /*decada_members*
|
||||
deepcopy() eval.txt /*deepcopy()*
|
||||
defaults.vim starting.txt /*defaults.vim*
|
||||
definition-search tagsrch.txt /*definition-search*
|
||||
definitions intro.txt /*definitions*
|
||||
delete() eval.txt /*delete()*
|
||||
delete-insert change.txt /*delete-insert*
|
||||
delete-menus gui.txt /*delete-menus*
|
||||
deleting change.txt /*deleting*
|
||||
demoserver.py channel.txt /*demoserver.py*
|
||||
design-assumptions develop.txt /*design-assumptions*
|
||||
design-compatible develop.txt /*design-compatible*
|
||||
design-decisions develop.txt /*design-decisions*
|
||||
@@ -5671,7 +5729,6 @@ dip motion.txt /*dip*
|
||||
dircolors.vim syntax.txt /*dircolors.vim*
|
||||
dis motion.txt /*dis*
|
||||
disable-menus gui.txt /*disable-menus*
|
||||
disable_char_avail_for_testing() eval.txt /*disable_char_avail_for_testing()*
|
||||
discard editing.txt /*discard*
|
||||
distribute-script usr_41.txt /*distribute-script*
|
||||
distribution intro.txt /*distribution*
|
||||
@@ -5736,6 +5793,8 @@ erlang.vim syntax.txt /*erlang.vim*
|
||||
err_buf channel.txt /*err_buf*
|
||||
err_cb channel.txt /*err_cb*
|
||||
err_mode channel.txt /*err_mode*
|
||||
err_modifiable channel.txt /*err_modifiable*
|
||||
err_msg channel.txt /*err_msg*
|
||||
err_name channel.txt /*err_name*
|
||||
err_timeout channel.txt /*err_timeout*
|
||||
errmsg-variable eval.txt /*errmsg-variable*
|
||||
@@ -5792,6 +5851,7 @@ exception-variable eval.txt /*exception-variable*
|
||||
exclusive motion.txt /*exclusive*
|
||||
exclusive-linewise motion.txt /*exclusive-linewise*
|
||||
executable() eval.txt /*executable()*
|
||||
execute() eval.txt /*execute()*
|
||||
execute-menus gui.txt /*execute-menus*
|
||||
exepath() eval.txt /*exepath()*
|
||||
exim starting.txt /*exim*
|
||||
@@ -5847,6 +5907,7 @@ expr-is? eval.txt /*expr-is?*
|
||||
expr-isnot eval.txt /*expr-isnot*
|
||||
expr-isnot# eval.txt /*expr-isnot#*
|
||||
expr-isnot? eval.txt /*expr-isnot?*
|
||||
expr-lambda eval.txt /*expr-lambda*
|
||||
expr-nesting eval.txt /*expr-nesting*
|
||||
expr-number eval.txt /*expr-number*
|
||||
expr-option eval.txt /*expr-option*
|
||||
@@ -6088,6 +6149,7 @@ ft-printcap-syntax syntax.txt /*ft-printcap-syntax*
|
||||
ft-progress-syntax syntax.txt /*ft-progress-syntax*
|
||||
ft-ptcap-syntax syntax.txt /*ft-ptcap-syntax*
|
||||
ft-python-indent indent.txt /*ft-python-indent*
|
||||
ft-python-plugin filetype.txt /*ft-python-plugin*
|
||||
ft-python-syntax syntax.txt /*ft-python-syntax*
|
||||
ft-quake-syntax syntax.txt /*ft-quake-syntax*
|
||||
ft-r-indent indent.txt /*ft-r-indent*
|
||||
@@ -6137,6 +6199,7 @@ ftplugin-name usr_05.txt /*ftplugin-name*
|
||||
ftplugin-overrule filetype.txt /*ftplugin-overrule*
|
||||
ftplugin-special usr_41.txt /*ftplugin-special*
|
||||
ftplugins usr_05.txt /*ftplugins*
|
||||
funcref() eval.txt /*funcref()*
|
||||
function() eval.txt /*function()*
|
||||
function-argument eval.txt /*function-argument*
|
||||
function-key intro.txt /*function-key*
|
||||
@@ -6195,6 +6258,7 @@ g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist*
|
||||
g:clojure_fuzzy_indent_patterns indent.txt /*g:clojure_fuzzy_indent_patterns*
|
||||
g:clojure_maxlines indent.txt /*g:clojure_maxlines*
|
||||
g:clojure_special_indent_words indent.txt /*g:clojure_special_indent_words*
|
||||
g:clojure_syntax_keywords syntax.txt /*g:clojure_syntax_keywords*
|
||||
g:colors_name options.txt /*g:colors_name*
|
||||
g:decada ft_ada.txt /*g:decada*
|
||||
g:decada.Error_Format ft_ada.txt /*g:decada.Error_Format*
|
||||
@@ -6406,12 +6470,12 @@ g` motion.txt /*g`*
|
||||
g`a motion.txt /*g`a*
|
||||
ga various.txt /*ga*
|
||||
garbagecollect() eval.txt /*garbagecollect()*
|
||||
garbagecollect_for_testing() eval.txt /*garbagecollect_for_testing()*
|
||||
gd pattern.txt /*gd*
|
||||
gdb debug.txt /*gdb*
|
||||
ge motion.txt /*ge*
|
||||
get() eval.txt /*get()*
|
||||
get-ms-debuggers debug.txt /*get-ms-debuggers*
|
||||
getbufinfo() eval.txt /*getbufinfo()*
|
||||
getbufline() eval.txt /*getbufline()*
|
||||
getbufvar() eval.txt /*getbufvar()*
|
||||
getchar() eval.txt /*getchar()*
|
||||
@@ -6421,6 +6485,7 @@ getcmdline() eval.txt /*getcmdline()*
|
||||
getcmdpos() eval.txt /*getcmdpos()*
|
||||
getcmdtype() eval.txt /*getcmdtype()*
|
||||
getcmdwintype() eval.txt /*getcmdwintype()*
|
||||
getcompletion() eval.txt /*getcompletion()*
|
||||
getcurpos() eval.txt /*getcurpos()*
|
||||
getcwd() eval.txt /*getcwd()*
|
||||
getfontname() eval.txt /*getfontname()*
|
||||
@@ -6443,8 +6508,10 @@ getscript-data pi_getscript.txt /*getscript-data*
|
||||
getscript-history pi_getscript.txt /*getscript-history*
|
||||
getscript-plugins pi_getscript.txt /*getscript-plugins*
|
||||
getscript-start pi_getscript.txt /*getscript-start*
|
||||
gettabinfo() eval.txt /*gettabinfo()*
|
||||
gettabvar() eval.txt /*gettabvar()*
|
||||
gettabwinvar() eval.txt /*gettabwinvar()*
|
||||
getwininfo() eval.txt /*getwininfo()*
|
||||
getwinposx() eval.txt /*getwinposx()*
|
||||
getwinposy() eval.txt /*getwinposy()*
|
||||
getwinvar() eval.txt /*getwinvar()*
|
||||
@@ -6653,6 +6720,7 @@ hl-DiffChange syntax.txt /*hl-DiffChange*
|
||||
hl-DiffDelete syntax.txt /*hl-DiffDelete*
|
||||
hl-DiffText syntax.txt /*hl-DiffText*
|
||||
hl-Directory syntax.txt /*hl-Directory*
|
||||
hl-EndOfBuffer syntax.txt /*hl-EndOfBuffer*
|
||||
hl-ErrorMsg syntax.txt /*hl-ErrorMsg*
|
||||
hl-FoldColumn syntax.txt /*hl-FoldColumn*
|
||||
hl-Folded syntax.txt /*hl-Folded*
|
||||
@@ -6865,6 +6933,7 @@ improvements-7 version7.txt /*improvements-7*
|
||||
improvements-8 version8.txt /*improvements-8*
|
||||
in_bot channel.txt /*in_bot*
|
||||
in_buf channel.txt /*in_buf*
|
||||
in_io-buffer channel.txt /*in_io-buffer*
|
||||
in_mode channel.txt /*in_mode*
|
||||
in_name channel.txt /*in_name*
|
||||
in_top channel.txt /*in_top*
|
||||
@@ -6951,6 +7020,7 @@ job-control channel.txt /*job-control*
|
||||
job-err_cb channel.txt /*job-err_cb*
|
||||
job-err_io channel.txt /*job-err_io*
|
||||
job-exit_cb channel.txt /*job-exit_cb*
|
||||
job-functions usr_41.txt /*job-functions*
|
||||
job-in_io channel.txt /*job-in_io*
|
||||
job-options channel.txt /*job-options*
|
||||
job-out_cb channel.txt /*job-out_cb*
|
||||
@@ -7009,6 +7079,7 @@ l: eval.txt /*l:*
|
||||
l:var eval.txt /*l:var*
|
||||
lCursor mbyte.txt /*lCursor*
|
||||
lace.vim syntax.txt /*lace.vim*
|
||||
lambda eval.txt /*lambda*
|
||||
lang-variable eval.txt /*lang-variable*
|
||||
language-mapping map.txt /*language-mapping*
|
||||
last-pattern pattern.txt /*last-pattern*
|
||||
@@ -7276,6 +7347,7 @@ mouse-using term.txt /*mouse-using*
|
||||
mouse_col-variable eval.txt /*mouse_col-variable*
|
||||
mouse_lnum-variable eval.txt /*mouse_lnum-variable*
|
||||
mouse_win-variable eval.txt /*mouse_win-variable*
|
||||
mouse_winid-variable eval.txt /*mouse_winid-variable*
|
||||
movement intro.txt /*movement*
|
||||
ms-dos os_msdos.txt /*ms-dos*
|
||||
msdos os_msdos.txt /*msdos*
|
||||
@@ -7637,6 +7709,7 @@ new-search-path version6.txt /*new-search-path*
|
||||
new-searchpat version6.txt /*new-searchpat*
|
||||
new-session-files version5.txt /*new-session-files*
|
||||
new-spell version7.txt /*new-spell*
|
||||
new-style-testing eval.txt /*new-style-testing*
|
||||
new-tab-pages version7.txt /*new-tab-pages*
|
||||
new-undo-branches version7.txt /*new-undo-branches*
|
||||
new-unlisted-buffers version6.txt /*new-unlisted-buffers*
|
||||
@@ -7681,6 +7754,7 @@ octal eval.txt /*octal*
|
||||
octal-nrformats options.txt /*octal-nrformats*
|
||||
octal-number eval.txt /*octal-number*
|
||||
odbeditor gui_mac.txt /*odbeditor*
|
||||
old-style-testing eval.txt /*old-style-testing*
|
||||
oldfiles-variable eval.txt /*oldfiles-variable*
|
||||
ole-activation if_ole.txt /*ole-activation*
|
||||
ole-eval if_ole.txt /*ole-eval*
|
||||
@@ -7725,7 +7799,10 @@ os_win32.txt os_win32.txt /*os_win32.txt*
|
||||
other-features vi_diff.txt /*other-features*
|
||||
out_buf channel.txt /*out_buf*
|
||||
out_cb channel.txt /*out_cb*
|
||||
out_io-buffer channel.txt /*out_io-buffer*
|
||||
out_mode channel.txt /*out_mode*
|
||||
out_modifiable channel.txt /*out_modifiable*
|
||||
out_msg channel.txt /*out_msg*
|
||||
out_name channel.txt /*out_name*
|
||||
out_timeout channel.txt /*out_timeout*
|
||||
p change.txt /*p*
|
||||
@@ -7837,10 +7914,12 @@ print-options print.txt /*print-options*
|
||||
print.txt print.txt /*print.txt*
|
||||
printf() eval.txt /*printf()*
|
||||
printf-% eval.txt /*printf-%*
|
||||
printf-B eval.txt /*printf-B*
|
||||
printf-E eval.txt /*printf-E*
|
||||
printf-G eval.txt /*printf-G*
|
||||
printf-S eval.txt /*printf-S*
|
||||
printf-X eval.txt /*printf-X*
|
||||
printf-b eval.txt /*printf-b*
|
||||
printf-c eval.txt /*printf-c*
|
||||
printf-d eval.txt /*printf-d*
|
||||
printf-e eval.txt /*printf-e*
|
||||
@@ -8044,6 +8123,14 @@ ruby-set_option if_ruby.txt /*ruby-set_option*
|
||||
ruby-vim if_ruby.txt /*ruby-vim*
|
||||
ruby-window if_ruby.txt /*ruby-window*
|
||||
ruby.vim syntax.txt /*ruby.vim*
|
||||
ruby_fold syntax.txt /*ruby_fold*
|
||||
ruby_foldable_groups syntax.txt /*ruby_foldable_groups*
|
||||
ruby_foldable_groups syntax.txt /*ruby_foldable_groups*
|
||||
ruby_minlines syntax.txt /*ruby_minlines*
|
||||
ruby_no_expensive syntax.txt /*ruby_no_expensive*
|
||||
ruby_operators syntax.txt /*ruby_operators*
|
||||
ruby_space_errors syntax.txt /*ruby_space_errors*
|
||||
ruby_spellcheck_strings syntax.txt /*ruby_spellcheck_strings*
|
||||
russian russian.txt /*russian*
|
||||
russian-intro russian.txt /*russian-intro*
|
||||
russian-issues russian.txt /*russian-issues*
|
||||
@@ -8178,6 +8265,7 @@ sin() eval.txt /*sin()*
|
||||
single-repeat repeat.txt /*single-repeat*
|
||||
sinh() eval.txt /*sinh()*
|
||||
skeleton autocmd.txt /*skeleton*
|
||||
skip_defaults_vim starting.txt /*skip_defaults_vim*
|
||||
slice eval.txt /*slice*
|
||||
slow-fast-terminal term.txt /*slow-fast-terminal*
|
||||
slow-start starting.txt /*slow-start*
|
||||
@@ -8493,9 +8581,11 @@ t_ZH term.txt /*t_ZH*
|
||||
t_ZR term.txt /*t_ZR*
|
||||
t_al term.txt /*t_al*
|
||||
t_bc term.txt /*t_bc*
|
||||
t_bool-variable eval.txt /*t_bool-variable*
|
||||
t_cd term.txt /*t_cd*
|
||||
t_cdl version4.txt /*t_cdl*
|
||||
t_ce term.txt /*t_ce*
|
||||
t_channel-variable eval.txt /*t_channel-variable*
|
||||
t_ci version4.txt /*t_ci*
|
||||
t_cil version4.txt /*t_cil*
|
||||
t_cl term.txt /*t_cl*
|
||||
@@ -8507,6 +8597,7 @@ t_cv version4.txt /*t_cv*
|
||||
t_cvv version4.txt /*t_cvv*
|
||||
t_da term.txt /*t_da*
|
||||
t_db term.txt /*t_db*
|
||||
t_dict-variable eval.txt /*t_dict-variable*
|
||||
t_dl term.txt /*t_dl*
|
||||
t_ed version4.txt /*t_ed*
|
||||
t_el version4.txt /*t_el*
|
||||
@@ -8520,9 +8611,12 @@ t_f6 version4.txt /*t_f6*
|
||||
t_f7 version4.txt /*t_f7*
|
||||
t_f8 version4.txt /*t_f8*
|
||||
t_f9 version4.txt /*t_f9*
|
||||
t_float-variable eval.txt /*t_float-variable*
|
||||
t_fs term.txt /*t_fs*
|
||||
t_func-variable eval.txt /*t_func-variable*
|
||||
t_help version4.txt /*t_help*
|
||||
t_il version4.txt /*t_il*
|
||||
t_job-variable eval.txt /*t_job-variable*
|
||||
t_k1 term.txt /*t_k1*
|
||||
t_k2 term.txt /*t_k2*
|
||||
t_k3 term.txt /*t_k3*
|
||||
@@ -8547,12 +8641,15 @@ t_kr term.txt /*t_kr*
|
||||
t_ks term.txt /*t_ks*
|
||||
t_ku term.txt /*t_ku*
|
||||
t_le term.txt /*t_le*
|
||||
t_list-variable eval.txt /*t_list-variable*
|
||||
t_mb term.txt /*t_mb*
|
||||
t_md term.txt /*t_md*
|
||||
t_me term.txt /*t_me*
|
||||
t_mr term.txt /*t_mr*
|
||||
t_ms term.txt /*t_ms*
|
||||
t_nd term.txt /*t_nd*
|
||||
t_none-variable eval.txt /*t_none-variable*
|
||||
t_number-variable eval.txt /*t_number-variable*
|
||||
t_op term.txt /*t_op*
|
||||
t_se term.txt /*t_se*
|
||||
t_sf1 version4.txt /*t_sf1*
|
||||
@@ -8572,6 +8669,7 @@ t_sku version4.txt /*t_sku*
|
||||
t_so term.txt /*t_so*
|
||||
t_sr term.txt /*t_sr*
|
||||
t_star7 term.txt /*t_star7*
|
||||
t_string-variable eval.txt /*t_string-variable*
|
||||
t_tb version4.txt /*t_tb*
|
||||
t_te term.txt /*t_te*
|
||||
t_ti term.txt /*t_ti*
|
||||
@@ -8704,6 +8802,18 @@ terminal-options term.txt /*terminal-options*
|
||||
terminfo term.txt /*terminfo*
|
||||
termresponse-variable eval.txt /*termresponse-variable*
|
||||
test-functions usr_41.txt /*test-functions*
|
||||
test_alloc_fail() eval.txt /*test_alloc_fail()*
|
||||
test_autochdir() eval.txt /*test_autochdir()*
|
||||
test_disable_char_avail() eval.txt /*test_disable_char_avail()*
|
||||
test_garbagecollect_now() eval.txt /*test_garbagecollect_now()*
|
||||
test_null_channel() eval.txt /*test_null_channel()*
|
||||
test_null_dict() eval.txt /*test_null_dict()*
|
||||
test_null_job() eval.txt /*test_null_job()*
|
||||
test_null_list() eval.txt /*test_null_list()*
|
||||
test_null_partial() eval.txt /*test_null_partial()*
|
||||
test_null_string() eval.txt /*test_null_string()*
|
||||
test_settime() eval.txt /*test_settime()*
|
||||
testing eval.txt /*testing*
|
||||
testing-variable eval.txt /*testing-variable*
|
||||
tex-cchar syntax.txt /*tex-cchar*
|
||||
tex-cole syntax.txt /*tex-cole*
|
||||
@@ -8734,8 +8844,14 @@ throw-from-catch eval.txt /*throw-from-catch*
|
||||
throw-variables eval.txt /*throw-variables*
|
||||
throwpoint-variable eval.txt /*throwpoint-variable*
|
||||
time-functions usr_41.txt /*time-functions*
|
||||
timer eval.txt /*timer*
|
||||
timer-functions usr_41.txt /*timer-functions*
|
||||
timer_info() eval.txt /*timer_info()*
|
||||
timer_pause() eval.txt /*timer_pause()*
|
||||
timer_start() eval.txt /*timer_start()*
|
||||
timer_stop() eval.txt /*timer_stop()*
|
||||
timer_stopall() eval.txt /*timer_stopall()*
|
||||
timers eval.txt /*timers*
|
||||
timestamp editing.txt /*timestamp*
|
||||
timestamps editing.txt /*timestamps*
|
||||
tips tips.txt /*tips*
|
||||
@@ -8846,6 +8962,7 @@ v:beval_bufnr eval.txt /*v:beval_bufnr*
|
||||
v:beval_col eval.txt /*v:beval_col*
|
||||
v:beval_lnum eval.txt /*v:beval_lnum*
|
||||
v:beval_text eval.txt /*v:beval_text*
|
||||
v:beval_winid eval.txt /*v:beval_winid*
|
||||
v:beval_winnr eval.txt /*v:beval_winnr*
|
||||
v:char eval.txt /*v:char*
|
||||
v:charconvert_from eval.txt /*v:charconvert_from*
|
||||
@@ -8880,6 +8997,7 @@ v:lnum eval.txt /*v:lnum*
|
||||
v:mouse_col eval.txt /*v:mouse_col*
|
||||
v:mouse_lnum eval.txt /*v:mouse_lnum*
|
||||
v:mouse_win eval.txt /*v:mouse_win*
|
||||
v:mouse_winid eval.txt /*v:mouse_winid*
|
||||
v:none eval.txt /*v:none*
|
||||
v:null eval.txt /*v:null*
|
||||
v:oldfiles eval.txt /*v:oldfiles*
|
||||
@@ -8900,6 +9018,17 @@ v:statusmsg eval.txt /*v:statusmsg*
|
||||
v:swapchoice eval.txt /*v:swapchoice*
|
||||
v:swapcommand eval.txt /*v:swapcommand*
|
||||
v:swapname eval.txt /*v:swapname*
|
||||
v:t_TYPE eval.txt /*v:t_TYPE*
|
||||
v:t_bool eval.txt /*v:t_bool*
|
||||
v:t_channel eval.txt /*v:t_channel*
|
||||
v:t_dict eval.txt /*v:t_dict*
|
||||
v:t_float eval.txt /*v:t_float*
|
||||
v:t_func eval.txt /*v:t_func*
|
||||
v:t_job eval.txt /*v:t_job*
|
||||
v:t_list eval.txt /*v:t_list*
|
||||
v:t_none eval.txt /*v:t_none*
|
||||
v:t_number eval.txt /*v:t_number*
|
||||
v:t_string eval.txt /*v:t_string*
|
||||
v:termresponse eval.txt /*v:termresponse*
|
||||
v:testing eval.txt /*v:testing*
|
||||
v:this_session eval.txt /*v:this_session*
|
||||
@@ -9020,6 +9149,7 @@ v_v visual.txt /*v_v*
|
||||
v_x change.txt /*v_x*
|
||||
v_y change.txt /*v_y*
|
||||
v_~ change.txt /*v_~*
|
||||
vab motion.txt /*vab*
|
||||
val-variable eval.txt /*val-variable*
|
||||
valgrind debug.txt /*valgrind*
|
||||
values() eval.txt /*values()*
|
||||
@@ -9067,6 +9197,7 @@ vi intro.txt /*vi*
|
||||
vi-differences vi_diff.txt /*vi-differences*
|
||||
vi: options.txt /*vi:*
|
||||
vi_diff.txt vi_diff.txt /*vi_diff.txt*
|
||||
vib motion.txt /*vib*
|
||||
view starting.txt /*view*
|
||||
view-diffs diff.txt /*view-diffs*
|
||||
view-file starting.txt /*view-file*
|
||||
@@ -9123,6 +9254,7 @@ viminfo-r options.txt /*viminfo-r*
|
||||
viminfo-read starting.txt /*viminfo-read*
|
||||
viminfo-read-write starting.txt /*viminfo-read-write*
|
||||
viminfo-s options.txt /*viminfo-s*
|
||||
viminfo-timestamp starting.txt /*viminfo-timestamp*
|
||||
viminfo-write starting.txt /*viminfo-write*
|
||||
vimrc starting.txt /*vimrc*
|
||||
vimrc-filetype usr_05.txt /*vimrc-filetype*
|
||||
@@ -9203,6 +9335,7 @@ win_id2win() eval.txt /*win_id2win()*
|
||||
winbufnr() eval.txt /*winbufnr()*
|
||||
wincol() eval.txt /*wincol()*
|
||||
window windows.txt /*window*
|
||||
window-ID windows.txt /*window-ID*
|
||||
window-contents intro.txt /*window-contents*
|
||||
window-exit editing.txt /*window-exit*
|
||||
window-functions usr_41.txt /*window-functions*
|
||||
@@ -9213,6 +9346,7 @@ window-size term.txt /*window-size*
|
||||
window-size-functions usr_41.txt /*window-size-functions*
|
||||
window-tag windows.txt /*window-tag*
|
||||
window-variable eval.txt /*window-variable*
|
||||
windowid windows.txt /*windowid*
|
||||
windowid-variable eval.txt /*windowid-variable*
|
||||
windows windows.txt /*windows*
|
||||
windows-3.1 os_win32.txt /*windows-3.1*
|
||||
@@ -9222,6 +9356,7 @@ windows-starting windows.txt /*windows-starting*
|
||||
windows.txt windows.txt /*windows.txt*
|
||||
windows95 os_win32.txt /*windows95*
|
||||
winheight() eval.txt /*winheight()*
|
||||
winid windows.txt /*winid*
|
||||
winline() eval.txt /*winline()*
|
||||
winnr() eval.txt /*winnr()*
|
||||
winrestcmd() eval.txt /*winrestcmd()*
|
||||
|
||||
+46
-32
@@ -1,4 +1,4 @@
|
||||
*tagsrch.txt* For Vim version 7.4. Last change: 2013 Oct 01
|
||||
*tagsrch.txt* For Vim version 7.4. Last change: 2016 Aug 20
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -84,14 +84,23 @@ Note that when the current file changes, the priority list is mostly not
|
||||
changed, to avoid confusion when using ":tnext". It is changed when using
|
||||
":tag {ident}".
|
||||
|
||||
The ignore-case matches are not found for a ":tag" command when the
|
||||
'ignorecase' option is off and 'tagcase' is "followic" or when 'tagcase' is
|
||||
"match". They are found when a pattern is used (starting with a "/") and for
|
||||
":tselect", also when 'ignorecase' is off and 'tagcase' is "followic" or when
|
||||
'tagcase' is "match". Note that using ignore-case tag searching disables
|
||||
binary searching in the tags file, which causes a slowdown. This can be
|
||||
avoided by fold-case sorting the tag file. See the 'tagbsearch' option for an
|
||||
explanation.
|
||||
The ignore-case matches are not found for a ":tag" command when:
|
||||
- the 'ignorecase' option is off and 'tagcase' is "followic"
|
||||
- 'tagcase' is "match"
|
||||
- 'tagcase' is "smart" and the pattern contains an upper case character.
|
||||
- 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
|
||||
contains an upper case character.
|
||||
|
||||
The gnore-case matches are found when:
|
||||
- a pattern is used (starting with a "/")
|
||||
- for ":tselect"
|
||||
- when 'tagcase' is "followic" and 'ignorecase' is off
|
||||
- when 'tagcase' is "match"
|
||||
- when 'tagcase' is "followscs" and the 'smartcase' option is off
|
||||
|
||||
Note that using ignore-case tag searching disables binary searching in the
|
||||
tags file, which causes a slowdown. This can be avoided by fold-case sorting
|
||||
the tag file. See the 'tagbsearch' option for an explanation.
|
||||
|
||||
==============================================================================
|
||||
2. Tag stack *tag-stack* *tagstack* *E425*
|
||||
@@ -442,13 +451,18 @@ file "tags". It can also be used to access a common tags file.
|
||||
The next file in the list is not used when:
|
||||
- A matching static tag for the current buffer has been found.
|
||||
- A matching global tag has been found.
|
||||
This also depends on whether case is ignored. Case is ignored when
|
||||
'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
|
||||
"ignore". If case is not ignored, and the tags file only has a match without
|
||||
matching case, the next tags file is searched for a match with matching case.
|
||||
If no tag with matching case is found, the first match without matching case
|
||||
is used. If case is ignored, and a matching global tag with or without
|
||||
matching case is found, this one is used, no further tags files are searched.
|
||||
This also depends on whether case is ignored. Case is ignored when:
|
||||
- 'tagcase' is "followic" and 'ignorecase' is set
|
||||
- 'tagcase' is "ignore"
|
||||
- 'tagcase' is "smart" and the pattern only contains lower case
|
||||
characters.
|
||||
- 'tagcase' is "followscs" and 'smartcase' is set and the pattern only
|
||||
contains lower case characters.
|
||||
If case is not ignored, and the tags file only has a match without matching
|
||||
case, the next tags file is searched for a match with matching case. If no
|
||||
tag with matching case is found, the first match without matching case is
|
||||
used. If case is ignored, and a matching global tag with or without matching
|
||||
case is found, this one is used, no further tags files are searched.
|
||||
|
||||
When a tag file name starts with "./", the '.' is replaced with the path of
|
||||
the current file. This makes it possible to use a tags file in the directory
|
||||
@@ -819,24 +833,24 @@ CTRL-W d Open a new window, with the cursor on the first
|
||||
|
||||
*:search-args*
|
||||
Common arguments for the commands above:
|
||||
[!] When included, find matches in lines that are recognized as comments.
|
||||
When excluded, a match is ignored when the line is recognized as a
|
||||
comment (according to 'comments'), or the match is in a C comment (after
|
||||
"//" or inside /* */). Note that a match may be missed if a line is
|
||||
recognized as a comment, but the comment ends halfway the line.
|
||||
And if the line is a comment, but it is not recognized (according to
|
||||
'comments') a match may be found in it anyway. Example: >
|
||||
[!] When included, find matches in lines that are recognized as comments.
|
||||
When excluded, a match is ignored when the line is recognized as a
|
||||
comment (according to 'comments'), or the match is in a C comment
|
||||
(after "//" or inside /* */). Note that a match may be missed if a
|
||||
line is recognized as a comment, but the comment ends halfway the line.
|
||||
And if the line is a comment, but it is not recognized (according to
|
||||
'comments') a match may be found in it anyway. Example: >
|
||||
/* comment
|
||||
foobar */
|
||||
< A match for "foobar" is found, because this line is not recognized as a
|
||||
comment (even though syntax highlighting does recognize it).
|
||||
Note: Since a macro definition mostly doesn't look like a comment, the
|
||||
[!] makes no difference for ":dlist", ":dsearch" and ":djump".
|
||||
[/] A pattern can be surrounded by '/'. Without '/' only whole words are
|
||||
matched, using the pattern "\<pattern\>". Only after the second '/' a
|
||||
next command can be appended with '|'. Example: >
|
||||
< A match for "foobar" is found, because this line is not recognized as
|
||||
a comment (even though syntax highlighting does recognize it).
|
||||
Note: Since a macro definition mostly doesn't look like a comment, the
|
||||
[!] makes no difference for ":dlist", ":dsearch" and ":djump".
|
||||
[/] A pattern can be surrounded by '/'. Without '/' only whole words are
|
||||
matched, using the pattern "\<pattern\>". Only after the second '/' a
|
||||
next command can be appended with '|'. Example: >
|
||||
:isearch /string/ | echo "the last one"
|
||||
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
|
||||
is used as a literal string, not as a search pattern.
|
||||
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
|
||||
is used as a literal string, not as a search pattern.
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*term.txt* For Vim version 7.4. Last change: 2016 Apr 29
|
||||
*term.txt* For Vim version 7.4. Last change: 2016 Sep 02
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -426,6 +426,8 @@ Vim has started, the escape sequences may not be recognized anymore.
|
||||
Vim supports using true colors in the terminal (taken from |highlight-guifg|
|
||||
and |highlight-guibg|), given that the terminal supports this. To make this
|
||||
work the 'termguicolors' option needs to be set.
|
||||
See https://gist.github.com/XVilka/8346728 for a list of terminals that
|
||||
support true colors.
|
||||
|
||||
Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
|
||||
and |t_8b| options explicitly. Default values of these options are
|
||||
@@ -433,9 +435,8 @@ and |t_8b| options explicitly. Default values of these options are
|
||||
set when `$TERM` is `xterm`. Some terminals accept the same sequences, but
|
||||
with all semicolons replaced by colons (this is actually more compatible, but
|
||||
less widely supported): >
|
||||
set t_8f=^[[38:2:%lu:%lu:%lum
|
||||
set t_8b=^[[48:2:%lu:%lu:%lum
|
||||
(replace `^[` with real escape)
|
||||
let &t_8f = "\<Esc>[38:2:%lu:%lu:%lum"
|
||||
let &t_8b = "\<Esc>[48:2:%lu:%lu:%lum"
|
||||
|
||||
These options contain printf strings, with |printf()| (actually, its C
|
||||
equivalent hence `l` modifier) invoked with the t_ option value and three
|
||||
|
||||
+135
-167
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 7.4. Last change: 2016 Apr 30
|
||||
*todo.txt* For Vim version 7.4. Last change: 2016 Sep 10
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -34,41 +34,18 @@ not be repeated below, unless there is extra information.
|
||||
*known-bugs*
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Athena version doesn't start up. Related to termguicolors change. (Kelvin
|
||||
Lee)
|
||||
|
||||
Test_out_close_cb sometimes fails.
|
||||
Why is DETACH not send to OutHandler()?
|
||||
|
||||
Vim reliably crashes when freeing the job and operator-pending mode is active.
|
||||
(James McCoy, 2016 Apr 26)
|
||||
|
||||
Using close callback to read output doesn't work reliably.
|
||||
(Andrew Stewart, 2016 Apr 27)
|
||||
|
||||
problem with "Ignore" after adding 'guicolors'. (Charles Campbell, 2016 Apr
|
||||
27)
|
||||
|
||||
In test_partial when start_job() has a non-existing command memory leaks.
|
||||
|
||||
Memory leak in test49
|
||||
Memory leak in test_alot, with matchstrpos()
|
||||
|
||||
Packages:
|
||||
Also keep a list of loaded plugins, skip when encountered again?
|
||||
|
||||
Vim.org: when a user already has a homepage, do show the field so that it can
|
||||
be deleted.
|
||||
|
||||
Running gvim from Agide causes a crash.
|
||||
|
||||
+channel:
|
||||
- Only add DETACH message for netbeans.
|
||||
- GUI:cursor blinking is irregular when invoking callbacks. (Ramel Eshed, 2016
|
||||
Apr 16) somehow remember the previous state?
|
||||
- channel_wait() may return an error while there is still something to read.
|
||||
Perhaps try to read once?
|
||||
- Problem with stderr on Windows? (Vincent Rischmann, 2016 Aug 31, #1026)
|
||||
- Add 'cwd' argument to start_job(): directory to change to in the child.
|
||||
check for valid directory before forking.
|
||||
- Implement |job-term| ?
|
||||
- Channel test fails with Motif. Sometimes kills the X11 server.
|
||||
- When a message in the queue but there is no callback, drop it after a while?
|
||||
Add timestamp to queued messages and callbacks with ID, remove after a
|
||||
minute. Option to set the droptime.
|
||||
- Add an option to drop text of very long lines? Default to 1 Mbyte.
|
||||
- Add remark about undo sync, is there a way to force it?
|
||||
- When starting a job, have an option to open the server socket, so we know
|
||||
the port, and pass it to the command with --socket-fd {nr}. (Olaf Dabrunz,
|
||||
@@ -79,11 +56,6 @@ Later
|
||||
- job_start(): run job in a newly opened terminal.
|
||||
With xterm could use -S{pty}.
|
||||
|
||||
Make it so that the window ID can be used where currently a window nr is used
|
||||
|
||||
Patch to fix invalid behavior with NULL list. (Nikolai Pavlov, #768)
|
||||
Also check :for.
|
||||
|
||||
Regexp problems:
|
||||
- Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
|
||||
(Manuel Ortega, 2016 Apr 24)
|
||||
@@ -104,8 +76,6 @@ Regexp problems:
|
||||
2013 Dec 11)
|
||||
- Using \@> and \?. (Brett Stahlman, 2013 Dec 21) Remark from Marcin Szamotulski
|
||||
Remark from Brett 2014 Jan 6 and 7.
|
||||
- Difference in NFA and old engine. (Brett Stahlman, 2014 Nov 5)
|
||||
- Bug when using \>. (Ramel, 2014 Feb 2) (Aaron Bohannon, 2014 Feb 13)
|
||||
- NFA regexp doesn't handle \%<v correctly. (Ingo Karkat, 2014 May 12)
|
||||
- Does not work with NFA regexp engine:
|
||||
\%u, \%x, \%o, \%d followed by a composing character
|
||||
@@ -129,94 +99,132 @@ Regexp problems:
|
||||
out the \& works. Seems any column check after \& fails.
|
||||
- The pattern "\1" with the old engine gives E65, with the new engine it
|
||||
matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
|
||||
- Search for \\~ causes error E874.
|
||||
had_endbrace[] is set but not initialized or used.
|
||||
|
||||
Using freed memory in quickfix code. (Dominique, 2016 Mar 21)
|
||||
|
||||
jsonencode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
|
||||
json_encode(): should convert to utf-8. (Nikolai Pavlov, 2016 Jan 23)
|
||||
What if there is an invalid character?
|
||||
|
||||
Should json_encode()/json_decode() restrict recursiveness?
|
||||
Or avoid recursiveness.
|
||||
|
||||
Error in test_startup_utf8 on Solaris. (Danek Duvall, 2016 Aug 17)
|
||||
|
||||
Once .exe with updated installer is available: Add remark to download page
|
||||
about /S and /D options (Ken Takata, 2016 Apr 13)
|
||||
Or point to nightly builds: https://github.com/vim/vim-win32-installer/releases
|
||||
|
||||
Patch to make cursor blinking work better with GTK3. (Kazunobu Kuriyama, 2016
|
||||
Apr 19) Need to check this works on Linux.
|
||||
Alternative:
|
||||
- add gui_restart_blink flag, set when key typed.
|
||||
- in gui_mch_start_blink(): continue if possible.
|
||||
- in gui_mch_stop_blink(): remember last state.
|
||||
Javascript indent wrong after /* in single quoted string:
|
||||
var SRC = 'src/*.js';
|
||||
function log(tag) {
|
||||
a = b;
|
||||
}
|
||||
|
||||
Use ADDR_OTHER instead of ADDR_LINES for many more commands.
|
||||
Add tests for using number larger than number of lines in buffer.
|
||||
|
||||
Patch to fix escaping special characters for delete(). (tc-0, 2016 Mar 20,
|
||||
#700) Test fails on MS-Windows.
|
||||
Invalid behavior with NULL list. (Nikolai Pavlov, #768)
|
||||
|
||||
When 'autochdir' is set, writing new file does not change the current dir.
|
||||
(Dan Church, issue #777)
|
||||
min() and max() spawn lots of error messages if sorted list/dictionary
|
||||
contains invalid data (Nikolay Pavlov, 2016 Sep 4, #1039)
|
||||
|
||||
Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807)
|
||||
|
||||
Undo problem: "g-" doesn't go back, gets stuck. (Björn Linse, 2016 Jul 18)
|
||||
|
||||
sort() is not stable when using numeric/float sort (Nikolay Pavlov, 2016 Sep
|
||||
4#1038)
|
||||
|
||||
cmap using execute() has side effects. (Killthemule, 2016 Aug 17, #983)
|
||||
|
||||
Syntax highlighting for messages with RFC3339 timestamp (#946)
|
||||
Did maintainer reply?
|
||||
|
||||
ml_get errors when reloading file. (Chris Desjardins, 2016 Apr 19)
|
||||
Also with latest version.
|
||||
|
||||
Patch to load rgb.txt once. (Christian Brabandt, 2016 Apr 29)
|
||||
|
||||
Still problems with 'emoji'. See issue #721. Patch 7.4.1697 half-fixes it.
|
||||
Avoid PLAN_WRITE in windgoto() ?
|
||||
Should already never use utf-8 chars to position the cursor.
|
||||
|
||||
Cannot delete a file with square brackets with delete(). (#696)
|
||||
|
||||
Patch to add TabNew, TabNewEntered and TabClosed autocommand events.
|
||||
(Felipe Morales, 2015 Feb 1)
|
||||
Completion for input() does not expand environment variables. (chdiza, 2016
|
||||
Jul 25, #948)
|
||||
|
||||
Patch on issue #728 by Christian Brabandt, 2016 Apr 7. Update with test: Apr 8.
|
||||
Explanation Apr 12.
|
||||
Might be related to:
|
||||
Test 44 fails when [[=A=]] is changed to [[=À=]]. Caused by getcmdline() not
|
||||
handling the 0x80 as a second byte correctly? (Dominique Pelle, 2015 Jun 10)
|
||||
'hlsearch' interferes with a Conceal match. (Rom Grk, 2016 Aug 9)
|
||||
|
||||
Patch to add 'topbot' to 'belloff' option. (Coot, 2016 Mar 18, #695)
|
||||
Patch to add context information to quickfix/location list. (Yegappan
|
||||
Lakshmanan, 2016 Aug 25)
|
||||
|
||||
Patch for C syntax HL. (Bradley Garagan, 2016 Apr 17) #763
|
||||
MS-Windows: use WS_HIDE instead of SW_SHOWMINNOACTIVE in os_win32.c?
|
||||
Otherwise task flickers in taskbar.
|
||||
|
||||
Patch to make matchit work better, respect 'matchpairs'. (Ken Takata, 2016 Mar
|
||||
25)
|
||||
Should make ":@r" handle line continuation. (Cesar Romani, 2016 Jun 26)
|
||||
Also for ":@.".
|
||||
|
||||
Repeating 'opfunc' in a function only works once. (Tarmean, 2016 Jul 15, #925)
|
||||
|
||||
Second problem in #966: ins_compl_add_tv() uses get_dict_string() multiple
|
||||
times, overwrites the one buffer. (Nikolay Pavlov, 2016 Aug 5)
|
||||
|
||||
This does not work: :set cscopequickfix=a-
|
||||
(Linewi, 2015 Jul 12, #914)
|
||||
|
||||
Possibly wrong value for seq_cur. (Florent Fayolle, 2016 May 15, #806)
|
||||
|
||||
Filetype plugin for awk. (Doug Kearns, 2016 Sep 5)
|
||||
|
||||
Patch to improve map documentation. Issue #799.
|
||||
|
||||
Patch for syntax folding optimization. (Shougo, 2016 Sep 6, #1045)
|
||||
|
||||
Patch for restoring wide characters in the console buffer.
|
||||
(Ken Takata, 2016 Jun 7)
|
||||
|
||||
We can use '. to go to the last change in the current buffer, but how about
|
||||
the last change in any buffer? Can we use ', (, is next to .)?
|
||||
|
||||
Ramel Eshed: system() is much slower than job_start(), why? (Aug 26)
|
||||
|
||||
Patch for Python: #622. (Roland Puntaier, 2016 Feb 2)
|
||||
What does it change?
|
||||
|
||||
Patch to make gd and gD work better for non-K&R code and with comments.
|
||||
(Anton Lindqvist, 2016 Aug 29)
|
||||
|
||||
When generating the Unicode tables with runtime/tools/unicode.vim the
|
||||
emoji_width table has only one entry.
|
||||
|
||||
It's possible to add ",," to 'wildignore', an empty entry. Causes problems.
|
||||
Reject the value? #710.
|
||||
|
||||
Patch to fix increment/decrement not working properly when 'virtualedit' is
|
||||
set. (Hirohito Higashi, 2016 Aug 1, #923)
|
||||
|
||||
Patch to support strikethrough next to bold and italic. (Christian Brabandt,
|
||||
2013 Jul 30) Update from Ken Takata, 2013 Oct 12.
|
||||
Update mentioned by Christian, 2016 Apr 25.
|
||||
Update from Ken Takata, 2016 Apr 26.
|
||||
Update from Ken Takata, 2016 Jul 17.
|
||||
|
||||
Win32: patch to use 64 bit stat() if possible. (Ken Takata, 2014 May 12)
|
||||
More tests May 14. Update May 29. Update Aug 10.
|
||||
Now part of large file patches. (Ken Takata, 2016 Feb 1)
|
||||
Win64: Seek error in swap file for a very big file (3 Gbyte). Check storing
|
||||
pointer in long and seek offset in 64 bit var.
|
||||
Patches from Ken Takata might help (2014 Apr 17)
|
||||
Update 2016 Mar 28. Can include all parts into one dist patch.
|
||||
Patch to improve cscope. (Adrian Kocis, #843)
|
||||
|
||||
Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21)
|
||||
Update 2016 Apr 24.
|
||||
Patch for groovy multi-line comment highlighting. (Justin M. Keyes, 2016 May
|
||||
20 #644)
|
||||
|
||||
When doing "vi buf.md" a BufNew autocommand for *.md is not triggered.
|
||||
Because of using the initial buffer? (Dun Peal, 2016 May 12)
|
||||
|
||||
Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
|
||||
Updated 2016 Feb 10
|
||||
Updated 2016 Jun 10, #858
|
||||
|
||||
Add redrawtabline command. (Naruhiko Nishino, 2016 Jun 11)
|
||||
|
||||
Neovim patch for utfc_ptr2char_len() https://github.com/neovim/neovim/pull/4574
|
||||
No test, needs some work to include.
|
||||
|
||||
Patch to make finding duplicate tags much faster, using a hashtab. (James
|
||||
McCoy, 2016 Sept 6, #1046)
|
||||
>
|
||||
Patch to improve indenting for C++ constructor with initializer list.
|
||||
(Hirohito Higashi, 2016 Mar 31)
|
||||
|
||||
After 7.5 is released:
|
||||
After 8.0 is released:
|
||||
- Drop support for older MS-Windows systems, before XP.
|
||||
Patch from Ken Takata, 2016 Mar 8.
|
||||
|
||||
@@ -245,17 +253,12 @@ Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
|
||||
|
||||
Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
|
||||
|
||||
Add ":read :command", to insert the output of an Ex command?
|
||||
Can already do it with ":$put =execute('command')".
|
||||
|
||||
When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016
|
||||
Apr 17) #762
|
||||
|
||||
Patch to support expression argument to sort() instead of a function name.
|
||||
Yasuhiro Matsumoto, 2013 May 31.
|
||||
Or should we add a more general mechanism, like a lambda() function?
|
||||
Patch by Yasuhiro Matsumoto, 2014 Sep 16, update 2016 Apr 17.
|
||||
|
||||
Should jsonencode()/jsondecode() restrict recursiveness?
|
||||
Or avoid recursiveness.
|
||||
|
||||
Use vim.vim syntax highlighting for help file examples, but without ":" in
|
||||
'iskeyword' for syntax.
|
||||
|
||||
@@ -264,6 +267,10 @@ Patch to make "%:h:h" return "." instead of the full path.
|
||||
|
||||
Remove SPACE_IN_FILENAME ? What could possibly go wrong?
|
||||
|
||||
When command names are very long :command output is difficult to read. Use a
|
||||
maximum for the column width? (#871)
|
||||
Patcy by varmanishant, 2016 Jun 18, #876
|
||||
|
||||
Patch to change GUI behavior: instead of changing the window size change the
|
||||
lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
|
||||
#703)
|
||||
@@ -275,6 +282,24 @@ Should use /usr/local/share/applications or /usr/share/applications.
|
||||
Or use $XDG_DATA_DIRS.
|
||||
Also need to run update-desktop-database (Kuriyama Kazunobu, 2015 Nov 4)
|
||||
|
||||
Patch to test popupmenu. Fails, possibly due to a bug.
|
||||
(Christian Brabandt, 2016 Jul 23)
|
||||
|
||||
Patch to introduce 'cmdencoding'. (Ken Takata, Aug 18?)
|
||||
Better help Aug 19.
|
||||
Problem: applies to too many commands, such as :cbuffer.
|
||||
Updated patch with three options, 2016 Sep 8.
|
||||
Win32: When running ":make" and 'encoding' differs from the system locale,
|
||||
the output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei
|
||||
Wu) Should we use 'termencoding' for this?
|
||||
|
||||
Patch to have text objects defined by arbitrary single characters. (Daniel
|
||||
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
|
||||
Added tests (James McCoy, 2016 Aug 3). Still needs more work.
|
||||
|
||||
Patch to add CTRL-N / CTRL-P while searching. (Christian Brabandt, 2016 Aug
|
||||
3) Problem: two matches in one line and using CTRL-P does not move back.
|
||||
|
||||
Access to uninitialized memory in match_backref() regexp_nda.c:4882
|
||||
(Dominique Pelle, 2015 Nov 6)
|
||||
|
||||
@@ -285,7 +310,7 @@ directory exists. (Sergio Gallelli, 2013 Dec 29)
|
||||
when evaluating to non-zero. Add the "watchadd expr" command, stop when
|
||||
the value of the expression changes. ":watchdel" deletes an item,
|
||||
":watchlist" lists the items. (Charles Campbell)
|
||||
Patch by Christian Brabandt, 2016 Feb 1.
|
||||
Patch by Christian Brabandt, 2016 Jun 10, #859
|
||||
|
||||
If ":bd" also closes a Tab page then the " mark is not set. (Harm te Hennepe,
|
||||
2016 Apr 25, #780)
|
||||
@@ -294,13 +319,13 @@ Patch to avoid redrawing tabline when the popup menu is visible.
|
||||
(Christian Brabandt, 2016 Jan 28)
|
||||
|
||||
Patch to add {skip} argument to search(). (Christian Brabandt, 2016 Feb 24)
|
||||
|
||||
Add value "smart" to 'tagcase': ignore case when tag is all lower case.
|
||||
Patch from Christian Brabandt, 2016 Mar 30, #712.
|
||||
Update 2016 Jun 10, #861
|
||||
|
||||
Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6)
|
||||
Update Sep 7. Update by Christian Brabandt, 2015 Sep 8, 2016 Feb 1.
|
||||
|
||||
Patch to show search statistics. (Christian Brabandt, 2016 Jul 22)
|
||||
|
||||
When the CursorMovedI event triggers, and CTRL-X was typed, a script cannot
|
||||
restore the mode properly. (Andrew Stewart, 2016 Apr 20)
|
||||
Do not trigger the event?
|
||||
@@ -365,22 +390,19 @@ wrong name. (Aram, 2014 Nov 7) Vim 7.4.
|
||||
Can't recognize the $ProgramFiles(x86) environment variable. Recognize it
|
||||
specifically? First try with the parens, then without.
|
||||
|
||||
Half-finished patch to fix the Problem using cgn to change a search hit when
|
||||
replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
|
||||
2016 Jan 11.
|
||||
|
||||
Patch to add :mapgroup, put mappings in a group like augroup.
|
||||
(Yasuhiro Matsumoto, 2016 Feb 19)
|
||||
|
||||
Value returned by virtcol() changes depending on how lines wrap. This is
|
||||
inconsistent with the documentation.
|
||||
|
||||
Patch to add filtering of the quickfix list. (Yegappan Lakshmanan, 2016 Mar
|
||||
13, last version) Update Mar 21., Apr 2.
|
||||
|
||||
Can we cache the syntax attributes, so that updates for 'relativenumber' and
|
||||
'cursorline'/'cursorcolumn' are a lot faster?
|
||||
|
||||
C highlighting: modern C allows: /* comment */ #ifdef
|
||||
and also line continuation after #include.
|
||||
I can't recommend it though.
|
||||
|
||||
Build with Python on Mac does not always use the right library.
|
||||
(Kazunobu Kuriyama, 2015 Mar 28)
|
||||
|
||||
@@ -389,7 +411,7 @@ Use v:none. var == v:none
|
||||
|
||||
Patch to add arguments to argc() and argv(). (Yegappan Lakshmanan, 2016 Jan
|
||||
24) Also need a way to get the global arg list? Update later on Jan 24
|
||||
Update Mar 5. Update Apr 7.
|
||||
Update Mar 5. Update Apr 7. Update Jun 5.
|
||||
|
||||
To support Thai (and other languages) word boundaries, include the ICU
|
||||
library: http://userguide.icu-project.org/boundaryanalysis
|
||||
@@ -423,8 +445,6 @@ wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4)
|
||||
Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5)
|
||||
Update Aug 14.
|
||||
|
||||
Crash in :cnext on MS-Windows. (Ben Fritz, 2015 Oct 27)
|
||||
|
||||
When using --remote-tab on MS-Windows 'encoding' hasn't been initialized yet,
|
||||
the file name ends up encoded wrong. (Raul Coronado, 2015 Dec 21)
|
||||
|
||||
@@ -476,9 +496,6 @@ Breaks test_eval. Inefficient, can we only compute y_width when needed?
|
||||
Patch to use different terminal mode settings for system(). (Hayaki Saito)
|
||||
Does this work for everybody?
|
||||
|
||||
Patch to fix that wide characters do not work properly after exiting.
|
||||
(Yasuhiro Matsumoto, 2015 May 24) Better patch to come.
|
||||
|
||||
Patch to add wordcount(). Same info as g CTRL-G. (Christian Brabandt, 2015
|
||||
Nov 17)
|
||||
|
||||
@@ -504,7 +521,7 @@ Mixup of highlighting when there is a match and SpellBad. (ZyX, 2015 Jan 1)
|
||||
Patch for drag&drop reordering of GUI tab pages reordering.
|
||||
(Ken Takata, 2013 Nov 22, second one, also by Masamichi Abe)
|
||||
Now on Git: https://gist.github.com/nocd5/165286495c782b815b94
|
||||
Update 2016 Mar 15.
|
||||
Update 2016 Aug 10.
|
||||
|
||||
Patch on Issue 72: 'autochdir' causes problems for :vimgrep.
|
||||
|
||||
@@ -524,9 +541,6 @@ any one-character from the previous line. (Kartik Agaram, 2014 Sep 19)
|
||||
|
||||
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
|
||||
|
||||
Patch to add the EndOfBuffer highlight group, used instead of NonText for "~"
|
||||
lines. (Marco Hinz, 2014 Nov 2)
|
||||
|
||||
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
|
||||
|
||||
Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
|
||||
@@ -535,14 +549,6 @@ Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny,
|
||||
Wrong scrolling when using incsearch. Patch by Christian Brabandt, 2014 Dec 4.
|
||||
Is this a good solution?
|
||||
|
||||
Patch to add /pattern/ to :oldfiles. Pull #575.
|
||||
|
||||
Patch to allow setting w:quickfix_title via setqflist() and setloclist()
|
||||
functions. (Christian Brabandt, 2013 May 8, update May 21)
|
||||
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
|
||||
Second one. Update May 22.
|
||||
Update by Daniel Hahler, 2014 Jul 4, Aug 14, Oct 14, Oct 15.
|
||||
|
||||
Patch: Let rare word highlighting overrule good word highlighting.
|
||||
(Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
|
||||
|
||||
@@ -558,7 +564,7 @@ Patch for ordered dict. (Ozaki Kiichi, 2015 May 7)
|
||||
Patch to make closed folds line up. (Charles Campbell, 2014 Sep 12)
|
||||
Remark from Roland Eggner: does it cause crashes? (2014 Dec 12)
|
||||
Updated patch by Roland Eggner, Dec 16
|
||||
Updated patch from Charles, 2016 Jan 4.
|
||||
Updated patch from Charles, 2016 Jul 2
|
||||
|
||||
Patch to open folds for 'incsearch'. (Christian Brabandt, 2015 Jan 6)
|
||||
|
||||
@@ -571,7 +577,7 @@ Patch: On MS-Windows shellescape() may have to triple double quotes.
|
||||
(Ingo Karkat, 2015 Jan 16)
|
||||
|
||||
Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
|
||||
Update 2016 Jan 31 (email).
|
||||
Update 2016 Jun 10, # 857
|
||||
|
||||
Redo only remembers the last change. Could use "{count}g." to redo an older
|
||||
change. How does the user know which change? At least have a way to list
|
||||
@@ -612,9 +618,11 @@ Spell files use a latin single quote. Unicode also has another single quote:
|
||||
New OpenOffice spell files support this with ICONV. But they are not
|
||||
compatible with Vim spell files. The old files can no longer be downloaded.
|
||||
|
||||
xterm should be able to pass focus changes to Vim, so that Vim can check for
|
||||
buffers that changed. Perhaps in misc.c, function selectwindow().
|
||||
Xterm 224 supports it!
|
||||
Patch to make FocusGained and FocusLost work in modern terminals. (Hayaki
|
||||
Saito, 2013 Apr 24) Has a problem (email 2015 Jan 7).
|
||||
Update 2015 Jan 10.
|
||||
Saito, 2013 Apr 24) Update 2016 Aug 12.
|
||||
Also see issue #609.
|
||||
We could add the enable/disable sequences to t_ti/t_te or t_ks/t_ke.
|
||||
|
||||
@@ -740,17 +748,9 @@ Patch by Thomas Tuegel, also for GTK, 2013 Nov 24
|
||||
|
||||
:help gives example for z?, but it does not work. m? and t? do work.
|
||||
|
||||
Python: Extended funcrefs: use func_T* structure in place of char_u* function
|
||||
names.
|
||||
(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6)
|
||||
Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
|
||||
|
||||
Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
|
||||
With tests: Sep 5.
|
||||
|
||||
Patch to fix that on suckless Terminal mousewheel up does not work.
|
||||
(Ralph Eastwood, 2013 Nov 25)
|
||||
|
||||
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
|
||||
|
||||
Checking runtime scripts: Thilo Six, 2012 Jun 6.
|
||||
@@ -822,9 +822,6 @@ May 17: with winlist() and tabpagelist().
|
||||
May 19: with local variables.
|
||||
May 28: with options
|
||||
|
||||
Patch to add getbufinfo(), gettabinfo() and getwininfo(). (Yegappan
|
||||
Lakshmanan, 2016 Apr 2016)
|
||||
|
||||
Patch to support 'u' in interactive substitute. (Christian Brabandt, 2012 Sep
|
||||
28) With tests: Oct 9.
|
||||
|
||||
@@ -834,6 +831,7 @@ optional. (2013 Jul 12)
|
||||
Dialog is too big on Linux too. (David Fishburn, 2013 Sep 2)
|
||||
|
||||
Improve the installer for MS-Windows. There are a few alternatives:
|
||||
- Add silent install option. (Shane Lee, #751)
|
||||
- Installer from Cream (Steve Hall).
|
||||
- Modern UI 2.0 for the Nsis installer. (Guopeng Wen)
|
||||
https://github.com/gpwen/vim-installer-mui2
|
||||
@@ -845,9 +843,6 @@ Improve the installer for MS-Windows. There are a few alternatives:
|
||||
Problem: they all work slightly different (e.g. don't install vimrun.exe).
|
||||
How to test that it works well for all Vim users?
|
||||
|
||||
Patch to check whether a buffer is quickfix or a location list.
|
||||
(Yasuhiro Matsumoto, 2014 Dec 9)
|
||||
|
||||
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
|
||||
|
||||
Issue 54: document behavior of -complete, also expands arg.
|
||||
@@ -862,11 +857,6 @@ In the ATTENTION message about an existing swap file, mention the name of the
|
||||
process that is running. It might actually be some other program, e.g. after
|
||||
a reboot.
|
||||
|
||||
Patch to have text objects defined by arbitrary single characters. (Daniel
|
||||
Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
|
||||
Ben Fritz: problem with 'selection' set to "exclusive".
|
||||
Updated to current Vim, not quite right yet. (Ben Fritz, 2014 Mar 27)
|
||||
|
||||
Patch to select the next or previous text object if there isn't one under the
|
||||
cursor. (Daniel Thau, 2013 Nov 20)
|
||||
|
||||
@@ -888,9 +878,6 @@ Patch to make confirm() display colors. (Christian Brabandt, 2012 Nov 9)
|
||||
|
||||
Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27)
|
||||
|
||||
Do we need some way (option) to show the sign column even when there are no
|
||||
signs? Patch by Christian Brabandt, 2013 Aug 22.
|
||||
|
||||
Patch to remove flicker from popup menu. (Yasuhiro Matsumoto, 2013 Aug 15)
|
||||
|
||||
Problem with refresh:always in completion. (Tyler Wade, 2013 Mar 17)
|
||||
@@ -1137,7 +1124,7 @@ Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
|
||||
|
||||
"0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
|
||||
|
||||
Patch to addd TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
|
||||
Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
|
||||
May 24) Update May 26.
|
||||
|
||||
Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
|
||||
@@ -1309,12 +1296,6 @@ Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
|
||||
Winckler, 2011 May 11)
|
||||
Requires a map mode for Insert mode started from blockwise Visual mode.
|
||||
|
||||
Use json format for new items in .viminfo:
|
||||
|["info","any info"]
|
||||
|["text","text text text"
|
||||
|"continuation line"]
|
||||
|["hist",242342342,{"arg":"value"}]
|
||||
|
||||
Writing nested List and Dict in viminfo gives error message and can't be read
|
||||
back. (Yukihiro Nakadaira, 2010 Nov 13)
|
||||
|
||||
@@ -1371,7 +1352,7 @@ https://scan.coverity.com/projects/241
|
||||
Patch to support :undo absolute jump to file save number. (Christian Brabandt,
|
||||
2010 Nov 5)
|
||||
|
||||
Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
|
||||
Patch to use 'foldnestmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
|
||||
Jan 7)
|
||||
|
||||
Bug with 'incsearch' going to wrong line. (Wolfram Kresse, 2009 Aug 17)
|
||||
@@ -2239,10 +2220,6 @@ only set after Visual moded is ended.
|
||||
Also add a variable for the Visual mode. So that this mode and '< '> can be
|
||||
used to set what "gv" selects. (Ben Schmidt)
|
||||
|
||||
Win32: When running ":make" and 'encoding' differs from the system locale, the
|
||||
output should be converted. Esp. when 'encoding' is "utf-8". (Yongwei Wu)
|
||||
Should we use 'termencoding' for this?
|
||||
|
||||
Win32, NTFS: When editing a specific infostream directly and 'backupcopy' is
|
||||
"auto" should detect this situation and work like 'backupcopy' is "yes". File
|
||||
name is something like "c:\path\foo.txt:bar", includes a colon. (Alex
|
||||
@@ -2267,10 +2244,6 @@ Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update 2008 Apr
|
||||
tabs and the autocommand "autocmd BufWinLeave * mkview". (James Vega, 2007
|
||||
Jun 18)
|
||||
|
||||
xterm should be able to pass focus changes to Vim, so that Vim can check for
|
||||
buffers that changed. Perhaps in misc.c, function selectwindow().
|
||||
Xterm 224 supports it!
|
||||
|
||||
When completing from another file that uses a different encoding completion
|
||||
text has the wrong encoding. E.g., when 'encoding' is utf-8 and file is
|
||||
latin1. Example from Gombault Damien, 2007 Mar 24.
|
||||
@@ -2444,9 +2417,6 @@ Awaiting updated patches:
|
||||
done for filetype detection. Patch from Walter Briscoe, 2003 Jul 1.
|
||||
7 Add a "-@ filelist" argument: read file names from a file. (David
|
||||
Kotchan has a patch for it)
|
||||
8 Include a connection to an external program through a pipe? See
|
||||
patches from Felbinger for a mathematica interface.
|
||||
Or use emacs server kind of thing?
|
||||
7 Add ":justify" command. Patch from Vit Stradal 2002 Nov 25.
|
||||
- findmatch() should be adjusted for Lisp. See remark at
|
||||
get_lisp_indent(). Esp. \( and \) should be skipped. (Dorai Sitaram,
|
||||
@@ -3558,8 +3528,6 @@ Multi-byte characters:
|
||||
convert_input() for Mac GUI.
|
||||
- Add mnemonics from RFC1345 longer than two characters.
|
||||
Support CTRL-K _{mnemonic}_
|
||||
7 In "-- INSERT (lang) --" show the name of the keymap used instead of
|
||||
"lang". (Ilya Dogolazky)
|
||||
- Make 'breakat' accept multi-byte characters. Problem: can't use a lookup
|
||||
table anymore (breakat_flags[]).
|
||||
Simplistic solution: when 'formatoptions' contains "m" also break a line
|
||||
@@ -3838,7 +3806,7 @@ Vim script language:
|
||||
8 Pass the command line arguments to Vim scripts in some way. As v:args
|
||||
List? Or extra parameter to argv()?
|
||||
8 Add command arguments with three dashes, passed on to Vim scripts.
|
||||
7 Add optional arguments to user functions:
|
||||
9 Add optional arguments to user functions:
|
||||
:func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
|
||||
6 User functions: Functions local to buffer "b:func()"?
|
||||
8 For Strings add ":let var[{expr}] = {expr}". When past the end of "var"
|
||||
|
||||
+68
-9
@@ -1,4 +1,4 @@
|
||||
*usr_41.txt* For Vim version 7.4. Last change: 2016 Apr 12
|
||||
*usr_41.txt* For Vim version 7.4. Last change: 2016 Sep 01
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -592,7 +592,7 @@ String manipulation: *string-functions*
|
||||
match() position where a pattern matches in a string
|
||||
matchend() position where a pattern match ends in a string
|
||||
matchstr() match of a pattern in a string
|
||||
matchstrpos() match and postions of a pattern in a string
|
||||
matchstrpos() match and positions of a pattern in a string
|
||||
matchlist() like matchstr() and also return submatches
|
||||
stridx() first index of a short string in a long string
|
||||
strridx() last index of a short string in a long string
|
||||
@@ -602,13 +602,16 @@ String manipulation: *string-functions*
|
||||
strdisplaywidth() size of string when displayed, deals with tabs
|
||||
substitute() substitute a pattern match with a string
|
||||
submatch() get a specific match in ":s" and substitute()
|
||||
strpart() get part of a string
|
||||
strpart() get part of a string using byte index
|
||||
strcharpart() get part of a string using char index
|
||||
strgetchar() get character from a string using char index
|
||||
expand() expand special keywords
|
||||
iconv() convert text from one encoding to another
|
||||
byteidx() byte index of a character in a string
|
||||
byteidxcomp() like byteidx() but count composing characters
|
||||
repeat() repeat a string multiple times
|
||||
eval() evaluate a string expression
|
||||
execute() execute an Ex command and get the output
|
||||
|
||||
List manipulation: *list-functions*
|
||||
get() get an item without error for wrong index
|
||||
@@ -678,6 +681,7 @@ Floating point computation: *float-functions*
|
||||
sinh() hyperbolic sine
|
||||
cosh() hyperbolic cosine
|
||||
tanh() hyperbolic tangent
|
||||
isnan() check for not a number
|
||||
|
||||
Other computation: *bitwise-function*
|
||||
and() bitwise AND
|
||||
@@ -732,11 +736,14 @@ Working with text in the current buffer: *text-functions*
|
||||
searchpair() find the other end of a start/skip/end
|
||||
searchpairpos() find the other end of a start/skip/end
|
||||
searchdecl() search for the declaration of a name
|
||||
getcharsearch() return character search information
|
||||
setcharsearch() set character search information
|
||||
|
||||
*system-functions* *file-functions*
|
||||
System functions and manipulation of files:
|
||||
glob() expand wildcards
|
||||
globpath() expand wildcards in a number of directories
|
||||
glob2regpat() convert a glob pattern into a search pattern
|
||||
findfile() find a file in a list of directories
|
||||
finddir() find a directory in a list of directories
|
||||
resolve() find out where a shortcut points to
|
||||
@@ -748,6 +755,7 @@ System functions and manipulation of files:
|
||||
filereadable() check if a file can be read
|
||||
filewritable() check if a file can be written to
|
||||
getfperm() get the permissions of a file
|
||||
setfperm() set the permissions of a file
|
||||
getftype() get the kind of a file
|
||||
isdirectory() check if a directory exists
|
||||
getfsize() get the size of a file
|
||||
@@ -786,9 +794,18 @@ Buffers, windows and the argument list:
|
||||
tabpagenr() get the number of a tab page
|
||||
tabpagewinnr() like winnr() for a specified tab page
|
||||
winnr() get the window number for the current window
|
||||
bufwinid() get the window ID of a specific buffer
|
||||
bufwinnr() get the window number of a specific buffer
|
||||
winbufnr() get the buffer number of a specific window
|
||||
getbufline() get a list of lines from the specified buffer
|
||||
win_findbuf() find windows containing a buffer
|
||||
win_getid() get window ID of a window
|
||||
win_gotoid() go to window with ID
|
||||
win_id2tabwin() get tab and window nr from window ID
|
||||
win_id2win() get window nr from window ID
|
||||
getbufinfo() get a list with buffer information
|
||||
gettabinfo() get a list with tab page information
|
||||
getwininfo() get a list with window information
|
||||
|
||||
Command line: *command-line-functions*
|
||||
getcmdline() get the current command line
|
||||
@@ -796,6 +813,7 @@ Command line: *command-line-functions*
|
||||
setcmdpos() set position of the cursor in the command line
|
||||
getcmdtype() return the current command-line type
|
||||
getcmdwintype() return the current command-line window type
|
||||
getcompletion() list of command-line completion matches
|
||||
|
||||
Quickfix and location lists: *quickfix-functions*
|
||||
getqflist() list of quickfix errors
|
||||
@@ -893,20 +911,60 @@ Mappings: *mapping-functions*
|
||||
Testing: *test-functions*
|
||||
assert_equal() assert that two expressions values are equal
|
||||
assert_notequal() assert that two expressions values are not equal
|
||||
assert_inrange() assert that an expression is inside a range
|
||||
assert_match() assert that a pattern matches the value
|
||||
assert_notmatch() assert that a pattern does not match the value
|
||||
assert_false() assert that an expression is false
|
||||
assert_true() assert that an expression is true
|
||||
assert_exception() assert that a command throws an exception
|
||||
assert_fails() assert that a function call fails
|
||||
test_alloc_fail() make memory allocation fail
|
||||
test_autochdir() enable 'autochdir' during startup
|
||||
test_disable_char_avail() test without typeahead
|
||||
test_garbagecollect_now() free memory right now
|
||||
test_null_channel() return a null Channel
|
||||
test_null_dict() return a null Dict
|
||||
test_null_job() return a null Job
|
||||
test_null_list() return a null List
|
||||
test_null_partial() return a null Partial function
|
||||
test_null_string() return a null String
|
||||
|
||||
Inter-process communication:
|
||||
Inter-process communication: *channel-functions*
|
||||
ch_open() open a channel
|
||||
ch_close() close a channel
|
||||
ch_close_in() close the in part of a channel
|
||||
ch_read() read a message from a channel
|
||||
ch_readraw() read a raw message from a channel
|
||||
ch_sendexpr() send a JSON message over a channel
|
||||
ch_sendraw() send a raw message over a channel
|
||||
jsonencode() encode an expression to a JSON string
|
||||
jsondecode() decode a JSON string to Vim types
|
||||
ch_evalexpr() evaluates an expression over channel
|
||||
ch_evalraw() evaluates a raw string over channel
|
||||
ch_status() get status of a channel
|
||||
ch_getbufnr() get the buffer number of a channel
|
||||
ch_getjob() get the job associated with a channel
|
||||
ch_info() get channel information
|
||||
ch_log() write a message in the channel log file
|
||||
ch_logfile() set the channel log file
|
||||
ch_setoptions() set the options for a channel
|
||||
json_encode() encode an expression to a JSON string
|
||||
json_decode() decode a JSON string to Vim types
|
||||
js_encode() encode an expression to a JSON string
|
||||
js_decode() decode a JSON string to Vim types
|
||||
|
||||
Jobs: *job-functions*
|
||||
job_start() start a job
|
||||
job_stop() stop a job
|
||||
job_status() get the status of a job
|
||||
job_getchannel() get the channel used by a job
|
||||
job_info() get information about a job
|
||||
job_setoptions() set options for a job
|
||||
|
||||
Timers: *timer-functions*
|
||||
timer_start() create a timer
|
||||
timer_pause() pause or unpause a timer
|
||||
timer_stop() stop a timer
|
||||
timer_stopall() stop all timers
|
||||
timer_info() get information about timers
|
||||
|
||||
Various: *various-functions*
|
||||
mode() get current editing mode
|
||||
@@ -931,6 +989,8 @@ Various: *various-functions*
|
||||
|
||||
shiftwidth() effective value of 'shiftwidth'
|
||||
|
||||
wordcount() get byte/word/char count of buffer
|
||||
|
||||
taglist() get list of matching tags
|
||||
tagfiles() get a list of tags files
|
||||
|
||||
@@ -939,7 +999,6 @@ Various: *various-functions*
|
||||
perleval() evaluate Perl expression (|+perl|)
|
||||
py3eval() evaluate Python expression (|+python3|)
|
||||
pyeval() evaluate Python expression (|+python|)
|
||||
wordcount() get byte/word/char count of buffer
|
||||
|
||||
==============================================================================
|
||||
*41.7* Defining a function
|
||||
@@ -1407,9 +1466,9 @@ Now we can instantiate a Dutch translation object: >
|
||||
And a German translator: >
|
||||
|
||||
:let uk2de = copy(transdict)
|
||||
:let uk2de.words = {'one': 'ein', 'two': 'zwei', 'three': 'drei'}
|
||||
:let uk2de.words = {'one': 'eins', 'two': 'zwei', 'three': 'drei'}
|
||||
:echo uk2de.translate('three one')
|
||||
< drei ein ~
|
||||
< drei eins ~
|
||||
|
||||
You see that the copy() function is used to make a copy of the "transdict"
|
||||
Dictionary and then the copy is changed to add the words. The original
|
||||
|
||||
+41
-7
@@ -1,4 +1,4 @@
|
||||
*various.txt* For Vim version 7.4. Last change: 2016 Apr 29
|
||||
*various.txt* For Vim version 7.4. Last change: 2016 Sep 06
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -91,6 +91,8 @@ g8 Print the hex values of the bytes used in the
|
||||
on paper see |:hardcopy|. In the GUI you can use the
|
||||
File.Print menu entry.
|
||||
See |ex-flags| for [flags].
|
||||
The |:filter| command can be used to only show lines
|
||||
matching a pattern.
|
||||
|
||||
:[range]p[rint] {count} [flags]
|
||||
Print {count} lines, starting with [range] (default
|
||||
@@ -362,6 +364,7 @@ N *+insert_expand* |insert_expand| Insert mode completion
|
||||
m *+job* starting and stopping jobs |job|
|
||||
N *+jumplist* |jumplist|
|
||||
B *+keymap* |'keymap'|
|
||||
N *+lambda* |lambda| and |closure|
|
||||
B *+langmap* |'langmap'|
|
||||
N *+libcall* |libcall()|
|
||||
N *+linebreak* |'linebreak'|, |'breakat'| and |'showbreak'|
|
||||
@@ -391,8 +394,10 @@ N *+multi_lang* non-English language support |multi-lang|
|
||||
m *+mzscheme* Mzscheme interface |mzscheme|
|
||||
m *+mzscheme/dyn* Mzscheme interface |mzscheme-dynamic| |/dyn|
|
||||
m *+netbeans_intg* |netbeans|
|
||||
*+num64* 64-bit Number support |Number|
|
||||
m *+odbeditor* MacVim only: ODB Editor Protocol support |odbeditor|
|
||||
m *+ole* Win32 GUI only: |ole-interface|
|
||||
N *+packages* Loading |packages|
|
||||
N *+path_extra* Up/downwards search in 'path' and 'tags'
|
||||
m *+perl* Perl interface |perl|
|
||||
m *+perl/dyn* Perl interface |perl-dynamic| |/dyn|
|
||||
@@ -419,7 +424,7 @@ N *+statusline* Options 'statusline', 'rulerformat' and special
|
||||
m *+sun_workshop* |workshop|
|
||||
N *+syntax* Syntax highlighting |syntax|
|
||||
*+system()* Unix only: opposite of |+fork|
|
||||
N *+tag_binary* binary searching in tags file |tag-binary-search|
|
||||
T *+tag_binary* binary searching in tags file |tag-binary-search|
|
||||
N *+tag_old_static* old method for static tags |tag-old-static|
|
||||
m *+tag_any_white* any white space allowed in tags file |tag-any-white|
|
||||
m *+tcl* Tcl interface |tcl|
|
||||
@@ -471,9 +476,12 @@ N *+X11* Unix only: can restore window title |X11|
|
||||
shown on the screen. When [!] is included, an
|
||||
existing file is overwritten. When [!] is omitted,
|
||||
and {file} exists, this command fails.
|
||||
|
||||
Only one ":redir" can be active at a time. Calls to
|
||||
":redir" will close any active redirection before
|
||||
starting redirection to the new target.
|
||||
starting redirection to the new target. For recursive
|
||||
use check out |execute()|.
|
||||
|
||||
To stop the messages and commands from being echoed to
|
||||
the screen, put the commands in a function and call it
|
||||
with ":silent call Function()".
|
||||
@@ -513,12 +521,35 @@ N *+X11* Unix only: can restore window title |X11|
|
||||
redirection starts, if the variable is removed or
|
||||
locked or the variable type is changed, then further
|
||||
command output messages will cause errors. {not in Vi}
|
||||
To get the output of one command the |execute()|
|
||||
function can be used.
|
||||
|
||||
:redi[r] =>> {var} Append messages to an existing variable. Only string
|
||||
variables can be used. {not in Vi}
|
||||
|
||||
:redi[r] END End redirecting messages. {not in Vi}
|
||||
|
||||
*:filt* *:filter*
|
||||
:filt[er] {pat} {command}
|
||||
:filt[er] /{pat}/ {command}
|
||||
Restrict the output of {command} to matches with {pat}.
|
||||
For example, to list only xml files: >
|
||||
:filter /\.xml$/ oldfiles
|
||||
<
|
||||
{pat} is a Vim search pattern. Instead of enclosing
|
||||
it in / any non-ID character (see |'isident'|) can be
|
||||
used, so long as it does not appear in {pat}. Without
|
||||
the enclosing character the pattern cannot include the
|
||||
bar character.
|
||||
|
||||
The pattern is matched against the relevant part of
|
||||
the output, not necessarily the whole line. Only some
|
||||
commands support filtering, try it out to check if it
|
||||
works.
|
||||
|
||||
Only normal messages are filtered, error messages are
|
||||
not.
|
||||
|
||||
*:sil* *:silent* *:silent!*
|
||||
:sil[ent][!] {command} Execute {command} silently. Normal messages will not
|
||||
be given or added to the message history.
|
||||
@@ -609,13 +640,16 @@ K Run a program to lookup the keyword under the
|
||||
directory of Vim. It is called 'ref' and does a
|
||||
simple spelling check.
|
||||
Special cases:
|
||||
- If 'keywordprg' begins with ":" it is invoked as
|
||||
a Vim Ex command with [count].
|
||||
- If 'keywordprg' is empty, the ":help" command is
|
||||
used. It's a good idea to include more characters
|
||||
in 'iskeyword' then, to be able to find more help.
|
||||
- When 'keywordprg' is equal to "man", a count before
|
||||
"K" is inserted after the "man" command and before
|
||||
the keyword. For example, using "2K" while the
|
||||
cursor is on "mkdir", results in: >
|
||||
- When 'keywordprg' is equal to "man" or starts with
|
||||
":", a [count] before "K" is inserted after
|
||||
keywordprg and before the keyword. For example,
|
||||
using "2K" while the cursor is on "mkdir", results
|
||||
in: >
|
||||
!man 2 mkdir
|
||||
< - When 'keywordprg' is equal to "man -s", a count
|
||||
before "K" is inserted after the "-s". If there is
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*version7.txt* For Vim version 7.4. Last change: 2016 Apr 03
|
||||
*version7.txt* For Vim version 7.4. Last change: 2016 Jul 17
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -4028,7 +4028,7 @@ Solution: Check for NULL pointer returned from mch_open().
|
||||
Files: src/if_cscope.c
|
||||
|
||||
Patch 7.0.154
|
||||
Problem: When 'foldnextmax' is negative Vim can hang. (James Vega)
|
||||
Problem: When 'foldnestmax' is negative Vim can hang. (James Vega)
|
||||
Solution: Avoid the fold level becoming negative.
|
||||
Files: src/fold.c, src/syntax.c
|
||||
|
||||
@@ -18310,4 +18310,5 @@ Solution: Subtract the unsigned numbers and cast to int. (Ken Takata)
|
||||
Files: src/os_win32.c
|
||||
|
||||
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
||||
+14291
-61
File diff suppressed because it is too large
Load Diff
+14
-2
@@ -1,4 +1,4 @@
|
||||
*vi_diff.txt* For Vim version 7.4. Last change: 2016 Feb 12
|
||||
*vi_diff.txt* For Vim version 7.4. Last change: 2016 Aug 16
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -147,7 +147,7 @@ Support for different systems.
|
||||
resource usage, esp. on MS-DOS. For some outdated systems you need to
|
||||
use an older Vim version.
|
||||
|
||||
Multi level undo. |undo|
|
||||
Multi level persistent undo. |undo|
|
||||
'u' goes backward in time, 'CTRL-R' goes forward again. Set option
|
||||
'undolevels' to the number of changes to be remembered (default 1000).
|
||||
Set 'undolevels' to 0 for a Vi-compatible one level undo. Set it to
|
||||
@@ -158,6 +158,9 @@ Multi level undo. |undo|
|
||||
create a branch in the undo tree. This means you can go back to any
|
||||
state of the text, there is no risk of a change causing text to be
|
||||
lost forever. |undo-tree|
|
||||
The undo information is stored in a file when the 'undofile' option is
|
||||
set. This means you can exit Vim, start Vim on a previously edited
|
||||
file and undo changes that were made before exiting Vim.
|
||||
|
||||
Graphical User Interface (GUI). |gui|
|
||||
Included support for GUI: menu's, mouse, scrollbars, etc. You can
|
||||
@@ -212,6 +215,15 @@ Plugins. |add-plugin|
|
||||
right directory. That's an easy way to start using Vim scripts
|
||||
written by others. Plugins can be for all kind of files, or
|
||||
specifically for a filetype.
|
||||
Packages make this even easier. |packages|
|
||||
|
||||
Asynchronous communication and timers. |channel| |job| |timer|
|
||||
Vim can exchange messages with other processes in the background.
|
||||
This makes it possible to have servers do work and send back the
|
||||
results to Vim. |channel|
|
||||
Vim can start a job, communicate with it and stop it. |job|
|
||||
Timers can fire once or repeatedly and invoke a function to do any
|
||||
work. |timer|
|
||||
|
||||
Repeat a series of commands. |q|
|
||||
"q{c}" starts recording typed characters into named register {c}.
|
||||
|
||||
+1
-1
@@ -222,7 +222,7 @@ OPTIONS
|
||||
|
||||
-R Read-only mode. The 'readonly' option will be set. You
|
||||
can still edit the buffer, but will be prevented from acci‐
|
||||
dently overwriting a file. If you do want to overwrite a
|
||||
dentally overwriting a file. If you do want to overwrite a
|
||||
file, add an exclamation mark to the Ex command, as in
|
||||
":w!". The -R option also implies the -n option (see
|
||||
below). The 'readonly' option can be reset with ":set
|
||||
|
||||
+16
-2
@@ -1,4 +1,4 @@
|
||||
*windows.txt* For Vim version 7.4. Last change: 2016 Feb 01
|
||||
*windows.txt* For Vim version 7.4. Last change: 2016 Aug 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -75,6 +75,16 @@ places where a Normal mode command can't be used or is inconvenient.
|
||||
|
||||
The main Vim window can hold several split windows. There are also tab pages
|
||||
|tab-page|, each of which can hold multiple windows.
|
||||
*window-ID* *winid* *windowid*
|
||||
Each window has a unique identifier called the window ID. This identifier
|
||||
will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
|
||||
functions can be used to convert between the window/tab number and the
|
||||
identifier. There is also the window number, which may change whenever
|
||||
windows are opened or closed, see |winnr()|.
|
||||
|
||||
Each buffer has a unique number and the number will not change within a Vim
|
||||
session. The |bufnr()| and |bufname()| functions can be used to convert
|
||||
between a buffer name and the buffer number.
|
||||
|
||||
==============================================================================
|
||||
2. Starting Vim *windows-starting*
|
||||
@@ -245,7 +255,7 @@ window will appear.
|
||||
far left and occupies the full height of the Vim window.
|
||||
Doesn't work for |:execute| and |:normal|.
|
||||
|
||||
*:botright*
|
||||
*:bo* *:botright*
|
||||
:bo[tright] {cmd}
|
||||
Execute {cmd}. If it contains a command that splits a window,
|
||||
it will appear at the bottom and occupy the full width of the
|
||||
@@ -1032,6 +1042,10 @@ list of buffers. |unlisted-buffer|
|
||||
h+ hidden buffers which are modified
|
||||
a+ active buffers which are modified
|
||||
|
||||
When using |:filter| the pattern is matched against the
|
||||
displayed buffer name, e.g.: >
|
||||
filter /\.vim/ ls
|
||||
<
|
||||
*:bad* *:badd*
|
||||
:bad[d] [+lnum] {fname}
|
||||
Add file name {fname} to the buffer list, without loading it.
|
||||
|
||||
+9
-1
@@ -1,6 +1,6 @@
|
||||
" Vim script for Evim key bindings
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2006 Mar 29
|
||||
" Last Change: 2016 Jul 24
|
||||
|
||||
" Don't use Vi-compatible mode.
|
||||
set nocompatible
|
||||
@@ -63,4 +63,12 @@ if has("autocmd")
|
||||
|
||||
endif " has("autocmd")
|
||||
|
||||
" Add optional packages.
|
||||
"
|
||||
" The matchit plugin makes the % command work better, but it is not backwards
|
||||
" compatible.
|
||||
if has('syntax') && has('eval')
|
||||
packadd matchit
|
||||
endif
|
||||
|
||||
" vim: set sw=2 :
|
||||
|
||||
+15
-13
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Apr 29
|
||||
" Last Change: 2016 Aug 26
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -534,7 +534,7 @@ au BufNewFile,BufRead configure.in,configure.ac setf config
|
||||
au BufNewFile,BufRead *.cu setf cuda
|
||||
|
||||
" Dockerfile
|
||||
au BufNewFile,BufRead Dockerfile setf dockerfile
|
||||
au BufNewFile,BufRead Dockerfile,*.Dockerfile setf dockerfile
|
||||
|
||||
" WildPackets EtherPeek Decoder
|
||||
au BufNewFile,BufRead *.dcd setf dcd
|
||||
@@ -692,8 +692,8 @@ func! s:FTe()
|
||||
let n = 1
|
||||
while n < 100 && n < line("$")
|
||||
if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$"
|
||||
setf specman
|
||||
return
|
||||
setf specman
|
||||
return
|
||||
endif
|
||||
let n = n + 1
|
||||
endwhile
|
||||
@@ -779,8 +779,7 @@ au BufNewFile,BufRead *.mo,*.gdmo setf gdmo
|
||||
au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom
|
||||
|
||||
" Git
|
||||
au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit
|
||||
au BufNewFile,BufRead MERGE_MSG setf gitcommit
|
||||
au BufNewFile,BufRead COMMIT_EDITMSG,MERGE_MSG,TAG_EDITMSG setf gitcommit
|
||||
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
|
||||
au BufNewFile,BufRead *.git/modules/*/config setf gitconfig
|
||||
au BufNewFile,BufRead */.config/git/config setf gitconfig
|
||||
@@ -1019,7 +1018,7 @@ au BufNewFile,BufRead *.jgr setf jgraph
|
||||
au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial
|
||||
|
||||
" JSON
|
||||
au BufNewFile,BufRead *.json,*.jsonp setf json
|
||||
au BufNewFile,BufRead *.json,*.jsonp,*.webmanifest setf json
|
||||
|
||||
" Kixtart
|
||||
au BufNewFile,BufRead *.kix setf kix
|
||||
@@ -1621,11 +1620,9 @@ au BufNewFile,BufRead */etc/protocols setf protocols
|
||||
" Pyrex
|
||||
au BufNewFile,BufRead *.pyx,*.pxd setf pyrex
|
||||
|
||||
" Python
|
||||
au BufNewFile,BufRead *.py,*.pyw setf python
|
||||
|
||||
" Python, Python Shell Startup Files
|
||||
" Quixote (Python-based web framework)
|
||||
au BufNewFile,BufRead *.ptl setf python
|
||||
au BufNewFile,BufRead *.py,*.pyw,.pythonstartup,.pythonrc,*.ptl setf python
|
||||
|
||||
" Radiance
|
||||
au BufNewFile,BufRead *.rad,*.mat setf radiance
|
||||
@@ -1783,6 +1780,9 @@ au BufNewFile,BufRead *.sass setf sass
|
||||
" Sather
|
||||
au BufNewFile,BufRead *.sa setf sather
|
||||
|
||||
" Scala
|
||||
au BufNewFile,BufRead *.scala setf scala
|
||||
|
||||
" Scilab
|
||||
au BufNewFile,BufRead *.sci,*.sce setf scilab
|
||||
|
||||
@@ -2055,7 +2055,7 @@ func! s:FTRules()
|
||||
if line =~ s:ft_rules_udev_rules_pattern
|
||||
let udev_rules = substitute(line, s:ft_rules_udev_rules_pattern, '\1', "")
|
||||
if dir == udev_rules
|
||||
setf udevrules
|
||||
setf udevrules
|
||||
endif
|
||||
break
|
||||
endif
|
||||
@@ -2304,7 +2304,7 @@ au BufNewFile,BufRead */etc/updatedb.conf setf updatedb
|
||||
au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart
|
||||
au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart
|
||||
au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart
|
||||
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
|
||||
au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart
|
||||
au BufNewFile,BufRead */.config/upstart/*.conf setf upstart
|
||||
au BufNewFile,BufRead */.config/upstart/*.override setf upstart
|
||||
|
||||
@@ -2645,6 +2645,8 @@ au BufNewFile,BufRead [rR]akefile* call s:StarSetf('ruby')
|
||||
" Mail (also matches muttrc.vim, so this is below the other checks)
|
||||
au BufNewFile,BufRead mutt[[:alnum:]._-]\\\{6\} setf mail
|
||||
|
||||
au BufNewFile,BufRead reportbug-* call s:StarSetf('mail')
|
||||
|
||||
" Modconf
|
||||
au BufNewFile,BufRead */etc/modutils/*
|
||||
\ if executable(expand("<afile>")) != 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2012 Jul 10
|
||||
" Last Change: 2016 Jun 12
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -37,7 +37,7 @@ endif
|
||||
" When the matchit plugin is loaded, this makes the % command skip parens and
|
||||
" braces in comments.
|
||||
let b:match_words = &matchpairs . ',^\s*#\s*if\(\|def\|ndef\)\>:^\s*#\s*elif\>:^\s*#\s*else\>:^\s*#\s*endif\>'
|
||||
let b:match_skip = 's:comment\|string\|character'
|
||||
let b:match_skip = 's:comment\|string\|character\|special'
|
||||
|
||||
" Win32 can filter files in the browse dialog
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
"
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 27 March 2014
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 18 July 2016
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -43,7 +43,7 @@ setlocal commentstring=;\ %s
|
||||
" specially and hence are not indented specially.
|
||||
"
|
||||
" -*- LISPWORDS -*-
|
||||
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-010/clj/src/vim_clojure_static/generate.clj
|
||||
" Generated from https://github.com/guns/vim-clojure-static/blob/vim-release-011/clj/src/vim_clojure_static/generate.clj
|
||||
setlocal lispwords=as->,binding,bound-fn,case,catch,cond->,cond->>,condp,def,definline,definterface,defmacro,defmethod,defmulti,defn,defn-,defonce,defprotocol,defrecord,defstruct,deftest,deftest-,deftype,doseq,dotimes,doto,extend,extend-protocol,extend-type,fn,for,if,if-let,if-not,if-some,let,letfn,locking,loop,ns,proxy,reify,set-test,testing,when,when-first,when-let,when-not,when-some,while,with-bindings,with-in-str,with-local-vars,with-open,with-precision,with-redefs,with-redefs-fn,with-test
|
||||
|
||||
" Provide insert mode completions for special forms and clojure.core. As
|
||||
@@ -82,9 +82,9 @@ endif
|
||||
" Win32 can filter files in the browse dialog
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Clojure Source Files (*.clj)\t*.clj\n" .
|
||||
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
|
||||
\ "Java Source Files (*.java)\t*.java\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
\ "ClojureScript Source Files (*.cljs)\t*.cljs\n" .
|
||||
\ "Java Source Files (*.java)\t*.java\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
let b:undo_ftplugin .= ' | unlet! b:browsefilter'
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 Jun 01
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
@@ -19,27 +19,23 @@ setlocal omnifunc=CucumberComplete
|
||||
let b:undo_ftplugin = "setl fo< com< cms< ofu<"
|
||||
|
||||
let b:cucumber_root = expand('%:p:h:s?.*[\/]\%(features\|stories\)\zs[\/].*??')
|
||||
if !exists("b:cucumber_steps_glob")
|
||||
let b:cucumber_steps_glob = b:cucumber_root.'/**/*.rb'
|
||||
endif
|
||||
|
||||
if !exists("g:no_plugin_maps") && !exists("g:no_cucumber_maps")
|
||||
nnoremap <silent><buffer> <C-]> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
||||
nnoremap <silent><buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
||||
nnoremap <silent><buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<CR>
|
||||
nnoremap <silent><buffer> <C-W>] :<C-U>exe <SID>jump('split',v:count)<CR>
|
||||
nnoremap <silent><buffer> <C-W><C-]> :<C-U>exe <SID>jump('split',v:count)<CR>
|
||||
nnoremap <silent><buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<CR>
|
||||
nnoremap <silent><buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<CR>
|
||||
nnoremap <silent><buffer> <C-W>} :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
nnoremap <silent><buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
nnoremap <silent><buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
cnoremap <SID>foldopen <Bar>if &foldopen =~# 'tag'<Bar>exe 'norm! zv'<Bar>endif
|
||||
nnoremap <silent> <script> <buffer> [<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> ]<C-D> :<C-U>exe <SID>jump('edit',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> <C-W>d :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> <C-W><C-D> :<C-U>exe <SID>jump('split',v:count)<SID>foldopen<CR>
|
||||
nnoremap <silent> <script> <buffer> [d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
nnoremap <silent> <script> <buffer> ]d :<C-U>exe <SID>jump('pedit',v:count)<CR>
|
||||
let b:undo_ftplugin .=
|
||||
\ "|sil! nunmap <buffer> <C-]>" .
|
||||
\ "|sil! nunmap <buffer> [<C-D>" .
|
||||
\ "|sil! nunmap <buffer> ]<C-D>" .
|
||||
\ "|sil! nunmap <buffer> <C-W>]" .
|
||||
\ "|sil! nunmap <buffer> <C-W><C-]>" .
|
||||
\ "|sil! nunmap <buffer> <C-W>d" .
|
||||
\ "|sil! nunmap <buffer> <C-W><C-D>" .
|
||||
\ "|sil! nunmap <buffer> <C-W>}" .
|
||||
\ "|sil! nunmap <buffer> [d" .
|
||||
\ "|sil! nunmap <buffer> ]d"
|
||||
endif
|
||||
@@ -59,7 +55,7 @@ endfunction
|
||||
function! s:allsteps()
|
||||
let step_pattern = '\C^\s*\K\k*\>\s*(\=\s*\zs\S.\{-\}\ze\s*)\=\s*\%(do\|{\)\s*\%(|[^|]*|\s*\)\=\%($\|#\)'
|
||||
let steps = []
|
||||
for file in split(glob(b:cucumber_root.'/**/*.rb'),"\n")
|
||||
for file in split(glob(b:cucumber_steps_glob),"\n")
|
||||
let lines = readfile(file)
|
||||
let num = 0
|
||||
for line in lines
|
||||
|
||||
@@ -27,7 +27,7 @@ elseif !exists("b:eruby_subtype")
|
||||
let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
|
||||
let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+')
|
||||
if b:eruby_subtype == ''
|
||||
let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+$')
|
||||
let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$')
|
||||
endif
|
||||
if b:eruby_subtype == 'rhtml'
|
||||
let b:eruby_subtype = 'html'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
@@ -12,6 +12,8 @@ let b:did_ftplugin = 1
|
||||
if !exists('b:git_dir')
|
||||
if expand('%:p') =~# '[\/]\.git[\/]modules[\/]'
|
||||
" Stay out of the way
|
||||
elseif expand('%:p') =~# '[\/]\.git[\/]worktrees'
|
||||
let b:git_dir = matchstr(expand('%:p'),'.*\.git[\/]worktrees[\/][^\/]\+\>')
|
||||
elseif expand('%:p') =~# '\.git\>'
|
||||
let b:git_dir = matchstr(expand('%:p'),'.*\.git\>')
|
||||
elseif $GIT_DIR != ''
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
@@ -11,15 +11,10 @@ endif
|
||||
runtime! ftplugin/git.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal nomodeline tabstop=8 formatoptions-=croq formatoptions+=tl
|
||||
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions<'
|
||||
|
||||
if &textwidth == 0
|
||||
" make sure that log messages play nice with git-log on standard terminals
|
||||
setlocal textwidth=72
|
||||
let b:undo_ftplugin .= "|setl tw<"
|
||||
endif
|
||||
setlocal comments=:# commentstring=#\ %s
|
||||
setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
|
||||
setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q
|
||||
let b:undo_ftplugin = 'setl modeline< tabstop< formatoptions< tw< com< cms<'
|
||||
|
||||
if exists("g:no_gitcommit_commands") || v:version < 700
|
||||
finish
|
||||
@@ -31,6 +26,8 @@ endif
|
||||
|
||||
command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0,b:git_dir,<f-args>)
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|delc DiffGitCached"
|
||||
|
||||
function! s:diffcomplete(A,L,P)
|
||||
let args = ""
|
||||
if a:P <= match(a:L." -- "," -- ")+3
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: git rebase --interactive
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 May 21
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
@@ -12,10 +12,11 @@ runtime! ftplugin/git.vim
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:# commentstring=#\ %s formatoptions-=t
|
||||
setlocal nomodeline
|
||||
if !exists("b:undo_ftplugin")
|
||||
let b:undo_ftplugin = ""
|
||||
endif
|
||||
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo<"
|
||||
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
|
||||
|
||||
function! s:choose(word)
|
||||
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: groovy
|
||||
" Maintainer: Justin M. Keyes <justinkz@gmail.com>
|
||||
" Last Change: 2016 May 22
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo-=C
|
||||
|
||||
let b:undo_ftplugin = 'setlocal commentstring<'
|
||||
|
||||
setlocal commentstring=//%s
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 Jun 01
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: man
|
||||
" Maintainer: SungHyun Nam <goweol@gmail.com>
|
||||
" Last Change: 2016 Feb 04
|
||||
" Last Change: 2016 Jun 20
|
||||
|
||||
" To make the ":Man" command available before editing a manual page, source
|
||||
" this script from your startup vimrc file.
|
||||
@@ -150,7 +150,17 @@ func <SID>GetPage(...)
|
||||
endwhile
|
||||
endif
|
||||
if &filetype != "man"
|
||||
new
|
||||
if exists("g:ft_man_open_mode")
|
||||
if g:ft_man_open_mode == "vert"
|
||||
vnew
|
||||
elseif g:ft_man_open_mode == "tab"
|
||||
tabnew
|
||||
else
|
||||
new
|
||||
endif
|
||||
else
|
||||
new
|
||||
endif
|
||||
setl nonu fdc=0
|
||||
endif
|
||||
endif
|
||||
@@ -160,10 +170,15 @@ func <SID>GetPage(...)
|
||||
|
||||
setl ma nonu nornu nofen
|
||||
silent exec "norm 1GdG"
|
||||
let unsetwidth = 0
|
||||
if empty($MANWIDTH)
|
||||
let $MANWIDTH = winwidth(0)
|
||||
let unsetwidth = 1
|
||||
endif
|
||||
silent exec "r!/usr/bin/man ".s:GetCmdArg(sect, page)." | col -b"
|
||||
if unsetwidth
|
||||
let $MANWIDTH = ''
|
||||
endif
|
||||
" Remove blank lines from top and bottom.
|
||||
while getline(1) =~ '^\s*$'
|
||||
silent keepj norm ggdd
|
||||
@@ -175,6 +190,7 @@ func <SID>GetPage(...)
|
||||
setl ft=man nomod
|
||||
setl bufhidden=hide
|
||||
setl nobuflisted
|
||||
setl noma
|
||||
endfunc
|
||||
|
||||
func <SID>PopPage()
|
||||
@@ -195,4 +211,4 @@ endfunc
|
||||
|
||||
endif
|
||||
|
||||
" vim: set sw=2:
|
||||
" vim: set sw=2 ts=8 noet:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Markdown
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -11,7 +11,7 @@ runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
|
||||
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
|
||||
setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
|
||||
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
|
||||
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
|
||||
|
||||
if exists('b:undo_ftplugin')
|
||||
let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
|
||||
@@ -19,4 +19,32 @@ else
|
||||
let b:undo_ftplugin = "setl cms< com< fo< flp<"
|
||||
endif
|
||||
|
||||
function! MarkdownFold()
|
||||
let line = getline(v:lnum)
|
||||
|
||||
" Regular headers
|
||||
let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
|
||||
if depth > 0
|
||||
return ">" . depth
|
||||
endif
|
||||
|
||||
" Setext style headings
|
||||
let nextline = getline(v:lnum + 1)
|
||||
if (line =~ '^.\+$') && (nextline =~ '^=\+$')
|
||||
return ">1"
|
||||
endif
|
||||
|
||||
if (line =~ '^.\+$') && (nextline =~ '^-\+$')
|
||||
return ">2"
|
||||
endif
|
||||
|
||||
return "="
|
||||
endfunction
|
||||
|
||||
if has("folding") && exists("g:markdown_folding")
|
||||
setlocal foldexpr=MarkdownFold()
|
||||
setlocal foldmethod=expr
|
||||
let b:undo_ftplugin .= " foldexpr< foldmethod<"
|
||||
endif
|
||||
|
||||
" vim:set sw=2:
|
||||
|
||||
+39
-16
@@ -1,8 +1,9 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: python
|
||||
" Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: 2014 Feb 09
|
||||
" Last Change By Johannes: Wed, 21 Apr 2004 13:13:08 CEST
|
||||
" Maintainer: James Sully <sullyj3@gmail.com>
|
||||
" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
|
||||
" Last Change: Tue, 06 September 2016
|
||||
" https://github.com/sullyj3/vim-ftplugin-python
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
@@ -21,32 +22,54 @@ setlocal omnifunc=pythoncomplete#Complete
|
||||
|
||||
set wildignore+=*.pyc
|
||||
|
||||
nnoremap <silent> <buffer> ]] :call <SID>Python_jump('/^\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> [[ :call <SID>Python_jump('?^\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> ]m :call <SID>Python_jump('/^\s*\(class\\|def\)')<cr>
|
||||
nnoremap <silent> <buffer> [m :call <SID>Python_jump('?^\s*\(class\\|def\)')<cr>
|
||||
let b:next_toplevel='\v%$\|^(class\|def)>'
|
||||
let b:prev_toplevel='\v^(class\|def)>'
|
||||
let b:next='\v%$\|^\s*(class\|def)>'
|
||||
let b:prev='\v^\s*(class\|def)>'
|
||||
|
||||
execute "nnoremap <silent> <buffer> ]] :call <SID>Python_jump('n', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "nnoremap <silent> <buffer> [[ :call <SID>Python_jump('n', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "nnoremap <silent> <buffer> ]m :call <SID>Python_jump('n', '". b:next."', 'W')<cr>"
|
||||
execute "nnoremap <silent> <buffer> [m :call <SID>Python_jump('n', '". b:prev."', 'Wb')<cr>"
|
||||
|
||||
execute "onoremap <silent> <buffer> ]] :call <SID>Python_jump('o', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "onoremap <silent> <buffer> [[ :call <SID>Python_jump('o', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "onoremap <silent> <buffer> ]m :call <SID>Python_jump('o', '". b:next."', 'W')<cr>"
|
||||
execute "onoremap <silent> <buffer> [m :call <SID>Python_jump('o', '". b:prev."', 'Wb')<cr>"
|
||||
|
||||
execute "xnoremap <silent> <buffer> ]] :call <SID>Python_jump('x', '". b:next_toplevel."', 'W')<cr>"
|
||||
execute "xnoremap <silent> <buffer> [[ :call <SID>Python_jump('x', '". b:prev_toplevel."', 'Wb')<cr>"
|
||||
execute "xnoremap <silent> <buffer> ]m :call <SID>Python_jump('x', '". b:next."', 'W')<cr>"
|
||||
execute "xnoremap <silent> <buffer> [m :call <SID>Python_jump('x', '". b:prev."', 'Wb')<cr>"
|
||||
|
||||
if !exists('*<SID>Python_jump')
|
||||
fun! <SID>Python_jump(motion) range
|
||||
fun! <SID>Python_jump(mode, motion, flags) range
|
||||
if a:mode == 'x'
|
||||
normal! gv
|
||||
endif
|
||||
|
||||
normal! 0
|
||||
|
||||
let cnt = v:count1
|
||||
let save = @/ " save last search pattern
|
||||
mark '
|
||||
while cnt > 0
|
||||
silent! exe a:motion
|
||||
let cnt = cnt - 1
|
||||
call search(a:motion, a:flags)
|
||||
let cnt = cnt - 1
|
||||
endwhile
|
||||
call histdel('/', -1)
|
||||
let @/ = save " restore last search pattern
|
||||
|
||||
normal! ^
|
||||
endfun
|
||||
endif
|
||||
|
||||
if has("browsefilter") && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Python Files (*.py)\t*.py\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
" As suggested by PEP8.
|
||||
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
|
||||
if !exists("g:python_recommended_style") || g:python_recommended_style != 0
|
||||
" As suggested by PEP8.
|
||||
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
|
||||
endif
|
||||
|
||||
" First time: try finding "pydoc".
|
||||
if !exists('g:pydoc_executable')
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: R help file
|
||||
" Language: R Markdown file
|
||||
" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
||||
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
|
||||
" Last Change: Tue Apr 07, 2015 04:37PM
|
||||
" Original work by Alex Zvoleff (adjusted for rmd by Michel Kuhlmann)
|
||||
" Last Change: Mon Jun 06, 2016 09:41PM
|
||||
" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
|
||||
|
||||
" Only do this when not yet done for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -12,6 +12,16 @@ endif
|
||||
|
||||
runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
|
||||
|
||||
" Nvim-R plugin needs this
|
||||
if exists("*CompleteR")
|
||||
if &omnifunc == "CompleteR"
|
||||
let b:rplugin_nonr_omnifunc = ""
|
||||
else
|
||||
let b:rplugin_nonr_omnifunc = &omnifunc
|
||||
endif
|
||||
set omnifunc=CompleteR
|
||||
endif
|
||||
|
||||
setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
|
||||
setlocal formatoptions+=tcqln
|
||||
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
|
||||
|
||||
+88
-63
@@ -28,12 +28,13 @@ if exists("loaded_matchit") && !exists("b:match_words")
|
||||
\ ':' .
|
||||
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
|
||||
\ ':' .
|
||||
\ '\<end\>' .
|
||||
\ '\%(^\|[^.\:@$]\)\@<=\<end\:\@!\>' .
|
||||
\ ',{:},\[:\],(:)'
|
||||
|
||||
let b:match_skip =
|
||||
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
|
||||
\ "\\<ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
|
||||
\ "Regexp\\|RegexpDelimiter\\|" .
|
||||
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
|
||||
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
|
||||
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
|
||||
@@ -43,7 +44,7 @@ endif
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
setlocal include=^\\s*\\<\\(load\\>\\\|require\\>\\\|autoload\\s*:\\=[\"']\\=\\h\\w*[\"']\\=,\\)
|
||||
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
|
||||
setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'\%(\.rb\)\=$','.rb','')
|
||||
setlocal suffixesadd=.rb
|
||||
|
||||
if exists("&ofu") && has("ruby")
|
||||
@@ -66,32 +67,32 @@ if !exists('g:ruby_version_paths')
|
||||
let g:ruby_version_paths = {}
|
||||
endif
|
||||
|
||||
function! s:query_path(root)
|
||||
function! s:query_path(root) abort
|
||||
let code = "print $:.join %q{,}"
|
||||
if &shell =~# 'sh' && $PATH !~# '\s'
|
||||
let prefix = 'env PATH='.$PATH.' '
|
||||
if &shell =~# 'sh'
|
||||
let prefix = 'env PATH='.shellescape($PATH).' '
|
||||
else
|
||||
let prefix = ''
|
||||
endif
|
||||
if &shellxquote == "'"
|
||||
let path_check = prefix.'ruby -e "' . code . '"'
|
||||
let path_check = prefix.'ruby --disable-gems -e "' . code . '"'
|
||||
else
|
||||
let path_check = prefix."ruby -e '" . code . "'"
|
||||
let path_check = prefix."ruby --disable-gems -e '" . code . "'"
|
||||
endif
|
||||
|
||||
let cd = haslocaldir() ? 'lcd' : 'cd'
|
||||
let cwd = getcwd()
|
||||
let cwd = fnameescape(getcwd())
|
||||
try
|
||||
exe cd fnameescape(a:root)
|
||||
let path = split(system(path_check),',')
|
||||
exe cd fnameescape(cwd)
|
||||
exe cd cwd
|
||||
return path
|
||||
finally
|
||||
exe cd fnameescape(cwd)
|
||||
exe cd cwd
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
function! s:build_path(path)
|
||||
function! s:build_path(path) abort
|
||||
let path = join(map(copy(a:path), 'v:val ==# "." ? "" : v:val'), ',')
|
||||
if &g:path !~# '\v^\.%(,/%(usr|emx)/include)=,,$'
|
||||
let path = substitute(&g:path,',,$',',','') . ',' . path
|
||||
@@ -101,7 +102,7 @@ endfunction
|
||||
|
||||
if !exists('b:ruby_version') && !exists('g:ruby_path') && isdirectory(expand('%:p:h'))
|
||||
let s:version_file = findfile('.ruby-version', '.;')
|
||||
if !empty(s:version_file)
|
||||
if !empty(s:version_file) && filereadable(s:version_file)
|
||||
let b:ruby_version = get(readfile(s:version_file, '', 1), '')
|
||||
if !has_key(g:ruby_version_paths, b:ruby_version)
|
||||
let g:ruby_version_paths[b:ruby_version] = s:query_path(fnamemodify(s:version_file, ':p:h'))
|
||||
@@ -135,7 +136,7 @@ if exists('s:ruby_paths') && stridx(&l:tags, join(map(copy(s:ruby_paths),'v:val.
|
||||
let &l:tags = &tags . ',' . join(map(copy(s:ruby_paths),'v:val."/tags"'),',')
|
||||
endif
|
||||
|
||||
if has("gui_win32") && !exists("b:browsefilter")
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Ruby Source Files (*.rb)\t*.rb\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
@@ -145,7 +146,22 @@ let b:undo_ftplugin = "setl fo< inc< inex< sua< def< com< cms< path< tags< kp<"
|
||||
\."| if exists('&ofu') && has('ruby') | setl ofu< | endif"
|
||||
\."| if has('balloon_eval') && exists('+bexpr') | setl bexpr< | endif"
|
||||
|
||||
function! s:map(mode, flags, map) abort
|
||||
let from = matchstr(a:map, '\S\+')
|
||||
if empty(mapcheck(from, a:mode))
|
||||
exe a:mode.'map' '<buffer>'.(a:0 ? a:1 : '') a:map
|
||||
let b:undo_ftplugin .= '|sil! '.a:mode.'unmap <buffer> '.from
|
||||
endif
|
||||
endfunction
|
||||
|
||||
cmap <buffer><script><expr> <Plug><cword> substitute(RubyCursorIdentifier(),'^$',"\022\027",'')
|
||||
cmap <buffer><script><expr> <Plug><cfile> substitute(RubyCursorFile(),'^$',"\022\006",'')
|
||||
let b:undo_ftplugin .= "| sil! cunmap <buffer> <Plug><cword>| sil! cunmap <buffer> <Plug><cfile>"
|
||||
|
||||
if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
nmap <buffer><script> <SID>: :<C-U>
|
||||
nmap <buffer><script> <SID>c: :<C-U><C-R>=v:count ? v:count : ''<CR>
|
||||
|
||||
nnoremap <silent> <buffer> [m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','b','n')<CR>
|
||||
nnoremap <silent> <buffer> ]m :<C-U>call <SID>searchsyn('\<def\>','rubyDefine','','n')<CR>
|
||||
nnoremap <silent> <buffer> [M :<C-U>call <SID>searchsyn('\<end\>','rubyDefine','b','n')<CR>
|
||||
@@ -168,7 +184,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
\."| sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
|
||||
\."| sil! exe 'unmap <buffer> [m' | sil! exe 'unmap <buffer> ]m' | sil! exe 'unmap <buffer> [M' | sil! exe 'unmap <buffer> ]M'"
|
||||
|
||||
if maparg('im','n') == ''
|
||||
if maparg('im','x') == '' && maparg('im','o') == '' && maparg('am','x') == '' && maparg('am','o') == ''
|
||||
onoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
|
||||
onoremap <silent> <buffer> am :<C-U>call <SID>wrap_a('[m',']M')<CR>
|
||||
xnoremap <silent> <buffer> im :<C-U>call <SID>wrap_i('[m',']M')<CR>
|
||||
@@ -178,7 +194,7 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
\."| sil! exe 'xunmap <buffer> im' | sil! exe 'xunmap <buffer> am'"
|
||||
endif
|
||||
|
||||
if maparg('iM','n') == ''
|
||||
if maparg('iM','x') == '' && maparg('iM','o') == '' && maparg('aM','x') == '' && maparg('aM','o') == ''
|
||||
onoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
|
||||
onoremap <silent> <buffer> aM :<C-U>call <SID>wrap_a('[[','][')<CR>
|
||||
xnoremap <silent> <buffer> iM :<C-U>call <SID>wrap_i('[[','][')<CR>
|
||||
@@ -188,33 +204,24 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
|
||||
\."| sil! exe 'xunmap <buffer> iM' | sil! exe 'xunmap <buffer> aM'"
|
||||
endif
|
||||
|
||||
if maparg("\<C-]>",'n') == ''
|
||||
nnoremap <silent> <buffer> <C-]> :<C-U>exe v:count1."tag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> g<C-]> :<C-U>exe "tjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> g] :<C-U>exe "tselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>] :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W><C-]> :<C-U>exe v:count1."stag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>g<C-]> :<C-U>exe "stjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>g] :<C-U>exe "stselect <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>} :<C-U>exe "ptag <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
nnoremap <silent> <buffer> <C-W>g} :<C-U>exe "ptjump <C-R>=RubyCursorIdentifier()<CR>"<CR>
|
||||
let b:undo_ftplugin = b:undo_ftplugin
|
||||
\."| sil! exe 'nunmap <buffer> <C-]>'| sil! exe 'nunmap <buffer> g<C-]>'| sil! exe 'nunmap <buffer> g]'"
|
||||
\."| sil! exe 'nunmap <buffer> <C-W>]'| sil! exe 'nunmap <buffer> <C-W><C-]>'"
|
||||
\."| sil! exe 'nunmap <buffer> <C-W>g<C-]>'| sil! exe 'nunmap <buffer> <C-W>g]'"
|
||||
\."| sil! exe 'nunmap <buffer> <C-W>}'| sil! exe 'nunmap <buffer> <C-W>g}'"
|
||||
endif
|
||||
call s:map('c', '', '<C-R><C-W> <Plug><cword>')
|
||||
call s:map('c', '', '<C-R><C-F> <Plug><cfile>')
|
||||
|
||||
if maparg("gf",'n') == ''
|
||||
" By using findfile() rather than gf's normal behavior, we prevent
|
||||
" erroneously editing a directory.
|
||||
nnoremap <silent> <buffer> gf :<C-U>exe <SID>gf(v:count1,"gf",'edit')<CR>
|
||||
nnoremap <silent> <buffer> <C-W>f :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>f",'split')<CR>
|
||||
nnoremap <silent> <buffer> <C-W><C-F> :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>\<Lt>C-F>",'split')<CR>
|
||||
nnoremap <silent> <buffer> <C-W>gf :<C-U>exe <SID>gf(v:count1,"\<Lt>C-W>gf",'tabedit')<CR>
|
||||
let b:undo_ftplugin = b:undo_ftplugin
|
||||
\."| sil! exe 'nunmap <buffer> gf' | sil! exe 'nunmap <buffer> <C-W>f' | sil! exe 'nunmap <buffer> <C-W><C-F>' | sil! exe 'nunmap <buffer> <C-W>gf'"
|
||||
endif
|
||||
cmap <buffer><script><expr> <SID>tagzv &foldopen =~# 'tag' ? '<Bar>norm! zv' : ''
|
||||
call s:map('n', '<silent>', '<C-]> <SID>:exe v:count1."tag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', 'g<C-]> <SID>:exe "tjump <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', 'g] <SID>:exe "tselect <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>] <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W><C-]> <SID>:exe v:count1."stag <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g<C-]> <SID>:exe "stjump <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g] <SID>:exe "stselect <Plug><cword>"<SID>tagzv<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>} <SID>:exe v:count1."ptag <Plug><cword>"<CR>')
|
||||
call s:map('n', '<silent>', '<C-W>g} <SID>:exe "ptjump <Plug><cword>"<CR>')
|
||||
|
||||
call s:map('n', '<silent>', 'gf <SID>c:find <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W>f <SID>c:sfind <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W><C-F> <SID>c:sfind <Plug><cfile><CR>')
|
||||
call s:map('n', '<silent>', '<C-W>gf <SID>c:tabfind <Plug><cfile><CR>')
|
||||
endif
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
@@ -225,7 +232,7 @@ if exists("g:did_ruby_ftplugin_functions")
|
||||
endif
|
||||
let g:did_ruby_ftplugin_functions = 1
|
||||
|
||||
function! RubyBalloonexpr()
|
||||
function! RubyBalloonexpr() abort
|
||||
if !exists('s:ri_found')
|
||||
let s:ri_found = executable('ri')
|
||||
endif
|
||||
@@ -274,13 +281,13 @@ function! RubyBalloonexpr()
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:searchsyn(pattern,syn,flags,mode)
|
||||
function! s:searchsyn(pattern, syn, flags, mode) abort
|
||||
let cnt = v:count1
|
||||
norm! m'
|
||||
if a:mode ==# 'v'
|
||||
norm! gv
|
||||
endif
|
||||
let i = 0
|
||||
let cnt = v:count ? v:count : 1
|
||||
while i < cnt
|
||||
let i = i + 1
|
||||
let line = line('.')
|
||||
@@ -296,11 +303,11 @@ function! s:searchsyn(pattern,syn,flags,mode)
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
function! s:synname()
|
||||
function! s:synname() abort
|
||||
return synIDattr(synID(line('.'),col('.'),0),'name')
|
||||
endfunction
|
||||
|
||||
function! s:wrap_i(back,forward)
|
||||
function! s:wrap_i(back,forward) abort
|
||||
execute 'norm k'.a:forward
|
||||
let line = line('.')
|
||||
execute 'norm '.a:back
|
||||
@@ -310,7 +317,7 @@ function! s:wrap_i(back,forward)
|
||||
execute 'norm jV'.a:forward.'k'
|
||||
endfunction
|
||||
|
||||
function! s:wrap_a(back,forward)
|
||||
function! s:wrap_a(back,forward) abort
|
||||
execute 'norm '.a:forward
|
||||
if line('.') < line('$') && getline(line('.')+1) ==# ''
|
||||
let after = 1
|
||||
@@ -328,37 +335,55 @@ function! s:wrap_a(back,forward)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! RubyCursorIdentifier()
|
||||
function! RubyCursorIdentifier() abort
|
||||
let asciicode = '\%(\w\|[]})\"'."'".']\)\@<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)'
|
||||
let number = '\%(\%(\w\|[]})\"'."'".']\s*\)\@<!-\)\=\%(\<[[:digit:]_]\+\%(\.[[:digit:]_]\+\)\=\%([Ee][[:digit:]_]\+\)\=\>\|\<0[xXbBoOdD][[:xdigit:]_]\+\>\)\|'.asciicode
|
||||
let operator = '\%(\[\]\|<<\|<=>\|[!<>]=\=\|===\=\|[!=]\~\|>>\|\*\*\|\.\.\.\=\|=>\|[~^&|*/%+-]\)'
|
||||
let method = '\%(\<[_a-zA-Z]\w*\>\%([?!]\|\s*=>\@!\)\=\)'
|
||||
let method = '\%(\.[_a-zA-Z]\w*\s*=>\@!\|\<[_a-zA-Z]\w*\>[?!]\=\)'
|
||||
let global = '$\%([!$&"'."'".'*+,./:;<=>?@\`~]\|-\=\w\+\>\)'
|
||||
let symbolizable = '\%(\%(@@\=\)\w\+\>\|'.global.'\|'.method.'\|'.operator.'\)'
|
||||
let pattern = '\C\s*\%('.number.'\|\%(:\@<!:\)\='.symbolizable.'\)'
|
||||
let [lnum, col] = searchpos(pattern,'bcn',line('.'))
|
||||
let raw = matchstr(getline('.')[col-1 : ],pattern)
|
||||
let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*:\=','','')
|
||||
let stripped = substitute(substitute(raw,'\s\+=$','=',''),'^\s*[:.]\=','','')
|
||||
return stripped == '' ? expand("<cword>") : stripped
|
||||
endfunction
|
||||
|
||||
function! s:gf(count,map,edit) abort
|
||||
if getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
|
||||
return a:edit.' %:h/'.target.'.rb'
|
||||
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\.\./\zs.\{-\}\ze\1')
|
||||
return a:edit.' %:h/'.target.'.rb'
|
||||
function! RubyCursorFile() abort
|
||||
let isfname = &isfname
|
||||
try
|
||||
set isfname+=:
|
||||
let cfile = expand('<cfile>')
|
||||
finally
|
||||
let isfname = &isfname
|
||||
endtry
|
||||
let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
|
||||
let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
|
||||
let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
|
||||
if s:synname() ==# 'rubyConstant'
|
||||
let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
|
||||
let cfile = substitute(cfile,'::','/','g')
|
||||
let cfile = substitute(cfile,'\(\u\+\)\(\u\l\)','\1_\2', 'g')
|
||||
let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
|
||||
return tolower(cfile) . '.rb'
|
||||
elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
||||
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
|
||||
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
|
||||
let cfile = expand('%:p:h') . target . ext
|
||||
elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
|
||||
let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
|
||||
elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
|
||||
let cfile = expand('%:p:h') . strpart(cfile, 2)
|
||||
else
|
||||
let target = expand('<cfile>')
|
||||
return substitute(cfile, '\C\v^(.*):(\d+)%(:in)=$', '+\2 \1', '')
|
||||
endif
|
||||
let found = findfile(target, &path, a:count)
|
||||
if found ==# ''
|
||||
return 'norm! '.a:count.a:map
|
||||
let cwdpat = '^\M' . substitute(getcwd(), '[\/]', '\\[\\/]', 'g').'\ze\[\/]'
|
||||
let cfile = substitute(cfile, cwdpat, '.', '')
|
||||
if fnameescape(cfile) !=# cfile
|
||||
return '+ '.fnameescape(cfile)
|
||||
else
|
||||
return a:edit.' '.fnameescape(found)
|
||||
return cfile
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim filetype plugin
|
||||
" Language: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 Jul 26
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
@@ -9,8 +9,9 @@ if exists("b:did_ftplugin")
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
|
||||
let b:undo_ftplugin = "setl com< cms< def< inc< inex< ofu< sua<"
|
||||
|
||||
setlocal comments=://
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal define=^\\s*\\%(@mixin\\\|=\\)
|
||||
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Scala
|
||||
" Maintainer: Derek Wyatt
|
||||
" URL: https://github.com/derekwyatt/vim-scala
|
||||
" License: Same as Vim
|
||||
" Last Change: 02 August 2016
|
||||
" ----------------------------------------------------------------------------
|
||||
|
||||
if exists('b:did_ftplugin') || &cp
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
" j is fairly new in Vim, so don't complain if it's not there
|
||||
setlocal formatoptions-=t formatoptions+=croqnl
|
||||
silent! setlocal formatoptions+=j
|
||||
|
||||
" Just like c.vim, but additionally doesn't wrap text onto /** line when
|
||||
" formatting. Doesn't bungle bulleted lists when formatting.
|
||||
if get(g:, 'scala_scaladoc_indent', 0)
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s2:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
|
||||
else
|
||||
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/**,mb:*,ex:*/,s1:/*,mb:*,ex:*/,://
|
||||
endif
|
||||
setlocal commentstring=//\ %s
|
||||
|
||||
setlocal shiftwidth=2 softtabstop=2 expandtab
|
||||
|
||||
setlocal include='^\s*import'
|
||||
setlocal includeexpr='substitute(v:fname,"\\.","/","g")'
|
||||
|
||||
setlocal path+=src/main/scala,src/test/scala
|
||||
setlocal suffixesadd=.scala
|
||||
|
||||
" vim:set sw=2 sts=2 ts=8 et:
|
||||
@@ -1,12 +1,13 @@
|
||||
" Vim filetype plugin
|
||||
" Language: SCSS
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 Jul 26
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! ftplugin/sass.vim
|
||||
setlocal comments=s1:/*,mb:*,ex:*/,://
|
||||
|
||||
" vim:set sw=2:
|
||||
|
||||
@@ -36,10 +36,11 @@ except ImportError:
|
||||
else:
|
||||
specfile = vim.current.buffer.name
|
||||
if specfile:
|
||||
rpm.delMacro("dist")
|
||||
spec = rpm.spec(specfile)
|
||||
headers = spec.packages[0].header
|
||||
version = headers['Version']
|
||||
release = ".".join(headers['Release'].split(".")[:-1])
|
||||
headers = spec.sourceHeader
|
||||
version = headers["Version"]
|
||||
release = headers["Release"]
|
||||
vim.command("let ver = " + version)
|
||||
vim.command("let rel = " + release)
|
||||
PYEND
|
||||
@@ -113,7 +114,10 @@ if !exists("*s:SpecChangelog")
|
||||
endif
|
||||
endif
|
||||
if (chgline != -1)
|
||||
let tmptime = v:lc_time
|
||||
language time C
|
||||
let parsed_format = "* ".strftime(format)." - ".ver."-".rel
|
||||
execute "language time" tmptime
|
||||
let release_info = "+ ".name."-".ver."-".rel
|
||||
let wrong_format = 0
|
||||
let wrong_release = 0
|
||||
@@ -179,12 +183,8 @@ if !exists("*s:ParseRpmVars")
|
||||
endif
|
||||
let varname = strpart(a:str, start+2, end-(start+2))
|
||||
execute a:strline
|
||||
let definestr = "^[ \t]*%define[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
|
||||
let definestr = "^[ \t]*%(?:global|define)[ \t]\\+" . varname . "[ \t]\\+\\(.*\\)$"
|
||||
let linenum = search(definestr, "bW")
|
||||
if (linenum == 0)
|
||||
let definestr = substitute(definestr, "%define", "%global", "")
|
||||
let linenum = search(definestr, "bW")
|
||||
endif
|
||||
if (linenum != -1)
|
||||
let ret = ret . substitute(getline(linenum), definestr, "\\1", "")
|
||||
else
|
||||
@@ -201,7 +201,7 @@ endif
|
||||
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words =
|
||||
\ '^Name:^%description:^%clean:^%setup:^%build:^%install:^%files:' .
|
||||
\ '^Name:^%description:^%clean:^%(?:auto)?setup:^%build:^%install:^%files:' .
|
||||
\ '^%package:^%preun:^%postun:^%changelog'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
|
||||
+141
-65
@@ -1,17 +1,12 @@
|
||||
" Vim indent file
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||
" Language: Clojure
|
||||
" Author: Meikel Brandmeyer <mb@kotka.de>
|
||||
" URL: http://kotka.de/projects/clojure/vimclojure.html
|
||||
"
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 27 March 2014
|
||||
|
||||
" TODO: Indenting after multibyte characters is broken:
|
||||
" (let [Δ (if foo
|
||||
" bar ; Indent error
|
||||
" baz)])
|
||||
" Maintainer: Sung Pae <self@sungpae.com>
|
||||
" URL: https://github.com/guns/vim-clojure-static
|
||||
" License: Same as Vim
|
||||
" Last Change: 18 July 2016
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -57,36 +52,39 @@ if exists("*searchpairpos")
|
||||
let g:clojure_align_subforms = 0
|
||||
endif
|
||||
|
||||
function! s:SynIdName()
|
||||
function! s:syn_id_name()
|
||||
return synIDattr(synID(line("."), col("."), 0), "name")
|
||||
endfunction
|
||||
|
||||
function! s:CurrentChar()
|
||||
function! s:ignored_region()
|
||||
return s:syn_id_name() =~? '\vstring|regex|comment|character'
|
||||
endfunction
|
||||
|
||||
function! s:current_char()
|
||||
return getline('.')[col('.')-1]
|
||||
endfunction
|
||||
|
||||
function! s:CurrentWord()
|
||||
function! s:current_word()
|
||||
return getline('.')[col('.')-1 : searchpos('\v>', 'n', line('.'))[1]-2]
|
||||
endfunction
|
||||
|
||||
function! s:IsParen()
|
||||
return s:CurrentChar() =~# '\v[\(\)\[\]\{\}]' &&
|
||||
\ s:SynIdName() !~? '\vstring|regex|comment|character'
|
||||
function! s:is_paren()
|
||||
return s:current_char() =~# '\v[\(\)\[\]\{\}]' && !s:ignored_region()
|
||||
endfunction
|
||||
|
||||
" Returns 1 if string matches a pattern in 'patterns', which may be a
|
||||
" list of patterns, or a comma-delimited string of implicitly anchored
|
||||
" patterns.
|
||||
function! s:MatchesOne(patterns, string)
|
||||
function! s:match_one(patterns, string)
|
||||
let list = type(a:patterns) == type([])
|
||||
\ ? a:patterns
|
||||
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||
\ ? a:patterns
|
||||
\ : map(split(a:patterns, ','), '"^" . v:val . "$"')
|
||||
for pat in list
|
||||
if a:string =~# pat | return 1 | endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:MatchPairs(open, close, stopat)
|
||||
function! s:match_pairs(open, close, stopat)
|
||||
" Stop only on vector and map [ resp. {. Ignore the ones in strings and
|
||||
" comments.
|
||||
if a:stopat == 0
|
||||
@@ -95,11 +93,11 @@ if exists("*searchpairpos")
|
||||
let stopat = a:stopat
|
||||
endif
|
||||
|
||||
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:IsParen()", stopat)
|
||||
return [pos[0], virtcol(pos)]
|
||||
let pos = searchpairpos(a:open, '', a:close, 'bWn', "!s:is_paren()", stopat)
|
||||
return [pos[0], col(pos)]
|
||||
endfunction
|
||||
|
||||
function! s:ClojureCheckForStringWorker()
|
||||
function! s:clojure_check_for_string_worker()
|
||||
" Check whether there is the last character of the previous line is
|
||||
" highlighted as a string. If so, we check whether it's a ". In this
|
||||
" case we have to check also the previous character. The " might be the
|
||||
@@ -113,17 +111,17 @@ if exists("*searchpairpos")
|
||||
|
||||
call cursor(nb, 0)
|
||||
call cursor(0, col("$") - 1)
|
||||
if s:SynIdName() !~? "string"
|
||||
if s:syn_id_name() !~? "string"
|
||||
return -1
|
||||
endif
|
||||
|
||||
" This will not work for a " in the first column...
|
||||
if s:CurrentChar() == '"'
|
||||
if s:current_char() == '"'
|
||||
call cursor(0, col("$") - 2)
|
||||
if s:SynIdName() !~? "string"
|
||||
if s:syn_id_name() !~? "string"
|
||||
return -1
|
||||
endif
|
||||
if s:CurrentChar() != '\\'
|
||||
if s:current_char() != '\\'
|
||||
return -1
|
||||
endif
|
||||
call cursor(0, col("$") - 1)
|
||||
@@ -138,40 +136,40 @@ if exists("*searchpairpos")
|
||||
return indent(".")
|
||||
endfunction
|
||||
|
||||
function! s:CheckForString()
|
||||
function! s:check_for_string()
|
||||
let pos = getpos('.')
|
||||
try
|
||||
let val = s:ClojureCheckForStringWorker()
|
||||
let val = s:clojure_check_for_string_worker()
|
||||
finally
|
||||
call setpos('.', pos)
|
||||
endtry
|
||||
return val
|
||||
endfunction
|
||||
|
||||
function! s:StripNamespaceAndMacroChars(word)
|
||||
function! s:strip_namespace_and_macro_chars(word)
|
||||
return substitute(a:word, "\\v%(.*/|[#'`~@^,]*)(.*)", '\1', '')
|
||||
endfunction
|
||||
|
||||
function! s:ClojureIsMethodSpecialCaseWorker(position)
|
||||
function! s:clojure_is_method_special_case_worker(position)
|
||||
" Find the next enclosing form.
|
||||
call search('\S', 'Wb')
|
||||
|
||||
" Special case: we are at a '(('.
|
||||
if s:CurrentChar() == '('
|
||||
if s:current_char() == '('
|
||||
return 0
|
||||
endif
|
||||
call cursor(a:position)
|
||||
|
||||
let nextParen = s:MatchPairs('(', ')', 0)
|
||||
let next_paren = s:match_pairs('(', ')', 0)
|
||||
|
||||
" Special case: we are now at toplevel.
|
||||
if nextParen == [0, 0]
|
||||
if next_paren == [0, 0]
|
||||
return 0
|
||||
endif
|
||||
call cursor(nextParen)
|
||||
call cursor(next_paren)
|
||||
|
||||
call search('\S', 'W')
|
||||
let w = s:StripNamespaceAndMacroChars(s:CurrentWord())
|
||||
let w = s:strip_namespace_and_macro_chars(s:current_word())
|
||||
if g:clojure_special_indent_words =~# '\V\<' . w . '\>'
|
||||
return 1
|
||||
endif
|
||||
@@ -179,27 +177,43 @@ if exists("*searchpairpos")
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:IsMethodSpecialCase(position)
|
||||
function! s:is_method_special_case(position)
|
||||
let pos = getpos('.')
|
||||
try
|
||||
let val = s:ClojureIsMethodSpecialCaseWorker(a:position)
|
||||
let val = s:clojure_is_method_special_case_worker(a:position)
|
||||
finally
|
||||
call setpos('.', pos)
|
||||
endtry
|
||||
return val
|
||||
endfunction
|
||||
|
||||
function! GetClojureIndent()
|
||||
" Check if form is a reader conditional, that is, it is prefixed by #?
|
||||
" or @#?
|
||||
function! s:is_reader_conditional_special_case(position)
|
||||
if getline(a:position[0])[a:position[1] - 3 : a:position[1] - 2] == "#?"
|
||||
return 1
|
||||
endif
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Returns 1 for opening brackets, -1 for _anything else_.
|
||||
function! s:bracket_type(char)
|
||||
return stridx('([{', a:char) > -1 ? 1 : -1
|
||||
endfunction
|
||||
|
||||
" Returns: [opening-bracket-lnum, indent]
|
||||
function! s:clojure_indent_pos()
|
||||
" Get rid of special case.
|
||||
if line(".") == 1
|
||||
return 0
|
||||
return [0, 0]
|
||||
endif
|
||||
|
||||
" We have to apply some heuristics here to figure out, whether to use
|
||||
" normal lisp indenting or not.
|
||||
let i = s:CheckForString()
|
||||
let i = s:check_for_string()
|
||||
if i > -1
|
||||
return i + !!g:clojure_align_multiline_strings
|
||||
return [0, i + !!g:clojure_align_multiline_strings]
|
||||
endif
|
||||
|
||||
call cursor(0, 1)
|
||||
@@ -207,28 +221,28 @@ if exists("*searchpairpos")
|
||||
" Find the next enclosing [ or {. We can limit the second search
|
||||
" to the line, where the [ was found. If no [ was there this is
|
||||
" zero and we search for an enclosing {.
|
||||
let paren = s:MatchPairs('(', ')', 0)
|
||||
let bracket = s:MatchPairs('\[', '\]', paren[0])
|
||||
let curly = s:MatchPairs('{', '}', bracket[0])
|
||||
let paren = s:match_pairs('(', ')', 0)
|
||||
let bracket = s:match_pairs('\[', '\]', paren[0])
|
||||
let curly = s:match_pairs('{', '}', bracket[0])
|
||||
|
||||
" In case the curly brace is on a line later then the [ or - in
|
||||
" case they are on the same line - in a higher column, we take the
|
||||
" curly indent.
|
||||
if curly[0] > bracket[0] || curly[1] > bracket[1]
|
||||
if curly[0] > paren[0] || curly[1] > paren[1]
|
||||
return curly[1]
|
||||
return curly
|
||||
endif
|
||||
endif
|
||||
|
||||
" If the curly was not chosen, we take the bracket indent - if
|
||||
" there was one.
|
||||
if bracket[0] > paren[0] || bracket[1] > paren[1]
|
||||
return bracket[1]
|
||||
return bracket
|
||||
endif
|
||||
|
||||
" There are neither { nor [ nor (, ie. we are at the toplevel.
|
||||
if paren == [0, 0]
|
||||
return 0
|
||||
return paren
|
||||
endif
|
||||
|
||||
" Now we have to reimplement lispindent. This is surprisingly easy, as
|
||||
@@ -246,58 +260,120 @@ if exists("*searchpairpos")
|
||||
" - In any other case we use the column of the end of the word + 2.
|
||||
call cursor(paren)
|
||||
|
||||
if s:IsMethodSpecialCase(paren)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
if s:is_method_special_case(paren)
|
||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
||||
endif
|
||||
|
||||
if s:is_reader_conditional_special_case(paren)
|
||||
return paren
|
||||
endif
|
||||
|
||||
" In case we are at the last character, we use the paren position.
|
||||
if col("$") - 1 == paren[1]
|
||||
return paren[1]
|
||||
return paren
|
||||
endif
|
||||
|
||||
" In case after the paren is a whitespace, we search for the next word.
|
||||
call cursor(0, col('.') + 1)
|
||||
if s:CurrentChar() == ' '
|
||||
if s:current_char() == ' '
|
||||
call search('\v\S', 'W')
|
||||
endif
|
||||
|
||||
" If we moved to another line, there is no word after the (. We
|
||||
" use the ( position for indent.
|
||||
if line(".") > paren[0]
|
||||
return paren[1]
|
||||
return paren
|
||||
endif
|
||||
|
||||
" We still have to check, whether the keyword starts with a (, [ or {.
|
||||
" In that case we use the ( position for indent.
|
||||
let w = s:CurrentWord()
|
||||
if stridx('([{', w[0]) > -1
|
||||
return paren[1]
|
||||
let w = s:current_word()
|
||||
if s:bracket_type(w[0]) == 1
|
||||
return paren
|
||||
endif
|
||||
|
||||
" Test words without namespace qualifiers and leading reader macro
|
||||
" metacharacters.
|
||||
"
|
||||
" e.g. clojure.core/defn and #'defn should both indent like defn.
|
||||
let ww = s:StripNamespaceAndMacroChars(w)
|
||||
let ww = s:strip_namespace_and_macro_chars(w)
|
||||
|
||||
if &lispwords =~# '\V\<' . ww . '\>'
|
||||
return paren[1] + &shiftwidth - 1
|
||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
||||
endif
|
||||
|
||||
if g:clojure_fuzzy_indent
|
||||
\ && !s:MatchesOne(g:clojure_fuzzy_indent_blacklist, ww)
|
||||
\ && s:MatchesOne(g:clojure_fuzzy_indent_patterns, ww)
|
||||
return paren[1] + &shiftwidth - 1
|
||||
\ && !s:match_one(g:clojure_fuzzy_indent_blacklist, ww)
|
||||
\ && s:match_one(g:clojure_fuzzy_indent_patterns, ww)
|
||||
return [paren[0], paren[1] + &shiftwidth - 1]
|
||||
endif
|
||||
|
||||
call search('\v\_s', 'cW')
|
||||
call search('\v\S', 'W')
|
||||
if paren[0] < line(".")
|
||||
return paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)
|
||||
return [paren[0], paren[1] + (g:clojure_align_subforms ? 0 : &shiftwidth - 1)]
|
||||
endif
|
||||
|
||||
call search('\v\S', 'bW')
|
||||
return virtcol(".") + 1
|
||||
return [line('.'), col('.') + 1]
|
||||
endfunction
|
||||
|
||||
function! GetClojureIndent()
|
||||
let lnum = line('.')
|
||||
let orig_lnum = lnum
|
||||
let orig_col = col('.')
|
||||
let [opening_lnum, indent] = s:clojure_indent_pos()
|
||||
|
||||
" Account for multibyte characters
|
||||
if opening_lnum > 0
|
||||
let indent -= indent - virtcol([opening_lnum, indent])
|
||||
endif
|
||||
|
||||
" Return if there are no previous lines to inherit from
|
||||
if opening_lnum < 1 || opening_lnum >= lnum - 1
|
||||
call cursor(orig_lnum, orig_col)
|
||||
return indent
|
||||
endif
|
||||
|
||||
let bracket_count = 0
|
||||
|
||||
" Take the indent of the first previous non-white line that is
|
||||
" at the same sexp level. cf. src/misc1.c:get_lisp_indent()
|
||||
while 1
|
||||
let lnum = prevnonblank(lnum - 1)
|
||||
let col = 1
|
||||
|
||||
if lnum <= opening_lnum
|
||||
break
|
||||
endif
|
||||
|
||||
call cursor(lnum, col)
|
||||
|
||||
" Handle bracket counting edge case
|
||||
if s:is_paren()
|
||||
let bracket_count += s:bracket_type(s:current_char())
|
||||
endif
|
||||
|
||||
while 1
|
||||
if search('\v[(\[{}\])]', '', lnum) < 1
|
||||
break
|
||||
elseif !s:ignored_region()
|
||||
let bracket_count += s:bracket_type(s:current_char())
|
||||
endif
|
||||
endwhile
|
||||
|
||||
if bracket_count == 0
|
||||
" Check if this is part of a multiline string
|
||||
call cursor(lnum, 1)
|
||||
if s:syn_id_name() !~? '\vstring|regex'
|
||||
call cursor(orig_lnum, orig_col)
|
||||
return indent(lnum)
|
||||
endif
|
||||
endif
|
||||
endwhile
|
||||
|
||||
call cursor(orig_lnum, orig_col)
|
||||
return indent
|
||||
endfunction
|
||||
|
||||
setlocal indentexpr=GetClojureIndent()
|
||||
|
||||
+11
-10
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -27,6 +27,7 @@ function! GetCucumberIndent()
|
||||
let line = getline(prevnonblank(v:lnum-1))
|
||||
let cline = getline(v:lnum)
|
||||
let nline = getline(nextnonblank(v:lnum+1))
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
||||
let syn = s:syn(prevnonblank(v:lnum-1))
|
||||
let csyn = s:syn(v:lnum)
|
||||
let nsyn = s:syn(nextnonblank(v:lnum+1))
|
||||
@@ -35,38 +36,38 @@ function! GetCucumberIndent()
|
||||
return 0
|
||||
elseif csyn ==# 'cucumberExamples' || cline =~# '^\s*\%(Examples\|Scenarios\):'
|
||||
" examples heading
|
||||
return 2 * &sw
|
||||
return 2 * sw
|
||||
elseif csyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || cline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
|
||||
" background, scenario or outline heading
|
||||
return &sw
|
||||
return sw
|
||||
elseif syn ==# 'cucumberFeature' || line =~# '^\s*Feature:'
|
||||
" line after feature heading
|
||||
return &sw
|
||||
return sw
|
||||
elseif syn ==# 'cucumberExamples' || line =~# '^\s*\%(Examples\|Scenarios\):'
|
||||
" line after examples heading
|
||||
return 3 * &sw
|
||||
return 3 * sw
|
||||
elseif syn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || line =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):'
|
||||
" line after background, scenario or outline heading
|
||||
return 2 * &sw
|
||||
return 2 * sw
|
||||
elseif cline =~# '^\s*[@#]' && (nsyn == 'cucumberFeature' || nline =~# '^\s*Feature:' || indent(prevnonblank(v:lnum-1)) <= 0)
|
||||
" tag or comment before a feature heading
|
||||
return 0
|
||||
elseif cline =~# '^\s*@'
|
||||
" other tags
|
||||
return &sw
|
||||
return sw
|
||||
elseif cline =~# '^\s*[#|]' && line =~# '^\s*|'
|
||||
" mid-table
|
||||
" preserve indent
|
||||
return indent(prevnonblank(v:lnum-1))
|
||||
elseif cline =~# '^\s*|' && line =~# '^\s*[^|]'
|
||||
" first line of a table, relative indent
|
||||
return indent(prevnonblank(v:lnum-1)) + &sw
|
||||
return indent(prevnonblank(v:lnum-1)) + sw
|
||||
elseif cline =~# '^\s*[^|]' && line =~# '^\s*|'
|
||||
" line after a table, relative unindent
|
||||
return indent(prevnonblank(v:lnum-1)) - &sw
|
||||
return indent(prevnonblank(v:lnum-1)) - sw
|
||||
elseif cline =~# '^\s*#' && getline(v:lnum-1) =~ '^\s*$' && (nsyn =~# '^cucumber\%(Background\|Scenario\|ScenarioOutline\)$' || nline =~# '^\s*\%(Background\|Scenario\|Scenario Outline\):')
|
||||
" comments on scenarios
|
||||
return &sw
|
||||
return sw
|
||||
endif
|
||||
return indent(prevnonblank(v:lnum-1))
|
||||
endfunction
|
||||
|
||||
@@ -19,6 +19,9 @@ else
|
||||
endif
|
||||
unlet! b:did_indent
|
||||
|
||||
" Force HTML indent to not keep state.
|
||||
let b:html_indent_usestate = 0
|
||||
|
||||
if &l:indentexpr == ''
|
||||
if &l:cindent
|
||||
let &l:indentexpr = 'cindent(v:lnum)'
|
||||
@@ -38,7 +41,18 @@ if exists("*GetErubyIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
" this file uses line continuations
|
||||
let s:cpo_sav = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function! GetErubyIndent(...)
|
||||
" The value of a single shift-width
|
||||
if exists('*shiftwidth')
|
||||
let sw = shiftwidth()
|
||||
else
|
||||
let sw = &sw
|
||||
endif
|
||||
|
||||
if a:0 && a:1 == '.'
|
||||
let v:lnum = line('.')
|
||||
elseif a:0 && a:1 =~ '^\d'
|
||||
@@ -52,31 +66,44 @@ function! GetErubyIndent(...)
|
||||
let ind = GetRubyIndent(v:lnum)
|
||||
else
|
||||
exe "let ind = ".b:eruby_subtype_indentexpr
|
||||
|
||||
" Workaround for Andy Wokula's HTML indent. This should be removed after
|
||||
" some time, since the newest version is fixed in a different way.
|
||||
if b:eruby_subtype_indentexpr =~# '^HtmlIndent('
|
||||
\ && exists('b:indent')
|
||||
\ && type(b:indent) == type({})
|
||||
\ && has_key(b:indent, 'lnum')
|
||||
" Force HTML indent to not keep state
|
||||
let b:indent.lnum = -1
|
||||
endif
|
||||
endif
|
||||
let lnum = prevnonblank(v:lnum-1)
|
||||
let line = getline(lnum)
|
||||
let cline = getline(v:lnum)
|
||||
if cline =~# '^\s*<%[-=]\=\s*\%(}\|end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%([-=]\=%>\|$\)'
|
||||
let ind = ind - &sw
|
||||
let ind = ind - sw
|
||||
endif
|
||||
if line =~# '\S\s*<%[-=]\=\s*\%(}\|end\).\{-\}\s*\%([-=]\=%>\|$\)'
|
||||
let ind = ind - &sw
|
||||
let ind = ind - sw
|
||||
endif
|
||||
if line =~# '\%({\|\<do\)\%(\s*|[^|]*|\)\=\s*[-=]\=%>'
|
||||
let ind = ind + &sw
|
||||
let ind = ind + sw
|
||||
elseif line =~# '<%[-=]\=\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>'
|
||||
let ind = ind + &sw
|
||||
let ind = ind + sw
|
||||
endif
|
||||
if line =~# '^\s*<%[=#-]\=\s*$' && cline !~# '^\s*end\>'
|
||||
let ind = ind + &sw
|
||||
let ind = ind + sw
|
||||
endif
|
||||
if line !~# '^\s*<%' && line =~# '%>\s*$'
|
||||
let ind = ind - &sw
|
||||
if line !~# '^\s*<%' && line =~# '%>\s*$' && line !~# '^\s*end\>'
|
||||
let ind = ind - sw
|
||||
endif
|
||||
if cline =~# '^\s*[-=]\=%>\s*$'
|
||||
let ind = ind - &sw
|
||||
let ind = ind - sw
|
||||
endif
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_sav
|
||||
unlet! s:cpo_sav
|
||||
|
||||
" vim:set sw=2 sts=2 ts=8 noet:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Fortran 2008 (and older: Fortran 2003, 95, 90, and 77)
|
||||
" Version: 0.44
|
||||
" Last Change: 2016 Jan. 26
|
||||
" Version: 0.45
|
||||
" Last Change: 2016 Aug. 29
|
||||
" Maintainer: Ajit J. Thakkar <ajit@unb.ca>; <http://www2.unb.ca/~ajit/>
|
||||
" Usage: For instructions, do :help fortran-indent from Vim
|
||||
" Credits:
|
||||
@@ -121,7 +121,7 @@ function FortranGetIndent(lnum)
|
||||
let prefix='\(\(pure\|impure\|elemental\|recursive\)\s\+\)\{,2}'
|
||||
let type='\(\(integer\|real\|double\s\+precision\|complex\|logical'
|
||||
\.'\|character\|type\|class\)\s*\S*\s\+\)\='
|
||||
if prevstat =~? '^\s*\(module\|contains\|program\)\>'
|
||||
if prevstat =~? '^\s*\(module\|contains\/submodule\|program\)\>'
|
||||
\ ||prevstat =~? '^\s*'.prefix.'subroutine\>'
|
||||
\ ||prevstat =~? '^\s*'.prefix.type.'function\>'
|
||||
\ ||prevstat =~? '^\s*'.type.prefix.'function\>'
|
||||
@@ -129,14 +129,14 @@ function FortranGetIndent(lnum)
|
||||
endif
|
||||
if getline(v:lnum) =~? '^\s*contains\>'
|
||||
\ ||getline(v:lnum)=~? '^\s*end\s*'
|
||||
\ .'\(function\|subroutine\|module\|program\)\>'
|
||||
\ .'\(function\|subroutine\|module\/submodule\|program\)\>'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
"Subtract a shiftwidth from else, else if, elsewhere, case, end if,
|
||||
" end where, end select, end forall, end interface, end associate,
|
||||
" end enum, and end type statements
|
||||
" end enum, end type, end block and end type statements
|
||||
if getline(v:lnum) =~? '^\s*\(\d\+\s\)\=\s*'
|
||||
\. '\(else\|else\s*if\|else\s*where\|case\|'
|
||||
\. 'end\s*\(if\|where\|select\|interface\|'
|
||||
@@ -152,9 +152,6 @@ function FortranGetIndent(lnum)
|
||||
if prevstat =~ '&\s*$' && prev2stat !~ '&\s*$'
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
if prevstat =~ '&\s*$' && prevstat =~ '\<else\s*if\>'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
"Line after last continuation line
|
||||
if prevstat !~ '&\s*$' && prev2stat =~ '&\s*$' && prevstat !~? '\<then\>'
|
||||
let ind = ind - shiftwidth()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: git config file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -20,17 +20,18 @@ if exists("*GetGitconfigIndent")
|
||||
endif
|
||||
|
||||
function! GetGitconfigIndent()
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
||||
let line = getline(prevnonblank(v:lnum-1))
|
||||
let cline = getline(v:lnum)
|
||||
if line =~ '\\\@<!\%(\\\\\)*\\$'
|
||||
" odd number of slashes, in a line continuation
|
||||
return 2 * &sw
|
||||
return 2 * sw
|
||||
elseif cline =~ '^\s*\['
|
||||
return 0
|
||||
elseif cline =~ '^\s*\a'
|
||||
return &sw
|
||||
return sw
|
||||
elseif cline == '' && line =~ '^\['
|
||||
return &sw
|
||||
return sw
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Haml
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -37,10 +37,11 @@ function! GetHamlIndent()
|
||||
let line = substitute(line,'^\s\+','','')
|
||||
let indent = indent(lnum)
|
||||
let cindent = indent(v:lnum)
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
||||
if cline =~# '\v^-\s*%(elsif|else|when)>'
|
||||
let indent = cindent < indent ? cindent : indent - &sw
|
||||
let indent = cindent < indent ? cindent : indent - sw
|
||||
endif
|
||||
let increase = indent + &sw
|
||||
let increase = indent + sw
|
||||
if indent == indent(lnum)
|
||||
let indent = cindent <= indent ? -1 : increase
|
||||
endif
|
||||
|
||||
+186
-10
@@ -1,18 +1,194 @@
|
||||
" Vim indent file
|
||||
" Language: Javascript
|
||||
" Maintainer: Going to be Darrick Wiebe
|
||||
" Last Change: 2015 Jun 09
|
||||
" Language: Javascript
|
||||
" Maintainer: Chris Paul ( https://github.com/bounceme )
|
||||
" URL: https://github.com/pangloss/vim-javascript
|
||||
" Last Change: August 25, 2016
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
" C indenting is not too bad.
|
||||
setlocal cindent
|
||||
" Now, set up our indentation expression and keys that trigger it.
|
||||
setlocal indentexpr=GetJavascriptIndent()
|
||||
setlocal nolisp noautoindent nosmartindent
|
||||
setlocal indentkeys=0{,0},0),0],:,!^F,o,O,e
|
||||
setlocal cinoptions+=j1,J1
|
||||
setlocal cinkeys-=0#
|
||||
setlocal cinkeys+=0]
|
||||
|
||||
let b:undo_indent = "setl cin<"
|
||||
let b:undo_indent = 'setlocal indentexpr< smartindent< autoindent< indentkeys< cinoptions<'
|
||||
|
||||
" Only define the function once.
|
||||
if exists('*GetJavascriptIndent')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Get shiftwidth value
|
||||
if exists('*shiftwidth')
|
||||
function s:sw()
|
||||
return shiftwidth()
|
||||
endfunction
|
||||
else
|
||||
function s:sw()
|
||||
return &sw
|
||||
endfunction
|
||||
endif
|
||||
|
||||
let s:line_pre = '^\s*\%(\%(\%(\/\*.\{-}\)\=\*\+\/\s*\)\=\)\@>'
|
||||
let s:expr_case = s:line_pre . '\%(\%(case\>.\+\)\|default\)\s*:'
|
||||
" Regex of syntax group names that are or delimit string or are comments.
|
||||
let s:syng_strcom = '\%(s\%(tring\|pecial\)\|comment\|regex\|doc\|template\)'
|
||||
|
||||
" Regex of syntax group names that are strings or documentation.
|
||||
let s:syng_comment = '\%(comment\|doc\)'
|
||||
|
||||
" Expression used to check whether we should skip a match with searchpair().
|
||||
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),0),'name') =~? '".s:syng_strcom."'"
|
||||
|
||||
if has('reltime')
|
||||
function s:GetPair(start,end,flags,time)
|
||||
return searchpair(a:start,'',a:end,a:flags,s:skip_expr,max([prevnonblank(v:lnum) - 2000,0]),a:time)
|
||||
endfunction
|
||||
else
|
||||
function s:GetPair(start,end,flags,n)
|
||||
return searchpair(a:start,'',a:end,a:flags,0,max([prevnonblank(v:lnum) - 2000,0]))
|
||||
endfunction
|
||||
endif
|
||||
|
||||
let s:line_term = '\s*\%(\%(\/\%(\%(\*.\{-}\*\/\)\|\%(\*\+\)\)\)\s*\)\=$'
|
||||
|
||||
" configurable regexes that define continuation lines, not including (, {, or [.
|
||||
if !exists('g:javascript_opfirst')
|
||||
let g:javascript_opfirst = '\%([<>,:?^%|*&]\|\/[^/*]\|\([-.+]\)\1\@!\|=>\@!\|in\%(stanceof\)\=\>\)'
|
||||
endif
|
||||
if !exists('g:javascript_continuation')
|
||||
let g:javascript_continuation = '\%([<=,.?/*:^%|&]\|+\@<!+\|-\@<!-\|=\@<!>\|\<in\%(stanceof\)\=\)'
|
||||
endif
|
||||
|
||||
let g:javascript_opfirst = s:line_pre . g:javascript_opfirst
|
||||
let g:javascript_continuation .= s:line_term
|
||||
|
||||
function s:OneScope(lnum,text,add)
|
||||
return a:text =~# '\%(\<else\|\<do\|=>\)' . s:line_term ? 'no b' :
|
||||
\ ((a:add && a:text =~ s:line_pre . '$' && search('\%' . s:PrevCodeLine(a:lnum - 1) . 'l.)' . s:line_term)) ||
|
||||
\ cursor(a:lnum, match(a:text, ')' . s:line_term)) > -1) &&
|
||||
\ s:GetPair('(', ')', 'cbW', 100) > 0 && search('\C\l\+\_s*\%#','bW') &&
|
||||
\ (a:add || ((expand('<cword>') !=# 'while' || !s:GetPair('\C\<do\>', '\C\<while\>','nbW',100)) &&
|
||||
\ (expand('<cword>') !=# 'each' || search('\C\<for\_s\+\%#','nbW')))) ? expand('<cword>') : ''
|
||||
endfunction
|
||||
|
||||
" https://github.com/sweet-js/sweet.js/wiki/design#give-lookbehind-to-the-reader
|
||||
function s:IsBlock()
|
||||
return getline(line('.'))[col('.')-1] == '{' && !search(
|
||||
\ '\C\%(\<return\s*\|\%([-=~!<*+,.?^%|&\[(]\|=\@<!>\|\*\@<!\/\|\<\%(var\|const\|let\|import\|export\%(\_s\+default\)\=\|yield\|delete\|void\|t\%(ypeof\|hrow\)\|new\|in\%(stanceof\)\=\)\)\_s*\)\%#','bnW') &&
|
||||
\ (!search(':\_s*\%#','bW') || (!s:GetPair('[({[]','[])}]','bW',200) || s:IsBlock()))
|
||||
endfunction
|
||||
|
||||
" Auxiliary Functions {{{2
|
||||
|
||||
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
|
||||
function s:PrevCodeLine(lnum)
|
||||
let l:lnum = prevnonblank(a:lnum)
|
||||
while l:lnum
|
||||
if synIDattr(synID(l:lnum,matchend(getline(l:lnum), '^\s*[^''"]'),0),'name') !~? s:syng_strcom
|
||||
return l:lnum
|
||||
endif
|
||||
let l:lnum = prevnonblank(l:lnum - 1)
|
||||
endwhile
|
||||
endfunction
|
||||
|
||||
" Check if line 'lnum' has a balanced amount of parentheses.
|
||||
function s:Balanced(lnum)
|
||||
let [open_0,open_2,open_4] = [0,0,0]
|
||||
let l:line = getline(a:lnum)
|
||||
let pos = match(l:line, '[][(){}]', 0)
|
||||
while pos != -1
|
||||
if synIDattr(synID(a:lnum,pos + 1,0),'name') !~? s:syng_strcom
|
||||
let idx = stridx('(){}[]', l:line[pos])
|
||||
if idx % 2 == 0
|
||||
let open_{idx} = open_{idx} + 1
|
||||
else
|
||||
let open_{idx - 1} = open_{idx - 1} - 1
|
||||
endif
|
||||
endif
|
||||
let pos = match(l:line, '[][(){}]', pos + 1)
|
||||
endwhile
|
||||
return (!open_4 + !open_2 + !open_0) - 2
|
||||
endfunction
|
||||
" }}}
|
||||
|
||||
function GetJavascriptIndent()
|
||||
if !exists('b:js_cache')
|
||||
let b:js_cache = [0,0,0]
|
||||
endif
|
||||
" Get the current line.
|
||||
let l:line = getline(v:lnum)
|
||||
let syns = synIDattr(synID(v:lnum, 1, 0), 'name')
|
||||
|
||||
" start with strings,comments,etc.{{{2
|
||||
if (l:line !~ '^[''"`]' && syns =~? '\%(string\|template\)') ||
|
||||
\ (l:line !~ '^\s*[/*]' && syns =~? s:syng_comment)
|
||||
return -1
|
||||
endif
|
||||
if l:line !~ '^\%(\/\*\|\s*\/\/\)' && syns =~? s:syng_comment
|
||||
return cindent(v:lnum)
|
||||
endif
|
||||
let l:lnum = s:PrevCodeLine(v:lnum - 1)
|
||||
if l:lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
if (l:line =~# s:expr_case)
|
||||
let cpo_switch = &cpo
|
||||
set cpo+=%
|
||||
let ind = cindent(v:lnum)
|
||||
let &cpo = cpo_switch
|
||||
return ind
|
||||
endif
|
||||
"}}}
|
||||
|
||||
" the containing paren, bracket, curly. Memoize, last lineNr either has the
|
||||
" same scope or starts a new one, unless if it closed a scope.
|
||||
call cursor(v:lnum,1)
|
||||
if b:js_cache[0] >= l:lnum && b:js_cache[0] < v:lnum && b:js_cache[0] &&
|
||||
\ (b:js_cache[0] > l:lnum || s:Balanced(l:lnum) > 0)
|
||||
let num = b:js_cache[1]
|
||||
elseif syns != '' && l:line[0] =~ '\s'
|
||||
let pattern = syns =~? 'block' ? ['{','}'] : syns =~? 'jsparen' ? ['(',')'] :
|
||||
\ syns =~? 'jsbracket'? ['\[','\]'] : ['[({[]','[])}]']
|
||||
let num = s:GetPair(pattern[0],pattern[1],'bW',2000)
|
||||
else
|
||||
let num = s:GetPair('[({[]','[])}]','bW',2000)
|
||||
endif
|
||||
let b:js_cache = [v:lnum,num,line('.') == v:lnum ? b:js_cache[2] : col('.')]
|
||||
|
||||
if l:line =~ s:line_pre . '[])}]'
|
||||
return indent(num)
|
||||
endif
|
||||
|
||||
call cursor(b:js_cache[1],b:js_cache[2])
|
||||
|
||||
let swcase = getline(l:lnum) =~# s:expr_case
|
||||
let pline = swcase ? getline(l:lnum) : substitute(getline(l:lnum), '\%(:\@<!\/\/.*\)$', '','')
|
||||
let inb = num == 0 || num < l:lnum && ((l:line !~ s:line_pre . ',' && pline !~ ',' . s:line_term) || s:IsBlock())
|
||||
let switch_offset = num == 0 || s:OneScope(num, strpart(getline(num),0,b:js_cache[2] - 1),1) !=# 'switch' ? 0 :
|
||||
\ &cino !~ ':' || !has('float') ? s:sw() :
|
||||
\ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:sw() : 1))
|
||||
|
||||
" most significant, find the indent amount
|
||||
if inb && !swcase && ((l:line =~# g:javascript_opfirst || pline =~# g:javascript_continuation) ||
|
||||
\ num < l:lnum && s:OneScope(l:lnum,pline,0) =~# '\<\%(for\|each\|if\|let\|no\sb\|w\%(hile\|ith\)\)\>' &&
|
||||
\ l:line !~ s:line_pre . '{')
|
||||
return (num > 0 ? indent(num) : -s:sw()) + (s:sw() * 2) + switch_offset
|
||||
elseif num > 0
|
||||
return indent(num) + s:sw() + switch_offset
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Liquid
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
@@ -54,9 +54,10 @@ function! GetLiquidIndent(...)
|
||||
let line = substitute(line,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
||||
let line .= matchstr(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+')
|
||||
let cline = substitute(cline,'\C^\%(\s*{%\s*end\w*\s*%}\)\+','','')
|
||||
let ind += &sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
|
||||
let ind -= &sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
|
||||
let ind -= &sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
|
||||
let ind -= &sw * s:count(cline,'{%\s*end\w*$')
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
||||
let ind += sw * s:count(line,'{%\s*\%(if\|elsif\|else\|unless\|ifchanged\|case\|when\|for\|empty\|tablerow\|capture\)\>')
|
||||
let ind -= sw * s:count(line,'{%\s*end\%(if\|unless\|ifchanged\|case\|for\|tablerow\|capture\)\>')
|
||||
let ind -= sw * s:count(cline,'{%\s*\%(elsif\|else\|when\|empty\)\>')
|
||||
let ind -= sw * s:count(cline,'{%\s*end\w*$')
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
" Language: Rnoweb
|
||||
" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
|
||||
" Homepage: https://github.com/jalvesaq/R-Vim-runtime
|
||||
" Last Change: Tue Apr 07, 2015 04:38PM
|
||||
" Last Change: Fri Apr 15, 2016 10:58PM
|
||||
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
@@ -10,7 +10,17 @@ if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
runtime indent/tex.vim
|
||||
let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
|
||||
|
||||
function! s:NoTeXIndent()
|
||||
return indent(line("."))
|
||||
endfunction
|
||||
|
||||
if &indentexpr == "" || &indentexpr == "GetRnowebIndent()"
|
||||
let s:TeXIndent = function("s:NoTeXIndent")
|
||||
else
|
||||
let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
|
||||
endif
|
||||
|
||||
unlet b:did_indent
|
||||
runtime indent/r.vim
|
||||
let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
|
||||
|
||||
+195
-34
@@ -13,12 +13,23 @@ if exists("b:did_indent")
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
if !exists('g:ruby_indent_access_modifier_style')
|
||||
" Possible values: "normal", "indent", "outdent"
|
||||
let g:ruby_indent_access_modifier_style = 'normal'
|
||||
endif
|
||||
|
||||
if !exists('g:ruby_indent_block_style')
|
||||
" Possible values: "expression", "do"
|
||||
let g:ruby_indent_block_style = 'expression'
|
||||
endif
|
||||
|
||||
setlocal nosmartindent
|
||||
|
||||
" Now, set up our indentation expression and keys that trigger it.
|
||||
setlocal indentexpr=GetRubyIndent(v:lnum)
|
||||
setlocal indentkeys=0{,0},0),0],!^F,o,O,e
|
||||
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:,.
|
||||
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue,==begin,==end
|
||||
setlocal indentkeys+==private,=protected,=public
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetRubyIndent")
|
||||
@@ -34,7 +45,7 @@ set cpo&vim
|
||||
" Regex of syntax group names that are or delimit strings/symbols or are comments.
|
||||
let s:syng_strcom = '\<ruby\%(Regexp\|RegexpDelimiter\|RegexpEscape' .
|
||||
\ '\|Symbol\|String\|StringDelimiter\|StringEscape\|ASCIICode' .
|
||||
\ '\|Interpolation\|NoInterpolation\|Comment\|Documentation\)\>'
|
||||
\ '\|Interpolation\|InterpolationDelimiter\|NoInterpolation\|Comment\|Documentation\)\>'
|
||||
|
||||
" Regex of syntax group names that are strings.
|
||||
let s:syng_string =
|
||||
@@ -49,9 +60,10 @@ let s:skip_expr =
|
||||
\ "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
|
||||
|
||||
" Regex used for words that, at the start of a line, add a level of indent.
|
||||
let s:ruby_indent_keywords = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
|
||||
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure' .
|
||||
\ '\|rescue\):\@!\>' .
|
||||
let s:ruby_indent_keywords =
|
||||
\ '^\s*\zs\<\%(module\|class\|if\|for' .
|
||||
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue' .
|
||||
\ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
|
||||
\ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
|
||||
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'
|
||||
|
||||
@@ -64,7 +76,8 @@ let s:ruby_deindent_keywords =
|
||||
" TODO: the do here should be restricted somewhat (only at end of line)?
|
||||
let s:end_start_regex =
|
||||
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
|
||||
\ '\<\%(module\|class\|def\|if\|for\|while\|until\|case\|unless\|begin\):\@!\>' .
|
||||
\ '\<\%(module\|class\|if\|for\|while\|until\|case\|unless\|begin' .
|
||||
\ '\|\%(public\|protected\|private\)\=\s*def\):\@!\>' .
|
||||
\ '\|\%(^\|[^.:@$]\)\@<=\<do:\@!\>'
|
||||
|
||||
" Regex that defines the middle-match for the 'end' keyword.
|
||||
@@ -82,16 +95,35 @@ let s:end_skip_expr = s:skip_expr .
|
||||
let s:non_bracket_continuation_regex = '\%([\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that defines continuation lines.
|
||||
" TODO: this needs to deal with if ...: and so on
|
||||
let s:continuation_regex =
|
||||
\ '\%(%\@<![({[\\.,:*/%+]\|\<and\|\<or\|\%(<%\)\@<![=-]\|\W[|&?]\|||\|&&\)\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that defines continuable keywords
|
||||
let s:continuable_regex =
|
||||
\ '\C\%(^\s*\|[=,*/%+\-|;{]\|<<\|>>\|:\s\)\s*\zs' .
|
||||
\ '\<\%(if\|for\|while\|until\|unless\):\@!\>'
|
||||
|
||||
" Regex that defines bracket continuations
|
||||
let s:bracket_continuation_regex = '%\@<!\%([({[]\)\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that defines dot continuations
|
||||
let s:dot_continuation_regex = '%\@<!\.\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that defines backslash continuations
|
||||
let s:backslash_continuation_regex = '%\@<!\\\s*$'
|
||||
|
||||
" Regex that defines end of bracket continuation followed by another continuation
|
||||
let s:bracket_switch_continuation_regex = '^\([^(]\+\zs).\+\)\+'.s:continuation_regex
|
||||
|
||||
" Regex that defines the first part of a splat pattern
|
||||
let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that describes all indent access modifiers
|
||||
let s:access_modifier_regex = '\C^\s*\%(public\|protected\|private\)\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that describes the indent access modifiers (excludes public)
|
||||
let s:indent_access_modifier_regex = '\C^\s*\%(protected\|private\)\s*\%(#.*\)\=$'
|
||||
|
||||
" Regex that defines blocks.
|
||||
"
|
||||
" Note that there's a slight problem with this regex and s:continuation_regex.
|
||||
@@ -102,10 +134,13 @@ let s:splat_regex = '[[,(]\s*\*\s*\%(#.*\)\=$'
|
||||
" The reason is that the pipe matches a hanging "|" operator.
|
||||
"
|
||||
let s:block_regex =
|
||||
\ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|\s*(*\s*\%([*@&]\=\h\w*,\=\s*\)\%(,\s*(*\s*[*@&]\=\h\w*\s*)*\s*\)*|\)\=\s*\%(#.*\)\=$'
|
||||
\ '\%(\<do:\@!\>\|%\@<!{\)\s*\%(|[^|]*|\)\=\s*\%(#.*\)\=$'
|
||||
|
||||
let s:block_continuation_regex = '^\s*[^])}\t ].*'.s:block_regex
|
||||
|
||||
" Regex that describes a leading operator (only a method call's dot for now)
|
||||
let s:leading_operator_regex = '^\s*[.]'
|
||||
|
||||
" 2. Auxiliary Functions {{{1
|
||||
" ======================
|
||||
|
||||
@@ -165,7 +200,21 @@ function s:GetMSL(lnum)
|
||||
" Otherwise, terminate search as we have found our MSL already.
|
||||
let line = getline(lnum)
|
||||
|
||||
if s:Match(lnum, s:splat_regex)
|
||||
if !s:Match(msl, s:backslash_continuation_regex) &&
|
||||
\ s:Match(lnum, s:backslash_continuation_regex)
|
||||
" If the current line doesn't end in a backslash, but the previous one
|
||||
" does, look for that line's msl
|
||||
"
|
||||
" Example:
|
||||
" foo = "bar" \
|
||||
" "baz"
|
||||
"
|
||||
let msl = lnum
|
||||
elseif s:Match(msl, s:leading_operator_regex)
|
||||
" If the current line starts with a leading operator, keep its indent
|
||||
" and keep looking for an MSL.
|
||||
let msl = lnum
|
||||
elseif s:Match(lnum, s:splat_regex)
|
||||
" If the above line looks like the "*" of a splat, use the current one's
|
||||
" indentation.
|
||||
"
|
||||
@@ -175,7 +224,7 @@ function s:GetMSL(lnum)
|
||||
" something
|
||||
"
|
||||
return msl
|
||||
elseif s:Match(line, s:non_bracket_continuation_regex) &&
|
||||
elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
|
||||
\ s:Match(msl, s:non_bracket_continuation_regex)
|
||||
" If the current line is a non-bracket continuation and so is the
|
||||
" previous one, keep its indent and continue looking for an MSL.
|
||||
@@ -186,6 +235,18 @@ function s:GetMSL(lnum)
|
||||
" three
|
||||
"
|
||||
let msl = lnum
|
||||
elseif s:Match(lnum, s:dot_continuation_regex) &&
|
||||
\ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
|
||||
" If the current line is a bracket continuation or a block-starter, but
|
||||
" the previous is a dot, keep going to see if the previous line is the
|
||||
" start of another continuation.
|
||||
"
|
||||
" Example:
|
||||
" parent.
|
||||
" method_call {
|
||||
" three
|
||||
"
|
||||
let msl = lnum
|
||||
elseif s:Match(lnum, s:non_bracket_continuation_regex) &&
|
||||
\ (s:Match(msl, s:bracket_continuation_regex) || s:Match(msl, s:block_continuation_regex))
|
||||
" If the current line is a bracket continuation or a block-starter, but
|
||||
@@ -299,18 +360,39 @@ function s:ExtraBrackets(lnum)
|
||||
endfunction
|
||||
|
||||
function s:Match(lnum, regex)
|
||||
let col = match(getline(a:lnum), '\C'.a:regex) + 1
|
||||
return col > 0 && !s:IsInStringOrComment(a:lnum, col) ? col : 0
|
||||
let line = getline(a:lnum)
|
||||
let offset = match(line, '\C'.a:regex)
|
||||
let col = offset + 1
|
||||
|
||||
while offset > -1 && s:IsInStringOrComment(a:lnum, col)
|
||||
let offset = match(line, '\C'.a:regex, offset + 1)
|
||||
let col = offset + 1
|
||||
endwhile
|
||||
|
||||
if offset > -1
|
||||
return col
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function s:MatchLast(lnum, regex)
|
||||
let line = getline(a:lnum)
|
||||
let col = match(line, '.*\zs' . a:regex)
|
||||
while col != -1 && s:IsInStringOrComment(a:lnum, col)
|
||||
let line = strpart(line, 0, col)
|
||||
let col = match(line, '.*' . a:regex)
|
||||
endwhile
|
||||
return col + 1
|
||||
" Locates the containing class/module's definition line, ignoring nested classes
|
||||
" along the way.
|
||||
"
|
||||
function! s:FindContainingClass()
|
||||
let saved_position = getpos('.')
|
||||
|
||||
while searchpair(s:end_start_regex, s:end_middle_regex, s:end_end_regex, 'bW',
|
||||
\ s:end_skip_expr) > 0
|
||||
if expand('<cword>') =~# '\<class\|module\>'
|
||||
let found_lnum = line('.')
|
||||
call setpos('.', saved_position)
|
||||
return found_lnum
|
||||
endif
|
||||
endif
|
||||
|
||||
call setpos('.', saved_position)
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" 3. GetRubyIndent Function {{{1
|
||||
@@ -320,6 +402,13 @@ function GetRubyIndent(...)
|
||||
" 3.1. Setup {{{2
|
||||
" ----------
|
||||
|
||||
" The value of a single shift-width
|
||||
if exists('*shiftwidth')
|
||||
let sw = shiftwidth()
|
||||
else
|
||||
let sw = &sw
|
||||
endif
|
||||
|
||||
" For the current line, use the first argument if given, else v:lnum
|
||||
let clnum = a:0 ? a:1 : v:lnum
|
||||
|
||||
@@ -333,6 +422,24 @@ function GetRubyIndent(...)
|
||||
let line = getline(clnum)
|
||||
let ind = -1
|
||||
|
||||
" If this line is an access modifier keyword, align according to the closest
|
||||
" class declaration.
|
||||
if g:ruby_indent_access_modifier_style == 'indent'
|
||||
if s:Match(clnum, s:access_modifier_regex)
|
||||
let class_line = s:FindContainingClass()
|
||||
if class_line > 0
|
||||
return indent(class_line) + sw
|
||||
endif
|
||||
endif
|
||||
elseif g:ruby_indent_access_modifier_style == 'outdent'
|
||||
if s:Match(clnum, s:access_modifier_regex)
|
||||
let class_line = s:FindContainingClass()
|
||||
if class_line > 0
|
||||
return indent(class_line)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
" If we got a closing bracket on an empty line, find its match and indent
|
||||
" according to it. For parentheses we indent to its column - 1, for the
|
||||
" others we indent to the containing line's MSL's level. Return -1 if fail.
|
||||
@@ -343,7 +450,9 @@ function GetRubyIndent(...)
|
||||
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
|
||||
if line[col-1]==')' && col('.') != col('$') - 1
|
||||
let ind = virtcol('.') - 1
|
||||
else
|
||||
elseif g:ruby_indent_block_style == 'do'
|
||||
let ind = indent(line('.'))
|
||||
else " g:ruby_indent_block_style == 'expression'
|
||||
let ind = indent(s:GetMSL(line('.')))
|
||||
endif
|
||||
endif
|
||||
@@ -366,10 +475,17 @@ function GetRubyIndent(...)
|
||||
|
||||
if strpart(line, 0, col('.') - 1) =~ '=\s*$' &&
|
||||
\ strpart(line, col('.') - 1, 2) !~ 'do'
|
||||
" assignment to case/begin/etc, on the same line, hanging indent
|
||||
let ind = virtcol('.') - 1
|
||||
elseif g:ruby_indent_block_style == 'do'
|
||||
" align to line of the "do", not to the MSL
|
||||
let ind = indent(line('.'))
|
||||
elseif getline(msl) =~ '=\s*\(#.*\)\=$'
|
||||
" in the case of assignment to the MSL, align to the starting line,
|
||||
" not to the MSL
|
||||
let ind = indent(line('.'))
|
||||
else
|
||||
" align to the MSL
|
||||
let ind = indent(msl)
|
||||
endif
|
||||
endif
|
||||
@@ -389,6 +505,11 @@ function GetRubyIndent(...)
|
||||
return 0
|
||||
endif
|
||||
|
||||
" If the current line starts with a leading operator, add a level of indent.
|
||||
if s:Match(clnum, s:leading_operator_regex)
|
||||
return indent(s:GetMSL(clnum)) + sw
|
||||
endif
|
||||
|
||||
" 3.3. Work on the previous line. {{{2
|
||||
" -------------------------------
|
||||
|
||||
@@ -409,14 +530,50 @@ function GetRubyIndent(...)
|
||||
let line = getline(lnum)
|
||||
let ind = indent(lnum)
|
||||
|
||||
if g:ruby_indent_access_modifier_style == 'indent'
|
||||
" If the previous line was a private/protected keyword, add a
|
||||
" level of indent.
|
||||
if s:Match(lnum, s:indent_access_modifier_regex)
|
||||
return indent(lnum) + sw
|
||||
endif
|
||||
elseif g:ruby_indent_access_modifier_style == 'outdent'
|
||||
" If the previous line was a private/protected/public keyword, add
|
||||
" a level of indent, since the keyword has been out-dented.
|
||||
if s:Match(lnum, s:access_modifier_regex)
|
||||
return indent(lnum) + sw
|
||||
endif
|
||||
endif
|
||||
|
||||
if s:Match(lnum, s:continuable_regex) && s:Match(lnum, s:continuation_regex)
|
||||
return indent(s:GetMSL(lnum)) + sw + sw
|
||||
endif
|
||||
|
||||
" If the previous line ended with a block opening, add a level of indent.
|
||||
if s:Match(lnum, s:block_regex)
|
||||
return indent(s:GetMSL(lnum)) + &sw
|
||||
let msl = s:GetMSL(lnum)
|
||||
|
||||
if g:ruby_indent_block_style == 'do'
|
||||
" don't align to the msl, align to the "do"
|
||||
let ind = indent(lnum) + sw
|
||||
elseif getline(msl) =~ '=\s*\(#.*\)\=$'
|
||||
" in the case of assignment to the msl, align to the starting line,
|
||||
" not to the msl
|
||||
let ind = indent(lnum) + sw
|
||||
else
|
||||
let ind = indent(msl) + sw
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
|
||||
" If the previous line started with a leading operator, use its MSL's level
|
||||
" of indent
|
||||
if s:Match(lnum, s:leading_operator_regex)
|
||||
return indent(s:GetMSL(lnum))
|
||||
endif
|
||||
|
||||
" If the previous line ended with the "*" of a splat, add a level of indent
|
||||
if line =~ s:splat_regex
|
||||
return indent(lnum) + &sw
|
||||
return indent(lnum) + sw
|
||||
endif
|
||||
|
||||
" If the previous line contained unclosed opening brackets and we are still
|
||||
@@ -431,22 +588,22 @@ function GetRubyIndent(...)
|
||||
if opening.pos != -1
|
||||
if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
|
||||
if col('.') + 1 == col('$')
|
||||
return ind + &sw
|
||||
return ind + sw
|
||||
else
|
||||
return virtcol('.')
|
||||
endif
|
||||
else
|
||||
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
|
||||
return nonspace > 0 ? nonspace : ind + &sw
|
||||
return nonspace > 0 ? nonspace : ind + sw
|
||||
endif
|
||||
elseif closing.pos != -1
|
||||
call cursor(lnum, closing.pos + 1)
|
||||
normal! %
|
||||
|
||||
if s:Match(line('.'), s:ruby_indent_keywords)
|
||||
return indent('.') + &sw
|
||||
return indent('.') + sw
|
||||
else
|
||||
return indent('.')
|
||||
return indent(s:GetMSL(line('.')))
|
||||
endif
|
||||
else
|
||||
call cursor(clnum, vcol)
|
||||
@@ -473,7 +630,7 @@ function GetRubyIndent(...)
|
||||
let col = s:Match(lnum, s:ruby_indent_keywords)
|
||||
if col > 0
|
||||
call cursor(lnum, col)
|
||||
let ind = virtcol('.') - 1 + &sw
|
||||
let ind = virtcol('.') - 1 + sw
|
||||
" TODO: make this better (we need to count them) (or, if a searchpair
|
||||
" fails, we know that something is lacking an end and thus we indent a
|
||||
" level
|
||||
@@ -490,10 +647,14 @@ function GetRubyIndent(...)
|
||||
let p_lnum = lnum
|
||||
let lnum = s:GetMSL(lnum)
|
||||
|
||||
" If the previous line wasn't a MSL and is continuation return its indent.
|
||||
" TODO: the || s:IsInString() thing worries me a bit.
|
||||
" If the previous line wasn't a MSL.
|
||||
if p_lnum != lnum
|
||||
if s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
|
||||
" If previous line ends bracket and begins non-bracket continuation decrease indent by 1.
|
||||
if s:Match(p_lnum, s:bracket_switch_continuation_regex)
|
||||
return ind - 1
|
||||
" If previous line is a continuation return its indent.
|
||||
" TODO: the || s:IsInString() thing worries me a bit.
|
||||
elseif s:Match(p_lnum, s:non_bracket_continuation_regex) || s:IsInString(p_lnum,strlen(line))
|
||||
return ind
|
||||
endif
|
||||
endif
|
||||
@@ -506,9 +667,9 @@ function GetRubyIndent(...)
|
||||
" TODO: this does not take into account contrived things such as
|
||||
" module Foo; class Bar; end
|
||||
if s:Match(lnum, s:ruby_indent_keywords)
|
||||
let ind = msl_ind + &sw
|
||||
let ind = msl_ind + sw
|
||||
if s:Match(lnum, s:end_end_regex)
|
||||
let ind = ind - &sw
|
||||
let ind = ind - sw
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
@@ -517,7 +678,7 @@ function GetRubyIndent(...)
|
||||
" closing bracket, indent one extra level.
|
||||
if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)')
|
||||
if lnum == p_lnum
|
||||
let ind = msl_ind + &sw
|
||||
let ind = msl_ind + sw
|
||||
else
|
||||
let ind = msl_ind
|
||||
endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Sass
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -29,9 +29,7 @@ function! GetSassIndent()
|
||||
let indent = indent(lnum)
|
||||
let cindent = indent(v:lnum)
|
||||
if line !~ s:property && line !~ s:extend && cline =~ s:property
|
||||
return indent + &sw
|
||||
"elseif line =~ s:property && cline !~ s:property
|
||||
"return indent - &sw
|
||||
return indent + (exists('*shiftwidth') ? shiftwidth() : &sw)
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
|
||||
@@ -0,0 +1,609 @@
|
||||
" Vim indent file
|
||||
" Language: Scala (http://scala-lang.org/)
|
||||
" Original Author: Stefan Matthias Aust
|
||||
" Modifications By: Derek Wyatt
|
||||
" URL: https://github.com/derekwyatt/vim-scala
|
||||
" Last Change: 2016 Aug 26
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=GetScalaIndent()
|
||||
setlocal indentkeys=0{,0},0),!^F,<>>,o,O,e,=case,<CR>
|
||||
|
||||
if exists("*GetScalaIndent")
|
||||
finish
|
||||
endif
|
||||
let s:keepcpo= &cpo
|
||||
set cpo&vim
|
||||
|
||||
let s:defMatcher = '\%(\%(private\|protected\)\%(\[[^\]]*\]\)\?\s\+\|abstract\s\+\|override\s\+\)*\<def\>'
|
||||
let s:funcNameMatcher = '\w\+'
|
||||
let s:typeSpecMatcher = '\%(\s*\[\_[^\]]*\]\)'
|
||||
let s:defArgMatcher = '\%((\_.\{-})\)'
|
||||
let s:returnTypeMatcher = '\%(:\s*\w\+' . s:typeSpecMatcher . '\?\)'
|
||||
let g:fullDefMatcher = '^\s*' . s:defMatcher . '\s\+' . s:funcNameMatcher . '\s*' . s:typeSpecMatcher . '\?\s*' . s:defArgMatcher . '\?\s*' . s:returnTypeMatcher . '\?\s*[={]'
|
||||
|
||||
function! scala#ConditionalConfirm(msg)
|
||||
if 0
|
||||
call confirm(a:msg)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#GetLine(lnum)
|
||||
let line = substitute(getline(a:lnum), '//.*$', '', '')
|
||||
let line = substitute(line, '"\(.\|\\"\)\{-}"', '""', 'g')
|
||||
return line
|
||||
endfunction
|
||||
|
||||
function! scala#CountBrackets(line, openBracket, closedBracket)
|
||||
let line = substitute(a:line, '"\(.\|\\"\)\{-}"', '', 'g')
|
||||
let open = substitute(line, '[^' . a:openBracket . ']', '', 'g')
|
||||
let close = substitute(line, '[^' . a:closedBracket . ']', '', 'g')
|
||||
return strlen(open) - strlen(close)
|
||||
endfunction
|
||||
|
||||
function! scala#CountParens(line)
|
||||
return scala#CountBrackets(a:line, '(', ')')
|
||||
endfunction
|
||||
|
||||
function! scala#CountCurlies(line)
|
||||
return scala#CountBrackets(a:line, '{', '}')
|
||||
endfunction
|
||||
|
||||
function! scala#LineEndsInIncomplete(line)
|
||||
if a:line =~ '[.,]\s*$'
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#LineIsAClosingXML(line)
|
||||
if a:line =~ '^\s*</\w'
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#LineCompletesXML(lnum, line)
|
||||
let savedpos = getpos('.')
|
||||
call setpos('.', [savedpos[0], a:lnum, 0, savedpos[3]])
|
||||
let tag = substitute(a:line, '^.*</\([^>]*\)>.*$', '\1', '')
|
||||
let [lineNum, colnum] = searchpairpos('<' . tag . '>', '', '</' . tag . '>', 'Wbn')
|
||||
call setpos('.', savedpos)
|
||||
let pline = scala#GetLine(prevnonblank(lineNum - 1))
|
||||
if pline =~ '=\s*$'
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#IsParentCase()
|
||||
let savedpos = getpos('.')
|
||||
call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
|
||||
let [l, c] = searchpos('^\s*\%(' . s:defMatcher . '\|\%(\<case\>\)\)', 'bnW')
|
||||
let retvalue = -1
|
||||
if l != 0 && search('\%' . l . 'l\s*\<case\>', 'bnW')
|
||||
let retvalue = l
|
||||
endif
|
||||
call setpos('.', savedpos)
|
||||
return retvalue
|
||||
endfunction
|
||||
|
||||
function! scala#CurlyMatcher()
|
||||
let matchline = scala#GetLineThatMatchesBracket('{', '}')
|
||||
if scala#CountParens(scala#GetLine(matchline)) < 0
|
||||
let savedpos = getpos('.')
|
||||
call setpos('.', [savedpos[0], matchline, 9999, savedpos[3]])
|
||||
call searchpos('{', 'Wbc')
|
||||
call searchpos(')', 'Wb')
|
||||
let [lnum, colnum] = searchpairpos('(', '', ')', 'Wbn')
|
||||
call setpos('.', savedpos)
|
||||
let line = scala#GetLine(lnum)
|
||||
if line =~ '^\s*' . s:defMatcher
|
||||
return lnum
|
||||
else
|
||||
return matchline
|
||||
endif
|
||||
else
|
||||
return matchline
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#GetLineAndColumnThatMatchesCurly()
|
||||
return scala#GetLineAndColumnThatMatchesBracket('{', '}')
|
||||
endfunction
|
||||
|
||||
function! scala#GetLineAndColumnThatMatchesParen()
|
||||
return scala#GetLineAndColumnThatMatchesBracket('(', ')')
|
||||
endfunction
|
||||
|
||||
function! scala#GetLineAndColumnThatMatchesBracket(openBracket, closedBracket)
|
||||
let savedpos = getpos('.')
|
||||
let curline = scala#GetLine(line('.'))
|
||||
if curline =~ a:closedBracket . '.*' . a:openBracket . '.*' . a:closedBracket
|
||||
call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]])
|
||||
call searchpos(a:closedBracket . '\ze[^' . a:closedBracket . a:openBracket . ']*' . a:openBracket, 'W')
|
||||
else
|
||||
call setpos('.', [savedpos[0], savedpos[1], 9999, savedpos[3]])
|
||||
call searchpos(a:closedBracket, 'Wbc')
|
||||
endif
|
||||
let [lnum, colnum] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
|
||||
call setpos('.', savedpos)
|
||||
return [lnum, colnum]
|
||||
endfunction
|
||||
|
||||
function! scala#GetLineThatMatchesCurly()
|
||||
return scala#GetLineThatMatchesBracket('{', '}')
|
||||
endfunction
|
||||
|
||||
function! scala#GetLineThatMatchesParen()
|
||||
return scala#GetLineThatMatchesBracket('(', ')')
|
||||
endfunction
|
||||
|
||||
function! scala#GetLineThatMatchesBracket(openBracket, closedBracket)
|
||||
let [lnum, colnum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
|
||||
return lnum
|
||||
endfunction
|
||||
|
||||
function! scala#NumberOfBraceGroups(line)
|
||||
let line = substitute(a:line, '[^()]', '', 'g')
|
||||
if strlen(line) == 0
|
||||
return 0
|
||||
endif
|
||||
let line = substitute(line, '^)*', '', 'g')
|
||||
if strlen(line) == 0
|
||||
return 0
|
||||
endif
|
||||
let line = substitute(line, '^(', '', 'g')
|
||||
if strlen(line) == 0
|
||||
return 0
|
||||
endif
|
||||
let c = 1
|
||||
let counter = 0
|
||||
let groupCount = 0
|
||||
while counter < strlen(line)
|
||||
let char = strpart(line, counter, 1)
|
||||
if char == '('
|
||||
let c = c + 1
|
||||
elseif char == ')'
|
||||
let c = c - 1
|
||||
endif
|
||||
if c == 0
|
||||
let groupCount = groupCount + 1
|
||||
endif
|
||||
let counter = counter + 1
|
||||
endwhile
|
||||
return groupCount
|
||||
endfunction
|
||||
|
||||
function! scala#MatchesIncompleteDefValr(line)
|
||||
if a:line =~ '^\s*\%(' . s:defMatcher . '\|\<va[lr]\>\).*[=({]\s*$'
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#LineIsCompleteIf(line)
|
||||
if scala#CountBrackets(a:line, '{', '}') == 0 &&
|
||||
\ scala#CountBrackets(a:line, '(', ')') == 0 &&
|
||||
\ a:line =~ '^\s*\<if\>\s*([^)]*)\s*\S.*$'
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#LineCompletesIfElse(lnum, line)
|
||||
if a:line =~ '^\s*\%(\<if\>\|\%(}\s*\)\?\<else\>\)'
|
||||
return 0
|
||||
endif
|
||||
let result = search('^\%(\s*\<if\>\s*(.*).*\n\|\s*\<if\>\s*(.*)\s*\n.*\n\)\%(\s*\<else\>\s*\<if\>\s*(.*)\s*\n.*\n\)*\%(\s*\<else\>\s*\n\|\s*\<else\>[^{]*\n\)\?\%' . a:lnum . 'l', 'Wbn')
|
||||
if result != 0 && scala#GetLine(prevnonblank(a:lnum - 1)) !~ '{\s*$'
|
||||
return result
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! scala#GetPrevCodeLine(lnum)
|
||||
" This needs to skip comment lines
|
||||
return prevnonblank(a:lnum - 1)
|
||||
endfunction
|
||||
|
||||
function! scala#InvertBracketType(openBracket, closedBracket)
|
||||
if a:openBracket == '('
|
||||
return [ '{', '}' ]
|
||||
else
|
||||
return [ '(', ')' ]
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#Testhelper(lnum, line, openBracket, closedBracket, iteration)
|
||||
let bracketCount = scala#CountBrackets(a:line, a:openBracket, a:closedBracket)
|
||||
" There are more '}' braces than '{' on this line so it may be completing the function definition
|
||||
if bracketCount < 0
|
||||
let [matchedLNum, matchedColNum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket)
|
||||
if matchedLNum == a:lnum
|
||||
return -1
|
||||
endif
|
||||
let matchedLine = scala#GetLine(matchedLNum)
|
||||
if ! scala#MatchesIncompleteDefValr(matchedLine)
|
||||
let bracketLine = substitute(substitute(matchedLine, '\%' . matchedColNum . 'c.*$', '', ''), '[^{}()]', '', 'g')
|
||||
if bracketLine =~ '}$'
|
||||
return scala#Testhelper(matchedLNum, matchedLine, '{', '}', a:iteration + 1)
|
||||
elseif bracketLine =~ ')$'
|
||||
return scala#Testhelper(matchedLNum, matchedLine, '(', ')', a:iteration + 1)
|
||||
else
|
||||
let prevCodeLNum = scala#GetPrevCodeLine(matchedLNum)
|
||||
if scala#MatchesIncompleteDefValr(scala#GetLine(prevCodeLNum))
|
||||
return prevCodeLNum
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
endif
|
||||
else
|
||||
" return indent value instead
|
||||
return matchedLNum
|
||||
endif
|
||||
" There's an equal number of '{' and '}' on this line so it may be a single line function definition
|
||||
elseif bracketCount == 0
|
||||
if a:iteration == 0
|
||||
let otherBracketType = scala#InvertBracketType(a:openBracket, a:closedBracket)
|
||||
return scala#Testhelper(a:lnum, a:line, otherBracketType[0], otherBracketType[1], a:iteration + 1)
|
||||
else
|
||||
let prevCodeLNum = scala#GetPrevCodeLine(a:lnum)
|
||||
let prevCodeLine = scala#GetLine(prevCodeLNum)
|
||||
if scala#MatchesIncompleteDefValr(prevCodeLine) && prevCodeLine !~ '{\s*$'
|
||||
return prevCodeLNum
|
||||
else
|
||||
let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
|
||||
if possibleIfElse != 0
|
||||
let defValrLine = prevnonblank(possibleIfElse - 1)
|
||||
let possibleDefValr = scala#GetLine(defValrLine)
|
||||
if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
|
||||
return possibleDefValr
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#Test(lnum, line, openBracket, closedBracket)
|
||||
return scala#Testhelper(a:lnum, a:line, a:openBracket, a:closedBracket, 0)
|
||||
endfunction
|
||||
|
||||
function! scala#LineCompletesDefValr(lnum, line)
|
||||
let bracketCount = scala#CountBrackets(a:line, '{', '}')
|
||||
if bracketCount < 0
|
||||
let matchedBracket = scala#GetLineThatMatchesBracket('{', '}')
|
||||
if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
|
||||
let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
|
||||
if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
elseif bracketCount == 0
|
||||
let bracketCount = scala#CountBrackets(a:line, '(', ')')
|
||||
if bracketCount < 0
|
||||
let matchedBracket = scala#GetLineThatMatchesBracket('(', ')')
|
||||
if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket))
|
||||
let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1))
|
||||
if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
elseif bracketCount == 0
|
||||
let possibleDefValr = scala#GetLine(prevnonblank(a:lnum - 1))
|
||||
if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
|
||||
return 1
|
||||
else
|
||||
let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line)
|
||||
if possibleIfElse != 0
|
||||
let possibleDefValr = scala#GetLine(prevnonblank(possibleIfElse - 1))
|
||||
if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$'
|
||||
return 2
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endif
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! scala#SpecificLineCompletesBrackets(lnum, openBracket, closedBracket)
|
||||
let savedpos = getpos('.')
|
||||
call setpos('.', [savedpos[0], a:lnum, 9999, savedpos[3]])
|
||||
let retv = scala#LineCompletesBrackets(a:openBracket, a:closedBracket)
|
||||
call setpos('.', savedpos)
|
||||
|
||||
return retv
|
||||
endfunction
|
||||
|
||||
function! scala#LineCompletesBrackets(openBracket, closedBracket)
|
||||
let savedpos = getpos('.')
|
||||
let offline = 0
|
||||
while offline == 0
|
||||
let [lnum, colnum] = searchpos(a:closedBracket, 'Wb')
|
||||
let [lnumA, colnumA] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn')
|
||||
if lnum != lnumA
|
||||
let [lnumB, colnumB] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbnr')
|
||||
let offline = 1
|
||||
endif
|
||||
endwhile
|
||||
call setpos('.', savedpos)
|
||||
if lnumA == lnumB && colnumA == colnumB
|
||||
return lnumA
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! GetScalaIndent()
|
||||
" Find a non-blank line above the current line.
|
||||
let prevlnum = prevnonblank(v:lnum - 1)
|
||||
|
||||
" Hit the start of the file, use zero indent.
|
||||
if prevlnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let ind = indent(prevlnum)
|
||||
let originalIndentValue = ind
|
||||
let prevline = scala#GetLine(prevlnum)
|
||||
let curlnum = v:lnum
|
||||
let curline = scala#GetLine(curlnum)
|
||||
if get(g:, 'scala_scaladoc_indent', 0)
|
||||
let star_indent = 2
|
||||
else
|
||||
let star_indent = 1
|
||||
end
|
||||
|
||||
if prevline =~ '^\s*/\*\*'
|
||||
if prevline =~ '\*/\s*$'
|
||||
return ind
|
||||
else
|
||||
return ind + star_indent
|
||||
endif
|
||||
endif
|
||||
|
||||
if curline =~ '^\s*\*'
|
||||
return cindent(curlnum)
|
||||
endif
|
||||
|
||||
" If this line starts with a { then make it indent the same as the previous line
|
||||
if curline =~ '^\s*{'
|
||||
call scala#ConditionalConfirm("1")
|
||||
" Unless, of course, the previous one is a { as well
|
||||
if prevline !~ '^\s*{'
|
||||
call scala#ConditionalConfirm("2")
|
||||
return indent(prevlnum)
|
||||
endif
|
||||
endif
|
||||
|
||||
" '.' continuations
|
||||
if curline =~ '^\s*\.'
|
||||
if prevline =~ '^\s*\.'
|
||||
return ind
|
||||
else
|
||||
return ind + &shiftwidth
|
||||
endif
|
||||
endif
|
||||
|
||||
" Indent html literals
|
||||
if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$'
|
||||
call scala#ConditionalConfirm("3")
|
||||
return ind + &shiftwidth
|
||||
endif
|
||||
|
||||
" assumes curly braces around try-block
|
||||
if curline =~ '^\s*}\s*\<catch\>'
|
||||
return ind - &shiftwidth
|
||||
elseif curline =~ '^\s*\<catch\>'
|
||||
return ind
|
||||
endif
|
||||
|
||||
" Add a 'shiftwidth' after lines that start a block
|
||||
" If 'if', 'for' or 'while' end with ), this is a one-line block
|
||||
" If 'val', 'var', 'def' end with =, this is a one-line block
|
||||
if (prevline =~ '^\s*\<\%(\%(}\?\s*else\s\+\)\?if\|for\|while\)\>.*[)=]\s*$' && scala#NumberOfBraceGroups(prevline) <= 1)
|
||||
\ || prevline =~ '^\s*' . s:defMatcher . '.*=\s*$'
|
||||
\ || prevline =~ '^\s*\<va[lr]\>.*[=]\s*$'
|
||||
\ || prevline =~ '^\s*\%(}\s*\)\?\<else\>\s*$'
|
||||
\ || prevline =~ '=\s*$'
|
||||
call scala#ConditionalConfirm("4")
|
||||
let ind = ind + &shiftwidth
|
||||
elseif prevline =~ '^\s*\<\%(}\?\s*else\s\+\)\?if\>' && curline =~ '^\s*}\?\s*\<else\>'
|
||||
return ind
|
||||
endif
|
||||
|
||||
let lineCompletedBrackets = 0
|
||||
let bracketCount = scala#CountBrackets(prevline, '{', '}')
|
||||
if bracketCount > 0 || prevline =~ '.*{\s*$'
|
||||
call scala#ConditionalConfirm("5b")
|
||||
let ind = ind + &shiftwidth
|
||||
elseif bracketCount < 0
|
||||
call scala#ConditionalConfirm("6b")
|
||||
" if the closing brace actually completes the braces entirely, then we
|
||||
" have to indent to line that started the whole thing
|
||||
let completeLine = scala#LineCompletesBrackets('{', '}')
|
||||
if completeLine != -1
|
||||
call scala#ConditionalConfirm("8b")
|
||||
let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
|
||||
" However, what actually started this part looks like it was a function
|
||||
" definition, so we need to indent to that line instead. This is
|
||||
" actually pretty weak at the moment.
|
||||
if prevCompleteLine =~ '=\s*$'
|
||||
call scala#ConditionalConfirm("9b")
|
||||
let ind = indent(prevnonblank(completeLine - 1))
|
||||
else
|
||||
call scala#ConditionalConfirm("10b")
|
||||
let ind = indent(completeLine)
|
||||
endif
|
||||
else
|
||||
let lineCompletedBrackets = 1
|
||||
endif
|
||||
endif
|
||||
|
||||
if ind == originalIndentValue
|
||||
let bracketCount = scala#CountBrackets(prevline, '(', ')')
|
||||
if bracketCount > 0 || prevline =~ '.*(\s*$'
|
||||
call scala#ConditionalConfirm("5a")
|
||||
let ind = ind + &shiftwidth
|
||||
elseif bracketCount < 0
|
||||
call scala#ConditionalConfirm("6a")
|
||||
" if the closing brace actually completes the braces entirely, then we
|
||||
" have to indent to line that started the whole thing
|
||||
let completeLine = scala#LineCompletesBrackets('(', ')')
|
||||
if completeLine != -1 && prevline !~ '^.*{\s*$'
|
||||
call scala#ConditionalConfirm("8a")
|
||||
let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1))
|
||||
" However, what actually started this part looks like it was a function
|
||||
" definition, so we need to indent to that line instead. This is
|
||||
" actually pretty weak at the moment.
|
||||
if prevCompleteLine =~ '=\s*$'
|
||||
call scala#ConditionalConfirm("9a")
|
||||
let ind = indent(prevnonblank(completeLine - 1))
|
||||
else
|
||||
call scala#ConditionalConfirm("10a")
|
||||
let ind = indent(completeLine)
|
||||
endif
|
||||
else
|
||||
" This is the only part that's different from from the '{', '}' one below
|
||||
" Yup... some refactoring is necessary at some point.
|
||||
let ind = ind + (bracketCount * &shiftwidth)
|
||||
let lineCompletedBrackets = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if curline =~ '^\s*}\?\s*\<else\>\%(\s\+\<if\>\s*(.*)\)\?\s*{\?\s*$' &&
|
||||
\ ! scala#LineIsCompleteIf(prevline) &&
|
||||
\ prevline !~ '^.*}\s*$'
|
||||
let ind = ind - &shiftwidth
|
||||
endif
|
||||
|
||||
" Subtract a 'shiftwidth' on '}' or html
|
||||
let curCurlyCount = scala#CountCurlies(curline)
|
||||
if curCurlyCount < 0
|
||||
call scala#ConditionalConfirm("14a")
|
||||
let matchline = scala#CurlyMatcher()
|
||||
return indent(matchline)
|
||||
elseif curline =~ '^\s*</[a-zA-Z][^>]*>'
|
||||
call scala#ConditionalConfirm("14c")
|
||||
return ind - &shiftwidth
|
||||
endif
|
||||
|
||||
let prevParenCount = scala#CountParens(prevline)
|
||||
if prevline =~ '^\s*\<for\>.*$' && prevParenCount > 0
|
||||
call scala#ConditionalConfirm("15")
|
||||
let ind = indent(prevlnum) + 5
|
||||
endif
|
||||
|
||||
let prevCurlyCount = scala#CountCurlies(prevline)
|
||||
if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>'
|
||||
call scala#ConditionalConfirm("16")
|
||||
let ind = ind + &shiftwidth
|
||||
endif
|
||||
|
||||
if ind == originalIndentValue && curline =~ '^\s*\<case\>'
|
||||
call scala#ConditionalConfirm("17")
|
||||
let parentCase = scala#IsParentCase()
|
||||
if parentCase != -1
|
||||
call scala#ConditionalConfirm("17a")
|
||||
return indent(parentCase)
|
||||
endif
|
||||
endif
|
||||
|
||||
if prevline =~ '^\s*\*/'
|
||||
\ || prevline =~ '*/\s*$'
|
||||
call scala#ConditionalConfirm("18")
|
||||
let ind = ind - star_indent
|
||||
endif
|
||||
|
||||
if scala#LineEndsInIncomplete(prevline)
|
||||
call scala#ConditionalConfirm("19")
|
||||
return ind
|
||||
endif
|
||||
|
||||
if scala#LineIsAClosingXML(prevline)
|
||||
if scala#LineCompletesXML(prevlnum, prevline)
|
||||
call scala#ConditionalConfirm("20a")
|
||||
return ind - &shiftwidth
|
||||
else
|
||||
call scala#ConditionalConfirm("20b")
|
||||
return ind
|
||||
endif
|
||||
endif
|
||||
|
||||
if ind == originalIndentValue
|
||||
"let indentMultiplier = scala#LineCompletesDefValr(prevlnum, prevline)
|
||||
"if indentMultiplier != 0
|
||||
" call scala#ConditionalConfirm("19a")
|
||||
" let ind = ind - (indentMultiplier * &shiftwidth)
|
||||
let defValrLine = scala#Test(prevlnum, prevline, '{', '}')
|
||||
if defValrLine != -1
|
||||
call scala#ConditionalConfirm("21a")
|
||||
let ind = indent(defValrLine)
|
||||
elseif lineCompletedBrackets == 0
|
||||
call scala#ConditionalConfirm("21b")
|
||||
if scala#GetLine(prevnonblank(prevlnum - 1)) =~ '^.*\<else\>\s*\%(//.*\)\?$'
|
||||
call scala#ConditionalConfirm("21c")
|
||||
let ind = ind - &shiftwidth
|
||||
elseif scala#LineCompletesIfElse(prevlnum, prevline)
|
||||
call scala#ConditionalConfirm("21d")
|
||||
let ind = ind - &shiftwidth
|
||||
elseif scala#CountParens(curline) < 0 && curline =~ '^\s*)' && scala#GetLine(scala#GetLineThatMatchesBracket('(', ')')) =~ '.*(\s*$'
|
||||
" Handles situations that look like this:
|
||||
"
|
||||
" val a = func(
|
||||
" 10
|
||||
" )
|
||||
"
|
||||
" or
|
||||
"
|
||||
" val a = func(
|
||||
" 10
|
||||
" ).somethingHere()
|
||||
call scala#ConditionalConfirm("21e")
|
||||
let ind = ind - &shiftwidth
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
call scala#ConditionalConfirm("returning " . ind)
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
let &cpo = s:keepcpo
|
||||
unlet s:keepcpo
|
||||
|
||||
" vim:set sw=2 sts=2 ts=8 et:
|
||||
" vim600:fdm=marker fdl=1 fdc=0:
|
||||
+21
-1
@@ -3,9 +3,15 @@
|
||||
" Maintainer: Christian Brabandt <cb@256bit.org>
|
||||
" Previous Maintainer: Peter Aronoff <telemachus@arpinum.org>
|
||||
" Original Author: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2016-02-15
|
||||
" Latest Revision: 2016-06-27
|
||||
" License: Vim (see :h license)
|
||||
" Repository: https://github.com/chrisbra/vim-sh-indent
|
||||
" Changelog:
|
||||
" 20160627: - detect heredocs correctly
|
||||
" 20160213: - detect function definition correctly
|
||||
" 20160202: - use shiftwidth() function
|
||||
" 20151215: - set b:undo_indent variable
|
||||
" 20150728: - add foreach detection for zsh
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -102,6 +108,8 @@ function! GetShIndent()
|
||||
endif
|
||||
elseif s:is_case_break(line)
|
||||
let ind -= s:indent_value('case-breaks')
|
||||
elseif s:is_here_doc(line)
|
||||
let ind = 0
|
||||
endif
|
||||
|
||||
return ind
|
||||
@@ -160,6 +168,14 @@ function! s:is_case_break(line)
|
||||
return a:line =~ '^\s*;[;&]'
|
||||
endfunction
|
||||
|
||||
function! s:is_here_doc(line)
|
||||
if a:line =~ '^\w\+$'
|
||||
let here_pat = '<<-\?'. s:escape(a:line). '\$'
|
||||
return search(here_pat, 'bnW') > 0
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
function! s:is_case_ended(line)
|
||||
return s:is_case_break(a:line) || a:line =~ ';[;&]\s*\%(#.*\)\=$'
|
||||
endfunction
|
||||
@@ -172,5 +188,9 @@ function! s:is_case_empty(line)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:escape(pattern)
|
||||
return '\V'. escape(a:pattern, '\\')
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
" Vim indent file
|
||||
" Language: Tera Term Language (TTL)
|
||||
" Based on Tera Term Version 4.86
|
||||
" Based on Tera Term Version 4.92
|
||||
" Maintainer: Ken Takata
|
||||
" URL: https://github.com/k-takata/vim-teraterm
|
||||
" Last Change: 2015 Jun 4
|
||||
" Last Change: 2016 Aug 17
|
||||
" Filenames: *.ttl
|
||||
" License: VIM License
|
||||
|
||||
@@ -25,9 +25,7 @@ endif
|
||||
" The shiftwidth() function is relatively new.
|
||||
" Don't require it to exist.
|
||||
if exists('*shiftwidth')
|
||||
function s:sw() abort
|
||||
return shiftwidth()
|
||||
endfunction
|
||||
let s:sw = function('shiftwidth')
|
||||
else
|
||||
function s:sw() abort
|
||||
return &shiftwidth
|
||||
@@ -48,7 +46,7 @@ function! GetTeraTermIndent(lnum)
|
||||
|
||||
let l:ind = l:previ
|
||||
|
||||
if l:prevl =~ '^\s*if\>.*\<then\s*$'
|
||||
if l:prevl =~ '^\s*if\>.*\<then\>'
|
||||
" previous line opened a block
|
||||
let l:ind += s:sw()
|
||||
endif
|
||||
|
||||
+16
-5
@@ -1,8 +1,8 @@
|
||||
" VHDL indent ('93 syntax)
|
||||
" Language: VHDL
|
||||
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
|
||||
" Version: 1.58
|
||||
" Last Change: 2011 Sep 27
|
||||
" Version: 1.60
|
||||
" Last Change: 2016 Feb 26
|
||||
" URL: http://www.vim.org/scripts/script.php?script_id=1450
|
||||
|
||||
" only load this indent file when no other was loaded
|
||||
@@ -104,7 +104,7 @@ function GetVHDLindent()
|
||||
let pn = prevnonblank(pn - 1)
|
||||
let ps = getline(pn)
|
||||
endwhile
|
||||
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
|
||||
if (curs =~ '^\s*)' || curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*\((.*)\)*\s*\%(=>\s*\S\+\|:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\s\+\)\)') && (prevs =~? s:NC.'\<\%(procedure\s\+\S\+\|generic\|map\|port\)\s*(\%(\s*\w\)\=' || (ps =~? s:NC.'\<\%(procedure\|generic\|map\|port\)'.s:ES && prevs =~ '^\s*('))
|
||||
" align closing ")" with opening "("
|
||||
if curs =~ '^\s*)'
|
||||
return ind2 + stridx(prevs_noi, '(')
|
||||
@@ -412,11 +412,22 @@ function GetVHDLindent()
|
||||
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + "in", "out", "inout", "buffer", "linkage", variable & ":="
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=]\@=\s*\%(\%(in\|out\|inout\|buffer\|linkage\)\>\|\w\+\s\+:=\)'
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
return ind2
|
||||
endif
|
||||
" ****************************************************************************************
|
||||
" indent: maintain indent of previous opening statement, corner case which
|
||||
" does not end in ;, but is part of a mapping
|
||||
" keywords: without "procedure", "generic", "map", "port" + ":" but not ":=", never + ;$ and
|
||||
" prevline without "procedure", "generic", "map", "port" + ":" but not ":=" + eventually ;$
|
||||
" where: start of current line
|
||||
if curs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*[^;].*$'
|
||||
if prevs =~? '^\s*\%(\<\%(procedure\|generic\|map\|port\)\>.*\)\@<!\w\+\s*\w*\s*:[^=].*;.*$'
|
||||
return ind2
|
||||
endif
|
||||
endif
|
||||
|
||||
" return leftover filtered indent
|
||||
return ind
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim indent file
|
||||
" Language: Vim script
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2016 Apr 19
|
||||
" Last Change: 2016 Jun 27
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
@@ -60,7 +60,7 @@ function GetVimIndentIntern()
|
||||
else
|
||||
let ind = ind + shiftwidth() * 3
|
||||
endif
|
||||
elseif prev_text =~ '^\s*aug\%[roup]' && prev_text !~ '^\s*aug\%[roup]\s*!\=\s\+[eE][nN][dD]'
|
||||
elseif prev_text =~ '^\s*aug\%[roup]\s\+' && prev_text !~ '^\s*aug\%[roup]\s\+[eE][nN][dD]\>'
|
||||
let ind = ind + shiftwidth()
|
||||
else
|
||||
" A line starting with :au does not increment/decrement indent.
|
||||
@@ -89,7 +89,7 @@ function GetVimIndentIntern()
|
||||
|
||||
" Subtract a 'shiftwidth' on a :endif, :endwhile, :catch, :finally, :endtry,
|
||||
" :endfun, :else and :augroup END.
|
||||
if cur_text =~ '^\s*\(ene\@!\|cat\|fina\|el\|aug\%[roup]\s*!\=\s\+[eE][nN][dD]\)'
|
||||
if cur_text =~ '^\s*\(ene\@!\|cat\|fina\|el\|aug\%[roup]\s\+[eE][nN][dD]\)'
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
|
||||
|
||||
+30
-5
@@ -37,7 +37,7 @@ function s:FindPrevLessIndentedLine(lnum, ...)
|
||||
let curindent = a:0 ? a:1 : indent(a:lnum)
|
||||
while prevlnum
|
||||
\&& indent(prevlnum) >= curindent
|
||||
\&& getline(prevlnum) !~# '^\s*#'
|
||||
\&& getline(prevlnum) =~# '^\s*#'
|
||||
let prevlnum = prevnonblank(prevlnum-1)
|
||||
endwhile
|
||||
return prevlnum
|
||||
@@ -51,11 +51,33 @@ function s:FindPrevLEIndentedLineMatchingRegex(lnum, regex)
|
||||
return plilnum
|
||||
endfunction
|
||||
|
||||
let s:mapkeyregex='\v^\s*%(\''%([^'']|'''')*\'''.
|
||||
\ '|\"%([^"\\]|\\.)*\"'.
|
||||
\ '|%(%(\:\ )@!.)*)\:%(\ |$)'
|
||||
let s:mapkeyregex='\v^\s*\#@!\S@=%(\''%([^'']|\''\'')*\'''.
|
||||
\ '|\"%([^"\\]|\\.)*\"'.
|
||||
\ '|%(%(\:\ )@!.)*)\:%(\ |$)'
|
||||
let s:liststartregex='\v^\s*%(\-%(\ |$))'
|
||||
|
||||
let s:c_ns_anchor_char = '\v%([\n\r\uFEFF \t,[\]{}]@!\p)'
|
||||
let s:c_ns_anchor_name = s:c_ns_anchor_char.'+'
|
||||
let s:c_ns_anchor_property = '\v\&'.s:c_ns_anchor_name
|
||||
|
||||
let s:ns_word_char = '\v[[:alnum:]_\-]'
|
||||
let s:ns_tag_char = '\v%(%\x\x|'.s:ns_word_char.'|[#/;?:@&=+$.~*''()])'
|
||||
let s:c_named_tag_handle = '\v\!'.s:ns_word_char.'+\!'
|
||||
let s:c_secondary_tag_handle = '\v\!\!'
|
||||
let s:c_primary_tag_handle = '\v\!'
|
||||
let s:c_tag_handle = '\v%('.s:c_named_tag_handle.
|
||||
\ '|'.s:c_secondary_tag_handle.
|
||||
\ '|'.s:c_primary_tag_handle.')'
|
||||
let s:c_ns_shorthand_tag = '\v'.s:c_tag_handle . s:ns_tag_char.'+'
|
||||
let s:c_non_specific_tag = '\v\!'
|
||||
let s:ns_uri_char = '\v%(%\x\x|'.s:ns_word_char.'\v|[#/;?:@&=+$,.!~*''()[\]])'
|
||||
let s:c_verbatim_tag = '\v\!\<'.s:ns_uri_char.'+\>'
|
||||
let s:c_ns_tag_property = '\v'.s:c_verbatim_tag.
|
||||
\ '\v|'.s:c_ns_shorthand_tag.
|
||||
\ '\v|'.s:c_non_specific_tag
|
||||
|
||||
let s:block_scalar_header = '\v[|>]%([+-]?[1-9]|[1-9]?[+-])?'
|
||||
|
||||
function GetYAMLIndent(lnum)
|
||||
if a:lnum == 1 || !prevnonblank(a:lnum-1)
|
||||
return 0
|
||||
@@ -127,7 +149,10 @@ function GetYAMLIndent(lnum)
|
||||
" - List with
|
||||
" multiline scalar
|
||||
return previndent+2
|
||||
elseif prevline =~# s:mapkeyregex
|
||||
elseif prevline =~# s:mapkeyregex . '\v\s*%(%('.s:c_ns_tag_property.
|
||||
\ '\v|'.s:c_ns_anchor_property.
|
||||
\ '\v|'.s:block_scalar_header.
|
||||
\ '\v)%(\s+|\s*%(\#.*)?$))*'
|
||||
" Mapping with: value
|
||||
" that is multiline scalar
|
||||
return previndent+s:shiftwidth()
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
" Maintainer: Benjamin Linskey <vim@benlinskey.com>
|
||||
" Last Changed: 2016 July 20
|
||||
" URL: https://github.com/blinskey/vim-armenian-keymaps
|
||||
|
||||
let b:keymap_name = "hy"
|
||||
|
||||
loadkeymap
|
||||
|
||||
" Capital letters
|
||||
A Ա
|
||||
B Բ
|
||||
C Գ
|
||||
D Դ
|
||||
Y Ե
|
||||
Z Զ
|
||||
E Է
|
||||
U Ը
|
||||
: Թ
|
||||
+ Ժ
|
||||
I Ի
|
||||
L Լ
|
||||
Q Խ
|
||||
? Ծ
|
||||
K Կ
|
||||
H Հ
|
||||
@ Ձ
|
||||
> Ղ
|
||||
J Ճ
|
||||
M Մ
|
||||
# Յ
|
||||
N Ն
|
||||
< Շ
|
||||
O Ո
|
||||
{ Չ
|
||||
P Պ
|
||||
} Ջ
|
||||
_ Ռ
|
||||
S Ս
|
||||
V Վ
|
||||
T Տ
|
||||
R Ր
|
||||
X Ց
|
||||
W Ւ
|
||||
\" Փ
|
||||
G Ք
|
||||
) Օ
|
||||
F Ֆ
|
||||
|
||||
" Lowercase letters
|
||||
a ա
|
||||
b բ
|
||||
c գ
|
||||
d դ
|
||||
y ե
|
||||
z զ
|
||||
e է
|
||||
u ը
|
||||
; թ
|
||||
= ժ
|
||||
i ի
|
||||
l լ
|
||||
q խ
|
||||
/ ծ
|
||||
k կ
|
||||
h հ
|
||||
2 ձ
|
||||
. ղ
|
||||
j ճ
|
||||
m մ
|
||||
3 յ
|
||||
n ն
|
||||
, շ
|
||||
o ո
|
||||
[ չ
|
||||
p պ
|
||||
] ջ
|
||||
- ռ
|
||||
s ս
|
||||
v վ
|
||||
t տ
|
||||
r ր
|
||||
x ց
|
||||
w ւ
|
||||
' փ
|
||||
g ք
|
||||
0 օ
|
||||
f ֆ
|
||||
|
||||
& և
|
||||
|
||||
" Punctuation
|
||||
` ՝
|
||||
~ ՜
|
||||
1 ։
|
||||
4 ՛
|
||||
5 ,
|
||||
6 -
|
||||
7 .
|
||||
8 «
|
||||
9 »
|
||||
\\ '
|
||||
| ՞
|
||||
|
||||
" Numbers
|
||||
! 1
|
||||
$ 3
|
||||
% 4
|
||||
^ 9
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user