diff options
Diffstat (limited to 'config/zsh')
-rwxr-xr-x | config/zsh/zshrc | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/config/zsh/zshrc b/config/zsh/zshrc new file mode 100755 index 0000000..c604ad1 --- /dev/null +++ b/config/zsh/zshrc @@ -0,0 +1,97 @@ +# This config is a fork of Luke Smith's zshrc at "https://github.com/LukeSmithxyz/voidrice" + +PROMPT="%B%F{red}%(?..%? )%B%F{blue}%n%b%f@%m %B%~ %% %b" + +#git integration +autoload -Uz vcs_info +precmd_vcs_info() { vcs_info } +precmd_functions+=( precmd_vcs_info ) +setopt prompt_subst +RPROMPT='%B${vcs_info_msg_0_}' +zstyle ':vcs_info:git:*' formats '%b' + +# History in cache directory: +HISTSIZE=1000000000 +SAVEHIST=1000000000 +HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history" + + +# 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 +bindkey '^R' history-incremental-search-backward +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 + + +lfcd () { + # `command` is needed in case `lfcd` is aliased to `lf` + cd "$(command lf -print-last-dir "$@")" +} + +# 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. + + +# Options +setopt autocd # Automatically cd into typed directory. +# stty stop undef # Disable ctrl-s to freeze terminal. +setopt interactive_comments +unsetopt nomatch +setopt INC_APPEND_HISTORY # Adds command to history when they are run +setopt HIST_FIND_NO_DUPS # Doesn't show duplicate commands when backward searching + +# Aliases +[ -f $XINITRC ] && alias startx="startx $XINITRC" +[ -x "$(command -v nvim)" ] && alias vim="nvim" +alias ls="ls -A --color=auto" +alias ping="ping -c 2" +alias clear="clear -x" +alias open="xdg-open" +alias lf="lfcd" +alias vim="nvim" +alias touchOn="synclient TouchpadOff=0" +alias touchOff="synclient TouchpadOff=1" + +# Systemd and Arch linux specific aliases +alias pacman="sudo pacman" +alias systemctl="sudo systemctl" +alias arch-wiki="cd /usr/share/doc/arch-wiki/html/en/" +alias is="systemctl stop NetworkManager" +alias blue="sudo systemctl start bluetooth" +alias net="sudo systemctl start NetworkManager" + +# Directory change aliases +alias gp="cd ~/proj" +alias gt="cd ~/testProj" +alias gc="cd ~/.config" +alias gu="cd /usr/local/bin" + |