| 
									
										
										
										
											2013-07-04 19:18:52 +08:00
										 |  |  | # ------------------------------------------------------------------------------ | 
					
						
							|  |  |  | # Description | 
					
						
							|  |  |  | # ----------- | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2016-08-15 02:45:00 +02:00
										 |  |  | # sudo or sudoedit will be inserted before the command | 
					
						
							| 
									
										
										
										
											2013-07-04 19:18:52 +08:00
										 |  |  | # | 
					
						
							|  |  |  | # ------------------------------------------------------------------------------ | 
					
						
							|  |  |  | # Authors | 
					
						
							|  |  |  | # ------- | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # * Dongweiming <ciici123@gmail.com> | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # ------------------------------------------------------------------------------ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | sudo-command-line() { | 
					
						
							| 
									
										
										
										
											2014-09-15 15:36:34 +02:00
										 |  |  |     [[ -z $BUFFER ]] && zle up-history | 
					
						
							| 
									
										
										
										
											2015-07-12 17:01:34 +02:00
										 |  |  |     if [[ $BUFFER == sudo\ * ]]; then | 
					
						
							|  |  |  |         LBUFFER="${LBUFFER#sudo }" | 
					
						
							| 
									
										
										
										
											2016-08-15 02:45:00 +02:00
										 |  |  |     elif [[ $BUFFER == $EDITOR\ * ]]; then | 
					
						
							|  |  |  |         LBUFFER="${LBUFFER#$EDITOR }" | 
					
						
							|  |  |  |         LBUFFER="sudoedit $LBUFFER" | 
					
						
							|  |  |  |     elif [[ $BUFFER == sudoedit\ * ]]; then | 
					
						
							|  |  |  |         LBUFFER="${LBUFFER#sudoedit }" | 
					
						
							|  |  |  |         LBUFFER="$EDITOR $LBUFFER" | 
					
						
							| 
									
										
										
										
											2015-07-12 17:01:34 +02:00
										 |  |  |     else | 
					
						
							|  |  |  |         LBUFFER="sudo $LBUFFER" | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2013-07-04 19:18:52 +08:00
										 |  |  | } | 
					
						
							|  |  |  | zle -N sudo-command-line | 
					
						
							|  |  |  | # Defined shortcut keys: [Esc] [Esc] | 
					
						
							| 
									
										
										
										
											2019-08-19 11:14:22 +01:00
										 |  |  | bindkey -M emacs '\e\e' sudo-command-line | 
					
						
							|  |  |  | bindkey -M vicmd '\e\e' sudo-command-line | 
					
						
							|  |  |  | bindkey -M viins '\e\e' sudo-command-line |