dotfiles/zsh/zshrc

52 lines
1.4 KiB
Bash

#!/bin/zsh
# Set up zsh for interactive use (options, prompt, aliases, etc.)
# Source additional configurations if available.
while read -r f; do [ -f "$f" ] && source "$f"; done <<EOL
$ZDOTDIR/aliases
$ZDOTDIR/prompt
$ZDOTDIR/solarized
EOL
unset f
# Prevent ctrl-s from freezing the terminal.
stty stop undef
# Save a lot of history.
HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/zsh/history"
HISTSIZE=1000000
SAVEHIST=1000000
# Use vi mode for line editing.
bindkey -v
# Use beam cursor on each new prompt
precmd() { echo -ne '\e[5 q'; }
# Switch cursor shape depending on editing mode.
zle-keymap-select() {
case $KEYMAP in
vicmd) echo -ne '\e[1 q';; # block cursor for command mode
viins|main) echo -ne '\e[5 q';; # beam cursor for insert mode
esac
}
zle -N zle-keymap-select
#autoload -U compinit
zstyle ':completion:*' menu select
#autoload -U compinit && compinit
# bindkey -M menuselect 'h' vi-backward-char
# bindkey -M menuselect 'k' vi-up-line-or-history
# bindkey -M menuselect 'l' vi-forward-char
# bindkey -M menuselect 'j' vi-down-line-or-history
# Search through history in insert mode.
bindkey -M viins '^j' history-beginning-search-forward
bindkey -M viins '^k' history-beginning-search-backward
# Restore some common and useful emacs mode shortcut.
bindkey -M viins '^a' vi-beginning-of-line
bindkey -M viins '^e' vi-end-of-line
bindkey -M viins '^l' clear-screen