root 无法在 vim 8.2 中使用系统剪贴板

root unable to use system clipboard in vim 8.2

我安装了 Vim 8.2 版(Arch Linux 上的 gvim 软件包)。我同时拥有 +clipboard 和 +xterm_clipboard 功能。在我的 ~/.vimrc 中,我有 set clipboard=unnamedplus 并在 /root 中为这个文件创建了一个符号 link,这样我只需要编辑一个配置。问题是猛拉和粘贴仅适用于我的普通用户帐户,但不适用于 root:如果我 运行 vim 作为 root 我什至无法使用 "+y 命令复制到系统剪贴板:两者 PRIMARYCLIPBOARD 寄存器保持不变。

我的终端模拟器是 Konsole 20.04.0。关于可能导致这种奇怪行为的原因有什么想法吗?可能值得注意的是,我使用 su -l 获取根 shell.

为了访问 X11 剪贴板,需要将 DISPLAY 变量设置为正确的值并且可以访问 magic cookie(即身份验证令牌)。

通常,如果您使用 sudosu 至 运行 作为根用户,出于安全原因,环境变量会被清除,因此您可能缺少 DISPLAY 环境变量。您可以在更改 shell 时显式设置 DISPLAY 环境变量(例如 export DISPLAY=:0.0),或者使用一些脚本将某些环境变量转储到文件或从文件重新加载,或者您可以跳过 -l 标志用于 su 或使用 -E 标志用于 sudo.

请注意,后两个选项的安全性很差,但一般来说,让 root 访问与非特权用户相同的 X11 会话并不是一个好主意,所以你想做的事情对安全性来说并不是很好第一名。如果您是系统上的唯一用户,可能没问题,具体取决于您的舒适程度和威胁模型。