diff options
author | Josh Rahm <rahm@google.com> | 2023-01-26 00:44:09 +0000 |
---|---|---|
committer | Josh Rahm <rahm@google.com> | 2023-01-26 00:44:09 +0000 |
commit | 3a7d5e7b33fc02441b4083962df024b18d66ef6e (patch) | |
tree | 373b41c7ef7044d47f77a77b2277aa70c828af02 | |
parent | 1e26fd2538a864fc0874bfc9aaa376ea7cac0c25 (diff) | |
download | zshrcd-3a7d5e7b33fc02441b4083962df024b18d66ef6e.tar.gz zshrcd-3a7d5e7b33fc02441b4083962df024b18d66ef6e.tar.bz2 zshrcd-3a7d5e7b33fc02441b4083962df024b18d66ef6e.zip |
Add very dump autocompletion with <C-p>. This can be leveraged later
-rw-r--r-- | 98-bindkeys.zsh | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/98-bindkeys.zsh b/98-bindkeys.zsh index 0d63dce..a68502d 100644 --- a/98-bindkeys.zsh +++ b/98-bindkeys.zsh @@ -16,25 +16,11 @@ autoload edit-command-line zle -N edit-command-line bindkey '' edit-command-line -nvim-feed-keys() { - keys=${1/\'/\\\'} - keys=${keys/\\/\\\\} - python3 - <<END -import neovim, os -try: - nvim_socket = os.environ["NVIM"] - nvim = neovim.attach('socket', path=nvim_socket) - nvim.feedkeys('$keys') -except KeyError: - pass; -END -} - # This allows a ctrl-w motion with neovim, so one does not have do a terminal # escape to switch panes. nvim-move-pane() { read -sk key - nvim-feed-keys "$key" + nvimctl feedkeys "$key" } # Does anyone actually use the execute prompt in zsh? Rebind to go directly to @@ -44,7 +30,7 @@ nvim-cmd-mode() { # fallback to original behavior. zle execute-named-cmd else - nvim-feed-keys ":" + nvimctl feedkeys ":" fi } @@ -75,10 +61,46 @@ expand-last-file() { fi } +select-nvim-reg() { + read -sk reg + ZSH_VIM_REGISTER_SEL="$reg" +} + +put-after-reg-override() { + reg_sel="$ZSH_VIM_REGISTER_SEL" + ZSH_VIM_REGISTER_SEL="" + if [ -z "$NVIM" ] || [ -z "$reg_sel" ] ; then + zle vi-put-after + else + new_l_buffer="${BUFFER[0,$CURSOR+1]}" + new_l_buffer="${new_l_buffer}$(nvimctl getreg "$reg_sel")" + new_r_buffer="${BUFFER[$CURSOR+2,-1]}" + + BUFFER="${new_l_buffer}$new_r_buffer" + CURSOR=$#new_l_buffer + fi +} + +nvim-complete-lst() { + compadd "lol" "hi" "you" "apples" + compadd "good" "day" "sir" +} + +zle -C nvim-complete menu-select nvim-complete-lst + zle -N nvim-move-pane zle -N nvim-cmd-mode zle -N expand-last-file +zle -N select-nvim-reg +zle -N put-after-reg-override bindkey -M vicmd '' nvim-move-pane bindkey -M vicmd ':' nvim-cmd-mode bindkey -M viins '' expand-last-file + +# Allow selecting and pasting registers from neovim using @<reg>p +bindkey -M vicmd '@' select-nvim-reg +bindkey -M vicmd 'p' put-after-reg-override + +bindkey -M viins '' nvim-complete + |