diff options
Diffstat (limited to '.zshrc')
-rw-r--r-- | .zshrc | 95 |
1 files changed, 95 insertions, 0 deletions
@@ -0,0 +1,95 @@ +# Luke's config for the Zoomer Shell + +# Enable colors and change prompt: +autoload -U colors && colors # Load colors +export PS1="%{$(tput setaf 34)%}%n%{$(tput setaf 40)%}@%{$(tput setaf 46)%}%m %{$(tput setaf 154)%}%1~ %{$(tput sgr0)%}$ " +setopt autocd # Automatically cd into typed directory. +stty stop undef # Disable ctrl-s to freeze terminal. +setopt interactive_comments + +# History in cache directory: +HISTSIZE=10000000 +SAVEHIST=10000000 +HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history" +setopt inc_append_history + +# Load aliases and shortcuts if existent. +[ -f "$HOME/.config/shell/envvarrc" ] && source "$HOME/.config/shell/envvarrc" +[ -f "$HOME/.config/shell/aliasrc" ] && source "$HOME/.config/shell/aliasrc" +[ -f "$HOME/.config/shell/funcrc" ] && source "$HOME/.config/shell/funcrc" + +# Basic auto/tab complete: +autoload -U compinit +zstyle ':completion:*' menu select +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 -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 +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. + +# Edit line in vim with ctrl-e: +autoload edit-command-line; zle -N edit-command-line +bindkey '^e' edit-command-line +bindkey -M vicmd '^[[P' vi-delete-char +bindkey -M vicmd '^e' edit-command-line +bindkey -M visual '^[[P' vi-delete + +# Use custom options remaps from the script +remaps + +# Exit even of there are running jobs +setopt NO_CHECK_JOBS + +### Added by Zinit's installer +if [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]]; then + print -P "%F{33} %F{220}Installing %F{33}ZDHARMA-CONTINUUM%F{220} Initiative Plugin Manager (%F{33}zdharma-continuum/zinit%F{220})…%f" + command mkdir -p "$HOME/.local/share/zinit" && command chmod g-rwX "$HOME/.local/share/zinit" + command git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" && \ + print -P "%F{33} %F{34}Installation successful.%f%b" || \ + print -P "%F{160} The clone has failed.%f%b" +fi + +source "$HOME/.local/share/zinit/zinit.git/zinit.zsh" +autoload -Uz _zinit +(( ${+_comps} )) && _comps[zinit]=_zinit + +# Load a few important annexes, without Turbo +# (this is currently required for annexes) +zinit light-mode for \ + zdharma-continuum/zinit-annex-as-monitor \ + zdharma-continuum/zinit-annex-bin-gem-node \ + zdharma-continuum/zinit-annex-patch-dl \ + zdharma-continuum/zinit-annex-rust + +### End of Zinit's installer chunk + +# Load plugins with zinit +zinit ice depth=1 +zinit light jeffreytse/zsh-vi-mode +ZVM_VI_INSERT_ESCAPE_BINDKEY=jk +zinit light zsh-users/zsh-syntax-highlighting |