Last active
October 28, 2022 10:56
-
-
Save inclyc/56ffeaeefc2761d06bbc8bbd67eccad6 to your computer and use it in GitHub Desktop.
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
| # Preserve history | |
| HISTFILE=~/.zsh_history | |
| HISTSIZE=10000 | |
| SAVEHIST=10000 | |
| setopt inc_append_history share_history extended_history | |
| # Documentation about opt: https://zsh.sourceforge.io/Doc/Release/Options.html | |
| setopt correct | |
| setopt autocd | |
| setopt nomatch | |
| setopt notify | |
| setopt nobeep | |
| # Enable zsh completion | |
| autoload -U compinit promptinit | |
| compinit | |
| promptinit | |
| prompt gentoo | |
| # Enable select completions by menu | |
| zstyle ':completion:*' menu select | |
| # Keyboard setting | |
| # create a zkbd compatible hash; | |
| # to add other keys to this hash, see: man 5 terminfo | |
| typeset -g -A key | |
| key[Home]="${terminfo[khome]}" | |
| key[End]="${terminfo[kend]}" | |
| key[Insert]="${terminfo[kich1]}" | |
| key[Backspace]="${terminfo[kbs]}" | |
| key[Delete]="${terminfo[kdch1]}" | |
| key[Up]="${terminfo[kcuu1]}" | |
| key[Down]="${terminfo[kcud1]}" | |
| key[Left]="${terminfo[kcub1]}" | |
| key[Right]="${terminfo[kcuf1]}" | |
| key[PageUp]="${terminfo[kpp]}" | |
| key[PageDown]="${terminfo[knp]}" | |
| key[Shift-Tab]="${terminfo[kcbt]}" | |
| # setup key accordingly | |
| [[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line | |
| [[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line | |
| [[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode | |
| [[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char | |
| [[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char | |
| [[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}" up-line-or-history | |
| [[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}" down-line-or-history | |
| [[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}" backward-char | |
| [[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}" forward-char | |
| [[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history | |
| [[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history | |
| [[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete | |
| # Finally, make sure the terminal is in application mode, when zle is | |
| # active. Only then are the values from $terminfo valid. | |
| if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then | |
| autoload -Uz add-zle-hook-widget | |
| function zle_application_mode_start { echoti smkx } | |
| function zle_application_mode_stop { echoti rmkx } | |
| add-zle-hook-widget -Uz zle-line-init zle_application_mode_start | |
| add-zle-hook-widget -Uz zle-line-finish zle_application_mode_stop | |
| fi | |
| # I prefer vim | |
| bindkey -v | |
| bindkey '^R' history-incremental-search-backward | |
| # Use `jk` to escape insert mode | |
| bindkey -M viins 'jk' vi-cmd-mode | |
| alias ls='ls --color=auto' | |
| alias ll='ls -l' | |
| alias grep='grep --color=auto' | |
| alias egrep='egrep --color=auto' | |
| alias fgrep='fgrep --color=auto' | |
| alias ip='ip --color=auto' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment