前言

记录一下烦人的VIM复制问题.本人的vim配置是有set mouse=a 方便鼠标操作的.也有set number来显示行号.烦人的是便捷复制让这2个不可兼得.

一直困扰我到今天,尝试了办法来解决,终于勉强能接受了…

在只有set mouse=a到情况下,在 iTerm 下直接按住 option 选择文本,再 command + C 复制就行了

但是一旦有set number来显示行号的,由于 iTerm 并不知道哪些是 vim 的文本内容,哪些是附加信息,多行选择时会把行号选进来.这就很烦.

在只有set number到情况下,虽然可以直接复制,但是没了鼠标快速操作和滚动.(个人主观认为:)挺麻烦而且慢的本人vim小白,操作vim键位不是很熟悉.知道通过键位输入效率高,大佬们勿怪.

关于 寄存器 哪些知识或者其他与操作无光的内容,参考此知乎链接🔗


检查vim

本文直接说说我的操作吧.

首先再终端中输入这行命令

1
vim --version | grep clipboard

分为二种情况.

回显内容有 -clipboard

例如:

image-20220422165049632

很遗憾,你的vim也许出了些问题或者不完整,我们需要重装来修复它.

根据系统类型选择,合适的命令进行修复.

Linux系统系统

1
sudo apt install vim-gtk

操作例图:

image-20220422165437111

MacOS系统

1
brew install vim

操作例图:

image-20220422165600506

回显内容有 +clipboard

恭喜你,你的vim没有问题!

image-20220422172326099

开始设置vim

终端中输入.

1
vim ~/.vimrc

回车,在末尾添加这一行

1
set clipboard^=unnamed,unnamedplus

image-20220422173037118

学习如何复制

现在你的yp已经能和 ctrl-cctrl-v 一个效果,并且能互相混用。

但问题是不能用鼠标选中否则会进入 SELECT选择模式 ,这个模式下输入除了按ESC键以外几乎都会覆盖掉你选中的内容实测,输入y,虽然覆盖了,但也复制了.也可以再粘贴回去,不过还是感觉麻烦了 :)

那么,我们改怎么操作呢?个人认为正确做法应该是学习.👇

学习vim的一些操作,这里只说一下我认为是必要的内容.

首先,推荐一个类似于游戏学习vim的网站👉Learning VIM while playing a game

接下来讲一下,可能频率使用高的基本操作.

普通模式(NORMAL)下,

w 跳到下一个单词

b 跳到上一个单词

它们与shift结合,可以加快速度.

视图模式(VISUAL)下

以你光标位置开始(可以在按V切换到视图模式之前,点击你想要选中文本到开头).

w 选中到下一个单词

b 选中到上一个单词

shift功能在这里也一样.

然后就可以用 yctrl-c(Mac上是command+c)开始愉快的复制啦~

受限于篇幅,更多内容请自行学习.