diff --git a/.config/oh-my-zsh/aliases.zsh b/.config/zsh/aliases.zsh similarity index 100% rename from .config/oh-my-zsh/aliases.zsh rename to .config/zsh/aliases.zsh diff --git a/.config/oh-my-zsh/functions.zsh b/.config/zsh/functions.zsh similarity index 100% rename from .config/oh-my-zsh/functions.zsh rename to .config/zsh/functions.zsh diff --git a/.zshrc b/.zshrc index b858384..e926cb8 100644 --- a/.zshrc +++ b/.zshrc @@ -1,61 +1,86 @@ -# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. -# Initialization code that may require console input (password prompts, [y/n] -# confirmations, etc.) must go above this block; everything else may go below. -if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then - source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" -fi +## Options section +setopt correct # Auto correct mistakes +setopt completealiases +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 inc_append_history +setopt histignorealldups # If a new command is a duplicate, remove the older one +setopt autocd # if only directory path is entered, cd there. -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH - -# Path to your oh-my-zsh installation. -export ZSH="$HOME/.oh-my-zsh" - -# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes -ZSH_THEME="powerlevel10k/powerlevel10k" - -# Path to powerlevel10k config file Ref.: https://github.com/romkatv/powerlevel10k/issues/967#issuecomment-678133333 -POWERLEVEL9K_CONFIG_FILE="$HOME/.config/p10k/config.zsh" - -# Uncomment the following line if pasting URLs and other text is messed up. -# DISABLE_MAGIC_FUNCTIONS=true - -COMPLETION_WAITING_DOTS="true" - -DISABLE_UNTRACKED_FILES_DIRTY="true" - -HIST_STAMPS="dd.mm.yyyy" - -# Would you like to use another custom folder than $ZSH/custom? -ZSH_CUSTOM="$HOME/.config/oh-my-zsh" - -# Standard plugins can be found in $ZSH/plugins/ -# Custom plugins may be added to $ZSH_CUSTOM/plugins/ -plugins=( - git - ansible - extract - history - pass - sudo - ) - -source $ZSH/oh-my-zsh.sh - -### User configuration +zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # Case insensitive tab completion +zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" # Colored completion (different colors for dirs/files/etc) +zstyle ':completion:*' rehash true # automatically find new executables in path +# Speed up completions +zstyle ':completion:*' accept-exact '*(N)' +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path ~/.zsh/cache +HISTFILE=~/.zhistory +HISTSIZE=1000 +SAVEHIST=500 +#export EDITOR=/usr/bin/nano +#export VISUAL=/usr/bin/nano +WORDCHARS=${WORDCHARS//\/[&.;]} # Don't consider certain characters part of the word # Set TERM for with or without TMUX # http://www.economyofeffort.com/2014/07/04/zsh/ export TERM=xterm-256color [ -n "$TMUX" ] && export TERM=screen-256color -# share history between terminals in zsh -# https://askubuntu.com/questions/23630/how-do-you-share-history-between-terminals-in-zsh -setopt inc_append_history -setopt completealiases +## Keybindings section +bindkey -e +bindkey '^[[7~' beginning-of-line # Home key +bindkey '^[[H' beginning-of-line # Home key +if [[ "${terminfo[khome]}" != "" ]]; then + bindkey "${terminfo[khome]}" beginning-of-line # [Home] - Go to beginning of line +fi +bindkey '^[[8~' end-of-line # End key +bindkey '^[[F' end-of-line # End key +if [[ "${terminfo[kend]}" != "" ]]; then + bindkey "${terminfo[kend]}" end-of-line # [End] - Go to end of line +fi +bindkey '^[[2~' overwrite-mode # Insert key +bindkey '^[[3~' delete-char # Delete key +bindkey '^[[C' forward-char # Right key +bindkey '^[[D' backward-char # Left key +bindkey '^[[5~' history-beginning-search-backward # Page up key +bindkey '^[[6~' history-beginning-search-forward # Page down key -prompt_context(){} +# Navigate words with ctrl+arrow keys +bindkey '^[Oc' forward-word # +bindkey '^[Od' backward-word # +bindkey '^[[1;5D' backward-word # +bindkey '^[[1;5C' forward-word # +bindkey '^H' backward-kill-word # delete previous word with ctrl+backspace +bindkey '^[[Z' undo # Shift+tab undo last action -# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. -[[ ! -f "$POWERLEVEL9K_CONFIG_FILE" ]] || source "$POWERLEVEL9K_CONFIG_FILE" +autoload -U compinit colors zcalc +compinit -d +colors + +source ~/.config/zsh/aliases.zsh +source ~/.config/zsh/functions.zsh + +# enable substitution for prompt +setopt prompt_subst + +## Plugins section: Enable fish style features +# Use syntax highlighting +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +# Use history substring search +source /usr/share/zsh/plugins/zsh-history-substring-search/zsh-history-substring-search.zsh +# Use zsh autosuggestions +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +# bind UP and DOWN arrow keys to history substring search +zmodload zsh/terminfo +bindkey "$terminfo[kcuu1]" history-substring-search-up +bindkey "$terminfo[kcud1]" history-substring-search-down +bindkey '^[[A' history-substring-search-up +bindkey '^[[B' history-substring-search-down + +eval "$(starship init zsh)"