summary refs log tree commit diff stats
path: root/tag-zsh/config/zsh/zshrc
blob: 0004ec7607a12b1f1ded28fe6b41f379bf968b5d (plain)
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
# -*- mode: sh; -*-
source ${ZPLUG_HOME:-~/projects/zplug}/init.zsh

zplug "zsh-users/zsh-completions"
zplug "mafredri/zsh-async"
zplug "sindresorhus/pure", on:"mafredri/zsh-async"
zplug "Tarrasch/zsh-autoenv", as:plugin
zplug "clvv/fasd", hook-build:"PREFIX=$HOME make install"
zplug "tymm/zsh-directory-history", as:command, use:"dir{hist,log}"
zplug "tymm/zsh-directory-history", as:plugin

WORDCHARS=${${WORDCHARS//[-.]}//[\/]}

if [[ ${path[(I)$HOME/bin ]} ]]
then
	path+=($HOME/bin)
fi

ls='\ls'
gnu_ls_options="-v --group-directories-first --color=auto"
gnu_ls_isodate="--time-style=long-iso"
bsd_ls_options="-p"
bsd_ls_isodate="-D '%F %k:%M'"

case $OSTYPE in
	darwin*)
		if [[ -n $commands[gls] ]]
		then
			ls='\gls'
			ls_options=$gnu_ls_options
			ls_isodate=$gnu_ls_isodate
		else
			ls_options=$bsd_ls_options
			ls_isodate=$bsd_ls_isodate
		fi
		;;
	freebsd*)
		ls_options=$bsd_ls_options
		ls_isodate=$bsd_ls_isodate
		;;
	linux-gnu)
		ls_options=$gnu_ls_options
		ls_isodate=$gnu_ls_isodate
		;;
esac
alias l="${ls} ${ls_options} -Bp"
alias l1="${ls} ${ls_options} -1"
alias ls="${ls} ${ls_options} -hF"
alias la="${ls} ${ls_options} -hA"
alias ll="${ls} ${ls_options} ${ls_isodate} -hl"
alias lal="ll -A"
alias lla="lal"
alias llr="ll -t"

bindkey '\e[3~' delete-char

if zplug check Tarrasch/zsh-autoenv
then
	AUTOENV_FILE_ENTER=.envrc
	AUTOENV_HANDLE_LEAVE=0
	AUTOENV_LOOK_UPWARDS=1
fi

if zplug check sindresorhus/pure
then
	PURE_GIT_PULL=0
fi

# Then, source plugins and add commands to $PATH
zplug load

# General configuration
setopt auto_cd 					# Change directories without `cd`

if zplug check zsh-users/zsh-completions
then
	autoload -U compinit && compinit
fi

if zplug check sindresorhus/pure
then
	autoload -Uz promptinit && promptinit
	prompt pure &> /dev/null
fi

if zplug check clvv/fasd
then
	if [[ -n $commands[fasd] ]]
	then
		_FASD_DATA="$HOME/.cache/zsh/fasd-data"
		source =fasd

		fasd_cache="$HOME/.fasd-init-zsh"
		if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
			fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install >| "$fasd_cache"
		fi
		source "$fasd_cache"
		unset fasd_cache
	else
		echo "no fasd"
	fi
fi

if zplug check tymm/zsh-directory-history
then
	unsetopt flow_control 			# Let me use ^S and ^Q
	# bindkey '\e[A' directory-history-search-backward
	# bindkey '\e[B' directory-history-search-forward

	bindkey -M emacs '^R' history-substring-search-up
	bindkey -M emacs '^S' history-substring-search-down
fi