You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在nvim中用鼠标中键复制高亮文本及相关问题

解决Neovim跨程序复制粘贴及清空寄存器问题

一、跨程序复制粘贴的简便配置

你当前的配置把系统主选择区(*)和剪贴板(+)都绑定到了clipboard选择区,导致Xterm里鼠标高亮的主选择区内容无法被Neovim读取。可以按以下步骤调整:

  1. 先确保系统安装了xclip(大部分Linux发行版可通过包管理器安装,比如Debian/Ubuntu用sudo apt install xclip,Fedora用sudo dnf install xclip)。
  2. 替换你现有的剪贴板配置,只保留一行:
set clipboard=unnamed,unnamedplus

这个配置的作用是:

  • unnamed:让Neovim默认寄存器和系统**主选择区(*)**同步,鼠标高亮的内容会自动进入这个区域,切换到Neovim后用鼠标中键或Shift-Insert就能直接粘贴。
  • unnamedplus:让默认寄存器同时和系统**剪贴板(+)**同步,兼容Ctrl+C/Ctrl+V的复制粘贴逻辑。

这样不管是Xterm里鼠标高亮的内容,还是其他程序用Ctrl+C复制的内容,都能在Neovim里正常粘贴。

二、清空寄存器的方法

1. 清空单个寄存器

在Neovim的命令模式下,执行对应命令即可:

  • 清空默认寄存器("")::let @"" = ''
  • 清空系统主选择区(*)::let @* = ''
  • 清空系统剪贴板(+)::let @+ = ''
  • 清空指定命名寄存器(比如a寄存器)::let @a = ''

2. 清空所有寄存器

如果需要一次性清空所有寄存器,可以在命令模式下执行这段循环代码:

for r in range(65,90) + range(97,122) + range(48,57) + ['"', '*', '+', '_', '/', '.', '%', '#', ':', '-']
    execute 'let @'.nr2char(r).' = ""'
endfor

内容的提问来源于stack exchange,提问作者user3236841

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:00:15