annotate dot_zshrc @ 569:5579d087173a

Map <c-u> in zsh to kill current line
author zegervdv <zegervdv@me.com>
date Wed, 02 Mar 2022 14:30:16 +0100
parents edace2b7e913
children 77280c499124
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 # vim:ft=zsh
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
2
534
aee830df7a88 Add zsh completions for fd and rg
zegervdv <zegervdv@me.com>
parents: 533
diff changeset
3 fpath=(~/.zsh/completions $fpath)
aee830df7a88 Add zsh completions for fd and rg
zegervdv <zegervdv@me.com>
parents: 533
diff changeset
4
293
b29fc37fe1f0 Set TERM to xterm-256color
Zeger Van de Vannet <zegervdv@me.com>
parents: 289
diff changeset
5 export TERM=xterm-256color
b29fc37fe1f0 Set TERM to xterm-256color
Zeger Van de Vannet <zegervdv@me.com>
parents: 289
diff changeset
6
567
edace2b7e913 export LC_CTYPE to enable unicode chars
Zeger Van de Vannet <zegervdv@me.com>
parents: 564
diff changeset
7 export LC_ALL=en_US.UTF-8
edace2b7e913 export LC_CTYPE to enable unicode chars
Zeger Van de Vannet <zegervdv@me.com>
parents: 564
diff changeset
8 export LC_CTYPE=en_US.UTF-8
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
9
564
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 559
diff changeset
10 PROMPT=$'%F{cyan}%T%f %F{red}%m%f %F{blue}%~%b%f
b251d808fa04 Add tmux mapping to select the last command output and open selection in quickfix
zegervdv <zegervdv@me.com>
parents: 559
diff changeset
11 %j ->\u00A0'
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
12
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
13
265
b853d45b97d3 Style tune-ups for zsh
zegervdv <zegervdv@me.com>
parents: 263
diff changeset
14 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
15 vim_cmd_mode="%F{white}%K{red} NRM %k%f"
551
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
16 vim_vis_mode="%F{black}%K{blue} VIS %k%f"
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
17 vim_visline_mode="%F{black}%K{blue} VIL %k%f"
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
18 vim_rep_mode="%F{black}%K{green} REP %k%f"
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 vim_mode=$vim_ins_mode
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
20
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 function TRAPINT() {
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 vim_mode=$vim_ins_mode
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 return $(( 128 + $1 ))
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
24 }
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
25
551
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
26 function zvm_after_select_vi_mode() {
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
27 case $ZVM_MODE in
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
28 $ZVM_MODE_NORMAL)
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
29 vim_mode=$vim_cmd_mode
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
30 ;;
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
31 $ZVM_MODE_INSERT)
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
32 vim_mode=$vim_ins_mode
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
33 ;;
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
34 $ZVM_MODE_VISUAL)
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
35 vim_mode=$vim_vis_mode
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
36 ;;
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
37 $ZVM_MODE_VISUAL_LINE)
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
38 vim_mode=$vim_visline_mode
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
39 ;;
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
40 $ZVM_MODE_REPLACE)
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
41 vim_mode=$vim_rep_mode
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
42 ;;
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
43 esac
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
44 }
2cce224318f9 Add mode indicators for zsh-vi-mode
zegervdv <zegervdv@me.com>
parents: 549
diff changeset
45
535
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
46 autoload -Uz vcs_info
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
47 zstyle ':vcs_info:*' enable git hg
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
48
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
49 zstyle ':vcs_info:*' actionformats '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
50 zstyle ':vcs_info:*' formats '%F{4}%s%F{5}%F{3} @ %F{2}%b%f'
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
51 zstyle ':vcs_info:hg*:*' use-simple true
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
52
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
53 precmd () { vcs_info }
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
54
f10b89e9aff3 Add git/hg info to zsh prompt
Zeger Van de Vannet <zegervdv@me.com>
parents: 534
diff changeset
55 RPROMPT='${vcs_info_msg_0_} ${vim_mode}'
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
56
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 zmodload -i zsh/complist
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
58
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 bindkey -v
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
60
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
61 zmodload zsh/complist
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
62 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
63 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
64 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
65 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
66
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
67 # Enter interactive search
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
68 bindkey -M menuselect '^xi' vi-insert
531
5d57fac601e3 Add zsh autosuggest plugin
zegervdv <zegervdv@me.com>
parents: 508
diff changeset
69
263
fab71b4ac0b9 Colorscheme fixes
zegervdv <zegervdv@me.com>
parents: 262
diff changeset
70 export LESS_TERMCAP_mb=$(printf "\e[1;31m")
fab71b4ac0b9 Colorscheme fixes
zegervdv <zegervdv@me.com>
parents: 262
diff changeset
71 export LESS_TERMCAP_md=$(printf "\e[1;31m")
fab71b4ac0b9 Colorscheme fixes
zegervdv <zegervdv@me.com>
parents: 262
diff changeset
72 export LESS_TERMCAP_me=$(printf "\e[0m")
fab71b4ac0b9 Colorscheme fixes
zegervdv <zegervdv@me.com>
parents: 262
diff changeset
73 export LESS_TERMCAP_se=$(printf "\e[0m")
548
1b60ade60015 Make search results in less readable
zegervdv <zegervdv@me.com>
parents: 547
diff changeset
74 export LESS_TERMCAP_so=$(printf "\e[1;30;43m")
263
fab71b4ac0b9 Colorscheme fixes
zegervdv <zegervdv@me.com>
parents: 262
diff changeset
75 export LESS_TERMCAP_ue=$(printf "\e[0m")
fab71b4ac0b9 Colorscheme fixes
zegervdv <zegervdv@me.com>
parents: 262
diff changeset
76 export LESS_TERMCAP_us=$(printf "\e[1;32m")
262
44d179225271 Add history substring search plugin
zegervdv <zegervdv@me.com>
parents: 261
diff changeset
77
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
78 export CLICOLOR=1
553
4b9b6694aa5b Force sh mode on dircolors
Zeger Van de Vannet <zegervdv@me.com>
parents: 552
diff changeset
79 eval "$(dircolors --sh ~/.lscolors)"
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
80
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
81 # Options
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
82 setopt monitor
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
83 setopt auto_cd
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
84 setopt cdablevars
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
85 setopt pushd_ignore_dups
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
86 setopt interactive_comments
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
87 setopt append_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
88 setopt inc_append_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
89 setopt hist_ignore_dups
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
90 setopt hist_find_no_dups
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
91 setopt hist_reduce_blanks
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
92 setopt extended_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
93 setopt hist_expire_dups_first
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
94 setopt hist_verify
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
95 setopt share_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
96 setopt transient_rprompt
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
97 setopt prompt_subst
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
98 setopt multios
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
99 setopt correct_all
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
100 setopt autopushd
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
101 setopt pushdminus
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
102 setopt pushdsilent
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
103 setopt nobeep
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
104 setopt notify
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
105 REPORTTIME=5
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
106
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
107 HISTSIZE=3000
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
108 SAVEHIST=3000
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
109 HISTFILE=~/.zsh_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
110
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
111 # Completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
112 setopt complete_in_word
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
113 setopt always_to_end
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
114 setopt auto_menu
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
115 setopt auto_param_slash
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
116
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
117 # Enable completers
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
118 zstyle ':completion:*' completer _complete _approximate
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
119
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
120 zstyle ':completion:*' use-cache on
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
121 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
122
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
123 # file list info
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
124 zstyle ':completion:*' file-list list
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
125
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
126 # activate color-completion
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
127 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
128
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
129 # format on completion
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
130 zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}'
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
131
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
132 # 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
133 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
134 zstyle ':completion:*:history-words' list false
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
135
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
136 # activate menu
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
137 zstyle ':completion:*:history-words' menu yes
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
138
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
139 # ignore duplicate entries
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
140 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
141 zstyle ':completion:*:history-words' stop yes
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
142
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
143 zstyle ':completion:*:matches' group 'yes'
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
144 zstyle ':completion:*' group-name ''
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
145 if [[ "$NOMENU" -eq 0 ]] ; then
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
146 # 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
147 zstyle ':completion:*' menu select=5
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
148 else
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
149 # don't use any menus at all
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
150 setopt no_auto_menu
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
151 fi
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
152
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
153 zstyle ':completion:*:messages' format '%d'
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
154 zstyle ':completion:*:options' auto-description '%d'
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
155
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
156 # describe options in full
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
157 zstyle ':completion:*:options' description 'yes'
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
158
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
159 # complete manual by their section
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
160 zstyle ':completion:*:manuals' separate-sections true
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
161 zstyle ':completion:*:manuals.*' insert-sections true
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
162 zstyle ':completion:*:man:*' menu yes select
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
163
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
164 # Search path for sudo completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
165 zstyle ':completion:*:sudo:*' command-path /usr/local/sbin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
166 /usr/local/bin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
167 /usr/sbin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
168 /usr/bin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
169 /sbin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
170 /bin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
171 /usr/X11R6/bin
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
172
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
173 # provide .. as a completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
174 zstyle ':completion:*' specal-dirs ..
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
175
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
176 # case insensitive path-completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
177 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:|=*'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
178
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
179 # nvim completion
533
22fb4745cb1b set more completion options in zsh
Zeger Van de Vannet <zegervdv@me.com>
parents: 531
diff changeset
180 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
181 zstyle ':completion:*:*:nvim:*' file-sort modification
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
182
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
183 # fg when pressing Ctrl+Z
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
184 function fancy-ctrl-z () {
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
185 if [[ $#BUFFER -eq 0 ]]; then
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
186 if [[ $(jobs | wc -l) -gt 0 ]]; then
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
187 BUFFER='fg'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
188 zle accept-line
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
189 fi
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
190 else
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
191 zle push-input
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
192 zle clear-screen
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
193 fi
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
194 }
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
195 zle -N fancy-ctrl-z
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
196 bindkey '^Z' fancy-ctrl-z
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
197
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
198 # Aliases
547
da72438479b0 always colorize ls output
zegervdv <zegervdv@me.com>
parents: 546
diff changeset
199 alias ls='ls --color=auto'
479
85bc5605b2e0 Remove hyperlinks from ls
zegervdv <zegervdv@me.com>
parents: 468
diff changeset
200 alias l="ls -haltr"
85bc5605b2e0 Remove hyperlinks from ls
zegervdv <zegervdv@me.com>
parents: 468
diff changeset
201 alias ll="ls -haltr"
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
202 alias xclip='xclip -selection clipboard'
269
f89fb61cbfb2 Add view alias
zegervdv <zegervdv@me.com>
parents: 267
diff changeset
203 alias view='nvim -R'
261
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
204
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
205 # Exports
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
206 export XDG_CONFIG_HOME=$HOME/.config
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
207 export PATH=$HOME/bin:$PATH
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
208
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
209 export EDITOR=nvim
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
210 export HGEDITOR=nvim
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
211
504
1403bfc694e4 Add ripgrep configuration file
zegervdv <zegervdv@me.com>
parents: 491
diff changeset
212 export RIPGREP_CONFIG_PATH=$HOME/.config/ripgrep/ripgreprc
506
36ba70d17fd6 Add One Dark theme for bat
zegervdv <zegervdv@me.com>
parents: 504
diff changeset
213 export BAT_CONFIG_PATH=$HOME/.config/bat/config
504
1403bfc694e4 Add ripgrep configuration file
zegervdv <zegervdv@me.com>
parents: 491
diff changeset
214
552
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
215 # # source: https://gist.github.com/gnanderson/d74079d16714bb8b2822a7a07cc883d4
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
216 function fif() {
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
217 rg \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
218 --column \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
219 --no-heading \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
220 --fixed-strings \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
221 --ignore-case \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
222 --hidden \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
223 --follow \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
224 --glob '!.git/*' "$1" \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
225 | awk -F ":" '/1/ {start = $2<5 ? 0 : $2 - 5; end = $2 + 5; print $1 " " $2 " " start ":" end " " $3}' \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
226 | fzf --preview 'bat --wrap character --color always {1} --highlight-line {2} --line-range {3}' \
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
227 --bind 'ctrl-o:execute(nvim {1}:{2}:{4})+cancel'
f308f66cad13 Add fif (find in file) command to search for words and view in fzf
zegervdv <zegervdv@me.com>
parents: 551
diff changeset
228 }
539
8e2e42add3af add zsh-histdb plugin
zegervdv <zegervdv@me.com>
parents: 537
diff changeset
229
267
3f2021447193 setup ultisnips keys
zegervdv <zegervdv@me.com>
parents: 266
diff changeset
230 [ -f ~/.zshrc.local ] && source ~/.zshrc.local
491
f1d1eab204aa Fix paths to nvim for SUDO_EDITOR
zegervdv <zegervdv@me.com>
parents: 490
diff changeset
231
f1d1eab204aa Fix paths to nvim for SUDO_EDITOR
zegervdv <zegervdv@me.com>
parents: 490
diff changeset
232 # Must run after brew is loaded
f1d1eab204aa Fix paths to nvim for SUDO_EDITOR
zegervdv <zegervdv@me.com>
parents: 490
diff changeset
233 export SUDO_EDITOR=$(which nvim)
508
ee04e4821479 load direnv settings
zegervdv <zegervdv@me.com>
parents: 506
diff changeset
234 eval "$(direnv hook zsh)"
540
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
235
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
236 source ~/.zsh/zsh-history-substring-search.zsh
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
237 export HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=green,fg=black'
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
238
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
239 source ~/.zsh/zsh-autosuggestions.zsh
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
240
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
241 source ~/.zsh/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
242
559
a47f3aab0371 Use machine specific history database
Zeger Van de Vannet <zegervdv@me.com>
parents: 553
diff changeset
243 export HISTDB_FILE="${HOME}/.histdb/zsh-history-$(hostname).db"
540
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
244 source ~/.zsh/zsh-histdb/sqlite-history.zsh
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
245 source ~/.zsh/fzf-histdb.zsh
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
246
546
06df3dcf5d96 Add jq zsh plugin
zegervdv <zegervdv@me.com>
parents: 544
diff changeset
247 source ~/.zsh/jq-zsh-plugin/jq.plugin.zsh
06df3dcf5d96 Add jq zsh plugin
zegervdv <zegervdv@me.com>
parents: 544
diff changeset
248
542
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
249 # The plugin will auto execute this zvm_after_init function
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
250 function zvm_after_init() {
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
251 [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
252 bindkey '^r' histdb-fzf-widget
569
5579d087173a Map <c-u> in zsh to kill current line
zegervdv <zegervdv@me.com>
parents: 567
diff changeset
253
5579d087173a Map <c-u> in zsh to kill current line
zegervdv <zegervdv@me.com>
parents: 567
diff changeset
254 # Postpone current command to next prompt
542
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
255 bindkey '^t' push-line-or-edit
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
256
569
5579d087173a Map <c-u> in zsh to kill current line
zegervdv <zegervdv@me.com>
parents: 567
diff changeset
257 # Cut current command into killring
5579d087173a Map <c-u> in zsh to kill current line
zegervdv <zegervdv@me.com>
parents: 567
diff changeset
258 bindkey '^u' backward-kill-line
5579d087173a Map <c-u> in zsh to kill current line
zegervdv <zegervdv@me.com>
parents: 567
diff changeset
259
542
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
260 bindkey '^[[A' history-substring-search-up
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
261 bindkey '^[[B' history-substring-search-down
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
262 bindkey "$terminfo[kcuu1]" history-substring-search-up
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
263 bindkey "$terminfo[kcud1]" history-substring-search-down
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
264 bindkey '^p' history-substring-search-up
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
265 bindkey '^n' history-substring-search-down
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
266
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
267 bindkey '^f' autosuggest-accept
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
268 }
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
269
89769aa79628 add zsh-vi-mode plugin
zegervdv <zegervdv@me.com>
parents: 540
diff changeset
270 source ~/.zsh/zsh-vi-mode.zsh
540
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
271
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
272 _zsh_autosuggest_strategy_histdb_top_here() {
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
273 local query="select commands.argv from
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
274 history left join commands on history.command_id = commands.rowid
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
275 left join places on history.place_id = places.rowid
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
276 where places.dir LIKE '$(sql_escape $PWD)%'
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
277 and commands.argv LIKE '$(sql_escape $1)%'
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
278 group by commands.argv order by count(*) desc limit 1"
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
279 suggestion=$(_histdb_query "$query")
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
280 }
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
281
9036f18c5ad4 restructure zshrc to load all paths before loading plugins
zegervdv <zegervdv@me.com>
parents: 539
diff changeset
282 ZSH_AUTOSUGGEST_STRATEGY=histdb_top_here
544
c071fc2dc6fc Run compinit after loading all plugins and functions
zegervdv <zegervdv@me.com>
parents: 542
diff changeset
283
c071fc2dc6fc Run compinit after loading all plugins and functions
zegervdv <zegervdv@me.com>
parents: 542
diff changeset
284 autoload -U compinit && compinit