Browse Source

Added OSC 52 clipboard tmux/nvim support

master
chodak166 2 weeks ago
parent
commit
799aaf1f39
  1. 3
      .config/nvim/init.lua
  2. 22
      .config/nvim/lua/config/clipboard.lua
  3. 1
      .config/nvim/lua/config/options.lua
  4. 5
      .tmux.conf

3
.config/nvim/init.lua

@ -1,2 +1,3 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
-- early setup: make sure custom clipboard OSC 52 is registered first, options.lua manages default registry
require("config.clipboard")
require("config.lazy")

22
.config/nvim/lua/config/clipboard.lua

@ -0,0 +1,22 @@
-- ~/.config/nvim/lua/config/clipboard.lua
local function osc52_copy(lines)
local data = table.concat(lines, "\n")
local b64 = vim.fn.system("base64 -w0", data)
vim.fn.chansend(vim.v.stderr, "\x1b]52;c;" .. b64 .. "\x07")
end
vim.g.clipboard = {
name = "OSC 52",
copy = {
["+"] = osc52_copy,
["*"] = osc52_copy,
},
paste = {
["+"] = function()
return vim.split(vim.fn.getreg("+"), "\n")
end,
["*"] = function()
return vim.split(vim.fn.getreg("*"), "\n")
end,
},
}

1
.config/nvim/lua/config/options.lua

@ -1,3 +1,4 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
vim.opt.clipboard = "unnamedplus"

5
.tmux.conf

@ -1,12 +1,15 @@
set -g default-command /usr/bin/zsh
set -g default-terminal "xterm-256color"
set -g default-terminal "tmux-256color"
# disable mouse mode (to use selection mode from current terminal)
set-option -g mouse off
# copy mode
setw -g mode-keys vi
set -g set-clipboard on
set -g allow-passthrough on
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel

Loading…
Cancel
Save