-
Notifications
You must be signed in to change notification settings - Fork 0
/
.zshrc
113 lines (88 loc) · 2.67 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
# Uncomment this line and add zprof at the bottom for startup time profiling
# zmodload zsh/zprof
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
bindkey -v
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle :compinstall filename '/home/marco/.zshrc'
zstyle ':completion:*' use-cache true
# Initialize completion and avoid regenerating cache unless older than 24h
# Also zcompile it for a little faster loading
#
# This is a modified version of
# https://gist.github.com/ctechols/ca1035271ad134841284
# https://gist.github.com/ctechols/ca1035271ad134841284#gistcomment-3109177
autoload -Uz compinit
() {
local zcompdump="${ZDOTDIR:-${HOME}}/.zcompdump"
local regen_msg="Regenerating completion cache"
if [ "$zcompdump"(N.mh+24) ]; then
printf "%s" "$regen_msg" >&2
compinit
compdump
zcompile "$zcompdump"
printf "\r%s\r" "${regen_msg//?/ }" >&2
else
compinit -C;
fi
}
setopt hist_ignore_space hist_ignore_dups hist_ignore_all_dups
setopt hist_reduce_blanks
setopt correct
# Reduce wait after <Esc> (maybe other keys) is pressed
# This makes <Esc><any key> work when typed quickly
KEYTIMEOUT=1
# Load version control information
autoload -Uz vcs_info
precmd() { vcs_info; }
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:git:*' formats '%B%F{green} %b%f%%b'
setopt PROMPT_SUBST
setopt TRANSIENT_RPROMPT
# Setup prompt
# Anonymous function for scoping
() {
local userhost='%B%F{red}%n%F{white}@%F{red}%m%f%b'
local dir='%B%F{yellow}%~%f%b'
local vcs='${vcs_info_msg_0_}'
local symbol='%(?..%B%F{9})%#%b%f'
local nnn="%F{yellow}${NNNLVL:+nnn:$NNNLVL }%f"
local ncdu="%F{yellow}${NCDU_LEVEL:+ncdu:$NCDU_LEVEL }%f"
PROMPT="$userhost $dir $nnn$ncdu$vcs
$symbol "
}
# Setup rprompt
() {
local mode='${_zmode:+ $_zmode}'
local exitcode='%(?;;[%F{red}%B%?%b%f])'
RPROMPT="$exitcode$mode"
RPROMPT2="$exitcode$mode"
}
# Aliases
source ~/.zsh/aliases.zsh
# Functions
source ~/.zsh/functions.zsh
# Bindings
# Make zsh's vi mode better
bindkey "^?" backward-delete-char
bindkey "^W" backward-kill-word
bindkey "^H" backward-delete-char
bindkey "^U" backward-kill-line
# Allow shift-Tab to go back in completion
bindkey "^[[Z" reverse-menu-complete
# Search through hitory with current text
bindkey "^[[A" up-line-or-search
bindkey "^[[B" down-line-or-search
# Named directories
hash -d -- uni=~/Documentos/uni
hash -d -- cur=~uni/cur
hash -d -- t1=~uni/t1
hash -d -- t2=~uni/t2
hash -d -- t3=~uni/t3
hash -d -- t4=~uni/t4
hash -d -- kdec=~/Descargas/kdeconnect
() {
local fzf_file="/usr/share/fzf/shell/key-bindings.zsh"
[ -f "$fzf_file" ] && source "$fzf_file" || true
}