Vim复制粘贴到系统缓冲区的行为不符合预期
我很头痛,想弄明白为什么vim没有复制到系统缓冲区 以下是我的工作流程:Vim复制粘贴到系统缓冲区的行为不符合预期,vim,buffer,x11,copy-paste,Vim,Buffer,X11,Copy Paste,我很头痛,想弄明白为什么vim没有复制到系统缓冲区 以下是我的工作流程: vim asd y1y :q vim qwe p 在computerA和computerB上,这是我想要的:从文件asd中拉出的行被放入文件qwe中 在computerC上,这不起作用 所有系统都运行Ubuntu 8.04。computerA安装了vim完整软件包,computerB和computerC安装了vim软件包。computerA已安装xorg,正在使用fluxbox窗口管理器,并可在本地访问。computer
vim asd
y1y
:q
vim qwe
p
在computerA和computerB上,这是我想要的:从文件asd中拉出的行被放入文件qwe中
在computerC上,这不起作用
所有系统都运行Ubuntu 8.04。computerA安装了vim完整软件包,computerB和computerC安装了vim软件包。computerA已安装xorg,正在使用fluxbox窗口管理器,并可在本地访问。computerB和computerC没有X,我对它们都感兴趣
我读了很多书,认为这是因为computerC是用-clipboard编译的,但我在所有三台计算机上都运行了vim-version,只有computerA是用+clipboard编译的
我错过了什么明显的东西吗?我相信用户的.vimrc和全局vimrc文件是相同的。如果有帮助的话,我可以发布vim的输出——vimrc文件的版本和内容。查看.viminfo
如果你最后拉的东西是hi,它应该包含:
登记册:
“”0第0行
嗨
可能是文件权限搞乱了?查看.viminfo
如果你最后拉的东西是hi,它应该包含:
登记册:
“”0第0行
嗨
可能是文件权限弄乱了?尝试以下操作:
set clipboard=unnamed
它允许通过系统剪贴板进行复制和粘贴。尝试以下操作:
set clipboard=unnamed
它允许通过系统剪贴板进行复制和粘贴。默认情况下,Vim不会复制到系统缓冲区。它记住内容的唯一方法是,如果vim的多个实例使用相同的.viminfo文件。可能由于文件权限或
'viminfo'
(选项)中的不同设置,.viminfo文件未被写入
有关viminfo配置的更多信息,请参阅
:help 'viminfo'
要查看每台计算机上的当前配置,请执行以下操作:
:set viminfo?
另外,如果要使用系统剪贴板(必须存在,因此需要执行ssh-X
),可以使用:
:set clipboard+=unnamed
然后,所有复制和粘贴操作都将使用X11选择缓冲区。当然,您需要使用+clipboard
编译vim,这样才能工作,所以它不会解决您眼前的问题。见:
:help 'clipboard'
了解更多信息
也许您可以在每台计算机上发布以下结果
:set viminfo?
:set clipboard?
这将有助于我们更详细地诊断问题。你也可以试试:
vim asd
"ayy
:q
vim qwe
"ap
这将使用寄存器
a
而不是未命名的寄存器。默认情况下,Vim不会复制到系统缓冲区。它记住内容的唯一方法是,如果vim的多个实例使用相同的.viminfo文件。可能由于文件权限或'viminfo'
(选项)中的不同设置,.viminfo文件未被写入
有关viminfo配置的更多信息,请参阅
:help 'viminfo'
要查看每台计算机上的当前配置,请执行以下操作:
:set viminfo?
另外,如果要使用系统剪贴板(必须存在,因此需要执行ssh-X
),可以使用:
:set clipboard+=unnamed
然后,所有复制和粘贴操作都将使用X11选择缓冲区。当然,您需要使用+clipboard
编译vim,这样才能工作,所以它不会解决您眼前的问题。见:
:help 'clipboard'
了解更多信息
也许您可以在每台计算机上发布以下结果
:set viminfo?
:set clipboard?
这将有助于我们更详细地诊断问题。你也可以试试:
vim asd
"ayy
:q
vim qwe
"ap
这将使用寄存器a
而不是未命名的寄存器。这并不能完全解决您的问题,但是一个非常好的解决方法是
vim asd
y1y
:sp qwe
p
:q
这将打开asd
并从中拉出(显然),然后拆分打开qwe
,放入您刚刚拉出的项目,并关闭拆分打开的文件。使用这种方法,无需关闭正在处理的文档,即可启动一个新的Vim实例
如果您不喜欢水平拆分,:vsp会进行垂直拆分,这有时会更易于阅读/使用。这并不能完全解决您的问题,但一个非常好的解决方法是
vim asd
y1y
:sp qwe
p
:q
这将打开asd
并从中拉出(显然),然后拆分打开qwe
,放入您刚刚拉出的项目,并关闭拆分打开的文件。使用这种方法,无需关闭正在处理的文档,即可启动一个新的Vim实例
如果您不喜欢水平拆分,:vsp会进行垂直拆分,这有时更易于阅读/使用。为什么不使用“+y
和”+p
,它们直接与系统的剪贴板缓冲区一起工作
vim asd
"+y
:q
vim qwe
"+p
为什么不使用“+y
和”+p
,它们直接与系统的剪贴板缓冲区一起工作
vim asd
"+y
:q
vim qwe
"+p
好的,我不知道系统缓冲区的问题,但是如果需要的话,简单地用:e filename
打开新文件,然后粘贴,然后保存并:e#
返回原始文件怎么样?是的,我知道,制表符和拆分很酷,但简单也可以
您也可以使用ex,从目标文件通过提供行范围的:r
命令读取要包含的内容,或从源文件使用:w>文件名确定来附加所选文本(通过简单的行号/范围或万能的g
命令),我不知道系统缓冲区的问题,但是如果需要的话,简单地用:e filename
打开新文件,然后粘贴,然后保存并:e#
返回原始文件怎么样?是的,我知道,制表符和拆分很酷,但简单也可以
您还可以使用ex,从目标文件通过提供行范围的:r
命令读取要包含的内容,或从源文件读取要包含的内容