2011-07-18 53 views
8

我对包含固定位置数据的文件进行了大量工作。非分隔的“CSV”文件,如果你愿意......通常,我想强调一个特定的专栏。突出显示VIM中的特定列

我试图

: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             

任何想法?

回答

17

您是否使用Vim 7.3?

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

尝试:

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

注意:help 'colorcolumn'说: “屏幕刷新速度较慢”。不过,我有点复制了你的场景,通过使用纯粹的1234567890块与你指定的确切重复次数。

您提到的命令非常慢。 colorcolumn不是。

但运行非常慢,只有匹配的第一行

通过“行头”你的意思是第一个显示行,当自动换行启用?不幸的colorcolumn将展现出相同的行为...

+3

一个变体,以减少单调的打字:':让&L:CC =加入(范围(31,39), '')'。顺便说一句,':setlocal'在你的情况下也可能更合适一些。 –

+0

非常感谢。我还不知道''colorcolumn''支持多列。 – exhuma

+0

现在......我想知道是否有可能以当前的视觉选择为基础......这将是很棒的...... :)我正在潜水...... :) – exhuma

0

这是脱离原来的主题,但谷歌带领人在这里。当试图解决一个可怕的锯齿YAML或任何其他swiftwidth=2文件,我真的很难在视觉上识别什么是和不在一个有效的列。 @ibaccepted answer的评论将我引向这颗宝石。

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

它基本上说设置colorcolumn通过15 3中的逗号分隔的字符串值由2计数(换句话说::set colorcolumn=3,5,7,9,11,13,15)结果如下:

enter image description here

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

要摆脱它做:set colorcolumn=

+0

对于类似的东西,这可能也很感兴趣:https://github.com/ Yggdroot/indentLine – exhuma