使用vim打开文件,把a文件中的内容,复制一部分到b文件中去。
大概步骤如下:
1、搜索要复制的部分的结尾,例如我这里要复制的是json,固定结尾是]}]}
/]}]}
2、按v进入可视化模式,可通过方向键批量选中
v
3、从结尾,复制到开头,按0,发现开头和结尾的内容都被选中了
0
4、y复制,p粘贴
预想的很完美,实际上发现粘贴的根本不是我们想要的,是之前复制的内容。
ok,有点意思了。
mac 远程ssh连接开发机。
开发机是manjaor系统。且各软件版本都是最新的。
: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 "/ ]}]}
可以看到,寄存器有很多,那么什么时候会用到这些寄存器呢?作用分别是啥?
普通寄存器无法跨文件使用。也就是说,如果你在一个文件中复制了一段文本,然后打开另一个文件并尝试粘贴该文本,将无法成功。如果希望在多个文件之间共享寄存器的内容,可以使用系统剪切板,也就是"+y 和"+p
一文搞懂vim复制粘贴 - huahuayu - 博客园
参考以上博客,确认vim支持 + clipboard, 打开vim复制粘贴依然不成功。 此时才注意到,:reg查看的寄存器列表中,根本就没有"+寄存器!
这就奇怪了,跟同事都是使用manjaor系统,他那边是正常的,我这边就不行? 区别就是我是使用ssh远程连接的服务器。 看来很可能是ssh导致的使用不了系统的剪切板了,那么如何解决呢?google一下。
Vim:通过ssh访问系统剪贴板 - Linux到OS X
这个博客指出来x11转发,那么X11是什么呢?
X11 转发是一种机制,它允许运行在远程系统的X11程序的图形界面显示在本地客户端上。对于X11转发,远程主机不需要有完整安装的X11系统;但是,至少需要安装_xauth_,_xauth_是维护Xauthority配置的实用工具,这个配置用于X11会话服务端和客户端的认证。
客户端程序发出用户输入,如鼠标、键盘的动作等,然后发送给服务器程序处理。服务器程序有一个X分配器(xorg),负责处理客户端程序的输入请求,并将响应应用到屏幕显示上。此外,它还负责管理系统中的窗口、剪贴板等。
共享剪贴板就是服务器程序将剪贴板内容保存在共享内存中,并对它进行锁定,从而允许客户端程序可以访问这个内容。当客户端程序读取剪贴板内容时,它会得到一个指向共享内存开始位置的指针,以便访问内容。
ok,看起来像是能解决我们的问题。
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
google-chrome-stable
能打开,就是非常卡。。。。。
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的配置,都深感知识的匮乏。继续上路吧。