2023-01-15 / @syui

terminal , vim , clipboard

terminalのOSC52を使いclipboardを共有する

terminalのOSC52という機能を使うと、ssh-sessionでもcopyしたものがsystemのclipboardに入ります。これらはosの互換性に関係ないため幅広く使えます。

ただし、clipboardの共有は、往々にしてセキュリティ問題があるため注意してください。

また、tmuxではできなかったので、iterm2の別タブで行いました。

iterm2の設定は、General -> Selection -> Application ... access clipboardです。

まず、tty-copyはコマンドです。tty-copy textというように使います。ssh先でもssh元のclipboardに入ります。

https://github.com/jirutka/tty-copy

次にvim-pluginです。

https://github.com/ojroques/vim-oscyank

例えば、yyで同時にOSCYankRegが実行されてsystemのclipboardに入れる設定です。

Plug 'ojroques/vim-oscyank', {'branch': 'main'}

"let g:oscyank_silent = v:true
let g:oscyank_term = 'tmux'
autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | execute 'OSCYankReg "' | endif
autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '+' | execute 'OSCYankReg +' | endif

ただ、tmux上で動作しないのがよくわからない。

tmuxにはset-option -g set-clipboard on等を設定して、commandやpluginもtmuxに該当する項目があるのに動作しませんでした。