aboutsummaryrefslogtreecommitdiff
path: root/zshrc.dot.link
blob: d873658d7489a056164b1f0314ca55a60b7a1397 (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
# Source default profile
source ~/.profile

# Set up the prompt
autoload -Uz promptinit && promptinit
autoload -U colors && colors
PROMPT="%(?.%{$fg[green]%}.%{$fg[red]%})%? %{$fg[cyan]%}$(date +%Y%m%d) %* %{$fg[yellow]%}%n@%m%{$reset_color%}:%{$fg[cyan]%}%~%{$reset_color%} %# "

# Set history
#setopt histignorealldups sharehistory
setopt histignorealldups

# Use emacs keybindings even if our EDITOR is set to vi
bindkey -e

# Keep 1000 lines of history within the shell and save it to ~/.zsh_history:
HISTSIZE=1000
SAVEHIST=1000
HISTFILE=~/.zsh_history

# Add custom completion scripts
fpath=(~/.zsh/completion $fpath)

# Use modern completion system
autoload -Uz compinit
compinit

# CD behavior
# Whishlist: https://superuser.com/questions/565310/silent-cd-using-cdpath-with-zsh/565396
setopt auto_cd

# Completion config
zstyle ':completion:*' accept-exact '*(N)'
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
zstyle ':completion:*:descriptions' format %d
zstyle ':completion:*:descriptions' format %B%d%b
zstyle ':completion:*:complete:(cd|pushd):*' tag-order 'local-directories named-directories path-directories'

# Speeding up zsh completion
# http://lethalman.blogspot.com/2009/10/speeding-up-zsh-completion.html
#zstyle ':completion:*' use-cache on
#zstyle ':completion:*' cache-path ~/.zsh/cache

# Git completion
# https://stackoverflow.com/questions/9810327/zsh-auto-completion-for-git-takes-significant-amount-of-time-can-i-turn-it-off/9810485#9810485
__git_files () {
  _wanted files expl 'local files' _files
}

# Powerline
# We're using $TTY as $WINDOWID won't be available on SSH sessions
#if [ ! -z "$WINDOWID" ] && [ "$TERM" != "linux" ] && [ -e '/usr/share/powerline/bindings/zsh/powerline.zsh' ]; then
if ! echo $TTY | grep -q '^/dev/tty' && [ "$TERM" != "linux" ] && [ -e '/usr/share/powerline/bindings/zsh/powerline.zsh' ]; then
  . /usr/share/powerline/bindings/zsh/powerline.zsh
fi