HISTFILE=~/.histfile HISTSIZE=1000 SAVEHIST=1000 setopt autocd beep extendedglob nomatch # start command with a space to prevent it from saving to histfile : setopt HIST_IGNORE_SPACE bindkey -v autoload -Uz compinit promptinit compinit promptinit PS1='%B%F{magenta}[%n@%m %1~]%f%F{blue}%(#.#.$)%f %b' zstyle ':completion:*' menu select # page home and page end bindkey "^[[H" beginning-of-line bindkey "^[[F" end-of-line export EDITOR=nvim # aliases alias v="nvim" # Change cursor shape for different vi modes. function zle-keymap-select { if [[ ${KEYMAP} == vicmd ]] || [[ $1 = 'block' ]]; then echo -ne '\e[1 q' elif [[ ${KEYMAP} == main ]] || [[ ${KEYMAP} == viins ]] || [[ ${KEYMAP} = '' ]] || [[ $1 = 'beam' ]]; then echo -ne '\e[5 q' fi } 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.