使用VIM编辑代码时,通常会将终端分割成多个窗口,好处是可以边改边review,坏处是不能正常使用系统剪贴板
以gnome-terminal为例,当你按下鼠标想复制右下子窗口内AudioConfig结构体的声明到剪贴板时,意外的把左下子窗口的内容也选中了,这时按ctrl-shift-c得到的一定不是你想要的
为什么会这样?
因为这些子窗口是vim创立的,gnome-termianl并不知道它们的存在,子窗口边界的哪些框框,对gnome-terminal来说不过就是vim的终端显示内容,与子窗口内的字符无异,所以出现上图那样的”整行“复制
当然,可以使用v命令选中子窗口的内容,但选中后仍然无法将其复制到系统剪贴板
这里就需要一个插件,叫vim-gui-common,可以将选中的内容复制到系统剪贴板
ubuntu下运行以下命令安装
sudo apt-get install vim-gui-common
装后运行:reg命令会看到多出2个寄存器,一个加号寄存器,一个减号寄存器
先使用v命令选中子窗口的内容,比如我选中之前说的AudioConfig结构体声明
然后按以下组合键
"+y
就将选中的内容复制到系统剪贴板了,从上图可以看到,加号寄存器的内容正是AudioConfig声明,这时你就可以ctrl-v到gedit之类的应用了
其他方式以此类推
”+yy
复制一行内容到系统剪贴板
gg"+yG
复制文件全部内容到系统剪贴板