LunarVim(Neovim)在tmux环境下无法复制到系统剪贴板的问题求助
LunarVim(Neovim)在tmux环境下无法复制到系统剪贴板的问题求助
大家好,我遇到了一个折腾好久都没解决的剪贴板问题,想请各位大佬帮忙排查下:
问题现象
- 未使用tmux时:Neovim(nvim)和LunarVim(lvim)的复制/yank功能都正常,能同步到系统剪贴板
- 使用tmux时:nvim的复制/yank依然正常,但lvim的复制完全失效——虽然在lvim里执行
:reg能看到*和+寄存器里有我复制的内容,但用xsel命令查看系统剪贴板时却看不到这些数据
已确认的配置情况
- LunarVim的配置文件里已经设置了剪贴板相关选项,通过
:set clipboard?和let g:clipboard检查过,无论是否在tmux里,配置都正常加载 - Neovim的配置文件里没有任何剪贴板相关设置,但在tmux里依然能正常复制到系统剪贴板
系统环境信息
$ uname -sp; nvim -v | head -1; tmux -V; echo $TERM; tmux show -s | rg -i terminal Linux x86_64 NVIM v0.9.4 # 试过tmux 3.3版本,问题依旧 tmux 3.2a xterm-256color default-terminal tmux-256color terminal-overrides[0] xterm-256color:Tc terminal-features[0] xterm*:clipboard:ccolour:cstyle:focus:title terminal-features[1] screen*:title
$ tmux info|grep Ms 192: Ms: (string) \033]52;%p1%s;%p2%s\a
我还手动设置过DISPLAY环境变量:
$ tmux setenv -g DISPLAY :0
相关配置文件内容
~/.config/lvim/config.lua
vim.opt.clipboard = "unnamedplus" vim.g.clipboard = { name = 'xsel', copy = { ['+'] = 'xsel --nodetach -i -b', ['*'] = 'xsel --nodetach -i -p', -- 试过用tmux的buffer方式,同样不行 -- ['+'] = 'tmux load-buffer -w -', -- ['*'] = 'tmux load-buffer -w -', }, paste = { ['+'] = 'xsel -o -b', ['*'] = 'xsel -o -p', -- ['+'] = 'tmux save-buffer -', -- ['*'] = 'tmux save-buffer -', }, cache_enabled = true, }
tmux配置(~/.tmux.conf)
# 活动窗口背景设置 set-window-option -g window-status-current-bg "#3B4252" set -ga terminal-overrides ",xterm-256color:Tc" # 鼠标设置(已注释) # set -g mouse on # 剪贴板相关尝试过的设置 # 试过on和external,问题依旧 set -s set-clipboard off # set -s command-alias[99] 'load-buffer=load-buffer -w' # set -s copy-command 'xsel -b -i' set -s copy-command 'xsel -i' # 允许传递Ptmux转义序列(tmux 3.3版本特性,已开启) set-window-option -g allow-passthrough on
已尝试的解决方法
- 更换tmux版本(从3.2a换到3.3,问题未解决)
- 调整tmux的
set-clipboard参数(off/on/external都试过) - 修改tmux的
copy-command为不同的xsel参数 - 在lvim的
g:clipboard配置里改用tmux buffer的方式(tmux load-buffer/save-buffer) - 手动设置tmux的DISPLAY环境变量
我参考过tmux官方wiki里的剪贴板相关内容,但还是没找到解决办法,有没有遇到过类似问题的朋友,或者能给我一些排查方向的?谢谢大家!
备注:内容来源于stack exchange,提问作者Kazurus
相关产品推荐
相关产品推荐

