From 44f7c5798ed180b08bce0683437bcaff51b1294e Mon Sep 17 00:00:00 2001 From: zwyyy456 Date: Sun, 29 Dec 2024 16:47:56 +0800 Subject: [PATCH 1/3] feat(clipboard): add simple osc52 support --- lib/clipboard.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index 5d149f056..15a69e5e9 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -84,6 +84,17 @@ function detect-clipboard() { elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )); then function clipcopy() { tmux load-buffer "${1:--}"; } function clippaste() { tmux save-buffer -; } + elif [[ "$TERM" == "xterm"* || "$TERM" == "screen"* || "$TERM" == "tmux"* ]]; then + # OSC 52 support + function clipcopy() { + local data + data=$(cat "${1:-/dev/stdin}" | base64 | tr -d '\n') + printf "\033]52;c;%s\a" "$data" > /dev/tty + } + function clippaste() { + echo "OSC 52 does not support pasting from the clipboard." + return 1 + } else function _retry_clipboard_detection_or_fail() { local clipcmd="${1}"; shift From 32b4d285c3e43d382b31795b3cb433b5290a8457 Mon Sep 17 00:00:00 2001 From: zwyyy456 Date: Sun, 29 Dec 2024 17:07:13 +0800 Subject: [PATCH 2/3] fix(typo): make the name of local varialbe more readable --- lib/clipboard.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index 15a69e5e9..bf58a72ae 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -87,8 +87,8 @@ function detect-clipboard() { elif [[ "$TERM" == "xterm"* || "$TERM" == "screen"* || "$TERM" == "tmux"* ]]; then # OSC 52 support function clipcopy() { - local data - data=$(cat "${1:-/dev/stdin}" | base64 | tr -d '\n') + local content_tocopy + content_tocopy=$(cat "${1:-/dev/stdin}" | base64 | tr -d '\n') printf "\033]52;c;%s\a" "$data" > /dev/tty } function clippaste() { From 3ce427d1966c039f75446ab9b3e8ef95cbbee404 Mon Sep 17 00:00:00 2001 From: zwy Date: Sun, 29 Dec 2024 22:10:23 +0900 Subject: [PATCH 3/3] feat(clipboard, copybuffer): fix typo, add 'yy' to yank buffer in vi-normal mode --- lib/clipboard.zsh | 2 +- plugins/copybuffer/copybuffer.plugin.zsh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index bf58a72ae..c3ae518df 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -89,7 +89,7 @@ function detect-clipboard() { function clipcopy() { local content_tocopy content_tocopy=$(cat "${1:-/dev/stdin}" | base64 | tr -d '\n') - printf "\033]52;c;%s\a" "$data" > /dev/tty + printf "\033]52;c;%s\a" "$content_tocopy" > /dev/tty } function clippaste() { echo "OSC 52 does not support pasting from the clipboard." diff --git a/plugins/copybuffer/copybuffer.plugin.zsh b/plugins/copybuffer/copybuffer.plugin.zsh index e636d9730..3238a2a6a 100644 --- a/plugins/copybuffer/copybuffer.plugin.zsh +++ b/plugins/copybuffer/copybuffer.plugin.zsh @@ -14,3 +14,4 @@ zle -N copybuffer bindkey -M emacs "^O" copybuffer bindkey -M viins "^O" copybuffer bindkey -M vicmd "^O" copybuffer +bindkey -M vicmd "yy" copybuffer