Created
January 20, 2023 04:23
-
-
Save codedsprit/49f50476f4a21cb50f77f8e33c02f18e to your computer and use it in GitHub Desktop.
codedsprit's .zshrc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# _ | |
# _______| |__ _ __ ___ | |
# |_ / __| '_ \| '__/ __| | |
# _ / /\__ \ | | | | | (__ | |
# (_)___|___/_| |_|_| \___| | |
# Enable colors and change prompt: | |
autoload -U colors && colors # Load colors | |
#PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b | |
" | |
PS1="~ ⚡" | |
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" | |
# Load aliases and shortcuts if existent. | |
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" | |
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" | |
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" | |
# 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. | |
# Use lf to switch directories and bind it to ctrl-o | |
lfcd () { | |
tmp="$(mktemp -uq)" | |
trap 'rm -f $tmp >/dev/null 2>&1' HUP INT QUIT TERM PWR EXIT | |
lf -last-dir-path="$tmp" "$@" | |
if [ -f "$tmp" ]; then | |
dir="$(cat "$tmp")" | |
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" | |
fi | |
} | |
bindkey -s '^o' '^ulfcd\n' | |
bindkey -s '^a' '^ubc -lq\n' | |
bindkey -s '^f' '^ucd "$(dirname "$(fzf)")"\n' | |
bindkey '^[[P' delete-char | |
# 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 | |
alias gcl="git clone" | |
alias x="startx" | |
alias bye="poweroff" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment