]> git.draconx.ca Git - zshconf.git/blob - zshrc
03762598d9d45232aa16da7b0b7d53f6127ecc0b
[zshconf.git] / zshrc
1 # Configuration for interactive shells.
2 #
3 # Copyright (C) 2009 Nick Bowler
4 #
5 # Copying and distribution of this file, with or without modification,
6 # are permitted in any medium without royalty provided the copyright
7 # notice and this notice are preserved.  This file is offered as-is,
8 # without any warranty.
9
10 if [[ -n $HOME ]]; then
11         HISTFILE=$HOME/.zsh_history
12         SAVEHIST=1000
13 fi
14 HISTSIZE=1000
15
16 bindkey -e
17
18 case $TERM in
19 rxvt*)
20         if [[ $TERM == rxvt-unicode ]]; then
21                 [[ -z $COLORTERM ]] && export COLORTERM='rxvt-xpm'
22                 [[ -z $COLORFGBG ]] && export COLORFGBG='15;default;0'
23         fi
24
25         bindkey '\e[3~' delete-char
26         bindkey '\e[8~' end-of-line
27         bindkey '\e[7~' beginning-of-line
28 ;;
29 screen*|linux)
30         bindkey '\e[3~' delete-char
31         bindkey '\e[4~' end-of-line
32         bindkey '\e[1~' beginning-of-line
33 ;;
34 xterm)
35         bindkey '\e[3~' delete-char
36         bindkey '\e[F'  end-of-line
37         bindkey '\e[H'  beginning-of-line
38         bindkey '\eOH'  beginning-of-line
39         bindkey '\eOF'  end-of-line
40 ;;
41 esac
42
43 # Set the xterm title
44 case $TERM in
45         xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
46                 settitle() { print -Pn $'\e]0;%n@%m %33<...<%~%<<\a' }
47                 ;;
48         screen)
49                 settitle() { print -Pn $'\e_%n@%m %33<...<%~%<<\e\\' }
50                 ;;
51         *)
52                 settitle() { }
53                 ;;
54 esac
55
56 # Show the return code of failed commands, but don't be noisy about it.
57 precmd() {
58         settitle
59
60         if [[ -n $__NEWRUN ]]; then
61                 RPS1='%(0?,,%B%F{red}RC=%?%f%b)'
62                 unset __NEWRUN
63         else
64                 unset RPS1
65         fi
66 }
67
68 preexec() {
69         __NEWRUN=yes
70 }
71
72 # A gentoo-like prompt.
73 PS1='%B%(!,%F{red},%F{green}%n@)%m %F{blue}%33<...<%~%<< %#%f%b '
74
75 if [ -n $COLORTERM ]; then
76         # Assorted colour-related options
77         export MINICOM="-c on"
78 fi
79
80 if [[ -n $SSH_CONNECTION ]]; then
81         PS1=${PS1/green/yellow}
82 fi
83
84 # Locale
85 export LANG=en_CA.UTF-8
86 export LC_COLLATE=ja_JP.UTF-8
87
88 # I like colours
89 alias ls='ls --color=auto'
90 alias grep='grep --color=auto'
91
92 # I hate mistakes
93 alias mv='mv -i'
94 alias rm='rm -i'
95 alias cp='cp -i'