mirror of
				https://github.com/dcarrillo/prezto.git
				synced 2025-11-04 07:29:09 +00:00 
			
		
		
		
	Compare commits
	
		
			655 Commits
		
	
	
		
			pull/599-t
			...
			865cc2ef02
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 865cc2ef02 | |||
| 
						 | 
					5928fa84cc | ||
| 365a228b7f | |||
| da682405a1 | |||
| 
						 | 
					1875ddb52c | ||
| 
						 | 
					b2bc66ce9d | ||
| 
						 | 
					3a471a05f9 | ||
| 3d3346be0a | |||
| 2676780766 | |||
| 
						 | 
					12df1363ce | ||
| 7e1c7e3c7a | |||
| 1431e4e8c2 | |||
| 
						 | 
					dea85a0740 | ||
| 
						 | 
					3dc3fa7f8c | ||
| 
						 | 
					c857e809c3 | ||
| 
						 | 
					ac1c39d2e1 | ||
| 
						 | 
					2c66331316 | ||
| 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 | 
							
								
								
									
										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,41 +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.
 | 
			
		||||
 | 
			
		||||
### 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.
 | 
			
		||||
- 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
 | 
			
		||||
 | 
			
		||||
This project follows the [Google Shell Style Guide][5] when possible. However,
 | 
			
		||||
there are a number of additional things to keep in mind.
 | 
			
		||||
 | 
			
		||||
- 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.
 | 
			
		||||
 | 
			
		||||
### 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
 | 
			
		||||
### Themes
 | 
			
		||||
 | 
			
		||||
- A screenshots section must be present in the file header.
 | 
			
		||||
   - The pull request description must have [embedded screenshots][5].
 | 
			
		||||
- 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
 | 
			
		||||
							
								
								
									
										186
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										186
									
								
								README.md
									
									
									
									
									
								
							@@ -1,116 +1,168 @@
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
### Manual
 | 
			
		||||
 | 
			
		||||
Prezto will work with any recent release of Zsh, but the minimum required
 | 
			
		||||
version is 4.3.17.
 | 
			
		||||
version is **4.3.11**.
 | 
			
		||||
 | 
			
		||||
  1. Launch Zsh:
 | 
			
		||||
01. Launch Zsh:
 | 
			
		||||
 | 
			
		||||
    ```console
 | 
			
		||||
    zsh
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
  2. Clone the repository:
 | 
			
		||||
02. Clone the repository:
 | 
			
		||||
 | 
			
		||||
    ```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>
 | 
			
		||||
 | 
			
		||||
      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.
 | 
			
		||||
 | 
			
		||||
      - Clone the repository:
 | 
			
		||||
 | 
			
		||||
        ```console
 | 
			
		||||
        git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto"
 | 
			
		||||
        ```
 | 
			
		||||
 | 
			
		||||
      - 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
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
  4. Set Zsh as your default shell:
 | 
			
		||||
    **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
 | 
			
		||||
    ```
 | 
			
		||||
 | 
			
		||||
  5. Open a new Zsh terminal window or tab.
 | 
			
		||||
05. Open a new Zsh terminal window or tab.
 | 
			
		||||
 | 
			
		||||
### [Fig](https://fig.io)
 | 
			
		||||
 | 
			
		||||
Fig adds apps, shortcuts, and autocomplete to your existing terminal.
 | 
			
		||||
 | 
			
		||||
Install `prezto` in just one click.
 | 
			
		||||
 | 
			
		||||
<a href="https://fig.io/plugins/other/prezto" target="_blank"><img src="https://fig.io/badges/install-with-fig.svg" /></a>
 | 
			
		||||
 | 
			
		||||
### Troubleshooting
 | 
			
		||||
 | 
			
		||||
If you are not able to find certain commands after switching to *Prezto*,
 | 
			
		||||
modify the `PATH` variable in *~/.zprofile* 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]
 | 
			
		||||
    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-2011 Robby Russell and contributors.
 | 
			
		||||
Copyright (c) 2011-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
 | 
			
		||||
[8]: https://grml.org/zsh/zsh-lovers.html
 | 
			
		||||
[9]: modules#readme
 | 
			
		||||
[10]: runcoms#readme
 | 
			
		||||
[11]: modules/git#readme
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										118
									
								
								init.zsh
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								init.zsh
									
									
									
									
									
								
							@@ -10,13 +10,62 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Check for the minimum supported version.
 | 
			
		||||
min_zsh_version='4.3.17'
 | 
			
		||||
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,14 +73,46 @@ 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[@]")
 | 
			
		||||
 | 
			
		||||
  # Load Prezto modules.
 | 
			
		||||
  for pmodule in "$pmodules[@]"; do
 | 
			
		||||
    if zstyle -t ":prezto:module:$pmodule" loaded 'yes' 'no'; then
 | 
			
		||||
      continue
 | 
			
		||||
    else
 | 
			
		||||
      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=(${pmodules:+${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions(/FN)} $fpath)
 | 
			
		||||
      fpath=(${pmodule_location}/functions(-/FN) $fpath)
 | 
			
		||||
 | 
			
		||||
      function {
 | 
			
		||||
        local pfunction
 | 
			
		||||
@@ -40,28 +121,22 @@ function pmodload {
 | 
			
		||||
        setopt LOCAL_OPTIONS EXTENDED_GLOB
 | 
			
		||||
 | 
			
		||||
        # Load Prezto functions.
 | 
			
		||||
    for pfunction in ${ZDOTDIR:-$HOME}/.zprezto/modules/${^pmodules}/functions/$~pfunction_glob; do
 | 
			
		||||
        for pfunction in ${pmodule_location}/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"
 | 
			
		||||
      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"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,194 +1,166 @@
 | 
			
		||||
Modules
 | 
			
		||||
=======
 | 
			
		||||
# Modules
 | 
			
		||||
 | 
			
		||||
Load modules in *zpreztorc*. The order matters.
 | 
			
		||||
Load modules in _`${ZDOTDIR:-$HOME}/.zpreztorc`_. The order matters.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
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,40 +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.
 | 
			
		||||
 | 
			
		||||
## Functions
 | 
			
		||||
 | 
			
		||||
- `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
 | 
			
		||||
-----------------
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
Specifically on macOS, [The Unarchiver][2] provides a similar command line tool
 | 
			
		||||
which doesn't depend on a number of other programs being installed.
 | 
			
		||||
 | 
			
		||||
## 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]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[1]: ../completion#readme
 | 
			
		||||
[2]: https://theunarchiver.com/command-line
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 
 | 
			
		||||
@@ -10,4 +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,4 +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
 | 
			
		||||
@@ -39,11 +41,14 @@ 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
 | 
			
		||||
@@ -53,3 +58,5 @@ 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 -d'
 | 
			
		||||
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:l" 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 - ;;
 | 
			
		||||
    (*.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 x -ad "$1" \
 | 
			
		||||
      || rar x -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 ..
 | 
			
		||||
    ;;
 | 
			
		||||
    (*)
 | 
			
		||||
@@ -76,3 +107,5 @@ while (( $# > 0 )); do
 | 
			
		||||
  (( $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
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
							
								
								
									
										185
									
								
								modules/aws/init.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								modules/aws/init.zsh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,185 @@
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
    local credentials
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
        credentials=$(aws-export-credentials --env-export 2>&1)
 | 
			
		||||
 | 
			
		||||
        if [[ $credentials =~ "has expired" ]]; then
 | 
			
		||||
            aws sso login
 | 
			
		||||
            credentials=$(aws-export-credentials --env-export)
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        eval $credentials
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function aws_deactivate_profile {
 | 
			
		||||
    echo "Deactivating aws profile..."
 | 
			
		||||
    unset -m "AWS_*"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,15 +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].
 | 
			
		||||
 | 
			
		||||
## 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,14 +3,20 @@
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Joseph Jon Booker <joe@neoturbine.net>
 | 
			
		||||
#   Indrajit Raychaudhuri <irc+code@indrajit.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Load command-not-found on Debian-based distributions.
 | 
			
		||||
if [[ -s '/etc/zsh_command_not_found' ]]; then
 | 
			
		||||
  source '/etc/zsh_command_not_found'
 | 
			
		||||
if [[ -s /etc/zsh_command_not_found ]]; then
 | 
			
		||||
  source /etc/zsh_command_not_found
 | 
			
		||||
# 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'
 | 
			
		||||
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::="${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}/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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,23 +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'.
 | 
			
		||||
 | 
			
		||||
## 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: 08afea0e23...0331b2908f
									
								
							@@ -7,15 +7,23 @@
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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 on macOS when available.
 | 
			
		||||
if (( $+commands[brew] )); then
 | 
			
		||||
  brew_prefix=${HOMEBREW_PREFIX:-${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}}
 | 
			
		||||
  # $HOMEBREW_PREFIX defaults to $HOMEBREW_REPOSITORY but is explicitly set to
 | 
			
		||||
  # /usr/local when $HOMEBREW_REPOSITORY is /usr/local/Homebrew.
 | 
			
		||||
  # https://github.com/Homebrew/brew/blob/2a850e02d8f2dedcad7164c2f4b95d340a7200bb/bin/brew#L66-L69
 | 
			
		||||
  [[ $brew_prefix == '/usr/local/Homebrew' ]] && brew_prefix=$brew_prefix:h
 | 
			
		||||
  fpath=($brew_prefix/opt/curl/share/zsh/site-functions(/N) $fpath)
 | 
			
		||||
  unset brew_prefix
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Options
 | 
			
		||||
@@ -24,19 +32,52 @@ autoload -Uz compinit && compinit -i
 | 
			
		||||
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_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 +97,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 +106,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 +117,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,13 +128,16 @@ 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))"}%%\#*}
 | 
			
		||||
  ${=${=${=${${(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 }:#*\**}:#*\?*}}
 | 
			
		||||
)'
 | 
			
		||||
 | 
			
		||||
@@ -116,7 +159,7 @@ 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,command -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
 | 
			
		||||
@@ -139,9 +182,8 @@ 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:]]##)##' '*@*'
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,8 @@
 | 
			
		||||
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`.
 | 
			
		||||
@@ -12,22 +10,19 @@ Options
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
- `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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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 >>.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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,22 +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)
 | 
			
		||||
 | 
			
		||||
[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 \
 | 
			
		||||
@@ -23,3 +25,5 @@ rm "$clone_script"
 | 
			
		||||
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*)
 | 
			
		||||
@@ -34,3 +36,5 @@ Commands:
 | 
			
		||||
EOF
 | 
			
		||||
  ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -6,9 +6,13 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function deb-kbuild {
 | 
			
		||||
 | 
			
		||||
make-kpkg clean
 | 
			
		||||
MAKEFLAGS='' time fakeroot make-kpkg \
 | 
			
		||||
  --append-to-version '-custom' \
 | 
			
		||||
  --revision "$(date +"%Y%m%d")" \
 | 
			
		||||
  kernel_image \
 | 
			
		||||
  kernel_headers
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -54,4 +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,61 +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`_.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:editor:info:completing' format '...'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then add `$editor_info[context]`, where context is *keymap*, *insert*, or
 | 
			
		||||
*overwrite*, to `$PROMPT` or `$RPROMPT`.
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
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/oh-my-zsh/issues
 | 
			
		||||
[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
 | 
			
		||||
@@ -31,6 +30,8 @@ key_info=(
 | 
			
		||||
  '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'    "^?"
 | 
			
		||||
@@ -78,10 +79,21 @@ 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 {
 | 
			
		||||
  # 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
 | 
			
		||||
@@ -103,12 +115,28 @@ function editor-info {
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    unset REPLY
 | 
			
		||||
 | 
			
		||||
  zle reset-prompt
 | 
			
		||||
  zle -R
 | 
			
		||||
    zle zle-reset-prompt
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
zle -N editor-info
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
@@ -186,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
 | 
			
		||||
@@ -201,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
 | 
			
		||||
 | 
			
		||||
@@ -208,9 +273,11 @@ bindkey -d
 | 
			
		||||
# Emacs Key Bindings
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
for key in "$key_info[Escape]"{B,b} "${(s: :)key_info[ControlLeft]}"
 | 
			
		||||
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]}"
 | 
			
		||||
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.
 | 
			
		||||
@@ -236,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
 | 
			
		||||
@@ -255,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
 | 
			
		||||
@@ -305,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
 | 
			
		||||
@@ -326,4 +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,8 +10,7 @@ and Emacs configuration.
 | 
			
		||||
This module prepends the Carton directory to the path variable to enable the
 | 
			
		||||
execution of `carton`.
 | 
			
		||||
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
### Carton
 | 
			
		||||
 | 
			
		||||
@@ -22,10 +19,9 @@ Aliases
 | 
			
		||||
- `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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,25 +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.
 | 
			
		||||
 | 
			
		||||
### Jobs
 | 
			
		||||
 | 
			
		||||
- `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]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[1]: ../../runcoms#zshenv
 | 
			
		||||
[2]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 
 | 
			
		||||
@@ -9,19 +9,36 @@
 | 
			
		||||
# Smart URLs
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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 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
 | 
			
		||||
#
 | 
			
		||||
 
 | 
			
		||||
@@ -1,32 +1,34 @@
 | 
			
		||||
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
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
`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.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
- `j` changes the current working directory interactively.
 | 
			
		||||
 | 
			
		||||
Completion
 | 
			
		||||
----------
 | 
			
		||||
## Completion
 | 
			
		||||
 | 
			
		||||
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>.
 | 
			
		||||
`,,d` at the end of a comma-separated query then hit <kbd>TAB</kbd>.
 | 
			
		||||
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][5].*
 | 
			
		||||
_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)
 | 
			
		||||
@@ -35,4 +37,5 @@ Authors
 | 
			
		||||
[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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,72 +1,98 @@
 | 
			
		||||
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`.
 | 
			
		||||
 | 
			
		||||
### 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.
 | 
			
		||||
- `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.
 | 
			
		||||
  - `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.
 | 
			
		||||
- `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
 | 
			
		||||
### Commit (c)
 | 
			
		||||
 | 
			
		||||
- `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*.
 | 
			
		||||
  _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 various types of objects.
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
### Conflict
 | 
			
		||||
### Conflict (C)
 | 
			
		||||
 | 
			
		||||
- `gCl` lists unmerged files.
 | 
			
		||||
- `gCa` adds unmerged file contents to the index.
 | 
			
		||||
@@ -76,7 +102,7 @@ Aliases
 | 
			
		||||
- `gCt` checks out their changes for unmerged paths.
 | 
			
		||||
- `gCT` checks out their changes for all unmerged paths.
 | 
			
		||||
 | 
			
		||||
### Data
 | 
			
		||||
### Data (d)
 | 
			
		||||
 | 
			
		||||
- `gd` displays information about files in the index and the work tree.
 | 
			
		||||
- `gdc` lists cached files.
 | 
			
		||||
@@ -86,14 +112,90 @@ Aliases
 | 
			
		||||
- `gdk` lists killed files.
 | 
			
		||||
- `gdi` lists ignored files.
 | 
			
		||||
 | 
			
		||||
### Fetch
 | 
			
		||||
### Fetch (f)
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
### Grep
 | 
			
		||||
### Flow (F)
 | 
			
		||||
 | 
			
		||||
- `gFi` is short for `git flow init`
 | 
			
		||||
 | 
			
		||||
#### Feature (Ff)
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
 | 
			
		||||
#### Bugfix (Fb)
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
 | 
			
		||||
#### Release (Fl)
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
 | 
			
		||||
#### Hotfix (Fh)
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
 | 
			
		||||
#### Support (Fs)
 | 
			
		||||
 | 
			
		||||
- `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`
 | 
			
		||||
 | 
			
		||||
### Grep (g)
 | 
			
		||||
 | 
			
		||||
- `gg` displays lines matching a pattern.
 | 
			
		||||
- `ggi` displays lines matching a pattern ignoring case.
 | 
			
		||||
@@ -102,19 +204,21 @@ Aliases
 | 
			
		||||
- `ggv` displays lines not matching a pattern.
 | 
			
		||||
- `ggw` displays lines matching a pattern at word boundary.
 | 
			
		||||
 | 
			
		||||
### Index
 | 
			
		||||
### Index (i)
 | 
			
		||||
 | 
			
		||||
- `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).
 | 
			
		||||
 | 
			
		||||
### Log
 | 
			
		||||
### Log (l)
 | 
			
		||||
 | 
			
		||||
- `gl` displays the log.
 | 
			
		||||
- `gls` displays the stats log.
 | 
			
		||||
@@ -123,8 +227,9 @@ Aliases
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
### Merge
 | 
			
		||||
### Merge (m)
 | 
			
		||||
 | 
			
		||||
- `gm` joins two or more development histories together.
 | 
			
		||||
- `gmC` joins two or more development histories together but does not commit.
 | 
			
		||||
@@ -133,26 +238,29 @@ Aliases
 | 
			
		||||
- `gma` aborts the conflict resolution, and reconstructs the pre-merge state.
 | 
			
		||||
- `gmt` runs the merge conflict resolution tools to resolve conflicts.
 | 
			
		||||
 | 
			
		||||
### Push
 | 
			
		||||
### Push (p)
 | 
			
		||||
 | 
			
		||||
- `gp` updates remote refs along with associated objects.
 | 
			
		||||
  - `gpf` forcefully 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.
 | 
			
		||||
- `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
 | 
			
		||||
### Rebase (r)
 | 
			
		||||
 | 
			
		||||
  - `gr` forward-ports local commits to the updated upstream head.
 | 
			
		||||
- `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
 | 
			
		||||
### Remote (R)
 | 
			
		||||
 | 
			
		||||
- `gR` manages tracked repositories.
 | 
			
		||||
- `gRl` lists remote names and their URLs.
 | 
			
		||||
@@ -164,7 +272,7 @@ Aliases
 | 
			
		||||
- `gRs` displays information about a given remote.
 | 
			
		||||
- `gRb` opens a remote on [GitHub][3] in the default browser.
 | 
			
		||||
 | 
			
		||||
### Stash
 | 
			
		||||
### Stash (s)
 | 
			
		||||
 | 
			
		||||
- `gs` stashes the changes of the dirty working directory.
 | 
			
		||||
- `gsa` applies the changes recorded in a stash to the working directory.
 | 
			
		||||
@@ -179,7 +287,7 @@ Aliases
 | 
			
		||||
- `gsS` stashes the changes of the dirty working directory interactively.
 | 
			
		||||
- `gsw` stashes the changes of the dirty working directory retaining the index.
 | 
			
		||||
 | 
			
		||||
### Submodule
 | 
			
		||||
### Submodule (S)
 | 
			
		||||
 | 
			
		||||
- `gS` initializes, updates, or inspects submodules.
 | 
			
		||||
- `gSa` adds given a repository as a submodule.
 | 
			
		||||
@@ -189,11 +297,18 @@ Aliases
 | 
			
		||||
- `gSl` lists the commits of all submodules.
 | 
			
		||||
- `gSm` moves a submodule.
 | 
			
		||||
- `gSs` synchronizes submodules' remote URL to the value specified in
 | 
			
		||||
    .gitmodules.
 | 
			
		||||
  _.gitmodules_.
 | 
			
		||||
- `gSu` fetches and merges the latest changes for all submodule.
 | 
			
		||||
- `gSx` removes a submodule.
 | 
			
		||||
 | 
			
		||||
### Working directory
 | 
			
		||||
### 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.
 | 
			
		||||
@@ -212,8 +327,10 @@ Aliases
 | 
			
		||||
 | 
			
		||||
The following aliases may shadow system commands:
 | 
			
		||||
 | 
			
		||||
- `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][5].
 | 
			
		||||
- `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,14 +338,13 @@ 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-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.
 | 
			
		||||
@@ -238,97 +354,111 @@ Functions
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
```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:
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```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.
 | 
			
		||||
 | 
			
		||||
```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)
 | 
			
		||||
 | 
			
		||||
[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,7 +8,6 @@
 | 
			
		||||
#
 | 
			
		||||
# Settings
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Log
 | 
			
		||||
zstyle -s ':prezto:module:git:log:medium' format '_git_log_medium_format' \
 | 
			
		||||
@@ -26,38 +25,55 @@ zstyle -s ':prezto:module:git:status:ignore' submodules '_git_status_ignore_subm
 | 
			
		||||
# Aliases
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
if ! zstyle -t ':prezto:module:git:alias' skip; then
 | 
			
		||||
  # Git
 | 
			
		||||
  alias g='git'
 | 
			
		||||
 | 
			
		||||
  # Branch (b)
 | 
			
		||||
  alias gb='git branch'
 | 
			
		||||
  alias gba='git branch --all --verbose'
 | 
			
		||||
  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 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 -a'
 | 
			
		||||
  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 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 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 --'
 | 
			
		||||
@@ -76,9 +92,76 @@ alias gdi='git status --porcelain --short --ignored | sed -n "s/^!! //p"'
 | 
			
		||||
 | 
			
		||||
  # 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'
 | 
			
		||||
 | 
			
		||||
  # 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'
 | 
			
		||||
 | 
			
		||||
  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'
 | 
			
		||||
 | 
			
		||||
  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'
 | 
			
		||||
 | 
			
		||||
  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'
 | 
			
		||||
 | 
			
		||||
  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'
 | 
			
		||||
 | 
			
		||||
  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'
 | 
			
		||||
 | 
			
		||||
  # Grep (g)
 | 
			
		||||
  alias gg='git grep'
 | 
			
		||||
@@ -94,19 +177,22 @@ 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 -rf --cached'
 | 
			
		||||
  alias giX='git rm -r --force --cached'
 | 
			
		||||
 | 
			
		||||
  # 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 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'
 | 
			
		||||
 | 
			
		||||
  # Merge (m)
 | 
			
		||||
  alias gm='git merge'
 | 
			
		||||
@@ -117,7 +203,8 @@ alias gmt='git mergetool'
 | 
			
		||||
 | 
			
		||||
  # Push (p)
 | 
			
		||||
  alias gp='git push'
 | 
			
		||||
alias gpf='git push --force'
 | 
			
		||||
  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'
 | 
			
		||||
@@ -165,17 +252,24 @@ 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 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 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 gwc='git clean --dry-run'
 | 
			
		||||
  alias gwC='git clean --force'
 | 
			
		||||
  alias gwx='git rm -r'
 | 
			
		||||
alias gwX='git rm -rf'
 | 
			
		||||
  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,7 +39,7 @@ 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
 | 
			
		||||
 
 | 
			
		||||
@@ -8,4 +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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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-
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
@@ -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,7 +18,7 @@ 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-
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
@@ -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/}"
 | 
			
		||||
@@ -18,3 +20,5 @@ if [[ -n "$ref" ]]; then
 | 
			
		||||
else
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,16 +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"
 | 
			
		||||
@@ -14,3 +16,5 @@ else
 | 
			
		||||
  print "$0: not a repository: $PWD" >&2
 | 
			
		||||
  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
 | 
			
		||||
@@ -56,3 +58,5 @@ else
 | 
			
		||||
  print "$0: not a Git repository or remote not set" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,18 +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,12 +222,19 @@ 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
 | 
			
		||||
  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
 | 
			
		||||
 | 
			
		||||
  # Format action.
 | 
			
		||||
  zstyle -s ':prezto:module:git:info:action' format 'action_format'
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
@@ -14,3 +16,5 @@ else
 | 
			
		||||
  print "$0: not a repository work tree: $PWD" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								modules/git/functions/git-squash
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								modules/git/functions/git-squash
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#
 | 
			
		||||
# Performs a "dirty" squash
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Daniel Carrillo <daniel.carrillo@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function git-squash {
 | 
			
		||||
 | 
			
		||||
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 [ -z "$2" ]; then
 | 
			
		||||
  print "Usage: $0 <base branch> \"commit message\"" >&2
 | 
			
		||||
  return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
local bbranch=$1
 | 
			
		||||
local message=$2
 | 
			
		||||
local cbranch=$(git branch --show-current)
 | 
			
		||||
 | 
			
		||||
git reset $(git merge-base $bbranch $cbranch)
 | 
			
		||||
git add -A
 | 
			
		||||
git commit -m "$message"
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
@@ -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,10 +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,18 +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,6 +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,16 +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,23 +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,5 +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,32 +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.
 | 
			
		||||
 | 
			
		||||
```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
 | 
			
		||||
[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,16 +44,18 @@ _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
 | 
			
		||||
 
 | 
			
		||||
@@ -1,26 +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`_:
 | 
			
		||||
 | 
			
		||||
```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)
 | 
			
		||||
 | 
			
		||||
[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,30 +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:-/tmp}/gpg-agent.env"
 | 
			
		||||
_gpg_agent_conf="${GNUPGHOME:-$HOME/.gnupg}/gpg-agent.conf"
 | 
			
		||||
_gpg_agent_env="${XDG_CACHE_HOME:-$HOME/.cache}/prezto/gpg-agent.env"
 | 
			
		||||
 | 
			
		||||
# Start gpg-agent if not started.
 | 
			
		||||
if [[ -z "$GPG_AGENT_INFO" ]]; then
 | 
			
		||||
  # Export environment variables.
 | 
			
		||||
# Load environment variables from previous run
 | 
			
		||||
source "$_gpg_agent_env" 2> /dev/null
 | 
			
		||||
 | 
			
		||||
# Start gpg-agent if not started.
 | 
			
		||||
  if ! ps -U "$USER" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then
 | 
			
		||||
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.
 | 
			
		||||
 
 | 
			
		||||
@@ -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,12 +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)
 | 
			
		||||
 | 
			
		||||
[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,23 +1,25 @@
 | 
			
		||||
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-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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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".
 | 
			
		||||
@@ -29,3 +29,28 @@ function coalesce {
 | 
			
		||||
  done
 | 
			
		||||
  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,61 +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`_:
 | 
			
		||||
 | 
			
		||||
```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`_:
 | 
			
		||||
 | 
			
		||||
```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`_:
 | 
			
		||||
 | 
			
		||||
```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`_:
 | 
			
		||||
 | 
			
		||||
```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)
 | 
			
		||||
 | 
			
		||||
[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: 9f9fc7d550...0f80b8eb33
									
								
							@@ -10,7 +10,9 @@
 | 
			
		||||
pmodload 'editor'
 | 
			
		||||
 | 
			
		||||
# Source module files.
 | 
			
		||||
if (( ! $+functions[history-substring-search-up] )); then
 | 
			
		||||
  source "${0:h}/external/zsh-history-substring-search.zsh" || return 1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Search
 | 
			
		||||
@@ -54,4 +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
 | 
			
		||||
 | 
			
		||||
  unset keymap
 | 
			
		||||
fi
 | 
			
		||||
 
 | 
			
		||||
@@ -1,43 +1,79 @@
 | 
			
		||||
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.
 | 
			
		||||
- `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_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
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
- `history-stat` lists the ten most used commands
 | 
			
		||||
 | 
			
		||||
Authors
 | 
			
		||||
-------
 | 
			
		||||
## Settings
 | 
			
		||||
 | 
			
		||||
*The authors of this module should be contacted via the [issue tracker][2].*
 | 
			
		||||
### histfile
 | 
			
		||||
 | 
			
		||||
Can be configured either by setting HISTFILE manually before loading this
 | 
			
		||||
module or by using zstyle:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history' histfile "<file_name>"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
defaults to "${ZDOTDIR:-$HOME}/.zsh_history".
 | 
			
		||||
 | 
			
		||||
### histsize
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history' histsize <number>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
defaults to 10000.
 | 
			
		||||
 | 
			
		||||
### savehist
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:history' savehist <number>
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
defaults to histsize
 | 
			
		||||
 | 
			
		||||
## Authors
 | 
			
		||||
 | 
			
		||||
_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]: http://zsh.sourceforge.net/Guide/zshguide02.html#l16
 | 
			
		||||
[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,46 @@ 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
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
zstyle -s ':prezto:module:history' histfile '_pmh_histfile' || _pmh_histfile="${HISTFILE:-${ZDOTDIR:-$HOME}/.zsh_history}"
 | 
			
		||||
zstyle -s ':prezto:module:history' histsize '_pmh_histsize' || _pmh_histsize=10000
 | 
			
		||||
zstyle -s ':prezto:module:history' savehist '_pmh_savehist' || _pmh_savehist=${_pmh_histsize}
 | 
			
		||||
HISTFILE="${_pmh_histfile}"  # The path to the history file.
 | 
			
		||||
HISTSIZE="${_pmh_histsize}"  # The maximum number of events to save in the internal history.
 | 
			
		||||
SAVEHIST="${_pmh_savehist}"  # The maximum number of events to save in the history file.
 | 
			
		||||
unset _pmh_{hist{file,size},savehist}
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# 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,36 +1,41 @@
 | 
			
		||||
Homebrew
 | 
			
		||||
========
 | 
			
		||||
# Homebrew
 | 
			
		||||
 | 
			
		||||
Defines Homebrew aliases.
 | 
			
		||||
Defines Homebrew specific environment variables and aliases.
 | 
			
		||||
 | 
			
		||||
Aliases
 | 
			
		||||
-------
 | 
			
		||||
## Variables
 | 
			
		||||
 | 
			
		||||
### Homebrew
 | 
			
		||||
Execute the following to list the environment variables loaded in the shell:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
brew shellenv
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
### Homebrew Core
 | 
			
		||||
 | 
			
		||||
- `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 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 Homebrew and outdated brews.
 | 
			
		||||
  - `brewu` upgrades Homebrew.
 | 
			
		||||
- `brewu` upgrades outdated formulae.
 | 
			
		||||
- `brewx` uninstalls a formula.
 | 
			
		||||
 | 
			
		||||
### Homebrew Cask
 | 
			
		||||
 | 
			
		||||
  - `cask` is aliased to `brew cask`.
 | 
			
		||||
  - `caskc` cleans up old cached downloads.
 | 
			
		||||
  - `caskC` cleans up all cached downloads.
 | 
			
		||||
- `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
 | 
			
		||||
-------
 | 
			
		||||
## 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)
 | 
			
		||||
- [Griffin Yourick](https://github.com/tough-griff)
 | 
			
		||||
 
 | 
			
		||||
@@ -5,30 +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 cask='brew cask'
 | 
			
		||||
alias caskc='brew cask cleanup --outdated'
 | 
			
		||||
alias caskC='brew cask cleanup'
 | 
			
		||||
alias caski='brew cask install'
 | 
			
		||||
alias caskl='brew cask list'
 | 
			
		||||
alias casks='brew cask search'
 | 
			
		||||
alias caskx='brew cask uninstall'
 | 
			
		||||
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,10 +1,8 @@
 | 
			
		||||
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.
 | 
			
		||||
@@ -14,10 +12,9 @@ Aliases
 | 
			
		||||
- `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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,45 +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.
 | 
			
		||||
 | 
			
		||||
## Variables
 | 
			
		||||
 | 
			
		||||
- `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
 | 
			
		||||
-------
 | 
			
		||||
## Theming
 | 
			
		||||
 | 
			
		||||
To display the version number of the current Node.js version, define the
 | 
			
		||||
following style inside the `prompt_name_setup` function.
 | 
			
		||||
 | 
			
		||||
```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)
 | 
			
		||||
- [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,10 +5,14 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# 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" "http://nodejs.org/docs/$(node --version | sed 's/-.*//')/api/all.html#${1}"
 | 
			
		||||
"$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,12 +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 [[ "$version" == (none|) ]]; 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,31 +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,10 +1,8 @@
 | 
			
		||||
OCaml
 | 
			
		||||
=====
 | 
			
		||||
# OCaml
 | 
			
		||||
 | 
			
		||||
Initializes [OCaml][1] package management.
 | 
			
		||||
 | 
			
		||||
OPAM
 | 
			
		||||
----
 | 
			
		||||
## OPAM
 | 
			
		||||
 | 
			
		||||
[OPAM][2] is a package manager for OCaml.
 | 
			
		||||
 | 
			
		||||
@@ -15,13 +13,12 @@ relevant path and OCaml variables.
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
[1]: http://ocaml.org/
 | 
			
		||||
[1]: https://ocaml.org/
 | 
			
		||||
[2]: http://opam.ocamlpro.com/
 | 
			
		||||
[3]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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,37 +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.
 | 
			
		||||
## Settings
 | 
			
		||||
 | 
			
		||||
### Dash Keyword
 | 
			
		||||
 | 
			
		||||
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].
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Aliases
 | 
			
		||||
 | 
			
		||||
- `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.
 | 
			
		||||
 | 
			
		||||
Functions
 | 
			
		||||
---------
 | 
			
		||||
## Functions
 | 
			
		||||
 | 
			
		||||
  - `mand` opens _man_ pages in [_Dash.app_][2].
 | 
			
		||||
- `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_][3]).
 | 
			
		||||
- `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 Mac OS X download history.
 | 
			
		||||
  - `osx-rm-download-history` deletes the Mac OS X download history.
 | 
			
		||||
- `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
 | 
			
		||||
-------
 | 
			
		||||
## 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][5]._
 | 
			
		||||
 | 
			
		||||
- [Sorin Ionescu](https://github.com/sorin-ionescu)
 | 
			
		||||
 | 
			
		||||
[1]: http://www.apple.com/macosx/
 | 
			
		||||
[2]: http://kapeli.com/dash
 | 
			
		||||
[3]: http://www.iterm2.com/
 | 
			
		||||
[4]: https://github.com/sorin-ionescu/prezto/issues
 | 
			
		||||
[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
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,8 @@
 | 
			
		||||
 | 
			
		||||
function mand {
 | 
			
		||||
  if (( $# > 0 )); then
 | 
			
		||||
    open "dash://manpages:$1" 2>/dev/null
 | 
			
		||||
    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
 | 
			
		||||
@@ -15,6 +16,8 @@ function mand {
 | 
			
		||||
  else
 | 
			
		||||
    print 'What manual page do you want?' >&2
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  unset dashkw
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
mand "$@"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,17 @@
 | 
			
		||||
#
 | 
			
		||||
# Displays the Mac OS X download history.
 | 
			
		||||
# Displays the macOS download history.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function osx-ls-download-history {
 | 
			
		||||
 | 
			
		||||
local db
 | 
			
		||||
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
 | 
			
		||||
  if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
 | 
			
		||||
    sqlite3 "$db" 'SELECT LSQuarantineDataURLString FROM LSQuarantineEvent'
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,11 @@
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function osx-rm-dir-metadata {
 | 
			
		||||
 | 
			
		||||
find "${@:-$PWD}" \( \
 | 
			
		||||
  -type f -name '.DS_Store' -o \
 | 
			
		||||
  -type d -name '__MACOSX' \
 | 
			
		||||
\) -print0 | xargs -0 rm -rf
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,17 @@
 | 
			
		||||
#
 | 
			
		||||
# Deletes the Mac OS X download history.
 | 
			
		||||
# Deletes the macOS download history.
 | 
			
		||||
#
 | 
			
		||||
# Authors:
 | 
			
		||||
#   Sorin Ionescu <sorin.ionescu@gmail.com>
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# function osx-rm-download-history {
 | 
			
		||||
 | 
			
		||||
local db
 | 
			
		||||
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
 | 
			
		||||
  if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
 | 
			
		||||
    sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM'
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# }
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user