70

Некоторые текстовые редакторы с графическим интерфейсом имеют вертикальную линию, которая служит маркером длины строки (это помогает сохранять строки короче 80 символов в файлах исходного кода).

Возможно ли иметь что-то подобное в vim/gvim? Я знаю о параметре линейки vim, но не очень удобно визуально следить за ним на большом экране.

Изменить: при поиске "colorcolumn", чтобы узнать больше, я обнаружил, что этот вопрос является дубликатом https://stackoverflow.com/questions/235439/vim-80-column-layout-concerns

4 ответа4

121

Просто выполните это

:set colorcolumn=72

Вы также можете добавить к аргументу аргумент - или + чтобы поставить маркер на столько столбцов слева или справа от textwidth , и он принимает список столбцов через запятую. Я думаю, что опция colorcolumn есть только в Vim 7.3. Увидеть

:help colorcolumn
16

Из выступления Дамиана Конвея "Более мгновенно лучше Vim" на OSCON 2013:

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

Это приводит к тому, что символ выделяется пурпурным цветом (снимок экрана - DarkCyan), когда линия превышает максимум 80 символов.

Vim с подсветкой включен

Для gVim: лучше всего переместить эти 2 строки в последнюю часть вашего файла .vimrc чтобы убедиться, что он работает.

2

Вы можете попробовать это:

grep '.\{81\}' file

или же

set colorcolumn=80

(или сокращенный эквивалент)

set cc=80

или как указано выше:

match ErrorMsg '\%>80v.\+'
0

Ниже приведен неуклюжий трюк из Hacking Vim: Поваренная книга, чтобы получить максимальную отдачу от последнего редактора Vim от Kim Schultz.

С помощью ErrorMsg (обычно ярко-красного цвета) выделяются все строки длиной более 80 символов. Хорошо работает для меня.

function! RemoveWidthLimitWarnigns()
    silent! call matchdelete(4)
endfunction
function! InsertWidthLimitWarnings()
    call RemoveWidthLimitWarnigns()
    call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)
endfunction

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