134 lines
4.8 KiB
Bash
134 lines
4.8 KiB
Bash
# 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
|
|
|
|
# zplug
|
|
source ~/.zplug/init.zsh
|
|
zplug "zplug/zplug", hook-build:"zplug --self-manage"
|
|
zplug "romkatv/powerlevel10k", as:theme, depth:1
|
|
|
|
#zplug "popstas/zsh-command-time"
|
|
zplug "zsh-users/zsh-syntax-highlighting", defer:2
|
|
zplug "ytakahashi/igit"
|
|
if [[ -n "${TMUX}" ]]; then
|
|
zplug "mbenford/zsh-tmux-auto-title"
|
|
fi
|
|
#zplug "MichaelAquilina/zsh-you-should-use"
|
|
|
|
zplug "junegunn/fzf", from:github, as:command, rename-to:fzf, hook-build:"./install --all"
|
|
zplug "junegunn/fzf", use:"shell/*.zsh", defer:2
|
|
zplug "Aloxaf/fzf-tab", from:github
|
|
zplug "alexiszamanidis/zsh-git-fzf"
|
|
zplug "ddnexus/fm", hook-build:"./fm__compile"
|
|
zplug "larkery/zsh-histdb"
|
|
#zplug "m42e/zsh-histdb-fzf"
|
|
zplug 'm42e/zsh-histdb-skim', from:github, at:main
|
|
|
|
zplug load
|
|
|
|
# zsh options
|
|
autoload run-help
|
|
setopt auto_pushd
|
|
setopt clobber
|
|
setopt complete_aliases
|
|
setopt correct
|
|
#setopt correct_all
|
|
setopt extended_glob
|
|
setopt extended_history
|
|
setopt hash_list_all
|
|
setopt hist_ignore_all_dups
|
|
setopt hist_ignore_space
|
|
setopt no_beep
|
|
setopt no_hist_allow_clobber
|
|
setopt no_rm_star_silent
|
|
setopt notify
|
|
setopt prompt_subst
|
|
setopt pushd_ignore_dups
|
|
setopt pushd_silent
|
|
setopt pushd_to_home
|
|
setopt rm_star_wait
|
|
|
|
export SAVEHIST=1000000
|
|
export HISTSIZE=1000000
|
|
export HISTFILE=~/.zsh_history
|
|
setopt append_history
|
|
setopt share_history
|
|
|
|
# zsh plugin options
|
|
#ZSH_COMMAND_TIME_MIN_SECONDS=10
|
|
if [[ -n "${TMUX}" ]]; then
|
|
ZSH_TMUX_AUTO_TITLE_SHORT=true
|
|
ZSH_TMUX_AUTO_TITLE_IDLE_TEXT="%last"
|
|
fi
|
|
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
|
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 --color=always $realpath'
|
|
|
|
# misc / general
|
|
export EDITOR="nano"
|
|
export PAGER="most"
|
|
export PATH=~/.local/bin:${PATH}
|
|
|
|
# asdf
|
|
. $HOME/.asdf/asdf.sh
|
|
|
|
# aliases (before interactive, just in case)
|
|
alias ls="exa"
|
|
|
|
# dont allow mosh prediction (override in zshrc.local)
|
|
export MOSH_PREDICTION_DISPLAY="never"
|
|
|
|
# local overrides
|
|
test -f ~/.zshrc.local && source ~/.zshrc.local
|
|
|
|
# dont do anything more if non interactive
|
|
if [[ ! -o interactive ]]; then
|
|
return
|
|
fi
|
|
|
|
# setup mode/status line for zsh
|
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
|
|
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
|
|
|
# ensure histdb gets ctrl-r for history
|
|
if grep -q "Android" <<< `uname -a`; then
|
|
source ~/.zplug/repos/larkery/zsh-histdb/histdb-interactive.zsh
|
|
bindkey '^R' _histdb-isearch
|
|
else
|
|
bindkey '^R' histdb-skim-widget
|
|
fi
|
|
|
|
# Fix home/end/del silly
|
|
if [[ "$TERM" != emacs ]]; then
|
|
[[ -z "$terminfo[kdch1]" ]] || bindkey -M emacs "$terminfo[kdch1]" delete-char
|
|
[[ -z "$terminfo[khome]" ]] || bindkey -M emacs "$terminfo[khome]" beginning-of-line
|
|
[[ -z "$terminfo[kend]" ]] || bindkey -M emacs "$terminfo[kend]" end-of-line
|
|
[[ -z "$terminfo[kich1]" ]] || bindkey -M emacs "$terminfo[kich1]" overwrite-mode
|
|
[[ -z "$terminfo[kdch1]" ]] || bindkey -M vicmd "$terminfo[kdch1]" vi-delete-char
|
|
[[ -z "$terminfo[khome]" ]] || bindkey -M vicmd "$terminfo[khome]" vi-beginning-of-line
|
|
[[ -z "$terminfo[kend]" ]] || bindkey -M vicmd "$terminfo[kend]" vi-end-of-line
|
|
[[ -z "$terminfo[kich1]" ]] || bindkey -M vicmd "$terminfo[kich1]" overwrite-mode
|
|
|
|
[[ -z "$terminfo[cuu1]" ]] || bindkey -M viins "$terminfo[cuu1]" vi-up-line-or-history
|
|
[[ -z "$terminfo[cuf1]" ]] || bindkey -M viins "$terminfo[cuf1]" vi-forward-char
|
|
[[ -z "$terminfo[kcuu1]" ]] || bindkey -M viins "$terminfo[kcuu1]" vi-up-line-or-history
|
|
[[ -z "$terminfo[kcud1]" ]] || bindkey -M viins "$terminfo[kcud1]" vi-down-line-or-history
|
|
[[ -z "$terminfo[kcuf1]" ]] || bindkey -M viins "$terminfo[kcuf1]" vi-forward-char
|
|
[[ -z "$terminfo[kcub1]" ]] || bindkey -M viins "$terminfo[kcub1]" vi-backward-char
|
|
|
|
# ncurses fogyatekos
|
|
[[ "$terminfo[kcuu1]" == "^[O"* ]] && bindkey -M viins "${terminfo[kcuu1]/O/[}" vi-up-line-or-history
|
|
[[ "$terminfo[kcud1]" == "^[O"* ]] && bindkey -M viins "${terminfo[kcud1]/O/[}" vi-down-line-or-history
|
|
[[ "$terminfo[kcuf1]" == "^[O"* ]] && bindkey -M viins "${terminfo[kcuf1]/O/[}" vi-forward-char
|
|
[[ "$terminfo[kcub1]" == "^[O"* ]] && bindkey -M viins "${terminfo[kcub1]/O/[}" vi-backward-char
|
|
[[ "$terminfo[khome]" == "^[O"* ]] && bindkey -M viins "${terminfo[khome]/O/[}" beginning-of-line
|
|
[[ "$terminfo[kend]" == "^[O"* ]] && bindkey -M viins "${terminfo[kend]/O/[}" end-of-line
|
|
[[ "$terminfo[khome]" == "^[O"* ]] && bindkey -M emacs "${terminfo[khome]/O/[}" beginning-of-line
|
|
[[ "$terminfo[kend]" == "^[O"* ]] && bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line
|
|
fi
|