From 402a854a195ea1e63c622edeee5dbbc802441d53 Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 10 Nov 2026 09:39:10 +0800 Subject: tmux, vimrc: yanks also go to the local terminal clipboard via OSC 52 tmux: set-clipboard on, so OSC 52 written by vim inside a pane is forwarded to the client terminal (external dropped it). vimrc: TextYankPost writes @" as OSC 52 next to the existing ssh push; base64 via the base64 command since base64_encode()/str2blob() are newer than vim 9.1.83. --- core/vimrc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'core/vimrc') diff --git a/core/vimrc b/core/vimrc index fee3ba3..26ebdb6 100644 --- a/core/vimrc +++ b/core/vimrc @@ -68,6 +68,8 @@ let g:clip = ['ssh', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=yes', '-o augroup ssh_clipboard au! au TextYankPost * let g:clip_job = job_start(g:clip + ['umask 077; mkdir -p /dev/shm/clip && cat >/dev/shm/clip/new && mv /dev/shm/clip/new /dev/shm/clip/buf'], {'in_io': 'pipe', 'out_io': 'null', 'err_io': 'null'}) | call ch_sendraw(g:clip_job, @") | call ch_close_in(g:clip_job) +" also OSC 52: @" to the clipboard of the terminal you type in (inside tmux needs set-clipboard on) +au TextYankPost * call echoraw("\e]52;c;" . system("base64 | tr -d '\\n'", @") . "\x07") augroup END " pull (paste): every p P gp gP ]p [p (normal) and p P (visual) first fetches the buffer into @". " Waits up to 3 s for a pending push, then up to 3 s for the fetch (perl alarm kills ssh); -- cgit