(feat): add osc52 support

This commit is contained in:
bumpsoo 2025-04-17 04:26:25 +00:00
parent ff50325ade
commit e08ef74fa4
4 changed files with 43 additions and 1 deletions

View file

@ -0,0 +1,27 @@
return {
'ojroques/vim-oscyank',
config = function()
local valid_registers = {
[''] = true,
['+'] = true,
['*'] = true,
}
local valid_operators = {
['y'] = true,
['d'] = true,
}
vim.api.nvim_create_autocmd('TextYankPost', {
callback = function()
local regname = vim.v.event.regname
local operator = vim.v.event.operator
if valid_registers[regname] and valid_operators[operator] then
vim.fn.OSCYankRegister(regname)
end
end,
})
end
}

View file

@ -3,5 +3,9 @@ setw -g mode-keys vi
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
bind-key -T copy-mode-vi 'r' send -X rectangle-toggle
set -s copy-command 'wl-copy'
set-option -s set-clipboard on
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "tmux save-buffer - | tmux load-buffer - && tmux show-buffer | osc52_copy"
bind-key -T copy-mode y send-keys -X copy-pipe-and-cancel "tmux save-buffer - | tmux load-buffer - && tmux show-buffer | osc52_copy"

View file

@ -66,6 +66,8 @@ COPY --chown=${USERNAME}:${GID} .config/nvim /home/${USERNAME}/.config/nvim
COPY --chown=${USERNAME}:${GID} .tmux.conf /home/${USERNAME}/.tmux.conf
COPY --chown=${USERNAME}:${GID} bin/osc52_copy /home/${USERNAME}/.local/bin/osc52_copy
RUN echo 'export LANG=ko_KR.UTF-8' >> ~/.bashrc \
&& echo 'export LC_ALL=ko_KR.UTF-8' >> ~/.bashrc

9
bin/osc52_copy Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
# OSC52로 클립보드에 복사하는 스크립트
if [ -t 0 ]; then
input="$*"
else
input="$(cat)"
fi
printf '\033]52;c;%s\a' "$(printf "%s" "$input" | base64 | tr -d '\r\n')"