问题描述
我将 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 实例中打开这两个文件?