copiar e colar em zsh

2

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:

  • Colar irá remover o caracter atual que sob o cursor, eu prefiro muito mais o Vim, para inseri-lo depois.
  • A cópia não remove a seleção.

Alguma ideia de onde começar?

    
por Leandros 29.01.2016 / 17:43

1 resposta

1

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
    
por 29.01.2016 / 22:18

Tags