Linux | Vim 鼠标不能右键粘贴、跨系统复制粘贴
注:本文为 “ Vim 中鼠标右键粘贴、跨系统复制粘贴问题解决方案” 相关文章合辑。
未整理去重。
Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴
foryouslgme 发布时间 2016 - 09 - 28 10:24:16
Vim 基础
- 命令模式(command - mode):多用于操作文本文件(而非操作文本文件内容),如保存文件;或改变编辑器自身状态,如设定多栏窗口、标签或退出编辑器等。进入命令模式:按
esc
+:
,再输入命令,例如:w
保存当前文件不退出,:q!
强制退出,:x
保存且退出。 - 插入模式(insert - mode):用于修改文本内容。进入插入模式:在正常模式下按特定插入符,具体如下:
i
:在光标所在字符前开始输入文字并进入插入模式。a
:在光标所在字符后开始输入文字并进入插入模式。A
:在行尾开始输入文字并进入插入模式。o
(字母 o):在光标所在行的下面单独开一新行来输入文字并进入插入模式。O
(大写字母 O):在光标所在行的上面单独开一新行来输入文字并进入插入模式。s
:删除光标所在的字符并进入插入模式。I
:在行首开始输入文字并进入插入模式。S
:删除光标所在行并进入插入模式。G
:跳转到文章末尾。crtl + f
:向下翻页。ctrl + b
:向上翻页。
- 可视模式(visual - mode):相当于高亮选取文本后的普通模式,具有子模式,包括以行为单位进行选取的可视行模式(使用 “V” 键进入)和以块为单位进行选取的可视块模式(使用 “Ctrl + v” 键进入)。进入可视模式:在正常模式下按
ctrl + v|V
。 - 正常模式(normal - mode)(普通模式):主要用于浏览和修改文本内容,一般打开 Vim 即处于正常模式。进入正常模式:在任何模式下,按下
Esc
键即可返回正常模式。
不能右键粘贴设置方法
使用 vim 时,鼠标右键不能粘贴而是进入了 visual 模式,解决方法如下:
方法一
在命令模式下输入 :set mouse-=a
。
方法二
编辑 ~/.vimrc
文件,加入如下代码:
if has('mouse') set mouse-=a
endif
注:set mouse=a
用于开启鼠标功能,其中 a
表示所有模式。
附
vi 有三种模式:命令模式、插入模式、可视模式。鼠标可在各种模式中启用,具体如下:
The mouse can be enabled for different modes:
`n` Normal mode
`v` Visual mode
`i` Insert mode
`c` Command - line mode
`h` all previous modes when editing a help file
`a` all previous modes
`r` for |hit - enter| and |more - prompt| prompt
通常,使用 :set mouse=a
来启用所有模式下的鼠标功能(等价于设置 mouse
为 “nvich”)。若只想在特定模式下使用鼠标,可针对性设置,例如:
:set mouse=nv
:使鼠标在普通模式和可视模式下工作。:set mouse=h
:使鼠标仅在帮助文件中工作(可通过 “g” 进行标签跳转)。
鼠标能否在可视模式或选择模式下开始选择,取决于 “selectmode” 选项是否包含 “mouse”。
查看之前的复制内容,可在命令模式下输入 :reg
。
>>>>>>
和 <<<<<<
等与 git
中的修改记录类似。
Vim 配置#Vim 中使用鼠标功能
马丁路德彬 发布时间 2017 - 02 - 10 11:53:47
1、简介
近期使用 vim 时,发现 vim 也可使用鼠标,本章主要介绍如何启用鼠标功能。
2、打开鼠标功能
在命令模式下输入 :set mouse=a
。
3、关闭鼠标功能
在命令模式下输入 :set mouse-=a
。
4、鼠标模式
‘mouse’
的参数说明如下:
// n 普通模式
// v 可视模式
// i 插入模式
// c 命令行模式
// h 在帮助文件里,以上所有模式
// a 以上所有模式
// r 跳过|lit - enter|提示
// A 在可是模式下自动选择
'mouse'
的缺省值为空,即默认不使用鼠标。通常可使用 :set mouse=a
来启用鼠标(此设置等价于将 'mouse'
设为 “nvich”)。若只想在某些模式或特定任务中使用鼠标,需关注对应模式的字母,例如:
:set mouse=nv
:使鼠标在普通模式和可视模式下可用。:set mouse=h
:使鼠标仅在帮助文件中可用(可通过 “g” 实现标签跳转)。
鼠标能否在可视模式或选择模式下开始选择,取决于 “selectmode” 选项是否包含 “mouse”。
5、解决鼠标模式右键不能粘贴问题
在设置了 'mouse'
选项(见上文)的情况下,使用鼠标和可视模式进行复制/粘贴的步骤如下:
- 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左键。这将启动可视模式并高亮选择区域。
- 按 “y” 将可视文本抽出到无名寄存器中。
- 在要插入的位置上按鼠标左键。
- 按鼠标中键(滚轮)进行粘贴。
解决配置 vim 之后不能鼠标右键复制问题
路安在 发布时间:2022 - 05 - 21 12:31:30
问题描述
配置完 vim 后,无法使用鼠标右键进行复制和粘贴,但从 vim 外复制的内容可通过鼠标右键粘贴。
解决问题过程
起初,尝试对 vimrc
文件中有关复制的命令进行注释和删除,但均未解决问题,CTRL + c
、ctrl + v
也无法使用。
随后,搜索浏览网上解答,部分回答称选中需要复制的内容后按键盘上的 y
即可复制,但实际操作时,选中内容未复制成功且被 y
字母覆盖。
最终,通过参考 https://blog.csdn.net/victoryckl/article/details/8122012 解决了问题。
解决方法
常规复制粘贴
- 先将光标置于要粘贴的位置或空白处。
- 找到要复制的语句,在键盘上一直按住
shift
,再用鼠标左键选中,然后点击鼠标滑轮,选中的语句或内容将直接粘贴到光标所在位置,无需使用crtl + V
。
跨界面复制粘贴
- 在 Vim 界面中,直接找到需要复制的语句,先按住
shift
,再用鼠标左键选中。 - 无需点击鼠标滑轮。
- 切换到其他界面,通过鼠标右键进行粘贴。
总结
- 复制:按住
shift
,再用鼠标左键选中。 - 粘贴:点击鼠标滑轮,内容将直接粘贴到光标位置。
Vim 全局配置 / 设置鼠标模式
BrandonPei 发布时间 2023 - 12 - 03 15:10
在新安装的 Linux(Debian)系统上,vim 一右击粘贴就进入 insert(Visual)模式。经查询,需设置 set mouse=
,但每次设置较为麻烦,同时还想修改全局配色。
定位全局配置文件
有博客指出,在 /usr/share/vim/share/...
下有个 vimrc
文件,但不同系统或版本可能存在差异。一般先在 /usr/share/vim
目录下查找,在此找到了 /usr/share/vim/vimrc
文件,文件末尾有如下几行:
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")source /etc/vim/vimrc.local
endif
由此可知,应修改 /etc/vim/vimrc.local
文件。分析为何设置 vimrc.local
而非直接修改原文件:vim 每次更新后可能修改默认配置,直接修改会在更新时产生冲突,而 local
表示本地配置,与上游 vim 配置无关。
最终在 /etc/vim/vimrc.local
文件中添加如下内容:
set mouse=
colorscheme slate
补充说明:
经实测,在上述位置添加 set mouse=
不会生效。
参考
- vim 设置 mouse 行为不生效 - 简书
https://www.jianshu.com/p/29744bae5f3d
可知,鼠标的行为在 vimrc.local
之后加载。因此,有两种解决方法:
- 在
/etc/vim/vimrc.local
中添加let skip_defaults_vim = 1
。 - 在要用的 root 用户主目录下创建
.vimrc
文件,但这样会导致 root 用户没有代码高亮。解决办法是在~/.vimrc
中添加一句source
,即:
source $VIMRUNTIME/defaults.vim
set mouse=""
补充说明 2:
考虑到鼠标模式较为有用,可设置快捷键以便快速切换鼠标和非鼠标模式。在 /etc/vim/vimrc.local
中添加以下代码:
map <F9> <ESC>:call Mouse()<CR>function Mouse()if has('mouse')if &mouse=="":set mouse=a:echo "mouse enabled"else:set mouse="":echo "mouse disabled"endifelse:echo "no mouse"endif
endfunction
上述代码中,map
命令将 F9 按键绑定到 <ESC>:call Mouse()<CR>
。其中,ESC
用于应对已进入 Visual 模式的情况,先退出该模式,再执行函数;CR
表示换行,用于应用命令。函数中 &mouse
表示获取 vim 中 mouse
选项的值。
vim 设置 mouse 行为不生效
sarto 属地:陕西 发布时间 2021.04.01 10:00:56
vim 在 debina 下的运行环境
在 vim 中输入 :echo $VIMRUNTIME
,会显示 /usr/share/vim/vim81
,此为 debian vim 运行环境的路径。
vim 中在 vimrc 中修改 mouse 不生效的问题
在 vimrc
中设置 vimrc-=a
未生效,经查找发现,/usr/share/vim/vim81/defaults.vim
中默认的鼠标行为影响了 vimrc
的配置。将该文件中如下代码:
78 if has('mouse')
79 set mouse=a
80 endif
的 set mouse=a
改为 set mouse-=a
即可。
最后编辑时间:2021.04.01 10:01:14
vim 鼠标右键无法复制
jeensung 发布时间 2010 - 12 - 14 20:20:32
修改 ~/.vimrc
文件后,发现鼠标右键无法复制文本。在配置文件(~/.vimrc
)中发现如下内容:
11 " In many terminal emulators the mouse works just fine, thus enable it.
12 if has('mouse')
13 set mouse=a
14 endif
在 vim 帮助文件中,关于鼠标模式有如下解释:
The mouse can be enabled for different modes:n Normal modev Visual modei Insert modec Command - line modeh all previous modes when editing a help filea all previous modesr for |hit - enter| and |more - prompt| prompt
Normally you would enable the mouse in all four modes with::set mouse=a
When the mouse is not enabled, the GUI will still use the mouse for
modeless selection. This doesn't move the text cursor.
可见,配置文件中的 set mouse=a
启用了所有模式,导致 vim 接管了鼠标控制。
鼠标事件有程序处理和 X 处理两种方式。若由 X 负责处理,则是左键选择,中间粘贴。要让 vim 中由 X 负责处理,有以下两种方法:
- 按住
shift
键进行选择,此时由 X 处理该选择,copy
选项将启用。若松开shift
键,则由 vim 处理该选择。 - 在
.vimrc
中设置set mouse=
(即清空),此时 vim 不再干涉鼠标选择,始终将处理权交给 X。这种情况下,鼠标处于无模式编辑状态,也可使用鼠标切换 vim 中的 tab 窗口,且 vim 中的编辑光标不会跟随鼠标。
参考链接
-
Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴_vim 中当鼠标右键功能无法使用时,如何开启 - CSDN 博客
-https://blog.csdn.net/foryouslgme/article/details/52688285 -
Vim 配置#Vim 中使用鼠标功能_zsh vim 鼠标插入模式 - CSDN 博客
https://blog.csdn.net/qq_27968607/article/details/54966912 -
解决配置 vim 之后不能鼠标右键复制问题_vim 里的鼠标右键 - CSDN 博客
https://blog.csdn.net/weixin_51622761/article/details/124895911 -
Vim 鼠标配置详解 - CSDN 博客
https://blog.csdn.net/victoryckl/article/details/8122012 -
Vim 全局配置 / 设置鼠标模式 - BrandonPei - 博客园
https://www.cnblogs.com/BrandonPei/p/17873231.html -
vim 设置 mouse 行为不生效 - 简书
https://www.jianshu.com/p/29744bae5f3d -
vim 鼠标右键无法复制_jeensung_新浪博客
http://blog.sina.com.cn/s/blog_622d95080100ny94.html
相关文章:

Linux | Vim 鼠标不能右键粘贴、跨系统复制粘贴
注:本文为 “ Vim 中鼠标右键粘贴、跨系统复制粘贴问题解决方案” 相关文章合辑。 未整理去重。 Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴 foryouslgme 发布时间 2016 - 09 - 28 10:24:16 Vim 基础 命令模式(command - mode&…...

无人机遥控器扩频技术解析!
一、扩频技术基本原理 扩频技术(Spread Spectrum, SS)通过将信号的频谱扩展至远大于原始带宽进行传输,提升抗干扰性、隐蔽性和多用户能力。其核心原理包括: 直接序列扩频(DSSS) 利用高速伪随机码&#x…...

Spring Boot API 项目中 HAProxy 与 Nginx 的选择与实践
在开发 Spring Boot 构建的 RESTful API 项目时,负载均衡和反向代理是提升性能与可用性的关键环节。HAProxy 和 Nginx 作为两种流行的工具,经常被用于流量分发,但它们各有侧重。究竟哪一个更适合你的 Spring Boot API 项目?本文将…...

OpenBMC:BmcWeb构造connect对象
OpenBMC:BmcWeb server.run-CSDN博客 server在接收了tcp连接请求后,会构造一个ConnectionType对象,然后通过post调度,运行该对象的start函数 1.ConnectionType类型 其实也就是using ConnectionType = Connection<Adaptor, Handler>;类型 由于ConnectionType实例化于…...

ORB-SLAM2源码学习(六):相机跟踪(局部地图跟踪和关键帧创建)
目录 1.局部地图跟踪 1.1 更新局部关键帧UpdateLocalKeyFrames 1.2 更新局部地图点(来自局部关键帧)UpdateLocalPoints() 1.3 投影匹配 2. 对比四种跟踪方式以及使用的投影匹配 3.关键帧创建 3.1 判断是否需要创建新关键帧: NeedNewKeyFrame() 3…...

WordPress使用(3)
前面文章讲述了如何利用docker进行wordpress系统的安装及相关设置,本文将介绍如何进行站点数据和数据库数据的备份。 1. 备份数据库 # 进入mysql容器内部 docker exec -it mysqlwp bash# 使用mysqldump 命令导出数据库 mysqldump -u root -p wordpress > wordp…...

Docker基础篇——什么是Docker与Docker的仓库、镜像、容器三大概念
大家好我是木木,在当今快速发展的云计算与云原生时代,容器化技术蓬勃兴起,Docker 作为实现容器化的主流工具之一,为开发者和运维人员带来了极大的便捷 。下面我们一起了解下什么是Docker与与Docker的仓库、镜像、容器三大概念。 …...

Gitlab配置personal access token
1.点击左上角个人账号 -> Preferences 2. 点击左边栏 Access Tokens 3. 点击Add new token ,输入token名称,勾选权限(注意截至日期 “Expiration date” 可不填) 4. 创建成功后,显示token信息,复制到本地…...

使用STM32CubeMX实现LED灯每秒闪烁一次(STM32G070CBT6单片机)
1.打开STM32CubeMX,点击File->New Project,新建一个新工程。 2.搜索芯片型号,选择正确的芯片封装规格,准备对芯片的引脚进行配置。 进行上面的操作后,跳转到如下的页面。 3.选择要配置的引脚进行配置。此处我的LED是…...

django中路由配置规则的详细说明
在 Django 中,路由配置是将 URL 映射到视图函数或类视图的关键步骤,它决定了用户请求的 URL 会触发哪个视图进行处理。以下将详细介绍 Django 中路由配置的规则、高级使用方法以及多个应用配置的规则。 基本路由配置规则 1. 项目级路由配置 在 Django 项目中,根路由配置文…...

游戏引擎学习第138天
仓库:https://gitee.com/mrxiao_com/2d_game_3 资产:game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程,从像素渲染到不使用GPU的方式,我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…...

测试理论快速入门
软件测试的目的是什么 查出缺陷 查找程序的错误:测试功能是否可用,添加的功能是否成功添加实现 发现性能问题:查看响应速度是否在可接受范围内 找出兼容性问题:这个功能是否在多端都能成功使用,例如pc端和mo端 确保交…...

【PostgreSQL】如何免密使用PostgreSQL数据库内置工具
如何免密使用PostgreSQL数据库内置工具 方法 1:使用 .pgpass 文件自动输入密码步骤: 方法 2:使用环境变量 PGPASSWORD步骤: 我们在PostgreSQL数据库自带的各种工具时,每次使用都要输入数据库密码。比如在使用pg_dump 备…...

模块15.常用API
文章目录 模块15.常用API第一章.Math类1.Math类介绍2.Math类方法 第二章.BigInteger1.BigInteger介绍2.BigInteger使用 第三章.BigDecimal类1.BigDecimal介绍2.BigDecimal使用3.BigDecimal除法过时方法解决 第四章.Date日期类1.Date类的介绍2.Date类的使用3.Date类的常用方法 第…...

5c/c++内存管理
1. C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(sizeof(int) * 4);i…...

python实现的可爱卸载动画
在逛掘金时,掘金用户在B站看到的灵感进行的一个卸载窗口的动画效果的实用案例。人类是一种不断在学习的动物,并且是一种模仿能力学习能里比较强的动物。我这里是第三波的学习实践者咯! 相对VUE构建动画效果窗口,我更加喜欢用pytho…...

微服务的春天:基于Spring Boot的架构设计与实践
微服务的春天:基于Spring Boot的架构设计与实践 在如今的技术领域,微服务架构俨然成为了解决复杂系统开发与运维挑战的关键利器。作为一名资深运维和自媒体创作者,笔名Echo_Wish,我将深入探讨基于Spring Boot的微服务架构设计,结合实例代码说明观点,希望能为大家带来启发…...

*VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势
*VulnHub-FristiLeaks:1.3暴力解法、细节解法,主打软硬都吃,隧道搭建、寻找exp、提权、只要你想没有做不到的姿势 一、信息收集 1、扫靶机ip 经典第一步,扫一下靶机ip arp-scan -l 扫描同网段 nmap -sP 192.168.122.0/242、指纹扫描、端口…...

OpenCV 颜色空间:原理与操作指南
颜色空间原理 RGB 颜色空间 RGB(Red, Green, Blue)是最常见的颜色空间,它通过红、绿、蓝三种颜色通道的不同强度组合来表示颜色。在 OpenCV 中,RGB 图像的每个像素由三个 8 位无符号整数(0 - 255)分别表示…...

国产编辑器EverEdit - 超多样式设置
1 设置-编辑-样式 1.1 设置说明 1.1.1 折叠样式 默认为箭头,折叠样式选项如下: 箭头: 矩形和线条 五边形 圆形图标 1.1.2 光标样式 光标用于指示当前用户输入位置,光标样式选项如下: 默认 纤细 字宽 …...

rabbitmq版本升级并部署高可用
RabbitMQ版本升级 先检查是否已经安装rabbitmq rpm -qa|grep rabbitmq|wc -l //如果结果是0,表示没有安装 rpm -e --nodeps $(rpm -qa|grep rabbitmq) //如安装了,则进行卸载 先检查是否已经安装erlang rpm -qa|grep erlang|wc -l //如果结果…...

Visual Studio 2022新建c语言项目的详细步骤
步骤1:点击创建新项目 步骤2:到了项目模板 --> 选择“控制台应用” (在window终端运行代码。默认打印"Hello World") --> 点击 “下一步” 步骤3:到了配置新项目模块 --> 输入“项目名称” --> 更改“位置”路径&…...

Spring Boot使用JDBC /JPA访问达梦数据库
Spring Boot 是一个广泛使用的 Java 框架,用于快速构建基于 Spring 的应用程序。对于达梦数据库(DMDB)的支持,Spring Boot 本身并没有直接内置对达梦数据库的集成,但你可以通过一些配置和依赖来支持达梦数据库。 以下…...

Spring Boot 消息队列(以RabbitMQ为例)
文章目录 RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装 Spring Boot 集成 RabbitMQ1. 创建 Spring Boot 项目2. 配置 RabbitMQ3. 定义消息队列和交换机4. 发送消息5. 接收消息6. 测试消息发送和接收 RabbitMQ 简介与安装 1. RabbitMQ 简介 RabbitMQ 是一个开源的消息…...

单元测试与仿真程序之间的选择
为什么写这篇文章 现在的工作需求,让我有必要总结和整理一下。 凡事都有适用的场景。首先这里我需要提示一下,这里的信息,可能并不普适。 但是可以肯定一点的是,有些人,不论做事还是写书,上下文还没有交待…...

确认机制面临的挑战
在传输控制协议中,确认机制(ACK 机制)是确保数据可靠交付、实现拥塞控制和丢包恢复的重要组成部分。然而,随着网络环境和业务需求的不断演进,确认机制在实际应用中面临着诸多挑战。今天我们探讨确认机制主要面临的几项…...

在MATLAB环境中,对矩阵拼接(Matrix Concatenation)的测试
在MATLAB环境中,对矩阵拼接(Matrix Concatenation)的正确性与鲁棒性开展测试时,需要依据不同的拼接场景精心设计测试用例,全面验证矩阵维度、数据顺序、边界条件以及异常处理等关键方面。以下是详尽的测试方法与具体示…...

[MySQL初阶]MySQL(4)基本查询
标题:[MySQL初阶]MySQL(4)基本查询 水墨不写bug 文章目录 一. 数据表设计二、对数据表的操作1. Create 操作(插入数据)查看最近受影响的行数: 2. Retrieve 操作(读取数据)࿰…...

基于STM32的智能家居蓝牙系统(论文+源码)
1总体方案设计 本次基于STM32的智能家居蓝牙系统,其系统总体架构如图2.1所示,采用STM32f103单片机作为控制器,通过DHT11传感器实现温湿度检测,MQ-2烟雾传感器实现烟雾检测,光敏电阻实现光照检测,同时将数据…...

QTS单元测试框架
1.QTS单元测试框架介绍 目前QTS项目采用C/C语言,而CppUnit就是xUnit家族中的一员,它是一个专门面向C的单元测试框架。因此,QTS采用CppUnit测试框架是比较理想的选择。 CppUnit按照层次来管理测试,最底层的就是TestCase,当有了几个TestCase以后,可以将它们组织成Te…...