Mercurial > dotfiles
annotate dot_zshrc @ 534:aee830df7a88
Add zsh completions for fd and rg
author | zegervdv <zegervdv@me.com> |
---|---|
date | Wed, 26 Jan 2022 09:37:15 +0100 |
parents | 22fb4745cb1b |
children | f10b89e9aff3 |
rev | line source |
---|---|
261 | 1 # vim:ft=zsh |
2 | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
3 source ~/.zsh/zsh-history-substring-search.zsh |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
4 export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=green,fg=black' |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
5 |
531 | 6 source ~/.zsh/zsh-autosuggestions.zsh |
7 | |
534
aee830df7a88
Add zsh completions for fd and rg
zegervdv <zegervdv@me.com>
parents:
533
diff
changeset
|
8 fpath=(~/.zsh/completions $fpath) |
aee830df7a88
Add zsh completions for fd and rg
zegervdv <zegervdv@me.com>
parents:
533
diff
changeset
|
9 |
293
b29fc37fe1f0
Set TERM to xterm-256color
Zeger Van de Vannet <zegervdv@me.com>
parents:
289
diff
changeset
|
10 export TERM=xterm-256color |
b29fc37fe1f0
Set TERM to xterm-256color
Zeger Van de Vannet <zegervdv@me.com>
parents:
289
diff
changeset
|
11 |
261 | 12 export LC_ALL=$LANG |
13 | |
14 PROMPT='%F{cyan}%T%f %F{red}%m%f %F{blue}%~%b%f | |
265 | 15 %j -> ' |
261 | 16 |
17 | |
265 | 18 vim_ins_mode="%F{black}%K{yellow} INS %k%f" |
266
7a275f0d38e8
Use red to indicate Normal mode in zsh prompt
zegervdv <zegervdv@me.com>
parents:
265
diff
changeset
|
19 vim_cmd_mode="%F{white}%K{red} NRM %k%f" |
261 | 20 vim_mode=$vim_ins_mode |
21 | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
22 # Cursor mapping from nyquase/vi-mode |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
23 function select_cursor() { |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
24 case $KEYMAP in |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
25 # Block cursor in normal and visual mode |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
26 vicmd) echo -ne "\e[2 q";; |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
27 # Line cursor in insert mode |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
28 main|viins) echo -ne "\e[5 q";; |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
29 # Else Block cursor |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
30 *) echo -ne "\e[2 q";; |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
31 esac |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
32 } |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
33 |
261 | 34 function zle-keymap-select { |
35 vim_mode="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}" | |
36 zle reset-prompt | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
37 zle -R |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
38 select_cursor |
261 | 39 } |
40 zle -N zle-keymap-select | |
41 | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
42 function zle-line-init() { |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
43 echoti smkx |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
44 zle reset-prompt |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
45 select_cursor |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
46 } |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
47 zle -N zle-line-init |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
48 |
261 | 49 function zle-line-finish { |
50 vim_mode=$vim_ins_mode | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
51 echoti rmkx |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
52 echo -ne "\e[2 q" |
261 | 53 } |
54 zle -N zle-line-finish | |
55 | |
56 function TRAPINT() { | |
57 vim_mode=$vim_ins_mode | |
58 return $(( 128 + $1 )) | |
59 } | |
60 | |
61 RPROMPT='${vim_mode}' | |
62 | |
63 zmodload -i zsh/complist | |
64 | |
65 bindkey -v | |
66 | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
67 bindkey '^[[A' history-substring-search-up |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
68 bindkey '^[[B' history-substring-search-down |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
69 bindkey "$terminfo[kcuu1]" history-substring-search-up |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
70 bindkey "$terminfo[kcud1]" history-substring-search-down |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
71 bindkey '^p' history-substring-search-up |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
72 bindkey '^n' history-substring-search-down |
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
73 |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
74 bindkey '^f' autosuggest-accept |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
75 |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
76 zmodload zsh/complist |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
77 bindkey -M menuselect 'h' vi-backward-char |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
78 bindkey -M menuselect 'k' vi-up-line-or-history |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
79 bindkey -M menuselect 'j' vi-down-line-or-history |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
80 bindkey -M menuselect 'l' vi-forward-char |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
81 |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
82 # Enter interactive search |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
83 bindkey -M menuselect '^xi' vi-insert |
531 | 84 |
263 | 85 export LESS_TERMCAP_mb=$(printf "\e[1;31m") |
86 export LESS_TERMCAP_md=$(printf "\e[1;31m") | |
87 export LESS_TERMCAP_me=$(printf "\e[0m") | |
88 export LESS_TERMCAP_se=$(printf "\e[0m") | |
89 export LESS_TERMCAP_so=$(printf "\e[1;44;33m") | |
90 export LESS_TERMCAP_ue=$(printf "\e[0m") | |
91 export LESS_TERMCAP_us=$(printf "\e[1;32m") | |
262
44d179225271
Add history substring search plugin
zegervdv <zegervdv@me.com>
parents:
261
diff
changeset
|
92 |
261 | 93 export CLICOLOR=1 |
94 export LS_COLORS='no=00;37:fi=00:di=00;33:ln=04;36:pi=40;33:so=01;35:bd=40;33;01:' | |
95 | |
96 # Options | |
97 setopt monitor | |
98 setopt auto_cd | |
99 setopt cdablevars | |
100 setopt pushd_ignore_dups | |
101 setopt interactive_comments | |
102 setopt append_history | |
103 setopt inc_append_history | |
104 setopt hist_ignore_dups | |
105 setopt hist_find_no_dups | |
106 setopt hist_reduce_blanks | |
107 setopt extended_history | |
108 setopt hist_expire_dups_first | |
109 setopt hist_verify | |
110 setopt share_history | |
111 setopt transient_rprompt | |
112 setopt prompt_subst | |
113 setopt multios | |
114 setopt correct_all | |
115 setopt autopushd | |
116 setopt pushdminus | |
117 setopt pushdsilent | |
118 setopt nobeep | |
119 setopt notify | |
120 REPORTTIME=5 | |
121 | |
122 HISTSIZE=3000 | |
123 SAVEHIST=3000 | |
124 HISTFILE=~/.zsh_history | |
125 | |
126 # Completion | |
127 setopt complete_in_word | |
128 setopt always_to_end | |
129 setopt auto_menu | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
130 setopt auto_param_slash |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
131 |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
132 # Enable completers |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
133 zstyle ':completion:*' completer _complete _approximate |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
134 |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
135 zstyle ':completion:*' use-cache on |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
136 zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/.zcompcache" |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
137 |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
138 # file list info |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
139 zstyle ':completion:*' file-list list |
261 | 140 |
141 # activate color-completion | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
142 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} |
261 | 143 |
144 # format on completion | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
145 zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}' |
261 | 146 |
147 # insert all expansions for expand completer | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
148 zstyle ':completion:*:expand:*' tag-order all-expansions |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
149 zstyle ':completion:*:history-words' list false |
261 | 150 |
151 # activate menu | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
152 zstyle ':completion:*:history-words' menu yes |
261 | 153 |
154 # ignore duplicate entries | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
155 zstyle ':completion:*:history-words' remove-all-dups yes |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
156 zstyle ':completion:*:history-words' stop yes |
261 | 157 |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
158 zstyle ':completion:*:matches' group 'yes' |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
159 zstyle ':completion:*' group-name '' |
261 | 160 if [[ "$NOMENU" -eq 0 ]] ; then |
161 # if there are more than 5 options allow selecting from a menu | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
162 zstyle ':completion:*' menu select=5 |
261 | 163 else |
164 # don't use any menus at all | |
165 setopt no_auto_menu | |
166 fi | |
167 | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
168 zstyle ':completion:*:messages' format '%d' |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
169 zstyle ':completion:*:options' auto-description '%d' |
261 | 170 |
171 # describe options in full | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
172 zstyle ':completion:*:options' description 'yes' |
261 | 173 |
174 # complete manual by their section | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
175 zstyle ':completion:*:manuals' separate-sections true |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
176 zstyle ':completion:*:manuals.*' insert-sections true |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
177 zstyle ':completion:*:man:*' menu yes select |
261 | 178 |
179 # Search path for sudo completion | |
180 zstyle ':completion:*:sudo:*' command-path /usr/local/sbin \ | |
181 /usr/local/bin \ | |
182 /usr/sbin \ | |
183 /usr/bin \ | |
184 /sbin \ | |
185 /bin \ | |
186 /usr/X11R6/bin | |
187 | |
188 # provide .. as a completion | |
189 zstyle ':completion:*' specal-dirs .. | |
190 | |
191 # case insensitive path-completion | |
192 zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' | |
193 | |
194 # nvim completion | |
533
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
195 zstyle ':completion:*:*:nvim:*' ignored-patterns '*.(o|hex|elf|pyc|pdf|dup)' |
22fb4745cb1b
set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents:
531
diff
changeset
|
196 zstyle ':completion:*:*:nvim:*' file-sort modification |
261 | 197 |
198 autoload -U compinit && compinit | |
199 | |
200 # fg when pressing Ctrl+Z | |
201 function fancy-ctrl-z () { | |
202 if [[ $#BUFFER -eq 0 ]]; then | |
203 if [[ $(jobs | wc -l) -gt 0 ]]; then | |
204 BUFFER='fg' | |
205 zle accept-line | |
206 fi | |
207 else | |
208 zle push-input | |
209 zle clear-screen | |
210 fi | |
211 } | |
212 zle -N fancy-ctrl-z | |
213 bindkey '^Z' fancy-ctrl-z | |
214 | |
215 # Aliases | |
479 | 216 alias l="ls -haltr" |
217 alias ll="ls -haltr" | |
261 | 218 alias xclip='xclip -selection clipboard' |
269 | 219 alias view='nvim -R' |
261 | 220 |
221 # Exports | |
222 export XDG_CONFIG_HOME=$HOME/.config | |
223 export PATH=$HOME/bin:$PATH | |
224 | |
225 export EDITOR=nvim | |
226 export HGEDITOR=nvim | |
227 | |
504 | 228 export RIPGREP_CONFIG_PATH=$HOME/.config/ripgrep/ripgreprc |
506 | 229 export BAT_CONFIG_PATH=$HOME/.config/bat/config |
504 | 230 |
267 | 231 [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh |
261 | 232 export FZF_DEFAULT_COMMAND='ag -g ""' |
267 | 233 [ -f ~/.zshrc.local ] && source ~/.zshrc.local |
491
f1d1eab204aa
Fix paths to nvim for SUDO_EDITOR
zegervdv <zegervdv@me.com>
parents:
490
diff
changeset
|
234 |
f1d1eab204aa
Fix paths to nvim for SUDO_EDITOR
zegervdv <zegervdv@me.com>
parents:
490
diff
changeset
|
235 # Must run after brew is loaded |
f1d1eab204aa
Fix paths to nvim for SUDO_EDITOR
zegervdv <zegervdv@me.com>
parents:
490
diff
changeset
|
236 export SUDO_EDITOR=$(which nvim) |
508 | 237 eval "$(direnv hook zsh)" |