]> git.draconx.ca Git - zshconf.git/blob - zshrc
Fix history search bindings for Colemak.
[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=10000
13 fi
14 HISTSIZE=10000
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 cons25)
42         bindkey '^?'    delete-char
43         bindkey '\e[F'  end-of-line
44         bindkey '\e[H'  beginning-of-line
45 ;;
46 esac
47
48 # Keymap-specific bindings
49 case $KEYMAP in
50 colemak)
51         bindkey '^R'    history-incremental-search-forward
52         bindkey '^P'    history-incremental-search-backward
53         ;;
54 esac
55
56 # Set the xterm title
57 case $TERM in
58         xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
59                 settitle() { print -Pn $'\e]0;%n@%m %33<...<%~%<<\a' }
60                 ;;
61         screen)
62                 settitle() { print -Pn $'\e_%n@%m %33<...<%~%<<\e\\' }
63                 ;;
64         *)
65                 settitle() { }
66                 ;;
67 esac
68
69 # Show the return code of failed commands, but don't be noisy about it.
70 precmd() {
71         settitle
72
73         if [[ -n $__NEWRUN ]]; then
74                 RPS1='%(0?,,%B%F{red}RC=%?%f%b)'
75                 unset __NEWRUN
76         else
77                 unset RPS1
78         fi
79 }
80
81 preexec() {
82         __NEWRUN=yes
83 }
84
85 # A gentoo-like prompt.
86 PS1='%B%(!,%F{red},%F{green}%n@)%m %F{blue}%33<...<%~%<< %#%f%b '
87
88 if [ -n $COLORTERM ]; then
89         # Assorted colour-related options
90         export MINICOM="-c on"
91 fi
92
93 if [[ -n $SSH_CONNECTION ]]; then
94         PS1=${PS1/green/yellow}
95 fi
96
97 # Locale
98 export LANG=en_CA.UTF-8
99 export LC_COLLATE=ja_JP.UTF-8
100
101 # Default options for various utilities.
102 alias ls='ls --time-style=long-iso --color=auto'
103 alias grep='grep --color=auto'
104
105 # I hate mistakes
106 alias mv='mv -i'
107 alias rm='rm -i'
108 alias cp='cp -i'