| 
									
										
										
										
											2012-11-02 11:06:32 -04:00
										 |  |  | # Ensures that $terminfo values are valid and updates editor information when | 
					
						
							|  |  |  | # the keymap changes. | 
					
						
							|  |  |  | function zle-keymap-select zle-line-init zle-line-finish { | 
					
						
							|  |  |  |   # The terminal must be in application mode when ZLE is active for $terminfo | 
					
						
							|  |  |  |   # values to be valid. | 
					
						
							| 
									
										
										
										
											2013-01-02 19:14:57 -05:00
										 |  |  |   if (( ${+terminfo[smkx]} )); then | 
					
						
							|  |  |  |     printf '%s' ${terminfo[smkx]} | 
					
						
							| 
									
										
										
										
											2012-11-02 11:06:32 -04:00
										 |  |  |   fi | 
					
						
							| 
									
										
										
										
											2013-01-02 19:14:57 -05:00
										 |  |  |   if (( ${+terminfo[rmkx]} )); then | 
					
						
							|  |  |  |     printf '%s' ${terminfo[rmkx]} | 
					
						
							|  |  |  |   fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-26 22:25:31 +02:00
										 |  |  |   zle reset-prompt | 
					
						
							| 
									
										
										
										
											2012-11-02 11:06:32 -04:00
										 |  |  |   zle -R | 
					
						
							| 
									
										
										
										
											2010-09-26 22:25:31 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | zle -N zle-line-init | 
					
						
							| 
									
										
										
										
											2012-11-02 11:06:32 -04:00
										 |  |  | zle -N zle-line-finish | 
					
						
							| 
									
										
										
										
											2010-09-26 22:25:31 +02:00
										 |  |  | zle -N zle-keymap-select | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bindkey -v | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # if mode indicator wasn't setup by theme, define default | 
					
						
							|  |  |  | if [[ "$MODE_INDICATOR" == "" ]]; then | 
					
						
							|  |  |  |   MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function vi_mode_prompt_info() { | 
					
						
							|  |  |  |   echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # define right prompt, if it wasn't defined by a theme | 
					
						
							|  |  |  | if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then | 
					
						
							|  |  |  |   RPS1='$(vi_mode_prompt_info)' | 
					
						
							|  |  |  | fi |