【问题标题】:Colorcolumn and text wrapping at the same time in Vim在 Vim 中同时进行颜色列和文本换行
【发布时间】:2016-06-15 20:15:42
【问题描述】:

我在 Vim 的第 90 列设置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

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

这可能吗?也欢迎任何其他解决方案/建议。

【问题讨论】:

    标签: vim word-wrap


    【解决方案1】:

    您可以使用以下自动命令在每次窗口大小更改时运行一个函数

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

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

    function YourFunctionName
      #your code goes here
    endfunction
    

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

    【讨论】:

    • 谢谢,这是正确的。为了完成算法,我还需要知道当前缓冲区中的列数(&columns 是整个窗口中的列数)。你知道如何做到这一点吗?谢谢!
    • 看起来stackoverflow.com/questions/26315925/… 应该回答你的问题。另外,如果您喜欢我的回答,我将不胜感激。谢谢!
    • 非常感谢!我很想投票,但我的名声还不允许我这样做。当我收集到足够的积分时,我会回来。
    • 没问题;这是有道理的。
    • 我达到了必要的声誉并赞成您的回答。再次感谢!
    猜你喜欢
    • 2020-02-08
    • 2015-01-20
    • 2011-06-06
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多