在 Vim 中同时使用颜色栏和文字换行

Colorcolumn and text wrapping at the same time in Vim

我在第 90 列的 Vim 中设置 colorcolumn,但同时我想保持文本换行功能。

因此,为了在回绕线上保持彩色列,并且没有中断,我必须在我的 .vimrc 中输入类似的内容:

let col_no=90
if ((longest_line_size / 90) >= 2)
  for i in range(2, (longest_line_size / 90))
    let col_no=col_no . "," . ((90*i) + (&columns - 91))
  endfor
endif
execute 'set colorcolumn=' . col_no

问题是当我调整 window(或缓冲区)大小时,换行上的彩色列没有对齐。一种解决方案是在调整缓冲区大小时重新运行 函数。

这可能吗?也欢迎任何其他 solutions/suggestions。

每次 window 大小更改时,您都可以 运行 一个函数,使用以下自动命令

augroup Resize
  autocmd!
  autocmd VimResized * :call YourFunctionName<cr>
augroup END

将其添加到您的 vimrc 文件中。要将它与您的代码一起使用,您需要将代码包装在一个函数中。

function YourFunctionName
  #your code goes here
endfunction

注意函数名必须以大写字母开头。