forked from bresilla/dotfiles_old
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.zshrc
169 lines (136 loc) · 4.87 KB
/
.zshrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#!/bin/zsh
#--------------------------------------------------------------------------------------------------------------------
###SCRIPTS PATH
export FPATH=~/.zsh:$FPATH
#export PATH=~/.scripts:$PATH
###FUNCTIONS
for file in ~/.func/*; do
source "$file"
done
###SECRETS
[ -f ~/secret ] && source ~/secret
###COLOR OUTPUTS
autoload -U colors && colors
alias grep="grep --color=auto"
###CASE INSENSITIVE
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
#--------------------------------------------------------------------------------------------------------------------
###HISTORY STAFF
HISTFILE=~/.zsh_history
HISTSIZE=100000
SAVEHIST=100000
setopt append_history
setopt sharehistory
setopt incappendhistory
setopt inc_append_history
setopt hist_ignore_all_dups
export HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1
setopt hist_reduce_blanks
setopt hist_ignore_space
setopt interactive_comments
setopt correct
setopt no_beep
setopt prompt_subst
#--------------------------------------------------------------------------------------------------------------------
###FASD and ENHANCD
[ -f ~/.zsh/enhancd/./init.sh ] && source ~/.zsh/enhancd/./init.sh
eval "$(fasd --init posix-alias zsh-hook)"
#--------------------------------------------------------------------------------------------------------------------
###PERCON AUTOSUGESTION
function exists { which $1 &> /dev/null }
if exists percol; then
function percol_select_history() {
local tac
exists gtac && tac="gtac" || { exists tac && tac="tac" || { tac="tail -r" } }
BUFFER=$(fc -l -n 1 | eval $tac | percol --query "$LBUFFER")
CURSOR=$#BUFFER # move cursor
zle -R -c # refresh
}
zle -N percol_select_history
bindkey '^R' percol_select_history
bindkey -M vicmd '^R' percol_select_history
fi
#--------------------------------------------------------------------------------------------------------------------
###FUZZYFINDER
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
fzf_history() {
zle -I; eval $(history | fzf +s | sed 's/ *[0-9]* *//') ; }
zle -N fzf_history
bindkey '^H' fzf_killps
bindkey -M vicmd '^H' fzf_killps
fzf_killps() {
zle -I; ps -ef | sed 1d | fzf -m | awk '{print $2}' | xargs kill -${1:-9} ; }
zle -N fzf_killps
bindkey '^X' fzf_killps
bindkey -M vicmd '^X' fzf_killps
fzf_cd() {
zle -I; DIR=$(find ${1:-*} -path '*/\.*' -prune -o -type d -print 2> /dev/null | fzf) && cd "$DIR" ; }
zle -N fzf_cd
bindkey '^E' fzf_cd
bindkey -M vicmd '^E' fzf_cd
fzf_locate() {
zle -I; xdg-open "$(locate "*" | fzf -e)" ;}
zle -N fzf_locate
bindkey '^L' fzf_locate
bindkey -M vicmd '^L' fzf_locate
fzf-file() {
LBUFFER="${LBUFFER}$(__fsel)"
local ret=$?
zle redisplay; typeset -f zle-line-init >/dev/null && zle zle-line-init; return $ret}
zle -N fzf-file
bindkey '^P' fzf-file
bindkey -M vicmd '^P' fzf-file
#--------------------------------------------------------------------------------------------------------------------
###VI MODE
bindkey -v
KEYTIMEOUT=1
function zle-line-init zle-keymap-select {
RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}"
RPS2=$RPS1
zle reset-prompt
}
zle -N zle-line-init
zle -N zle-keymap-select
bindkey -a u undo
bindkey -a '^T' redo
bindkey '^?' backward-delete-char
bindkey -M viins '^r' history-incremental-search-backward
bindkey -M vicmd '^r' history-incremental-search-backward
#--------------------------------------------------------------------------------------------------------------------
# Double press [Esc] [Esc] to add last command sudo
sudo-command-line() {
[[ -z $BUFFER ]] && zle up-history
if [[ $BUFFER == sudo\ * ]]; then
LBUFFER="${LBUFFER#sudo }"
elif [[ $BUFFER == $EDITOR\ * ]]; then
LBUFFER="${LBUFFER#$EDITOR }"
LBUFFER="sudoedit $LBUFFER"
elif [[ $BUFFER == sudoedit\ * ]]; then
LBUFFER="${LBUFFER#sudoedit }"
LBUFFER="$EDITOR $LBUFFER"
else
LBUFFER="sudo $LBUFFER"
fi
}
zle -N sudo-command-line
bindkey -M vicmd "\e\e" sudo-command-line
#--------------------------------------------------------------------------------------------------------------------
###BOUNDLES
[ -f ~/.antigen/antigen.zsh ] && source ~/.antigen/antigen.zsh
antigen bundle supercrabtree/k
antigen bundle psprint/zsh-navigation-tools
antigen bundle willghatch/zsh-snippets
antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-syntax-highlighting
antigen bundle zsh-users/zsh-history-substring-search
antigen apply
#--------------------------------------------------------------------------------------------------------------------
###MODULES & ALIASES
[ -f ~/.alias ] && source ~/.alias
source ~/.zsh/texas_init.zsh
source ~/.zsh/theme.sh
source ~/.zsh/extract.plugin.zsh
source ~/.zsh/zsh-syntax-highlighting.zsh
source ~/.zsh/zsh-history-substring-search.zsh
source ~/.zsh/zsh-miscellaneous.zsh