zshにコピーして貼り付ける

zshにコピーして貼り付ける

私はzshの内容をコピーしてシステムクリップボードに貼り付けるためにzsh用にこの小さなスクリプトを直接作成しました(基本的にここからすべてを取得します:zsh 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

しかし、解決できないいくつかの小さな問題があります。

  • 貼り付けると、カーソルの下の現在の文字が削除されます。私はVimメソッドを好み、その後挿入します。
  • コピーしても選択内容は削除されません。

どこから始めるべきアイデアはありますか?

ベストアンサー1

さて、見つけました。さまざまなバッファを直接操作できます。

x-paste() {
    PASTE=$(pbpaste)
    LBUFFER="$LBUFFER${RBUFFER:0:1}"
    RBUFFER="$PASTE${RBUFFER:1:${#RBUFFER}}"
}
zle -N x-paste

bindkey -M vicmd "p" x-paste

おすすめ記事