远程ssh连接manjaro无法使用系统剪切板

news2024/11/19 2:29:35

文章目录

    • 背景
      • 本机环境
    • vim的复制粘贴
      • 查看vim寄存器
      • 各种寄存器的含义
    • 使用系统剪切板
      • ssh访问系统剪切板
      • 安装配置X11
      • 再次查看vim寄存器
    • 后记

背景

使用vim打开文件,把a文件中的内容,复制一部分到b文件中去。

大概步骤如下:

1、搜索要复制的部分的结尾,例如我这里要复制的是json,固定结尾是]}]}
/]}]}

2、按v进入可视化模式,可通过方向键批量选中
v

3、从结尾,复制到开头,按0,发现开头和结尾的内容都被选中了
0
4、y复制,p粘贴

预想的很完美,实际上发现粘贴的根本不是我们想要的,是之前复制的内容。

ok,有点意思了。

本机环境

mac 远程ssh连接开发机。
开发机是manjaor系统。且各软件版本都是最新的。

vim的复制粘贴

查看vim寄存器

:reg

Type Name Content
  l  "1   console.log("animator");^J
  l  "2   ^I^Iconsole.log(this.animator);^J
  l  "3   ^J                const indexBuffers = this.asset.getIndexBuffers();^J                for (const ib of indexBuffers) {^J                    const ind
  l  "4   Theme=Material-Color-Red^J
  l  "5   export PATH=$PATH:/usr/share/bcc/tools^J
  l  "6   pathmunge $HOME/.conda/envs/daily/bin after^J
  l  "7   pathmunge $HOME/.go/bin after^J
  l  "8   ^Igitlab.rokid-inc.com/open-platform/codec v0.0.0-20190903023529-9f40c211f9e5 // indirect^J
  l  "9           max-file: "365"^J
  c  "-   N{"asset":
  c  ":   reg
  c  "%   orange_monkey_2.gltf
  c  "/   ]}]}

可以看到,寄存器有很多,那么什么时候会用到这些寄存器呢?作用分别是啥?

各种寄存器的含义

  1. "0 - "9 :这是 10 个数字寄存器,每次执行复制操作时,Vim 都会将所复制的文本保存到 "0 号寄存器中。这使得 "0 号寄存器成为上一次复制操作的默认寄存器。你可以通过执行命令 "0p 将其内容粘贴到光标位置。
  2. "* 和 "+:这两个寄存器分别对应系统剪贴板和鼠标选择寄存器。当你使用这些寄存器进行复制和粘贴操作时,Vim 实际上是在与其他程序共享系统剪贴板。例如,在终端中运行 Vim 并使用 "+y 命令复制文本后,你可以在其他支持剪贴板功能的应用程序中使用 Ctrl+V 粘贴该文本。
  3. "- 是 Vim 中的一个特殊寄存器。它被称为无名寄存器,因为它是默认使用的寄存器,所有未指定寄存器名称的复制和剪切操作都将使用该寄存器。
  4. “:” 寄存器:该寄存器保存最近使用过的 Vim 命令行。例如,如果你在 Vim 中执行了 :wq 命令保存并退出当前文件,那么该命令将被保存到 “:” 寄存器中。你可以通过在命令模式下执行 Ctrl+R : 快捷键来将其内容粘贴到光标位置。
  5. “%” 寄存器:该寄存器保存当前编辑文件的文件名。% 符号表示当前文件名,它可以方便地用于执行某些 Vim 操作,例如在命令行中打开当前文件或者在 Vim 中执行关于当前文件的替换操作。
  6. “/” 寄存器:该寄存器保存最近使用的搜索模式。在 Vim 中,你可以使用 / 或 ? 命令搜索文本。当你执行此类操作时,Vim 会将搜索结果保存到 “/” 寄存器中,以便后续重复搜索或者粘贴搜索结果。

普通寄存器无法跨文件使用。也就是说,如果你在一个文件中复制了一段文本,然后打开另一个文件并尝试粘贴该文本,将无法成功。如果希望在多个文件之间共享寄存器的内容,可以使用系统剪切板,也就是"+y 和"+p

使用系统剪切板

一文搞懂vim复制粘贴 - huahuayu - 博客园

参考以上博客,确认vim支持 + clipboard, 打开vim复制粘贴依然不成功。 此时才注意到,:reg查看的寄存器列表中,根本就没有"+寄存器!

这就奇怪了,跟同事都是使用manjaor系统,他那边是正常的,我这边就不行? 区别就是我是使用ssh远程连接的服务器。 看来很可能是ssh导致的使用不了系统的剪切板了,那么如何解决呢?google一下。

ssh访问系统剪切板

Vim:通过ssh访问系统剪贴板 - Linux到OS X

这个博客指出来x11转发,那么X11是什么呢?

X11 转发是一种机制,它允许运行在远程系统的X11程序的图形界面显示在本地客户端上。对于X11转发,远程主机不需要有完整安装的X11系统;但是,至少需要安装_xauth_,_xauth_是维护Xauthority配置的实用工具,这个配置用于X11会话服务端和客户端的认证。
客户端程序发出用户输入,如鼠标、键盘的动作等,然后发送给服务器程序处理。服务器程序有一个X分配器(xorg),负责处理客户端程序的输入请求,并将响应应用到屏幕显示上。此外,它还负责管理系统中的窗口、剪贴板等。
共享剪贴板就是服务器程序将剪贴板内容保存在共享内存中,并对它进行锁定,从而允许客户端程序可以访问这个内容。当客户端程序读取剪贴板内容时,它会得到一个指向共享内存开始位置的指针,以便访问内容。

ok,看起来像是能解决我们的问题。

安装配置X11

mac下安装使用X11参考: https://cloud.tencent.com/developer/article/1754671
manjaor安装使用X11参考: https://wiki.archlinuxcn.org/wiki/OpenSSH

配置结束,安装xclock试试:

 sudo pacman -Sy xorg-xclock
# 执行xclock
xclock

# 提示Error: Can't open display:
# 解决方案: 远程连接ssh的终端没有设置display导致,设置一下即可。
export DISPLAY=:0

image.png
有点意思,顺带打开chrome看看

google-chrome-stable

能打开,就是非常卡。。。。。

再次查看vim寄存器

X11页配置好了,再次vim打开文件,查看寄存器

Type Name Content
  c  ""   TF^B^@^@^@<9c>{Â^A^@I^B^@JSON{"asset":{"gene
  c  "0   TF^B^@^@^@<9c>{Â^A^@I^B^@JSON{"asset":{"gene
  c  "1   set":{"gene
  l  "2   ^I^Iconsole.log(this.animator);^J
  l  "3   ^J                const indexBuffers = this.asset.getIndexBuffers();
  l  "4   Theme=Material-Color-Red^J
  l  "5   export PATH=$PATH:/usr/share/bcc/tools^J
  l  "6   pathmunge $HOME/.conda/envs/daily/bin after^J
  l  "7   pathmunge $HOME/.go/bin after^J
  l  "8   ^Igitlab.rokid-inc.com/open-platform/codec v0.0.0-20190903023529-9f40
  l  "9           max-file: "365"^J
  c  "-   ^B
  c  "*   TF^B^@^@^@<9c>{Â^A^@I^B^@JSON{"asset":{"gene
  c  "+   TF^B
  c  "%   orange_monkey_2.glb
  c  "/   ]}]}

"+ 和 “* 终于出来了,此时使用”+y 复制, "+p粘贴成功!

后记

说实话,完全没想到一个小小的复制粘贴能引出这么多问题。 不管是vim的配置,还是寄存器的选择,还是X11转发机制,还是sshd的配置,都深感知识的匮乏。继续上路吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1014529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SD系列——图像高清化算法方法

图像高清化算法方法 文章目录 图像高清化算法方法一、通过 Extras 选项卡执行放大算法二、通过 SD upscale 脚本增强细节三、txt2img 页面下的 Hires Fix四、扩展插件 Ultimate SD upscale ControlNet Tile参数调整单用 Ultimate SD Upscale小结 五、Tiled Diffusion & VA…

怎么把两首歌曲拼接在一起?

怎么把两首歌曲拼接在一起&#xff1f;音乐的美妙旋律能够陶冶人们的心灵&#xff0c;在日常生活和工作中&#xff0c;许多用户会使用各种歌曲来进行剪辑和制作。尤其在媒体行业工作的用户&#xff0c;每天都需要使用大量不同歌曲的片段&#xff0c;进行拼接和剪辑来进行视频制…

深入理解Linux网络笔记(一):内核是如何接收网络包的

本文为《深入理解Linux网络》学习笔记&#xff0c;使用的Linux源码版本是3.10&#xff0c;网卡驱动是Intel的igb网卡驱动 Linux源码在线阅读&#xff1a;https://elixir.bootlin.com/linux/v3.10/source 1、内核是如何接收网络包的 1&#xff09;、Linux网络收包总览 在TCP/I…

数字IC验证23915--寄存器方法

文章目录 镜像值与期望值predication的分类自动预测显示预测 uvm_reg的访问方法寄存器健康检查![在这里插入图片描述](https://img-blog.csdnimg.cn/8b1832ab43854068970bb5a66d851d06.png) 镜像值与期望值 寄存器模型中的每一个寄存器&#xff0c;都应该有两个值&#xff0c;…

【计算机基础】Git系列2:配置多个SSH

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

Python 07面向对象的三大特点【封装、继承、多态】

&#x1f600;前言 在软件开发的过程中&#xff0c;面向对象编程&#xff08;Object-Oriented Programming&#xff0c;简称 OOP&#xff09;已经成为了一种不可或缺的编程范式。它允许开发人员创建属于自己的对象&#xff0c;具有其特征和行为&#xff0c;通过将数据和方法绑定…

Python中进行特征重要性分析的9个常用方法

特征重要性分析用于了解每个特征(变量或输入)对于做出预测的有用性或价值。目标是确定对模型输出影响最大的最重要的特征&#xff0c;它是机器学习中经常使用的一种方法。 为什么特征重要性分析很重要? 如果有一个包含数十个甚至数百个特征的数据集&#xff0c;每个特征都可能…

排序与分页——“MySQL数据库”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是MySQL数据库里面的排序与分页&#xff0c;下面&#xff0c;让我们进入排序与分页的世界吧&#xff01;&#xff01;&#xff01; 排序数据 分页 排序数据 排序规则 使用 ORDER BY 子句排序 ASC&#xf…

在JavaScript中,什么是浏览器事件循环(browser event loop)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 浏览器事件循环&#xff08;Browser Event Loop&#xff09;⭐ 执行同步任务⭐ 处理微任务队列&#xff08;Microtask Queue&#xff09;⭐ 处理宏任务队列&#xff08;Macrotask Queue&#xff09;⭐ 重复循环⭐ 写在最后 ⭐ 专栏简介 前…

一、K近邻算法K-NN

一、算法思路 K近邻算法&#xff0c;k-nearest neighbor&#xff0c;即K-NN 通俗来说&#xff1a;给定一个元素&#xff0c;然后以该元素坐标为圆心开始画圆&#xff0c;其中K值是超参数需要人为给定&#xff0c;圆的半径逐渐增大(距离度量采用欧氏距离)&#xff0c;直到包含其…

【电子元件】常用电子元器件的识别之电容器

目录 前言1. 电容器的简介2.电容器的识别1. 铝电解电容器2.钽电解电容器3.固态电解电容器4.瓷介电容器5. 贴片陶瓷电容器6. 聚丙烯电容7. 金属化聚丙烯薄膜电容器8. 独石电容器9. 涤纶电容器10. 超小型金属化聚酯薄膜电容器11. 可变电容器11.1 空气可变电容器11.2 薄膜介质可变…

Vue前端页面打印

前端依赖10-插件"print-js": “^1.6.0” 一&#xff1a;简介 print-js 是一个 Vue.js 插件&#xff0c;用于在 Vue.js 项目中实现打印功能。它依赖于 print-js 库&#xff0c;所以需要安装这个库。 能实现以下功能&#xff1a; PDF打印&#xff08;默认&#xff…

Python语言:求水仙花数案例讲解

求水仙花数是循环和判断语句相结合的一个经典案例。 思路分析 通过循环遍历100到999之间的数字然后根据他们的个位&#xff0c;十位&#xff0c;百位上的数字立方和是否为他本身来判断分析得出什么数是水仙花数。 1&#xff09;如何循环遍历100到999的所有数字&#xff1f; 使…

10分钟开发Kubernetes Operator

Operator是扩展原生Kubernetes能力的主要模式&#xff0c;本文通过一个简单示例&#xff0c;介绍了如何从0开始构建Kubernetes Operator实现用户自定义功能。原文: Build a Kubernetes Operator in 10 Minutes 你也许能够将应用熟练的部署到Kubernetes[1]上&#xff0c;但你知道…

MAUI android连接sqlserver

PDA是android系统&#xff0c;调用金蝶云星空webapi实现仓库收发料&#xff0c;使用读取webapi有些功能无法实现&#xff0c;需要直接读写数据库&#xff0c;读取报错&#xff0c;如图&#xff1a; 用控制台程序测试正常读取 google搜索了一圈&#xff0c; 都需要使用ssl证书才…

华为云云耀云服务器 L 实例评测|配置教程 + 用 Python 简单绘图

文章目录 Part.I IntroductionChap.I 云耀云服务器 L 实例简介Chap.II 参与活动步骤 Part.II 配置Chap.I 初步配置Chap.II 配置安全组 Part.III 简单使用Chap.I VScode 远程连接华为云Chap.II 简单绘图 Reference Part.I Introduction 本篇博文是为了参与华为“【有奖征文】华…

为建模而建模,高成本的临床预测模型意义何在?

9.23-24 郑老师“量表与中介研究数据分析”课程&#xff0c;欢迎报名 “量表与中介研究数据分析”9.23-24直播课&#xff0c;发文后退款 关于预测模型&#xff0c;周三有位同学过来咨询我&#xff0c;说“郑老师&#xff0c;毕业论文&#xff0c;建一个脑卒中患者抑郁的预测模型…

Linux 简介 启动过程

简介 Linux 是一套免费使用和自由传播的开放源码的类 UNIX 操作系统&#xff0c;英文解释为&#xff1a; Linux is not Unix。1991 年由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的&#xff0c;主要受到 Minix 和 Unix 思想的…

JavaSE---常用的API

1. 什么是API&#xff1f; API (Application Programming interface) 应用程序编程接口。通俗来讲&#xff0c;就是Java已经帮我们写好了一些方法&#xff0c;我们直接拿过来用即可。 iodraw&#xff1a;https://www.iodraw.com/ API在线中文文档&#xff1a;https://www.ma…

Python入门教程39:教你使用distutils本地发布模块与模块安装的操作

★★★★★博文创作不易&#xff0c;我的博文不需要打赏&#xff0c;也不需要知识付费&#xff0c;可以白嫖学习编程小技巧。使用代码的过程中&#xff0c;如有疑问的地方&#xff0c;欢迎大家指正留言交流。喜欢的老铁可以多多点赞收藏分享置顶&#xff0c;小红牛在此表示感谢…