-
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
223 additions
and
0 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,223 @@ | ||
# If not running interactively, don't do anything | ||
[[ $- != *i* ]] && return | ||
|
||
alias ls='ls --color=auto' | ||
alias ll='ls --color=auto -lah' | ||
alias grep='grep -n --color' | ||
PS1='[\u@\h \W]\$ ' | ||
|
||
# Autosuggestions | ||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh | ||
|
||
# synatx-highlighting | ||
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh | ||
|
||
#Display ISO version and distribution information in short | ||
alias version="sed -n 1p /etc/os-release && sed -n 7p /etc/os-release && sed -n 8p /etc/os-release" | ||
|
||
#Pacman Shortcuts | ||
alias sync="sudo pacman -Syyy" | ||
alias install="sudo pacman -S" | ||
alias update="sudo pacman -Syyu" | ||
alias search="sudo pacman -Ss" | ||
alias search-local="sudo pacman -Qs" | ||
alias pkg-info="sudo pacman -Qi" | ||
alias local-install="sudo pacman -U" | ||
alias clr-cache="sudo pacman -Scc" | ||
alias unlock="sudo rm /var/lib/pacman/db.lck" | ||
alias remove="sudo pacman -R" | ||
alias autoremove="sudo pacman -Rns" | ||
|
||
# Fix keyring and gnupg mount isuue | ||
alias fix-keys="sudo rm -rvf /etc/pacman.d/gnupg && sudo pacman-key --init && sudo pacman-key --populate" | ||
|
||
## Path section | ||
# Set $PATH if ~/.local/bin exist | ||
if [ -d "$HOME/.local/bin" ]; then | ||
export PATH=$HOME/.local/bin:$PATH | ||
fi | ||
|
||
eval "$(starship init zsh)" | ||
function set_win_title(){ | ||
echo -ne "\033]0; $USER@$HOST:${PWD/$HOME/~} \007" | ||
} | ||
precmd_functions+=(set_win_title) | ||
|
||
## Plugins section: Enable fish style features | ||
# Use syntax highlighting | ||
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh | ||
|
||
# Use autosuggestion | ||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh | ||
|
||
# Use history substring search | ||
source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh | ||
|
||
# Use fzf | ||
source /usr/share/fzf/key-bindings.zsh | ||
source /usr/share/fzf/completion.zsh | ||
|
||
# Arch Linux command-not-found support, you must have package pkgfile installed | ||
# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook | ||
[[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh | ||
|
||
# Advanced command-not-found hook | ||
[[ -e /usr/share/doc/find-the-command/ftc.zsh ]] && source /usr/share/doc/find-the-command/ftc.zsh | ||
|
||
## Options section | ||
setopt correct # Auto correct mistakes | ||
setopt extendedglob # Extended globbing. Allows using regular expressions with * | ||
setopt nocaseglob # Case insensitive globbing | ||
setopt rcexpandparam # Array expension with parameters | ||
setopt nocheckjobs # Don't warn about running processes when exiting | ||
setopt numericglobsort # Sort filenames numerically when it makes sense | ||
setopt nobeep # No beep | ||
setopt appendhistory # Immediately append history instead of overwriting | ||
setopt histignorealldups # If a new command is a duplicate, remove the older one | ||
setopt autocd # if only directory path is entered, cd there. | ||
setopt auto_pushd | ||
setopt pushd_ignore_dups | ||
setopt pushdminus | ||
|
||
# Completion. | ||
autoload -Uz compinit | ||
compinit | ||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion | ||
zstyle ':completion:*' rehash true # automatically find new executables in path | ||
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc) | ||
zstyle ':completion:*' completer _expand _complete _ignored _approximate | ||
zstyle ':completion:*' menu select | ||
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s' | ||
zstyle ':completion:*:descriptions' format '%U%F{cyan}%d%f%u' | ||
|
||
# Speed up completions | ||
zstyle ':completion:*' accept-exact '*(N)' | ||
zstyle ':completion:*' use-cache on | ||
zstyle ':completion:*' cache-path ~/.cache/zcache | ||
|
||
# automatically load bash completion functions | ||
autoload -U +X bashcompinit && bashcompinit | ||
|
||
HISTFILE=~/.zhistory | ||
HISTSIZE=50000 | ||
SAVEHIST=10000 | ||
|
||
## Keys | ||
# Use emacs key bindings | ||
bindkey -e | ||
|
||
# Ctrl+ backspace delets the word | ||
bindkey '^H' backward-kill-word | ||
bindkey '5~' kill-word | ||
|
||
# [PageUp] - Up a line of history | ||
if [[ -n "${terminfo[kpp]}" ]]; then | ||
bindkey -M emacs "${terminfo[kpp]}" up-line-or-history | ||
bindkey -M viins "${terminfo[kpp]}" up-line-or-history | ||
bindkey -M vicmd "${terminfo[kpp]}" up-line-or-history | ||
fi | ||
# [PageDown] - Down a line of history | ||
if [[ -n "${terminfo[knp]}" ]]; then | ||
bindkey -M emacs "${terminfo[knp]}" down-line-or-history | ||
bindkey -M viins "${terminfo[knp]}" down-line-or-history | ||
bindkey -M vicmd "${terminfo[knp]}" down-line-or-history | ||
fi | ||
|
||
# Start typing + [Up-Arrow] - fuzzy find history forward | ||
if [[ -n "${terminfo[kcuu1]}" ]]; then | ||
autoload -U up-line-or-beginning-search | ||
zle -N up-line-or-beginning-search | ||
|
||
bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search | ||
bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search | ||
bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search | ||
fi | ||
# Start typing + [Down-Arrow] - fuzzy find history backward | ||
if [[ -n "${terminfo[kcud1]}" ]]; then | ||
autoload -U down-line-or-beginning-search | ||
zle -N down-line-or-beginning-search | ||
|
||
bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search | ||
bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search | ||
bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search | ||
fi | ||
|
||
# [Home] - Go to beginning of line | ||
if [[ -n "${terminfo[khome]}" ]]; then | ||
bindkey -M emacs "${terminfo[khome]}" beginning-of-line | ||
bindkey -M viins "${terminfo[khome]}" beginning-of-line | ||
bindkey -M vicmd "${terminfo[khome]}" beginning-of-line | ||
fi | ||
# [End] - Go to end of line | ||
if [[ -n "${terminfo[kend]}" ]]; then | ||
bindkey -M emacs "${terminfo[kend]}" end-of-line | ||
bindkey -M viins "${terminfo[kend]}" end-of-line | ||
bindkey -M vicmd "${terminfo[kend]}" end-of-line | ||
fi | ||
|
||
# [Shift-Tab] - move through the completion menu backwards | ||
if [[ -n "${terminfo[kcbt]}" ]]; then | ||
bindkey -M emacs "${terminfo[kcbt]}" reverse-menu-complete | ||
bindkey -M viins "${terminfo[kcbt]}" reverse-menu-complete | ||
bindkey -M vicmd "${terminfo[kcbt]}" reverse-menu-complete | ||
fi | ||
|
||
# [Backspace] - delete backward | ||
bindkey -M emacs '^?' backward-delete-char | ||
bindkey -M viins '^?' backward-delete-char | ||
bindkey -M vicmd '^?' backward-delete-char | ||
# [Delete] - delete forward | ||
if [[ -n "${terminfo[kdch1]}" ]]; then | ||
bindkey -M emacs "${terminfo[kdch1]}" delete-char | ||
bindkey -M viins "${terminfo[kdch1]}" delete-char | ||
bindkey -M vicmd "${terminfo[kdch1]}" delete-char | ||
else | ||
bindkey -M emacs "^[[3~" delete-char | ||
bindkey -M viins "^[[3~" delete-char | ||
bindkey -M vicmd "^[[3~" delete-char | ||
|
||
bindkey -M emacs "^[3;5~" delete-char | ||
bindkey -M viins "^[3;5~" delete-char | ||
bindkey -M vicmd "^[3;5~" delete-char | ||
fi | ||
|
||
typeset -g -A key | ||
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 | ||
|
||
# Control Left - go back a word | ||
key[Control-Left]="${terminfo[kLFT5]}" | ||
if [[ -n "${key[Control-Left]}" ]]; then | ||
bindkey -M emacs "${key[Control-Left]}" backward-word | ||
bindkey -M viins "${key[Control-Left]}" backward-word | ||
bindkey -M vicmd "${key[Control-Left]}" backward-word | ||
fi | ||
|
||
# Control Left - go forward a word | ||
key[Control-Right]="${terminfo[kRIT5]}" | ||
if [[ -n "${key[Control-Right]}" ]]; then | ||
bindkey -M emacs "${key[Control-Right]}" forward-word | ||
bindkey -M viins "${key[Control-Right]}" forward-word | ||
bindkey -M vicmd "${key[Control-Right]}" forward-word | ||
fi | ||
|
||
# Alt Left - go back a word | ||
key[Alt-Left]="${terminfo[kLFT3]}" | ||
if [[ -n "${key[Alt-Left]}" ]]; then | ||
bindkey -M emacs "${key[Alt-Left]}" backward-word | ||
bindkey -M viins "${key[Alt-Left]}" backward-word | ||
bindkey -M vicmd "${key[Alt-Left]}" backward-word | ||
fi | ||
|
||
# Control Right - go forward a word | ||
key[Alt-Right]="${terminfo[kRIT3]}" | ||
if [[ -n "${key[Alt-Right]}" ]]; then | ||
bindkey -M emacs "${key[Alt-Right]}" forward-word | ||
bindkey -M viins "${key[Alt-Right]}" forward-word | ||
bindkey -M vicmd "${key[Alt-Right]}" forward-word | ||
fi |