59 lines
1.4 KiB
Plaintext
59 lines
1.4 KiB
Plaintext
|
# 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{,}
|
||
|
|