SLES12 vim - 背景更改滚动+复制粘贴问题
Posted
技术标签:
【中文标题】SLES12 vim - 背景更改滚动+复制粘贴问题【英文标题】:SLES12 vim - background changes scrolling + copy paste issues 【发布时间】:2021-02-03 07:47:51 【问题描述】:我正在使用带有 SLES12 的 gnome-terminal,我遇到了一个问题,在 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
知道如何结合这两个问题的解决方案吗?
【问题讨论】:
【参考方案1】:这两个问题完全不相关。
当您“从 vim 复制粘贴一行并将其粘贴到其他 vim 上”时,您可能正在使用终端仿真器或系统的复制/粘贴功能,它不知道您认为行的开始位置和结束位置.终端模拟器的窗口是 n 个字符宽,所以一行是 n 个字符,这就是他们所关心的。
更好的方法是使用 Vim 的内置 :help y
和 :help p
,它们对线的概念与您相同。
但这会产生第二个问题:默认的 Vim 通常不支持剪贴板,因此您不能真正使用 yy
在一个 Vim 中拉出一行,并使用 p
将其放入另一个 Vim。你必须为此安装一个合适的 Vim:使用你的包管理器。
设置完成后,您可以使用"+y
拉到剪贴板并使用"+p
从剪贴板放入。如果您想将 Vim 的默认寄存器与系统剪贴板同步,请参阅 :help registers
以获取 "+
和 :help 'clipboard'
。
也就是说,为什么不直接在一个 Vim 实例中打开这两个文件?
【讨论】:
我不同意它不相关的评论。当我不使用我在问题中写的if statement
时,复制粘贴效果很好。我不喜欢使用不同的选项卡/窗口在同一个 vim 上工作(这是一种习惯)。顺便说一句,在 SLES11 中我没有这两个问题。
嗯,你有一个不同版本的 Vim,一个不同版本的终端模拟器,以及 SLES11 中所有东西的不同版本。无论如何,使用 Vim 自己的剪贴板支持是从 Vim 获取副本的正确方法。以上是关于SLES12 vim - 背景更改滚动+复制粘贴问题的主要内容,如果未能解决你的问题,请参考以下文章