Ok, descobri que poderia manipular diretamente os diferentes buffers:
x-paste() {
PASTE=$(pbpaste)
LBUFFER="$LBUFFER${RBUFFER:0:1}"
RBUFFER="$PASTE${RBUFFER:1:${#RBUFFER}}"
}
zle -N x-paste
bindkey -M vicmd "p" x-paste
Eu criei este pequeno script para zsh, para copiar & colar dentro de zsh para a área de transferência do sistema (basicamente tem tudo a partir daqui: copiar e colar zsh como emacs )
x-yank() {
zle copy-region-as-kill
print -rn -- $CUTBUFFER | pbcopy
}
zle -N x-yank
x-cut() {
zle kill-region
print -rn -- $CUTBUFFER | pbcopy
}
zle -N x-cut
x-paste() {
CUTBUFFER=$(pbpaste)
zle yank
}
zle -N x-paste
bindkey -M vicmd "y" x-yank
bindkey -M vicmd "Y" x-cut
bindkey -M vicmd "p" x-paste
No entanto, existem alguns problemas menores, que não consigo corrigir:
Alguma ideia de onde começar?