当前位置: 首页 > news >正文

Linux | Vim 鼠标不能右键粘贴、跨系统复制粘贴

注:本文为 “ Vim 中鼠标右键粘贴、跨系统复制粘贴问题解决方案” 相关文章合辑

未整理去重。


Linux 入门:vim 鼠标不能右键粘贴、跨系统复制粘贴

foryouslgme 发布时间 2016 - 09 - 28 10:24:16

Vim基础

  1. 命令模式(command-mode)
  2. 插入模式(insert-mode)
  3. 可视模式(visual-mode)
  4. 正常模式(normal-mode) (普通模式)
  • 正常模式
    正常模式主要用来浏览和修改文本内容的,一般的,打开Vim都是正常模式。
    进入正常模式:在任何模式下,只要按下 Esc 键就可以返回正常模式
  • 插入模式
    插入模式则用来修改文本的
    进入插入模式:正常模式 + 插入符,如下插入符:

i 在光标所在字符前开始输入文字并进入插入模式
a 在光标所在字符后开始输入文字并进入插入模式
A 在行尾开始输入文字并进入插入模式。
o (字母 o) 在光标所在行的下面单独开一新行来输入文字并进入插入模式
O (大写字母 O) 在光标所在行的上面单独开一新行来输入文字并进入插入模式。
s 删除光标所在的字符并进入插入模式
I 在行首开始输入文字并进入插入模式。
S 删除光标所在行并进入插入模式
G 文章末尾
crtl + f 向下翻页
ctrl + b 向上翻页

  • 可视模式
    可视模式相当于高亮选取文本后的普通模式,可视模式具有子模式,以行为单位进行选取的可视行模式,使用“V”键进入和以块为单位进行选取的可视块模式,使用“Ctrl+v”键进入。
    进入可视模式:正常模式 + ctrl + v|V
  • 命令模式
    命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……
    进入命令模式:按esc + : command
    如::w保存当前文件不退出,:q!强制退出,:x保存且退出

正题(不能右键粘贴设置方法)

用vim时,鼠标右键不能粘贴而是进入了visual模式,解决方法:

方法一:

:set mouse-=a
1

方法二:

编辑 ~/.vimrc 文件,加入如下代码:

if has('mouse') set mouse-=a 
endif 
123

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

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启动了所有模式,这样就屏蔽了鼠标右健功能。

查看之前的复制内容

: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' 选项(见上文)的情况下,使用鼠标和可视模式进行复制/粘贴的步骤如下:

  1. 在文本的第一个字符上按鼠标左键,移动鼠标到文本的最后一个字母,然后释放左键。这将启动可视模式并高亮选择区域。
  2. 按 “y” 将可视文本抽出到无名寄存器中。
  3. 在要插入的位置上按鼠标左键。
  4. 按鼠标中键(滚轮)进行粘贴。

解决配置 vim 之后不能鼠标右键复制问题

路安在 发布时间:2022 - 05 - 21 12:31:30

问题描述

配置完 vim 后,无法使用鼠标右键进行复制和粘贴,但从 vim 外复制的内容可通过鼠标右键粘贴。

解决问题过程

起初,尝试对 vimrc 文件中有关复制的命令进行注释和删除,但均未解决问题,CTRL + cctrl + v 也无法使用。
随后,搜索浏览网上解答,部分回答称选中需要复制的内容后按键盘上的 y 即可复制,但实际操作时,选中内容未复制成功且被 y 字母覆盖。
最终,通过参考 https://blog.csdn.net/victoryckl/article/details/8122012 解决了问题。

解决方法

常规复制粘贴

  1. 先将光标置于要粘贴的位置或空白处。
  2. 找到要复制的语句,在键盘上一直按住 shift,再用鼠标左键选中,然后点击鼠标滑轮,选中的语句或内容将直接粘贴到光标所在位置,无需使用 crtl + V

跨界面复制粘贴

  1. 在 Vim 界面中,直接找到需要复制的语句,先按住 shift,再用鼠标左键选中。
  2. 无需点击鼠标滑轮。
  3. 切换到其他界面,通过鼠标右键进行粘贴。

总结

  • 复制:按住 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 之后加载。因此,有两种解决方法:

  1. /etc/vim/vimrc.local 中添加 let skip_defaults_vim = 1

  2. 在要用的 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 负责处理,有以下两种方法:

  1. 按住 shift 键进行选择,此时由 X 处理该选择,copy 选项将启用。若松开 shift 键,则由 vim 处理该选择。
  2. .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


http://www.mrgr.cn/news/93593.html

相关文章:

  • 【leetcode hot 100 206】反转链表
  • PDF文档中表格以及形状解析-后续处理(长线段根据交点打断成短线段)
  • Pytest自动化框架
  • 当AI开始“思考“:拆解大模型训练与推理的秘密(以DeepSeek为例)
  • Linux云计算SRE-第十七周
  • MAC电脑常用操作
  • leetcode日记(84)交错字符串
  • pyside6学习专栏(九):在PySide6中使用PySide6.QtCharts绘制6种不同的图表的示例代码
  • Docker 部署 Vaultwarden
  • π0及π0_fast的源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司微调π0的部分实践
  • 【使用hexo模板创建个人博客网站】
  • 点云数据处理--splat转3dtiles
  • Vue23Web 基礎性拉滿的面試題(2025版)還沒更新完...
  • RSA的理解运用与Pycharm组装Cryptodome库
  • Networking Based ISAC Hardware Testbed and Performance Evaluation
  • vite:初学 p5.js demo 画圆圈
  • 大语言模型学习--向量数据库基础知识
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数
  • PyTorch中的线性变换:nn.Parameter VS nn.Linear
  • C#使用winform实现简单的梯形图指令编译和执行,带编译器和虚拟机代码