diff --git a/dot_config/zsh/keybinds.zsh b/dot_config/zsh/keybinds.zsh new file mode 100644 index 0000000..018740a --- /dev/null +++ b/dot_config/zsh/keybinds.zsh @@ -0,0 +1,50 @@ +# ~/.config/zsh/keybinds.zsh — zle ports of fish_user_key_bindings.fish. +# Keys owned by kitty.conf never reach the shell and are NOT bound here: +# ctrl-h/j/k/l → vim-aware split nav (pass_keys.py). + +bindkey -e # pin emacs keymap ($EDITOR containing "vi" would pick viins) +unsetopt flow_control # free ^Q/^S in zle so the ctrl-q exit bind fires + +# Generic runner: widget `run-` executes (function or binary) with +# the tty as stdin, then repaints — fish's `commandline -f repaint`. +# cwd changes from gho/yy persist: widgets run in the shell process. +_zle-run() { + local cmd=${WIDGET#run-} + zle -I + $cmd