⚡ vim zsh
This commit is contained in:
		
							
								
								
									
										8
									
								
								.vimrc
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								.vimrc
									
									
									
									
									
								
							| @@ -23,7 +23,6 @@ nnoremap <leader>A @@ | |||||||
| nnoremap <leader>u U | nnoremap <leader>u U | ||||||
| nnoremap U <c-r> | nnoremap U <c-r> | ||||||
| nnoremap <leader>l <c-]> | nnoremap <leader>l <c-]> | ||||||
| nmap <silent><leader>m :nohlsearch<bar>diffupdate<cr> |  | ||||||
|  |  | ||||||
| nnoremap <leader>o o<space><bs><esc> | nnoremap <leader>o o<space><bs><esc> | ||||||
| nnoremap <leader>O O<space><bs><esc> | nnoremap <leader>O O<space><bs><esc> | ||||||
| @@ -42,7 +41,9 @@ set breakindent breakindentopt=shift:2 showbreak=↳ | |||||||
| set scrolloff=5 sidescrolloff=10										" offset for lines/columns when scrolling | set scrolloff=5 sidescrolloff=10										" offset for lines/columns when scrolling | ||||||
| set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime | set autowrite autoread | autocmd FocusGained,BufEnter *.* checktime | ||||||
| set modeline | set modeline | ||||||
| set hlsearch incsearch | set hlsearch incsearch														  " highlight search, start when typing | ||||||
|  | if maparg('<C-L>', 'n') ==# '' | ||||||
|  | 	nnoremap <silent> <c-l> :nohlsearch<c-r>=has('diff')?'<bar>diffupdate':''<cr><cr><c-l> | endif | ||||||
| set smarttab | set smarttab | ||||||
| command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args> | command! -nargs=1 SETtab let &shiftwidth=<q-args> | let &tabstop=<q-args> | let &softtabstop=<q-args> | ||||||
| SETtab 4 | SETtab 4 | ||||||
| @@ -56,8 +57,9 @@ if (&t_Co > 2 || has("gui_running")) && !exists("syntax_on") | |||||||
| set list listchars=tab:»·,trail:·,extends:#,nbsp:~,space:· | set list listchars=tab:»·,trail:·,extends:#,nbsp:~,space:· | ||||||
| augroup syntax_sync_min_lines | augroup syntax_sync_min_lines | ||||||
| 	autocmd! | 	autocmd! | ||||||
| 	autocmd Syntax * syn sync minlines=200 | 	autocmd Syntax * syn sync minlines=20000 | ||||||
| augroup END | augroup END | ||||||
|  | set re=0 | ||||||
| command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif | command! -nargs=? SETspell if <q-args>==&spelllang || <q-args>=='' | set spell! | else | set spell | set spelllang=<args> | endif | if &spell | set spelllang | endif | ||||||
|  |  | ||||||
| command! -nargs=0 SETFOLDregions set foldmethod=marker | command! -nargs=0 SETFOLDregions set foldmethod=marker | ||||||
|   | |||||||
							
								
								
									
										353
									
								
								.zshrc
									
									
									
									
									
								
							
							
						
						
									
										353
									
								
								.zshrc
									
									
									
									
									
								
							| @@ -1,209 +1,230 @@ | |||||||
| #compdef devbox | #compdef devbox | ||||||
|  |  | ||||||
| # zsh completion for devbox                               -*- shell-script -*- | # zsh completion for devbox								  -*- shell-script -*- | ||||||
|  |  | ||||||
| __devbox_debug() | __devbox_debug() | ||||||
| { | { | ||||||
|     local file="$BASH_COMP_DEBUG_FILE" | 	local file="$BASH_COMP_DEBUG_FILE" | ||||||
|     if [[ -n ${file} ]]; then | 	if [[ -n ${file} ]]; then | ||||||
|         echo "$*" >> "${file}" | 		echo "$*" >> "${file}" | ||||||
|     fi | 	fi | ||||||
| } | } | ||||||
|  |  | ||||||
| _devbox() | _devbox() | ||||||
| { | { | ||||||
|     local shellCompDirectiveError=1 | 	local shellCompDirectiveError=1 | ||||||
|     local shellCompDirectiveNoSpace=2 | 	local shellCompDirectiveNoSpace=2 | ||||||
|     local shellCompDirectiveNoFileComp=4 | 	local shellCompDirectiveNoFileComp=4 | ||||||
|     local shellCompDirectiveFilterFileExt=8 | 	local shellCompDirectiveFilterFileExt=8 | ||||||
|     local shellCompDirectiveFilterDirs=16 | 	local shellCompDirectiveFilterDirs=16 | ||||||
|  |  | ||||||
|     local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace | 	local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace | ||||||
|     local -a completions | 	local -a completions | ||||||
|  |  | ||||||
|     __devbox_debug "\n========= starting completion logic ==========" | 	__devbox_debug "\n========= starting completion logic ==========" | ||||||
|     __devbox_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" | 	__devbox_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}" | ||||||
|  |  | ||||||
|     # The user could have moved the cursor backwards on the command-line. | 	# The user could have moved the cursor backwards on the command-line. | ||||||
|     # We need to trigger completion from the $CURRENT location, so we need | 	# We need to trigger completion from the $CURRENT location, so we need | ||||||
|     # to truncate the command-line ($words) up to the $CURRENT location. | 	# to truncate the command-line ($words) up to the $CURRENT location. | ||||||
|     # (We cannot use $CURSOR as its value does not work when a command is an alias.) | 	# (We cannot use $CURSOR as its value does not work when a command is an alias.) | ||||||
|     words=("${=words[1,CURRENT]}") | 	words=("${=words[1,CURRENT]}") | ||||||
|     __devbox_debug "Truncated words[*]: ${words[*]}," | 	__devbox_debug "Truncated words[*]: ${words[*]}," | ||||||
|  |  | ||||||
|     lastParam=${words[-1]} | 	lastParam=${words[-1]} | ||||||
|     lastChar=${lastParam[-1]} | 	lastChar=${lastParam[-1]} | ||||||
|     __devbox_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" | 	__devbox_debug "lastParam: ${lastParam}, lastChar: ${lastChar}" | ||||||
|  |  | ||||||
|     # For zsh, when completing a flag with an = (e.g., devbox -n=<TAB>) | 	# For zsh, when completing a flag with an = (e.g., devbox -n=<TAB>) | ||||||
|     # completions must be prefixed with the flag | 	# completions must be prefixed with the flag | ||||||
|     setopt local_options BASH_REMATCH | 	setopt local_options BASH_REMATCH | ||||||
|     if [[ "${lastParam}" =~ '-.*=' ]]; then | 	if [[ "${lastParam}" =~ '-.*=' ]]; then | ||||||
|         # We are dealing with a flag with an = | 		# We are dealing with a flag with an = | ||||||
|         flagPrefix="-P ${BASH_REMATCH}" | 		flagPrefix="-P ${BASH_REMATCH}" | ||||||
|     fi | 	fi | ||||||
|  |  | ||||||
|     # Prepare the command to obtain completions | 	# Prepare the command to obtain completions | ||||||
|     requestComp="${words[1]} __complete ${words[2,-1]}" | 	requestComp="${words[1]} __complete ${words[2,-1]}" | ||||||
|     if [ "${lastChar}" = "" ]; then | 	if [ "${lastChar}" = "" ]; then | ||||||
|         # If the last parameter is complete (there is a space following it) | 		# If the last parameter is complete (there is a space following it) | ||||||
|         # We add an extra empty parameter so we can indicate this to the go completion code. | 		# We add an extra empty parameter so we can indicate this to the go completion code. | ||||||
|         __devbox_debug "Adding extra empty parameter" | 		__devbox_debug "Adding extra empty parameter" | ||||||
|         requestComp="${requestComp} \"\"" | 		requestComp="${requestComp} \"\"" | ||||||
|     fi | 	fi | ||||||
|  |  | ||||||
|     __devbox_debug "About to call: eval ${requestComp}" | 	__devbox_debug "About to call: eval ${requestComp}" | ||||||
|  |  | ||||||
|     # Use eval to handle any environment variables and such | 	# Use eval to handle any environment variables and such | ||||||
|     out=$(eval ${requestComp} 2>/dev/null) | 	out=$(eval ${requestComp} 2>/dev/null) | ||||||
|     __devbox_debug "completion output: ${out}" | 	__devbox_debug "completion output: ${out}" | ||||||
|  |  | ||||||
|     # Extract the directive integer following a : from the last line | 	# Extract the directive integer following a : from the last line | ||||||
|     local lastLine | 	local lastLine | ||||||
|     while IFS='\n' read -r line; do | 	while IFS='\n' read -r line; do | ||||||
|         lastLine=${line} | 		lastLine=${line} | ||||||
|     done < <(printf "%s\n" "${out[@]}") | 	done < <(printf "%s\n" "${out[@]}") | ||||||
|     __devbox_debug "last line: ${lastLine}" | 	__devbox_debug "last line: ${lastLine}" | ||||||
|  |  | ||||||
|     if [ "${lastLine[1]}" = : ]; then | 	if [ "${lastLine[1]}" = : ]; then | ||||||
|         directive=${lastLine[2,-1]} | 		directive=${lastLine[2,-1]} | ||||||
|         # Remove the directive including the : and the newline | 		# Remove the directive including the : and the newline | ||||||
|         local suffix | 		local suffix | ||||||
|         (( suffix=${#lastLine}+2)) | 		(( suffix=${#lastLine}+2)) | ||||||
|         out=${out[1,-$suffix]} | 		out=${out[1,-$suffix]} | ||||||
|     else | 	else | ||||||
|         # There is no directive specified.  Leave $out as is. | 		# There is no directive specified.	Leave $out as is. | ||||||
|         __devbox_debug "No directive found.  Setting do default" | 		__devbox_debug "No directive found.  Setting do default" | ||||||
|         directive=0 | 		directive=0 | ||||||
|     fi | 	fi | ||||||
|  |  | ||||||
|     __devbox_debug "directive: ${directive}" | 	__devbox_debug "directive: ${directive}" | ||||||
|     __devbox_debug "completions: ${out}" | 	__devbox_debug "completions: ${out}" | ||||||
|     __devbox_debug "flagPrefix: ${flagPrefix}" | 	__devbox_debug "flagPrefix: ${flagPrefix}" | ||||||
|  |  | ||||||
|     if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then | 	if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then | ||||||
|         __devbox_debug "Completion received error. Ignoring completions." | 		__devbox_debug "Completion received error. Ignoring completions." | ||||||
|         return | 		return | ||||||
|     fi | 	fi | ||||||
|  |  | ||||||
|     local activeHelpMarker="_activeHelp_ " | 	local activeHelpMarker="_activeHelp_ " | ||||||
|     local endIndex=${#activeHelpMarker} | 	local endIndex=${#activeHelpMarker} | ||||||
|     local startIndex=$((${#activeHelpMarker}+1)) | 	local startIndex=$((${#activeHelpMarker}+1)) | ||||||
|     local hasActiveHelp=0 | 	local hasActiveHelp=0 | ||||||
|     while IFS='\n' read -r comp; do | 	while IFS='\n' read -r comp; do | ||||||
|         # Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker) | 		# Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker) | ||||||
|         if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then | 		if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then | ||||||
|             __devbox_debug "ActiveHelp found: $comp" | 			__devbox_debug "ActiveHelp found: $comp" | ||||||
|             comp="${comp[$startIndex,-1]}" | 			comp="${comp[$startIndex,-1]}" | ||||||
|             if [ -n "$comp" ]; then | 			if [ -n "$comp" ]; then | ||||||
|                 compadd -x "${comp}" | 				compadd -x "${comp}" | ||||||
|                 __devbox_debug "ActiveHelp will need delimiter" | 				__devbox_debug "ActiveHelp will need delimiter" | ||||||
|                 hasActiveHelp=1 | 				hasActiveHelp=1 | ||||||
|             fi | 			fi | ||||||
|  |  | ||||||
|             continue | 			continue | ||||||
|         fi | 		fi | ||||||
|  |  | ||||||
|         if [ -n "$comp" ]; then | 		if [ -n "$comp" ]; then | ||||||
|             # If requested, completions are returned with a description. | 			# If requested, completions are returned with a description. | ||||||
|             # The description is preceded by a TAB character. | 			# The description is preceded by a TAB character. | ||||||
|             # For zsh's _describe, we need to use a : instead of a TAB. | 			# For zsh's _describe, we need to use a : instead of a TAB. | ||||||
|             # We first need to escape any : as part of the completion itself. | 			# We first need to escape any : as part of the completion itself. | ||||||
|             comp=${comp//:/\\:} | 			comp=${comp//:/\\:} | ||||||
|  |  | ||||||
|             local tab="$(printf '\t')" | 			local tab="$(printf '\t')" | ||||||
|             comp=${comp//$tab/:} | 			comp=${comp//$tab/:} | ||||||
|  |  | ||||||
|             __devbox_debug "Adding completion: ${comp}" | 			__devbox_debug "Adding completion: ${comp}" | ||||||
|             completions+=${comp} | 			completions+=${comp} | ||||||
|             lastComp=$comp | 			lastComp=$comp | ||||||
|         fi | 		fi | ||||||
|     done < <(printf "%s\n" "${out[@]}") | 	done < <(printf "%s\n" "${out[@]}") | ||||||
|  |  | ||||||
|     # Add a delimiter after the activeHelp statements, but only if: | 	# Add a delimiter after the activeHelp statements, but only if: | ||||||
|     # - there are completions following the activeHelp statements, or | 	# - there are completions following the activeHelp statements, or | ||||||
|     # - file completion will be performed (so there will be choices after the activeHelp) | 	# - file completion will be performed (so there will be choices after the activeHelp) | ||||||
|     if [ $hasActiveHelp -eq 1 ]; then | 	if [ $hasActiveHelp -eq 1 ]; then | ||||||
|         if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then | 		if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then | ||||||
|             __devbox_debug "Adding activeHelp delimiter" | 			__devbox_debug "Adding activeHelp delimiter" | ||||||
|             compadd -x "--" | 			compadd -x "--" | ||||||
|             hasActiveHelp=0 | 			hasActiveHelp=0 | ||||||
|         fi | 		fi | ||||||
|     fi | 	fi | ||||||
|  |  | ||||||
|     if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then | 	if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then | ||||||
|         __devbox_debug "Activating nospace." | 		__devbox_debug "Activating nospace." | ||||||
|         noSpace="-S ''" | 		noSpace="-S ''" | ||||||
|     fi | 	fi | ||||||
|  |  | ||||||
|     if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then | 	if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then | ||||||
|         # File extension filtering | 		# File extension filtering | ||||||
|         local filteringCmd | 		local filteringCmd | ||||||
|         filteringCmd='_files' | 		filteringCmd='_files' | ||||||
|         for filter in ${completions[@]}; do | 		for filter in ${completions[@]}; do | ||||||
|             if [ ${filter[1]} != '*' ]; then | 			if [ ${filter[1]} != '*' ]; then | ||||||
|                 # zsh requires a glob pattern to do file filtering | 				# zsh requires a glob pattern to do file filtering | ||||||
|                 filter="\*.$filter" | 				filter="\*.$filter" | ||||||
|             fi | 			fi | ||||||
|             filteringCmd+=" -g $filter" | 			filteringCmd+=" -g $filter" | ||||||
|         done | 		done | ||||||
|         filteringCmd+=" ${flagPrefix}" | 		filteringCmd+=" ${flagPrefix}" | ||||||
|  |  | ||||||
|         __devbox_debug "File filtering command: $filteringCmd" | 		__devbox_debug "File filtering command: $filteringCmd" | ||||||
|         _arguments '*:filename:'"$filteringCmd" | 		_arguments '*:filename:'"$filteringCmd" | ||||||
|     elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then | 	elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then | ||||||
|         # File completion for directories only | 		# File completion for directories only | ||||||
|         local subdir | 		local subdir | ||||||
|         subdir="${completions[1]}" | 		subdir="${completions[1]}" | ||||||
|         if [ -n "$subdir" ]; then | 		if [ -n "$subdir" ]; then | ||||||
|             __devbox_debug "Listing directories in $subdir" | 			__devbox_debug "Listing directories in $subdir" | ||||||
|             pushd "${subdir}" >/dev/null 2>&1 | 			pushd "${subdir}" >/dev/null 2>&1 | ||||||
|         else | 		else | ||||||
|             __devbox_debug "Listing directories in ." | 			__devbox_debug "Listing directories in ." | ||||||
|         fi | 		fi | ||||||
|  |  | ||||||
|         local result | 		local result | ||||||
|         _arguments '*:dirname:_files -/'" ${flagPrefix}" | 		_arguments '*:dirname:_files -/'" ${flagPrefix}" | ||||||
|         result=$? | 		result=$? | ||||||
|         if [ -n "$subdir" ]; then | 		if [ -n "$subdir" ]; then | ||||||
|             popd >/dev/null 2>&1 | 			popd >/dev/null 2>&1 | ||||||
|         fi | 		fi | ||||||
|         return $result | 		return $result | ||||||
|     else | 	else | ||||||
|         __devbox_debug "Calling _describe" | 		__devbox_debug "Calling _describe" | ||||||
|         if eval _describe "completions" completions $flagPrefix $noSpace; then | 		if eval _describe "completions" completions $flagPrefix $noSpace; then | ||||||
|             __devbox_debug "_describe found some completions" | 			__devbox_debug "_describe found some completions" | ||||||
|  |  | ||||||
|             # Return the success of having called _describe | 			# Return the success of having called _describe | ||||||
|             return 0 | 			return 0 | ||||||
|         else | 		else | ||||||
|             __devbox_debug "_describe did not find completions." | 			__devbox_debug "_describe did not find completions." | ||||||
|             __devbox_debug "Checking if we should do file completion." | 			__devbox_debug "Checking if we should do file completion." | ||||||
|             if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then | 			if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then | ||||||
|                 __devbox_debug "deactivating file completion" | 				__devbox_debug "deactivating file completion" | ||||||
|  |  | ||||||
|                 # We must return an error code here to let zsh know that there were no | 				# We must return an error code here to let zsh know that there were no | ||||||
|                 # completions found by _describe; this is what will trigger other | 				# completions found by _describe; this is what will trigger other | ||||||
|                 # matching algorithms to attempt to find completions. | 				# matching algorithms to attempt to find completions. | ||||||
|                 # For example zsh can match letters in the middle of words. | 				# For example zsh can match letters in the middle of words. | ||||||
|                 return 1 | 				return 1 | ||||||
|             else | 			else | ||||||
|                 # Perform file completion | 				# Perform file completion | ||||||
|                 __devbox_debug "Activating file completion" | 				__devbox_debug "Activating file completion" | ||||||
|  |  | ||||||
|                 # We must return the result of this command, so it must be the | 				# We must return the result of this command, so it must be the | ||||||
|                 # last command, or else we must store its result to return it. | 				# last command, or else we must store its result to return it. | ||||||
|                 _arguments '*:filename:_files'" ${flagPrefix}" | 				_arguments '*:filename:_files'" ${flagPrefix}" | ||||||
|             fi | 			fi | ||||||
|         fi | 		fi | ||||||
|     fi | 	fi | ||||||
| } | } | ||||||
|  |  | ||||||
| # don't run the completion function when being source-ed or eval-ed | # don't run the completion function when being source-ed or eval-ed | ||||||
| if [ "$funcstack[1]" = "_devbox" ]; then | if [ "$funcstack[1]" = "_devbox" ]; then | ||||||
|     _devbox | 	_devbox | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | # activate gls colors | ||||||
|  | export ZSH_DIRCOLORS="$ZSH_CONFIG/dircolors-solarized/dircolors.256dark" | ||||||
|  | if [[ -a $ZSH_DIRCOLORS ]]; then | ||||||
|  | 	if [[ "$TERM" == *256* ]]; then | ||||||
|  | 		which gdircolors > /dev/null && eval "`gdircolors -b $ZSH_DIRCOLORS`" | ||||||
|  | 	else | ||||||
|  | 		# standard colors for non-256-color terms | ||||||
|  | 		which gdircolors > /dev/null && eval "`gdircolors -b`" | ||||||
|  | 	fi | ||||||
|  | else | ||||||
|  | 	which gdircolors > /dev/null && eval "`gdircolors -b`" | ||||||
|  | fi | ||||||
|  | export CLICOLOR=1 | ||||||
|  | export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd | ||||||
|  | alias myls='ls -pFhA' | ||||||
|  | alias myrm='rm -vi' | ||||||
|  | alias mycp='cp -vi' | ||||||
|  | alias mymv='mv -vi' | ||||||
|  | alias mydf='df -Th' | ||||||
|  | alias myless='less -R -S' | ||||||
|  |  | ||||||
| export PATH="$HOME/.jenv/bin:$PATH" | export PATH="$HOME/.jenv/bin:$PATH" | ||||||
| eval "$(jenv init -)" | eval "$(jenv init -)" | ||||||
| export ANDROID_HOME=$HOME/Library/Android/sdk && export PATH=$PATH:$ANDROID_HOME/emulator && export PATH=$PATH:$ANDROID_HOME/platform-tools | export ANDROID_HOME=$HOME/Library/Android/sdk && export PATH=$PATH:$ANDROID_HOME/emulator && export PATH=$PATH:$ANDROID_HOME/platform-tools | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user