再遇灵异事件:树莓派vi插入模式下无法用鼠标右键贴代码

@oflyhigh · 2025-10-31 09:20 · HIVE CN 中文社区

说起来好久没怎么高强度和服务器、和代码打交道,所以之前一段时间真的是岁月静好。但是这段时间爬起来干一些活,竟然总会遇到奇奇怪怪的问题。

computer-4795762_960_720.jpg (图源 :pixabay)

话说之前不是准备淘汰老旧的香蕉派(BananaPi M3)嘛,因为它不但硬件老旧,系统也超级老旧啦,我搜索的一下,竟然有四五年没有更新对应板卡的OS啦,这和树莓派社区对老旧板卡的支持相比就是云泥之别呀。

没错,淘汰老旧的设备必然要启用新设备,看过我帖子的朋友肯定知道,我要启用的新设备就是树莓派4,其实说不上很新,但是是我当年斥巨资1000多大洋买的8G内存版,应该还能再战斗几年。

前些天装系统,改配置等操作都没啥问题,而且也成功把树莓派摄像头启用起来了,继续让它实现监控的功能。

问题描述

但当我打算在其上部署一些代码——直接从其它机器上COPY代码过来时,却遇到一个奇怪的问题,在vi编辑器中,我无法使用鼠标右键来粘贴代码到编辑器中!

相同的操作我在各种不同的机器上老旧的树莓派、香蕉派、各种版本的Ubuntu本地机、各种版本的VPS,都是这样操作的:鼠标拖拽选中其它机器中的内容;在vi中使用ESC,再按字母i,就进入到插入模式了。

然后鼠标点击右键,就会把粘贴板中的内容(之前鼠标选去的内容)插入到当前光标处!这绝对不会有错误,当年我曾经深入的学习过VI的各种指令和操作——但还能记住的不多,这是能记得住的操作之中最常用的一个(因为经常在各个机器之间复制一些代码、设置等)。

可是,用了无数年的,手拿把捏的,轻车熟路的操作为啥就不好用呢?哦对了,看我这记性,还没说是啥故障现象呢。

就是我在香蕉派vi编辑器中这样操作,底下的INSERT就会变成-- (insert) VISUAL --: 40b6bc3d-4193-47c7-934d-4a59417b8713.png

然后,就没有然后了,我根本不知道怎么继续,即便我再使用ESC以及i回到插入模式,故障依旧。怎么最近就总遇到这些奇奇怪怪的问题呢?莫非真的和走进科学怼上啦?

尝试解决

不过作为自己套上枷锁的牛马,还能有什么办法呢?那就是研究呗。当然,最好的方式就是问Google了。

于是我发出这样的疑问:

Paste is unavailable when right-clicking on the Raspberry Pi in vi.

我突然间想起好多好多年前,在某中文Unix社区,某大神写了一篇文章,叫做《提问的智慧》。大意是如何把要问的问题表达的清楚明白!

比如有些中文社区小伙伴,经常微信上私聊我问我:“发不了帖子了,怎么办?”

我就会很疑惑,到底是怎么了叫发不了帖子了呢?比如我在飞机上,没有无线网5G啥的信号,也没有WIFI,这样也发不了帖子呀?!

当然,这只是一个杠精式举例,但是说到发不了帖子,自然就会有以下问题:

  • 用的什么站点或者客户端?
  • 能否正常地访问站点或者客户端?(会不会是梯子的问题)
  • 能否正常地登陆网站或者客户端(会不会是账户、密钥问题)
  • 能否正常地编辑帖子和插入图片等(客户端的问题?)
  • 帖子发布时出了什么样的提示?(API节点问题)
  • 其它待补充的问题(比如有没有可能是家里的电脑或者网络坏了?)

所以说,遇到诸如“发不了帖子了,怎么办?”这样的问题,让不让人头大?

但如果你这样说:

我使用XXX客户端,正常访问和登陆,也可以正常编辑,但是点击提交时出了如下错误。提示信息为XXXX。另外,这是截图。

那我可能一下子就找到了问题所在。

扯远了,我问的问题也不算有多高明,但是这样问,能在Google找到答案就好。Google AI 直接给出了导致这个问题的原因:

Your right-click "Paste" option is unavailable in the terminal version of vi on Raspberry Pi due to a configuration setting that gives vi control over mouse events

然后贴心地给出了四个答案: * Solution 1: Use keyboard shortcuts * Solution 2: Temporarily disable mouse support * Solution 3: Make the change permanent * Solution 4: Use the middle mouse button

我试了一下,1、2根本不好用,3、4本质上是同个答案(临时方案和永久方案)

我把方案3、4贴在这里,有遇到类似的问题的,也不用重新去搜索了。 1931fa70ebe80261a305e19904d7ce8f.png

深入了解

但是感觉还是不够优雅,以及为什么在这个树莓派新版OS上出现这个问题,以前都没遇到过呢?于是又深入地去搜索和了解了一下。

折腾一番之后,找到这样一篇文章:Fix vim right click paste not working

这是一篇2021年十月份的文章,虽然有些老旧了,但是完美地帮我解答了疑问——以及,解决了问题。

之所导致我遇到的这个问题,就是因为这个原因:

If Vim is started normally and no user vimrc file is found, the $VIMRUNTIME/defaults.vim script is loaded

使用如下指令搜索了一下默认的配置文件

grep mouse /usr/share/vim/vim91/defaults.vim

果然发现如下内容: 3d934fe2a8037996fccf34b52a3663b9.png

而在我其它机器上同样的搜索,却没有set mouse=a类似的字样,这就是导致问题以及差异的根源所在呀!

最佳方案

好了,现在我们知道了导致这个问题的缘由所在,也知道了解决方案,但事情就到此为止了嘛?

或许这些解决方案(创建.vimrc且设置set mouse=)在某种环境下正常工作,但是在最新版本的树莓派OS中,会带来个新问题,那就是默认配置没有加载,代码高亮等特性也没啦!

这显然不是我想要的结果呀,所以又是一番深入探索后,发现帮助文件中这样信息: 2bf26f1c48c82a2b199dba81b4a033ae.png

所以这回才是圆满的解决方案,在.vimrc中加入如下内容:

unlet! skip_defaults_vim source $VIMRUNTIME/defaults.vim set mouse=

搞定收工,《走近科学》剧组再次被我放鸽子啦。

相关链接

#cn #life #blog #vi #vim #linux #study
Payout: 39.834 HBD
Votes: 275
More interactions (upvote, reblog, reply) coming soon.