В bash
с set -o vi
, я использую
bind '"\C-]":"\C-[A\C-u cb <<"EOF"\n\C-y\nEOF\n"'
чтобы ^]
в режиме вставки поместить cat
текущую строку в мою оболочку буфера обмена ( cb
).
Как мне это эмулировать в zsh
(с set -o vi
)?
решение1
Мне подходят следующие варианты:
copy-to-xclip() {
zle kill-buffer
print -rn -- $CUTBUFFER | cb
}; zle -N copy-to-xclip
bindkey -M viins "^]" copy-to-xclip
paste-xclip() {
killring=("$CUTBUFFER" "${(@)killring[1,-2]}")
CUTBUFFER=$(xclip -selection clipboard -o)
zle yank
}; zle -N paste-xclip
bindkey -M vicmd "p" paste-xclip