dotfiles/dot_zshrc
2021-08-14 13:25:41 +02:00

92 lines
3.7 KiB
Text

# Personal Zsh configuration file. It is strongly recommended to keep all
# shell customization and configuration (including exported environment
# variables such as PATH) in this file or in files source by it.
#
# Documentation: https://github.com/romkatv/zsh4humans/blob/v5/README.md
zstyle ':z4h:' auto-update 'no'
zstyle ':z4h:' auto-update-days '28'
# tmux: integrated, system, no
zstyle ':z4h:' start-tmux 'no'
zstyle ':z4h:' prompt-at-bottom 'yes'
# keyboard setting
zstyle ':z4h:bindkey' keyboard 'pc'
zstyle ':z4h:autosuggestions' forward-char 'accept'
zstyle ':z4h:fzf-complete' recurse-dirs 'no'
# Enable ('yes') or disable ('no') automatic teleportation of z4h over
# ssh when connecting to these hosts.
#zstyle ':z4h:ssh:example-hostname1' enable 'yes'
zstyle ':z4h:ssh:*' enable 'no'
#zstyle ':z4h:ssh-agent:' start no
z4h install ohmyzsh/ohmyzsh || return
z4h install urbainvaes/fzf-marks || return
z4h install jreese/zsh-titles || return
# Install or update core components (fzf, zsh-autosuggestions, etc.) and
# initialize Zsh. After this point console I/O is unavailable until Zsh
# is fully initialized. Everything that requires user interaction or can
# perform network I/O must be done above. Everything else is best done below.
z4h init || return
# Export environment variables.
export GPG_TTY=$TTY
export SAVEHIST=200000
export HISTSIZE=200000
export HISTFILE=$HOME/.cache/zsh/history
export SPACEVIMDIR="$HOME/.config/spacevim/"
export FZF_MARKS_FILE=$HOME/.config/fzfmarks
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# Source additional local files if they exist.
z4h source $HOME/.config/local/env.zsh
# Source Files
z4h source $HOME/.config/zsh/sshagent.zsh
z4h source $Z4H/ohmyzsh/ohmyzsh/lib/history.zsh
z4h source $Z4H/ohmyzsh/ohmyzsh/lib/completion.zsh
z4h source $Z4H/ohmyzsh/ohmyzsh/lib/directories.zsh
z4h source $Z4H/ohmyzsh/ohmyzsh/lib/clipboard.zsh
z4h source $Z4H/ohmyzsh/ohmyzsh/lib/grep.zsh
z4h source $Z4H/ohmyzsh/ohmyzsh/plugins/command-not-found/command-not-found.plugin.zsh
z4h source $Z4H/urbainvaes/fzf-marks/fzf-marks.plugin.zsh
#zinit pack for ls_colors
# Aliases
z4h source $HOME/.config/zsh/aliases.zsh
z4h source $HOME/.config/local/aliases.zsh
# Add flags to existing aliases.
#alias ls="${aliases[ls]:-ls} -A"
# Define key bindings.
# Autoload functions.
# Define functions and completions.
function md() { [[ $# == 1 ]] && mkdir -p -- "$1" && cd -- "$1" }
compdef _directories md
# Fix SSH Completions
zstyle ':completion:*:*:*:users' ignored-patterns '*'
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'
zstyle ':completion:*:(scp|ssh):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:scp:*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:ssh:*' group-order hosts-domain hosts-host users hosts-ipaddr
zstyle ':completion:*:*:*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost localhost4 localhost6 ip6-localhost broadcasthost
zstyle ':completion:*:*:*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*' '*localdomain*' '*.eeleater.org' '*.local'
zstyle ':completion:*:*:*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
# Define named directories: ~w <=> Windows home directory on WSL.
[[ -z $z4h_win_home ]] || hash -d wsl=$z4h_win_home
# Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html
setopt multios
setopt prompt_subst
setopt inc_append_history
z4h source $HOME/.config/local/rc.zsh