146 lines
4.4 KiB
Bash
146 lines
4.4 KiB
Bash
unsetopt beep
|
|
HISTFILE=~/.zsh_history
|
|
SAVEHIST=500000
|
|
HISTSIZE=$SAVEHIST+100000
|
|
|
|
setopt APPEND_HISTORY
|
|
setopt SHARE_HISTORY
|
|
setopt HIST_IGNORE_SPACE
|
|
setopt HIST_IGNORE_ALL_DUPS
|
|
setopt HIST_SAVE_NO_DUPS
|
|
setopt HIST_IGNORE_DUPS
|
|
setopt HIST_FIND_NO_DUPS
|
|
setopt HIST_EXPIRE_DUPS_FIRST
|
|
zshaddhistory() { whence ${${(z)1}[1]} >| /dev/null || return 1 }
|
|
|
|
# To test keys:
|
|
# cat > /dev/null
|
|
# sed -n l
|
|
# List all commands:
|
|
# zle -al
|
|
_vi-kill-word(){
|
|
zle select-a-word
|
|
if ((REGION_ACTIVE)); then
|
|
zle kill-region
|
|
fi
|
|
}
|
|
zle -N _vi-kill-word
|
|
bindkey -e #emacs style keybinding
|
|
bindkey "^[[H" beginning-of-line #Home
|
|
bindkey "^[[F" end-of-line #End
|
|
bindkey "^[[5~" history-search-backward #PgUp
|
|
bindkey "^[[6~" history-search-forward #PgDn
|
|
bindkey "^Z" undo #C-z
|
|
bindkey "^[[3~" delete-char #Delete
|
|
bindkey "^[[1;3D" vi-backward-word #A-left
|
|
bindkey "^[[1;3C" vi-forward-word #A-right
|
|
bindkey '^[^?' vi-backward-kill-word #A-Backspace
|
|
bindkey "^[[3;3~" _vi-kill-word #A-Delete
|
|
bindkey "^[[1;5D" backward-word #C-left
|
|
bindkey "^[[1;5C" forward-word #C-right
|
|
bindkey "^H" backward-kill-word #C-Backspace
|
|
bindkey "^[[3;5~" kill-word #C-Delete
|
|
|
|
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
|
|
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
|
|
# The following lines were added by compinstall
|
|
zstyle ':completion:*' menu select
|
|
zstyle ':completion::complete:*' gain-privileges 1
|
|
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'l:|=* r:|=*' 'r:|[._-]=* r:|=*'
|
|
|
|
autoload -Uz compinit
|
|
compinit
|
|
# End of lines added by compinstall
|
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
|
|
|
autoload -Uz promptinit
|
|
promptinit
|
|
|
|
compdef exssh=ssh
|
|
|
|
export FZF_COMPLETION_TRIGGER="''"
|
|
export FZF_COMPLETION_DIR_COMMANDS="cd pushd rmdir ls ll"
|
|
export FZF_DEFAULT_COMMAND="fdfind --strip-cwd-prefix --hidden"
|
|
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
|
export FZF_ALT_C_COMMAND="fdfind --type d --strip-cwd-prefix --hidden"
|
|
# Override default
|
|
_fzf_compgen_path() {
|
|
fdfind --hidden . "$1"
|
|
}
|
|
_fzf_compgen_dir() {
|
|
fdfind --type d --hidden . "$1"
|
|
}
|
|
# Self-defined
|
|
__fzf_compgen_file(){
|
|
fdfind --type f --hidden . "$1"
|
|
}
|
|
|
|
# For ''<TAB> (**<TAB>)
|
|
_fzf_comprun() {
|
|
local command=$1
|
|
shift
|
|
|
|
case "$command" in
|
|
ssh|mosh|exssh) fzf --preview 'ssh -tt -G {} | head -n 4' "$@" ;;
|
|
cd|ls|ll) fzf --preview 'tree -C -L1 {} | head -200' "$@" ;;
|
|
cat|nano|micro|vi|vim|nvim) fzf --preview 'cat -s {} | head -200' "$@" ;;
|
|
nala|apt|dpkg) apt-cache search '' | awk '{print $1}' | fzf --multi --preview 'apt-cache show {1}' "$@" ;;
|
|
*) fzf "$@" ;;
|
|
esac
|
|
}
|
|
_fzf_complete_exssh() {
|
|
_fzf_complete +m -- "$@" < <(
|
|
setopt localoptions nonomatch
|
|
command cat <(command tail -n +1 ~/.ssh/config ~/.ssh/config.d/* 2> /dev/null | command grep -i '^\s*host ' | awk '{for (i = 2; i <= NF; i++) print $1 " " $i}' | command grep -v '[*?%]') |
|
|
awk '{if (length($2) > 0) {print $2}}' | sort -u
|
|
)
|
|
}
|
|
alias _fzf_complete_mosh=_fzf_complete_exssh
|
|
alias _fzf_complete_ssh=_fzf_complete_exssh
|
|
_fzf_complete_cat(){
|
|
__fzf_generic_path_completion "$prefix" "$1" __fzf_compgen_file \
|
|
"-m" "" " "
|
|
}
|
|
alias _fzf_complete_nano=_fzf_complete_cat
|
|
alias _fzf_complete_micro=_fzf_complete_cat
|
|
alias _fzf_complete_vi=_fzf_complete_cat
|
|
alias _fzf_complete_vim=_fzf_complete_cat
|
|
alias _fzf_complete_nvim=_fzf_complete_cat
|
|
source /usr/share/doc/fzf/examples/completion.zsh
|
|
source /usr/share/doc/fzf/examples/key-bindings.zsh
|
|
|
|
bindkey "^[[A" fzf-history-widget
|
|
fzf_packages_widget(){
|
|
local cmd="dpkg --get-selections | grep -v deinstall | awk '{print \$1}' | fzf --layout reverse --multi --preview 'dpkg -s {1}' | command tr '\n' ' '"
|
|
setopt localoptions pipefail no_aliases 2> /dev/null
|
|
LBUFFER=${LBUFFER}$(eval $cmd)
|
|
local ret=$?
|
|
zle reset-prompt
|
|
return $ret
|
|
}
|
|
zle -N fzf_packages_widget
|
|
bindkey "^_" fzf_packages_widget
|
|
|
|
prompt adam1
|
|
|
|
export GOPATH=/opt/go
|
|
export PATH=$GOPATH/bin:$HOME/.yarn/bin:$HOME/.local/bin:$PATH
|
|
|
|
eval "$(zoxide init --cmd cd zsh)"
|
|
|
|
export MANROFFOPT="-c"
|
|
export MANPAGER="sh -c 'col -bx|batcat -l man -p'"
|
|
alias cat="batcat -pp"
|
|
alias h="batcat -pl help"
|
|
help(){
|
|
"$@" --help 2>&1 | h
|
|
}
|
|
|
|
alias sudo="sudo "
|
|
alias c=clear
|
|
alias ls=eza
|
|
alias l="ls -lhg"
|
|
alias ll="ls -alhg"
|
|
|