46 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env zsh
 | |
| # Eryn Wells <eryn@erynwells.me>
 | |
| 
 | |
| function init-rc-completion
 | |
| {
 | |
|     autoload -Uz compinit
 | |
|     compinit
 | |
| 
 | |
|     # Cache completions
 | |
|     zstyle ':completion::complete:*' use-cache 1
 | |
|     zstyle ':completion::complete:*' cache-path ~/.zsh/cache
 | |
| 
 | |
|     # Make ls show completion list in color.
 | |
|     # See also: https://github.com/ohmyzsh/ohmyzsh/issues/6060
 | |
|     if [[ -n "$LS_COLORS" ]]; then
 | |
|         zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
 | |
|     else
 | |
|         zstyle ':completion:*:default' list-colors \
 | |
|                 'di=34' 'ln=35' 'so=32' 'pi=33' 'ex=31' 'bd=34;46' 'cd=34;43' 'su=30;41' \
 | |
|                 'sg=30;46' 'tw=30;42' 'ow=30;43'
 | |
|     fi
 | |
| 
 | |
|     # For rm, cp, and mv don't complete if file is on the line already
 | |
|     zstyle ':completion:*:rm:*' ignore-line yes
 | |
|     zstyle ':completion:*:cp:*' ignore-line yes
 | |
|     zstyle ':completion:*:mv:*' ignore-line yes
 | |
| 
 | |
|     # Remove trailing slashes in directory arguments
 | |
|     zstyle ':completion:*' squeeze-slashes true
 | |
| 
 | |
|     # Never select parent directory
 | |
|     zstyle ':completion:*:cd:*' ignore-parents parent pwd
 | |
| 
 | |
|     # Expand partial paths
 | |
|     zstyle ':completion:*' expand 'yes'
 | |
| 
 | |
|     # Show a pretty menu of killable processes
 | |
|     zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
 | |
|     zstyle ':completion:*:*:kill:*' menu yes select
 | |
| 
 | |
|     # Complete man pages by section
 | |
|     zstyle ':completion:*:manuals' separate-sections true
 | |
|     zstyle ':completion:*:manuals.*' insert-sections true
 | |
| }
 | |
| 
 | |
| init-rc-completion "$@"
 |