У меня есть следующий скрипт, который передает git stash list
- fzf
:
git stash list\
--color=always\
--pretty=format:'%Cred%gd%Creset - %s%C(yellow)%d%Creset %Cgreen(%cr) %C(bold blue)' |\
fzf\
--ansi\
--tiebreak=index\
--header "<enter> view stash | <alt-enter> apply stash | <alt-d> drop stash | <ctrl-p> toggle preview window | <esc> quit"\
--preview "echo {} | grep -o 'stash@{[0-9]}' | head -1 | xargs -I % sh -c 'git show --color=always %' | diff-so-fancy"\
--preview-window "hidden"\
--bind "ctrl-p:toggle-preview"\
--bind "alt-d:execute(echo {} | grep -o 'stash@{[0-9]}' | xargs -I % sh -c 'git stash drop %')+abort"\
--bind "alt-enter:execute(echo {} | grep -o 'stash@{[0-9]}' | xargs -I % sh -c 'git stash apply %')+abort"\
--bind "enter:execute: (grep -o 'stash@{[0-9]}' | xargs -I % sh -c 'git stash show -p --color=always %' | diff-so-fancy | less -R) << 'FZF-EOF'
{} FZF-EOF"
Я хотел бы нажать Alt + d и передать выбранную позицию в git stash drop
И, чтобы также удалить этот элемент из списка.
Мне удалось выполнить только часть этого со следующей привязкой:
--bind "alt-d:execute(echo {} | grep -o 'stash@{[0-9]}' | xargs -I % sh -c 'git stash drop %')+abort"\
Хотя при этом элемент передается на git stash drop
, он также отменяет (т.е. закрывает) список.
Как удалить элемент из списка после его передачи на git stash drop
чтобы он больше не появлялся в списке, но чтобы список оставался открытым?