1

Этот вопрос связан с этим.

Дамиан Конвей (Damian Conway) предоставил хороший фрагмент для обозначения чрезмерной длины строки в своем недавнем выступлении на Vim на OSCON 2013 .

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

что приводит к этому:

скриншот терминала Vim

Отлично работает при использовании консоли Vim. Однако изменение части ctermbg=magenta на guibg=Magenta только выделяет персонажа, но не окрашивает его в пурпурный цвет.

скриншот gVim

Как я могу сделать это правильно для gVim?

1 ответ1

3

Хм, у меня работает? Для справки я использую Vim v7.4 patch 335. (он не сильно кровоточит !!)

Я добавил следующие две строки в мой .vimrc:

highlight ColorColumn ctermbg=magenta guibg=Magenta
call matchadd('ColorColumn', '\%81v', 100)

Перезагрузка Вим и таа-даа! Персонажи на 81-й позиции были волшебно пурпурными.


РЕДАКТИРОВАТЬ: В соответствии с комментариями ниже, мы обнаружили, что @isxek необходимо поместить эти две строки LAST в их файл .vimrc. Очевидно, что используемая схема цветов (Molokai) задает схему подсветки ColorColumn. Я не видел эту проблему, так как я установил подсветку ColorColumn ПОСЛЕ того, как все загружено, по сути, выполняя ту же функцию, что и «последние строки».


Лично я бы рекомендовал использовать уникальный идентификатор Group чтобы не связываться с цветами подсветки, установленными для фактической группы подсветки ColorColumn .

highlight MyLineTooLongMarker ctermbg=magenta guibg=Magenta
call matchadd('MyLineTooLongMarker', '\%81v', 100)

Работает как для vim, так и для gvim.

Вы пробовали / используете ли вы ColorColumn? Относительно новая опция в Vim для выделения столбца (или столбцов!) на основе textwidth . Был добавлен с version 7.3 . Очень кстати!

Я использую это так:

" it didn't exist before Vim v7.3, sometimes I encounter older versions of vim (centOS, looking at you!!)
if v:version >= 703
    " a faint grey (gray?) color, not too insistent
    highlight ColorColumn term=reverse ctermbg=233 guibg=#202020
    " put the marker(s) at 'textwidth+2' (and at position 120)
    set colorcolumn=+2,120
    " if we're called as '*view', or on a console, turn off the colorcolumn
    if v:progname =~? 'view' || &term =~? 'linux|console'
        set colorcolumn=
    endif
endif

Таким образом, у меня на экране две линии, показанные в textwidth + 2 и в позиции 120 , по умолчанию. Я взял скриншот и переместил строки с set colorcolumn=+2,90 чтобы он не был слишком широким для нас. Выглядит так:

gvim, показывающий цветные столбцы

Вы можете видеть две вертикальные серые линии, расположенные в textwidth + 2 и в позиции 90 . Здесь моя textwidth была установлена на 78, поэтому строки располагаются на 80 и 90 символов.

Теперь вы МОЖЕТЕ использовать две строки для добавления формы colorcolumn для версии vim до v7.3. Вставьте их в else условие в блоке проверки версии выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .