vim中如何把在外部复制的内容粘贴进去


如何把vim 里面复制的内容粘贴到vim之外或者把vim外面复制的内容粘贴到vim 里面?
首先,我们先了解这样一个概念:vim 缓冲区和系统剪贴板vim 里面粘贴复制实际上是在vim 缓冲区存取数据,而系统的ctry+c、ctry+v 是与系统剪贴板之间的交互。我也不知道我这样描述准不准确,反正大概就是这个意思:vim 粘贴复制和系统粘贴复制操作的不是同一个东西,所以系统和vim之间不能直接使用。

问题解决办法:

  1. 安装vim-gnome
1
sudo apt-get install vim-gnome
  1. ctrl+c复制内容
  2. vim打开需要修改的文本。按Esc进入命令模式输入
1
:reg

查看复制内容对应的寄存器
在这里插入图片描述

  1. 命令模式下输入
1
"*p

即可把*中的内容粘贴到vim中的光标位置。

  1. 复制vim里面的内容到系统剪贴板。

根据官方手册:vim有9种寄存器
There are nine types of registers: registers E354
1.The unnamed register “”
2.10 numbered registers "0 to "9
3.The small delete register "-
4.26 named registers "a to "z or "A to "Z
5.four read-only registers ":, "., "% and "#
6.the expression register "=
7.The selection and drop registers "*, "+ and "~
8.The black hole register "_
9.Last search pattern register "/

  1. 命令模式下选中需要复制的内容
  2. 输入
1
"0y  (这里面的0可以修改成0、1、2、...、9、a、“、+、;等)

既可把选中的内容从vim中复制到系统剪贴板中,按ctrl+v就可以粘贴。