使用wrap时Vim colorcolumn中断

使用wrap时Vim colorcolumn中断,vim,Vim,当将set colorcolumn=80与set wrap结合使用时,彩色垂直列会被中断,因为已包装的行仍被视为一条单行。我认为一个解决方案可能是突出显示第160列、第240列。。。同样,但是我不知道足够的Vimscript来实现这个 请看一下下面的.gif动画,了解我的意思: 是否可以将colorcolumn显示为一个连续的垂直条?默认情况下,vim没有提供这样做的方法。然而, colorcolumn选项允许您指定要高亮显示的多个列。(在逗号分隔的列表中)因此我认为这应该满足您的要求: se

当将
set colorcolumn=80
set wrap
结合使用时,彩色垂直列会被中断,因为已包装的行仍被视为一条单行。我认为一个解决方案可能是突出显示第160列、第240列。。。同样,但是我不知道足够的Vimscript来实现这个

请看一下下面的.gif动画,了解我的意思:


是否可以将colorcolumn显示为一个连续的垂直条?

默认情况下,vim没有提供这样做的方法。然而,
colorcolumn
选项允许您指定要高亮显示的多个列。(在逗号分隔的列表中)因此我认为这应该满足您的要求:

set colorcolumn=80,160,240

我喜欢你对这个问题的演示。它看起来不好看,但至少它是正确和明确的。在我看来,换行和
colorcolumn
在概念上是对立的:你换行是因为你不关心它们的实际长度,而当你关心时,你使用
colorcolumn
。我看不出把两者混为一谈有什么意义。你说得有道理,@romainl。我的主要目的是使
colorcolumn
始终处于打开状态,并根据需要在
wrap
nowrap
之间切换(取决于内容/文件类型)。定义一条捷径,在
wrap/no colorcolumn
nowrap/colorcolumn
之间快速切换,这对于我的情况来说可能是一个解决办法。我仍然认为原来的问题本身是有效的,因此我将保留它。谢谢,但恐怕这不起作用,因为窗口/终端宽度可能大于80列。例如,当我
设置columns=90
时,我必须
设置colorcolumn=8016652
(前4列用于行号)。是否可以安装某种侦听器并在调整大小时自动更改
colorcolumn
?是的,可能是通过autocmd事件
VimResized
实现的。我会调查一下,如果我发现任何试图实现这一点的方法都不可靠,而且有点不成熟,我会补充我的答案。我会继续尝试,但这似乎不是一个很好的方法。