# vim:set ft=zsh function lfwrap () { LF_DIRFILE="/tmp/lfdir.$(uuidgen)" lfub -last-dir-path="$LF_DIRFILE" dir="$(cat "$LF_DIRFILE")" rm "$LF_DIRFILE" if [ -d "$dir" ]; then if [ "$dir" != "$(pwd)" ]; then cd "$dir" fi fi tput cuu1;tput el } function _lfwrap () { BUFFER=" lfwrap" zle accept-line } zle -N _lfwrap # 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 -erk "?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{,}