Skip to content

Instantly share code, notes, and snippets.

@kbloom
Last active March 1, 2022 15:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kbloom/15942d09d54891948afb8b0c9edd472d to your computer and use it in GitHub Desktop.
Save kbloom/15942d09d54891948afb8b0c9edd472d to your computer and use it in GitHub Desktop.
.zshrc
KEYTIMEOUT=1
HISTFILE=~/.histfile
HISTSIZE=100000
SAVEHIST=100000
setopt appendhistory extendedglob interactivecomments
unsetopt autocd nomatch
unsetopt menucomplete automenu
bindkey -v
zstyle :compinstall filename "$HOME/.zshrc"
autoload -Uz compinit
compinit
setopt autopushd
autoload run-help
alias ls='ls --color=auto'
alias cp='cp -i'
alias rm='rm -i'
alias mv='mv -i'
WORDCHARS=${WORDCHARS/\/}
bindkey '^r' history-incremental-pattern-search-backward
source /usr/share/zgen/zgen.zsh
# A zle widget that autoformats a simple command line to have one
# arg per line.
function format-simple-command() {
local array=($=BUFFER)
local len=${#array[@]}
BUFFER=""
for (( i = 1 ; i <= $len; i++ )); do
if (( i > 1 )); then
BUFFER+=" "
fi
BUFFER+=$array[$i]
if (( i != $len )); then
BUFFER+=" \\
"
fi
done
}
zle -N format-simple-command
bindkey -M vicmd '\\f' format-simple-command
autoload -z edit-command-line
zle -N edit-command-line
bindkey -M vicmd '\\v' edit-command-line
# Turn F1 in viins mode into a no-op
# F1 is interpeted as ESC-O-P.
bindkey -M vicmd OP vi-add-next
V_KEYMAP=
# Updates editor information when the keymap changes.
function zle-keymap-select zle-line-init() {
V_KEYMAP=$KEYMAP
zle reset-prompt
zle -R
}
function clear-screen() {
V_KEYMAP=$KEYMAP
echoti clear
zle reset-prompt
zle redisplay
}
zle -N clear-screen
zle -N zle-keymap-select
zle -N zle-line-init
autoload -U colors && colors
function vi_mode_prompt_info() {
echo "${${V_KEYMAP/vicmd/CMD}/(main|viins)/INS}"
}
function vi_mode_color() {
echo "${${V_KEYMAP/vicmd/$fg[red]}/(main|viins)/$fg[yellow]}"
}
setopt prompt_subst
PS1='%{%B$(vi_mode_color)%}[$(vi_mode_prompt_info) %n@%m %1~]\$%{$reset_color%b%} '
if ! zgen saved; then
zgen load "nviennot/zsh-vim-plugin"
zgen save
fi
if [ -e $HOME/.zsh.google ]; then
. $HOME/.zsh.google
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment