【问题标题】:Highlight specific column in VIM突出显示 VIM 中的特定列
【发布时间】:2018-02-27 01:44:59
【问题描述】:

我经常处理包含固定位置数据的文件。如果您愿意,可以使用非分隔的“CSV”文件... 通常,我想突出显示一个特定的列。

我试过了

:match ErrorMsg /\%>30v.\+\%<40v/

但这运行速度非常慢,只匹配第一行。我想这个文件可能太大了。请注意,这些文件非常宽(大约 40000 个字符)但不是很长(大约 2000 行)。数据来自我无法控制的旧工具。

示例文件:

                                                 63082                                                   
                                                 01089                                                   
                                                 75518                              735301               

                                                 53473                              017146               
                                                                                     37217               
                                                                                        07               
                                                                                    940376               
                                                   762                                2842               

                                                                                     88331               
                                                 40680                                8928               
            645718                                                                                       
                                                  0131                                                   
                                                                                     03522               

             47210                                                                   27431               

             93837                                                                                       
                                                                                   8825072    49479415   

                                                 52084                                8940               
                                               0591705                              205635               
                                                                                    525429               
                                                 65339                                 300               


                                                  0397                                                   
                                                                                      1983               
                                                     0                                                   
                                                                                   2605768               
            121991                                                                     648               
                                                  3892                                                   

                                                  1260                                                   

有什么想法吗?

【问题讨论】:

    标签: vim highlighting


    【解决方案1】:

    您使用的是 Vim 7.3 吗?

    显然他们最近刚刚添加了colorcolumn 选项。

    试试:

    :set colorcolumn=31,32,33,34,35,36,37,38,39
    

    请注意,:help 'colorcolumn' 表示“会使屏幕重绘变慢”。不过,我通过使用具有您指定的精确重复计数的纯 1234567890 块在一定程度上复制了您的场景。

    你提到的命令很慢。 colorcolumn 不是。

    但这运行速度非常慢,只匹配第一行

    “第一行”是指启用自动换行时显示的第一行吗?不幸的是colorcolumn 会表现出相同的行为......

    【讨论】:

    • 一种减少单调输入的变体::let &amp;l:cc = join(range(31,39),',')。顺便说一句,:setlocal 也可能更适合您的情况。
    • 非常感谢。我还不知道colorcolumn 支持多列。
    • 现在...我想知道是否可以将其基于当前的视觉选择...那太好了... :) 我正在潜入... :)
    • @merlyn:刚刚开始工作了。其实很简单。我会弄清楚细节并尝试将其映射到一个键上。完成后,我会发布它。
    【解决方案2】:

    这与最初的主题无关,但 Google 将人们引向这里。在尝试修复缩进严重的 YAML 或任何其他 swiftwidth=2 文件时,我真的很难在视觉上识别有效列中的内容。 @ibaccepted answer 的评论将我引向这颗宝石。

    :let &l:colorcolumn = join(range(3,15,2),',')

    它基本上说将colorcolumn 设置为以逗号分隔的字符串值 3 到 15,以 2 计数。(换句话说::set colorcolumn=3,5,7,9,11,13,15)结果如下所示:

    你可以做一个简单的:set colorcolumn 看看结果是什么值。

    要摆脱它,请:set colorcolumn=

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2012-10-02
    • 2011-05-29
    • 2011-10-09
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多