-
Notifications
You must be signed in to change notification settings - Fork 1
/
.zshrc
92 lines (75 loc) · 2.2 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
# update dotfiles automatically
if [ -f "${HOME}/.config/zsh/dotfiles-autoupdate.zsh" ]; then
source "${HOME}/.config/zsh/dotfiles-autoupdate.zsh"
fi
# add ~/.local/bin to path
mkdir -p $HOME/.local/bin
export PATH="$HOME/.local/bin:$PATH"
ZGEN_RESET_ON_CHANGE=(${HOME}/.zshrc)
# fix for slow git completion
# must come before loading plugins
__git_files () {
_wanted files expl 'local files' _files
}
# run before loading oh-my-zsh compleat
# https://github.com/robbyrussell/oh-my-zsh/issues/3234
autoload -Uz compinit
compinit
# clone zgen if not present
[ ! -d "${HOME}/.zgen" ] && git clone https://github.com/tarjoilija/zgen.git "${HOME}/.zgen"
# sanity check for above failing:
# source zgen only if it exists
if [ -f "${HOME}/.zgen/zgen.zsh" ]; then
source "${HOME}/.zgen/zgen.zsh"
if ! zgen saved; then
# specify plugins here
zgen oh-my-zsh
zgen oh-my-zsh plugins/git
zgen oh-my-zsh plugins/sudo
zgen oh-my-zsh plugins/command-not-found
zgen oh-my-zsh plugins/pass
zgen oh-my-zsh plugins/compleat
zgen oh-my-zsh plugins/wd
zgen oh-my-zsh plugins/dotenv
zgen oh-my-zsh plugins/gitfast
zgen oh-my-zsh plugins/git
zgen oh-my-zsh plugins/z
zgen oh-my-zsh plugins/ufw
zgen oh-my-zsh plugins/dirhistory
zgen load MichaelAquilina/zsh-you-should-use
zgen load supercrabtree/k
zgen load zlsun/solarized-man
zgen load $HOME/.config/zsh/colors.zsh
zgen load $HOME/.config/zsh/alias.zsh
zgen load $HOME/.config/zsh/find-missing-cmds.zsh
zgen load $HOME/.config/zsh/functions.zsh
zgen load $HOME/.config/zsh/remind.zsh
zgen load $HOME/.config/zsh/fortune.zsh
zgen load $HOME/.config/zsh/prompt.zsh
# generate the init script from plugins above
zgen save
fi
fi
# reset frozen terminals by misbehaving applications
ttyctl -f
# typing a dir's name, cd's into it
setopt auto_cd cdable_vars
# history settings
setopt histignorealldups sharehistory
HISTSIZE=50
SAVEHIST=50
HISTFILE=~/.bash_history
# set default editor
export EDITOR=nvim
case "$TERM" in
xterm*) TERM=xterm-256color
esac
# auto ls when cd'ing
chpwd() { ls }
# output only if we're in a virtual terminal
if tty | grep -q /dev/pts; then
show_remind
show_fortune
fi
show_prompt
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh