[zsh] Expand fzf-tab functionality
Will now contain additional functionality for ps, kill, and cd (preview etc). Will also color things which have LS_COLORS set (done automatically through lscolors-git file).
This commit is contained in:
parent
6e75d1b485
commit
fc121e7fd0
2 changed files with 40 additions and 7 deletions
|
@ -51,6 +51,7 @@ linux-lts
|
||||||
linux-lts-headers
|
linux-lts-headers
|
||||||
littler
|
littler
|
||||||
logrotate
|
logrotate
|
||||||
|
lscolors-git
|
||||||
lvm2
|
lvm2
|
||||||
lynx
|
lynx
|
||||||
man-db
|
man-db
|
||||||
|
|
|
@ -14,7 +14,6 @@ fi
|
||||||
# Set completion style
|
# Set completion style
|
||||||
# The following lines were added by compinstall
|
# The following lines were added by compinstall
|
||||||
zstyle ':completion:*' completer _complete _ignored _approximate
|
zstyle ':completion:*' completer _complete _ignored _approximate
|
||||||
zstyle ':completion:*' list-colors ''
|
|
||||||
zstyle ':completion:*' matcher-list '' '+m:{[:lower:]}={[:upper:]} r:|[._-]=** r:|=**'
|
zstyle ':completion:*' matcher-list '' '+m:{[:lower:]}={[:upper:]} r:|[._-]=** r:|=**'
|
||||||
zstyle ':completion:*' menu select=1
|
zstyle ':completion:*' menu select=1
|
||||||
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
||||||
|
@ -22,14 +21,49 @@ zstyle :compinstall filename "$ZSHCONFDIR/.zshrc"
|
||||||
# End of lines added by compinstall
|
# End of lines added by compinstall
|
||||||
|
|
||||||
# load plugins
|
# load plugins
|
||||||
|
PLUG_FOLDER="/usr/share/zsh/plugins"
|
||||||
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
|
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
|
||||||
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
|
|
||||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
|
|
||||||
source /usr/share/zsh/plugins/alias-tips/alias-tips.plugin.zsh
|
|
||||||
source /usr/share/zsh/plugins/fzf-tab/fzf-tab.plugin.zsh
|
|
||||||
source /usr/share/oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh
|
source /usr/share/oh-my-zsh/plugins/colored-man-pages/colored-man-pages.plugin.zsh
|
||||||
source /usr/share/oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh
|
source /usr/share/oh-my-zsh/plugins/command-not-found/command-not-found.plugin.zsh
|
||||||
source /usr/share/nvm/init-nvm.sh
|
source /usr/share/nvm/init-nvm.sh
|
||||||
|
[ -e $PLUG_FOLDER/fzf-tab/fzf-tab.plugin.zsh ] && source $PLUG_FOLDER/fzf-tab/fzf-tab.plugin.zsh
|
||||||
|
# these need to be sourced after fzf-tab
|
||||||
|
[ -e $PLUG_FOLDER/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh ] && source $PLUG_FOLDER/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
|
||||||
|
[ -e $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh ] && source $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh
|
||||||
|
[ -e $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh ] && source $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh
|
||||||
|
unset PLUG_FOLDER
|
||||||
|
|
||||||
|
# simple fzf-tab settings
|
||||||
|
FZF_TAB_COMMAND=(
|
||||||
|
fzf
|
||||||
|
--ansi # Enable ANSI color support, necessary for showing groups
|
||||||
|
--expect='$continuous_trigger' # For continuous completion
|
||||||
|
'--color=hl:$(( $#headers == 0 ? 108 : 255 ))'
|
||||||
|
--nth=2,3 --delimiter='\x00' # Don't search prefix
|
||||||
|
--layout=reverse --height='${FZF_TMUX_HEIGHT:=75%}'
|
||||||
|
--tiebreak=begin -m --bind=tab:down,btab:up,change:top,ctrl-space:toggle --cycle
|
||||||
|
'--query=$query' # $query will be expanded to query string at runtime.
|
||||||
|
'--header-lines=$#headers' # $#headers will be expanded to lines of headers at runtime
|
||||||
|
)
|
||||||
|
zstyle ':fzf-tab:*' command $FZF_TAB_COMMAND
|
||||||
|
# default color
|
||||||
|
[ -e /usr/share/LS_COLORS/dircolors.sh ] && source /usr/share/LS_COLORS/dircolors.sh
|
||||||
|
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
|
||||||
|
# some boilerplate code to define the variable `extract` which will be used later
|
||||||
|
local extract="
|
||||||
|
# trim input(what you select)
|
||||||
|
local in=\${\${\"\$(<{f})\"%\$'\0'*}#*\$'\0'}
|
||||||
|
# get ctxt for current completion(some thing before or after the current word)
|
||||||
|
local -A ctxt=(\"\${(@ps:\2:)CTXT}\")
|
||||||
|
# real path
|
||||||
|
local realpath=\${ctxt[IPREFIX]}\${ctxt[hpre]}\$in
|
||||||
|
realpath=\${(Qe)~realpath}
|
||||||
|
"
|
||||||
|
# give a preview of commandline arguments when completing `kill`
|
||||||
|
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm,cmd -w -w"
|
||||||
|
zstyle ':fzf-tab:complete:kill:argument-rest' extra-opts --preview=$extract'ps --pid=$in[(w)1] -o cmd --no-headers -w -w' --preview-window=down:3:wrap
|
||||||
|
# give a preview of directory by exa when completing cd
|
||||||
|
zstyle ':fzf-tab:complete:cd:*' extra-opts --preview=$extract'exa -1 --color=always $realpath'
|
||||||
|
|
||||||
# load completion, extended zsh moving syntax, zle edit in vim (or other $EDITOR) possibility
|
# load completion, extended zsh moving syntax, zle edit in vim (or other $EDITOR) possibility
|
||||||
autoload -Uz compinit zmv edit-command-line
|
autoload -Uz compinit zmv edit-command-line
|
||||||
|
@ -62,8 +96,6 @@ ENABLE_CORRECTION="true"
|
||||||
zstyle ':completion:*' accept-exact '*(N)'
|
zstyle ':completion:*' accept-exact '*(N)'
|
||||||
zstyle ':completion:*' use-cache on
|
zstyle ':completion:*' use-cache on
|
||||||
zstyle ':completion:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/zshcompcache"
|
zstyle ':completion:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/zshcompcache"
|
||||||
# shellcheck disable=SC2016
|
|
||||||
zstyle -e ':completion:*:default' list-colors 'reply=("${PREFIX:+=(#bi)($PREFIX:t)*==34=34}:${(s.:.)LS_COLORS}")'
|
|
||||||
|
|
||||||
### history
|
### history
|
||||||
## Set ZSH History defaults
|
## Set ZSH History defaults
|
||||||
|
|
Loading…
Reference in a new issue