summaryrefslogtreecommitdiff
path: root/vim/.config/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/.config/nvim')
-rw-r--r--vim/.config/nvim/init.lua74
1 files changed, 53 insertions, 21 deletions
diff --git a/vim/.config/nvim/init.lua b/vim/.config/nvim/init.lua
index 91d8c13..90e0f89 100644
--- a/vim/.config/nvim/init.lua
+++ b/vim/.config/nvim/init.lua
@@ -68,27 +68,59 @@ vim.api.nvim_create_autocmd("TermOpen", {
vim.o.clipboard = "unnamedplus"
-vim.api.nvim_create_autocmd("TextYankPost", {
- callback = function()
- vim.highlight.on_yank()
- local osc52 = require("vim.ui.clipboard.osc52")
- local contents = vim.v.event.regcontents
- local regtype = vim.v.event.regtype
-
- if type(contents) == "string" then
- contents = { contents }
- end
-
- if regtype == "V" then
- for i, line in ipairs(contents) do
- contents[i] = line .. "\n"
- end
- end
-
- osc52.copy("+")(contents)
- osc52.copy("*")(contents)
- end,
-})
+vim.g.clipboard = {
+ name = "OSC 52",
+ copy = {
+ ["+"] = require("vim.ui.clipboard.osc52").copy("+"),
+ ["*"] = require("vim.ui.clipboard.osc52").copy("*"),
+ },
+ paste = {
+ ["+"] = require("vim.ui.clipboard.osc52").paste("+"),
+ ["*"] = require("vim.ui.clipboard.osc52").paste("*"),
+ },
+}
+-- stupid hacky workaround to make it so i can paste from tmux with OSC52
+-- https://github.com/neovim/neovim/discussions/29350#discussioncomment-10299517
+-- tracking issue about tmux behavior: https://github.com/tmux/tmux/issues/4275
+if vim.env.TMUX ~= nil then
+ local copy = {'tmux', 'load-buffer', '-w', '-'}
+ local paste = {'bash', '-c', 'tmux refresh-client -l && sleep 0.05 && tmux save-buffer -'}
+ vim.g.clipboard = {
+ name = 'tmux',
+ copy = {
+ ['+'] = copy,
+ ['*'] = copy,
+ },
+ paste = {
+ ['+'] = paste,
+ ['*'] = paste,
+ },
+ cache_enabled = 0,
+ }
+end
+--
+-- vim.api.nvim_create_autocmd("TextYankPost", {
+-- callback = function()
+-- vim.highlight.on_yank()
+-- local osc52 = require("vim.ui.clipboard.osc52")
+-- local contents = vim.v.event.regcontents
+-- local regtype = vim.v.event.regtype
+--
+-- if type(contents) == "string" then
+-- contents = { contents }
+-- end
+--
+-- if regtype == "V" then
+-- for i, line in ipairs(contents) do
+-- contents[i] = line .. "\n"
+-- end
+-- end
+--
+-- osc52.copy("+")(contents)
+-- osc52.copy("*")(contents)
+-- end,
+-- })
+--
-- Enable experimental UI in neovim-nightly
require('vim._extui').enable({})