added stuff
This commit is contained in:
parent
937f28770d
commit
236b8c2a6b
907 changed files with 70990 additions and 0 deletions
73
nyx/homes/notashelf/programs/terminal/shell/zsh/rc/fzf.zsh
Normal file
73
nyx/homes/notashelf/programs/terminal/shell/zsh/rc/fzf.zsh
Normal file
|
@ -0,0 +1,73 @@
|
|||
autoload -U add-zle-hook-widget
|
||||
|
||||
# autosuggests otherwise breaks these widgets.
|
||||
# <https://github.com/zsh-users/zsh-autosuggestions/issues/619>
|
||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-beginning-search-backward-end history-beginning-search-forward-end)
|
||||
|
||||
# FZF widgets
|
||||
function __fzf() {
|
||||
if [[ -n "$TMUX_PANE" && ( "${FZF_TMUX:-0}" != 0 || -n "$FZF_TMUX_OPTS" ) ]]; then
|
||||
fzf-tmux -d"${FZF_TMUX_HEIGHT:-40%}" -- "$@"
|
||||
else
|
||||
fzf "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
function __fzf_select() {
|
||||
setopt localoptions pipefail no_aliases 2>/dev/null
|
||||
local item
|
||||
FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore,tab:down,btab:up,change:top,ctrl-space:toggle $FZF_DEFAULT_OPTS" __fzf "$@" | while read item; do
|
||||
echo -n "${(q)item} "
|
||||
done
|
||||
local ret=$?
|
||||
echo
|
||||
return $ret
|
||||
}
|
||||
|
||||
function __fzf_find_files() {
|
||||
local include_hidden=${1:-0}
|
||||
local types=${2:-fdl}
|
||||
shift 2
|
||||
local type_selectors=()
|
||||
local i
|
||||
for (( i=0; i<${#types}; i++ )); do
|
||||
[[ "$i" -gt 0 ]] && type_selectors+=('-o')
|
||||
type_selectors+=('-type' "${types:$i:1}")
|
||||
done
|
||||
local hide_hidden_files=()
|
||||
if [[ $include_hidden == "0" ]]; then
|
||||
hide_hidden_files=('-path' '*/\.*' '-o')
|
||||
fi
|
||||
setopt localoptions pipefail no_aliases 2>/dev/null
|
||||
command find -L . -mindepth 1 \
|
||||
\( "${hide_hidden_files[@]}" -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \) -prune \
|
||||
-o \( "${type_selectors[@]}" \) -print \
|
||||
| __fzf_select "$@"
|
||||
}
|
||||
|
||||
function __fzf_find_files_widget_helper() {
|
||||
LBUFFER="${LBUFFER}$(__fzf_find_files "$@")"
|
||||
local ret=$?
|
||||
zle reset-prompt
|
||||
return $ret
|
||||
}
|
||||
|
||||
function fzf-select-file-or-dir() { __fzf_find_files_widget_helper 0 fdl -m; }; zle -N fzf-select-file-or-dir
|
||||
function fzf-select-file-or-dir-hidden() { __fzf_find_files_widget_helper 1 fdl -m; }; zle -N fzf-select-file-or-dir-hidden
|
||||
function fzf-select-dir() { __fzf_find_files_widget_helper 0 d -m; }; zle -N fzf-select-dir
|
||||
function fzf-select-dir-hidden() { __fzf_find_files_widget_helper 1 d -m; }; zle -N fzf-select-dir-hidden
|
||||
function fzf-cd() {
|
||||
local dir="$(__fzf_find_files 0 d +m)"
|
||||
if [[ -z "$dir" ]]; then
|
||||
zle redisplay
|
||||
return 0
|
||||
fi
|
||||
zle push-line # Clear buffer. Auto-restored on next prompt.
|
||||
BUFFER="cd -- $dir"
|
||||
zle accept-line
|
||||
local ret=$?
|
||||
unset dir # ensure this doesn't end up appearing in prompt expansion
|
||||
zle reset-prompt
|
||||
return $ret
|
||||
}
|
||||
zle -N fzf-cd
|
Loading…
Add table
Add a link
Reference in a new issue