about summary refs log tree commit diff
path: root/.config/zsh/.zshrc
diff options
context:
space:
mode:
authorStarfall <us@starfall.systems>2020-07-18 15:26:47 -0500
committerStarfall <us@starfall.systems>2020-07-18 15:35:24 -0500
commit63ad1cd90176f83b5706582fe9885cd4ef165cc7 (patch)
tree51367ed665d01d2a519473cf6a8815e1a7ea70a9 /.config/zsh/.zshrc
parent19c591315da3c2488f3b00a6b4003387c1c71490 (diff)
zsh: basic config
Diffstat (limited to '.config/zsh/.zshrc')
-rw-r--r--.config/zsh/.zshrc38
1 files changed, 38 insertions, 0 deletions
diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc
new file mode 100644
index 0000000..b5b37ce
--- /dev/null
+++ b/.config/zsh/.zshrc
@@ -0,0 +1,38 @@
+# magic cd
+setopt autocd
+export CDPATH=".:$HOME:$HOME/devil:$HOME/src"
+
+# vi mode
+bindkey -v
+# make backspace and delete behave like vim
+bindkey -M viins '^?' backward-delete-char
+bindkey -M viins '^H' backward-delete-char
+bindkey -M viins '^[[3~' delete-char
+# display block cursor in normal mode
+function zle-keymap-select zle-line-init zle-line-finish {
+	case $KEYMAP in
+		vicmd)      echo -ne "\e[2 q";;
+		viins|main) echo -ne "\e[6 q";;
+	esac
+	zle reset-prompt
+	zle -R
+}
+zle -N zle-keymap-select
+zle -N zle-line-init
+zle -N zle-line-finish
+
+# aliases
+alias cls=clear
+alias config='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
+alias ls='ls --color=auto'
+alias ll='ls -l --almost-all --no-group --human-readable'
+
+# collapse spaces into tabs in-place
+# spacetotab <FILE> [WIDTH=4]
+function spacetotab () {
+	unexpand --tabs=${2:-4} --first-only "$1" > "$1.tmp"
+	mv "$1.tmp" "$1"
+}
+
+# display a fortune when opening an interactive terminal
+tty -s && fortune $HOME/fortunes 2>/dev/null ||: