annotate dot_zshrc @ 261:217fba8117c8

Add zshrc file
author zegervdv <zegervdv@me.com>
date Sat, 23 May 2020 22:17:29 +0200
parents
children 44d179225271
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
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 export LC_ALL=$LANG
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
4
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
5 PROMPT='%F{cyan}%T%f %F{red}%m%f %F{blue}%~%b%f
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 %j > '
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
7
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
8
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
9 vim_ins_mode="%F{yellow}[INS]%f"
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 vim_cmd_mode="%F{green}[NRM]%f"
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 vim_mode=$vim_ins_mode
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
12
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 function zle-keymap-select {
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 vim_mode="${${KEYMAP/vicmd/${vim_cmd_mode}}/(main|viins)/${vim_ins_mode}}"
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 zle reset-prompt
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
16 }
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 zle -N zle-keymap-select
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
18
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 function zle-line-finish {
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
20 vim_mode=$vim_ins_mode
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 }
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 zle -N zle-line-finish
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
23
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
24 function TRAPINT() {
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 vim_mode=$vim_ins_mode
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 return $(( 128 + $1 ))
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 }
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
28
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 RPROMPT='${vim_mode}'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
30
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 zmodload -i zsh/complist
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
32
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
33 bindkey -v
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
34
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 export CLICOLOR=1
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
36 export LS_COLORS='no=00;37:fi=00:di=00;33:ln=04;36:pi=40;33:so=01;35:bd=40;33;01:'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
37
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
38 # Options
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
39 setopt monitor
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 setopt auto_cd
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
41 setopt cdablevars
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 setopt pushd_ignore_dups
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
43 setopt interactive_comments
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 setopt append_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 setopt inc_append_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 setopt hist_ignore_dups
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
47 setopt hist_find_no_dups
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 setopt hist_reduce_blanks
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 setopt extended_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 setopt hist_expire_dups_first
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 setopt hist_verify
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 setopt share_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 setopt transient_rprompt
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 setopt prompt_subst
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 setopt multios
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
56 setopt correct_all
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 setopt autopushd
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
58 setopt pushdminus
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 setopt pushdsilent
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
60 setopt nobeep
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
61 setopt notify
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
62 REPORTTIME=5
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
63
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
64 HISTSIZE=3000
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
65 SAVEHIST=3000
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
66 HISTFILE=~/.zsh_history
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
67
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
68 # Completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
69 setopt complete_in_word
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
70 setopt always_to_end
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
71 setopt auto_menu
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
72
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
73 # activate color-completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
74 zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
75
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
76 # format on completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
77 zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}completing %B%d%b%{\e[0m%}'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
78
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
79 # insert all expansions for expand completer
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
80 zstyle ':completion:*:expand:*' tag-order all-expansions
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
81 zstyle ':completion:*:history-words' list false
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
82
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
83 # activate menu
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
84 zstyle ':completion:*:history-words' menu yes
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
85
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
86 # ignore duplicate entries
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
87 zstyle ':completion:*:history-words' remove-all-dups yes
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
88 zstyle ':completion:*:history-words' stop yes
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
89
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
90 zstyle ':completion:*:matches' group 'yes'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
91 zstyle ':completion:*' group-name ''
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
92 if [[ "$NOMENU" -eq 0 ]] ; then
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
93 # if there are more than 5 options allow selecting from a menu
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
94 zstyle ':completion:*' menu select=5
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
95 else
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
96 # don't use any menus at all
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
97 setopt no_auto_menu
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
98 fi
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
99
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
100 zstyle ':completion:*:messages' format '%d'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
101 zstyle ':completion:*:options' auto-description '%d'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
102
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
103 # describe options in full
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
104 zstyle ':completion:*:options' description 'yes'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
105
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
106 # complete manual by their section
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
107 zstyle ':completion:*:manuals' separate-sections true
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
108 zstyle ':completion:*:manuals.*' insert-sections true
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
109 zstyle ':completion:*:man:*' menu yes select
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
110
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
111 # Search path for sudo completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
112 zstyle ':completion:*:sudo:*' command-path /usr/local/sbin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
113 /usr/local/bin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
114 /usr/sbin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
115 /usr/bin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
116 /sbin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
117 /bin \
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
118 /usr/X11R6/bin
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
119
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
120 # provide .. as a completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
121 zstyle ':completion:*' specal-dirs ..
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
122
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
123 # case insensitive path-completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
124 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
125
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
126 # nvim completion
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
127 zstyle ':completion::*:nvim:*' ignored-patterns '*.(o|hex|elf|pyc|pdf|dup)'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
128
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
129 autoload -U compinit && compinit
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
130
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
131 # fg when pressing Ctrl+Z
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
132 function fancy-ctrl-z () {
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
133 if [[ $#BUFFER -eq 0 ]]; then
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
134 if [[ $(jobs | wc -l) -gt 0 ]]; then
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
135 BUFFER='fg'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
136 zle accept-line
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
137 fi
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
138 else
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
139 zle push-input
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
140 zle clear-screen
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
141 fi
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
142 }
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
143 zle -N fancy-ctrl-z
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
144 bindkey '^Z' fancy-ctrl-z
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
145
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
146 # Aliases
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
147 alias l="ls -haltr --color"
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
148 alias ll="ls -haltr --color"
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
149 alias xclip='xclip -selection clipboard'
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
150
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
151 # Exports
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
152 export XDG_CONFIG_HOME=$HOME/.config
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
153 export PATH=$HOME/bin:$PATH
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
154
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
155 export EDITOR=nvim
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
156 export HGEDITOR=nvim
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
157
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
158 [ -f ~/.fzf.zsh ] &&source ~/.fzf.zsh
217fba8117c8 Add zshrc file
zegervdv <zegervdv@me.com>
parents:
diff changeset
159 export FZF_DEFAULT_COMMAND='ag -g ""'