如何把vim 里面复制的内容粘贴到vim之外或者把vim外面复制的内容粘贴到vim 里面?
首先,我们先了解这样一个概念:vim 缓冲区和系统剪贴板vim 里面粘贴复制实际上是在vim 缓冲区存取数据,而系统的ctry+c、ctry+v 是与系统剪贴板之间的交互。我也不知道我这样描述准不准确,反正大概就是这个意思:vim 粘贴复制和系统粘贴复制操作的不是同一个东西,所以系统和vim之间不能直接使用。
问题解决办法:
- 安装vim-gnome
1 | sudo apt-get install vim-gnome |
- ctrl+c复制内容
- vim打开需要修改的文本。按Esc进入命令模式输入
1 | :reg |
查看复制内容对应的寄存器
- 命令模式下输入
1 | "*p |
即可把*中的内容粘贴到vim中的光标位置。
- 复制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 | "0y (这里面的0可以修改成0、1、2、...、9、a、“、+、;等) |
既可把选中的内容从vim中复制到系统剪贴板中,按ctrl+v就可以粘贴。