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