SLES12 vim - 背景变化滚动 + 复制粘贴问题

问题描述

我将 gnome-terminal 与 SLES12 一起使用,但遇到了一个问题:在 vim 中显示文件期间向下滚动,背景颜色正在改变。 在互联网上进行了一些探索,我得到了以下解决方案:

if &term =~ '256color'
    " disable Background Color Erase (BCE) so that color schemes
    " work properly when Vim is used inside tmux and GNU screen.
    set t_ut=
endif

但使用此解决方案,它会创建一个新的解决方案。 当我从 vim 复制粘贴一行并将其粘贴到其他 vim 时,该副本也将空白行视为字符,并创建了非常长的行。

为了强调,假设我有以下一行,其中包含 11 个字符(包括空格) 复制粘贴还将行的其余部分(空白行)视为字符。 我希望复制粘贴会在 char 'd '

处停止
hello world

知道如何结合解决这两个问题吗?

解决方法

这两个问题完全不相关。

当您“从vim复制粘贴一行并将其粘贴到其他vim上”时,您可能正在使用终端模拟器或系统的复制/粘贴功能,这些功能不知道您认为一行的开始和结束位置.终端模拟器的窗口是 n 个字符宽,所以一行是 n 个字符,这就是他们关心的全部。

更好的方法是使用 Vim 的内置 :help y:help p,它们与您具有相同的行的概念。

但这会产生第二个问题:默认的 Vim 通常不支持剪贴板,因此您不能真正使用 yy 在一个 Vim 中拉出一行并使用 p 将其放入另一个一。您必须为此安装合适的 Vim:为此使用您的包管理器。

设置好后,您可以使用 "+y 拉到剪贴板,并使用 "+p 从剪贴板放入。如果您想将 Vim 的默认寄存器与系统剪贴板同步,请参阅 :help registers 以获取 "+:help 'clipboard'

也就是说,为什么不在单个 Vim 实例中打开这两个文件?