-
Notifications
You must be signed in to change notification settings - Fork 2
/
.zshrc
143 lines (112 loc) · 4 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
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
# Operating system detection
if [[ -a /etc/os-release ]]; then source /etc/os-release; fi
if [[ NAME == "Arch Linux" ]]; then
DISTRO=ARCH
fi
if [[ $(uname -s) == Darwin ]]; then
DISTRO=DARWIN
else if [[ $(uname -o) == Cygwin ]]; then
DISTRO=CYGWIN
fi
fi
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
if [[ -z $ZSH_THEME ]]; then
ZSH_THEME="mortalscumbag"
fi
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
# Comment this out to disable bi-weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"
# Uncomment to change how often before auto-updates occur? (in days)
# export UPDATE_ZSH_DAYS=13
# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want to disable command autocorrection
# DISABLE_CORRECTION="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
#COMPLETION_WAITING_DOTS="true"
# Uncomment following line if you want to disable marking untracked files under
# VCS as dirty. This makes repository status check for large repositories much,
# much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
base_plugins=(git cp rails mercurial colorize battery colored-man-pages history-substring-search toolbox)
# Generic base plugins
plugins=($base_plugins)
# Arch Linux plugins
if [[ $DISTRO == ARCH ]]; then
plugins=($base_plugins archlinux)
fi
# Mac OS X plugins
if [[ $DISTRO == DARWIN ]]; then
plugins=($base_plugins osx brew)
fi
# Use Antigen
source ~/antigen/antigen.zsh
antigen bundles <<EOF
zsh-users/zsh-syntax-highlighting
EOF
antigen apply
# We load zsh after Antigen because apparently history-substring-search is incompatible with zsh-syntax-highlighting
source $ZSH/oh-my-zsh.sh
# Customize to your needs...
# done in .profile nowadays
# export PATH=$PATH:~/bin
# TODO
if [ -d ~/.local/bin/ ]; then
export PATH=$PATH:~/.local/bin/
fi
# Load user-level completions. This is here because it's an extension, not POSIX.
source ~/.bin/bash_completion/*
if [[ $(hostname) == steevie ]]; then
autoload -U up-line-or-beginning-search
autoload -U down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search
bindkey "^[[A" up-line-or-beginning-search # Up
bindkey "^[[B" down-line-or-beginning-search # Down
fi
source ~/.zprofile
# This would be better in .profile, but unfortunately that needs to be only POSIX and POSIX doesn't have `command`
function git() {
if [[ $1 == 'log' ]]; then
shift
command git log --graph --decorate $@
else
command git $@
fi
}
# nvm
# When in .profile this script throws parse errors because of emulate sh -c
export NVM_DIR="$HOME/.nvm"
if [[ -f /usr/share/nvm/init-nvm.sh ]]; then
source /usr/share/nvm/init-nvm.sh
fi
[[ -s "$NVM_DIR/nvm.sh" ]] && \. "$NVM_DIR/nvm.sh"
[[ -s "$NVM_DIR/bash_completion" ]] && \. "$NVM_DIR/bash_completion"
type pyenv >/dev/null && eval "$(pyenv init -)"
# See /usr/share/zsh/functions/Misc/run-help; this seems like it's supposed to work out of the box but doesn't?
# TODO report this bug to Debian
[[ -d /usr/share/zsh/help ]] && local HELPDIR=${HELPDIR:-/usr/share/zsh/help}
set -o EXTENDED_GLOB
set -o KSH_GLOB
# Install run-help helpers
# The pattern that looks like voodoo matches ZSH version numbers, equivalent to [[:digit:].]+ in regex
for i in /usr/share/zsh/(+([[:digit:].])/)#functions/(Misc/)#run-help-*(:t); do
autoload -Uz $i
done
# Misc
autoload -Uz tetris
autoload -Uz tetriscurses