1
0
Fork 0
dotfiles/.config/zsh/configs/widgets

59 lines
1.4 KiB
Plaintext
Raw Normal View History

2023-03-29 16:15:06 +02:00
# vim:set ft=zsh
# LF Change Dir
function lfcd () {
tmp="$(mktemp)"
fid="$(mktemp)"
lf -command '$printf $id > '"$fid"'' -last-dir-path="$tmp" "$@"
id="$(cat "$fid")"
archivemount_dir="/tmp/__lf_archivemount_$id"
if [ -f "$archivemount_dir" ]; then
cat "$archivemount_dir" | \
while read -r line; do
sudo umount "$line"
rmdir "$line"
done
command rm -f "$archivemount_dir"
fi
if [ -f "$tmp" ]; then
dir="$(cat "$tmp")"
command rm -f "$tmp"
if [ -d "$dir" ]; then
if [ "$dir" != "$(pwd)" ]; then
cd "$dir"
fi
fi
fi
tput cuu1;tput el
}
function _lfcd () {
BUFFER="lfcd"
zle accept-line
}
zle -N _lfcd
# Cursor Shape
function zle-keymap-select () {
case $KEYMAP in
vicmd) echo -ne '\e[1 q';; # block
viins|main) echo -ne '\e[5 q';; # beam
esac
}
zle -N zle-keymap-select
zle-line-init() {
zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
echo -ne "\e[5 q"
}
zle -N zle-line-init
# CMDLine Edit
zle -N edit-command-line
# Lazygit
function lg () {
[ ! -d "$(pwd)/.git" ] && [[ $(read -ek "?Not in a git repository. Create a new git repository? (y/n): ") =~ ^[Yy]$ ]] && git init
[ -d "$(pwd)/.git" ] && lazygit -p $(pwd)
zle reset-prompt
}
zle -N lg{,}