環境
OS: Ubuntu24.04 on WSL2 on Windows 11 Pro Vim: 9.1.2011
なんでコピーのみを有効にするの?
Windows Terminal と wstty(putty) で試したんですが、これらターミナルは OSC52 のコピー機能をサポートしているのに対し、ペースト機能はサポートしていないようです。
そして、ペースト機能をサポートしていないターミナルでは、 Vim 内で完結するペースト操作も使用できなくなってしまいう用でした。
解決方法
Vimrc に以下の設定を追加します。
if !has('win32')
if has("patch-9.1.1984")
function! InitOsc52() abort
let v:clipproviders["osc52"] = {
\ "available": v:true,
\ "copy": {
\ "*": function('osc52#Copy'),
\ "+": function('osc52#Copy')
\ },
\ }
endfunction
augroup init_osc52
autocmd!
autocmd VimEnter * call InitOsc52()
augroup END
packadd osc52
let g:osc52_force_avail = v:true
let g:osc52_disable_paste = v:true
set clipmethod=osc52,x11,wayland
endif
endif
v:clipproviders["osc52"]
がキモなのですが、paste
の設定を省略することで、ペースト機能を無効化しています。
ただし、 Vimrc
のトップレベルにべた書きで定義すると、プラグインの初期設定で上書きされてしまうため、VimEnter
イベントで初期化するようにしています。
こうすることで、何らかのタイミングがかみ合い、ペースト機能が有効になってしまうことを防いでいます。
Windows のターミナルで OSC52 のコピー機能のみを有効にしたい場合は、試してみてください。
0 件のコメント:
コメントを投稿