Выделить определенный столбец в VIM - PullRequest
8 голосов
/ 18 июля 2011

Я много работаю с файлами, которые содержат данные о фиксированных позициях.Файлы 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                                                   

Есть идеи?

Ответы [ 2 ]

18 голосов
/ 18 июля 2011

Используете ли вы Vim 7.3?

Очевидно, они только недавно добавили опцию colorcolumn.

Попробуйте:

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

Обратите внимание, что :help 'colorcolumn' говорит "Сделаем перерисовку экрана медленнее ".Однако я несколько повторил ваш сценарий, используя чистые блоки 1234567890 с точным указанным вами числом повторений.

Упомянутая вами команда очень медленная .colorcolumn не.

, но это работает очень медленно и соответствует только первой строке

Под "первой строкой" вы подразумеваете первую отображаемую строку, когдаперенос слов включен?К сожалению colorcolumn будет демонстрировать такое же поведение ...

2 голосов
/ 26 февраля 2018

Это не оригинальная тема, но Google приводит людей сюда.При попытке исправить ужасно зазубренный YAML или любой другой файл swiftwidth=2 я действительно изо всех сил пытаюсь визуально распознать, что находится, а что нет в допустимом столбце.Комментарий @ ib к принятому ответу привел меня к этому драгоценному камню.

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

В основном говорится, что для colorcolumn установлено значениестроковое значение с разделителями-запятыми от 3 до 15, подсчитанное на 2. (Другими словами: :set colorcolumn=3,5,7,9,11,13,15) Результат выглядит так:

enter image description here

Выможно сделать простой :set colorcolumn, чтобы увидеть, какое значение получится.

Чтобы избавиться от него, сделайте :set colorcolumn=

...