mirror of
				https://github.com/dcarrillo/prezto.git
				synced 2025-10-27 06:19:08 +00:00 
			
		
		
		
	Compare commits
	
		
			700 Commits
		
	
	
		
			revision/d
			...
			fca913eded
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fca913eded | |||
|  | 3da67271b9 | ||
|  | 1ff1099d05 | ||
|  | 98d69fc91f | ||
|  | 15150085e6 | ||
| 45adecd9c9 | |||
| 74d4100434 | |||
|  | 7ec1ecde3a | ||
|  | 20641f3447 | ||
|  | bf3dfe8c02 | ||
|  | d840f0fc7b | ||
|  | d6e1ef5fcf | ||
|  | 7884fb2271 | ||
| a96f1618b4 | |||
|  | ecaed1cfa7 | ||
|  | 7f8b9b829a | ||
| d828d06643 | |||
|  | 166cbe2fca | ||
|  | 48291f68e8 | ||
|  | 2451239713 | ||
| 98f6306d1e | |||
|  | f3c92ffeb3 | ||
|  | 866d5dfccd | ||
| dc66c17728 | |||
|  | 061a7b961c | ||
|  | 6833fcd2f2 | ||
|  | f1e24d3fd8 | ||
|  | 37443368c1 | ||
|  | afe59b293b | ||
|  | f0942e6dda | ||
|  | d686da3c03 | ||
|  | 9037fda36d | ||
|  | 53033bc5d9 | ||
|  | 7052e2a002 | ||
|  | 979144d0e4 | ||
|  | c4a8f446c6 | ||
|  | a3643f124e | ||
|  | efebe3efec | ||
|  | 9459a716bf | ||
|  | 28ec39d9b2 | ||
|  | 9f37fc9841 | ||
|  | f84075b8d4 | ||
|  | af46875c5e | ||
|  | c6b59f8bb1 | ||
|  | 515d70f639 | ||
|  | 7980dd91c9 | ||
|  | e07fd052d7 | ||
|  | d3d79bbe74 | ||
|  | 6eb4021556 | ||
|  | d51e5ce40f | ||
|  | 6c5657be8e | ||
|  | fae5e493ec | ||
|  | 2368c9142b | ||
|  | 1ff9421f7b | ||
|  | 424d4cb779 | ||
|  | b14aca307d | ||
|  | 0628b91028 | ||
|  | be61026920 | ||
|  | 95d223aa8a | ||
|  | 742c1ea26f | ||
|  | d80e393f78 | ||
|  | 8edc5e9323 | ||
|  | d04a6ef459 | ||
|  | 788aa3d158 | ||
|  | 261d3b8224 | ||
|  | 68300e6de4 | ||
|  | e87a9b0a93 | ||
|  | 509c5ca80f | ||
|  | 1d1ae0a661 | ||
|  | f830065347 | ||
|  | 3285b33f0c | ||
|  | 9d42feac16 | ||
|  | 93556a7d5f | ||
|  | 5a8bfd5bf5 | ||
|  | 8a967fc108 | ||
|  | 63bc5061a7 | ||
|  | f651140f2c | ||
|  | 6a70bdfff2 | ||
|  | c5175145d4 | ||
|  | 16ddedd1f3 | ||
|  | db6cd0d668 | ||
|  | 40cc9f52f9 | ||
|  | 8003d0c6d8 | ||
|  | 7222fe5fd6 | ||
|  | 095f44796b | ||
|  | 4de0377106 | ||
|  | a2f3f419f6 | ||
|  | 0a07ba27a2 | ||
|  | ce937020ce | ||
|  | 428632ac07 | ||
|  | 76b8c810aa | ||
|  | a7f223d959 | ||
|  | d66041cdb7 | ||
|  | b8a3d90a13 | ||
| c005e87859 | |||
| 667fba697e | |||
|  | 704fc46c3f | ||
|  | c43d483d47 | ||
| f080e2075e | |||
|  | b7a80d99a8 | ||
|  | c7ef9c1f46 | ||
|  | 775f6123b2 | ||
|  | e915c34507 | ||
|  | 39151645ac | ||
|  | 0a405494ca | ||
| 813bde4d44 | |||
|  | 38882275b8 | ||
|  | e9197234cf | ||
|  | 685da200d7 | ||
|  | cb8b9ca746 | ||
|  | 4e7ab4b8b7 | ||
| 677e301174 | |||
|  | c21295b27f | ||
| 83f3dca4a3 | |||
|  | a132c1007a | ||
|  | 2d3763380c | ||
|  | 20a78c04e5 | ||
|  | ff91c8d410 | ||
|  | b8f5b31573 | ||
|  | cb69d2d3e4 | ||
|  | 793f239a5e | ||
|  | 649c0e4561 | ||
|  | 13c61bae30 | ||
| 6d546561c6 | |||
|  | 530ea10126 | ||
|  | 342385618c | ||
| 2da4774473 | |||
| f427a567d7 | |||
|  | de7b3b7fdc | ||
|  | 95ff0360ae | ||
|  | 5b03d7fa32 | ||
|  | d5bef142d4 | ||
| 9b2744cfdf | |||
| 7fbedf4a3b | |||
|  | f479f37ead | ||
|  | f4ca9ebfc9 | ||
|  | 1b99be879c | ||
|  | cfeb8cd6c9 | ||
| 0c22054a49 | |||
|  | d955fbdeb7 | ||
|  | 94f9e44f3f | ||
|  | 92e6b37f73 | ||
| d2832051f7 | |||
| 65e8ba0596 | |||
| 272528b439 | |||
| a73bb314cc | |||
| cb0099ec7a | |||
| fc8f82329b | |||
| 3d827cdb88 | |||
| 47b37b22ea | |||
|  | e9f281cd6f | ||
| 4b32ae96db | |||
| bca85497f8 | |||
|  | 4bcbe2ee68 | ||
| ac9843e2d4 | |||
|  | 66b9ea7d44 | ||
|  | 7cad349a5a | ||
|  | 4a32e9d68b | ||
| 7ec4aad48c | |||
|  | 1f52b03a45 | ||
|  | 9ae279e25a | ||
|  | 2acaec814f | ||
|  | a3a51bdf6c | ||
|  | c6efe80152 | ||
|  | 7c94154dda | ||
|  | e86200e7aa | ||
| 721b1535ea | |||
|  | a5ebde1b17 | ||
| a251bd2fb9 | |||
| ef3e9eda18 | |||
|  | 2d6205e714 | ||
| b9c34d9445 | |||
|  | 0af28e758b | ||
| 048d5302d6 | |||
| e9e8c31217 | |||
| f549bd7a0b | |||
|  | ed511e6747 | ||
|  | 13f3cabd81 | ||
|  | b2aead431c | ||
|  | 21ce6a6f97 | ||
|  | 585b3646f9 | ||
| aeb58b972d | |||
|  | b44893d9eb | ||
|  | ed6303c340 | ||
|  | 6d65cb4176 | ||
|  | 1bc0da5f48 | ||
|  | 55eb406515 | ||
|  | 2873885d37 | ||
| 91292526a0 | |||
| a1df63bade | |||
|  | 9507a0e881 | ||
|  | 75b112bcd0 | ||
|  | f596d5d1d6 | ||
|  | 61de4d199d | ||
|  | 6ae2f39cc1 | ||
|  | 75940e8ee9 | ||
|  | 43214f1aed | ||
|  | 8b1a7afd81 | ||
|  | 8914274ca9 | ||
|  | 34948690d5 | ||
|  | a8087e01fb | ||
|  | abb0c7ecb4 | ||
|  | b01f02aa5c | ||
|  | 5566a9c792 | ||
|  | 3ae422a0da | ||
|  | 6dd97d15e0 | ||
| 21b83b65ef | |||
|  | e94b6b2078 | ||
| de23724dc3 | |||
| e6e5e4d68f | |||
|  | 09e83ed282 | ||
| 9f86f48ae6 | |||
| 15bfe616bc | |||
|  | 1d58546406 | ||
|  | ac65e8eb18 | ||
|  | bb901dfb7e | ||
| f235db7aaa | |||
| 82222831a7 | |||
|  | 1f4601e44c | ||
|  | b8d7e2cad8 | ||
|  | 5d7c990eec | ||
|  | d22effbf85 | ||
| 4ff726e600 | |||
| c2c53592a1 | |||
|  | 4abbc55721 | ||
|  | 777674e07e | ||
|  | ba4063f99e | ||
|  | 88456ec9b6 | ||
|  | 4a16d3fa50 | ||
| a70d24ab10 | |||
|  | a338cba805 | ||
|  | 0e6429da97 | ||
|  | 9d3e2f0204 | ||
|  | dc8e168d5f | ||
|  | 3093f1b966 | ||
|  | 11184084bc | ||
|  | 54dff31b63 | ||
| 23c56a5640 | |||
| 1a48ae2e54 | |||
|  | eee3c9c166 | ||
|  | 39e1a63349 | ||
|  | d275f316ff | ||
|  | 6a2cc2e146 | ||
|  | d45d87b08f | ||
|  | a987c8bc8a | ||
|  | f745645342 | ||
|  | a2398fc045 | ||
|  | e7fea3343f | ||
|  | 53286ebbdb | ||
|  | 2286662b80 | ||
|  | 3de1e24965 | ||
| be68a38ff5 | |||
| 32084778d0 | |||
|  | 8bfed01773 | ||
|  | b2a9152820 | ||
|  | 680fba3112 | ||
| 236907f8af | |||
|  | 108392b503 | ||
| a09155f990 | |||
| 35a83744e7 | |||
| b083b134e7 | |||
|  | e6eea17b12 | ||
| 93313aac23 | |||
| f37cf0ffc9 | |||
|  | 1ed5331e84 | ||
|  | bfe1815cbf | ||
|  | a43093119e | ||
|  | a3753d8f3b | ||
|  | 58809b2d21 | ||
|  | 992b9de505 | ||
|  | 6f603df7a6 | ||
|  | ff5bd9306e | ||
|  | df4c61861d | ||
| 53facbe9de | |||
|  | 6c46804f41 | ||
|  | e9387a177e | ||
|  | ee885d42de | ||
|  | fbcae356d3 | ||
|  | f366e49c32 | ||
|  | ad861d3b45 | ||
|  | 2bbf5d0687 | ||
|  | dd7a26e219 | ||
|  | 7bb7a7cb6f | ||
|  | 66487c9532 | ||
|  | f2042a29cc | ||
|  | dacef14214 | ||
|  | e064d5c65f | ||
|  | 152b4a1b5d | ||
|  | e149367445 | ||
|  | cd70822994 | ||
|  | 0d6e7de031 | ||
|  | b11b9ce788 | ||
|  | d4332e2faf | ||
|  | 92e668e1d9 | ||
|  | 3d911cd511 | ||
|  | ae23bedd24 | ||
|  | 2995b7d0c8 | ||
|  | 6e179f24ab | ||
|  | f8f93d4b91 | ||
|  | b6b43eb331 | ||
|  | 300102897a | ||
|  | 054eb351f1 | ||
|  | 1b441e7654 | ||
|  | 443021237a | ||
|  | a0977cb92e | ||
|  | b3c27bb164 | ||
|  | e00562e7cf | ||
|  | 742260b55f | ||
|  | 580ddc44f3 | ||
|  | 4325f74f9d | ||
|  | 6d00fdf8c8 | ||
|  | e26387656d | ||
|  | d7622624aa | ||
|  | 282b478fd2 | ||
|  | 904eef5fa5 | ||
|  | 906ac99e20 | ||
|  | 0b62639ad5 | ||
|  | 54d2a76731 | ||
|  | e32a96be72 | ||
|  | 73e94b84bb | ||
|  | 82d3265ad5 | ||
|  | 66bfe9be27 | ||
|  | 83085e5231 | ||
|  | 4c31107e3b | ||
|  | d8d6b4d70a | ||
|  | e021adeb4a | ||
|  | aa0395244d | ||
|  | 3ab569ff78 | ||
|  | 3a0bd28e0c | ||
|  | 64d57ec71f | ||
|  | b407ba0c3a | ||
|  | e2785cc246 | ||
|  | 029414581e | ||
|  | 7cdde9b631 | ||
|  | 8ed2c78de8 | ||
|  | 043d09bbfe | ||
|  | df3468e957 | ||
|  | 65bcbae8bc | ||
|  | 64d6ae805c | ||
|  | 221c6cd128 | ||
|  | cbe4815189 | ||
|  | a3f40a7479 | ||
|  | d725233bb1 | ||
|  | 2436806fce | ||
|  | 96bbb31cc8 | ||
|  | ce349dff81 | ||
|  | ad79f78fbe | ||
|  | e159c1a439 | ||
|  | f02dc1af57 | ||
|  | 105e9658bb | ||
|  | 948d9b3aa5 | ||
|  | 79927ac73a | ||
|  | 485ad9e704 | ||
|  | c7dcd21c9e | ||
|  | 7ebb5e9dda | ||
|  | ff9b901394 | ||
|  | 4b0ecffaca | ||
|  | 87d39f5dd2 | ||
|  | cbcbedd694 | ||
|  | 109864429c | ||
|  | b5d09e2da7 | ||
|  | fb903cb067 | ||
|  | 6d5650eae7 | ||
|  | 25d8db301d | ||
|  | 63310f6403 | ||
|  | 1d0bee6098 | ||
|  | 9520f1be6f | ||
|  | cd703d3c3c | ||
|  | 752f64f085 | ||
|  | 00f1d92ed8 | ||
|  | 34d4897d0e | ||
|  | 3faaffe7e9 | ||
|  | 34482cb325 | ||
|  | 2cfd366ba6 | ||
|  | 808d9d3579 | ||
|  | 76388a8cd1 | ||
|  | 6a8f1c6b16 | ||
|  | ba0cb8afd8 | ||
|  | 46de6fef77 | ||
|  | 37c61a058c | ||
|  | 38fb41d66e | ||
|  | 727f094b0f | ||
|  | 8fa14ed72f | ||
|  | 58bcc43bf9 | ||
|  | 98f37b3c2f | ||
|  | a7fb175b20 | ||
|  | 9c528efa60 | ||
|  | 83ab314b77 | ||
|  | 5ffc8a07f1 | ||
|  | cab4ac54ec | ||
|  | 4c272a20f6 | ||
|  | 5b244eeadb | ||
|  | 3194442759 | ||
|  | 9dfa8a67f6 | ||
|  | e6af5f2e91 | ||
|  | dd1133d32e | ||
|  | 2f867d6f22 | ||
|  | 24e5e49ff2 | ||
|  | 730fc4690e | ||
|  | 5e295b0835 | ||
|  | 8d7e3e27c7 | ||
|  | a60499f933 | ||
|  | 7b5196ca66 | ||
|  | 3f556400e7 | ||
|  | b3c7d21d31 | ||
|  | 591d087ccc | ||
|  | 9b6bf4a7cd | ||
|  | 19435b16ea | ||
|  | 7e7124e84a | ||
|  | 09fe5191e7 | ||
|  | 0fc49ac4f0 | ||
|  | e364eac8f5 | ||
|  | 9bdc1b35d5 | ||
|  | 9f1a41de90 | ||
|  | d6276e8025 | ||
|  | 8846db9d4d | ||
|  | eddbdd9416 | ||
|  | 24b710f545 | ||
|  | a60fe47359 | ||
|  | 17a59bada7 | ||
|  | ac628c9059 | ||
|  | bcbaea27af | ||
|  | 608f291ad3 | ||
|  | 2db7f62c2b | ||
|  | 46e34d30b8 | ||
|  | cb4be65d29 | ||
|  | f236344fc8 | ||
|  | 90071d3ad0 | ||
|  | c1a8fc0469 | ||
|  | b0c85eddf6 | ||
|  | 04bfb5131b | ||
|  | 19990c8025 | ||
|  | d25b251ef7 | ||
|  | 0f3a5f745e | ||
|  | ebae698f70 | ||
|  | d69070268a | ||
|  | 86de7a8d2e | ||
|  | 1221e4030d | ||
|  | 17bc7530ba | ||
|  | aad91beb3c | ||
|  | 2a75fba6a8 | ||
|  | 6e1f4ddd19 | ||
|  | 7d109fb3fa | ||
|  | 899c176942 | ||
|  | 3f99519021 | ||
|  | e3520b737f | ||
|  | db48a22c74 | ||
|  | e6136a517b | ||
|  | 7d5beeab51 | ||
|  | a70bce3ea6 | ||
|  | 75a60bc7bf | ||
|  | 5cd3380d9d | ||
|  | c6124d4d37 | ||
|  | 09b333eb41 | ||
|  | a876890afd | ||
|  | dbe9a5ea28 | ||
|  | 5ef10f7658 | ||
|  | 87868441eb | ||
|  | eb47b45a0d | ||
|  | a4ff6acd56 | ||
|  | e52523204b | ||
|  | 961326f8e9 | ||
|  | 7fe28574a8 | ||
|  | d101b0a319 | ||
|  | f8f4953dce | ||
|  | 7c172fc9a7 | ||
|  | ecc34e0051 | ||
|  | 1c041c0433 | ||
|  | d9a1380263 | ||
|  | a75c63768c | ||
|  | a0541ce7a5 | ||
|  | 2f20a80f72 | ||
|  | 5bcc223e95 | ||
|  | 14670f40f0 | ||
|  | 7ae7a0266c | ||
|  | 08e39a587f | ||
|  | 658fffb3a6 | ||
|  | 6975b119b6 | ||
|  | d02c2951b3 | ||
|  | 871b15663c | ||
|  | 42d9b78907 | ||
|  | 2794f95d3e | ||
|  | 46a1ffaf7e | ||
|  | 3d7a8c2870 | ||
|  | 1050a0a290 | ||
|  | 723b3812e1 | ||
|  | 7c509a264f | ||
|  | 850ad42c96 | ||
|  | 4f87376b50 | ||
|  | 876f426581 | ||
|  | f15557159a | ||
|  | 81b41d2367 | ||
|  | cf7d3cffbd | ||
|  | fb37539f43 | ||
|  | 7242b4ed49 | ||
|  | c38c2dd909 | ||
|  | 600b4cc9e6 | ||
|  | 38f0d2f34e | ||
|  | 40853f23c2 | ||
|  | a622652f73 | ||
|  | a8ce3da782 | ||
|  | 19d11ab1d0 | ||
|  | e606b09c9e | ||
|  | d035e4cf1e | ||
|  | 8a4333103d | ||
|  | bb168c5881 | ||
|  | 7c64584629 | ||
|  | 7011031a87 | ||
|  | 2e20eb8571 | ||
|  | 5c0e68f75f | ||
|  | 1c0f95c08e | ||
|  | fb6f3f7ee9 | ||
|  | 95036c908c | ||
|  | 9a70a1675c | ||
|  | 8655cd543b | ||
|  | 60c433d4ce | ||
|  | b963484fe7 | ||
|  | ee249e50ee | ||
|  | 412af29808 | ||
|  | 94708f6b50 | ||
|  | 8dafaae5a4 | ||
|  | e413ef5a97 | ||
|  | 909006638d | ||
|  | 464a8d20a1 | ||
|  | 95d19b37c1 | ||
|  | c0049855c5 | ||
|  | 27c2ccd8b9 | ||
|  | fd0b627a8b | ||
|  | 076e29e97d | ||
|  | 013668f484 | ||
|  | ddfc870f9a | ||
|  | 65b05c0220 | ||
|  | 12d48dfcf9 | ||
|  | fb689449a7 | ||
|  | 483447082b | ||
|  | 2c1ad5bed1 | ||
|  | 4e35f701ca | ||
|  | 3a6ae0fc6c | ||
|  | dcd8596192 | ||
|  | a7729561e8 | ||
|  | 5271af8180 | ||
|  | 8913bcccd2 | ||
|  | 2ba060a426 | ||
|  | 8820b71f37 | ||
|  | 0be0ff565a | ||
|  | 7346efd206 | ||
|  | b38ced856a | ||
|  | 4f19700919 | ||
|  | c8b8397728 | ||
|  | 8bd720b0c7 | ||
|  | 38baf39513 | ||
|  | e36eed9c8a | ||
|  | 64aa907087 | ||
|  | 7227c4f0be | ||
|  | 2ad1b2f5b1 | ||
|  | a7e4b447b3 | ||
|  | 02b3d329ac | ||
|  | e641c2111a | ||
|  | 165879d4b3 | ||
|  | de9ed0610b | ||
|  | c05fbedd8d | ||
|  | e137068cac | ||
|  | f2a826e963 | ||
|  | bdec6c4e20 | ||
|  | ef634f38a4 | ||
|  | b761261b11 | ||
|  | 02c5f776fc | ||
|  | a275db55d6 | ||
|  | b6efdc1ea4 | ||
|  | 904c94469e | ||
|  | 159418835f | ||
|  | f7ea78078f | ||
|  | fe64f91f52 | ||
|  | b46769149b | ||
|  | 999f0d1a74 | ||
|  | f6a2c73423 | ||
|  | a1dea6ae43 | ||
|  | cd5067668c | ||
|  | 6a812ed36b | ||
|  | ca03fd670a | ||
|  | 08676a273e | ||
|  | 20766138cb | ||
|  | e9f86bf4db | ||
|  | c98da90662 | ||
|  | ac8bc74ef0 | ||
|  | ccca57f2ac | ||
|  | 4016f0c7c1 | ||
|  | c34098af20 | ||
|  | ee0b02464c | ||
|  | e144abb285 | ||
|  | b41f485528 | ||
|  | ab45ade380 | ||
|  | 1292587f95 | ||
|  | 933c61b8f1 | ||
|  | 88aee30ae8 | ||
|  | 4411c95a83 | ||
|  | 62d87cae32 | ||
|  | d43bcb9720 | ||
|  | ba351df9fb | ||
|  | 925b94b6e2 | ||
|  | c171621747 | ||
|  | 0148ee6a4d | ||
|  | fc3f8025ea | ||
|  | 9539341e1e | ||
|  | 13d1ed160e | ||
|  | 2a33581e80 | ||
|  | 3dd4cbc3c0 | ||
|  | 7a92046c86 | ||
|  | 3012c0984b | ||
|  | 00a5639e65 | ||
|  | 3cb1f7c4c9 | ||
|  | 90eae2b491 | ||
|  | d349c1cec7 | ||
|  | a7a4912940 | ||
|  | 82710c29fc | ||
|  | 9f82926f6e | ||
|  | 61e91b8fb0 | ||
|  | 967c91a351 | ||
|  | 087fce8548 | ||
|  | 2ae905a625 | ||
|  | 19fc31c342 | ||
|  | e76df6022d | ||
|  | c2d62c3b47 | ||
|  | 03336db523 | ||
|  | 1bc4235a5e | ||
|  | c078c47c9d | ||
|  | 0bede677e6 | ||
|  | ad09f29fd5 | ||
|  | 567506f7e7 | ||
|  | 13ed3a1bf7 | ||
|  | 6f9c1666e1 | ||
|  | ab7f697734 | ||
|  | d020d34e59 | ||
|  | 17a6124b43 | ||
|  | 3c47c57c87 | ||
|  | ff0cdd3ed7 | ||
|  | b948e3630b | ||
|  | 55e4db9429 | ||
|  | 53bd555c6d | ||
|  | 86ba5b69d3 | ||
|  | 5791c07d48 | ||
|  | 34a50c2550 | ||
|  | 417b9d429d | ||
|  | fea08d4e50 | ||
|  | d3f1441481 | ||
|  | a84ac5b002 | ||
|  | 10c33ec9a4 | ||
|  | 9b1f39f267 | ||
|  | 36ade25eb6 | ||
|  | 8f711d64b5 | ||
|  | c4b50ec1a0 | ||
|  | 62198b0326 | ||
|  | b4884d4d45 | ||
|  | abfc4ab6e5 | ||
|  | 657e8a16f4 | ||
|  | ea25ccf62c | ||
|  | 3e88b8bcdc | ||
|  | e892d7f3c7 | ||
|  | 4e4a6fcc63 | ||
|  | 3e8349ddde | ||
|  | fdb406f917 | ||
|  | 493bf302f6 | ||
|  | a217af99f3 | ||
|  | 06cc5088aa | ||
|  | 5088ca4839 | ||
|  | 0f696fc206 | ||
|  | 96bcf813b7 | ||
|  | fe8f9a9b5b | ||
|  | bf9dbfd5b9 | ||
|  | ff0dfa424d | ||
|  | fedad8e9cf | ||
|  | 478653fab2 | ||
|  | 10cf701864 | ||
|  | 7722dd4400 | ||
|  | 240eecaddf | ||
|  | 415e4bff3d | ||
|  | e5a0e33f1c | ||
|  | 8189577772 | ||
|  | c74cf4b5e0 | ||
|  | 72782528aa | ||
|  | 02717cb4c1 | ||
|  | bccfca8c10 | ||
|  | b8bb51d7b5 | ||
|  | 00e12b7a98 | ||
|  | 232313e2a0 | ||
|  | e48dac79f3 | ||
|  | dbeb6d4e1a | ||
|  | af003d83c5 | ||
|  | 839f4a7b83 | ||
|  | c091f71283 | ||
|  | e1974ad58d | ||
|  | 391bc405d0 | ||
|  | 80ded5e33d | ||
|  | fa6723a5ee | ||
|  | 57b283facd | ||
|  | aefdce3fc3 | ||
|  | e4e4f89c9f | ||
|  | 817dd3aa3a | ||
|  | 347928193f | ||
|  | da1a837cd4 | 
							
								
								
									
										9
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| [*] | ||||
| end_of_line = lf | ||||
| insert_final_newline = true | ||||
| indent_style = space | ||||
| indent_size = 2 | ||||
| trim_trailing_whitespace = true | ||||
|  | ||||
| [{.gitattributes,.gitignore,.gitmodules}] | ||||
| indent_style = tab | ||||
							
								
								
									
										24
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.github/ISSUE_TEMPLATE.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| <!-- Please check if a similar issue already exists or has been closed before before opening your issue. --> | ||||
|  | ||||
| ### Description | ||||
| <!-- Provide a general description of the bug or feature --> | ||||
|  | ||||
| ### Expected behavior | ||||
|  | ||||
| <!-- What you expected to happen --> | ||||
|  | ||||
| ### Actual behavior | ||||
|  | ||||
| <!-- What actually happened --> | ||||
|  | ||||
| ### Steps to Reproduce | ||||
|  | ||||
| 1. [First Step] | ||||
| 2. [Second Step] | ||||
| 3. [and so on...] | ||||
|  | ||||
| ### Versions | ||||
|  | ||||
|   - Prezto commit: | ||||
|   - ZSH version: | ||||
|   - OS information: | ||||
							
								
								
									
										10
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.github/PULL_REQUEST_TEMPLATE.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| Please be sure to check out our [contributing guidelines](https://github.com/sorin-ionescu/prezto/blob/master/CONTRIBUTING.md) | ||||
| before submitting your pull request. | ||||
|  | ||||
| Fixes # | ||||
|  | ||||
| ## Proposed Changes | ||||
|  | ||||
|   - | ||||
|   - | ||||
|   - | ||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +1,4 @@ | ||||
| *.zwc | ||||
| *.zwc.old | ||||
| modules/*/cache.zsh | ||||
| contrib | ||||
|   | ||||
							
								
								
									
										22
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +1,6 @@ | ||||
| [submodule "modules/autosuggestions/external"] | ||||
| 	path = modules/autosuggestions/external | ||||
| 	url = https://github.com/zsh-users/zsh-autosuggestions.git | ||||
| [submodule "modules/history-substring-search/external"] | ||||
| 	path = modules/history-substring-search/external | ||||
| 	url = https://github.com/zsh-users/zsh-history-substring-search.git | ||||
| @@ -7,3 +10,22 @@ | ||||
| [submodule "modules/completion/external"] | ||||
| 	path = modules/completion/external | ||||
| 	url = https://github.com/zsh-users/zsh-completions.git | ||||
| [submodule "modules/prompt/external/powerline"] | ||||
| 	path = modules/prompt/external/powerline | ||||
| 	url = https://github.com/davidjrice/prezto_powerline.git | ||||
| [submodule "modules/prompt/external/agnoster"] | ||||
| 	path = modules/prompt/external/agnoster | ||||
| 	url = https://github.com/agnoster/agnoster-zsh-theme.git | ||||
| [submodule "modules/prompt/external/pure"] | ||||
| 	path = modules/prompt/external/pure | ||||
| 	url = https://github.com/sindresorhus/pure.git | ||||
| [submodule "modules/fasd/external"] | ||||
| 	path = modules/fasd/external | ||||
| 	url = https://github.com/clvv/fasd.git | ||||
| [submodule "modules/prompt/external/async"] | ||||
| 	path = modules/prompt/external/async | ||||
| 	url = https://github.com/mafredri/zsh-async.git | ||||
| [submodule "modules/prompt/external/powerlevel10k"] | ||||
| 	path = modules/prompt/external/powerlevel10k | ||||
| 	url = https://github.com/romkatv/powerlevel10k.git | ||||
| 	shallow = true | ||||
|   | ||||
| @@ -1,42 +1,74 @@ | ||||
| Contributing | ||||
| ------------ | ||||
| # Contributing | ||||
|  | ||||
| This project would not exist without all of its users and [contributors][1]. | ||||
|  | ||||
| If you have ideas on how to make the configuration easier to maintain or | ||||
| improve its performance, do not hesitate to fork and send pull requests. | ||||
|  | ||||
| ### Issue Reporting | ||||
| ## Issue Reporting | ||||
|  | ||||
|    - Check that the issue has not already been reported. | ||||
|    - Check that the issue has not already been fixed in the latest code. | ||||
|    - Open an issue with a clear title and description in grammatically correct, | ||||
|      complete sentences. | ||||
| - Check that the issue has not already been reported. | ||||
| - Check that the issue has not already been fixed in the latest code. | ||||
| - Open an issue with a clear title and description in grammatically correct, | ||||
|   complete sentences. | ||||
|  | ||||
| ### Pull Request | ||||
| ## Pull Request | ||||
|  | ||||
|    - Read [how to properly contribute to open source projects on GitHub][2]. | ||||
|    - Use a topic branch to easily amend a pull request later, if necessary. | ||||
|    - Write [good commit messages][3]. | ||||
|    - Squash commits on the topic branch before opening a pull request. | ||||
|    - Use the same coding style and spacing. | ||||
|    - Open a [pull request][4] that relates to but one subject with a clear | ||||
|      title and description in grammatically correct, complete sentences. | ||||
| - Read [how to properly contribute to open source projects on GitHub][2]. | ||||
| - Use a topic branch to easily amend a pull request later, if necessary. | ||||
| - Write [good commit messages][3]. | ||||
| - Squash commits on the topic branch before opening a pull request. | ||||
| - Use the same coding style and spacing. | ||||
| - Open a [pull request][4] that relates to but one subject with a clear title | ||||
|   and description in grammatically correct, complete sentences. | ||||
|  | ||||
| #### Modules | ||||
| ### Code Style | ||||
|  | ||||
|    - A *README.md* must be present. | ||||
|    - Large functions must be placed in a *functions* directory. | ||||
|    - Functions that take arguments must have completion. | ||||
| This project follows the [Google Shell Style Guide][5] when possible. However, | ||||
| there are a number of additional things to keep in mind. | ||||
|  | ||||
| #### Themes | ||||
| - Local variables should be used whenever possible. | ||||
| - Prefer `zstyle` over environment variables for configuration. | ||||
| - Prefer (( ... )) over [[ ... ]] for arithmetic expression. | ||||
| - Use the function keyword to define functions. | ||||
| - The 80 character hard limit can be waived for readability. | ||||
|  | ||||
|    - A screenshots section must be present in the file header. | ||||
|    - The pull request description must have [embedded screenshots][5]. | ||||
| ### Using an Alternative *zprezto* Directory | ||||
|  | ||||
| To work on Prezto without affecting your current configuration: | ||||
|  | ||||
| ```sh | ||||
| mkdir devel-zprezto | ||||
| cd devel-zprezto | ||||
| git clone --recursive https://github.com/sorin-ionescu/prezto.git .zprezto | ||||
| ZDOTDIR=$(pwd) | ||||
| echo "Your development ZDOTDIR is $ZDOTDIR" | ||||
| setopt EXTENDED_GLOB | ||||
| for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do | ||||
|     ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" | ||||
| done | ||||
| ``` | ||||
|  | ||||
| Then to start zsh in this development environment you will run: | ||||
|  | ||||
| ```console | ||||
| ZDOTDIR=/path/to/devel-zprezto zsh | ||||
| ``` | ||||
|  | ||||
| ### Modules | ||||
|  | ||||
| - A *README.md* must be present. | ||||
| - Large functions must be placed in a *functions* directory. | ||||
| - Functions that take arguments must have completion. | ||||
|  | ||||
| ### Themes | ||||
|  | ||||
| - A screenshots section must be present in the file header. | ||||
| - The pull request description must have [embedded screenshots][6]. | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/contributors | ||||
| [2]: http://gun.io/blog/how-to-github-fork-branch-and-pull-request | ||||
| [2]: https://gun.io/blog/how-to-github-fork-branch-and-pull-request | ||||
| [3]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html | ||||
| [4]: https://help.github.com/articles/using-pull-requests | ||||
| [5]: http://daringfireball.net/projects/markdown/syntax#img | ||||
|  | ||||
| [5]: https://google.github.io/styleguide/shell.xml | ||||
| [6]: https://github.github.com/gfm/#images | ||||
|   | ||||
							
								
								
									
										15
									
								
								INSTALL.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								INSTALL.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
|  | ||||
| # Install and update | ||||
|  | ||||
| ## Install | ||||
|  | ||||
| ```bash | ||||
| git clone https://github.com/dcarrillo/prezto.git ~/.zprezto | ||||
| cd ~/.zprezto | ||||
| git remote add upstream https://github.com/sorin-ionescu/prezto.git | ||||
| git submodule update --init --recursive | ||||
| ``` | ||||
|  | ||||
| ## Keep updated | ||||
|  | ||||
| Run the [update](scripts/update_zprezto) script. | ||||
							
								
								
									
										20
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| Copyright (c) 2009-2011 Robby Russell and contributors | ||||
| Copyright (c) 2011-2017 Sorin Ionescu and contributors | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy of | ||||
| this software and associated documentation files (the "Software"), to deal in | ||||
| the Software without restriction, including without limitation the rights to | ||||
| use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies | ||||
| of the Software, and to permit persons to whom the Software is furnished to do | ||||
| so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE | ||||
							
								
								
									
										196
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										196
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,118 +1,158 @@ | ||||
| Prezto — Instantly Awesome Zsh | ||||
| ============================== | ||||
| # Prezto — Instantly Awesome Zsh | ||||
|  | ||||
| Prezto is the configuration framework for [Zsh][1]; it enriches the command line | ||||
| interface environment with sane defaults, aliases, functions, auto completion, | ||||
| and prompt themes. | ||||
|  | ||||
| Installation | ||||
| ------------ | ||||
| ## Installation | ||||
|  | ||||
| Prezto will work with any recent release of Zsh, but the minimum recommended | ||||
| version is 4.3.11. Unfortunately, [Cygwin][9] is not supported due to | ||||
| non-standard core utilities. | ||||
| Prezto will work with any recent release of Zsh, but the minimum required | ||||
| version is **4.3.11**. | ||||
|  | ||||
|   1. Launch Zsh: | ||||
| 01. Launch Zsh: | ||||
|  | ||||
|         zsh | ||||
|     ```console | ||||
|     zsh | ||||
|     ``` | ||||
|  | ||||
|   2. Clone the repository: | ||||
| 02. Clone the repository: | ||||
|  | ||||
|         git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" | ||||
|     ```console | ||||
|     git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" | ||||
|     ``` | ||||
|  | ||||
|   3. Create a new Zsh configuration by copying the Zsh configuration files | ||||
|      provided: | ||||
|     <details> | ||||
|       <summary><em>Optional: Installing in <code>$XDG_CONFIG_HOME</code></em></summary> | ||||
|  | ||||
|         setopt EXTENDED_GLOB | ||||
|         for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do | ||||
|           ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" | ||||
|         done | ||||
|       Optionally, if you already have `$XDG_CONFIG_HOME` configured (usually as | ||||
|       _`$HOME/.config`_ by default) and intend to install Prezto under | ||||
|       _`$XDG_CONFIG_HOME/zsh`_ instead, you can clone the repository there and | ||||
|       configure `$ZDOTDIR` separately if not already configured. | ||||
|  | ||||
|   4. Set Zsh as your default shell: | ||||
|       - Clone the repository: | ||||
|  | ||||
|         chsh -s /bin/zsh | ||||
|         ```console | ||||
|         git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto" | ||||
|         ``` | ||||
|  | ||||
|   5. Open a new Zsh terminal window or tab. | ||||
|       - Configure `$XDG_CONFIG_HOME` and `$ZDOTDIR` in _`$HOME/.zshenv`_: | ||||
|  | ||||
|         ```sh | ||||
|         export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}" | ||||
|         export ZDOTDIR="${ZDOTDIR:=$XDG_CONFIG_HOME/zsh}" | ||||
|         source "$ZDOTDIR/.zshenv" | ||||
|         ``` | ||||
|  | ||||
|     </details> | ||||
|  | ||||
| 03. Create a new Zsh configuration by copying/linking the Zsh configuration | ||||
|     files provided: | ||||
|  | ||||
|     ```console | ||||
|     setopt EXTENDED_GLOB | ||||
|     for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do | ||||
|       ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" | ||||
|     done | ||||
|     ``` | ||||
|  | ||||
|     **Note:** If you already have any of the given configuration files, `ln` in | ||||
|     the above operation will cause an error. In simple cases, you can load | ||||
|     Prezto by adding the line `source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"` to | ||||
|     the bottom of your _`${ZDOTDIR:-$HOME}/.zshrc`_ and keep the rest of your | ||||
|     Zsh configuration intact. For more complicated setups, we recommend that you | ||||
|     back up your original configs and replace them with the provided Prezto | ||||
|     [_`runcoms`_][10]. | ||||
|  | ||||
| 04. Set Zsh as your default shell: | ||||
|  | ||||
|     ```console | ||||
|     chsh -s /bin/zsh | ||||
|     ``` | ||||
|  | ||||
| 05. Open a new Zsh terminal window or tab. | ||||
|  | ||||
| ### Troubleshooting | ||||
|  | ||||
| If you are not able to find certain commands after switching to *Prezto*, | ||||
| modify the `PATH` variable in *~/.zshenv* then open a new Zsh terminal | ||||
| window or tab. | ||||
| If you are not able to find certain commands after switching to Prezto, modify | ||||
| the `PATH` variable in _`${ZDOTDIR:-$HOME}/.zprofile`_ then open a new Zsh | ||||
| terminal window or tab. | ||||
|  | ||||
| Updating | ||||
| -------- | ||||
| ## Updating | ||||
|  | ||||
| Pull the latest changes and update submodules. | ||||
| Run `zprezto-update` to automatically check if there is an update to Prezto. | ||||
| If there are no file conflicts, Prezto and its submodules will be automatically | ||||
| updated. If there are conflicts you will be instructed to go into the | ||||
| `$ZPREZTODIR` directory and resolve them yourself. | ||||
|  | ||||
|     git pull && git submodule update --init --recursive | ||||
| To pull the latest changes and update submodules manually: | ||||
|  | ||||
| Usage | ||||
| ----- | ||||
| ```console | ||||
| cd $ZPREZTODIR | ||||
| git pull | ||||
| git submodule sync --recursive | ||||
| git submodule update --init --recursive | ||||
| ``` | ||||
|  | ||||
| Prezto has many features disabled by default. Read the source code and | ||||
| accompanying README files to learn of what is available. | ||||
| ## Usage | ||||
|  | ||||
| Prezto has many features disabled by default. Read the source code and the | ||||
| accompanying README files to learn about what is available. | ||||
|  | ||||
| ### Modules | ||||
|  | ||||
|   1. Browse */modules* to see what is available. | ||||
|   2. Load the modules you need in *~/.zpreztorc* then open a new Zsh terminal | ||||
|      window or tab. | ||||
| 01. Browse [_`modules`_][9] to see what is available. | ||||
| 02. Load the modules you need in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and then open | ||||
|     a new Zsh terminal window or tab. | ||||
|  | ||||
| ### Themes | ||||
|  | ||||
|   1. For a list of themes, type `prompt -l`. | ||||
|   2. To preview a theme, type `prompt -p name`. | ||||
|   3. Load the theme you like in *~/.zpreztorc* then open a new Zsh terminal | ||||
|      window or tab. | ||||
| 01. For a list of themes, type `prompt -l`. | ||||
| 02. To preview a theme, type `prompt -p name`. | ||||
| 03. Load the theme you like in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and then | ||||
|     open a new Zsh terminal window or tab. | ||||
|  | ||||
|      ![sorin theme][2] | ||||
|     ![sorin theme][2] | ||||
|     Note that the [_`git`_][11] module may be required for special symbols to | ||||
|     appear, such as those on the right of the above image. Add `'git'` to the | ||||
|     `pmodule` list (under `zstyle ':prezto:load' pmodule \` in your | ||||
|     _`${ZDOTDIR:-$HOME}/.zpreztorc`_) to enable this module. | ||||
|  | ||||
| Customization | ||||
| ------------- | ||||
| ### External Modules | ||||
|  | ||||
| The project is managed via [Git][3]. It is highly recommended that you fork this | ||||
| project; so, that you can commit your changes and push them to [GitHub][4] to | ||||
| not lose them. If you do not know how to use Git, follow this [tutorial][5] and | ||||
| bookmark this [reference][6]. | ||||
| 01. By default modules will be loaded from [_`/modules`_][9] and _`/contrib`_. | ||||
| 02. Additional module directories can be added to the | ||||
|     `:prezto:load:pmodule-dirs` setting in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. | ||||
|  | ||||
| Resources | ||||
| --------- | ||||
|     Note that module names need to be unique or they will cause an error when | ||||
|     loading. | ||||
|  | ||||
|     ```sh | ||||
|     zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib | ||||
|     ``` | ||||
|  | ||||
| ## Customization | ||||
|  | ||||
| The project is managed via [Git][3]. We highly recommend that you fork this | ||||
| project so that you can commit your changes and push them to your fork on | ||||
| [GitHub][4] to preserve them. If you do not know how to use Git, follow this | ||||
| [tutorial][5] and bookmark this [reference][6]. | ||||
|  | ||||
| ## Resources | ||||
|  | ||||
| The [Zsh Reference Card][7] and the [zsh-lovers][8] man page are indispensable. | ||||
|  | ||||
| License | ||||
| ------- | ||||
| ## License | ||||
|  | ||||
| (The MIT License) | ||||
| This project is licensed under the MIT License. | ||||
|  | ||||
| Copyright (c) 2009-2014 Sorin Ionescu and contributors. | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy of | ||||
| this software and associated documentation files (the "Software"), to deal in | ||||
| the Software without restriction, including without limitation the rights to | ||||
| use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies | ||||
| of the Software, and to permit persons to whom the Software is furnished to do | ||||
| so, subject to the following conditions: | ||||
|  | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
|  | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
|  | ||||
| [1]: http://www.zsh.org | ||||
| [2]: http://i.imgur.com/nBEEZ.png "sorin theme" | ||||
| [3]: http://git-scm.com | ||||
| [1]: https://www.zsh.org | ||||
| [2]: https://i.imgur.com/nrGV6pg.png "sorin theme" | ||||
| [3]: https://git-scm.com | ||||
| [4]: https://github.com | ||||
| [5]: http://gitimmersion.com | ||||
| [6]: http://gitref.org | ||||
| [5]: https://gitimmersion.com | ||||
| [6]: https://git.github.io/git-reference/ | ||||
| [7]: http://www.bash2zsh.com/zsh_refcard/refcard.pdf | ||||
| [8]: http://grml.org/zsh/zsh-lovers.html | ||||
| [9]: http://www.cygwin.com | ||||
|  | ||||
| [8]: https://grml.org/zsh/zsh-lovers.html | ||||
| [9]: modules#readme | ||||
| [10]: runcoms#readme | ||||
| [11]: modules/git#readme | ||||
|   | ||||
							
								
								
									
										133
									
								
								init.zsh
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								init.zsh
									
									
									
									
									
								
							| @@ -12,11 +12,60 @@ | ||||
| # Check for the minimum supported version. | ||||
| min_zsh_version='4.3.11' | ||||
| if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then | ||||
|   print "prezto: old shell detected, minimum required: $min_zsh_version" >&2 | ||||
|   printf "prezto: old shell detected, minimum required: %s\n" "$min_zsh_version" >&2 | ||||
|   return 1 | ||||
| fi | ||||
| unset min_zsh_version | ||||
|  | ||||
| # zprezto convenience updater | ||||
| # The function is surrounded by ( ) instead of { } so it starts in a subshell | ||||
| # and won't affect the environment of the calling shell | ||||
| function zprezto-update { | ||||
|   ( | ||||
|     function cannot-fast-forward { | ||||
|       local STATUS="$1" | ||||
|       [[ -n "${STATUS}" ]] && printf "%s\n" "${STATUS}" | ||||
|       printf "Unable to fast-forward the changes. You can fix this by " | ||||
|       printf "running\ncd '%s' and then\n'git pull' " "${ZPREZTODIR}" | ||||
|       printf "to manually pull and possibly merge in changes\n" | ||||
|     } | ||||
|     cd -q -- "${ZPREZTODIR}" || return 7 | ||||
|     local orig_branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d '/' -f 3)" | ||||
|     if [[ "$orig_branch" == "master" ]]; then | ||||
|       git fetch || return "$?" | ||||
|       local UPSTREAM=$(git rev-parse '@{u}') | ||||
|       local LOCAL=$(git rev-parse HEAD) | ||||
|       local REMOTE=$(git rev-parse "$UPSTREAM") | ||||
|       local BASE=$(git merge-base HEAD "$UPSTREAM") | ||||
|       if [[ $LOCAL == $REMOTE ]]; then | ||||
|         printf "There are no updates.\n" | ||||
|         return 0 | ||||
|       elif [[ $LOCAL == $BASE ]]; then | ||||
|         printf "There is an update available. Trying to pull.\n\n" | ||||
|         if git pull --ff-only; then | ||||
|           printf "Syncing submodules\n" | ||||
|           git submodule sync --recursive | ||||
|           git submodule update --init --recursive | ||||
|           return $? | ||||
|         else | ||||
|           cannot-fast-forward | ||||
|           return 1 | ||||
|         fi | ||||
|       elif [[ $REMOTE == $BASE ]]; then | ||||
|         cannot-fast-forward "Commits in master that aren't in upstream." | ||||
|         return 1 | ||||
|       else | ||||
|         cannot-fast-forward "Upstream and local have diverged." | ||||
|         return 1 | ||||
|       fi | ||||
|     else | ||||
|       printf "zprezto install at '%s' is not on the master branch " "${ZPREZTODIR}" | ||||
|       printf "(you're on '%s')\nUnable to automatically update.\n" "${orig_branch}" | ||||
|       return 1 | ||||
|     fi | ||||
|     return 1 | ||||
|   ) | ||||
| } | ||||
| # | ||||
| # Module Loader | ||||
| # | ||||
| @@ -24,44 +73,70 @@ unset min_zsh_version | ||||
| # Loads Prezto modules. | ||||
| function pmodload { | ||||
|   local -a pmodules | ||||
|   local -a pmodule_dirs | ||||
|   local -a locations | ||||
|   local pmodule | ||||
|   local pfunction_glob='^([_.]*|prompt_*_setup|README*)(.N:t)' | ||||
|   local pmodule_location | ||||
|   local pfunction_glob='^([_.]*|prompt_*_setup|README*|*~)(-.N:t)' | ||||
|  | ||||
|   # Load in any additional directories and warn if they don't exist | ||||
|   zstyle -a ':prezto:load' pmodule-dirs 'user_pmodule_dirs' | ||||
|   for user_dir in "$user_pmodule_dirs[@]"; do | ||||
|     if [[ ! -d "$user_dir" ]]; then | ||||
|       echo "$0: Missing user module dir: $user_dir" | ||||
|     fi | ||||
|   done | ||||
|  | ||||
|   pmodule_dirs=("$ZPREZTODIR/modules" "$ZPREZTODIR/contrib" "$user_pmodule_dirs[@]") | ||||
|  | ||||
|   # $argv is overridden in the anonymous function. | ||||
|   pmodules=("$argv[@]") | ||||
|  | ||||
|   # Add functions to $fpath. | ||||
|   fpath=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath) | ||||
|  | ||||
|   function { | ||||
|     local pfunction | ||||
|  | ||||
|     # Extended globbing is needed for listing autoloadable function directories. | ||||
|     setopt LOCAL_OPTIONS EXTENDED_GLOB | ||||
|  | ||||
|     # Load Prezto functions. | ||||
|     for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do | ||||
|       autoload -Uz "$pfunction" | ||||
|     done | ||||
|   } | ||||
|  | ||||
|   # Load Prezto modules. | ||||
|   for pmodule in "$pmodules[@]"; do | ||||
|     if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then | ||||
|       continue | ||||
|     elif [[ ! -d "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule" ]]; then | ||||
|       print "$0: no such module: $pmodule" >&2 | ||||
|       continue | ||||
|     else | ||||
|       if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" ]]; then | ||||
|         source "${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/init.zsh" | ||||
|       locations=(${pmodule_dirs:+${^pmodule_dirs}/$pmodule(-/FN)}) | ||||
|       if (( ${#locations} > 1 )); then | ||||
|         if ! zstyle -t ':prezto:load' pmodule-allow-overrides 'yes'; then | ||||
|           print "$0: conflicting module locations: $locations" | ||||
|           continue | ||||
|         fi | ||||
|       elif (( ${#locations} < 1 )); then | ||||
|         print "$0: no such module: $pmodule" | ||||
|         continue | ||||
|       fi | ||||
|  | ||||
|       # Grab the full path to this module | ||||
|       pmodule_location=${locations[-1]} | ||||
|  | ||||
|       # Add functions to $fpath. | ||||
|       fpath=(${pmodule_location}/functions(-/FN) $fpath) | ||||
|  | ||||
|       function { | ||||
|         local pfunction | ||||
|  | ||||
|         # Extended globbing is needed for listing autoloadable function directories. | ||||
|         setopt LOCAL_OPTIONS EXTENDED_GLOB | ||||
|  | ||||
|         # Load Prezto functions. | ||||
|         for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do | ||||
|           autoload -Uz "$pfunction" | ||||
|         done | ||||
|       } | ||||
|  | ||||
|       if [[ -s "${pmodule_location}/init.zsh" ]]; then | ||||
|         source "${pmodule_location}/init.zsh" | ||||
|       elif [[ -s "${pmodule_location}/${pmodule}.plugin.zsh" ]]; then | ||||
|         source "${pmodule_location}/${pmodule}.plugin.zsh" | ||||
|       fi | ||||
|  | ||||
|       if (( $? == 0 )); then | ||||
|         zstyle ":prezto:module:$pmodule" loaded 'yes' | ||||
|       else | ||||
|         # Remove the $fpath entry. | ||||
|         fpath[(r)${ZDOTDIR:-$HOME}/.zprezto/modules/${pmodule}/functions]=() | ||||
|         fpath[(r)${pmodule_location}/functions]=() | ||||
|  | ||||
|         function { | ||||
|           local pfunction | ||||
| @@ -71,7 +146,7 @@ function pmodload { | ||||
|           setopt LOCAL_OPTIONS EXTENDED_GLOB | ||||
|  | ||||
|           # Unload Prezto functions. | ||||
|           for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/$pmodule/functions/$~pfunction_glob; do | ||||
|           for pfunction in ${pmodule_location}/functions/$~pfunction_glob; do | ||||
|             unfunction "$pfunction" | ||||
|           done | ||||
|         } | ||||
| @@ -86,6 +161,12 @@ function pmodload { | ||||
| # Prezto Initialization | ||||
| # | ||||
|  | ||||
| # This finds the directory prezto is installed to so plugin managers don't need | ||||
| # to rely on dirty hacks to force prezto into a directory. Additionally, it | ||||
| # needs to be done here because inside the pmodload function ${0:h} evaluates to | ||||
| # the current directory of the shell rather than the prezto dir. | ||||
| ZPREZTODIR=${0:h} | ||||
|  | ||||
| # Source the Prezto configuration file. | ||||
| if [[ -s "${ZDOTDIR:-$HOME}/.zpreztorc" ]]; then | ||||
|   source "${ZDOTDIR:-$HOME}/.zpreztorc" | ||||
| @@ -102,6 +183,9 @@ zstyle -a ':prezto:load' zmodule 'zmodules' | ||||
| for zmodule ("$zmodules[@]") zmodload "zsh/${(z)zmodule}" | ||||
| unset zmodule{s,} | ||||
|  | ||||
| # Load more specific 'run-help' function from $fpath. | ||||
| (( $+aliases[run-help] )) && unalias run-help && autoload -Uz run-help | ||||
|  | ||||
| # Autoload Zsh functions. | ||||
| zstyle -a ':prezto:load' zfunction 'zfunctions' | ||||
| for zfunction ("$zfunctions[@]") autoload -Uz "$zfunction" | ||||
| @@ -111,4 +195,3 @@ unset zfunction{s,} | ||||
| zstyle -a ':prezto:load' pmodule 'pmodules' | ||||
| pmodload "$pmodules[@]" | ||||
| unset pmodules | ||||
|  | ||||
|   | ||||
| @@ -1,195 +1,166 @@ | ||||
| Modules | ||||
| ======= | ||||
| # Modules | ||||
|  | ||||
| Load modules in *zpreztorc*. The order matters. | ||||
| Load modules in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. The order matters. | ||||
|  | ||||
|     zstyle ':prezto:load' pmodule 'environment' 'terminal' | ||||
| ```sh | ||||
| zstyle ':prezto:load' pmodule 'environment' 'terminal' | ||||
| ``` | ||||
|  | ||||
| Archive | ||||
| ------- | ||||
| ## Archive | ||||
|  | ||||
| Provides functions to list and extract archives. | ||||
|  | ||||
| Command-Not-Found | ||||
| ----------------- | ||||
| ## Autosuggestions | ||||
|  | ||||
| Loads the command-not-found tool on Debian-based distributions. | ||||
| Integrates zsh-autosuggestions into Prezto. | ||||
|  | ||||
| Completion | ||||
| ---------- | ||||
| ## Command-Not-Found | ||||
|  | ||||
| Loads and configures tab completion and provides additional completions from | ||||
| the zsh-completions project. | ||||
| Loads the command-not-found tool on macOS or Debian-based distributions. | ||||
|  | ||||
| Directory | ||||
| --------- | ||||
| ## Completion | ||||
|  | ||||
| Loads and configures <kbd>TAB</kbd> completion and provides additional | ||||
| completions from the zsh-completions project. | ||||
|  | ||||
| ## Directory | ||||
|  | ||||
| Sets directory options and defines directory aliases. | ||||
|  | ||||
| Dpkg | ||||
| ---- | ||||
| ## DNF | ||||
|  | ||||
| Defines dpkg aliases and functions. | ||||
| Defines _dnf_ aliases. | ||||
|  | ||||
| Editor | ||||
| ------ | ||||
| ## Dpkg | ||||
|  | ||||
| Defines _dpkg_ aliases and functions. | ||||
|  | ||||
| ## Editor | ||||
|  | ||||
| Sets key bindings. | ||||
|  | ||||
| Emacs | ||||
| ----- | ||||
| ## Emacs | ||||
|  | ||||
| Enables Emacs dependency management. | ||||
|  | ||||
| Environment | ||||
| ----------- | ||||
| ## Environment | ||||
|  | ||||
| Sets general shell options and defines environment variables. | ||||
|  | ||||
| Fasd | ||||
| ---- | ||||
| ## Fasd | ||||
|  | ||||
| Maintains a frequently used file and directory list for fast access. | ||||
|  | ||||
| Git | ||||
| --- | ||||
| ## Git | ||||
|  | ||||
| Enhances the Git distributed version control system by providing aliases, | ||||
| functions and by exposing repository status information to prompts. | ||||
|  | ||||
| GNU Utility | ||||
| ----------- | ||||
| ## GNU Utility | ||||
|  | ||||
| Provides for the interactive use of GNU utilities on non-GNU systems. | ||||
|  | ||||
| GPG | ||||
| --- | ||||
| ## GPG | ||||
|  | ||||
| Provides for an easier use of GPG by setting up gpg-agent. | ||||
|  | ||||
| Haskell | ||||
| ------- | ||||
| ## Haskell | ||||
|  | ||||
| Enables local Haskell package installation. | ||||
|  | ||||
| Helper | ||||
| ------ | ||||
| ## Helper | ||||
|  | ||||
| Provides helper functions for developing modules. | ||||
|  | ||||
| History | ||||
| ------- | ||||
| ## History | ||||
|  | ||||
| Sets history options and defines history aliases. | ||||
|  | ||||
| History Substring Search | ||||
| ------------------------ | ||||
| ## History Substring Search | ||||
|  | ||||
| Integrates zsh-history-substring-search into Prezto. | ||||
|  | ||||
| Homebrew | ||||
| -------- | ||||
| ## Homebrew | ||||
|  | ||||
| Defines Homebrew aliases. | ||||
|  | ||||
| Macports | ||||
| -------- | ||||
| ## MacPorts | ||||
|  | ||||
| Defines MacPorts aliases and adds MacPorts directories to path variables. | ||||
|  | ||||
| Node.js | ||||
| ------- | ||||
| ## Node.js | ||||
|  | ||||
| Provides utility functions for Node.js and loads npm completion. | ||||
|  | ||||
| Ocaml | ||||
| ----- | ||||
| ## OCaml | ||||
|  | ||||
| Initializes Ocaml package management. | ||||
| Initializes OCaml package management. | ||||
|  | ||||
| OSX | ||||
| --- | ||||
| ## OSX | ||||
|  | ||||
| Defines Mac OS X aliases and functions. | ||||
| Defines macOS aliases and functions. | ||||
|  | ||||
| Pacman | ||||
| ------ | ||||
| ## Pacman | ||||
|  | ||||
| Provides aliases and functions for the Pacman package manager and frontends. | ||||
|  | ||||
| Perl | ||||
| ---- | ||||
| ## Perl | ||||
|  | ||||
| Enables local Perl module installation on Mac OS X and defines alises. | ||||
| Enables local Perl module installation on macOS and defines alises. | ||||
|  | ||||
| Prompt | ||||
| ------ | ||||
| ## Prompt | ||||
|  | ||||
| Loads prompt themes. | ||||
|  | ||||
| Python | ||||
| ------ | ||||
| ## Python | ||||
|  | ||||
| Enables local Python and local Python package installation. | ||||
|  | ||||
| Ruby on Rails | ||||
| ------------- | ||||
| ## Ruby on Rails | ||||
|  | ||||
| Defines Ruby on Rails aliases. | ||||
|  | ||||
| Rsync | ||||
| ----- | ||||
| ## Rsync | ||||
|  | ||||
| Defines rsync aliases. | ||||
|  | ||||
| Ruby | ||||
| ---- | ||||
| ## Ruby | ||||
|  | ||||
| Configures Ruby local gem installation, loads version managers, and defines | ||||
| aliases. | ||||
|  | ||||
| GNU Screen | ||||
| ---------- | ||||
| ## GNU Screen | ||||
|  | ||||
| Defines GNU Screen aliases and provides for auto launching it at start-up. | ||||
|  | ||||
| Spectrum | ||||
| -------- | ||||
| ## Spectrum | ||||
|  | ||||
| Provides for easier use of 256 colors and effects. | ||||
|  | ||||
| SSH | ||||
| --- | ||||
| ## SSH | ||||
|  | ||||
| Provides for an easier use of SSH by setting up ssh-agent. | ||||
|  | ||||
| Syntax Highlighting | ||||
| ------------------- | ||||
| ## Syntax Highlighting | ||||
|  | ||||
| Integrates zsh-syntax-highlighting into Prezto. | ||||
|  | ||||
| Terminal | ||||
| -------- | ||||
| ## Terminal | ||||
|  | ||||
| Sets terminal window and tab titles. | ||||
|  | ||||
| Tmux | ||||
| ---- | ||||
| ## Tmux | ||||
|  | ||||
| Defines tmux aliases and provides for auto launching it at start-up. | ||||
|  | ||||
| Utility | ||||
| ------- | ||||
| ## Utility | ||||
|  | ||||
| Defines general aliases and functions. | ||||
|  | ||||
| Wake-on-LAN | ||||
| ----------- | ||||
| ## Wake-on-LAN | ||||
|  | ||||
| This module provides a wrapper around the wakeonlan tool. | ||||
|  | ||||
| Yum | ||||
| --- | ||||
| ## Yum | ||||
|  | ||||
| Defines yum aliases. | ||||
|  | ||||
|   | ||||
| @@ -1,41 +1,53 @@ | ||||
| Archive | ||||
| ======= | ||||
| # Archive | ||||
|  | ||||
| Provides functions to list and extract archives. | ||||
| Provides functions to create, list, and extract archives. | ||||
|  | ||||
| Functions | ||||
| --------- | ||||
| This module must be loaded _before_ the [_`completion`_][1] module so that the | ||||
| provided completion definitions are loaded automatically by _`completion`_ | ||||
| module. | ||||
|  | ||||
|   - `lsarchive` lists the contents of one or more archives. | ||||
|   - `unarchive` extracts the contents of one or more archives. | ||||
| ## Functions | ||||
|  | ||||
| Supported Formats | ||||
| ----------------- | ||||
| - `archive` creates an archive based on the provided archive name. | ||||
| - `lsarchive` lists the contents of one or more archives. | ||||
| - `unarchive` extracts the contents of one or more archives. | ||||
|  | ||||
| ## Supported Formats | ||||
|  | ||||
| The following archive formats are supported when the required utilities are | ||||
| installed: | ||||
|  | ||||
|   - *.tar.gz*, *.tgz* require `tar`. | ||||
|   - *.tar.bz2*, *.tbz* require `tar`. | ||||
|   - *.tar.xz*, *.txz* require `tar` with *xz* support. | ||||
|   - *.tar.zma*, *.tlz* require `tar` with *lzma* support. | ||||
|   - *.tar* requires `tar`. | ||||
|   - *.gz* requires `gunzip`. | ||||
|   - *.bz2* requires `bunzip2`. | ||||
|   - *.xz* requires `unxz`. | ||||
|   - *.lzma* requires `unlzma`. | ||||
|   - *.Z* requires `uncompress`. | ||||
|   - *.zip* requires `unzip`. | ||||
|   - *.rar* requires `unrar` or `rar`. | ||||
|   - *.7z* requires `7za`. | ||||
|   - *.deb* requires `ar`, `tar`. | ||||
| - _.tar.gz_, _.tgz_ require `tar` (optionally `pigz`). | ||||
| - _.tar.bz2_, _.tbz_ require `tar` (optionally `pbzip2`). | ||||
| - _.tar.xz_, _.txz_ require `tar` with _xz_ support. | ||||
| - _.tar.zma_, _.tlz_ require `tar` with _lzma_ support. | ||||
| - _.tar_ requires `tar`. | ||||
| - _.gz_ requires `gunzip`. | ||||
| - _.bz2_ requires `bunzip2`. | ||||
| - _.xz_ requires `unxz`. | ||||
| - _.lzma_ requires `unlzma`. | ||||
| - _.Z_ requires `uncompress`. | ||||
| - _.zip_, _.jar_ requires `unzip`. | ||||
| - _.rar_ requires `rar` (needed for `archive` support), `unrar` or `lsar` and `unar`. | ||||
| - _.7z_ requires `7za`. | ||||
| - _.deb_ requires `ar`, `tar`. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| Additionally, if `pigz` and/or `pbzip2` are installed, `archive` will use them | ||||
| over their traditional counterparts, `gzip` and `bzip2` respectively, to take | ||||
| full advantage of all available CPU cores for compression. | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| ## Alternatives | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| Specifically on macOS, [The Unarchiver][2] provides a similar command line tool | ||||
| which doesn't depend on a number of other programs being installed. | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][3]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Matt Hamilton](https://github.com/Eriner) | ||||
|  | ||||
| [1]: ../completion#readme | ||||
| [2]: https://theunarchiver.com/command-line | ||||
| [3]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -10,5 +10,4 @@ | ||||
|  | ||||
| _arguments \ | ||||
|   '(-v --verbose)'{-v,--remove}'[verbose archive listing]' \ | ||||
|   "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z)(-.)'" && return 0 | ||||
|  | ||||
|   "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z)(-.)'" && return 0 | ||||
|   | ||||
| @@ -10,5 +10,4 @@ | ||||
|  | ||||
| _arguments \ | ||||
|   '(-r --remove)'{-r,--remove}'[remove archive]' \ | ||||
|   "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z|deb)(-.)'" && return 0 | ||||
|  | ||||
|   "*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|zst|jar|rar|7z|deb)(-.)'" && return 0 | ||||
|   | ||||
							
								
								
									
										75
									
								
								modules/archive/functions/archive
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								modules/archive/functions/archive
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| # | ||||
| # Creates archive file | ||||
| # | ||||
| # Authors: | ||||
| #   Matt Hamilton <m@tthamilton.com> | ||||
| # | ||||
|  | ||||
| # function archive { | ||||
|  | ||||
| local archive_name path_to_archive _gzip_bin _bzip2_bin _xz_bin _zstd_bin | ||||
|  | ||||
| if (( $# < 2 )); then | ||||
|   cat >&2 <<EOF | ||||
| usage: $0 [archive_name.zip] [/path/to/include/into/archive ...] | ||||
|  | ||||
| Where 'archive.zip' uses any of the following extensions: | ||||
|  | ||||
| .tar.gz, .tar.bz2, .tar.xz, .tar.lzma, .tar.zst, .tar, .zip, .rar, .7z | ||||
|  | ||||
| There is no '-v' switch; all operations are verbose. | ||||
| EOF | ||||
| return 1 | ||||
| fi | ||||
|  | ||||
| # we are quitting (above) if there are not exactly 2 vars, | ||||
| #  so we don't need any argc check here. | ||||
|  | ||||
| # strip the path, just in case one is provided for some reason | ||||
| archive_name="${1:t}" | ||||
| # let paths be handled by actual archive helper | ||||
| path_to_archive="${@:2}" | ||||
|  | ||||
| # here, we check for dropin/multi-threaded replacements | ||||
| # this should eventually be moved to modules/archive/init.zsh | ||||
| # as a global alias | ||||
| if (( $+commands[pigz] )); then | ||||
|   _gzip_bin='pigz' | ||||
| else | ||||
|   _gzip_bin='gzip' | ||||
| fi | ||||
|  | ||||
| if (( $+commands[pixz] )); then | ||||
|   _xz_bin='pixz' | ||||
| else | ||||
|   _xz_bin='xz' | ||||
| fi | ||||
|  | ||||
| if (( $+commands[lbzip2] )); then | ||||
|   _bzip2_bin='lbzip2' | ||||
| elif (( $+commands[pbzip2] )); then | ||||
|   _bzip2_bin='pbzip2' | ||||
| else | ||||
|   _bzip2_bin='bzip2' | ||||
| fi | ||||
|  | ||||
| _zstd_bin='zstd' | ||||
|  | ||||
| case "${archive_name}" in | ||||
|   (*.tar.gz|*.tgz) tar -cvf "${archive_name}" --use-compress-program="${_gzip_bin}" "${=path_to_archive}" ;; | ||||
|   (*.tar.bz2|*.tbz|*.tbz2) tar -cvf "${archive_name}" --use-compress-program="${_bzip2_bin}" "${=path_to_archive}" ;; | ||||
|   (*.tar.xz|*.txz) tar -cvf "${archive_name}" --use-compress-program="${_xz_bin}" "${=path_to_archive}" ;; | ||||
|   (*.tar.lzma|*.tlz) tar -cvf "${archive_name}" --lzma "${=path_to_archive}" ;; | ||||
|   (*.tar.zst|*.tzst) tar -cvf "${archive_name}" --use-compress-program="${_zstd_bin}" "${=path_to_archive}" ;; | ||||
|   (*.tar) tar -cvf "${archive_name}" "${=path_to_archive}" ;; | ||||
|   (*.zip|*.jar) zip -r "${archive_name}" "${=path_to_archive}" ;; | ||||
|   (*.rar) rar a "${archive_name}" "${=path_to_archive}" ;; | ||||
|   (*.7z) 7za a "${archive_name}" "${=path_to_archive}" ;; | ||||
|   (*.gz) print "\n.gz is only useful for single files, and does not capture permissions. Use .tar.gz" ;; | ||||
|   (*.bz2) print "\n.bzip2 is only useful for single files, and does not capture permissions. Use .tar.bz2" ;; | ||||
|   (*.xz) print "\n.xz is only useful for single files, and does not capture permissions. Use .tar.xz" ;; | ||||
|   (*.lzma) print "\n.lzma is only useful for single files, and does not capture permissions. Use .tar.lzma" ;; | ||||
|   (*) print "\nunknown archive type for archive: ${archive_name}" ;; | ||||
| esac | ||||
|  | ||||
| # } | ||||
| @@ -5,6 +5,8 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # function lsarchive { | ||||
|  | ||||
| local verbose | ||||
|  | ||||
| if (( $# == 0 )); then | ||||
| @@ -30,7 +32,7 @@ while (( $# > 0 )); do | ||||
|     continue | ||||
|   fi | ||||
|  | ||||
|   case "$1" in | ||||
|   case "$1:l" in | ||||
|     (*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;; | ||||
|     (*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;; | ||||
|     (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ | ||||
| @@ -39,14 +41,17 @@ while (( $# > 0 )); do | ||||
|     (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ | ||||
|       && tar --lzma -t${verbose:+v}f "$1" \ | ||||
|       || lzcat "$1" | tar x${verbose:+v}f - ;; | ||||
|     (*.tar.zst|*.tzst) tar -I zstd -t${verbose:+v}f "$1" ;; | ||||
|     (*.tar) tar t${verbose:+v}f "$1" ;; | ||||
|     (*.zip) unzip -l${verbose:+v} "$1" ;; | ||||
|     (*.rar) unrar &> /dev/null \ | ||||
|       && unrar ${${verbose:+v}:-l} "$1" \ | ||||
|       || rar ${${verbose:+v}:-l} "$1" ;; | ||||
|     (*.zip|*.jar) unzip -l${verbose:+v} "$1" ;; | ||||
|     (*.rar) ( (( $+commands[unrar] )) \ | ||||
|       && unrar ${${verbose:+v}:-l} "$1" ) \ | ||||
|       || ( (( $+commands[rar] )) \ | ||||
|       && rar ${${verbose:+v}:-l} "$1" ) \ | ||||
|       || lsar ${verbose:+-l} "$1" ;; | ||||
|     (*.7z) 7za l "$1" ;; | ||||
|     (*) | ||||
| 			print "$0: cannot list: $1" >&2 | ||||
|       print "$0: cannot list: $1" >&2 | ||||
|       success=1 | ||||
|     ;; | ||||
|   esac | ||||
| @@ -54,3 +59,4 @@ while (( $# > 0 )); do | ||||
|   shift | ||||
| done | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,10 +5,14 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # function unarchive { | ||||
|  | ||||
| local remove_archive | ||||
| local success | ||||
| local file_name | ||||
| local file_path | ||||
| local extract_dir | ||||
| local _gzip_bin _bzip2_bin _xz_bin _zstd_bin | ||||
|  | ||||
| if (( $# == 0 )); then | ||||
|   cat >&2 <<EOF | ||||
| @@ -27,6 +31,31 @@ if [[ "$1" == "-r" || "$1" == "--remove" ]]; then | ||||
|   shift | ||||
| fi | ||||
|  | ||||
| # here, we check for dropin/multi-threaded replacements | ||||
| # this should eventually be moved to modules/archive/init.zsh | ||||
| # as a global alias | ||||
| if (( $+commands[unpigz] )); then | ||||
|   _gzip_bin='unpigz' | ||||
| else | ||||
|   _gzip_bin='gunzip' | ||||
| fi | ||||
|  | ||||
| if (( $+commands[pixz] )); then | ||||
|   _xz_bin='pixz' | ||||
| else | ||||
|   _xz_bin='xz' | ||||
| fi | ||||
|  | ||||
| if (( $+commands[lbunzip2] )); then | ||||
|   _bzip2_bin='lbunzip2' | ||||
| elif (( $+commands[pbunzip2] )); then | ||||
|   _bzip2_bin='pbunzip2' | ||||
| else | ||||
|   _bzip2_bin='bunzip2' | ||||
| fi | ||||
|  | ||||
| _zstd_bin='zstd' | ||||
|  | ||||
| while (( $# > 0 )); do | ||||
|   if [[ ! -s "$1" ]]; then | ||||
|     print "$0: file not valid: $1" >&2 | ||||
| @@ -36,34 +65,36 @@ while (( $# > 0 )); do | ||||
|  | ||||
|   success=0 | ||||
|   file_name="${1:t}" | ||||
|   file_path="${1:A}" | ||||
|   extract_dir="${file_name:r}" | ||||
|   case "$1" in | ||||
|     (*.tar.gz|*.tgz) tar xvzf "$1" ;; | ||||
|     (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; | ||||
|     (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ | ||||
|       && tar --xz -xvf "$1" \ | ||||
|       || xzcat "$1" | tar xvf - ;; | ||||
|   case "$1:l" in | ||||
|     (*.tar.gz|*.tgz) tar -xvf "$1" --use-compress-program="${_gzip_bin}" ;; | ||||
|     (*.tar.bz2|*.tbz|*.tbz2) tar -xvf "$1" --use-compress-program="${_bzip2_bin}" ;; | ||||
|     (*.tar.xz|*.txz) tar -xvf "$1" --use-compress-program="${_xz_bin}" ;; | ||||
|     (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ | ||||
|       && tar --lzma -xvf "$1" \ | ||||
|       || lzcat "$1" | tar xvf - ;; | ||||
|     (*.tar) tar xvf "$1" ;; | ||||
|       || lzcat "$1" | tar -xvf - ;; | ||||
|     (*.tar.zst|*.tzst) tar -xvf "$1" --use-compress-program="${_zstd_bin}" ;; | ||||
|     (*.tar) tar -xvf "$1" ;; | ||||
|     (*.gz) gunzip "$1" ;; | ||||
|     (*.bz2) bunzip2 "$1" ;; | ||||
|     (*.xz) unxz "$1" ;; | ||||
|     (*.lzma) unlzma "$1" ;; | ||||
|     (*.Z) uncompress "$1" ;; | ||||
|     (*.zip) unzip "$1" -d $extract_dir ;; | ||||
|     (*.rar) unrar &> /dev/null \ | ||||
|       && unrar e -ad "$1" \ | ||||
|       || rar e -ad "$1" ;; | ||||
|     (*.zip|*.jar) unzip "$1" -d $extract_dir ;; | ||||
|     (*.rar) ( (( $+commands[unrar] )) \ | ||||
|       && unrar x -ad "$1" ) \ | ||||
|       || ( (( $+commands[rar] )) \ | ||||
|       && rar x -ad "$1" ) \ | ||||
|       || unar -d "$1" ;; | ||||
|     (*.7z) 7za x "$1" ;; | ||||
|     (*.deb) | ||||
|       mkdir -p "$extract_dir/control" | ||||
|       mkdir -p "$extract_dir/data" | ||||
|       cd "$extract_dir"; ar vx "../${1}" > /dev/null | ||||
|       cd control; tar xzvf ../control.tar.gz | ||||
|       cd ../data; tar xzvf ../data.tar.gz | ||||
|       cd ..; rm *.tar.gz debian-binary | ||||
|       cd "$extract_dir"; ar vx "${file_path}" > /dev/null | ||||
|       cd control; tar xvf ../control.tar.* | ||||
|       cd ../data; tar xvf ../data.tar.* | ||||
|       cd ..; rm control.tar.* data.tar.* debian-binary | ||||
|       cd .. | ||||
|     ;; | ||||
|     (*) | ||||
| @@ -73,7 +104,8 @@ while (( $# > 0 )); do | ||||
|   esac | ||||
|  | ||||
|   (( success = $success > 0 ? $success : $? )) | ||||
|   (( $success == 0 && $remove_archive == 0 )) && rm "$1" | ||||
|   (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1" | ||||
|   shift | ||||
| done | ||||
|  | ||||
| # } | ||||
|   | ||||
							
								
								
									
										62
									
								
								modules/autosuggestions/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								modules/autosuggestions/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | ||||
| # Autosuggestions | ||||
|  | ||||
| Integrates [zsh-autosuggestions][1] into Prezto, which implements the | ||||
| [Fish shell][2]'s autosuggestions feature, where the user can type in any part | ||||
| of a previously entered command and Zsh suggests commands as you type based on | ||||
| history and completions. | ||||
|  | ||||
| If this module is used in conjunction with the [_`syntax-highlighting`_][3] | ||||
| module, this module must be loaded _after_ the _`syntax-highlighting`_ module. | ||||
|  | ||||
| Additionally, if this module is used in conjunction with the | ||||
| [_`history-substring-search`_][4] module, this module must be loaded _after_ the | ||||
| _`history-substring-search`_ module as well. | ||||
|  | ||||
| To elaborate, the relative order of loading the modules would be | ||||
| _`syntax-highlighting`_, _`history-substring-search`_ and _`autosuggestions`_. | ||||
|  | ||||
| ## Contributors | ||||
|  | ||||
| New features and bug fixes should be submitted to the [zsh-autosuggestions][1] | ||||
| project according to its rules and regulations. This module will be synchronized | ||||
| against it. | ||||
|  | ||||
| ## Settings | ||||
|  | ||||
| ### Highlighting | ||||
|  | ||||
| If colors are enabled, _autosuggestions_ will automatically highlight | ||||
| positive results. | ||||
|  | ||||
| To enable highlighting for this module only, add the following line to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
| ```sh | ||||
| zstyle ':prezto:module:autosuggestions' color 'yes' | ||||
| ``` | ||||
|  | ||||
| To set the query found color, add the following line to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
| ```sh | ||||
| zstyle ':prezto:module:autosuggestions:color' found '' | ||||
| ``` | ||||
|  | ||||
| ## Troubleshooting | ||||
|  | ||||
| ### Autosuggestions from previous sessions don't show up | ||||
|  | ||||
| For autosuggestions from previous shell sessions to work, please make sure you | ||||
| also have the `history` module enabled. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][5]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/tarruda/zsh-autosuggestions | ||||
| [2]: https://fishshell.com | ||||
| [3]: ../syntax-highlighting#readme | ||||
| [4]: ../history-substring-search#readme | ||||
| [5]: https://github.com/sorin-ionescu/prezto/issues | ||||
							
								
								
									
										1
									
								
								modules/autosuggestions/external
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								modules/autosuggestions/external
									
									
									
									
									
										Submodule
									
								
							 Submodule modules/autosuggestions/external added at a411ef3e09
									
								
							
							
								
								
									
										35
									
								
								modules/autosuggestions/init.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								modules/autosuggestions/init.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| # | ||||
| # Integrates zsh-autosuggestions into Prezto. | ||||
| # | ||||
| # Authors: | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # Load dependencies. | ||||
| pmodload 'editor' | ||||
|  | ||||
| # Source module files. | ||||
| source "${0:h}/external/zsh-autosuggestions.zsh" || return 1 | ||||
|  | ||||
| # | ||||
| # Highlighting | ||||
| # | ||||
|  | ||||
| # Set highlight color, default 'fg=8'. | ||||
| zstyle -s ':prezto:module:autosuggestions:color' found \ | ||||
|   'ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE' || ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' | ||||
|  | ||||
| # Disable highlighting. | ||||
| if ! zstyle -t ':prezto:module:autosuggestions' color; then | ||||
|   ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='' | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Key Bindings | ||||
| # | ||||
|  | ||||
| if [[ -n "$key_info" ]]; then | ||||
|   # vi | ||||
|   bindkey -M viins "$key_info[Control]F" vi-forward-word | ||||
|   bindkey -M viins "$key_info[Control]E" vi-add-eol | ||||
| fi | ||||
							
								
								
									
										13
									
								
								modules/aws/functions/_aws_switch_profile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								modules/aws/functions/_aws_switch_profile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| #compdef aws_switch_profile | ||||
| #autoload | ||||
|  | ||||
| if [[ ! -f ~/.aws/credentials ]]; then | ||||
|     return 1 | ||||
| fi | ||||
|  | ||||
| local profiles | ||||
| profiles=$(grep -E "^\[.+\]" ~/.aws/credentials | tr -d '[' | tr -d ']' ) | ||||
|  | ||||
| _arguments "1:toggle:(( | ||||
| $profiles | ||||
| ))" && return 0 | ||||
							
								
								
									
										33
									
								
								modules/aws/functions/aws-info
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/aws/functions/aws-info
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| # | ||||
| # Exposes information about the AWS_PROFILE environment via the $aws_info associative | ||||
| # array. | ||||
| # | ||||
|  | ||||
| # function aws-info { | ||||
|  | ||||
| local profile_format | ||||
| local profile_formatted | ||||
| local aws_prompt | ||||
| local aws_region_prompt | ||||
|  | ||||
| unset aws_info | ||||
| typeset -gA aws_info | ||||
|  | ||||
| if (( ${+AWS_SECRET_ACCESS_KEY} )); then | ||||
|   aws_prompt="${AWS_PROFILE}  " | ||||
| elif (( ${+AWS_PROFILE} )); then | ||||
|     aws_prompt=$AWS_PROFILE | ||||
| fi | ||||
|  | ||||
| if (( ${+AWS_DEFAULT_REGION} )) && [[ ${_aws_region} = "true" ]]; then | ||||
|   AWS_REGION=$(cut -d "-" -f 1 <<<$AWS_DEFAULT_REGION | cut -b 1)$(cut -d "-" -f 2 <<<$AWS_DEFAULT_REGION | cut -b 1)$(cut -d "-" -f 3 <<<$AWS_DEFAULT_REGION | cut -b 1) | ||||
|   aws_region_prompt=" $AWS_REGION" | ||||
| fi | ||||
|  | ||||
| if (( ${+AWS_SECRET_ACCESS_KEY} )) || (( ${+AWS_DEFAULT_REGION} )); then | ||||
|   zstyle -s ':prezto:module:aws:info:profile' format 'profile_format' | ||||
|   zformat -f profile_formatted "$profile_format" "v:${aws_prompt:t}${aws_region_prompt}" | ||||
|   aws_info[profile]="$profile_formatted" | ||||
| fi | ||||
|  | ||||
| # } | ||||
							
								
								
									
										177
									
								
								modules/aws/init.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								modules/aws/init.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,177 @@ | ||||
| # | ||||
| # Defines aws cli aliases/functions. | ||||
| # | ||||
| # Authors: | ||||
| #   Daniel Carrillo | ||||
| # | ||||
|  | ||||
| # Get the output parameter | ||||
| zstyle -s ':prezto:module:aws' output '_aws_output' || _aws_output='table' | ||||
| zstyle -s ':prezto:module:aws' show_region '_aws_region' || _aws_region='false' | ||||
| zstyle -s ':prezto:module:aws' profile '_aws_profile' || _aws_profile='default' | ||||
| zstyle -s ':prezto:module:aws' sso '_aws_sso' || _aws_sso='false' | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if (( ! $+commands[aws] )); then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| function _get_aws_profile { | ||||
|     if [[ -z "${AWS_PROFILE+1}" ]]; then | ||||
|         echo ${_aws_profile} | ||||
|     else | ||||
|         echo $AWS_PROFILE | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function aws_i { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws ec2 describe-instances --profile $profile --output ${_aws_output} \ | ||||
|         --query 'Reservations[].Instances[].[Tags[?Key==`Name`] | [0].Value, LaunchTime, State.Name, | ||||
|                  InstanceType, VpcId, InstanceId, Placement.AvailabilityZone, PrivateIpAddress, PublicIpAddress]' | ||||
| } | ||||
|  | ||||
| function aws_ebs { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws ec2 describe-volumes --profile $profile --output ${_aws_output} \ | ||||
|         --query 'Volumes[].[Tags[?Key==`Name`] | [0].Value, VolumeId, Attachments[0].InstanceId, Size, VolumeType, Iops, AvailabilityZone]' | ||||
| } | ||||
|  | ||||
| function aws_elb { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws elb describe-load-balancers --profile $profile --output ${_aws_output} \ | ||||
|         --query "LoadBalancerDescriptions[*].{type:'elb',scheme:Scheme,dns:DNSName,vpc:VPCId,name:LoadBalancerName,subnets:Subnets[*] | join(',', @)}" | ||||
|  | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws elbv2 describe-load-balancers --profile $profile --output ${_aws_output} \ | ||||
|         --query "LoadBalancers[*].{type:Type,scheme:Scheme,dns:DNSName,vpc:VpcId,name:LoadBalancerName,subnets:AvailabilityZones[*].SubnetId | join(',', @)}" | ||||
| } | ||||
|  | ||||
| function aws_userdata { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws ec2 describe-instance-attribute --profile $profile --output text \ | ||||
|         --attribute userData --instance-id $1 \ | ||||
|         --query 'UserData.Value' | base64 -d | ||||
| } | ||||
|  | ||||
| function aws_vpc { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws ec2 describe-vpcs --profile $profile --output ${_aws_output} \ | ||||
|         --query 'Vpcs[*].{id:VpcId,cidr:CidrBlock,tag:Tags[0].Value}' | ||||
| } | ||||
|  | ||||
| function aws_subnets { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws ec2 describe-subnets --profile $profile --output text \ | ||||
|         --query 'Subnets[].[Tags[?Key==`Name`] | [0].Value, SubnetId, VpcId, CidrBlock]' \ | ||||
|         | sort -k1 | column -t | ||||
| } | ||||
|  | ||||
| function aws_ag { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws autoscaling describe-auto-scaling-groups --profile $profile --output ${_aws_output} \ | ||||
|         --query 'AutoScalingGroups[*].{name:AutoScalingGroupName,az:VPCZoneIdentifier}' | ||||
| } | ||||
|  | ||||
| function aws_ami { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     aws ec2 describe-images --profile $profile --output ${_aws_output} \ | ||||
|         --owner self --query 'Images[*].{date:CreationDate,id:ImageId,name:Name,virt:VirtualizationType,st:State}' | ||||
| } | ||||
|  | ||||
| function aws_kms_decrypt { | ||||
|     local profile=$(_get_aws_profile) | ||||
|  | ||||
|     if [[ -z $1 ]]; then | ||||
|         echo "String is missing" | ||||
|         return 1 | ||||
|     fi | ||||
|     aws kms --profile $profile decrypt --ciphertext-blob fileb://<(base64 -d <<<$1) \ | ||||
|         --output text --query Plaintext | base64 -d | ||||
| } | ||||
|  | ||||
| function aws_ssm_session { | ||||
|     local profile=$(_get_aws_profile) | ||||
|  | ||||
|     if [[ -z $1 ]]; then | ||||
|         echo "Instance id is missing" | ||||
|         return 1 | ||||
|     fi | ||||
|     aws ssm start-session --profile $profile --target $1 | ||||
| } | ||||
|  | ||||
| function aws_ssm_session_any { | ||||
|     local profile=$(_get_aws_profile) | ||||
|     local id | ||||
|  | ||||
|     if [[ -z $1 ]]; then | ||||
|         echo "Instance name is missing" | ||||
|         return 1 | ||||
|     fi | ||||
|  | ||||
|     id=$(aws ec2 describe-instances --profile $profile --output text \ | ||||
|         --filter "Name=tag:Name,Values=$1" "Name=instance-state-name,Values=running" \ | ||||
|         --query 'Reservations[0].Instances[0].InstanceId') | ||||
|     if [[ $2 == "ssh" ]]; then | ||||
|         shift 2 | ||||
|         AWS_PROFILE=$profile ssh $id $@ | ||||
|     else | ||||
|         aws ssm start-session --profile $profile --target $id | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function aws_cf { | ||||
|     local profile=$(_get_aws_profile) | ||||
|  | ||||
|     if ! type "jq" > /dev/null; then | ||||
|       echo "ERROR: this function needs jq to be installed" | ||||
|       return 1 | ||||
|     fi | ||||
|  | ||||
|     aws cloudfront list-distributions --profile $profile --output json \ | ||||
|         --query "DistributionList.Items[*].{id:Id,domain:DomainName,status:Status, | ||||
|                  origin:Origins.Items[].DomainName | join(' ', @), aliases:Aliases.Items | join(' ', @)}" \ | ||||
|         | jq -r ".[] | [.id, .domain, .aliases, .status, .origin] | @csv" | tr -d '"' | column --separator="," --table | ||||
| } | ||||
|  | ||||
| # ~/.ssh/config | ||||
| # | ||||
| # Host i-* | ||||
| #    ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'" | ||||
| #    User <your_user> | ||||
| function ssh_aws_any { | ||||
|     host=$1 | ||||
|     shift | ||||
|     extra_params=$@ | ||||
|     aws_ssm_session_any $host ssh $extra_params | ||||
| } | ||||
|  | ||||
| function aws_switch_profile { | ||||
|     local region | ||||
|  | ||||
|     if [[ -z $1 ]]; then | ||||
|         echo "Profile can't be an empty string" | ||||
|         return 1 | ||||
|     fi | ||||
|  | ||||
|     echo "Activating profile $1..." | ||||
|     unset -m "AWS_*" | ||||
|     export AWS_PROFILE=$1 | ||||
|     if [[ -f ~/.aws/credentials ]]; then #&& (( ! ${+AWS_DEFAULT_REGION} )) | ||||
|       region=$(aws configure get region) | ||||
|       if [[ ! -z $region ]]; then | ||||
|         export AWS_DEFAULT_REGION=$region | ||||
|       else | ||||
|         unset AWS_DEFAULT_REGION | ||||
|       fi | ||||
|  | ||||
|       if [[ ${_aws_sso} == "true" ]]; then | ||||
|         eval $(aws-export-credentials --env-export) | ||||
|       fi | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function aws_deactivate_profile { | ||||
|     echo "Deactivating aws profile..." | ||||
|     unset -m "AWS_*" | ||||
| } | ||||
| @@ -1,16 +1,23 @@ | ||||
| Command-Not-Found | ||||
| ================= | ||||
| # Command-Not-Found | ||||
|  | ||||
| Displays installation information for not found commands by loading the | ||||
| [command-not-found][1] tool on Debian-based and Arch Linux-based distributions. | ||||
| When you try to use a command that is not available locally, searches the | ||||
| package manager for a package offering that command and suggests the proper | ||||
| install command. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| Debian and Arch Linux based distributions use the [`command-not-found`][1] tool. | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][2].* | ||||
| macOS uses Homebrew's [`command-not-found` clone][2]. Note that unless you have | ||||
| a recent version of Homebrew installed, you might also need to tap the | ||||
| `command-not-found` Homebrew repository [following the instructions][3]. | ||||
|  | ||||
|   - [Joseph Booker](https://github.com/sargas) | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][4]._ | ||||
|  | ||||
| - [Joseph Booker](https://github.com/sargas) | ||||
| - [Indrajit Raychaudhuri](https://github.com/indrajitr) | ||||
|  | ||||
| [1]: https://code.launchpad.net/command-not-found | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
| [2]: https://github.com/Homebrew/homebrew-command-not-found | ||||
| [3]: https://github.com/Homebrew/homebrew-command-not-found#install | ||||
| [4]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -3,6 +3,7 @@ | ||||
| # | ||||
| # Authors: | ||||
| #   Joseph Jon Booker <joe@neoturbine.net> | ||||
| #   Indrajit Raychaudhuri <irc+code@indrajit.com> | ||||
| # | ||||
|  | ||||
| # Load command-not-found on Debian-based distributions. | ||||
| @@ -11,8 +12,12 @@ if [[ -s '/etc/zsh_command_not_found' ]]; then | ||||
| # Load command-not-found on Arch Linux-based distributions. | ||||
| elif [[ -s '/usr/share/doc/pkgfile/command-not-found.zsh' ]]; then | ||||
|   source '/usr/share/doc/pkgfile/command-not-found.zsh' | ||||
| # Load command-not-found on macOS when Homebrew tap is configured. | ||||
| elif (( $+commands[brew] )) \ | ||||
|       && [[ -s "${hb_cnf_handler::="$(brew --repository 2> /dev/null)"/Library/Taps/homebrew/homebrew-command-not-found/handler.sh}" ]]; then | ||||
|   source "$hb_cnf_handler" | ||||
|   unset hb_cnf_handler | ||||
| # Return if requirements are not found. | ||||
| else | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
|   | ||||
| @@ -1,24 +1,55 @@ | ||||
| Completion | ||||
| ========== | ||||
| # Completion | ||||
|  | ||||
| Loads and configures tab completion and provides additional completions from | ||||
| the [zsh-completions][1] project. | ||||
| Loads and configures <kbd>TAB</kbd> completion and provides additional | ||||
| completions from the [zsh-completions][1] project. | ||||
|  | ||||
| This module must be loaded **after** the *utility* module. | ||||
| This module must be loaded late _after_ the _`utility`_ module and all other | ||||
| modules that provide completion definitions. | ||||
|  | ||||
| Contributors | ||||
| ------------ | ||||
| ## Options | ||||
|  | ||||
| Completions should be submitted to the [zsh-completions][1] project according | ||||
| to its rules and regulations. This module will be synchronized against it. | ||||
| - `COMPLETE_IN_WORD` complete from both ends of a word. | ||||
| - `ALWAYS_TO_END` move cursor to the end of a completed word. | ||||
| - `PATH_DIRS` perform path search even on command names with slashes. | ||||
| - `AUTO_MENU` show completion menu on a successive <kbd>TAB</kbd> press. | ||||
| - `AUTO_LIST` automatically list choices on ambiguous completion. | ||||
| - `AUTO_PARAM_SLASH` if completed parameter is a directory, add a trailing | ||||
|   slash (`/`). | ||||
| - `EXTENDED_GLOB` needed for file modification glob modifiers with _compinit_. | ||||
| - `MENU_COMPLETE` do not autoselect the first completion entry. | ||||
| - `FLOW_CONTROL` disable start/stop characters in shell editor. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Variables | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][2].* | ||||
| - `LS_COLORS` used by default for Zsh [standard style][2] 'list-colors'. | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| ## Settings | ||||
|  | ||||
| ### Ignore _`/etc/hosts`_ Entries | ||||
|  | ||||
| To ignore certain entries from static _`/etc/hosts`_ for host completion, add | ||||
| the following lines in _`${ZDOTDIR:-$HOME}/.zpreztorc`_ with the IP addresses of | ||||
| the hosts as they appear in _`/etc/hosts`_. Both IP address and the associated | ||||
| hostname(s) will be ignored during host completion. However, some of the entries | ||||
| ignored from _`/etc/hosts`_ still might appear during completion because of | ||||
| their presence in _ssh_ configuration or history). | ||||
|  | ||||
| ```sh | ||||
| zstyle ':prezto:module:completion:*:hosts' etc-host-ignores \ | ||||
|     '0.0.0.0' '127.0.0.1' | ||||
| ``` | ||||
|  | ||||
| ## Contributors | ||||
|  | ||||
| Completions should be submitted to the [zsh-completions][1] project according to | ||||
| its rules and regulations. This module will be synchronized against it. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][3]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/zsh-users/zsh-completions | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
| [2]: https://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles | ||||
| [3]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
 Submodule modules/completion/external updated: 1d6a2aa024...11ad0a45ff
									
								
							| @@ -7,36 +7,73 @@ | ||||
| # | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if [[ "$TERM" == 'dumb' ]]; then | ||||
| if [[ $TERM == 'dumb' ]]; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # Add zsh-completions to $fpath. | ||||
| fpath=("${0:h}/external/src" $fpath) | ||||
| fpath=(${0:h}/external/src $fpath) | ||||
|  | ||||
| # Load and initialize the completion system ignoring insecure directories. | ||||
| autoload -Uz compinit && compinit -i | ||||
| # Add completion for keg-only brewed curl when available. | ||||
| if (( $+commands[brew] )) \ | ||||
|       && [[ -d "${curl_prefix::="$(brew --prefix 2> /dev/null)"/opt/curl}" ]]; then | ||||
|   fpath=($curl_prefix/share/zsh/site-functions $fpath) | ||||
| fi | ||||
| unset curl_prefix | ||||
|  | ||||
| # | ||||
| # Options | ||||
| # | ||||
|  | ||||
| setopt COMPLETE_IN_WORD    # Complete from both ends of a word. | ||||
| setopt ALWAYS_TO_END       # Move cursor to the end of a completed word. | ||||
| setopt PATH_DIRS           # Perform path search even on command names with slashes. | ||||
| setopt AUTO_MENU           # Show completion menu on a succesive tab press. | ||||
| setopt AUTO_LIST           # Automatically list choices on ambiguous completion. | ||||
| setopt AUTO_PARAM_SLASH    # If completed parameter is a directory, add a trailing slash. | ||||
| unsetopt MENU_COMPLETE     # Do not autoselect the first completion entry. | ||||
| unsetopt FLOW_CONTROL      # Disable start/stop characters in shell editor. | ||||
| setopt COMPLETE_IN_WORD     # Complete from both ends of a word. | ||||
| setopt ALWAYS_TO_END        # Move cursor to the end of a completed word. | ||||
| setopt PATH_DIRS            # Perform path search even on command names with slashes. | ||||
| setopt AUTO_MENU            # Show completion menu on a successive tab press. | ||||
| setopt AUTO_LIST            # Automatically list choices on ambiguous completion. | ||||
| setopt AUTO_PARAM_SLASH     # If completed parameter is a directory, add a trailing slash. | ||||
| setopt EXTENDED_GLOB        # Needed for file modification glob modifiers with compinit. | ||||
| unsetopt MENU_COMPLETE      # Do not autoselect the first completion entry. | ||||
| unsetopt FLOW_CONTROL       # Disable start/stop characters in shell editor. | ||||
|  | ||||
| # | ||||
| # Variables | ||||
| # | ||||
|  | ||||
| # Standard style used by default for 'list-colors' | ||||
| LS_COLORS=${LS_COLORS:-'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33;01:su=31;40;07:sg=36;40;07:tw=32;40;07:ow=33;40;07:'} | ||||
|  | ||||
| # | ||||
| # Initialization | ||||
| # | ||||
|  | ||||
| # Load and initialize the completion system ignoring insecure directories with a | ||||
| # cache time of 20 hours, so it should almost always regenerate the first time a | ||||
| # shell is opened each day. | ||||
| autoload -Uz compinit | ||||
| _comp_path="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompdump" | ||||
| # #q expands globs in conditional expressions | ||||
| if [[ $_comp_path(#qNmh-20) ]]; then | ||||
|   # -C (skip function check) implies -i (skip security check). | ||||
|   compinit -C -d "$_comp_path" | ||||
| else | ||||
|   mkdir -p "$_comp_path:h" | ||||
|   compinit -i -d "$_comp_path" | ||||
|   # Keep $_comp_path younger than cache time even if it isn't regenerated. | ||||
|   touch "$_comp_path" | ||||
| fi | ||||
| unset _comp_path | ||||
|  | ||||
| # | ||||
| # Styles | ||||
| # | ||||
|  | ||||
| # Use caching to make completion for cammands such as dpkg and apt usable. | ||||
| # Defaults. | ||||
| zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} | ||||
| zstyle ':completion:*:default' list-prompt '%S%M matches%s' | ||||
|  | ||||
| # Use caching to make completion for commands such as dpkg and apt usable. | ||||
| zstyle ':completion::complete:*' use-cache on | ||||
| zstyle ':completion::complete:*' cache-path "${ZDOTDIR:-$HOME}/.zcompcache" | ||||
| zstyle ':completion::complete:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/prezto/zcompcache" | ||||
|  | ||||
| # Case-insensitive (all), partial-word, and then substring completion. | ||||
| if zstyle -t ':prezto:module:completion:*' case-sensitive; then | ||||
| @@ -56,7 +93,6 @@ zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f' | ||||
| zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f' | ||||
| zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f' | ||||
| zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f' | ||||
| zstyle ':completion:*:default' list-prompt '%S%M matches%s' | ||||
| zstyle ':completion:*' format ' %F{yellow}-- %d --%f' | ||||
| zstyle ':completion:*' group-name '' | ||||
| zstyle ':completion:*' verbose yes | ||||
| @@ -66,8 +102,9 @@ zstyle ':completion:*' completer _complete _match _approximate | ||||
| zstyle ':completion:*:match:*' original only | ||||
| zstyle ':completion:*:approximate:*' max-errors 1 numeric | ||||
|  | ||||
| # Increase the number of errors based on the length of the typed word. | ||||
| zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3))numeric)' | ||||
| # Increase the number of errors based on the length of the typed word. But make | ||||
| # sure to cap (at 7) the max-errors to avoid hanging. | ||||
| zstyle -e ':completion:*:approximate:*' max-errors 'reply=($((($#PREFIX+$#SUFFIX)/3>7?7:($#PREFIX+$#SUFFIX)/3))numeric)' | ||||
|  | ||||
| # Don't complete unavailable commands. | ||||
| zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))' | ||||
| @@ -76,7 +113,6 @@ zstyle ':completion:*:functions' ignored-patterns '(_*|pre(cmd|exec))' | ||||
| zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters | ||||
|  | ||||
| # Directories | ||||
| zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} | ||||
| zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories | ||||
| zstyle ':completion:*:*:cd:*:directory-stack' menu yes select | ||||
| zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand' | ||||
| @@ -88,14 +124,17 @@ zstyle ':completion:*:history-words' remove-all-dups yes | ||||
| zstyle ':completion:*:history-words' list false | ||||
| zstyle ':completion:*:history-words' menu yes | ||||
|  | ||||
| # Environmental Variables | ||||
| # Environment Variables | ||||
| zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-} | ||||
|  | ||||
| # Populate hostname completion. | ||||
| # Populate hostname completion. But allow ignoring custom entries from static | ||||
| # */etc/hosts* which might be uninteresting. | ||||
| zstyle -a ':prezto:module:completion:*:hosts' etc-host-ignores '_etc_host_ignores' | ||||
|  | ||||
| zstyle -e ':completion:*:hosts' hosts 'reply=( | ||||
|   ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } | ||||
|   ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} | ||||
|   ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} | ||||
|   ${=${=${=${${(f)"$(cat {/etc/ssh/ssh_,~/.ssh/}known_hosts(|2)(N) 2> /dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } | ||||
|   ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2> /dev/null))"}%%(\#${_etc_host_ignores:+|${(j:|:)~_etc_host_ignores}})*} | ||||
|   ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2> /dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}} | ||||
| )' | ||||
|  | ||||
| # Don't complete uninteresting users... | ||||
| @@ -116,17 +155,15 @@ zstyle ':completion:*:(rm|kill|diff):*' ignore-line other | ||||
| zstyle ':completion:*:rm:*' file-patterns '*:all-files' | ||||
|  | ||||
| # Kill | ||||
| zstyle ':completion:*:*:*:*:processes' command 'ps -u $USER -o pid,user,comm -w' | ||||
| zstyle ':completion:*:*:*:*:processes' command 'ps -u $LOGNAME -o pid,user,command -w' | ||||
| zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;36=0=01' | ||||
| zstyle ':completion:*:*:kill:*' menu yes select | ||||
| zstyle ':completion:*:*:kill:*' force-list always | ||||
| zstyle ':completion:*:*:kill:*' insert-ids single | ||||
|  | ||||
| # Man | ||||
| # zstyle ':completion:*:manuals' separate-sections true | ||||
| # zstyle ':completion:*:manuals.(^1*)' insert-sections true | ||||
| zstyle ':completion:*:manuals.*' insert-sections   true | ||||
| zstyle ':completion:*:man:*' menu yes select | ||||
| zstyle ':completion:*:manuals' separate-sections true | ||||
| zstyle ':completion:*:manuals.(^1*)' insert-sections true | ||||
|  | ||||
| # Media Players | ||||
| zstyle ':completion:*:*:mpg123:*' file-patterns '*.(mp3|MP3):mp3\ files *(-/):directories' | ||||
| @@ -141,11 +178,9 @@ if [[ -s "$HOME/.mutt/aliases" ]]; then | ||||
| fi | ||||
|  | ||||
| # SSH/SCP/RSYNC | ||||
| zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' | ||||
| zstyle ':completion:*:(ssh|scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' | ||||
| zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr | ||||
| zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *' | ||||
| zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr | ||||
| zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost | ||||
| zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' | ||||
| zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*' | ||||
|  | ||||
|   | ||||
| @@ -1,36 +1,30 @@ | ||||
| Directory | ||||
| ========= | ||||
| # Directory | ||||
|  | ||||
| Sets directory options and defines directory aliases. | ||||
|  | ||||
| Options | ||||
| ------- | ||||
| ## Options | ||||
|  | ||||
|   - `AUTO_CD` auto changes to a directory without typing `cd`. | ||||
|   - `AUTO_PUSHD` pushes the old directory onto the stack on `cd`. | ||||
|   - `PUSHD_IGNORE_DUPS` does not store duplicates in the stack. | ||||
|   - `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`. | ||||
|   - `PUSHD_TO_HOME` pushes to the home directory when no argument is given. | ||||
|   - `CDABLE_VARS` changes directory to a path stored in a variable. | ||||
|   - `AUTO_NAME_DIRS` auto adds variable-stored paths to `~` list. | ||||
|   - `MULTIOS` writes to multiple descriptors. | ||||
|   - `EXTENDED_GLOB` uses extended globbing syntax. | ||||
|   - `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and | ||||
|     `>>!` to bypass. | ||||
| - `AUTO_CD` auto changes to a directory without typing `cd`. | ||||
| - `AUTO_PUSHD` pushes the old directory onto the stack on `cd`. | ||||
| - `PUSHD_IGNORE_DUPS` does not store duplicates in the stack. | ||||
| - `PUSHD_SILENT` does not print the directory stack after `pushd` or `popd`. | ||||
| - `PUSHD_TO_HOME` pushes to the home directory when no argument is given. | ||||
| - `CDABLE_VARS` changes directory to a path stored in a variable. | ||||
| - `MULTIOS` writes to multiple descriptors. | ||||
| - `EXTENDED_GLOB` uses extended globbing syntax. | ||||
| - `CLOBBER` does not overwrite existing files with `>` and `>>`. Use `>!` and | ||||
|   `>>!` to bypass. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Aliases | ||||
|  | ||||
|   - `d` prints the contents of the directory stack. | ||||
|   - `1 ... 9` changes the directory to the **n** previous one. | ||||
| - `d` prints the contents of the directory stack. | ||||
| - `1 ... 9` changes the directory to the **n** previous one. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| _The authors of this module should be contacted via the [issue tracker][1]._ | ||||
|  | ||||
|   - [James Cox](https://github.com/imajes) | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [James Cox](https://github.com/imajes) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -16,7 +16,6 @@ setopt PUSHD_IGNORE_DUPS    # Do not store duplicates in the stack. | ||||
| setopt PUSHD_SILENT         # Do not print the directory stack after pushd or popd. | ||||
| setopt PUSHD_TO_HOME        # Push to home directory when no argument is given. | ||||
| setopt CDABLE_VARS          # Change directory to a path stored in a variable. | ||||
| setopt AUTO_NAME_DIRS       # Auto add variable-stored paths to ~ list. | ||||
| setopt MULTIOS              # Write to multiple descriptors. | ||||
| setopt EXTENDED_GLOB        # Use extended globbing syntax. | ||||
| unsetopt CLOBBER            # Do not overwrite existing files with > and >>. | ||||
| @@ -28,4 +27,3 @@ unsetopt CLOBBER            # Do not overwrite existing files with > and >>. | ||||
|  | ||||
| alias d='dirs -v' | ||||
| for index ({1..9}) alias "$index"="cd +${index}"; unset index | ||||
|  | ||||
|   | ||||
							
								
								
									
										25
									
								
								modules/dnf/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								modules/dnf/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| # DNF | ||||
|  | ||||
| Defines [dnf][1] aliases. | ||||
|  | ||||
| ## Aliases | ||||
|  | ||||
| - `dnfc` removes package(s) and leaves. | ||||
| - `dnfi` installs package(s). | ||||
| - `dnfh` displays history. | ||||
| - `dnfl` lists packages. | ||||
| - `dnfL` lists installed packages. | ||||
| - `dnfq` displays package information. | ||||
| - `dnfr` removes package(s). | ||||
| - `dnfs` searches for a package. | ||||
| - `dnfu` updates packages. | ||||
| - `dnfU` upgrades packages. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://fedoraproject.org/wiki/Features/DNF | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
							
								
								
									
										28
									
								
								modules/dnf/init.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/dnf/init.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| # | ||||
| # Defines dnf aliases. | ||||
| # | ||||
| # Authors: | ||||
| #   FireWave <firewave@free.fr> | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if (( ! $+commands[dnf] )); then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Aliases | ||||
| # | ||||
|  | ||||
| alias dnfc='sudo dnf clean all'    # Cleans the cache. | ||||
| alias dnfh='dnf history'           # Displays history. | ||||
| alias dnfi='sudo dnf install'      # Installs package(s). | ||||
| alias dnfl='dnf list'              # Lists packages. | ||||
| alias dnfL='dnf list installed'    # Lists installed packages. | ||||
| alias dnfq='dnf info'              # Displays package information. | ||||
| alias dnfr='sudo dnf remove'       # Removes package(s). | ||||
| alias dnfs='dnf search'            # Searches for a package. | ||||
| alias dnfu='sudo dnf update'       # Updates packages. | ||||
| alias dnfU='sudo dnf upgrade'      # Upgrades packages. | ||||
|  | ||||
							
								
								
									
										196
									
								
								modules/docker/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								modules/docker/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,196 @@ | ||||
| # Docker | ||||
|  | ||||
| Defines [Docker][1] aliases and functions. | ||||
|  | ||||
| ## Aliases | ||||
|  | ||||
| ### Docker | ||||
|  | ||||
| - `dk` is short for `docker` | ||||
| - `dka` Attach to a running container | ||||
| - `dkb` Build an image from a Dockerfile | ||||
| - `dkd` Inspect changes on a container's filesystem | ||||
| - `dkdf` Show docker filesystem usage | ||||
| - `dke` Run a command in a running container | ||||
| - `dkE` Run an interactive command in a running container | ||||
| - `dkh` Show the history of an image | ||||
| - `dki` List images | ||||
| - `dkin` Return low-level information on a container, image or task | ||||
| - `dkk` Kill a running container | ||||
| - `dkl` Fetch the logs of a container | ||||
| - `dkli` Log in to a Docker registry | ||||
| - `dklo` Log out from a Docker registry | ||||
| - `dkls` is alias for `dkps` | ||||
| - `dkp` Pause all processes within one or more containers | ||||
| - `dkP` Unpause all processes within one or more containers | ||||
| - `dkpl` Pull an image or a repository from a registry | ||||
| - `dkph` Push an image or a repository to a registry | ||||
| - `dkps` List containers | ||||
| - `dkpsa` List all containers (default lists just running) | ||||
| - `dkr` Run a command in a new container | ||||
| - `dkR` Run an interactive command in a new container and automatically remove | ||||
|   the container when it exits | ||||
| - `dkRe` like `dkR` and set entry point to `/bin/bash` | ||||
| - `dkrm` Remove one or more containers | ||||
| - `dkrmi` Remove one or more images | ||||
| - `dkrmC` Clean up exited containers | ||||
| - `dkrmI` Clean up dangling images | ||||
| - `dkrmV` Clean up unused volumes ( Docker >= 1.9 ) | ||||
| - `dkrn` Rename a container | ||||
| - `dks` Start one or more stopped containers | ||||
| - `dkS` Restart a container | ||||
| - `dkss` Display a live stream of container(s) resource usage statistics | ||||
| - `dksv` Save one or more images to a tar archive (streamed to STDOUT by | ||||
|   default) | ||||
| - `dkt` Tag an image into a repository | ||||
| - `dktop` Display the running processes of a container | ||||
| - `dkup` Update configuration of one or more containers | ||||
| - `dkV` Manage Docker volumes | ||||
| - `dkv` Show the Docker version information | ||||
| - `dkw` Block until a container stops, then print its exit code | ||||
| - `dkx` Stop a running container | ||||
|  | ||||
| #### container (C) | ||||
|  | ||||
| - `dkC` Manage containers | ||||
| - `dkCa` Attach to a running container | ||||
| - `dkCcp` Copy files/folders between a container and the local filesystem | ||||
| - `dkCd` Inspect changes on a container's filesystem | ||||
| - `dkCe` Run a command in a running container | ||||
| - `dkCin` Display detailed information on one or more containers | ||||
| - `dkCk` Kill one or more running containers | ||||
| - `dkCl` Fetch the logs of a container | ||||
| - `dkCls` List containers | ||||
| - `dkCp` Pause all processes within one or more containers | ||||
| - `dkCpr` Remove all stopped containers | ||||
| - `dkCrn` Rename a container | ||||
| - `dkCS` Restart one or more containers | ||||
| - `dkCrm` Remove one or more containers | ||||
| - `dkCr` Run a command in a new container | ||||
| - `dkCR` Run an interactive command in a new container and automatically remove | ||||
|   the container when it exits | ||||
| - `dkCRe` like `dkCR` and set entry point to `/bin/bash` | ||||
| - `dkCs` Start one or more stopped containers | ||||
| - `dkCss` Display a live stream of container(s) resource usage statistics | ||||
| - `dkCx` Stop one or more running containers | ||||
| - `dkCtop` Display the running processes of a container | ||||
| - `dkCP` Unpause all processes within one or more containers | ||||
| - `dkCup` Update configuration of one or more containers | ||||
| - `dkCw` Block until one or more containers stop, then print their exit codes | ||||
|  | ||||
| #### image (I) | ||||
|  | ||||
| - `dkI` Manage images | ||||
| - `dkIb` Build an image from a Dockerfile | ||||
| - `dkIh` Show the history of an image | ||||
| - `dkIim` Import the contents from a tarball to create a filesystem image | ||||
| - `dkIin` Display detailed information on one or more images | ||||
| - `dkIls` List images | ||||
| - `dkIpr` Remove unused images | ||||
| - `dkIpl` Pull an image or a repository from a registry | ||||
| - `dkIph` Push an image or a repository to a registry | ||||
| - `dkIrm` Remove one or more images | ||||
| - `dkIsv` Save one or more images to a tar archive (streamed to STDOUT by | ||||
|   default) | ||||
| - `dkIt` Tag an image into a repository | ||||
|  | ||||
| #### volume (V) | ||||
|  | ||||
| - `dkV` Manage volumes | ||||
| - `dkVin` Display detailed information on one or more volumes | ||||
| - `dkVls` List volumes | ||||
| - `dkVpr` Remove all unused volumes | ||||
| - `dkVrm` Remove one or more volumes | ||||
|  | ||||
| #### network (N) | ||||
|  | ||||
| - `dkN` Manage networks | ||||
| - `dkNs` Connect a container to a network | ||||
| - `dkNx` Disconnects a container from a network | ||||
| - `dkNin` Displays detailed information on a network | ||||
| - `dkNls` Lists all the networks created by the user | ||||
| - `dkNpr` Remove all unused networks | ||||
| - `dkNrm` Deletes one or more networks | ||||
|  | ||||
| #### system (Y) | ||||
|  | ||||
| - `dkY` Manage Docker | ||||
| - `dkYdf` Show docker filesystem usage | ||||
| - `dkYpr` Remove unused data | ||||
|  | ||||
| #### stack (K) | ||||
|  | ||||
| - `dkK` Manage Docker stacks | ||||
| - `dkKls` List stacks | ||||
| - `dkKps` List the tasks in the stack | ||||
| - `dkKrm` Remove the stack | ||||
|  | ||||
| #### swarm (W) | ||||
|  | ||||
| - `dkW` Manage Docker Swarm | ||||
|  | ||||
| ### Docker Machine | ||||
|  | ||||
| - `dkm` is short for `docker-machine` | ||||
| - `dkma` Get or set the active machine | ||||
| - `dkmcp` Copy files between machines | ||||
| - `dkmd` Set up the default machine ; alowing you to use `dkme` without | ||||
|   arguments | ||||
| - `dkme` Set up the environment for the Docker client (eg: `dkme staging` to | ||||
|   toggle to staging) | ||||
| - `dkmin` Inspect information about a machine | ||||
| - `dkmip` Get the IP address of a machine | ||||
| - `dkmk` Kill a machine | ||||
| - `dkmls` List machines | ||||
| - `dkmpr` Re-provision existing machines | ||||
| - `dkmps` is alias for `dkmls` | ||||
| - `dkmrg` Regenerate TLS Certificates for a machine | ||||
| - `dkmrm` Remove a machine | ||||
| - `dkms` Start a machine | ||||
| - `dkmsh` Log into or run a command on a machine with SSH | ||||
| - `dkmst` Get the status of a machine | ||||
| - `dkmS` Restart a machine | ||||
| - `dkmu` Get the URL of a machine | ||||
| - `dkmup` Upgrade a machine to the latest version of Docker | ||||
| - `dkmV` Show the Docker Machine version or a machine docker version | ||||
| - `dkmx` Stop a machine | ||||
|  | ||||
| ### Docker Compose | ||||
|  | ||||
| - `dkc` is short for `docker-compose` | ||||
| - `dkcb` Build or rebuild services | ||||
| - `dkcB` Build or rebuild services and do not use cache when building the image | ||||
| - `dkcd` Stop and remove containers, networks, images, and volumes | ||||
| - `dkce` Execute a command in a running container | ||||
| - `dkck` Kill containers | ||||
| - `dkcl` View output from containers | ||||
| - `dkcls` is alias for `dkcps` | ||||
| - `dkcp` Pause services | ||||
| - `dkcP` Unpause services | ||||
| - `dkcpl` Pull service images | ||||
| - `dkcph` Push service images | ||||
| - `dkcps` List containers | ||||
| - `dkcr` Run a one-off command | ||||
| - `dkcR` Run a one-off command and remove container after run. | ||||
| - `dkcrm` Remove stopped containers | ||||
| - `dkcs` Start services | ||||
| - `dkcsc` Set number of containers for a service | ||||
| - `dkcS` Restart services | ||||
| - `dkcu` Create and start containers | ||||
| - `dkcU` Create and start containers in detached mode: Run containers in the | ||||
|   background, print new container names | ||||
| - `dkcV` Show the Docker-Compose version information | ||||
| - `dkcx` Stop services | ||||
|  | ||||
| ## Support | ||||
|  | ||||
| If you're having problems, use the [Prezto issue tracker][2]. | ||||
|  | ||||
| ## Acknowledgements | ||||
|  | ||||
| This module is a copy of [akarzim/zsh-docker-aliases][3] by [François Vantomme][4] (MIT License). | ||||
|  | ||||
| [1]: https://www.docker.com/ | ||||
| [2]: https://github.com/zsh-users/prezto/issues | ||||
| [3]: https://github.com/akarzim/zsh-docker-aliases | ||||
| [4]: https://github.com/akarzim | ||||
							
								
								
									
										177
									
								
								modules/docker/alias.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								modules/docker/alias.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,177 @@ | ||||
| # | ||||
| # Defines Docker aliases. | ||||
| # | ||||
| # Author: | ||||
| #   François Vantomme <akarzim@gmail.com> | ||||
| # | ||||
|  | ||||
| # | ||||
| # Aliases | ||||
| # | ||||
|  | ||||
| # Docker | ||||
| alias dk='docker' | ||||
| alias dka='docker attach' | ||||
| alias dkb='docker build' | ||||
| alias dkd='docker diff' | ||||
| alias dkdf='docker system df' | ||||
| alias dke='docker exec' | ||||
| alias dkE='docker exec -it' | ||||
| alias dkh='docker history' | ||||
| alias dki='docker images' | ||||
| alias dkin='docker inspect' | ||||
| alias dkim='docker import' | ||||
| alias dkk='docker kill' | ||||
| alias dkl='docker logs' | ||||
| alias dkli='docker login' | ||||
| alias dklo='docker logout' | ||||
| alias dkls='docker ps' | ||||
| alias dkp='docker pause' | ||||
| alias dkP='docker unpause' | ||||
| alias dkpl='docker pull' | ||||
| alias dkph='docker push' | ||||
| alias dkps='docker ps' | ||||
| alias dkpsa='docker ps -a' | ||||
| alias dkr='docker run' | ||||
| alias dkR='docker run -it --rm' | ||||
| alias dkRe='docker run -it --rm --entrypoint /bin/bash' | ||||
| alias dkRM='docker system prune' | ||||
| alias dkrm='docker rm' | ||||
| alias dkrmi='docker rmi' | ||||
| alias dkrn='docker rename' | ||||
| alias dks='docker start' | ||||
| alias dkS='docker restart' | ||||
| alias dkss='docker stats' | ||||
| alias dksv='docker save' | ||||
| alias dkt='docker tag' | ||||
| alias dktop='docker top' | ||||
| alias dkup='docker update' | ||||
| alias dkV='docker volume' | ||||
| alias dkv='docker version' | ||||
| alias dkw='docker wait' | ||||
| alias dkx='docker stop' | ||||
|  | ||||
| ## Container (C) | ||||
| alias dkC='docker container' | ||||
| alias dkCa='docker container attach' | ||||
| alias dkCcp='docker container cp' | ||||
| alias dkCd='docker container diff' | ||||
| alias dkCe='docker container exec' | ||||
| alias dkCin='docker container inspect' | ||||
| alias dkCk='docker container kill' | ||||
| alias dkCl='docker container logs' | ||||
| alias dkCls='docker container ls' | ||||
| alias dkCp='docker container pause' | ||||
| alias dkCpr='docker container prune' | ||||
| alias dkCrn='docker container rename' | ||||
| alias dkCS='docker container restart' | ||||
| alias dkCrm='docker container rm' | ||||
| alias dkCr='docker container run' | ||||
| alias dkCR='docker container run -it --rm' | ||||
| alias dkCRe='docker container run -it --rm --entrypoint /bin/bash' | ||||
| alias dkCs='docker container start' | ||||
| alias dkCss='docker container stats' | ||||
| alias dkCx='docker container stop' | ||||
| alias dkCtop='docker container top' | ||||
| alias dkCP='docker container unpause' | ||||
| alias dkCup='docker container update' | ||||
| alias dkCw='docker container wait' | ||||
|  | ||||
| ## Image (I) | ||||
| alias dkI='docker image' | ||||
| alias dkIb='docker image build' | ||||
| alias dkIh='docker image history' | ||||
| alias dkIim='docker image import' | ||||
| alias dkIin='docker image inspect' | ||||
| alias dkIls='docker image ls' | ||||
| alias dkIpr='docker image prune' | ||||
| alias dkIpl='docker image pull' | ||||
| alias dkIph='docker image push' | ||||
| alias dkIrm='docker image rm' | ||||
| alias dkIsv='docker image save' | ||||
| alias dkIt='docker image tag' | ||||
|  | ||||
| ## Volume (V) | ||||
| alias dkV='docker volume' | ||||
| alias dkVin='docker volume inspect' | ||||
| alias dkVls='docker volume ls' | ||||
| alias dkVpr='docker volume prune' | ||||
| alias dkVrm='docker volume rm' | ||||
|  | ||||
| ## Network (N) | ||||
| alias dkN='docker network' | ||||
| alias dkNs='docker network connect' | ||||
| alias dkNx='docker network disconnect' | ||||
| alias dkNin='docker network inspect' | ||||
| alias dkNls='docker network ls' | ||||
| alias dkNpr='docker network prune' | ||||
| alias dkNrm='docker network rm' | ||||
|  | ||||
| ## System (Y) | ||||
| alias dkY='docker system' | ||||
| alias dkYdf='docker system df' | ||||
| alias dkYpr='docker system prune' | ||||
|  | ||||
| ## Stack (K) | ||||
| alias dkK='docker stack' | ||||
| alias dkKls='docker stack ls' | ||||
| alias dkKps='docker stack ps' | ||||
| alias dkKrm='docker stack rm' | ||||
|  | ||||
| ## Swarm (W) | ||||
| alias dkW='docker swarm' | ||||
|  | ||||
| ## CleanUp (rm) | ||||
| # Clean up exited containers (docker < 1.13) | ||||
| alias dkrmC='docker rm $(docker ps -qaf status=exited)' | ||||
| # Clean up dangling images (docker < 1.13) | ||||
| alias dkrmI='docker rmi $(docker images -qf dangling=true)' | ||||
| # Clean up dangling volumes (docker < 1.13) | ||||
| alias dkrmV='docker volume rm $(docker volume ls -qf dangling=true)' | ||||
|  | ||||
|  | ||||
| # Docker Machine (m) | ||||
| alias dkm='docker-machine' | ||||
| alias dkma='docker-machine active' | ||||
| alias dkmcp='docker-machine scp' | ||||
| alias dkmin='docker-machine inspect' | ||||
| alias dkmip='docker-machine ip' | ||||
| alias dkmk='docker-machine kill' | ||||
| alias dkmls='docker-machine ls' | ||||
| alias dkmpr='docker-machine provision' | ||||
| alias dkmps='docker-machine ps' | ||||
| alias dkmrg='docker-machine regenerate-certs' | ||||
| alias dkmrm='docker-machine rm' | ||||
| alias dkms='docker-machine start' | ||||
| alias dkmsh='docker-machine ssh' | ||||
| alias dkmst='docker-machine status' | ||||
| alias dkmS='docker-machine restart' | ||||
| alias dkmu='docker-machine url' | ||||
| alias dkmup='docker-machine upgrade' | ||||
| alias dkmv='docker-machine version' | ||||
| alias dkmx='docker-machine stop' | ||||
|  | ||||
| # Docker Compose (c) | ||||
| alias dkc='docker-compose' | ||||
| alias dkcb='docker-compose build' | ||||
| alias dkcB='docker-compose build --no-cache' | ||||
| alias dkcd='docker-compose down' | ||||
| alias dkce='docker-compose exec' | ||||
| alias dkck='docker-compose kill' | ||||
| alias dkcl='docker-compose logs' | ||||
| alias dkcls='docker-compose ps' | ||||
| alias dkcp='docker-compose pause' | ||||
| alias dkcP='docker-compose unpause' | ||||
| alias dkcpl='docker-compose pull' | ||||
| alias dkcph='docker-compose push' | ||||
| alias dkcps='docker-compose ps' | ||||
| alias dkcr='docker-compose run' | ||||
| alias dkcR='docker-compose run --rm' | ||||
| alias dkcrm='docker-compose rm' | ||||
| alias dkcs='docker-compose start' | ||||
| alias dkcsc='docker-compose scale' | ||||
| alias dkcS='docker-compose restart' | ||||
| alias dkcu='docker-compose up' | ||||
| alias dkcU='docker-compose up -d' | ||||
| alias dkcv='docker-compose version' | ||||
| alias dkcx='docker-compose stop' | ||||
							
								
								
									
										57
									
								
								modules/docker/init.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								modules/docker/init.zsh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| # | ||||
| # Defines Docker aliases. | ||||
| # | ||||
| # Author: | ||||
| #   François Vantomme <akarzim@gmail.com> | ||||
| # | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if (( ! $+commands[docker] )); then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Functions | ||||
| # | ||||
|  | ||||
| # Set Docker Machine environment | ||||
| function dkme { | ||||
|   if (( ! $+commands[docker-machine] )); then | ||||
|     return 1 | ||||
|   fi | ||||
|  | ||||
|   eval $(docker-machine env $1) | ||||
| } | ||||
|  | ||||
| # Set Docker Machine default machine | ||||
| function dkmd { | ||||
|   if (( ! $+commands[docker-machine] )); then | ||||
|     return 1 | ||||
|   fi | ||||
|  | ||||
|   pushd ~/.docker/machine/machines | ||||
|  | ||||
|   if [[ ! -d $1 ]]; then | ||||
|     echo "Docker machine '$1' does not exists. Abort." | ||||
|     popd | ||||
|     return 1 | ||||
|   fi | ||||
|  | ||||
|   if [[ -L default ]]; then | ||||
|     eval $(rm -f default) | ||||
|   elif [[ -d default ]]; then | ||||
|     echo "A default machine already exists. Abort." | ||||
|     popd | ||||
|     return 1 | ||||
|   elif [[ -e default ]]; then | ||||
|     echo "A file named 'default' already exists. Abort." | ||||
|     popd | ||||
|     return 1 | ||||
|   fi | ||||
|  | ||||
|   eval $(ln -s $1 default) | ||||
|   popd | ||||
| } | ||||
|  | ||||
| # Source module files. | ||||
| source "${0:h}/alias.zsh" | ||||
| @@ -1,10 +1,8 @@ | ||||
| Dpkg | ||||
| ==== | ||||
| # Dpkg | ||||
|  | ||||
| Defines [dpkg][1] aliases and functions. | ||||
| Defines [_dpkg_][1] aliases and functions. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Aliases | ||||
|  | ||||
| - `debc` cleans the cache. | ||||
| - `debf` displays a file's package. | ||||
| @@ -20,23 +18,20 @@ Aliases | ||||
| - `deb-kclean` removes all kernel images and headers, except for the ones in | ||||
|   use. | ||||
|  | ||||
| Functions | ||||
| --------- | ||||
| ## Functions | ||||
|  | ||||
| - `deb-clone` generates a script that can be used to duplicate a dpkg-based | ||||
| - `deb-clone` generates a script that can be used to duplicate a `dpkg`-based | ||||
|   system. | ||||
| - `deb-history` displays dpkg history. | ||||
| - `deb-kbuild` makes a dpkg Linux kernel package. | ||||
| - `deb-history` displays `dpkg` history. | ||||
| - `deb-kbuild` makes a `dpkg` Linux kernel package. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][2].* | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
|   - [Daniel Bolton](https://github.com/dbb) | ||||
|   - [Benjamin Boudreau](https://github.com/dreur) | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Daniel Bolton](https://github.com/dbb) | ||||
| - [Benjamin Boudreau](https://github.com/dreur) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: http://wiki.debian.org/Teams/Dpkg | ||||
| [1]: https://wiki.debian.org/Teams/Dpkg | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -6,6 +6,8 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # function deb-clone { | ||||
|  | ||||
| local clone_script="${0}.sh" | ||||
| local package_list=$( | ||||
|   perl \ | ||||
| @@ -24,3 +26,4 @@ print '#!/bin/sh\n' > "$clone_script" | ||||
| print "aptitude install ${package_list}\n" >> "$clone_script" | ||||
| chmod +x "$clone_script" | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -7,6 +7,8 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # function deb-history { | ||||
|  | ||||
| case "$1" in | ||||
|   (install) | ||||
|     zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*) | ||||
| @@ -35,3 +37,4 @@ EOF | ||||
|   ;; | ||||
| esac | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -6,6 +6,8 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # function deb-kbuild { | ||||
|  | ||||
| make-kpkg clean | ||||
| MAKEFLAGS='' time fakeroot make-kpkg \ | ||||
|   --append-to-version '-custom' \ | ||||
| @@ -13,3 +15,4 @@ MAKEFLAGS='' time fakeroot make-kpkg \ | ||||
|   kernel_image \ | ||||
|   kernel_headers | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -54,5 +54,4 @@ fi | ||||
| alias deb-build='time dpkg-buildpackage -rfakeroot -us -uc' | ||||
|  | ||||
| # Removes all kernel images and headers, except for the ones in use. | ||||
| alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))"' | ||||
|  | ||||
| alias deb-kclean='sudo aptitude remove -P "?and(~i~nlinux-(ima|hea) ?not(~n$(uname -r)))"' | ||||
|   | ||||
| @@ -1,63 +1,102 @@ | ||||
| Editor | ||||
| ====== | ||||
| # Editor | ||||
|  | ||||
| Sets key bindings. | ||||
| Sets editor specific key bindings options and variables. | ||||
|  | ||||
| Settings | ||||
| -------- | ||||
| ## Options | ||||
|  | ||||
| - `BEEP` beep on error in line editor. | ||||
|  | ||||
| ## Variables | ||||
|  | ||||
| - `WORDCHARS` treat a given set of characters as part of a word. | ||||
|  | ||||
| ## Settings | ||||
|  | ||||
| ### Key bindings | ||||
|  | ||||
| To enable key bindings, add the following to *zpreztorc*, and replace 'bindings' | ||||
| with 'emacs' or 'vi'. | ||||
| To enable key bindings, add the following to _`${ZDOTDIR:-$HOME}/.zpreztorc`_, | ||||
| and replace `'<bindings>'` with `'emacs'` or `'vi'`. | ||||
|  | ||||
|     zstyle ':prezto:module:editor' key-bindings 'bindings' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor' key-bindings '<bindings>' | ||||
| ``` | ||||
|  | ||||
| ### Dot Expansion | ||||
|  | ||||
| To enable the auto conversion of .... to ../.., add the following to | ||||
| *zpreztorc*. | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_. | ||||
|  | ||||
|     zstyle ':prezto:module:editor' dot-expansion 'yes' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor' dot-expansion 'yes' | ||||
| ``` | ||||
|  | ||||
| Theming | ||||
| ------- | ||||
| ### PS Context | ||||
|  | ||||
| To enable the prompt context to be set, add the following to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_. | ||||
|  | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor' ps-context 'yes' | ||||
| ``` | ||||
|  | ||||
| ## Theming | ||||
|  | ||||
| To indicate when the editor is in the primary keymap (emacs or viins), add | ||||
| the following to your `theme_prompt_setup` function. | ||||
|  | ||||
|     zstyle ':prezto:module:editor:info:keymap:primary' format '>>>' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor:info:keymap:primary' format '>>>' | ||||
| ``` | ||||
|  | ||||
| To indicate when the editor is in the primary keymap (emacs or viins) insert | ||||
| mode, add the following to your `theme_prompt_setup` function. | ||||
|  | ||||
|     zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor:info:keymap:primary:insert' format 'I' | ||||
| ``` | ||||
|  | ||||
| To indicate when the editor is in the primary keymap (emacs or viins) overwrite | ||||
| mode, add the following to your `theme_prompt_setup` function. | ||||
|  | ||||
|     zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor:info:keymap:primary:overwrite' format 'O' | ||||
| ``` | ||||
|  | ||||
| To indicate when the editor is in the alternate keymap (vicmd), add the | ||||
| following to your `theme_prompt_setup` function. | ||||
|  | ||||
|     zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor:info:keymap:alternate' format '<<<' | ||||
| ``` | ||||
|  | ||||
| To indicate when the editor is completing, add the following to your | ||||
| `theme_prompt_setup` function. | ||||
|  | ||||
|     zstyle ':prezto:module:editor:info:completing' format '...' | ||||
| ```sh | ||||
| zstyle ':prezto:module:editor:info:completing' format '...' | ||||
| ``` | ||||
|  | ||||
| Then add `$editor_info[context]`, where context is *keymap*, *insert*, or | ||||
| *overwrite*, to `$PROMPT` or `$RPROMPT` and call `editor-info` in the | ||||
| `prompt_name_preexec` hook function. | ||||
| Then add `$editor_info[context]`, where context is _keymap_, _insert_, or | ||||
| _overwrite_, to `$PROMPT` or `$RPROMPT`. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Convenience Functions | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| ### bindkey-all | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| Provides a function `bindkey-all` which can be useful for checking how all of | ||||
| the keys are bound. Normal `bindkey` command will only list the keys bound for | ||||
| one keymap, which is not as useful if you want to grep through the output. The | ||||
| keymap's names go to stderr so when you grep through `bindkey-all`'s output you | ||||
| will still see the headings and can tell which keymap each binding goes to. | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/oh-my-zsh/issues | ||||
| It will also pass through arguments so you can use bindkey-all to set bindings | ||||
| for all keymaps at once. If provided arguments it will _not_ print out the | ||||
| names of each of the keymaps, and just run the command for each keymap. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][1]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -14,8 +14,7 @@ fi | ||||
| # Options | ||||
| # | ||||
|  | ||||
| # Beep on error in line editor. | ||||
| setopt BEEP | ||||
| setopt BEEP                     # Beep on error in line editor. | ||||
|  | ||||
| # | ||||
| # Variables | ||||
| @@ -28,40 +27,44 @@ WORDCHARS='*?_-.[]~&;!#$%^(){}<>' | ||||
| zmodload zsh/terminfo | ||||
| typeset -gA key_info | ||||
| key_info=( | ||||
|   'Control'   '\C-' | ||||
|   'Escape'    '\e' | ||||
|   'Meta'      '\M-' | ||||
|   'Backspace' "^?" | ||||
|   'Delete'    "^[[3~" | ||||
|   'F1'        "$terminfo[kf1]" | ||||
|   'F2'        "$terminfo[kf2]" | ||||
|   'F3'        "$terminfo[kf3]" | ||||
|   'F4'        "$terminfo[kf4]" | ||||
|   'F5'        "$terminfo[kf5]" | ||||
|   'F6'        "$terminfo[kf6]" | ||||
|   'F7'        "$terminfo[kf7]" | ||||
|   'F8'        "$terminfo[kf8]" | ||||
|   'F9'        "$terminfo[kf9]" | ||||
|   'F10'       "$terminfo[kf10]" | ||||
|   'F11'       "$terminfo[kf11]" | ||||
|   'F12'       "$terminfo[kf12]" | ||||
|   'Insert'    "$terminfo[kich1]" | ||||
|   'Home'      "$terminfo[khome]" | ||||
|   'PageUp'    "$terminfo[kpp]" | ||||
|   'End'       "$terminfo[kend]" | ||||
|   'PageDown'  "$terminfo[knp]" | ||||
|   'Up'        "$terminfo[kcuu1]" | ||||
|   'Left'      "$terminfo[kcub1]" | ||||
|   'Down'      "$terminfo[kcud1]" | ||||
|   'Right'     "$terminfo[kcuf1]" | ||||
|   'BackTab'   "$terminfo[kcbt]" | ||||
|   'Control'         '\C-' | ||||
|   'ControlLeft'     '\e[1;5D \e[5D \e\e[D \eOd' | ||||
|   'ControlRight'    '\e[1;5C \e[5C \e\e[C \eOc' | ||||
|   'ControlPageUp'   '\e[5;5~' | ||||
|   'ControlPageDown' '\e[6;5~' | ||||
|   'Escape'       '\e' | ||||
|   'Meta'         '\M-' | ||||
|   'Backspace'    "^?" | ||||
|   'Delete'       "^[[3~" | ||||
|   'F1'           "$terminfo[kf1]" | ||||
|   'F2'           "$terminfo[kf2]" | ||||
|   'F3'           "$terminfo[kf3]" | ||||
|   'F4'           "$terminfo[kf4]" | ||||
|   'F5'           "$terminfo[kf5]" | ||||
|   'F6'           "$terminfo[kf6]" | ||||
|   'F7'           "$terminfo[kf7]" | ||||
|   'F8'           "$terminfo[kf8]" | ||||
|   'F9'           "$terminfo[kf9]" | ||||
|   'F10'          "$terminfo[kf10]" | ||||
|   'F11'          "$terminfo[kf11]" | ||||
|   'F12'          "$terminfo[kf12]" | ||||
|   'Insert'       "$terminfo[kich1]" | ||||
|   'Home'         "$terminfo[khome]" | ||||
|   'PageUp'       "$terminfo[kpp]" | ||||
|   'End'          "$terminfo[kend]" | ||||
|   'PageDown'     "$terminfo[knp]" | ||||
|   'Up'           "$terminfo[kcuu1]" | ||||
|   'Left'         "$terminfo[kcub1]" | ||||
|   'Down'         "$terminfo[kcud1]" | ||||
|   'Right'        "$terminfo[kcuf1]" | ||||
|   'BackTab'      "$terminfo[kcbt]" | ||||
| ) | ||||
|  | ||||
| # Set empty $key_info values to an invalid UTF-8 sequence to induce silent | ||||
| # bindkey failure. | ||||
| for key in "${(k)key_info[@]}"; do | ||||
|   if [[ -z "$key_info[$key]" ]]; then | ||||
|     key_info["$key"]='<27>' | ||||
|     key_info[$key]='<27>' | ||||
|   fi | ||||
| done | ||||
|  | ||||
| @@ -76,62 +79,98 @@ zle -N edit-command-line | ||||
| # | ||||
| # Functions | ||||
| # | ||||
|  | ||||
| # Runs bindkey but for all of the keymaps. Running it with no arguments will | ||||
| # print out the mappings for all of the keymaps. | ||||
| function bindkey-all { | ||||
|   local keymap='' | ||||
|   for keymap in $(bindkey -l); do | ||||
|     [[ "$#" -eq 0 ]] && printf "#### %s\n" "${keymap}" 1>&2 | ||||
|     bindkey -M "${keymap}" "$@" | ||||
|   done | ||||
| } | ||||
| # Exposes information about the Zsh Line Editor via the $editor_info associative | ||||
| # array. | ||||
| function editor-info { | ||||
|   # Clean up previous $editor_info. | ||||
|   unset editor_info | ||||
|   typeset -gA editor_info | ||||
|   # Ensure that we're going to set the editor-info for prompts that | ||||
|   # are prezto managed and/or compatible. | ||||
|   if zstyle -t ':prezto:module:prompt' managed; then | ||||
|     # Clean up previous $editor_info. | ||||
|     unset editor_info | ||||
|     typeset -gA editor_info | ||||
|  | ||||
|   if [[ "$KEYMAP" == 'vicmd' ]]; then | ||||
|     zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY' | ||||
|     editor_info[keymap]="$REPLY" | ||||
|   else | ||||
|     zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY' | ||||
|     editor_info[keymap]="$REPLY" | ||||
|  | ||||
|     if [[ "$ZLE_STATE" == *overwrite* ]]; then | ||||
|       zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY' | ||||
|       editor_info[overwrite]="$REPLY" | ||||
|     if [[ "$KEYMAP" == 'vicmd' ]]; then | ||||
|       zstyle -s ':prezto:module:editor:info:keymap:alternate' format 'REPLY' | ||||
|       editor_info[keymap]="$REPLY" | ||||
|     else | ||||
|       zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY' | ||||
|       editor_info[overwrite]="$REPLY" | ||||
|       zstyle -s ':prezto:module:editor:info:keymap:primary' format 'REPLY' | ||||
|       editor_info[keymap]="$REPLY" | ||||
|  | ||||
|       if [[ "$ZLE_STATE" == *overwrite* ]]; then | ||||
|         zstyle -s ':prezto:module:editor:info:keymap:primary:overwrite' format 'REPLY' | ||||
|         editor_info[overwrite]="$REPLY" | ||||
|       else | ||||
|         zstyle -s ':prezto:module:editor:info:keymap:primary:insert' format 'REPLY' | ||||
|         editor_info[overwrite]="$REPLY" | ||||
|       fi | ||||
|     fi | ||||
|  | ||||
|     unset REPLY | ||||
|     zle zle-reset-prompt | ||||
|   fi | ||||
|  | ||||
|   unset REPLY | ||||
|  | ||||
|   zle reset-prompt | ||||
|   zle -R | ||||
| } | ||||
| zle -N editor-info | ||||
|  | ||||
| # Ensures that $terminfo values are valid and updates editor information when | ||||
| # the keymap changes. | ||||
| function zle-keymap-select zle-line-init zle-line-finish { | ||||
| # Reset the prompt based on the current context and | ||||
| # the ps-context option. | ||||
| function zle-reset-prompt { | ||||
|   if zstyle -t ':prezto:module:editor' ps-context; then | ||||
|     # If we aren't within one of the specified contexts, then we want to reset | ||||
|     # the prompt with the appropriate editor_info[keymap] if there is one. | ||||
|     if [[ $CONTEXT != (select|cont) ]]; then | ||||
|       zle reset-prompt | ||||
|       zle -R | ||||
|     fi | ||||
|   else | ||||
|     zle reset-prompt | ||||
|     zle -R | ||||
|   fi | ||||
| } | ||||
| zle -N zle-reset-prompt | ||||
|  | ||||
| # Updates editor information when the keymap changes. | ||||
| function zle-keymap-select { | ||||
|   zle editor-info | ||||
| } | ||||
| zle -N zle-keymap-select | ||||
|  | ||||
| # Enables terminal application mode and updates editor information. | ||||
| function zle-line-init { | ||||
|   # The terminal must be in application mode when ZLE is active for $terminfo | ||||
|   # values to be valid. | ||||
|   if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then | ||||
|     case "$0" in | ||||
|       (zle-line-init) | ||||
|         # Enable terminal application mode. | ||||
|         echoti smkx | ||||
|       ;; | ||||
|       (zle-line-finish) | ||||
|         # Disable terminal application mode. | ||||
|         echoti rmkx | ||||
|       ;; | ||||
|     esac | ||||
|   if (( $+terminfo[smkx] )); then | ||||
|     # Enable terminal application mode. | ||||
|     echoti smkx | ||||
|   fi | ||||
|  | ||||
|   # Update editor information. | ||||
|   zle editor-info | ||||
| } | ||||
| zle -N zle-keymap-select | ||||
| zle -N zle-line-finish | ||||
| zle -N zle-line-init | ||||
|  | ||||
| # Disables terminal application mode and updates editor information. | ||||
| function zle-line-finish { | ||||
|   # The terminal must be in application mode when ZLE is active for $terminfo | ||||
|   # values to be valid. | ||||
|   if (( $+terminfo[rmkx] )); then | ||||
|     # Disable terminal application mode. | ||||
|     echoti rmkx | ||||
|   fi | ||||
|  | ||||
|   # Update editor information. | ||||
|   zle editor-info | ||||
| } | ||||
| zle -N zle-line-finish | ||||
|  | ||||
| # Toggles emacs overwrite mode and updates editor information. | ||||
| function overwrite-mode { | ||||
|   zle .overwrite-mode | ||||
| @@ -175,6 +214,14 @@ zle -N expand-dot-to-parent-directory-path | ||||
| function expand-or-complete-with-indicator { | ||||
|   local indicator | ||||
|   zstyle -s ':prezto:module:editor:info:completing' format 'indicator' | ||||
|  | ||||
|   # This is included to work around a bug in zsh which shows up when interacting | ||||
|   # with multi-line prompts. | ||||
|   if [[ -z "$indicator" ]]; then | ||||
|     zle expand-or-complete | ||||
|     return | ||||
|   fi | ||||
|  | ||||
|   print -Pn "$indicator" | ||||
|   zle expand-or-complete | ||||
|   zle redisplay | ||||
| @@ -190,6 +237,35 @@ function prepend-sudo { | ||||
| } | ||||
| zle -N prepend-sudo | ||||
|  | ||||
| # Expand aliases | ||||
| function glob-alias { | ||||
|   zle _expand_alias | ||||
|   zle expand-word | ||||
|   zle magic-space | ||||
| } | ||||
| zle -N glob-alias | ||||
|  | ||||
| # Toggle the comment character at the start of the line. This is meant to work | ||||
| # around a buggy implementation of pound-insert in zsh. | ||||
| # | ||||
| # This is currently only used for the emacs keys because vi-pound-insert has | ||||
| # been reported to work properly. | ||||
| function pound-toggle { | ||||
|   if [[ "$BUFFER" = '#'* ]]; then | ||||
|     # Because of an oddity in how zsh handles the cursor when the buffer size | ||||
|     # changes, we need to make this check before we modify the buffer and let | ||||
|     # zsh handle moving the cursor back if it's past the end of the line. | ||||
|     if [[ $CURSOR != $#BUFFER ]]; then | ||||
|       (( CURSOR -= 1 )) | ||||
|     fi | ||||
|     BUFFER="${BUFFER:1}" | ||||
|   else | ||||
|     BUFFER="#$BUFFER" | ||||
|     (( CURSOR += 1 )) | ||||
|   fi | ||||
| } | ||||
| zle -N pound-toggle | ||||
|  | ||||
| # Reset to default key bindings. | ||||
| bindkey -d | ||||
|  | ||||
| @@ -197,10 +273,12 @@ bindkey -d | ||||
| # Emacs Key Bindings | ||||
| # | ||||
|  | ||||
| for key ("$key_info[Escape]"{B,b}) bindkey -M emacs "$key" emacs-backward-word | ||||
| for key ("$key_info[Escape]"{F,f}) bindkey -M emacs "$key" emacs-forward-word | ||||
| bindkey -M emacs "$key_info[Escape]$key_info[Left]" emacs-backward-word | ||||
| bindkey -M emacs "$key_info[Escape]$key_info[Right]" emacs-forward-word | ||||
| for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}" \ | ||||
|   "${key_info[Escape]}${key_info[Left]}" | ||||
|   bindkey -M emacs "$key" emacs-backward-word | ||||
| for key in "$key_info[Escape]"{F,f} "${(s: :)key_info[ControlRight]}" \ | ||||
|   "${key_info[Escape]}${key_info[Right]}" | ||||
|   bindkey -M emacs "$key" emacs-forward-word | ||||
|  | ||||
| # Kill to the beginning of the line. | ||||
| for key in "$key_info[Escape]"{K,k} | ||||
| @@ -225,15 +303,22 @@ if (( $+widgets[history-incremental-pattern-search-backward] )); then | ||||
|     history-incremental-pattern-search-forward | ||||
| fi | ||||
|  | ||||
| # Toggle comment at the start of the line. Note that we use pound-toggle which | ||||
| # is similar to pount insert, but meant to work around some issues that were | ||||
| # being seen in iTerm. | ||||
| bindkey -M emacs "$key_info[Escape];" pound-toggle | ||||
|  | ||||
|  | ||||
| # | ||||
| # Vi Key Bindings | ||||
| # | ||||
|  | ||||
| # Edit command in an external editor. | ||||
| bindkey -M vicmd "v" edit-command-line | ||||
| # Edit command in an external editor emacs style (v is used for visual mode) | ||||
| bindkey -M vicmd "$key_info[Control]X$key_info[Control]E" edit-command-line | ||||
|  | ||||
| # Undo/Redo | ||||
| bindkey -M vicmd "u" undo | ||||
| bindkey -M viins "$key_info[Control]_" undo | ||||
| bindkey -M vicmd "$key_info[Control]R" redo | ||||
|  | ||||
| if (( $+widgets[history-incremental-pattern-search-backward] )); then | ||||
| @@ -244,14 +329,61 @@ else | ||||
|   bindkey -M vicmd "/" history-incremental-search-forward | ||||
| fi | ||||
|  | ||||
| # Toggle comment at the start of the line. | ||||
| bindkey -M vicmd "#" vi-pound-insert | ||||
|  | ||||
| # | ||||
| # Emacs and Vi Key Bindings | ||||
| # | ||||
|  | ||||
| for keymap in 'emacs' 'viins'; do | ||||
| # Unbound keys in vicmd and viins mode will cause really odd things to happen | ||||
| # such as the casing of all the characters you have typed changing or other | ||||
| # undefined things. In emacs mode they just insert a tilde, but bind these keys | ||||
| # in the main keymap to a noop op so if there is no keybind in the users mode | ||||
| # it will fall back and do nothing. | ||||
| function _prezto-zle-noop {  ; } | ||||
| zle -N _prezto-zle-noop | ||||
| local -a unbound_keys | ||||
| unbound_keys=( | ||||
|   "${key_info[F1]}" | ||||
|   "${key_info[F2]}" | ||||
|   "${key_info[F3]}" | ||||
|   "${key_info[F4]}" | ||||
|   "${key_info[F5]}" | ||||
|   "${key_info[F6]}" | ||||
|   "${key_info[F7]}" | ||||
|   "${key_info[F8]}" | ||||
|   "${key_info[F9]}" | ||||
|   "${key_info[F10]}" | ||||
|   "${key_info[F11]}" | ||||
|   "${key_info[F12]}" | ||||
|   "${key_info[PageUp]}" | ||||
|   "${key_info[PageDown]}" | ||||
|   "${key_info[ControlPageUp]}" | ||||
|   "${key_info[ControlPageDown]}" | ||||
| ) | ||||
| for keymap in $unbound_keys; do | ||||
|   bindkey -M viins "${keymap}" _prezto-zle-noop | ||||
|   bindkey -M vicmd "${keymap}" _prezto-zle-noop | ||||
| done | ||||
|  | ||||
| # Keybinds for all keymaps | ||||
| for keymap in 'emacs' 'viins' 'vicmd'; do | ||||
|   bindkey -M "$keymap" "$key_info[Home]" beginning-of-line | ||||
|   bindkey -M "$keymap" "$key_info[End]" end-of-line | ||||
| done | ||||
|  | ||||
| # Keybinds for all vi keymaps | ||||
| for keymap in viins vicmd; do | ||||
|   # Ctrl + Left and Ctrl + Right bindings to forward/backward word | ||||
|   for key in "${(s: :)key_info[ControlLeft]}" | ||||
|     bindkey -M "$keymap" "$key" vi-backward-word | ||||
|   for key in "${(s: :)key_info[ControlRight]}" | ||||
|     bindkey -M "$keymap" "$key" vi-forward-word | ||||
| done | ||||
|  | ||||
| # Keybinds for emacs and vi insert mode | ||||
| for keymap in 'emacs' 'viins'; do | ||||
|   bindkey -M "$keymap" "$key_info[Insert]" overwrite-mode | ||||
|   bindkey -M "$keymap" "$key_info[Delete]" delete-char | ||||
|   bindkey -M "$keymap" "$key_info[Backspace]" backward-delete-char | ||||
| @@ -294,8 +426,14 @@ for keymap in 'emacs' 'viins'; do | ||||
|  | ||||
|   # Insert 'sudo ' at the beginning of the line. | ||||
|   bindkey -M "$keymap" "$key_info[Control]X$key_info[Control]S" prepend-sudo | ||||
|  | ||||
|   # control-space expands all aliases, including global | ||||
|   bindkey -M "$keymap" "$key_info[Control] " glob-alias | ||||
| done | ||||
|  | ||||
| # Delete key deletes character in vimcmd cmd mode instead of weird default functionality | ||||
| bindkey -M vicmd "$key_info[Delete]" delete-char | ||||
|  | ||||
| # Do not expand .... to ../.. during incremental search. | ||||
| if zstyle -t ':prezto:module:editor' dot-expansion; then | ||||
|   bindkey -M isearch . self-insert 2> /dev/null | ||||
| @@ -315,5 +453,4 @@ else | ||||
|   print "prezto: editor: invalid key bindings: $key_bindings" >&2 | ||||
| fi | ||||
|  | ||||
| unset key{,map,bindings} | ||||
|  | ||||
| unset key{,map,_bindings} | ||||
|   | ||||
| @@ -1,10 +1,8 @@ | ||||
| Emacs | ||||
| ===== | ||||
| # Emacs | ||||
|  | ||||
| Enables Emacs dependency management. | ||||
|  | ||||
| Dependency management | ||||
| --------------------- | ||||
| ## Dependency management | ||||
|  | ||||
| [Carton][1] installs and manages Emacs packages for Emacs package development | ||||
| and Emacs configuration. | ||||
| @@ -12,22 +10,20 @@ and Emacs configuration. | ||||
| This module prepends the Carton directory to the path variable to enable the | ||||
| execution of `carton`. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Aliases | ||||
|  | ||||
| ### Carton | ||||
|  | ||||
|   - `cai` installs dependencies. | ||||
|   - `cau` updates dependencies. | ||||
|   - `caI` initializes the current directory for dependency management. | ||||
|   - `cae` executes a command which correct dependencies. | ||||
| - `cai` installs dependencies. | ||||
| - `cau` updates dependencies. | ||||
| - `caI` initializes the current directory for dependency management. | ||||
| - `cae` executes a command which correct dependencies. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][2].* | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
|   - [Sebastian Wiesner](https://github.com/lunaryorn) | ||||
| - [Sebastian Wiesner](https://github.com/lunaryorn) | ||||
|  | ||||
| [1]: https://github.com/rejeep/carton | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -1,26 +1,52 @@ | ||||
| Environment | ||||
| =========== | ||||
| # Environment | ||||
|  | ||||
| Sets general shell options and defines environment variables. | ||||
|  | ||||
| This module must be loaded first. | ||||
|  | ||||
| Environment Variables | ||||
| --------------------- | ||||
| ## Contributors | ||||
|  | ||||
| Contributors | ||||
| ------------ | ||||
| This module **MUST NOT** rely on any command that is not built in Zsh. | ||||
|  | ||||
| This module **MUST NOT** rely on any command not built in Zsh. | ||||
| Non-interactive environment variables should be defined in | ||||
| [_`${ZDOTDIR:-$HOME}/.zshenv`_][1]. | ||||
|  | ||||
| Non-interactive environment variables should be defined in *zshenv*. | ||||
| ## Options | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ### General | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| - `COMBINING_CHARS` combine zero-length punctuation characters (accents) with | ||||
|   the base character. | ||||
| - `INTERACTIVE_COMMENTS` enable comments in interactive shell. | ||||
| - `RC_QUOTES` allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. | ||||
| - `MAIL_WARNING` don't print a warning message if a mail file has been accessed. | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| ### Jobs | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
| - `LONG_LIST_JOBS` list jobs in the long format by default. | ||||
| - `AUTO_RESUME` attempt to resume existing job before creating a new process. | ||||
| - `NOTIFY` report status of background jobs immediately. | ||||
| - `BG_NICE` don't run all background jobs at a lower priority. | ||||
| - `HUP` don't kill jobs on shell exit. | ||||
| - `CHECK_JOBS` don't report on jobs when shell exit. | ||||
|  | ||||
| ## Variables | ||||
|  | ||||
| ### Termcap | ||||
|  | ||||
| - `LESS_TERMCAP_mb` begins blinking. | ||||
| - `LESS_TERMCAP_md` begins bold. | ||||
| - `LESS_TERMCAP_me` ends mode. | ||||
| - `LESS_TERMCAP_se` ends standout-mode. | ||||
| - `LESS_TERMCAP_so` begins standout-mode. | ||||
| - `LESS_TERMCAP_ue` ends underline. | ||||
| - `LESS_TERMCAP_us` begins underline. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: ../../runcoms#zshenv | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -9,18 +9,35 @@ | ||||
| # Smart URLs | ||||
| # | ||||
|  | ||||
| autoload -Uz url-quote-magic | ||||
| zle -N self-insert url-quote-magic | ||||
| # This logic comes from an old version of zim. Essentially, bracketed-paste was | ||||
| # added as a requirement of url-quote-magic in 5.1, but in 5.1.1 bracketed | ||||
| # paste had a regression. Additionally, 5.2 added bracketed-paste-url-magic | ||||
| # which is generally better than url-quote-magic so we load that when possible. | ||||
| autoload -Uz is-at-least | ||||
| if [[ ${ZSH_VERSION} != 5.1.1 && ${TERM} != "dumb" ]]; then | ||||
|   if is-at-least 5.2; then | ||||
|     autoload -Uz bracketed-paste-url-magic | ||||
|     zle -N bracketed-paste bracketed-paste-url-magic | ||||
|   elif is-at-least 5.1; then | ||||
|     autoload -Uz bracketed-paste-magic | ||||
|     zle -N bracketed-paste bracketed-paste-magic | ||||
|   fi | ||||
|   autoload -Uz url-quote-magic | ||||
|   zle -N self-insert url-quote-magic | ||||
| fi | ||||
|  | ||||
| # | ||||
| # General | ||||
| # | ||||
|  | ||||
| setopt BRACE_CCL          # Allow brace character class list expansion. | ||||
| setopt COMBINING_CHARS    # Combine zero-length punctuation characters (accents) | ||||
|                           # with the base character. | ||||
| setopt RC_QUOTES          # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. | ||||
| unsetopt MAIL_WARNING     # Don't print a warning message if a mail file has been accessed. | ||||
| setopt COMBINING_CHARS      # Combine zero-length punctuation characters (accents) | ||||
|                             # with the base character. | ||||
| setopt INTERACTIVE_COMMENTS # Enable comments in interactive shell. | ||||
| setopt RC_QUOTES            # Allow 'Henry''s Garage' instead of 'Henry'\''s Garage'. | ||||
| unsetopt MAIL_WARNING       # Don't print a warning message if a mail file has been accessed. | ||||
|  | ||||
| # Allow mapping Ctrl+S and Ctrl+Q shortcuts | ||||
| [[ -r ${TTY:-} && -w ${TTY:-} && $+commands[stty] == 1 ]] && stty -ixon <$TTY >$TTY | ||||
|  | ||||
| # | ||||
| # Jobs | ||||
| @@ -33,15 +50,6 @@ unsetopt BG_NICE          # Don't run all background jobs at a lower priority. | ||||
| unsetopt HUP              # Don't kill jobs on shell exit. | ||||
| unsetopt CHECK_JOBS       # Don't report on jobs when shell exit. | ||||
|  | ||||
| # | ||||
| # Grep | ||||
| # | ||||
|  | ||||
| if zstyle -t ':prezto:environment:grep' color; then | ||||
|   export GREP_COLOR='37;45' | ||||
|   export GREP_OPTIONS='--color=auto' | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Termcap | ||||
| # | ||||
| @@ -55,4 +63,3 @@ if zstyle -t ':prezto:environment:termcap' color; then | ||||
|   export LESS_TERMCAP_ue=$'\E[0m'          # Ends underline. | ||||
|   export LESS_TERMCAP_us=$'\E[01;32m'      # Begins underline. | ||||
| fi | ||||
|  | ||||
|   | ||||
| @@ -1,39 +1,41 @@ | ||||
| Fasd | ||||
| ==== | ||||
| # Fasd | ||||
|  | ||||
| [Fasd][1] is a command-line productivity booster, inspired by tools like | ||||
| [autojump][2], [z][3] and [v][4], it offers quick access to files and | ||||
| directories by keeping track of files and directories  that were previously | ||||
| directories by keeping track of files and directories that were previously | ||||
| accessed. | ||||
|  | ||||
| For completion to work, this module must be loaded **after** the *completion* | ||||
| module. | ||||
| For shell completion to work, this module must be loaded _after_ the | ||||
| [_`completion`_][5] module. | ||||
|  | ||||
| The Prezto Fasd configuration differs from the default. The default aliases have | ||||
| been disabled. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Installation | ||||
|  | ||||
|   - `j` changes the current working directory interactively. | ||||
| `fasd` is bundled with prezto as a git submodule. Alternatively, you can | ||||
| manually install `fasd`. If a manual installation is found, it will be used | ||||
| instead of the bundled version. | ||||
|  | ||||
| Completion | ||||
| ---------- | ||||
| ## Aliases | ||||
|  | ||||
| Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`,  `,,f`, | ||||
| `,,d` at the end of a comma-separated query then hit <kbd>tab</kbd>. | ||||
| - `j` changes the current working directory interactively. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Completion | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][5].* | ||||
| Type `,`, `f,`, `d,` in front of a comma-separated query or type `,,`, `,,f`, | ||||
| `,,d` at the end of a comma-separated query then hit <kbd>TAB</kbd>. | ||||
|  | ||||
|   - [Wei Dai](https://github.com/clvv) | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][6]._ | ||||
|  | ||||
| - [Wei Dai](https://github.com/clvv) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/clvv/fasd | ||||
| [2]: https://github.com/joelthelion/autojump | ||||
| [3]: https://github.com/rupa/z | ||||
| [4]: https://github.com/rupa/v | ||||
| [5]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
| [5]: ../completion#readme | ||||
| [6]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
							
								
								
									
										1
									
								
								modules/fasd/external
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								modules/fasd/external
									
									
									
									
									
										Submodule
									
								
							 Submodule modules/fasd/external added at 48220241e7
									
								
							| @@ -9,17 +9,20 @@ | ||||
| # Load dependencies. | ||||
| pmodload 'editor' | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| # If the command doesn't exist externally, we need to fall back to the bundled | ||||
| # submodule. | ||||
| if (( ! $+commands[fasd] )); then | ||||
|   return 1 | ||||
|   source "${0:h}/external/fasd" || return 1 | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Initialization | ||||
| # | ||||
|  | ||||
| cache_file="${0:h}/cache.zsh" | ||||
| if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file"  ]]; then | ||||
| cache_file="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/fasd-cache.zsh" | ||||
| if [[ "${commands[fasd]}" -nt "$cache_file" \ | ||||
|       || "${ZDOTDIR:-$HOME}/.zpreztorc" -nt "$cache_file" \ | ||||
|       || ! -s "$cache_file"  ]]; then | ||||
|   # Set the base init arguments. | ||||
|   init_args=(zsh-hook) | ||||
|  | ||||
| @@ -28,6 +31,7 @@ if [[ "${commands[fasd]}" -nt "$cache_file" || ! -s "$cache_file"  ]]; then | ||||
|     init_args+=(zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install) | ||||
|   fi | ||||
|  | ||||
|   mkdir -p "$cache_file:h" | ||||
|   # Cache init code. | ||||
|   fasd --init "$init_args[@]" >! "$cache_file" 2> /dev/null | ||||
| fi | ||||
| @@ -51,4 +55,3 @@ function fasd_cd { | ||||
|  | ||||
| # Changes the current working directory interactively. | ||||
| alias j='fasd_cd -i' | ||||
|  | ||||
|   | ||||
| @@ -1,219 +1,336 @@ | ||||
| Git | ||||
| === | ||||
| # Git | ||||
|  | ||||
| Enhances the [Git][1] distributed version control system by providing aliases, | ||||
| functions and by exposing repository status information to prompts. | ||||
|  | ||||
| Git **1.7.2** is the [minimum required version][7]. | ||||
| This module must be loaded _before_ the [_`completion`_][13] module so that the | ||||
| provided completion definitions are loaded automatically by _`completion`_ | ||||
| module. | ||||
|  | ||||
| Settings | ||||
| -------- | ||||
| **Note:** Git **2.11** is the minimum required version for better | ||||
| [git-rev-list][7] and [git-submodule][14] support. | ||||
|  | ||||
| ## Settings | ||||
|  | ||||
| ### Log | ||||
|  | ||||
| The format of the [git-log][8] output is configurable via the following style, | ||||
| where context is *brief*, *oneline*, and *medium*, which will be passed to the | ||||
| `--pretty=format:` switch. | ||||
| To configure the format of the [git-log][8] output, add the following to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<context>'` with `'brief'`, | ||||
| `'oneline'`, and `'medium'`. This will be passed to the `--pretty=format:` | ||||
| switch. | ||||
|  | ||||
|     zstyle ':prezto:module:git:log:context' format '' | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:log:context' format '<context>' | ||||
| ``` | ||||
|  | ||||
| ### Status | ||||
|  | ||||
| Retrieving the status of a repository with submodules can take a long time. | ||||
| Submodules may be ignored when they are *dirty*, *untracked*, *all*, or *none*. | ||||
| Retrieving the status of a repository with [git-submodule][9] can take a long | ||||
| time. To configure the submodules to ignore, add the following to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'<state>'` with `'dirty'`, | ||||
| `'untracked'`, `'all'`, or `'none'`. | ||||
|  | ||||
|     zstyle ':prezto:module:git:status:ignore' submodules 'all' | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:status:ignore' submodules '<state>' | ||||
| ``` | ||||
|  | ||||
| This setting affects all aliases and functions that call `git-status`. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Aliases | ||||
|  | ||||
| Aliases are enabled by default. To disable them, add the following to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_. | ||||
|  | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:alias' skip 'yes' | ||||
| ``` | ||||
|  | ||||
| ### Git | ||||
|  | ||||
|   - `g` is short for `git`. | ||||
| - `g` is short for `git`. | ||||
|  | ||||
| ### Branch | ||||
| ### Branch (b) | ||||
|  | ||||
|   - `gb` lists, creates, renames, and deletes branches. | ||||
|   - `gbc` creates a new branch. | ||||
|   - `gbl` lists branches and their commits. | ||||
|   - `gbL` lists local and remote branches and their commits. | ||||
|   - `gbs` lists branches and their commits with ancestry graphs. | ||||
|   - `gbS` lists local and remote branches and their commits with ancestry | ||||
|     graphs. | ||||
|   - `gbx` deletes a branch. | ||||
|   - `gbX` deletes a branch irrespective of its merged status. | ||||
|   - `gbm` renames a branch. | ||||
|   - `gbM` renames a branch even if the new branch name already exists. | ||||
| - `gb` lists, creates, renames, and deletes branches. | ||||
| - `gbc` creates a new branch. | ||||
| - `gbl` lists branches and their commits. (also `gbv`) | ||||
| - `gbL` lists all local and remote branches and their commits. | ||||
| - `gbr` renames a branch. (also `gbm`) | ||||
| - `gbR` renames a branch even if the new branch name already exists. (also | ||||
|   `gbM`) | ||||
| - `gbs` lists branches and their commits with ancestry graphs. | ||||
| - `gbS` lists local and remote branches and their commits with ancestry graphs. | ||||
| - `gbV` lists branches with more verbose information about their commits. | ||||
| - `gbx` deletes a branch. (also `gbd`) | ||||
| - `gbX` deletes a branch irrespective of its merged status. (also `gbD`) | ||||
|  | ||||
| ### Commit (c) | ||||
|  | ||||
| ### Commit | ||||
| - `gc` records changes to the repository. | ||||
| - `gcS` records changes to the repository. (Signed) | ||||
| - `gca` stages all modified and deleted files. | ||||
| - `gcaS` stages all modified and deleted files. (Signed) | ||||
| - `gcm` records changes to the repository with the given message. | ||||
| - `gcmS` records changes to the repository with the given message. (Signed) | ||||
| - `gcam` stages all modified and deleted files, and records changes to the | ||||
|   repository with the given message. | ||||
| - `gco` checks out a branch or paths to work tree. | ||||
| - `gcO` checks out hunks from the index or the tree interactively. | ||||
| - `gcf` amends the tip of the current branch using the same log message as | ||||
|   _HEAD_. | ||||
| - `gcfS` amends the tip of the current branch using the same log message as | ||||
|   _HEAD_. (Signed) | ||||
| - `gcF` amends the tip of the current branch. | ||||
| - `gcFS` amends the tip of the current branch. (Signed) | ||||
| - `gcp` applies changes introduced by existing commits. | ||||
| - `gcP` applies changes introduced by existing commits without committing. | ||||
| - `gcr` reverts existing commits by reverting patches and recording new commits. | ||||
| - `gcR` removes the _HEAD_ commit. | ||||
| - `gcs` displays commits with various objects. | ||||
| - `gcsS` displays commits with GPG signature. | ||||
| - `gcl` lists lost commits. | ||||
| - `gcy` displays commits yet to be applied to upstream in the short format. | ||||
| - `gcY` displays commits yet to be applied to upstream. | ||||
|  | ||||
|   - `gc` records changes to the repository. | ||||
|   - `gca` stages all modified and deleted files. | ||||
|   - `gcm` records changes to the repository with the given message. | ||||
|   - `gco` checks out a branch or paths to work tree. | ||||
|   - `gcO` checks out hunks from the index or the tree interactively. | ||||
|   - `gcf` amends the tip of the current branch using the same log message as | ||||
|     *HEAD*. | ||||
|   - `gcF` amends the tip of the current branch. | ||||
|   - `gcp` applies changes introduced by existing commits. | ||||
|   - `gcP` applies changes introduced by existing commits without committing. | ||||
|   - `gcr` reverts existing commits by reverting patches and recording new | ||||
|      commits. | ||||
|   - `gcR` removes the *HEAD* commit. | ||||
|   - `gcs` displays various types of objects. | ||||
|   - `gcl` lists lost commits. | ||||
| ### Conflict (C) | ||||
|  | ||||
| ### Conflict | ||||
| - `gCl` lists unmerged files. | ||||
| - `gCa` adds unmerged file contents to the index. | ||||
| - `gCe` executes merge-tool on all unmerged file. | ||||
| - `gCo` checks out our changes for unmerged paths. | ||||
| - `gCO` checks out our changes for all unmerged paths. | ||||
| - `gCt` checks out their changes for unmerged paths. | ||||
| - `gCT` checks out their changes for all unmerged paths. | ||||
|  | ||||
|   - `gCl` lists unmerged files. | ||||
|   - `gCa` adds unmerged file contents to the index. | ||||
|   - `gCe` executes merge-tool on all unmerged file. | ||||
|   - `gCo` checks out our changes for unmerged paths. | ||||
|   - `gCO` checks out our changes for all unmerged paths. | ||||
|   - `gCt` checks out their changes for unmerged paths. | ||||
|   - `gCT` checks out their changes for all unmerged paths. | ||||
| ### Data (d) | ||||
|  | ||||
| ### Data | ||||
| - `gd` displays information about files in the index and the work tree. | ||||
| - `gdc` lists cached files. | ||||
| - `gdx` lists deleted files. | ||||
| - `gdm` lists modified files. | ||||
| - `gdu` lists untracked files. | ||||
| - `gdk` lists killed files. | ||||
| - `gdi` lists ignored files. | ||||
|  | ||||
|   - `gd` displays information about files in the index and the work tree. | ||||
|   - `gdc` lists cached files. | ||||
|   - `gdx` lists deleted files. | ||||
|   - `gdm` lists modified files. | ||||
|   - `gdu` lists untracked files. | ||||
|   - `gdk` lists killed files. | ||||
|   - `gdi` lists ignored files. | ||||
| ### Fetch (f) | ||||
|  | ||||
| ### Fetch | ||||
| - `gf` downloads objects and references from another repository. | ||||
| - `gfa` downloads objects and references from all remote repositories. | ||||
| - `gfc` clones a repository into a new directory. | ||||
| - `gfcr` clones a repository into a new directory including all submodules. | ||||
| - `gfm` fetches from and merges with another repository or local branch. | ||||
| - `gfr` fetches from and rebases on another repository or local branch. | ||||
|  | ||||
|   - `gf` downloads objects and references from another repository. | ||||
|   - `gfc` clones a repository into a new directory. | ||||
|   - `gfm` fetches from and merges with another repository or local branch. | ||||
|   - `gfr` fetches from and rebases on another repository or local branch. | ||||
| ### Flow (F) | ||||
|  | ||||
| ### Grep | ||||
| - `gFi` is short for `git flow init` | ||||
|  | ||||
|   - `gg` displays lines matching a pattern. | ||||
|   - `ggi` displays lines matching a pattern ignoring case. | ||||
|   - `ggl` lists files matching a pattern. | ||||
|   - `ggL` lists files that are not matching a pattern. | ||||
|   - `ggv` displays lines not matching a pattern. | ||||
|   - `ggw` displays lines matching a pattern at word boundary. | ||||
| #### Feature (Ff) | ||||
|  | ||||
| ### Index | ||||
| - `gFf` is short for `git flow feature` | ||||
| - `gFfl` is short for `git flow feature list` | ||||
| - `gFfs` is short for `git flow feature start` | ||||
| - `gFff` is short for `git flow feature finish` | ||||
| - `gFfp` is short for `git flow feature publish` | ||||
| - `gFft` is short for `git flow feature track` | ||||
| - `gFfd` is short for `git flow feature diff` | ||||
| - `gFfr` is short for `git flow feature rebase` | ||||
| - `gFfc` is short for `git flow feature checkout` | ||||
| - `gFfm` is short for `git flow feature pull` | ||||
| - `gFfx` is short for `git flow feature delete` | ||||
|  | ||||
|   - `gia` adds file contents to the index. | ||||
|   - `giA` adds file contents to the index interactively. | ||||
|   - `giu` adds file contents to the index (updates only known files). | ||||
|   - `gid` displays changes between the index and a named commit (diff). | ||||
|   - `giD` displays changes between the index and a named commit (word diff). | ||||
|   - `gir` resets the current HEAD to the specified state. | ||||
|   - `giR` resets the current index interactively. | ||||
|   - `gix` removes files/directories from the index (recursively). | ||||
|   - `giX` removes files/directories from the index (recursively and forced). | ||||
| #### Bugfix (Fb) | ||||
|  | ||||
| ### Log | ||||
| - `gFb` is short for `git flow bugfix` | ||||
| - `gFbl` is short for `git flow bugfix list` | ||||
| - `gFbs` is short for `git flow bugfix start` | ||||
| - `gFbf` is short for `git flow bugfix finish` | ||||
| - `gFbp` is short for `git flow bugfix publish` | ||||
| - `gFbt` is short for `git flow bugfix track` | ||||
| - `gFbd` is short for `git flow bugfix diff` | ||||
| - `gFbr` is short for `git flow bugfix rebase` | ||||
| - `gFbc` is short for `git flow bugfix checkout` | ||||
| - `gFbm` is short for `git flow bugfix pull` | ||||
| - `gFbx` is short for `git flow bugfix delete` | ||||
|  | ||||
|   - `gl` displays the log. | ||||
|   - `gls` displays the stats log. | ||||
|   - `gld` displays the diff log. | ||||
|   - `glo` displays the one line log. | ||||
|   - `glg` displays the graph log. | ||||
|   - `glb` displays the brief commit log. | ||||
|   - `glc` displays the commit count for each contributor in descending order. | ||||
| #### Release (Fl) | ||||
|  | ||||
| ### Merge | ||||
| - `gFl` is short for `git flow release` | ||||
| - `gFll` is short for `git flow release list` | ||||
| - `gFls` is short for `git flow release start` | ||||
| - `gFlf` is short for `git flow release finish` | ||||
| - `gFlp` is short for `git flow release publish` | ||||
| - `gFlt` is short for `git flow release track` | ||||
| - `gFld` is short for `git flow release diff` | ||||
| - `gFlr` is short for `git flow release rebase` | ||||
| - `gFlc` is short for `git flow release checkout` | ||||
| - `gFlm` is short for `git flow release pull` | ||||
| - `gFlx` is short for `git flow release delete` | ||||
|  | ||||
|   - `gm` joins two or more development histories together. | ||||
|   - `gmC` joins two or more development histories together but does not commit. | ||||
|   - `gmF` joins two or more development histories together but does not commit | ||||
|      generating a merge commit even if the merge resolved as a fast-forward. | ||||
|   - `gma` aborts the conflict resolution, and reconstructs the pre-merge state. | ||||
|   - `gmt` runs the merge conflict resolution tools to resolve conflicts. | ||||
| #### Hotfix (Fh) | ||||
|  | ||||
| ### Push | ||||
| - `gFh` is short for `git flow hotfix` | ||||
| - `gFhl` is short for `git flow hotfix list` | ||||
| - `gFhs` is short for `git flow hotfix start` | ||||
| - `gFhf` is short for `git flow hotfix finish` | ||||
| - `gFhp` is short for `git flow hotfix publish` | ||||
| - `gFht` is short for `git flow hotfix track` | ||||
| - `gFhd` is short for `git flow hotfix diff` | ||||
| - `gFhr` is short for `git flow hotfix rebase` | ||||
| - `gFhc` is short for `git flow hotfix checkout` | ||||
| - `gFhm` is short for `git flow hotfix pull` | ||||
| - `gFhx` is short for `git flow hotfix delete` | ||||
|  | ||||
|   - `gp` updates remote refs along with associated objects. | ||||
|   - `gpf` forcefully updates remote refs along with associated objects. | ||||
|   - `gpa` updates remote branches along with associated objects. | ||||
|   - `gpA` updates remote branches and tags along with associated objects. | ||||
|   - `gpt` updates remote tags along with associated objects. | ||||
|   - `gpc` updates remote refs along with associated objects and adds *origin* | ||||
|      as an upstream reference for the current branch. | ||||
|   - `gpp` pulls and pushes from origin to origin. | ||||
| #### Support (Fs) | ||||
|  | ||||
| ### Rebase | ||||
| - `gFs` is short for `git flow support` | ||||
| - `gFsl` is short for `git flow support list` | ||||
| - `gFss` is short for `git flow support start` | ||||
| - `gFsf` is short for `git flow support finish` | ||||
| - `gFsp` is short for `git flow support publish` | ||||
| - `gFst` is short for `git flow support track` | ||||
| - `gFsd` is short for `git flow support diff` | ||||
| - `gFsr` is short for `git flow support rebase` | ||||
| - `gFsc` is short for `git flow support checkout` | ||||
| - `gFsm` is short for `git flow support pull` | ||||
| - `gFsx` is short for `git flow support delete` | ||||
|  | ||||
|   - `gr` forward-ports local commits to the updated upstream head. | ||||
|   - `gra` aborts the rebase. | ||||
|   - `grc` continues the rebase after merge conflicts are resolved. | ||||
|   - `gri` makes a list of commits to be rebased and opens the editor. | ||||
|   - `grs` skips the current patch. | ||||
| ### Grep (g) | ||||
|  | ||||
| ### Remote | ||||
| - `gg` displays lines matching a pattern. | ||||
| - `ggi` displays lines matching a pattern ignoring case. | ||||
| - `ggl` lists files matching a pattern. | ||||
| - `ggL` lists files that are not matching a pattern. | ||||
| - `ggv` displays lines not matching a pattern. | ||||
| - `ggw` displays lines matching a pattern at word boundary. | ||||
|  | ||||
|   - `gR` manages tracked repositories. | ||||
|   - `gRl` lists remote names and their URLs. | ||||
|   - `gRa` adds a new remote. | ||||
|   - `gRx` removes a remote. | ||||
|   - `gRm` renames a remote. | ||||
|   - `gRu` fetches remotes updates. | ||||
|   - `gRp` prunes all stale remote tracking branches. | ||||
|   - `gRs` displays information about a given remote. | ||||
|   - `gRb` opens a remote on [GitHub][3] in the default browser. | ||||
| ### Index (i) | ||||
|  | ||||
| ### Stash | ||||
| - `gia` adds file contents to the index. | ||||
| - `giA` adds file contents to the index interactively. | ||||
| - `giu` adds file contents to the index (updates only known files). | ||||
| - `gid` displays changes between the index and a named commit (diff). | ||||
| - `giD` displays changes between the index and a named commit (word diff). | ||||
| - `gii` temporarily ignore differences in a given file. | ||||
| - `giI` unignore differences in a given file. | ||||
| - `gir` resets the current HEAD to the specified state. | ||||
| - `giR` resets the current index interactively. | ||||
| - `gix` removes files/directories from the index (recursively). | ||||
| - `giX` removes files/directories from the index (recursively and forced). | ||||
|  | ||||
|   - `gs` stashes the changes of the dirty working directory. | ||||
|   - `gsa` applies the changes recorded in a stash to the working directory. | ||||
|   - `gsx` drops a stashed state. | ||||
|   - `gsX` drops all the stashed states. | ||||
|   - `gsl` lists stashed states. | ||||
|   - `gsL` lists dropped stashed states. | ||||
|   - `gsd` displays changes between the stash and its original parent. | ||||
|   - `gsp` removes and applies a single stashed state from the stash list. | ||||
|   - `gsr` recovers a given stashed state. | ||||
|   - `gss` stashes the changes of the dirty working directory, including untracked. | ||||
|   - `gsS` stashes the changes of the dirty working directory interactively. | ||||
|   - `gsw` stashes the changes of the dirty working directory retaining the index. | ||||
| ### Log (l) | ||||
|  | ||||
| ### Submodule | ||||
| - `gl` displays the log. | ||||
| - `gls` displays the stats log. | ||||
| - `gld` displays the diff log. | ||||
| - `glo` displays the one line log. | ||||
| - `glg` displays the graph log. | ||||
| - `glb` displays the brief commit log. | ||||
| - `glc` displays the commit count for each contributor in descending order. | ||||
| - `glS` displays the log and checks the validity of signed commits. | ||||
|  | ||||
|   - `gS` initializes, updates, or inspects submodules. | ||||
|   - `gSa` adds given a repository as a submodule. | ||||
|   - `gSf` evaluates a shell command in each of checked out submodules. | ||||
|   - `gSi` initializes submodules. | ||||
|   - `gSI` initializes and clones submodules recursively. | ||||
|   - `gSl` lists the commits of all submodules. | ||||
|   - `gSm` moves a submodule. | ||||
|   - `gSs` synchronizes submodules' remote URL to the value specified in | ||||
|     .gitmodules. | ||||
|   - `gSu` fetches and merges the latest changes for all submodule. | ||||
|   - `gSx` removes a submodule. | ||||
| ### Merge (m) | ||||
|  | ||||
| ### Working directory | ||||
| - `gm` joins two or more development histories together. | ||||
| - `gmC` joins two or more development histories together but does not commit. | ||||
| - `gmF` joins two or more development histories together but does not commit | ||||
|   generating a merge commit even if the merge resolved as a fast-forward. | ||||
| - `gma` aborts the conflict resolution, and reconstructs the pre-merge state. | ||||
| - `gmt` runs the merge conflict resolution tools to resolve conflicts. | ||||
|  | ||||
|   - `gws` displays working-tree status in the short format. | ||||
|   - `gwS` displays working-tree status. | ||||
|   - `gwd` displays changes between the working tree and the index (diff). | ||||
|   - `gwD` displays changes between the working tree and the index (word diff). | ||||
|   - `gwr` resets the current HEAD to the specified state, does not touch the | ||||
|      index nor the working tree. | ||||
|   - `gwR` resets the current HEAD, index and working tree to the specified state. | ||||
|   - `gwc` removes untracked files from the working tree (dry-run). | ||||
|   - `gwC` removes untracked files from the working tree. | ||||
|   - `gwx` removes files from the working tree and from the index recursively. | ||||
|   - `gwX` removes files from the working tree and from the index recursively and | ||||
|     forcefully. | ||||
| ### Push (p) | ||||
|  | ||||
| - `gp` updates remote refs along with associated objects. | ||||
| - `gpf` forcefully updates remote refs along with associated objects using the | ||||
|   safer `--force-with-lease` option. | ||||
| - `gpF` forcefully updates remote refs along with associated objects using the | ||||
|   riskier `--force` option. | ||||
| - `gpa` updates remote branches along with associated objects. | ||||
| - `gpA` updates remote branches and tags along with associated objects. | ||||
| - `gpt` updates remote tags along with associated objects. | ||||
| - `gpc` updates remote refs along with associated objects and adds _origin_ as | ||||
|   an upstream reference for the current branch. | ||||
| - `gpp` pulls and pushes from origin to origin. | ||||
|  | ||||
| ### Rebase (r) | ||||
|  | ||||
| - `gr` forward-ports local commits to the updated upstream _HEAD_. | ||||
| - `gra` aborts the rebase. | ||||
| - `grc` continues the rebase after merge conflicts are resolved. | ||||
| - `gri` makes a list of commits to be rebased and opens the editor. | ||||
| - `grs` skips the current patch. | ||||
|  | ||||
| ### Remote (R) | ||||
|  | ||||
| - `gR` manages tracked repositories. | ||||
| - `gRl` lists remote names and their URLs. | ||||
| - `gRa` adds a new remote. | ||||
| - `gRx` removes a remote. | ||||
| - `gRm` renames a remote. | ||||
| - `gRu` fetches remotes updates. | ||||
| - `gRp` prunes all stale remote tracking branches. | ||||
| - `gRs` displays information about a given remote. | ||||
| - `gRb` opens a remote on [GitHub][3] in the default browser. | ||||
|  | ||||
| ### Stash (s) | ||||
|  | ||||
| - `gs` stashes the changes of the dirty working directory. | ||||
| - `gsa` applies the changes recorded in a stash to the working directory. | ||||
| - `gsx` drops a stashed state. | ||||
| - `gsX` drops all the stashed states. | ||||
| - `gsl` lists stashed states. | ||||
| - `gsL` lists dropped stashed states. | ||||
| - `gsd` displays changes between the stash and its original parent. | ||||
| - `gsp` removes and applies a single stashed state from the stash list. | ||||
| - `gsr` recovers a given stashed state. | ||||
| - `gss` stashes the changes of the dirty working directory, including untracked. | ||||
| - `gsS` stashes the changes of the dirty working directory interactively. | ||||
| - `gsw` stashes the changes of the dirty working directory retaining the index. | ||||
|  | ||||
| ### Submodule (S) | ||||
|  | ||||
| - `gS` initializes, updates, or inspects submodules. | ||||
| - `gSa` adds given a repository as a submodule. | ||||
| - `gSf` evaluates a shell command in each of checked out submodules. | ||||
| - `gSi` initializes submodules. | ||||
| - `gSI` initializes and clones submodules recursively. | ||||
| - `gSl` lists the commits of all submodules. | ||||
| - `gSm` moves a submodule. | ||||
| - `gSs` synchronizes submodules' remote URL to the value specified in | ||||
|   _.gitmodules_. | ||||
| - `gSu` fetches and merges the latest changes for all submodule. | ||||
| - `gSx` removes a submodule. | ||||
|  | ||||
| ### Tag (t) | ||||
|  | ||||
| - `gt` lists tags or creates tag. | ||||
| - `gtl` lists tags matching pattern. | ||||
| - `gts` creates a signed tag. | ||||
| - `gtv` validate a signed tag. | ||||
|  | ||||
| ### Working directory (w) | ||||
|  | ||||
| - `gws` displays working-tree status in the short format. | ||||
| - `gwS` displays working-tree status. | ||||
| - `gwd` displays changes between the working tree and the index (diff). | ||||
| - `gwD` displays changes between the working tree and the index (word diff). | ||||
| - `gwr` resets the current HEAD to the specified state, does not touch the | ||||
|   index nor the working tree. | ||||
| - `gwR` resets the current HEAD, index and working tree to the specified state. | ||||
| - `gwc` removes untracked files from the working tree (dry-run). | ||||
| - `gwC` removes untracked files from the working tree. | ||||
| - `gwx` removes files from the working tree and from the index recursively. | ||||
| - `gwX` removes files from the working tree and from the index recursively and | ||||
|   forcefully. | ||||
|  | ||||
| ### Shadows | ||||
|  | ||||
| The following aliases may shadow system commands: | ||||
|  | ||||
|   - `gpt` shadows the [GUID partition table maintenance utility][4]. | ||||
|   - `gs` shadows the [Ghostscript][5]. | ||||
| - `gb` shadows the [GB][10]. | ||||
| - `gm` shadows the [GraphicsMagick image processor][11]. | ||||
| - `gpt` shadows the [GUID partition table maintenance utility][4]. | ||||
| - `gs` shadows the [Ghostscript interpreter and previewer][5]. | ||||
|  | ||||
| If you frequently use the above commands, you may wish to remove said aliases | ||||
| from this module or to disable them at the bottom of the zshrc with `unalias`. | ||||
| @@ -221,115 +338,127 @@ from this module or to disable them at the bottom of the zshrc with `unalias`. | ||||
| You can temporarily bypass an alias by prefixing it with a backward slash: | ||||
| `\gpt`. | ||||
|  | ||||
| Functions | ||||
| --------- | ||||
| ## Functions | ||||
|  | ||||
|   - `git-branch-current` displays the current branch. | ||||
|   - `git-commit-lost` lists lost commits. | ||||
|   - `git-dir` displays the path to the Git directory. | ||||
|   - `git-hub-browse` opens the [GitHub][3] repository in the default browser. | ||||
|   - `git-hub-shorten-url` shortens GitHub URLs. | ||||
|   - `git-info` exposes repository information via the `$git_info` associative | ||||
|     array. | ||||
|   - `git-root` displays the path to the working tree root. | ||||
|   - `git-stash-clear-interactive` asks for confirmation before clearing the stash. | ||||
|   - `git-stash-dropped` lists dropped stashed states. | ||||
|   - `git-stash-recover` recovers given dropped stashed states. | ||||
|   - `git-submodule-move` moves a submodule. | ||||
|   - `git-submodule-remove` removes a submodule. | ||||
| - `git-branch-current` displays the current branch. | ||||
| - `git-commit-lost` lists lost commits. | ||||
| - `git-dir` displays the path to the Git directory. | ||||
| - `git-hub-browse` opens the [GitHub][3] repository in the default browser. | ||||
| - `git-hub-shorten-url` shortens [GitHub URLs][12]. | ||||
| - `git-info` exposes repository information via the `$git_info` associative | ||||
|   array. | ||||
| - `git-root` displays the path to the working tree root. | ||||
| - `git-stash-clear-interactive` asks for confirmation before clearing the stash. | ||||
| - `git-stash-dropped` lists dropped stashed states. | ||||
| - `git-stash-recover` recovers given dropped stashed states. | ||||
| - `git-submodule-move` moves a submodule. | ||||
| - `git-submodule-remove` removes a submodule. | ||||
|  | ||||
| Theming | ||||
| ------- | ||||
| ## Theming | ||||
|  | ||||
| To display information about the current repository in a prompt, define the | ||||
| following styles in the `prompt_name_setup` function, where the syntax for | ||||
| setting a style is as follows. | ||||
|  | ||||
|     zstyle ':prezto:module:git:info:context:subcontext' format 'string' | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:info:context:subcontext' format 'string' | ||||
| ``` | ||||
|  | ||||
| ### Main Contexts | ||||
|  | ||||
| | Name      | Format Code | Description | ||||
| | --------- | :---------: | --------------------------------------------------- | ||||
| | action    |     %s      | Special action name | ||||
| | ahead     |     %A      | Commits ahead of remote count | ||||
| | behind    |     %B      | Commits behind of remote count | ||||
| | branch    |     %b      | Branch name | ||||
| | commit    |     %c      | Commit hash | ||||
| | position  |     %p      | Commits from the nearest tag count | ||||
| | remote    |     %R      | Remote name | ||||
| | stashed   |     %S      | Stashed states count | ||||
| | Name     | Format Code | Description                        | | ||||
| | -------- | :---------: | ---------------------------------- | | ||||
| | action   |     %s      | Special action name                | | ||||
| | ahead    |     %A      | Commits ahead of remote count      | | ||||
| | behind   |     %B      | Commits behind of remote count     | | ||||
| | branch   |     %b      | Branch name                        | | ||||
| | commit   |     %c      | Commit hash                        | | ||||
| | position |     %p      | Commits from the nearest tag count | | ||||
| | remote   |     %R      | Remote name                        | | ||||
| | stashed  |     %S      | Stashed states count               | | ||||
|  | ||||
| ### Concise Contexts | ||||
|  | ||||
| | Name      | Format Code | Description | ||||
| | --------- | :---------: | --------------------------------------------------- | ||||
| | clean     |     %C      | Clean state | ||||
| | dirty     |     %D      | Dirty files count | ||||
| | indexed   |     %i      | Indexed files count | ||||
| | unindexed |     %I      | Unindexed files count | ||||
| | untracked |     %u      | Untracked files count | ||||
| | Name      | Format Code | Description           | | ||||
| | --------- | :---------: | --------------------- | | ||||
| | clean     |     %C      | Clean state           | | ||||
| | dirty     |     %D      | Dirty files count     | | ||||
| | indexed   |     %i      | Indexed files count   | | ||||
| | unindexed |     %I      | Unindexed files count | | ||||
| | untracked |     %u      | Untracked files count | | ||||
|  | ||||
| The following contexts must be enabled with the following zstyle: | ||||
|  | ||||
|     zstyle ':prezto:module:git:info' verbose 'yes' | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:info' verbose 'yes' | ||||
| ``` | ||||
|  | ||||
| ### Verbose Contexts | ||||
|  | ||||
| | Name      | Format Code | Description | ||||
| | --------- | :---------: | --------------------------------------------------- | ||||
| | added     |     %a      | Added files count | ||||
| | clean     |     %C      | Clean state | ||||
| | deleted   |     %d      | Deleted files count | ||||
| | dirty     |     %D      | Dirty files count | ||||
| | modified  |     %m      | Modified files count | ||||
| | renamed   |     %r      | Renamed files count | ||||
| | unmerged  |     %U      | Unmerged files count | ||||
| | untracked |     %u      | Untracked files count | ||||
| | Name      | Format Code | Description           | | ||||
| | --------- | :---------: | --------------------- | | ||||
| | added     |     %a      | Added files count     | | ||||
| | clean     |     %C      | Clean state           | | ||||
| | deleted   |     %d      | Deleted files count   | | ||||
| | dirty     |     %D      | Dirty files count     | | ||||
| | modified  |     %m      | Modified files count  | | ||||
| | renamed   |     %r      | Renamed files count   | | ||||
| | unmerged  |     %U      | Unmerged files count  | | ||||
| | untracked |     %u      | Untracked files count | | ||||
|  | ||||
| ### Special Action Contexts | ||||
|  | ||||
| | Name                 |   Format    | Description | ||||
| | -------------------- | :---------: | ----------------------------------------- | ||||
| | apply                |    value    | Applying patches | ||||
| | bisect               |    value    | Binary searching for changes | ||||
| | cherry-pick          |    value    | Cherry picking | ||||
| | cherry-pick-sequence |    value    | Cherry picking sequence | ||||
| | merge                |    value    | Merging | ||||
| | rebase               |    value    | Rebasing | ||||
| | rebase-interactive   |    value    | Rebasing interactively | ||||
| | rebase-merge         |    value    | Rebasing merge | ||||
| | Name                 | Format | Description                  | | ||||
| | -------------------- | :----: | ---------------------------- | | ||||
| | apply                | value  | Applying patches             | | ||||
| | bisect               | value  | Binary searching for changes | | ||||
| | cherry-pick          | value  | Cherry picking               | | ||||
| | cherry-pick-sequence | value  | Cherry picking sequence      | | ||||
| | merge                | value  | Merging                      | | ||||
| | rebase               | value  | Rebasing                     | | ||||
| | rebase-interactive   | value  | Rebasing interactively       | | ||||
| | rebase-merge         | value  | Rebasing merge               | | ||||
| | revert               | value  | Reverting                    | | ||||
| | revert-sequence      | value  | Reverting sequence           | | ||||
|  | ||||
| First, format the repository state attributes. For example, to format the branch | ||||
| and remote names, define the following styles. | ||||
|  | ||||
|     zstyle ':prezto:module:git:info:branch' format 'branch:%b' | ||||
|     zstyle ':prezto:module:git:info:remote' format 'remote:%R' | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:info:branch' format 'branch:%b' | ||||
| zstyle ':prezto:module:git:info:remote' format 'remote:%R' | ||||
| ``` | ||||
|  | ||||
| Second, format how the above attributes are displayed in prompts. | ||||
|  | ||||
|     zstyle ':prezto:module:git:info:keys' format \ | ||||
|       'prompt'  ' git(%b)' \ | ||||
|       'rprompt' '[%R]' | ||||
| ```sh | ||||
| zstyle ':prezto:module:git:info:keys' format \ | ||||
|   'prompt'  ' git(%b)' \ | ||||
|   'rprompt' '[%R]' | ||||
| ``` | ||||
|  | ||||
| Last, add `$git_info[prompt]` to `$PROMPT` and `$git_info[rprompt]` to | ||||
| `$RPROMPT` respectively and call `git-info` in the `prompt_name_preexec` hook | ||||
| function. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][6].* | ||||
| _The authors of this module should be contacted via the [issue tracker][6]._ | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|   - [Colin Hebert](https://github.com/ColinHebert) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Colin Hebert](https://github.com/ColinHebert) | ||||
|  | ||||
| [1]: http://www.git-scm.com | ||||
| [2]: https://github.com/defunkt/hub | ||||
| [1]: https://www.git-scm.com | ||||
| [2]: https://hub.github.com | ||||
| [3]: https://www.github.com | ||||
| [4]: http://www.manpagez.com/man/8/gpt/ | ||||
| [5]: http://linux.die.net/man/1/gs | ||||
| [4]: https://www.manpagez.com/man/8/gpt/ | ||||
| [5]: https://www.manpagez.com/man/1/gs/ | ||||
| [6]: https://github.com/sorin-ionescu/prezto/issues | ||||
| [7]: https://github.com/sorin-ionescu/prezto/issues/219 | ||||
| [8]: http://www.kernel.org/pub/software/scm/git/docs/git-log.html | ||||
|  | ||||
| [8]: https://git-scm.com/docs/git-log | ||||
| [9]: https://git-scm.com/docs/git-submodule | ||||
| [10]: https://getgb.io/ | ||||
| [11]: https://www.manpagez.com/man/1/gm/ | ||||
| [12]: https://github.blog/2011-11-10-git-io-github-url-shortener | ||||
| [13]: ../completion#readme | ||||
| [14]: https://github.com/sorin-ionescu/prezto/pull/1929 | ||||
|   | ||||
| @@ -8,175 +8,268 @@ | ||||
| # | ||||
| # Settings | ||||
| # | ||||
| # | ||||
|  | ||||
| # Log | ||||
| zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \ | ||||
|   || _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset)   %C(blue)%ai (%ar)%C(reset)%n%+B' | ||||
|     || _git_log_medium_format='%C(bold)Commit:%C(reset) %C(green)%H%C(red)%d%n%C(bold)Author:%C(reset) %C(cyan)%an <%ae>%n%C(bold)Date:%C(reset)   %C(blue)%ai (%ar)%C(reset)%n%+B' | ||||
| zstyle -s ':prezto:module:git:log:oneline' format '_git_log_oneline_format' \ | ||||
|   || _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n' | ||||
|     || _git_log_oneline_format='%C(green)%h%C(reset) %s%C(red)%d%C(reset)%n' | ||||
| zstyle -s ':prezto:module:git:log:brief' format '_git_log_brief_format' \ | ||||
|   || _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n' | ||||
|     || _git_log_brief_format='%C(green)%h%C(reset) %s%n%C(blue)(%ar by %an)%C(red)%d%C(reset)%n' | ||||
|  | ||||
| # Status | ||||
| zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_submodules' \ | ||||
|   || _git_status_ignore_submodules='none' | ||||
|     || _git_status_ignore_submodules='none' | ||||
|  | ||||
| # | ||||
| # Aliases | ||||
| # | ||||
|  | ||||
| # Git | ||||
| alias g='git' | ||||
| if ! zstyle -t ':prezto:module:git:alias' skip; then | ||||
|   # Git | ||||
|   alias g='git' | ||||
|  | ||||
| # Branch (b) | ||||
| alias gb='git branch' | ||||
| alias gbc='git checkout -b' | ||||
| alias gbl='git branch -v' | ||||
| alias gbL='git branch -av' | ||||
| alias gbx='git branch -d' | ||||
| alias gbX='git branch -D' | ||||
| alias gbm='git branch -m' | ||||
| alias gbM='git branch -M' | ||||
| alias gbs='git show-branch' | ||||
| alias gbS='git show-branch -a' | ||||
|   # Branch (b) | ||||
|   alias gb='git branch' | ||||
|   alias gba='git branch --all --verbose' | ||||
|   alias gbc='git checkout -b' | ||||
|   alias gbd='git branch --delete' | ||||
|   alias gbD='git branch --delete --force' | ||||
|   alias gbl='git branch --verbose' | ||||
|   alias gbL='git branch --all --verbose' | ||||
|   alias gbm='git branch --move' | ||||
|   alias gbM='git branch --move --force' | ||||
|   alias gbr='git branch --move' | ||||
|   alias gbR='git branch --move --force' | ||||
|   alias gbs='git show-branch' | ||||
|   alias gbS='git show-branch --all' | ||||
|   alias gbv='git branch --verbose' | ||||
|   alias gbV='git branch --verbose --verbose' | ||||
|   alias gbx='git branch --delete' | ||||
|   alias gbX='git branch --delete --force' | ||||
|  | ||||
| # Commit (c) | ||||
| alias gc='git commit --verbose' | ||||
| alias gca='git commit --verbose --all' | ||||
| alias gcm='git commit --message' | ||||
| alias gco='git checkout' | ||||
| alias gcO='git checkout --patch' | ||||
| alias gcf='git commit --amend --reuse-message HEAD' | ||||
| alias gcF='git commit --verbose --amend' | ||||
| alias gcp='git cherry-pick --ff' | ||||
| alias gcP='git cherry-pick --no-commit' | ||||
| alias gcr='git revert' | ||||
| alias gcR='git reset "HEAD^"' | ||||
| alias gcs='git show' | ||||
| alias gcl='git-commit-lost' | ||||
|   # Commit (c) | ||||
|   alias gc='git commit --verbose' | ||||
|   alias gcS='git commit --verbose --gpg-sign' | ||||
|   alias gca='git commit --verbose --all' | ||||
|   alias gcaS='git commit --verbose --all --gpg-sign' | ||||
|   alias gcm='git commit --message' | ||||
|   alias gcmS='git commit --message --gpg-sign' | ||||
|   alias gcam='git commit --all --message' | ||||
|   alias gco='git checkout' | ||||
|   alias gcO='git checkout --patch' | ||||
|   alias gcf='git commit --amend --reuse-message HEAD' | ||||
|   alias gcfS='git commit --amend --reuse-message HEAD --gpg-sign' | ||||
|   alias gcF='git commit --verbose --amend' | ||||
|   alias gcFS='git commit --verbose --amend --gpg-sign' | ||||
|   alias gcp='git cherry-pick --ff' | ||||
|   alias gcP='git cherry-pick --no-commit' | ||||
|   alias gcr='git revert' | ||||
|   alias gcR='git reset "HEAD^"' | ||||
|   alias gcs='git show' | ||||
|   alias gcsS='git show --pretty=short --show-signature' | ||||
|   alias gcl='git-commit-lost' | ||||
|   alias gcy='git cherry --verbose --abbrev' | ||||
|   alias gcY='git cherry --verbose' | ||||
|  | ||||
| # Conflict (C) | ||||
| alias gCl='git status | sed -n "s/^.*both [a-z]*ed: *//p"' | ||||
| alias gCa='git add $(gCl)' | ||||
| alias gCe='git mergetool $(gCl)' | ||||
| alias gCo='git checkout --ours --' | ||||
| alias gCO='gCo $(gCl)' | ||||
| alias gCt='git checkout --theirs --' | ||||
| alias gCT='gCt $(gCl)' | ||||
|   # Conflict (C) | ||||
|   alias gCl='git --no-pager diff --name-only --diff-filter=U' | ||||
|   alias gCa='git add $(gCl)' | ||||
|   alias gCe='git mergetool $(gCl)' | ||||
|   alias gCo='git checkout --ours --' | ||||
|   alias gCO='gCo $(gCl)' | ||||
|   alias gCt='git checkout --theirs --' | ||||
|   alias gCT='gCt $(gCl)' | ||||
|  | ||||
| # Data (d) | ||||
| alias gd='git ls-files' | ||||
| alias gdc='git ls-files --cached' | ||||
| alias gdx='git ls-files --deleted' | ||||
| alias gdm='git ls-files --modified' | ||||
| alias gdu='git ls-files --other --exclude-standard' | ||||
| alias gdk='git ls-files --killed' | ||||
| alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"' | ||||
|   # Data (d) | ||||
|   alias gd='git ls-files' | ||||
|   alias gdc='git ls-files --cached' | ||||
|   alias gdx='git ls-files --deleted' | ||||
|   alias gdm='git ls-files --modified' | ||||
|   alias gdu='git ls-files --other --exclude-standard' | ||||
|   alias gdk='git ls-files --killed' | ||||
|   alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"' | ||||
|  | ||||
| # Fetch (f) | ||||
| alias gf='git fetch' | ||||
| alias gfc='git clone' | ||||
| alias gfm='git pull' | ||||
| alias gfr='git pull --rebase' | ||||
|   # Fetch (f) | ||||
|   alias gf='git fetch' | ||||
|   alias gfa='git fetch --all' | ||||
|   alias gfc='git clone' | ||||
|   alias gfcr='git clone --recurse-submodules' | ||||
|   alias gfm='git pull' | ||||
|   alias gfma='git pull --autostash' | ||||
|   alias gfr='git pull --rebase' | ||||
|   alias gfra='git pull --rebase --autostash' | ||||
|  | ||||
| # Grep (g) | ||||
| alias gg='git grep' | ||||
| alias ggi='git grep --ignore-case' | ||||
| alias ggl='git grep --files-with-matches' | ||||
| alias ggL='git grep --files-without-matches' | ||||
| alias ggv='git grep --invert-match' | ||||
| alias ggw='git grep --word-regexp' | ||||
|   # Flow (F) | ||||
|   alias gFi='git flow init' | ||||
|   alias gFf='git flow feature' | ||||
|   alias gFb='git flow bugfix' | ||||
|   alias gFl='git flow release' | ||||
|   alias gFh='git flow hotfix' | ||||
|   alias gFs='git flow support' | ||||
|  | ||||
| # Index (i) | ||||
| alias gia='git add' | ||||
| alias giA='git add --patch' | ||||
| alias giu='git add --update' | ||||
| alias gid='git diff --no-ext-diff --cached' | ||||
| alias giD='git diff --no-ext-diff --cached --word-diff' | ||||
| alias gir='git reset' | ||||
| alias giR='git reset --patch' | ||||
| alias gix='git rm -r --cached' | ||||
| alias giX='git rm -rf --cached' | ||||
|   alias gFfl='git flow feature list' | ||||
|   alias gFfs='git flow feature start' | ||||
|   alias gFff='git flow feature finish' | ||||
|   alias gFfp='git flow feature publish' | ||||
|   alias gFft='git flow feature track' | ||||
|   alias gFfd='git flow feature diff' | ||||
|   alias gFfr='git flow feature rebase' | ||||
|   alias gFfc='git flow feature checkout' | ||||
|   alias gFfm='git flow feature pull' | ||||
|   alias gFfx='git flow feature delete' | ||||
|  | ||||
| # Log (l) | ||||
| alias gl='git log --topo-order --pretty=format:${_git_log_medium_format}' | ||||
| alias gls='git log --topo-order --stat --pretty=format:${_git_log_medium_format}' | ||||
| alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:${_git_log_medium_format}' | ||||
| alias glo='git log --topo-order --pretty=format:${_git_log_oneline_format}' | ||||
| alias glg='git log --topo-order --all --graph --pretty=format:${_git_log_oneline_format}' | ||||
| alias glb='git log --topo-order --pretty=format:${_git_log_brief_format}' | ||||
| alias glc='git shortlog --summary --numbered' | ||||
|   alias gFbl='git flow bugfix list' | ||||
|   alias gFbs='git flow bugfix start' | ||||
|   alias gFbf='git flow bugfix finish' | ||||
|   alias gFbp='git flow bugfix publish' | ||||
|   alias gFbt='git flow bugfix track' | ||||
|   alias gFbd='git flow bugfix diff' | ||||
|   alias gFbr='git flow bugfix rebase' | ||||
|   alias gFbc='git flow bugfix checkout' | ||||
|   alias gFbm='git flow bugfix pull' | ||||
|   alias gFbx='git flow bugfix delete' | ||||
|  | ||||
| # Merge (m) | ||||
| alias gm='git merge' | ||||
| alias gmC='git merge --no-commit' | ||||
| alias gmF='git merge --no-ff' | ||||
| alias gma='git merge --abort' | ||||
| alias gmt='git mergetool' | ||||
|   alias gFll='git flow release list' | ||||
|   alias gFls='git flow release start' | ||||
|   alias gFlf='git flow release finish' | ||||
|   alias gFlp='git flow release publish' | ||||
|   alias gFlt='git flow release track' | ||||
|   alias gFld='git flow release diff' | ||||
|   alias gFlr='git flow release rebase' | ||||
|   alias gFlc='git flow release checkout' | ||||
|   alias gFlm='git flow release pull' | ||||
|   alias gFlx='git flow release delete' | ||||
|  | ||||
| # Push (p) | ||||
| alias gp='git push' | ||||
| alias gpf='git push --force' | ||||
| alias gpa='git push --all' | ||||
| alias gpA='git push --all && git push --tags' | ||||
| alias gpt='git push --tags' | ||||
| alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' | ||||
| alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' | ||||
|   alias gFhl='git flow hotfix list' | ||||
|   alias gFhs='git flow hotfix start' | ||||
|   alias gFhf='git flow hotfix finish' | ||||
|   alias gFhp='git flow hotfix publish' | ||||
|   alias gFht='git flow hotfix track' | ||||
|   alias gFhd='git flow hotfix diff' | ||||
|   alias gFhr='git flow hotfix rebase' | ||||
|   alias gFhc='git flow hotfix checkout' | ||||
|   alias gFhm='git flow hotfix pull' | ||||
|   alias gFhx='git flow hotfix delete' | ||||
|  | ||||
| # Rebase (r) | ||||
| alias gr='git rebase' | ||||
| alias gra='git rebase --abort' | ||||
| alias grc='git rebase --continue' | ||||
| alias gri='git rebase --interactive' | ||||
| alias grs='git rebase --skip' | ||||
|   alias gFsl='git flow support list' | ||||
|   alias gFss='git flow support start' | ||||
|   alias gFsf='git flow support finish' | ||||
|   alias gFsp='git flow support publish' | ||||
|   alias gFst='git flow support track' | ||||
|   alias gFsd='git flow support diff' | ||||
|   alias gFsr='git flow support rebase' | ||||
|   alias gFsc='git flow support checkout' | ||||
|   alias gFsm='git flow support pull' | ||||
|   alias gFsx='git flow support delete' | ||||
|  | ||||
| # Remote (R) | ||||
| alias gR='git remote' | ||||
| alias gRl='git remote --verbose' | ||||
| alias gRa='git remote add' | ||||
| alias gRx='git remote rm' | ||||
| alias gRm='git remote rename' | ||||
| alias gRu='git remote update' | ||||
| alias gRp='git remote prune' | ||||
| alias gRs='git remote show' | ||||
| alias gRb='git-hub-browse' | ||||
|   # Grep (g) | ||||
|   alias gg='git grep' | ||||
|   alias ggi='git grep --ignore-case' | ||||
|   alias ggl='git grep --files-with-matches' | ||||
|   alias ggL='git grep --files-without-matches' | ||||
|   alias ggv='git grep --invert-match' | ||||
|   alias ggw='git grep --word-regexp' | ||||
|  | ||||
| # Stash (s) | ||||
| alias gs='git stash' | ||||
| alias gsa='git stash apply' | ||||
| alias gsx='git stash drop' | ||||
| alias gsX='git-stash-clear-interactive' | ||||
| alias gsl='git stash list' | ||||
| alias gsL='git-stash-dropped' | ||||
| alias gsd='git stash show --patch --stat' | ||||
| alias gsp='git stash pop' | ||||
| alias gsr='git-stash-recover' | ||||
| alias gss='git stash save --include-untracked' | ||||
| alias gsS='git stash save --patch --no-keep-index' | ||||
| alias gsw='git stash save --include-untracked --keep-index' | ||||
|   # Index (i) | ||||
|   alias gia='git add' | ||||
|   alias giA='git add --patch' | ||||
|   alias giu='git add --update' | ||||
|   alias gid='git diff --no-ext-diff --cached' | ||||
|   alias giD='git diff --no-ext-diff --cached --word-diff' | ||||
|   alias gii='git update-index --assume-unchanged' | ||||
|   alias giI='git update-index --no-assume-unchanged' | ||||
|   alias gir='git reset' | ||||
|   alias giR='git reset --patch' | ||||
|   alias gix='git rm -r --cached' | ||||
|   alias giX='git rm -r --force --cached' | ||||
|  | ||||
| # Submodule (S) | ||||
| alias gS='git submodule' | ||||
| alias gSa='git submodule add' | ||||
| alias gSf='git submodule foreach' | ||||
| alias gSi='git submodule init' | ||||
| alias gSI='git submodule update --init --recursive' | ||||
| alias gSl='git submodule status' | ||||
| alias gSm='git-submodule-move' | ||||
| alias gSs='git submodule sync' | ||||
| alias gSu='git submodule foreach git pull origin master' | ||||
| alias gSx='git-submodule-remove' | ||||
|   # Log (l) | ||||
|   alias gl='git log --topo-order --pretty=format:"$_git_log_medium_format"' | ||||
|   alias gls='git log --topo-order --stat --pretty=format:"$_git_log_medium_format"' | ||||
|   alias gld='git log --topo-order --stat --patch --full-diff --pretty=format:"$_git_log_medium_format"' | ||||
|   alias glo='git log --topo-order --pretty=format:"$_git_log_oneline_format"' | ||||
|   alias glg='git log --topo-order --graph --pretty=format:"$_git_log_oneline_format"' | ||||
|   alias glb='git log --topo-order --pretty=format:"$_git_log_brief_format"' | ||||
|   alias glc='git shortlog --summary --numbered' | ||||
|   alias glS='git log --show-signature' | ||||
|  | ||||
| # Working Copy (w) | ||||
| alias gws='git status --ignore-submodules=${_git_status_ignore_submodules} --short' | ||||
| alias gwS='git status --ignore-submodules=${_git_status_ignore_submodules}' | ||||
| alias gwd='git diff --no-ext-diff' | ||||
| alias gwD='git diff --no-ext-diff --word-diff' | ||||
| alias gwr='git reset --soft' | ||||
| alias gwR='git reset --hard' | ||||
| alias gwc='git clean -n' | ||||
| alias gwC='git clean -f' | ||||
| alias gwx='git rm -r' | ||||
| alias gwX='git rm -rf' | ||||
|   # Merge (m) | ||||
|   alias gm='git merge' | ||||
|   alias gmC='git merge --no-commit' | ||||
|   alias gmF='git merge --no-ff' | ||||
|   alias gma='git merge --abort' | ||||
|   alias gmt='git mergetool' | ||||
|  | ||||
|   # Push (p) | ||||
|   alias gp='git push' | ||||
|   alias gpf='git push --force-with-lease' | ||||
|   alias gpF='git push --force' | ||||
|   alias gpa='git push --all' | ||||
|   alias gpA='git push --all && git push --tags' | ||||
|   alias gpt='git push --tags' | ||||
|   alias gpc='git push --set-upstream origin "$(git-branch-current 2> /dev/null)"' | ||||
|   alias gpp='git pull origin "$(git-branch-current 2> /dev/null)" && git push origin "$(git-branch-current 2> /dev/null)"' | ||||
|  | ||||
|   # Rebase (r) | ||||
|   alias gr='git rebase' | ||||
|   alias gra='git rebase --abort' | ||||
|   alias grc='git rebase --continue' | ||||
|   alias gri='git rebase --interactive' | ||||
|   alias grs='git rebase --skip' | ||||
|  | ||||
|   # Remote (R) | ||||
|   alias gR='git remote' | ||||
|   alias gRl='git remote --verbose' | ||||
|   alias gRa='git remote add' | ||||
|   alias gRx='git remote rm' | ||||
|   alias gRm='git remote rename' | ||||
|   alias gRu='git remote update' | ||||
|   alias gRp='git remote prune' | ||||
|   alias gRs='git remote show' | ||||
|   alias gRb='git-hub-browse' | ||||
|  | ||||
|   # Stash (s) | ||||
|   alias gs='git stash' | ||||
|   alias gsa='git stash apply' | ||||
|   alias gsx='git stash drop' | ||||
|   alias gsX='git-stash-clear-interactive' | ||||
|   alias gsl='git stash list' | ||||
|   alias gsL='git-stash-dropped' | ||||
|   alias gsd='git stash show --patch --stat' | ||||
|   alias gsp='git stash pop' | ||||
|   alias gsr='git-stash-recover' | ||||
|   alias gss='git stash save --include-untracked' | ||||
|   alias gsS='git stash save --patch --no-keep-index' | ||||
|   alias gsw='git stash save --include-untracked --keep-index' | ||||
|  | ||||
|   # Submodule (S) | ||||
|   alias gS='git submodule' | ||||
|   alias gSa='git submodule add' | ||||
|   alias gSf='git submodule foreach' | ||||
|   alias gSi='git submodule init' | ||||
|   alias gSI='git submodule update --init --recursive' | ||||
|   alias gSl='git submodule status' | ||||
|   alias gSm='git-submodule-move' | ||||
|   alias gSs='git submodule sync' | ||||
|   alias gSu='git submodule update --remote --recursive' | ||||
|   alias gSx='git-submodule-remove' | ||||
|  | ||||
|   # Tag (t) | ||||
|   alias gt='git tag' | ||||
|   alias gtl='git tag --list' | ||||
|   alias gts='git tag --sign' | ||||
|   alias gtv='git verify-tag' | ||||
|  | ||||
|   # Working Copy (w) | ||||
|   alias gws='git status --ignore-submodules=$_git_status_ignore_submodules --short' | ||||
|   alias gwS='git status --ignore-submodules=$_git_status_ignore_submodules' | ||||
|   alias gwd='git diff --no-ext-diff' | ||||
|   alias gwD='git diff --no-ext-diff --word-diff' | ||||
|   alias gwr='git reset --soft' | ||||
|   alias gwR='git reset --hard' | ||||
|   alias gwc='git clean --dry-run' | ||||
|   alias gwC='git clean --force' | ||||
|   alias gwx='git rm -r' | ||||
|   alias gwX='git rm -r --force' | ||||
| fi | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| @@ -21,7 +21,7 @@ _arguments -C -s -S \ | ||||
|  | ||||
| case "$state" in | ||||
|   (remote) | ||||
|     remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2)) | ||||
|     remotes=($(command git config --get-regexp 'remote.*.url' | cut -d. -f2)) | ||||
|  | ||||
|     _describe -t branch 'remotes' remotes && ret=0 | ||||
|   ;; | ||||
| @@ -29,7 +29,7 @@ case "$state" in | ||||
|     remote="$words[(($CURRENT - 1))]" | ||||
|  | ||||
|     branches_or_tags=($( | ||||
|       git ls-remote --heads --tags "$remote" 2>/dev/null | cut -f2 | ||||
|       command git ls-remote --heads --tags "$remote" 2> /dev/null | cut -f2 | ||||
|     )) | ||||
|  | ||||
|     branches=(HEAD ${${(M)branches_or_tags[@]##refs/heads/?##}##refs/heads/}) | ||||
| @@ -39,10 +39,9 @@ case "$state" in | ||||
|     _describe -t tag 'tags' tags && ret=0 | ||||
|   ;; | ||||
|   (file) | ||||
|     files=(${(0)"$(_call_program files git ls-files -z --exclude-standard 2>/dev/null)"}) | ||||
|     files=(${(0)"$(_call_program files command git ls-files -z --exclude-standard 2> /dev/null)"}) | ||||
|     _wanted file expl 'file' _multi_parts - / files && ret=0 | ||||
|   ;; | ||||
| esac | ||||
|  | ||||
| return $ret | ||||
|  | ||||
|   | ||||
| @@ -8,5 +8,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| _arguments '1:url:' && return 0 | ||||
| local service="$service" | ||||
|  | ||||
| zstyle ":completion:*:${service}:*:prefixes" ignored-patterns '^http(|s)://' | ||||
| zstyle ":completion:*:${service}:*:hosts" ignored-patterns '^*github.com' | ||||
|  | ||||
| _arguments '1::GitHub URL:_urls' '2::code:' && return 0 | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| @@ -16,4 +16,3 @@ _arguments "1:toggle:(( | ||||
|   on\:'enable in-prompt information for the current repository' | ||||
|   off\:'disable in-prompt information for the current repository' | ||||
| ))" && return 0 | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| @@ -25,7 +25,7 @@ case "$state" in | ||||
|     while IFS=$'\n' read submodule; do | ||||
|       submodules+=("$submodule") | ||||
|     done < <( | ||||
|       git config --file "$(git-root)/.gitmodules" --list \ | ||||
|       command git config --file "$(git-root)/.gitmodules" --list \ | ||||
|         | grep '.path=' \ | ||||
|         | cut -d= -f2- | ||||
|     ) | ||||
| @@ -38,4 +38,3 @@ case "$state" in | ||||
| esac | ||||
|  | ||||
| return $ret | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| @@ -18,10 +18,9 @@ local submodule | ||||
| while IFS=$'\n' read submodule; do | ||||
|   submodules+=("$submodule") | ||||
| done < <( | ||||
|   git config --file "$(git-root)/.gitmodules" --list \ | ||||
|   command git config --file "$(git-root)/.gitmodules" --list \ | ||||
|     | grep '.path=' \ | ||||
|     | cut -d= -f2- | ||||
| ) | ||||
|  | ||||
| _describe -t submodule 'submodules' submodules && return 0 | ||||
|  | ||||
|   | ||||
| @@ -5,12 +5,14 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! git rev-parse 2> /dev/null; then | ||||
| # function git-branch-current { | ||||
|  | ||||
| if ! command git rev-parse 2> /dev/null; then | ||||
|   print "$0: not a repository: $PWD" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| local ref="$(git symbolic-ref HEAD 2> /dev/null)" | ||||
| local ref="$(command git symbolic-ref HEAD 2> /dev/null)" | ||||
|  | ||||
| if [[ -n "$ref" ]]; then | ||||
|   print "${ref#refs/heads/}" | ||||
| @@ -19,3 +21,4 @@ else | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,17 +5,20 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-commit-lost { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| git fsck 2> /dev/null \ | ||||
| command git fsck 2> /dev/null \ | ||||
|   | grep "^dangling commit" \ | ||||
|   | awk '{print $3}' \ | ||||
|   | git log \ | ||||
|   | command git log \ | ||||
|       --date-order \ | ||||
|       --no-walk \ | ||||
|       --stdin \ | ||||
|       --pretty=format:${_git_log_oneline_format} | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,7 +5,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| local git_dir="${$(git rev-parse --git-dir):A}" | ||||
| # function git-dir { | ||||
|  | ||||
| local git_dir="${$(command git rev-parse --git-dir):A}" | ||||
|  | ||||
| if [[ -n "$git_dir" ]]; then | ||||
|   print "$git_dir" | ||||
| @@ -15,3 +17,4 @@ else | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,7 +5,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-hub-browse { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| fi | ||||
| @@ -13,7 +15,7 @@ fi | ||||
| local remotes remote references reference file url | ||||
|  | ||||
| remote="${1:-origin}" | ||||
| remotes=($(git config --get-regexp 'remote.*.url' | cut -d. -f2)) | ||||
| remotes=($(command git remote show)) | ||||
|  | ||||
| if (( $remotes[(i)$remote] == $#remotes + 1 )); then | ||||
|   print "$0: remote not found: $remote" >&2 | ||||
| @@ -21,14 +23,14 @@ if (( $remotes[(i)$remote] == $#remotes + 1 )); then | ||||
| fi | ||||
|  | ||||
| url=$( | ||||
|   git config --get "remote.${remote}.url" \ | ||||
|     | sed -En "s/(git|https?)(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/https:\/\/github.com\/\4\/\5/p" | ||||
|   command git remote get-url "$remote" \ | ||||
|       | sed -En "s#(git@|https?://)(github.com)(:|/)(.+)/(.+)\.git#https://\2/\4/\5#p" | ||||
| ) | ||||
|  | ||||
| reference="${${2:-$(git-branch-current)}:-HEAD}" | ||||
| references=( | ||||
|   HEAD | ||||
|   ${$(git ls-remote --heads --tags "$remote" | awk '{print $2}')##refs/(heads|tags)/} | ||||
|   ${${(f)"$(command git ls-remote --heads --tags "$remote")"}##*refs/(heads|tags)/} | ||||
| ) | ||||
|  | ||||
| if (( $references[(i)$reference] == $#references + 1 )); then | ||||
| @@ -37,15 +39,15 @@ if (( $references[(i)$reference] == $#references + 1 )); then | ||||
| fi | ||||
|  | ||||
| if [[ "$reference" == 'HEAD' ]]; then | ||||
|   reference="$(git rev-parse HEAD 2>/dev/null)" | ||||
|   reference="$(command git rev-parse HEAD 2> /dev/null)" | ||||
| fi | ||||
|  | ||||
| file="$3" | ||||
|  | ||||
| if [[ -n "$url" ]]; then | ||||
|   url="${url}/tree/${reference}/${file}" | ||||
|   url="$url/tree/$reference/$file" | ||||
|  | ||||
|   if (( $+commands[$BROWSER] )); then | ||||
|   if [[ -n "$BROWSER" ]]; then | ||||
|     "$BROWSER" "$url" | ||||
|     return 0 | ||||
|   else | ||||
| @@ -57,3 +59,4 @@ else | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,19 +5,24 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| local url="$1" | ||||
| # function git-hub-shorten-url { | ||||
|  | ||||
| local url="$1" code="$2" | ||||
|  | ||||
| if [[ "$url" == '-' ]]; then | ||||
|   read url <&0 | ||||
| fi | ||||
|  | ||||
| if [[ -z "$url" ]]; then | ||||
|   print "usage: $0 [ url | - ]" >&2 | ||||
| if [[ -z "$url" || ! "$url" =~ ^https?:\/\/.*github.com\/ ]]; then | ||||
|   print "usage: $0 [ url | - ] [code] ; url must be a github.com URL" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| if (( $+commands[curl] )); then | ||||
|   curl -s -i 'http://git.io' -F "url=$url" | grep 'Location:' | sed 's/Location: //' | ||||
|   print "${${(@M)${(f)"$(curl -s -i 'https://git.io' -F "url=$url" ${(z)code:+ -F "code=$code"})"}:#Location: *}#Location: }" | ||||
| else | ||||
|   print "$0: command not found: curl" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # Gets the Git special action (am, bisect, cherry, merge, rebase). | ||||
| # Gets the Git special action (am, bisect, cherry, merge, rebase, revert). | ||||
| # Borrowed from vcs_info and edited. | ||||
| function _git-action { | ||||
|   local action_dir | ||||
| @@ -18,22 +18,26 @@ function _git-action { | ||||
|   local rebase_formatted | ||||
|   local rebase_interactive_formatted | ||||
|   local rebase_merge_formatted | ||||
|   local revert_formatted | ||||
|   local revert_sequence_formatted | ||||
|  | ||||
|   for action_dir in \ | ||||
|     "${git_dir}/rebase-apply" \ | ||||
|     "${git_dir}/rebase" \ | ||||
|     "${git_dir}/../.dotest" | ||||
|     "$git_dir/rebase-apply" \ | ||||
|     "$git_dir/rebase" \ | ||||
|     "$git_dir/../.dotest" | ||||
|   do | ||||
|     if [[ -d "$action_dir" ]] ; then | ||||
|       zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' || apply_formatted='apply' | ||||
|       zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' || rebase_formatted='rebase' | ||||
|       zstyle -s ':prezto:module:git:info:action:apply' format 'apply_formatted' \ | ||||
|           || apply_formatted='apply' | ||||
|       zstyle -s ':prezto:module:git:info:action:rebase' format 'rebase_formatted' \ | ||||
|           || rebase_formatted='rebase' | ||||
|  | ||||
|       if [[ -f "${action_dir}/rebasing" ]] ; then | ||||
|       if [[ -f "$action_dir/rebasing" ]] ; then | ||||
|         print "$rebase_formatted" | ||||
|       elif [[ -f "${action_dir}/applying" ]] ; then | ||||
|       elif [[ -f "$action_dir/applying" ]] ; then | ||||
|         print "$apply_formatted" | ||||
|       else | ||||
|         print "${rebase_formatted}/${apply_formatted}" | ||||
|         print "$rebase_formatted/$apply_formatted" | ||||
|       fi | ||||
|  | ||||
|       return 0 | ||||
| @@ -41,47 +45,67 @@ function _git-action { | ||||
|   done | ||||
|  | ||||
|   for action_dir in \ | ||||
|     "${git_dir}/rebase-merge/interactive" \ | ||||
|     "${git_dir}/.dotest-merge/interactive" | ||||
|     "$git_dir/rebase-merge/interactive" \ | ||||
|     "$git_dir/.dotest-merge/interactive" | ||||
|   do | ||||
|     if [[ -f "$action_dir" ]]; then | ||||
|       zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' || rebase_interactive_formatted='rebase-interactive' | ||||
|       zstyle -s ':prezto:module:git:info:action:rebase-interactive' format 'rebase_interactive_formatted' \ | ||||
|           || rebase_interactive_formatted='rebase-interactive' | ||||
|       print "$rebase_interactive_formatted" | ||||
|       return 0 | ||||
|     fi | ||||
|   done | ||||
|  | ||||
|   for action_dir in \ | ||||
|     "${git_dir}/rebase-merge" \ | ||||
|     "${git_dir}/.dotest-merge" | ||||
|     "$git_dir/rebase-merge" \ | ||||
|     "$git_dir/.dotest-merge" | ||||
|   do | ||||
|     if [[ -d "$action_dir" ]]; then | ||||
|       zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' || rebase_merge_formatted='rebase-merge' | ||||
|       zstyle -s ':prezto:module:git:info:action:rebase-merge' format 'rebase_merge_formatted' \ | ||||
|           || rebase_merge_formatted='rebase-merge' | ||||
|       print "$rebase_merge_formatted" | ||||
|       return 0 | ||||
|     fi | ||||
|   done | ||||
|  | ||||
|   if [[ -f "${git_dir}/MERGE_HEAD" ]]; then | ||||
|     zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' || merge_formatted='merge' | ||||
|   if [[ -f "$git_dir/MERGE_HEAD" ]]; then | ||||
|     zstyle -s ':prezto:module:git:info:action:merge' format 'merge_formatted' \ | ||||
|         || merge_formatted='merge' | ||||
|     print "$merge_formatted" | ||||
|     return 0 | ||||
|   fi | ||||
|  | ||||
|   if [[ -f "${git_dir}/CHERRY_PICK_HEAD" ]]; then | ||||
|     if [[ -d "${git_dir}/sequencer" ]] ; then | ||||
|       zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' || cherry_pick_sequence_formatted='cherry-pick-sequence' | ||||
|   if [[ -f "$git_dir/CHERRY_PICK_HEAD" ]]; then | ||||
|     if [[ -d "$git_dir/sequencer" ]] ; then | ||||
|       zstyle -s ':prezto:module:git:info:action:cherry-pick-sequence' format 'cherry_pick_sequence_formatted' \ | ||||
|           || cherry_pick_sequence_formatted='cherry-pick-sequence' | ||||
|       print "$cherry_pick_sequence_formatted" | ||||
|     else | ||||
|       zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' || cherry_pick_formatted='cherry-pick' | ||||
|       zstyle -s ':prezto:module:git:info:action:cherry-pick' format 'cherry_pick_formatted' \ | ||||
|           || cherry_pick_formatted='cherry-pick' | ||||
|       print "$cherry_pick_formatted" | ||||
|     fi | ||||
|  | ||||
|     return 0 | ||||
|   fi | ||||
|  | ||||
|   if [[ -f "${git_dir}/BISECT_LOG" ]]; then | ||||
|     zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' || bisect_formatted='bisect' | ||||
|   if [[ -f "$git_dir/REVERT_HEAD" ]]; then | ||||
|     if [[ -d "$git_dir/sequencer" ]] ; then | ||||
|       zstyle -s ':prezto:module:git:info:action:revert-sequence' format 'revert_sequence_formatted' \ | ||||
|           || revert_sequence_formatted='revert-sequence' | ||||
|       print "$revert_sequence_formatted" | ||||
|     else | ||||
|       zstyle -s ':prezto:module:git:info:action:revert' format 'revert_formatted' \ | ||||
|           || revert_formatted='revert' | ||||
|       print "$revert_formatted" | ||||
|     fi | ||||
|  | ||||
|     return 0 | ||||
|   fi | ||||
|  | ||||
|   if [[ -f "$git_dir/BISECT_LOG" ]]; then | ||||
|     zstyle -s ':prezto:module:git:info:action:bisect' format 'bisect_formatted' \ | ||||
|         || bisect_formatted='bisect' | ||||
|     print "$bisect_formatted" | ||||
|     return 0 | ||||
|   fi | ||||
| @@ -164,15 +188,15 @@ function git-info { | ||||
|   typeset -gA git_info | ||||
|  | ||||
|   # Return if not inside a Git repository work tree. | ||||
|   if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|     return 1 | ||||
|   fi | ||||
|  | ||||
|   if (( $# > 0 )); then | ||||
|     if [[ "$1" == [Oo][Nn] ]]; then | ||||
|       git config --bool prompt.showinfo true | ||||
|       command git config --bool prompt.showinfo true | ||||
|     elif [[ "$1" == [Oo][Ff][Ff] ]]; then | ||||
|       git config --bool prompt.showinfo false | ||||
|       command git config --bool prompt.showinfo false | ||||
|     else | ||||
|       print "usage: $0 [ on | off ]" >&2 | ||||
|     fi | ||||
| @@ -180,7 +204,7 @@ function git-info { | ||||
|   fi | ||||
|  | ||||
|   # Return if git-info is disabled. | ||||
|   if ! is-true "${$(git config --bool prompt.showinfo):-true}"; then | ||||
|   if ! is-true "${$(command git config --bool prompt.showinfo):-true}"; then | ||||
|     return 1 | ||||
|   fi | ||||
|  | ||||
| @@ -190,7 +214,7 @@ function git-info { | ||||
|   # Format commit. | ||||
|   zstyle -s ':prezto:module:git:info:commit' format 'commit_format' | ||||
|   if [[ -n "$commit_format" ]]; then | ||||
|     commit="$(git rev-parse HEAD 2> /dev/null)" | ||||
|     commit="$(command git rev-parse HEAD 2> /dev/null)" | ||||
|     if [[ -n "$commit" ]]; then | ||||
|       zformat -f commit_formatted "$commit_format" "c:$commit" | ||||
|     fi | ||||
| @@ -198,10 +222,17 @@ function git-info { | ||||
|  | ||||
|   # Format stashed. | ||||
|   zstyle -s ':prezto:module:git:info:stashed' format 'stashed_format' | ||||
|   if [[ -n "$stashed_format" && -f "$(git-dir)/refs/stash" ]]; then | ||||
|     stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')" | ||||
|     if [[ -n "$stashed" ]]; then | ||||
|       zformat -f stashed_formatted "$stashed_format" "S:$stashed" | ||||
|   if [[ -n "$stashed_format" ]]; then | ||||
|     commondir="" | ||||
|     if [[ -f "$(git-dir)/commondir" ]]; then | ||||
|       commondir="$(<$(git-dir)/commondir)" | ||||
|       [[ "$commondir" =~ ^/ ]] || commondir="$(git-dir)/$commondir" | ||||
|     fi | ||||
|     if [[ -f "$(git-dir)/refs/stash" || ( -n "$commondir" && -f "$commondir/refs/stash" ) ]]; then | ||||
|       stashed=${#${(f)"$(command git stash list 2> /dev/null)"}} | ||||
|       if (( $stashed > 0 )); then | ||||
|         zformat -f stashed_formatted "$stashed_format" "S:$stashed" | ||||
|       fi | ||||
|     fi | ||||
|   fi | ||||
|  | ||||
| @@ -215,7 +246,7 @@ function git-info { | ||||
|   fi | ||||
|  | ||||
|   # Get the branch. | ||||
|   branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}" | ||||
|   branch="${$(command git symbolic-ref HEAD 2> /dev/null)#refs/heads/}" | ||||
|  | ||||
|   # Format branch. | ||||
|   zstyle -s ':prezto:module:git:info:branch' format 'branch_format' | ||||
| @@ -226,7 +257,7 @@ function git-info { | ||||
|   # Format position. | ||||
|   zstyle -s ':prezto:module:git:info:position' format 'position_format' | ||||
|   if [[ -z "$branch" && -n "$position_format" ]]; then | ||||
|     position="$(git describe --contains --all HEAD 2> /dev/null)" | ||||
|     position="$(command git describe --contains --all HEAD 2> /dev/null)" | ||||
|     if [[ -n "$position" ]]; then | ||||
|       zformat -f position_formatted "$position_format" "p:$position" | ||||
|     fi | ||||
| @@ -236,7 +267,7 @@ function git-info { | ||||
|   zstyle -s ':prezto:module:git:info:remote' format 'remote_format' | ||||
|   if [[ -n "$branch" && -n "$remote_format" ]]; then | ||||
|     # Gets the remote name. | ||||
|     remote_cmd='git rev-parse --symbolic-full-name --verify HEAD@{upstream}' | ||||
|     remote_cmd='command git rev-parse --symbolic-full-name --verify HEAD@{upstream}' | ||||
|     remote="${$(${(z)remote_cmd} 2> /dev/null)##refs/remotes/}" | ||||
|     if [[ -n "$remote" ]]; then | ||||
|       zformat -f remote_formatted "$remote_format" "R:$remote" | ||||
| @@ -247,14 +278,14 @@ function git-info { | ||||
|   zstyle -s ':prezto:module:git:info:behind' format 'behind_format' | ||||
|   if [[ -n "$branch" && ( -n "$ahead_format" || -n "$behind_format" ) ]]; then | ||||
|     # Gets the commit difference counts between local and remote. | ||||
|     ahead_and_behind_cmd='git rev-list --count --left-right HEAD...@{upstream}' | ||||
|     ahead_and_behind_cmd='command git rev-list --count --left-right HEAD...@{upstream}' | ||||
|  | ||||
|     # Get ahead and behind counts. | ||||
|     ahead_and_behind="$(${(z)ahead_and_behind_cmd} 2> /dev/null)" | ||||
|  | ||||
|     # Format ahead. | ||||
|     if [[ -n "$ahead_format" ]]; then | ||||
|       ahead="$ahead_and_behind[(w)1]" | ||||
|       ahead="$ahead_and_behind[(pws:\t:)1]" | ||||
|       if (( ahead > 0 )); then | ||||
|         zformat -f ahead_formatted "$ahead_format" "A:$ahead" | ||||
|       fi | ||||
| @@ -262,7 +293,7 @@ function git-info { | ||||
|  | ||||
|     # Format behind. | ||||
|     if [[ -n "$behind_format" ]]; then | ||||
|       behind="$ahead_and_behind[(w)2]" | ||||
|       behind="$ahead_and_behind[(pws:\t:)2]" | ||||
|       if (( behind > 0 )); then | ||||
|         zformat -f behind_formatted "$behind_format" "B:$behind" | ||||
|       fi | ||||
| @@ -276,7 +307,7 @@ function git-info { | ||||
|     if [[ -n "$indexed_format" ]]; then | ||||
|       (( | ||||
|         indexed+=$( | ||||
|           git diff-index \ | ||||
|           command git diff-index \ | ||||
|             --no-ext-diff \ | ||||
|             --name-only \ | ||||
|             --cached \ | ||||
| @@ -296,7 +327,7 @@ function git-info { | ||||
|     if [[ -n "$unindexed_format" ]]; then | ||||
|       (( | ||||
|         unindexed+=$( | ||||
|           git diff-files \ | ||||
|           command git diff-files \ | ||||
|             --no-ext-diff \ | ||||
|             --name-only \ | ||||
|             --ignore-submodules=${ignore_submodules:-none} \ | ||||
| @@ -314,7 +345,7 @@ function git-info { | ||||
|     if [[ -n "$untracked_format" ]]; then | ||||
|       (( | ||||
|         untracked+=$( | ||||
|           git ls-files \ | ||||
|           command git ls-files \ | ||||
|             --other \ | ||||
|             --exclude-standard \ | ||||
|             2> /dev/null \ | ||||
| @@ -329,7 +360,7 @@ function git-info { | ||||
|     (( dirty = indexed + unindexed + untracked )) | ||||
|   else | ||||
|     # Use porcelain status for easy parsing. | ||||
|     status_cmd="git status --porcelain --ignore-submodules=${ignore_submodules:-none}" | ||||
|     status_cmd="command git status --porcelain --ignore-submodules=${ignore_submodules:-none}" | ||||
|  | ||||
|     # Get current status. | ||||
|     while IFS=$'\n' read line; do | ||||
| @@ -348,13 +379,13 @@ function git-info { | ||||
|     # Format added. | ||||
|     if (( added > 0 )); then | ||||
|       zstyle -s ':prezto:module:git:info:added' format 'added_format' | ||||
|       zformat -f added_formatted "$added_format" "a:$added_format" | ||||
|       zformat -f added_formatted "$added_format" "a:$added" | ||||
|     fi | ||||
|  | ||||
|     # Format deleted. | ||||
|     if (( deleted > 0 )); then | ||||
|       zstyle -s ':prezto:module:git:info:deleted' format 'deleted_format' | ||||
|       zformat -f deleted_formatted "$deleted_format" "d:$deleted_format" | ||||
|       zformat -f deleted_formatted "$deleted_format" "d:$deleted" | ||||
|     fi | ||||
|  | ||||
|     # Format modified. | ||||
| @@ -386,6 +417,11 @@ function git-info { | ||||
|   if (( dirty > 0 )); then | ||||
|     zstyle -s ':prezto:module:git:info:dirty' format 'dirty_format' | ||||
|     zformat -f dirty_formatted "$dirty_format" "D:$dirty" | ||||
|     # Overwrite branch format to use dirty-branch format | ||||
|     zstyle -s ':prezto:module:git:info:dirty-branch' format 'branch_format' | ||||
|     if [[ -n "$branch" && -n "$branch_format" ]]; then | ||||
|       zformat -f branch_formatted "$branch_format" "b:$branch" | ||||
|     fi | ||||
|   else | ||||
|     zstyle -s ':prezto:module:git:info:clean' format 'clean_formatted' | ||||
|   fi | ||||
| @@ -421,4 +457,3 @@ function git-info { | ||||
| } | ||||
|  | ||||
| git-info "$@" | ||||
|  | ||||
|   | ||||
| @@ -5,7 +5,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| local root="$(git rev-parse --show-toplevel 2> /dev/null)" | ||||
| # function git-root { | ||||
|  | ||||
| local root="$(command git rev-parse --show-toplevel 2> /dev/null)" | ||||
|  | ||||
| if [[ -n "$root" ]]; then | ||||
|   print "$root" | ||||
| @@ -15,3 +17,4 @@ else | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,7 +5,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-stash-clear-interactive { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| fi | ||||
| @@ -13,11 +15,12 @@ fi | ||||
| local stashed | ||||
|  | ||||
| if [[ -f "$(git-dir)/refs/stash" ]]; then | ||||
|   stashed="$(git stash list 2> /dev/null | wc -l | awk '{print $1}')" | ||||
|   stashed=${#${(f)"$(command git stash list 2> /dev/null)"}} | ||||
|   if (( $stashed > 0 )); then | ||||
|     if read -q "?Clear $stashed stashed state(s) [y/N]? "; then | ||||
|       git stash clear | ||||
|       command git stash clear | ||||
|     fi | ||||
|   fi | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,19 +5,22 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-stash-dropped { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| git fsck --unreachable 2> /dev/null \ | ||||
| command git fsck --unreachable 2> /dev/null \ | ||||
|   | grep 'commit' \ | ||||
|   | awk '{print $3}' \ | ||||
|   | git log \ | ||||
|       --pretty=format:${_git_log_oneline_format} \ | ||||
|   | command git log \ | ||||
|       --pretty=format:$_git_log_oneline_format \ | ||||
|       --extended-regexp \ | ||||
|       --grep="${1:-(WIP )?[Oo]n [^:]+:}" \ | ||||
|       --merges \ | ||||
|       --no-walk \ | ||||
|       --stdin | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,7 +5,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-stash-recover { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| fi | ||||
| @@ -13,7 +15,8 @@ fi | ||||
| local commit | ||||
|  | ||||
| for commit in "$@"; do | ||||
|   git update-ref \ | ||||
|     -m "$(git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit" | ||||
|   command git update-ref \ | ||||
|     -m "$(command git log -1 --pretty="format:%s" "$commit")" refs/stash "$commit" | ||||
| done | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,7 +5,9 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-submodule-move { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| elif [[ "$PWD" != "$(git-root)" ]]; then | ||||
| @@ -17,17 +19,18 @@ local src="$1" | ||||
| local dst="$2" | ||||
| local url | ||||
|  | ||||
| url="$(git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")" | ||||
| url="$(command git config --file "$(git-root)/.gitmodules" --get "submodule.${src}.url")" | ||||
|  | ||||
| if [[ -z "$url" ]]; then | ||||
|   print "$0: submodule not found: $src" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| mkdir -p "${dst:h}" | ||||
| mkdir -p "$dst:h" | ||||
|  | ||||
| git-submodule-remove "$src" | ||||
| git submodule add "$url" "$dst" | ||||
| command git submodule add "$url" "$dst" | ||||
|  | ||||
| return 0 | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -5,24 +5,27 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| if ! is-true "$(git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
| # function git-submodule-remove { | ||||
|  | ||||
| if ! is-true "$(command git rev-parse --is-inside-work-tree 2> /dev/null)"; then | ||||
|   print "$0: not a repository work tree: $PWD" >&2 | ||||
|   return 1 | ||||
| elif [[ "$PWD" != "$(git-root)" ]]; then | ||||
|   print "$0: must be run from the root of the work tree" >&2 | ||||
|   return 1 | ||||
| elif ! git config --file .gitmodules --get "submodule.${1}.path" &>/dev/null; then | ||||
| elif ! command git config --file .gitmodules --get "submodule.${1}.path" &> /dev/null; then | ||||
|   print "$0: submodule not found: $1" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &>/dev/null | ||||
| git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &>/dev/null | ||||
| git add .gitmodules | ||||
| command git config --file "$(git-dir)/config" --remove-section "submodule.${1}" &> /dev/null | ||||
| command git config --file "$(git-root)/.gitmodules" --remove-section "submodule.${1}" &> /dev/null | ||||
| command git add .gitmodules | ||||
|  | ||||
| git rm --cached -rf "${1}" | ||||
| rm -rf "${1}" | ||||
| rm -rf "$(git-dir)/modules/${1}" | ||||
| command git rm --cached -rf "$1" | ||||
| rm -rf "$1" | ||||
| rm -rf "$(git-dir)/modules/$1" | ||||
|  | ||||
| return 0 | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -13,6 +13,8 @@ fi | ||||
| # Load dependencies. | ||||
| pmodload 'helper' | ||||
|  | ||||
| # Load 'run-help' function. | ||||
| autoload -Uz run-help-git | ||||
|  | ||||
| # Source module files. | ||||
| source "${0:h}/alias.zsh" | ||||
|  | ||||
|   | ||||
| @@ -1,33 +1,34 @@ | ||||
| GNU Utility | ||||
| =========== | ||||
| # GNU Utility | ||||
|  | ||||
| Provides for the interactive use of GNU utilities on non-GNU systems. | ||||
| Provides for the interactive use of GNU utilities on BSD systems. | ||||
|  | ||||
| Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e. | ||||
| Installing GNU utilities on non-GNU systems in `$PATH` without a prefix, i.e., | ||||
| `ls` instead of `gls`, is not recommended since scripts that target other | ||||
| utilities will be broken. | ||||
|  | ||||
| This module wraps GNU utilities in functions without a prefix for interactive | ||||
| use. | ||||
|  | ||||
| This module must be loaded **before** the *utility* module. | ||||
| This module must be loaded _before_ the [_`utility`_][1] module so that GNU | ||||
| utilities enabled in this module are available for configuration in _`utility`_ | ||||
| module. | ||||
|  | ||||
| Settings | ||||
| -------- | ||||
| ## Settings | ||||
|  | ||||
| ### Prefix | ||||
|  | ||||
| To use a different prefix, add the following to *zpreztorc*, and replace 'g' with | ||||
| the desired prefix: | ||||
| To use a different prefix, add the following to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_, and replace `'g'` with the desired prefix. | ||||
|  | ||||
|     zstyle ':prezto:module:gnu-utility' prefix 'g' | ||||
| ```sh | ||||
| zstyle ':prezto:module:gnu-utility' prefix 'g' | ||||
| ``` | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: ../utility#readme | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -6,34 +6,36 @@ | ||||
| # | ||||
|  | ||||
| # Get the prefix or use the default. | ||||
| zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' || _gnu_utility_p='g' | ||||
| zstyle -s ':prezto:module:gnu-utility' prefix '_gnu_utility_p' \ | ||||
|     || _gnu_utility_p='g' | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if (( ! ${+commands[${_gnu_utility_p}whoami]} )); then | ||||
| if (( ! $+commands[${_gnu_utility_p}whoami] )); then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| _gnu_utility_cmds=( | ||||
|   # Coreutils | ||||
|   '[' 'base64' 'basename' 'cat' 'chcon' 'chgrp' 'chmod' 'chown' | ||||
|   'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' 'date' 'dd' 'df' | ||||
|   'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr' | ||||
|   'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' | ||||
|   'install' 'join' 'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' | ||||
|   'mkdir' 'mkfifo' 'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' | ||||
|   'od' 'paste' 'pathchk' 'pinee' 'pr' 'printenv' 'printf' 'ptx' | ||||
|   'pwd' 'readlink' 'realpath' 'rm' 'rmdir' 'runcon' 'seq' 'sha1sum' | ||||
|   'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf' | ||||
|   'sleep' 'sort' 'split' 'stat' 'stty' 'sum' 'sync' 'tac' 'tail' | ||||
|   'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' | ||||
|   'tty' 'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir' | ||||
|   '[' 'b2sum' 'base32' 'base64' 'basename' 'basenc' 'cat' 'chcon' 'chgrp' | ||||
|   'chmod' 'chown' 'chroot' 'cksum' 'comm' 'cp' 'csplit' 'cut' | ||||
|   'date' 'dd' 'df' 'dir' 'dircolors' 'dirname' 'du' 'echo' 'env' 'expand' 'expr' | ||||
|   'factor' 'false' 'fmt' 'fold' 'groups' 'head' 'hostid' 'id' 'install' 'join' | ||||
|   'kill' 'link' 'ln' 'logname' 'ls' 'md5sum' 'mkdir' 'mkfifo' | ||||
|   'mknod' 'mktemp' 'mv' 'nice' 'nl' 'nohup' 'nproc' 'numfmt' 'od' | ||||
|   'paste' 'pathchk' 'pinky' 'pr' 'printenv' 'printf' 'ptx' 'pwd' | ||||
|   'readlink' 'realpath' 'rm' 'rmdir' 'runcon' | ||||
|   'seq' 'sha1sum' 'sha224sum' 'sha256sum' 'sha384sum' 'sha512sum' 'shred' 'shuf' | ||||
|   'sleep' 'sort' 'split' 'stat' 'stdbuf' 'stty' 'sum' 'sync' 'tac' 'tail' | ||||
|   'tee' 'test' 'timeout' 'touch' 'tr' 'true' 'truncate' 'tsort' 'tty' | ||||
|   'uname' 'unexpand' 'uniq' 'unlink' 'uptime' 'users' 'vdir' | ||||
|   'wc' 'who' 'whoami' 'yes' | ||||
|  | ||||
|   # The following utilities are not part of Coreutils but installed separately. | ||||
|  | ||||
|   # Binutils | ||||
|   'addr2line' 'ar' 'c++filt' 'elfedit' 'nm' 'objcopy' 'objdump' | ||||
|   'ranlib' 'readelf' 'size' 'strings' 'strip' | ||||
|   'addr2line' 'ar' 'c++filt' 'coffdump' 'dlltool' 'dllwrap' 'elfedit' 'nm' | ||||
|   'objcopy' 'objdump' 'ranlib' 'readelf' | ||||
|   'size' 'srconv' 'strings' 'strip' 'sysdump' 'windmc' 'windres' | ||||
|  | ||||
|   # Findutils | ||||
|   'find' 'locate' 'oldfind' 'updatedb' 'xargs' | ||||
| @@ -42,20 +44,21 @@ _gnu_utility_cmds=( | ||||
|   'libtool' 'libtoolize' | ||||
|  | ||||
|   # Miscellaneous | ||||
|   'getopt' 'grep' 'indent' 'sed' 'tar' 'time' 'units' 'which' | ||||
|   'egrep' 'fgrep' 'getopt' 'grep' 'indent' 'make' 'sed' 'tar' 'time' 'units' | ||||
|   'which' | ||||
| ) | ||||
|  | ||||
| # Wrap GNU utilities in functions. | ||||
| for _gnu_utility_cmd in "${_gnu_utility_cmds[@]}"; do | ||||
|   _gnu_utility_pcmd="${_gnu_utility_p}${_gnu_utility_cmd}" | ||||
|   if (( ${+commands[${_gnu_utility_pcmd}]} )); then | ||||
|   if (( $+commands[$_gnu_utility_pcmd] \ | ||||
|         && ! $+builtins[$_gnu_utility_cmd] )); then | ||||
|     eval " | ||||
|       function ${_gnu_utility_cmd} { | ||||
|         '${commands[${_gnu_utility_pcmd}]}' \"\$@\" | ||||
|       function $_gnu_utility_cmd { | ||||
|         '$commands[$_gnu_utility_pcmd]' \"\$@\" | ||||
|       } | ||||
|     " | ||||
|   fi | ||||
| done | ||||
|  | ||||
| unset _gnu_utility_{p,cmds,cmd,pcmd} | ||||
|  | ||||
|   | ||||
| @@ -1,27 +1,28 @@ | ||||
| GPG | ||||
| === | ||||
| # GPG | ||||
|  | ||||
| Provides for an easier use of [GPG][1] by setting up [gpg-agent][2]. | ||||
|  | ||||
| ## Settings | ||||
|  | ||||
| ### SSH | ||||
|  | ||||
| To enable OpenSSH Agent protocol emulation, and make `gpg-agent` a drop-in | ||||
| replacement for `ssh-agent`, add the following line to | ||||
| *~/.gnupg/gpg-agent.conf*: | ||||
| _`$GNUPGHOME/gpg-agent.conf`_ or _`$$HOME/.gnupg/gpg-agent.conf`_: | ||||
|  | ||||
|     enable-ssh-support | ||||
| ```conf | ||||
| enable-ssh-support | ||||
| ``` | ||||
|  | ||||
| When OpenSSH Agent protocol emulation is enabled, this module will load the SSH | ||||
| module for additional processing. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][3].* | ||||
| _The authors of this module should be contacted via the [issue tracker][3]._ | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: http://www.gnupg.org | ||||
| [2]: http://linux.die.net/man/1/gpg-agent | ||||
| [1]: https://www.gnupg.org | ||||
| [2]: https://linux.die.net/man/1/gpg-agent | ||||
| [3]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -11,27 +11,40 @@ if (( ! $+commands[gpg-agent] )); then | ||||
| fi | ||||
|  | ||||
| # Set the default paths to gpg-agent files. | ||||
| _gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf" | ||||
| _gpg_agent_env="$TMPDIR/gpg-agent.env" | ||||
| _gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf" | ||||
| _gpg_agent_env="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env" | ||||
|  | ||||
| # Load environment variables from previous run | ||||
| source "$_gpg_agent_env" 2> /dev/null | ||||
|  | ||||
| # Start gpg-agent if not started. | ||||
| if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then | ||||
|   eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" | ||||
| else | ||||
|   # Export environment variables. | ||||
|   source "$_gpg_agent_env" 2> /dev/null | ||||
| if [[ -z "$GPG_AGENT_INFO" && ! -S "${GNUPGHOME:-$HOME/.gnupg}/S.gpg-agent" ]]; then | ||||
|   # Start gpg-agent if not started. | ||||
|   if ! ps -U "$LOGNAME" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then | ||||
|     mkdir -p "$_gpg_agent_env:h" | ||||
|     eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" | ||||
|   fi | ||||
| fi | ||||
|  | ||||
| # Inform gpg-agent of the current TTY for user prompts. | ||||
| export GPG_TTY="$(tty)" | ||||
| export GPG_TTY=$TTY | ||||
|  | ||||
| # Integrate with the SSH module. | ||||
| if grep 'enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then | ||||
| if grep '^enable-ssh-support' "$_gpg_agent_conf" &> /dev/null; then | ||||
|   # Load required functions. | ||||
|   autoload -Uz add-zsh-hook | ||||
|  | ||||
|   # Override the ssh-agent environment file default path. | ||||
|   _ssh_agent_env="$_gpg_agent_env" | ||||
|  | ||||
|   # Load the SSH module for additional processing. | ||||
|   pmodload 'ssh' | ||||
|  | ||||
|   # Updates the GPG-Agent TTY before every command since SSH does not set it. | ||||
|   function _gpg-agent-update-tty { | ||||
|     gpg-connect-agent UPDATESTARTUPTTY /bye >/dev/null | ||||
|   } | ||||
|   add-zsh-hook preexec _gpg-agent-update-tty | ||||
| fi | ||||
|  | ||||
| # Clean up. | ||||
| @@ -41,4 +54,3 @@ unset _gpg_agent_{conf,env} | ||||
| if [[ -n "$SSH_CONNECTION" ]]; then | ||||
|   export PINENTRY_USER_DATA='USE_CURSES=1' | ||||
| fi | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,8 @@ | ||||
| Haskell | ||||
| ======= | ||||
| # Haskell | ||||
|  | ||||
| Enables local Haskell package installation. | ||||
|  | ||||
| Per-user Package Installation | ||||
| ----------------------------- | ||||
| ## Per-user Package Installation | ||||
|  | ||||
| [Cabal][1], the Haskell package manager, can install packages into per user | ||||
| directories. | ||||
| @@ -17,13 +15,11 @@ documentation. | ||||
|  | ||||
| Install packages into per user directories with `cabal install --user`. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][2].* | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
|   - [Sebastian Wiesner](https://github.com/lunaryorn) | ||||
| - [Sebastian Wiesner](https://github.com/lunaryorn) | ||||
|  | ||||
| [1]: http://www.haskell.org/cabal/ | ||||
| [1]: https://www.haskell.org/cabal/ | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -10,8 +10,11 @@ if (( ! $+commands[ghc] )); then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # Load dependencies. | ||||
| pmodload 'helper' | ||||
|  | ||||
| # Prepend Cabal per user directories to PATH. | ||||
| if [[ "$OSTYPE" == darwin* && -d $HOME/Library/Haskell ]]; then | ||||
| if is-darwin && [[  -d $HOME/Library/Haskell ]]; then | ||||
|   path=($HOME/Library/Haskell/bin(/N) $path) | ||||
| else | ||||
|   path=($HOME/.cabal/bin(/N) $path) | ||||
|   | ||||
| @@ -1,25 +1,26 @@ | ||||
| Helper | ||||
| ====== | ||||
| # Helper | ||||
|  | ||||
| Provides helper functions for developing modules. | ||||
|  | ||||
| Functions | ||||
| --------- | ||||
| ## Functions | ||||
|  | ||||
|   - `add-zsh-trap` adds a function name to a list to be called when a trap is | ||||
|     triggered. | ||||
|   - `is-autoloadable` checks if a file can be autoloaded by trying to load it | ||||
|     in a subshell. | ||||
|   - `is-callable` checks if a name is a command, function, or alias. | ||||
|   - `is-true` checks a boolean variable for "true". | ||||
|   - `coalesce` prints the first non-empty string in the arguments array. | ||||
| - `add-zsh-trap` adds a function name to a list to be called when a trap is | ||||
|   triggered. | ||||
| - `is-autoloadable` checks if a file can be autoloaded by trying to load it in | ||||
|   a subshell. | ||||
| - `is-callable` checks if a name is a command, function, or alias. | ||||
| - `is-true` checks a boolean variable for "true". | ||||
| - `coalesce` prints the first non-empty string in the arguments array. | ||||
| - `is-darwin` checks if running on macOS Darwin. | ||||
| - `is-linux` checks if running on Linux. | ||||
| - `is-bsd` checks if running on BSD. | ||||
| - `is-cygwin` checks if running on Cygwin (Windows). | ||||
| - `is-termux` checks if running on Termux (Android). | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| _The authors of this module should be contacted via the [issue tracker][1]._ | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -39,4 +39,3 @@ function add-zsh-trap { | ||||
| } | ||||
|  | ||||
| add-zsh-trap "$@" | ||||
|  | ||||
|   | ||||
| @@ -12,7 +12,7 @@ function is-autoloadable { | ||||
|  | ||||
| # Checks if a name is a command, function, or alias. | ||||
| function is-callable { | ||||
|   (( $+commands[$1] || $+functions[$1] || $+aliases[$1] )) | ||||
|   (( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] )) | ||||
| } | ||||
|  | ||||
| # Checks a boolean variable for "true". | ||||
| @@ -30,3 +30,27 @@ function coalesce { | ||||
|   return 1 | ||||
| } | ||||
|  | ||||
| # Checks if running on macOS Darwin. | ||||
| function is-darwin { | ||||
|   [[ "$OSTYPE" == darwin* ]] | ||||
| } | ||||
|  | ||||
| # Checks if running on Linux. | ||||
| function is-linux { | ||||
|   [[ "$OSTYPE" == linux* ]] | ||||
| } | ||||
|  | ||||
| # Checks if running on BSD. | ||||
| function is-bsd { | ||||
|   [[ "$OSTYPE" == *bsd* ]] | ||||
| } | ||||
|  | ||||
| # Checks if running on Cygwin (Windows). | ||||
| function is-cygwin { | ||||
|   [[ "$OSTYPE" == cygwin* ]] | ||||
| } | ||||
|  | ||||
| # Checks if running on termux (Android). | ||||
| function is-termux { | ||||
|   [[ "$OSTYPE" == linux-android ]] | ||||
| } | ||||
|   | ||||
| @@ -1,62 +1,79 @@ | ||||
| History Substring Search | ||||
| ======================== | ||||
| # History Substring Search | ||||
|  | ||||
| Integrates [zsh-history-substring-search][1] into Prezto, which implements | ||||
| the [Fish shell][2]'s history search feature, where the user can type in any | ||||
| part of a previously entered command and press up and down to cycle through | ||||
| matching commands. | ||||
| Integrates [`zsh-history-substring-search`][1] into Prezto, which implements the | ||||
| [Fish shell][2]'s history search feature, where the user can type in any part of | ||||
| a previously entered command and press up and down to cycle through matching | ||||
| commands. | ||||
|  | ||||
| If this module is used in conjuncture with the *syntax-highlighting* module, it | ||||
| must be loaded **after** it. | ||||
| If this module is used in conjunction with the [_`syntax-highlighting`_][3] | ||||
| module, this module must be loaded _after_ the _`syntax-highlighting`_ module. | ||||
|  | ||||
| Contributors | ||||
| ------------ | ||||
| Additionally, if this module is used in conjunction with the | ||||
| [_`autosuggestions`_][4] module, this module must be loaded _before_ the | ||||
| _`autosuggestions`_ module. | ||||
|  | ||||
| To elaborate, the relative order of loading the modules would be | ||||
| _`syntax-highlighting`_, _`history-substring-search`_ and _`autosuggestions`_. | ||||
|  | ||||
| ## Contributors | ||||
|  | ||||
| New features and bug fixes should be submitted to the | ||||
| [zsh-history-substring-search][1] project according to its rules and | ||||
| [`zsh-history-substring-search`][1] project according to its rules and | ||||
| regulations. This module will be synchronized against it. | ||||
|  | ||||
| Settings | ||||
| -------- | ||||
| ## Settings | ||||
|  | ||||
| ### Case Sensitivity | ||||
|  | ||||
| To enable case-sensitivity for this module only, add the following line to | ||||
| *zpreztorc*: | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
|     zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' | ||||
| ```sh | ||||
| zstyle ':prezto:module:history-substring-search' case-sensitive 'yes' | ||||
| ``` | ||||
|  | ||||
| ### Highlighting | ||||
|  | ||||
| If colors are enabled, *history-substring-search* will automatically highlight | ||||
| If colors are enabled, _history-substring-search_ will automatically highlight | ||||
| positive results. | ||||
|  | ||||
| To enable highlighting for this module only, add the following line to | ||||
| *zpreztorc*: | ||||
| To disable highlighting for this module only, add the following line to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
|     zstyle ':prezto:module:history-substring-search' color 'yes' | ||||
| ```sh | ||||
| zstyle ':prezto:module:history-substring-search' color 'no' | ||||
| ``` | ||||
|  | ||||
| To set the query found color, add the following line to *zpreztorc*: | ||||
| To set the query found color, add the following line to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
|     zstyle ':prezto:module:history-substring-search:color' found '' | ||||
| ```sh | ||||
| zstyle ':prezto:module:history-substring-search:color' found '' | ||||
| ``` | ||||
|  | ||||
| To set the query not found color, add the following line to *zpreztorc*: | ||||
| To set the query not found color, add the following line to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
|     zstyle ':prezto:module:history-substring-search:color' not-found '' | ||||
| ```sh | ||||
| zstyle ':prezto:module:history-substring-search:color' not-found '' | ||||
| ``` | ||||
|  | ||||
| To set the search globbing flags, add the following line to *zpreztorc*: | ||||
| To set the search globbing flags, add the following line to | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_: | ||||
|  | ||||
|     zstyle ':prezto:module:history-substring-search' globbing-flags '' | ||||
| ```sh | ||||
| zstyle ':prezto:module:history-substring-search' globbing-flags '' | ||||
| ``` | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][3].* | ||||
| _The authors of this module should be contacted via the [issue tracker][5]._ | ||||
|  | ||||
|   - [Suraj N. Kurapati](https://github.com/sunaku) | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Suraj N. Kurapati](https://github.com/sunaku) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/zsh-users/zsh-history-substring-search | ||||
| [2]: http://fishshell.com | ||||
| [3]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
| [2]: https://fishshell.com | ||||
| [3]: ../syntax-highlighting#readme | ||||
| [4]: ../autosuggestions#readme | ||||
| [5]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
 Submodule modules/history-substring-search/external updated: 1e76804052...0f80b8eb33
									
								
							| @@ -10,7 +10,9 @@ | ||||
| pmodload 'editor' | ||||
|  | ||||
| # Source module files. | ||||
| source "${0:h}/external/zsh-history-substring-search.zsh" || return 1 | ||||
| if (( ! $+functions[history-substring-search-up] )); then | ||||
|   source "${0:h}/external/zsh-history-substring-search.zsh" || return 1 | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Search | ||||
| @@ -54,5 +56,6 @@ if [[ -n "$key_info" ]]; then | ||||
|     bindkey -M "$keymap" "$key_info[Up]" history-substring-search-up | ||||
|     bindkey -M "$keymap" "$key_info[Down]" history-substring-search-down | ||||
|   done | ||||
| fi | ||||
|  | ||||
|   unset keymap | ||||
| fi | ||||
|   | ||||
| @@ -1,44 +1,50 @@ | ||||
| History | ||||
| ======= | ||||
| # History | ||||
|  | ||||
| Sets [history][1] options and defines history aliases. | ||||
|  | ||||
| Variables | ||||
| --------- | ||||
| **Note:** Default path of `HISTFILE` has changed from | ||||
| _`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_. The file | ||||
| will be automatically renamed if possible (when the new one doesn't exist). | ||||
| Otherwise, if you want to preserve previous history, you will need to move them | ||||
| from _`${ZDOTDIR:-$HOME}/.zhistory`_ to _`${ZDOTDIR:-$HOME}/.zsh_history`_. | ||||
|  | ||||
|   - `HISTFILE` stores the path to the history file. | ||||
|   - `HISTSIZE` stores the maximum number of events to save in the internal history. | ||||
|   - `SAVEHIST` stores the maximum number of events to save in the history file. | ||||
| Alternately, you can set `HISTFILE` manually to _`${ZDOTDIR:-$HOME}/.zhistory`_. | ||||
|  | ||||
| Options | ||||
| ------- | ||||
| ## Options | ||||
|  | ||||
|   - `BANG_HIST` treats the **!** character specially during expansion. | ||||
|   - `EXTENDED_HISTORY` writes the history file in the *:start:elapsed;command* format. | ||||
|   - `INC_APPEND_HISTORY` writes to the history file immediately, not when the shell exits. | ||||
|   - `SHARE_HISTORY` shares history between all sessions. | ||||
|   - `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history. | ||||
|   - `HIST_IGNORE_DUPS` does not record an event that was just recorded again. | ||||
|   - `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a duplicate. | ||||
|   - `HIST_FIND_NO_DUPS` does not display a previously found event. | ||||
|   - `HIST_IGNORE_SPACE` does not record an event starting with a space. | ||||
|   - `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file. | ||||
|   - `HIST_VERIFY` does not execute immediately upon history expansion. | ||||
|   - `HIST_BEEP` beeps when accessing non-existent history. | ||||
| - `BANG_HIST` treats the **!** character specially during expansion. | ||||
| - `EXTENDED_HISTORY` writes the history file in the _:start:elapsed;command_ | ||||
|   format. | ||||
| - `SHARE_HISTORY` shares history between all sessions. Note that | ||||
|   `SHARE_HISTORY`, `INC_APPEND_HISTORY`, and `INC_APPEND_HISTORY_TIME` are | ||||
|   mutually exclusive. | ||||
| - `HIST_EXPIRE_DUPS_FIRST` expires a duplicate event first when trimming history. | ||||
| - `HIST_IGNORE_DUPS` does not record an event that was just recorded again. | ||||
| - `HIST_IGNORE_ALL_DUPS` deletes an old recorded event if a new event is a | ||||
|   duplicate. | ||||
| - `HIST_FIND_NO_DUPS` does not display a previously found event. | ||||
| - `HIST_IGNORE_SPACE` does not record an event starting with a space. | ||||
| - `HIST_SAVE_NO_DUPS` does not write a duplicate event to the history file. | ||||
| - `HIST_VERIFY` does not execute immediately upon history expansion. | ||||
| - `HIST_BEEP` beeps when accessing non-existent history. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Variables | ||||
|  | ||||
|   - `history-stat` lists the ten most used commands | ||||
| - `HISTFILE` stores the path to the history file. | ||||
| - `HISTSIZE` stores the maximum number of events to save in the internal history. | ||||
| - `SAVEHIST` stores the maximum number of events to save in the history file. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Aliases | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][2].* | ||||
| - `history-stat` lists the ten most used commands | ||||
|  | ||||
|   - [Robby Russell](https://github.com/robbyrussell) | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| ## Authors | ||||
|  | ||||
| [1]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16 | ||||
| _The authors of this module should be contacted via the [issue tracker][2]._ | ||||
|  | ||||
| - [Robby Russell](https://github.com/robbyrussell) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Indrajit Raychaudhuri](https://github.com/indrajitr) | ||||
|  | ||||
| [1]: https://zsh.sourceforge.net/Guide/zshguide02.html#l16 | ||||
| [2]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -6,21 +6,12 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # | ||||
| # Variables | ||||
| # | ||||
|  | ||||
| HISTFILE="${ZDOTDIR:-$HOME}/.zhistory"       # The path to the history file. | ||||
| HISTSIZE=10000                   # The maximum number of events to save in the internal history. | ||||
| SAVEHIST=10000                   # The maximum number of events to save in the history file. | ||||
|  | ||||
| # | ||||
| # Options | ||||
| # | ||||
|  | ||||
| setopt BANG_HIST                 # Treat the '!' character specially during expansion. | ||||
| setopt EXTENDED_HISTORY          # Write the history file in the ':start:elapsed;command' format. | ||||
| setopt INC_APPEND_HISTORY        # Write to the history file immediately, not when the shell exits. | ||||
| setopt SHARE_HISTORY             # Share history between all sessions. | ||||
| setopt HIST_EXPIRE_DUPS_FIRST    # Expire a duplicate event first when trimming history. | ||||
| setopt HIST_IGNORE_DUPS          # Do not record an event that was just recorded again. | ||||
| @@ -31,9 +22,42 @@ setopt HIST_SAVE_NO_DUPS         # Do not write a duplicate event to the history | ||||
| setopt HIST_VERIFY               # Do not execute immediately upon history expansion. | ||||
| setopt HIST_BEEP                 # Beep when accessing non-existent history. | ||||
|  | ||||
| # | ||||
| # Variables | ||||
| # | ||||
|  | ||||
| HISTFILE="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}"  # The path to the history file. | ||||
| HISTSIZE=10000                   # The maximum number of events to save in the internal history. | ||||
| SAVEHIST=10000                   # The maximum number of events to save in the history file. | ||||
|  | ||||
| # | ||||
| # Aliases | ||||
| # | ||||
|  | ||||
| # Lists the ten most used commands. | ||||
| alias history-stat="history 0 | awk '{print \$2}' | sort | uniq -c | sort -n -r | head" | ||||
|  | ||||
| if [[ -s "${OLD_HISTFILE::=${HISTFILE:h}/.zhistory}" ]]; then | ||||
|  | ||||
|   # New 'HISTFILE' doesn't exist yet, rename legacy one if available and notify. | ||||
|   if [[ ! -s "$HISTFILE" ]]; then | ||||
|     <<EON | ||||
| NOTICE: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}' | ||||
|         to '${HISTFILE/#$HOME/~}'. | ||||
|         Attempting to rename the existing 'HISTFILE' ... | ||||
| EON | ||||
|     command mv -v "$OLD_HISTFILE" "$HISTFILE" | ||||
|  | ||||
|   # New 'HISTFILE' does exist and is older than legacy one, just warn. | ||||
|   elif [[ "$OLD_HISTFILE" -nt "$HISTFILE" ]]; then | ||||
|     <<EOW | ||||
| WARNING: Default path of 'HISTFILE' has changed from '${OLD_HISTFILE/#$HOME/~}' | ||||
|          to '${HISTFILE/#$HOME/~}'. | ||||
|          Either set 'HISTFILE' in '${${0:h}/#$HOME/~}' | ||||
|          or move previous history from '${OLD_HISTFILE/#$HOME/~}' to | ||||
|          '${HISTFILE/#$HOME/~}'. | ||||
| EOW | ||||
|   fi | ||||
|  | ||||
|   unset OLD_HISTFILE | ||||
| fi | ||||
|   | ||||
| @@ -1,26 +1,43 @@ | ||||
| Homebrew | ||||
| ======== | ||||
| # Homebrew | ||||
|  | ||||
| Defines Homebrew aliases. | ||||
| Defines Homebrew specific environment variables and aliases. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Variables | ||||
|  | ||||
|   - `brewc` cleans outdated brews and their cached archives. | ||||
|   - `brewC` cleans outdated brews, including keg-only, and their cached archives. | ||||
|   - `brewi` installs a formula. | ||||
|   - `brewl` lists installed formulae. | ||||
|   - `brews` searches for a formula. | ||||
|   - `brewU` upgrades Homebrew and outdated brews. | ||||
|   - `brewu` upgrades Homebrew. | ||||
|   - `brewx` uninstalls a formula. | ||||
| Execute the following to list the environment variables loaded in the shell: | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ```sh | ||||
| brew shellenv | ||||
| ``` | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| ## Aliases | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| ### Homebrew Core | ||||
|  | ||||
| - `brewc` cleans outdated brews and their cached archives. | ||||
| - `brewi` installs a formula. | ||||
| - `brewL` lists installed formulae that are not dependencies of another | ||||
|   installed formula. | ||||
| - `brewl` lists installed formulae. | ||||
| - `brewo` lists brews which have an update available. | ||||
| - `brews` searches for a formula. | ||||
| - `brewu` upgrades outdated formulae. | ||||
| - `brewx` uninstalls a formula. | ||||
|  | ||||
| ### Homebrew Cask | ||||
|  | ||||
| - `caski` installs a cask. | ||||
| - `caskl` lists installed casks. | ||||
| - `casko` lists casks which have an update available. | ||||
| - `casks` searches for a cask. | ||||
| - `casku` upgrades outdated casks. | ||||
| - `caskx` uninstalls a cask. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][1]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Griffin Yourick](https://github.com/tough-griff) | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -5,20 +5,43 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # Load dependencies. | ||||
| pmodload 'helper' | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if [[ "$OSTYPE" != darwin* ]]; then | ||||
| if ! is-darwin && ! is-linux; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Variables | ||||
| # | ||||
|  | ||||
| # Load standard Homebrew shellenv into the shell session. | ||||
| # Load 'HOMEBREW_' prefixed variables only. Avoid loading 'PATH' related | ||||
| # variables as they are already handled in standard zsh configuration. | ||||
| if (( $+commands[brew] )); then | ||||
|   eval "${(@M)${(f)"$(brew shellenv 2> /dev/null)"}:#export HOMEBREW*}" | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Aliases | ||||
| # | ||||
|  | ||||
| # Homebrew | ||||
| alias brewc='brew cleanup' | ||||
| alias brewC='brew cleanup --force' | ||||
| alias brewi='brew install' | ||||
| alias brewL='brew leaves' | ||||
| alias brewl='brew list' | ||||
| alias brewo='brew outdated' | ||||
| alias brews='brew search' | ||||
| alias brewu='brew upgrade' | ||||
| alias brewU='brew update && brew upgrade' | ||||
| alias brewx='brew remove' | ||||
| alias brewx='brew uninstall' | ||||
|  | ||||
| # Homebrew Cask | ||||
| alias caski='brew install --cask' | ||||
| alias caskl='brew list --cask' | ||||
| alias casko='brew outdated --cask' | ||||
| alias casks='brew search --cask' | ||||
| alias casku='brew upgrade --cask' | ||||
| alias caskx='brew uninstall --cask' | ||||
|   | ||||
| @@ -1,26 +1,22 @@ | ||||
| Macports | ||||
| ======== | ||||
| # MacPorts | ||||
|  | ||||
| Defines MacPorts aliases and adds MacPorts directories to path variables. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| ## Aliases | ||||
|  | ||||
|   - `portc` cleans the files used to build ports. | ||||
|   - `porti` installs a port. | ||||
|   - `ports` searches for a port. | ||||
|   - `portu` upgrades a port. | ||||
|   - `portU` upgrades MacPorts, the ports collection, and outdated ports. | ||||
|   - `portx` uninstalls a port. | ||||
|   - `portX` uninstalls inactive ports. | ||||
| - `portc` cleans the files used to build ports. | ||||
| - `porti` installs a port. | ||||
| - `ports` searches for a port. | ||||
| - `portu` upgrades a port. | ||||
| - `portU` upgrades MacPorts, the ports collection, and outdated ports. | ||||
| - `portx` uninstalls a port. | ||||
| - `portX` uninstalls inactive ports. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][1].* | ||||
| _The authors of this module should be contacted via the [issue tracker][1]._ | ||||
|  | ||||
|   - [Matt Cable](https://github.com/curiousstranger) | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Matt Cable](https://github.com/curiousstranger) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -6,8 +6,11 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # Load dependencies. | ||||
| pmodload 'helper' | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if [[ "$OSTYPE" != darwin* ]]; then | ||||
| if ! is-darwin; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| @@ -32,4 +35,3 @@ alias portU='sudo port selfupdate && sudo port upgrade outdated' | ||||
| alias portu='sudo port upgrade' | ||||
| alias portX='sudo port -u uninstall' | ||||
| alias portx='sudo port uninstall' | ||||
|  | ||||
|   | ||||
| @@ -1,46 +1,84 @@ | ||||
| Node.js | ||||
| ======= | ||||
| # Node.js | ||||
|  | ||||
| Provides utility functions for [Node.js][1], loads the Node Version Manager, and | ||||
| enables [npm][2] completion. | ||||
| enables [_npm_][2] completion. | ||||
|  | ||||
| nvm | ||||
| --- | ||||
| This module must be loaded _before_ the _`completion`_ module so that the | ||||
| provided completion definitions are loaded. | ||||
|  | ||||
| [nvm][5] allows for managing multiple, isolated Node.js installations in the | ||||
| ## nodenv | ||||
|  | ||||
| [_nodenv_][5] does one thing well - it is concerned solely with switching | ||||
| Node versions. It is simple and predictable, Just Works, and is rock solid in | ||||
| production. nodenv is forked from the popular [_rbenv_][6]. | ||||
|  | ||||
| This will be loaded automatically if nodenv is installed in `$NODENV_ROOT`, | ||||
| _`$XDG_CONFIG_HOME/nodenv`_, _`~/.nodenv`_, or `nodenv` is on the path. | ||||
|  | ||||
| ## nvm | ||||
|  | ||||
| [_nvm_][7] allows for managing multiple, isolated Node.js installations in the | ||||
| home directory. | ||||
|  | ||||
| Functions | ||||
| --------- | ||||
| This will be loaded automatically if nvm is installed in `$NVM_DIR`, | ||||
| _`$XDG_CONFIG_HOME/nvm`_, _`~/.nvm`_, or is installed with homebrew. | ||||
|  | ||||
|   - `node-doc` opens the Node.js online [API documentation][3] in the default | ||||
|     browser. | ||||
|   - `node-info` exposes information about the Node.js environment via the | ||||
|     `$node_info` associative array. | ||||
| ## Variables | ||||
|  | ||||
| Theming | ||||
| ------- | ||||
| - `N_PREFIX` stores the path to [_n_][8] cache. | ||||
|  | ||||
| ## Aliases | ||||
|  | ||||
| ### npm | ||||
|  | ||||
| - `npmi` install a package. | ||||
| - `npml` list installed packages. | ||||
| - `npmo` check for outdated packages. | ||||
| - `npmp` publish a package. | ||||
| - `npmP` remove extraneous packages. | ||||
| - `npmr` run arbitrary package scripts. | ||||
| - `npms` search for packages. | ||||
| - `npmt` test a package. | ||||
| - `npmu` update packages. | ||||
| - `npmx` uninstalls a package. | ||||
|  | ||||
| - `npmci` install a project with a clean slate. | ||||
| - `npmcit` install a project with a clean slate and run tests. | ||||
| - `npmit` install package(s) and run tests. | ||||
|  | ||||
| ## Functions | ||||
|  | ||||
| - `node-doc` opens the Node.js online [API documentation][3] in the default | ||||
|   browser. | ||||
| - `node-info` exposes information about the Node.js environment via the | ||||
|   `$node_info` associative array. | ||||
|  | ||||
| ## Theming | ||||
|  | ||||
| To display the version number of the current Node.js version, define the | ||||
| following style inside the `prompt_name_setup` function. | ||||
|  | ||||
|     # %v - Node.js version. | ||||
|     zstyle ':prezto:module:node:info:version' format 'version:%v' | ||||
| ```sh | ||||
| # %v - Node.js version. | ||||
| zstyle ':prezto:module:node:info:version' format 'version:%v' | ||||
| ``` | ||||
|  | ||||
| Then add `$node_info[version]` to either `$PROMPT` or `$RPROMPT` and call | ||||
| `node-info` in `prompt_name_preexec` hook function. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][4].* | ||||
| _The authors of this module should be contacted via the [issue tracker][4]._ | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|   - [Zeh Rizzatti](https://github.com/zehrizzatti) | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - [Zeh Rizzatti](https://github.com/zehrizzatti) | ||||
| - [Indrajit Raychaudhuri](https://github.com/indrajitr) | ||||
|  | ||||
| [1]: http://nodejs.org | ||||
| [2]: http://npmjs.org | ||||
| [3]: http://nodejs.org/api | ||||
| [4]: https://github.com/sorin-ionescu/prezto/issues | ||||
| [5]: https://github.com/creationix/nvm | ||||
|  | ||||
| [5]: https://github.com/nodenv/nodenv | ||||
| [6]: https://github.com/sstephenson/rbenv | ||||
| [7]: https://github.com/nvm-sh/nvm | ||||
| [8]: https://github.com/tj/n | ||||
|   | ||||
							
								
								
									
										15
									
								
								modules/node/functions/_grunt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								modules/node/functions/_grunt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| #compdef grunt | ||||
| #autoload | ||||
|  | ||||
| # | ||||
| # Grunt completion, delegating to grunt to do all the completion work. | ||||
| # | ||||
| # Authors: | ||||
| #   Indrajit Raychaudhuri <irc@indrajit.com> | ||||
| # | ||||
|  | ||||
| if (( $+commands[grunt] )); then | ||||
|   eval "$(grunt --completion=zsh)" | ||||
|  | ||||
|   _grunt_completion "$@" | ||||
| fi | ||||
							
								
								
									
										15
									
								
								modules/node/functions/_gulp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								modules/node/functions/_gulp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| #compdef gulp | ||||
| #autoload | ||||
|  | ||||
| # | ||||
| # Gulp completion, delegating to gulp to do all the completion work. | ||||
| # | ||||
| # Authors: | ||||
| #   Indrajit Raychaudhuri <irc@indrajit.com> | ||||
| # | ||||
|  | ||||
| if (( $+commands[gulp] )); then | ||||
|   eval "$(gulp --completion=zsh)" | ||||
|  | ||||
|   _gulp_completion "$@" | ||||
| fi | ||||
| @@ -5,6 +5,14 @@ | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| # TODO: Make the sections easier to use. | ||||
| open "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}" | ||||
| # function node-doc { | ||||
|  | ||||
| if [[ -z "$BROWSER" ]]; then | ||||
|   print "$0: no web browser defined" >&2 | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # TODO: Make the sections easier to use. | ||||
| "$BROWSER" "https://nodejs.org/docs/${$(node --version 2> /dev/null)/%-*}/api/all.html#${1}" | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -6,6 +6,8 @@ | ||||
| #   Zeh Rizzatti <zehrizzatti@gmail.com> | ||||
| # | ||||
|  | ||||
| # function node-info { | ||||
|  | ||||
| local version | ||||
| local version_format | ||||
| local version_formatted | ||||
| @@ -13,13 +15,18 @@ local version_formatted | ||||
| unset node_info | ||||
| typeset -gA node_info | ||||
|  | ||||
| if (( $+functions[nvm_version] )); then | ||||
| if (( $+commands[nodenv] )); then | ||||
|   version="${${$(nodenv version)#v}[(w)0]}" | ||||
| elif (( $+functions[nvm_version] )); then | ||||
|   version="${$(nvm_version)#v}" | ||||
| elif (( $+commands[node] )) ; then | ||||
|   version="${$(node -v)#v}" | ||||
| fi | ||||
|  | ||||
| if [[ -n "$version" ]]; then | ||||
| if [[ "$version" != (none|system) ]]; then | ||||
|   zstyle -s ':prezto:module:node:info:version' format 'version_format' | ||||
|   zformat -f version_formatted "$version_format" "v:$version" | ||||
|   node_info[version]="$version_formatted" | ||||
| fi | ||||
|  | ||||
| # } | ||||
|   | ||||
| @@ -1,32 +1,65 @@ | ||||
| # | ||||
| # Loads the Node Version Manager and enables npm completion. | ||||
| # Configures Node local installation, loads version managers, and defines | ||||
| # variables and aliases. | ||||
| # | ||||
| # Authors: | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| #   Zeh Rizzatti <zehrizzatti@gmail.com> | ||||
| #   Indrajit Raychaudhuri <irc@indrajit.com> | ||||
| # | ||||
|  | ||||
| # Load NVM into the shell session. | ||||
| if [[ -s "$HOME/.nvm/nvm.sh" ]]; then | ||||
|   source "$HOME/.nvm/nvm.sh" | ||||
| # Possible lookup locations for manually installed nodenv and nvm. | ||||
| local_nodenv_paths=({$NODENV_ROOT,{$XDG_CONFIG_HOME/,$HOME/.}nodenv}/bin/nodenv(N)) | ||||
| local_nvm_paths=({$NVM_DIR,{$XDG_CONFIG_HOME/,$HOME/.}nvm}/nvm.sh(N)) | ||||
|  | ||||
| # Load manually installed or package manager installed nodenv into the shell | ||||
| # session. | ||||
| if (( $#local_nodenv_paths || $+commands[nodenv] )); then | ||||
|  | ||||
|   # Ensure manually installed nodenv is added to path when present. | ||||
|   [[ -s $local_nodenv_paths[1] ]] && path=($local_nodenv_paths[1]:h $path) | ||||
|  | ||||
|   eval "$(nodenv init - zsh)" | ||||
|  | ||||
| # Load manually installed nvm into the shell session. | ||||
| elif (( $#local_nvm_paths )); then | ||||
|   source "$local_nvm_paths[1]" --no-use | ||||
|  | ||||
| # Load package manager installed nvm into the shell session. | ||||
| elif (( $+commands[brew] )) \ | ||||
|       && [[ -d "${nvm_path::="$(brew --prefix 2> /dev/null)"/opt/nvm}" ]]; then | ||||
|   source "$nvm_path/nvm.sh" --no-use | ||||
| fi | ||||
|  | ||||
| unset local_n{odenv,vm}_paths nvm_path | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if (( ! $+commands[node] )); then | ||||
| if (( ! $+commands[node] && ! $#functions[(i)n(odenv|vm)] )); then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # Load NPM completion. | ||||
| if (( $+commands[npm] )); then | ||||
|   cache_file="${0:h}/cache.zsh" | ||||
| # | ||||
| # Variables | ||||
| # | ||||
|  | ||||
|   if [[ "$commands[npm]" -nt "$cache_file" || ! -s "$cache_file" ]]; then | ||||
|     # npm is slow; cache its output. | ||||
|     npm completion >! "$cache_file" 2> /dev/null | ||||
|   fi | ||||
| N_PREFIX="${XDG_CONFIG_HOME:-$HOME/.config}/n"  # The path to 'n' cache. | ||||
|  | ||||
|   source "$cache_file" | ||||
| # | ||||
| # Aliases | ||||
| # | ||||
|  | ||||
|   unset cache_file | ||||
| fi | ||||
| # npm | ||||
| alias npmi='npm install' | ||||
| alias npml='npm list' | ||||
| alias npmo='npm outdated' | ||||
| alias npmp='npm publish' | ||||
| alias npmP='npm prune' | ||||
| alias npmr='npm run' | ||||
| alias npms='npm search' | ||||
| alias npmt='npm test' | ||||
| alias npmu='npm update' | ||||
| alias npmx='npm uninstall' | ||||
|  | ||||
| alias npmci='npm ci' | ||||
| alias npmcit='npm cit' | ||||
| alias npmit='npm it' | ||||
|   | ||||
| @@ -1,28 +1,24 @@ | ||||
| Ocaml | ||||
| ===== | ||||
| # OCaml | ||||
|  | ||||
| Initializes [Ocaml][1] package management. | ||||
| Initializes [OCaml][1] package management. | ||||
|  | ||||
| OPAM | ||||
| ---- | ||||
| ## OPAM | ||||
|  | ||||
| [OPAM][2] is a package manager for Ocaml. | ||||
| [OPAM][2] is a package manager for OCaml. | ||||
|  | ||||
| This module enables local package installation with OPAM by extending the | ||||
| relevant path and Ocaml variables. | ||||
| relevant path and OCaml variables. | ||||
|  | ||||
| ### Usage | ||||
|  | ||||
| Install packages to your local package directory with `opam install`. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ## Authors | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][3].* | ||||
| _The authors of this module should be contacted via the [issue tracker][3]._ | ||||
|  | ||||
|   - [Sebastian Wiesner](https://github.com/lunaryorn) | ||||
| - [Sebastian Wiesner](https://github.com/lunaryorn) | ||||
|  | ||||
| [1]: http://ocaml.org/ | ||||
| [1]: https://ocaml.org/ | ||||
| [2]: http://opam.ocamlpro.com/ | ||||
| [3]: https://github.com/sorin-ionescu/prezto/issues | ||||
|  | ||||
|   | ||||
| @@ -1,15 +1,14 @@ | ||||
| # | ||||
| # Initializes Ocaml package management. | ||||
| # Initializes OCaml package management. | ||||
| # | ||||
| # Authors: | ||||
| #   Sebastian Wiesner <lunaryorn@gmail.com> | ||||
| # | ||||
|  | ||||
| # Return if requirements are not found. | ||||
| if (( ! $+commands[opam] )); then | ||||
| if [[ ! -f "$HOME/.opam/opam-init/init.zsh" ]]; then | ||||
|   return 1 | ||||
| fi | ||||
|  | ||||
| # Initialize OPAM. | ||||
| eval "$(opam config env)" | ||||
|  | ||||
| source "$HOME/.opam/opam-init/init.zsh" | ||||
|   | ||||
							
								
								
									
										23
									
								
								modules/openstack/functions/os-info
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/openstack/functions/os-info
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| # | ||||
| # Exposes information about the OpenStack environment via the $os_info associative | ||||
| # array. | ||||
| # | ||||
|  | ||||
| # function os-info { | ||||
|  | ||||
| local tenant | ||||
| local tenant_format | ||||
| local tenant_formatted | ||||
|  | ||||
| unset os_info | ||||
| typeset -gA os_info | ||||
|  | ||||
| [[ -n "${OS_PROJECT_NAME+1}" ]] && tenant="${OS_PROJECT_NAME}" | ||||
|  | ||||
| if [[ "$tenant" != (none|) ]]; then | ||||
|   zstyle -s ':prezto:module:openstack:info:tenant' format 'tenant_format' | ||||
|   zformat -f tenant_formatted "$tenant_format" "v:$tenant" | ||||
|   os_info[tenant]="$tenant_formatted" | ||||
| fi | ||||
|  | ||||
| # } | ||||
| @@ -1,35 +1,50 @@ | ||||
| OSX | ||||
| === | ||||
| # OSX | ||||
|  | ||||
| Defines [Mac OS X][1] aliases and functions. | ||||
| Defines [macOS][1] aliases and functions. | ||||
|  | ||||
| Aliases | ||||
| ------- | ||||
| This module must be loaded _before_ the [_`completion`_][2] module so that the | ||||
| provided completion definitions are loaded automatically by _`completion`_ | ||||
| module. | ||||
|  | ||||
|   - `cdf` changes the current working director to the current _Finder_ | ||||
|     directory. | ||||
|   - `pushdf` pushes the current working directory onto the directory queue and | ||||
|   - `ql` quick looks at files. | ||||
|   - `rm-osx-cruft` deletes .DS\_Store, \_\_MACOSX cruft. | ||||
| ## Settings | ||||
|  | ||||
| Functions | ||||
| --------- | ||||
| ### Dash Keyword | ||||
|  | ||||
|   - `manb` opens _man_ pages in [_Bwana.app_][2]. | ||||
|   - `manp` opens _man_ pages in _Preview.app_. | ||||
|   - `pfd` prints the current _Finder_ directory. | ||||
|   - `pfs` prints the current _Finder_ selection. | ||||
|   - `tab` creates a new tab (works in both _Terminal_ and [_iTerm_][3]). | ||||
| To change the keyword used by `mand` to open man pages in [_Dash.app_][3] from | ||||
| its default value of 'manpages', add the following line in | ||||
| _`${ZDOTDIR:-$HOME}/.zpreztorc`_ and replace the **keyword** with the one | ||||
| configured in [_Dash.app_][3]. | ||||
|  | ||||
| Authors | ||||
| ------- | ||||
| ```sh | ||||
| zstyle ':prezto:module:osx:man' dash-keyword 'keyword' | ||||
| ``` | ||||
|  | ||||
| *The authors of this module should be contacted via the [issue tracker][4].* | ||||
| ## Aliases | ||||
|  | ||||
|   - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
| - `cdf` changes the current working director to the current _Finder_ directory. | ||||
| - `pushdf` pushes the current working directory onto the directory queue and | ||||
|   changes the current working director to the current _Finder_ directory. | ||||
|  | ||||
| [1]: http://www.apple.com/macosx/ | ||||
| [2]: http://bruji.com/bwana/ | ||||
| [3]: http://www.iterm2.com/ | ||||
| [4]: https://github.com/sorin-ionescu/prezto/issues | ||||
| ## Functions | ||||
|  | ||||
| - `mand` opens _man_ pages in [_Dash.app_][3]. | ||||
| - `manp` opens _man_ pages in _Preview.app_. | ||||
| - `pfd` prints the current _Finder_ directory. | ||||
| - `pfs` prints the current _Finder_ selection. | ||||
| - `tab` creates a new tab (works in both _Terminal_ and [_iTerm.app_][4]). | ||||
| - `ql` previews files in Quick Look. | ||||
| - `osx-rm-dir-metadata` deletes _`.DS_Store`_, _`__MACOSX`_ cruft. | ||||
| - `osx-ls-download-history` displays the macOS download history. | ||||
| - `osx-rm-download-history` deletes the macOS download history. | ||||
|  | ||||
| ## Authors | ||||
|  | ||||
| _The authors of this module should be contacted via the [issue tracker][5]._ | ||||
|  | ||||
| - [Sorin Ionescu](https://github.com/sorin-ionescu) | ||||
|  | ||||
| [1]: https://www.apple.com/macos/ | ||||
| [2]: ../completion#readme | ||||
| [3]: https://kapeli.com/dash | ||||
| [4]: https://www.iterm2.com/ | ||||
| [5]: https://github.com/sorin-ionescu/prezto/issues | ||||
|   | ||||
| @@ -1,12 +1,11 @@ | ||||
| #compdef manb manp | ||||
| #compdef mand manp | ||||
| #autoload | ||||
| 
 | ||||
| # | ||||
| # Completes manb and manp. | ||||
| # Completes mand and manp. | ||||
| # | ||||
| # Authors: | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
| 
 | ||||
| _man | ||||
| 
 | ||||
| @@ -1,24 +0,0 @@ | ||||
| # | ||||
| # Opens man pages in Bwana.app. | ||||
| # | ||||
| # Authors: | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| function manb { | ||||
|   local page | ||||
|   if (( $# > 0 )); then | ||||
|     for page in "$@"; do | ||||
|       open "man:$page" 2>/dev/null | ||||
|       if (( $? != 0 )); then | ||||
|         print "$0: Bwana is not installed" >&2 | ||||
|         break | ||||
|       fi | ||||
|     done | ||||
|   else | ||||
|     print 'What manual page do you want?' >&2 | ||||
|   fi | ||||
| } | ||||
|  | ||||
| manb "$@" | ||||
|  | ||||
							
								
								
									
										23
									
								
								modules/osx/functions/mand
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/osx/functions/mand
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| # | ||||
| # Opens man pages in Dash.app. | ||||
| # | ||||
| # Authors: | ||||
| #   Sorin Ionescu <sorin.ionescu@gmail.com> | ||||
| # | ||||
|  | ||||
| function mand { | ||||
|   if (( $# > 0 )); then | ||||
|     zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages' | ||||
|     open "dash://$dashkw%3A$1" 2> /dev/null | ||||
|     if (( $? != 0 )); then | ||||
|       print "$0: Dash is not installed" >&2 | ||||
|       break | ||||
|     fi | ||||
|   else | ||||
|     print 'What manual page do you want?' >&2 | ||||
|   fi | ||||
|  | ||||
|   unset dashkw | ||||
| } | ||||
|  | ||||
| mand "$@" | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user