我正在努力弄清楚为什么vim没有复制到系统缓冲区.
这是我的工作流程:
vim asd y1y :q vim qwe p
在computerA和computerB上,这可以按照我的要求工作:从文件asd中拉出的行放入文件qwe.
在computerC上,这不起作用.
所有系统都运行Ubuntu 8.04.computerA安装了vim-full软件包,computerB和computerC安装了vim软件包.computerA安装了xorg,正在使用fluxbox窗口管理器,并在本地访问.computerB和computerC没有X,我正在抨击它们.
我已经做了很多阅读,并认为这是因为computerC是用-clipboard编译的,但是我在所有三台计算机上都运行了vim --version,只有computerA是用+ clipboard编译的.
我错过了一些明显的东西吗 我相信用户的.vimrc和全局vimrc文件是相同的.我可以发布vim --version的输出和vimrc文件的内容,如果这会有所帮助.
默认情况下,Vim不会复制到系统缓冲区.它记住内容的唯一方法是,如果vim的多个实例使用相同的.viminfo文件.由于文件权限或'viminfo'
(选项)中的设置不同,可能没有写入.viminfo文件.
有关viminfo配置的更多信息,请参阅
:help 'viminfo'
要查看每台计算机上的当前配置,请执行以下操作:
:set viminfo?
顺便说一句,如果你想使用系统剪贴板(必须存在,所以你需要这样做ssh -X
),你可以使用:
:set clipboard+=unnamed
然后所有复制和粘贴操作都将使用X11选择缓冲区.当然,你需要使用vim编译+clipboard
才能使用它,所以它不能解决你当前的问题.看到:
:help 'clipboard'
欲获得更多信息.
也许您可以在每台计算机上发布以下结果?
:set viminfo? :set clipboard?
这有助于我们更详细地诊断问题.你能尝试一下:
vim asd "ayy :q vim qwe "ap
这将使用寄存器a
而不是未命名的寄存器.