57 lines
1.3 KiB
Bash
57 lines
1.3 KiB
Bash
# Enable colors and change prompt:
|
|
autoload -U colors && colors # Load colors
|
|
PROMPT='%1~%f%b $ '
|
|
|
|
# gpg key for ssh authentication
|
|
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
|
export GPG_TTY=$(tty)
|
|
|
|
stty stop undef
|
|
setopt autocd
|
|
setopt interactive_comments
|
|
setopt noglob
|
|
|
|
# Load aliases
|
|
source $XDG_CONFIG_HOME/shell/aliases
|
|
|
|
HISTSIZE=10000
|
|
SAVEHIST=10000
|
|
HISTFILE=~/.cache/history
|
|
setopt INC_APPEND_HISTORY
|
|
setopt HIST_IGNORE_ALL_DUPS
|
|
|
|
# Basic auto/tab complete:
|
|
autoload -U compinit
|
|
zmodload zsh/complist
|
|
compinit
|
|
_comp_options+=(globdots) # Include hidden files.
|
|
|
|
# vi mode
|
|
bindkey -v
|
|
export KEYTIMEOUT=1
|
|
|
|
# Use vim keys in tab complete menu:
|
|
bindkey -v '^?' backward-delete-char
|
|
|
|
# Change cursor shape for different vi modes.
|
|
function zle-keymap-select () {
|
|
case $KEYMAP in
|
|
vicmd) echo -ne '\e[1 q';; # block
|
|
viins|main) echo -ne '\e[5 q';; # beam
|
|
esac
|
|
}
|
|
zle -N zle-keymap-select
|
|
zle-line-init() {
|
|
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
|
echo -ne "\e[5 q"
|
|
}
|
|
zle -N zle-line-init
|
|
echo -ne '\e[5 q' # Use beam shape cursor on startup.
|
|
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
|
|
|
|
bindkey -s '^f' 'cd "$(dirname "$(fzf)")"\n'
|
|
|
|
bindkey -v '^r' 'history-incremental-search-backward'
|
|
|
|
bindkey '^[[P' delete-char
|