auroraf5405e0
zsh: add shell wrapper for yazi
+10 −0
1 file changed
- M .config/zsh/.zshrc +10 −0
| @@ -36,6 +36,16 @@ function zle-keymap-select () { | |||
| 36 | 36 | viins|main) echo -ne '\e[5 q';; # beam | |
| 37 | 37 | esac | |
| 38 | 38 | } | |
| 39 | + | ||
| 40 | + | # Yazi shell wrapper | |
| 41 | + | function y() { | |
| 42 | + | local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd | |
| 43 | + | yazi "$@" --cwd-file="$tmp" | |
| 44 | + | IFS= read -r -d '' cwd < "$tmp" | |
| 45 | + | [ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd" | |
| 46 | + | rm -f -- "$tmp" | |
| 47 | + | } | |
| 48 | + | ||
| 39 | 49 | zle -N zle-keymap-select | |
| 40 | 50 | zle-line-init() { | |
| 41 | 51 | zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) | |