使用位置数据文件时,突出显示特定列通常非常非常有用。在这样的文件中,通常有巨大的“区域”填充空格(或NULL
值)并且只有非常稀疏的数据点。在这种情况下,读取文件变得很困难。
以下是一个示例摘录:
462
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
我发现只需突出显示特定列就很有帮助。起初我尝试使用常规的:match
,但结果是方式减慢了大量数据文件的速度。我将其发布为another question。答案很简单。 cursorcolumn
(自vim 7.3起可用)可以设置为一个范围,速度要快得多,因为它不需要匹配字符。
实施建议的解决方案我认为它有效。但它很麻烦,并且 - 知道vim - 应该有一种更简单的方法来指定它。
是否可以将cursorcolumn
范围设置为当前所选(可视)块的列?
答案 0 :(得分:8)
事实证明这很简单。函数getpos
可以检索任何标记的位置。我们将使用它将解决方案扩展到早期的问题:
:let &l:cc = join(range(getpos("'<")[2], getpos("'>")[2]),',')
现在,我们可以轻松地映射:
:vnoremap <F5> <ESC>:let &l:cc = join(range(getpos("'<")[2], getpos("'>")[2]),',')<CR>
所以,现在在编辑位置数据文件时,我们只需进入可视模式,选择我们需要突出显示的文件部分,然后按F5