Подсвечиваем строки длиннее 80 символов в Vim

Когда-то давно, я прочитал множество статей про правила написания хорошего кода, и одна мысль плотно засела у меня в голове и более того, суть этой мысли оказалась вполне себе удобной на практике. Я говорю про длину строки. Считается, что для удобного чтения исходного кода лучше ограничивать длину строки в 80 символов. Как я уже выше написал, на практике это оказалось вполне себе удобно, и довольно неплохо увеличивает читаемость кода.

В общем, я не знаю кто как, но лично я стараюсь придерживаться этого правила, но не доводя до фанатизма. Иными словами: где нет возможности сделать строку короче - оставляю как есть.

Для того, чтобы хотя бы стараться придерживаться этого правила, было бы не плохо, чтобы в этом помогал любимый редактор кода. В моём случае - это Vim.

В Vim начиная с 7-ой версии есть так сказать встроенная поддержка - colorcolumn. Т.е. подсвечивается определённая колонка. По-умолчанию выглядит это не очень симпатично:

Но благо в Vim почти всё можно настроить, и в данном случае colorcolumn не является исключением.

Собственно сама подсветка включается довольно просто: set colorcolumn=80

Так как вполне возможна ситуация, когда Vim младше 7-ой версии - неплохо проверять это. В конечном результате получается примерно следующее:

if exists('+colorcolumn')
    highlight ColorColumn ctermbg=235 guibg=#2c2d27
    highlight CursorLine ctermbg=235 guibg=#2c2d27
    highlight CursorColumn ctermbg=235 guibg=#2c2d27
    let &colorcolumn=join(range(81,999),",")
else
    autocmd BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
end

Выглядеть это будет примерно так:

Так же можно "попросить" vim переносить все строки длиннее 80 символов за нас, автоматически при наборе:

set textwidth=80 
set formatoptions=cqt
set wrapmargin=0

Что лично для меня - не особо удобно, но, возможно, кому либо пригодится.


Понравилась статья? Поделись с друзьями!




Комментарии на этом сайте требуют включенного Javascript в вашем браузере. Вероятно, ваш браузер не поддерживает Javascript, или он был отключен по каким-то причинам. Если вы хотите прокомментировать пост, или просто почитать комментарии, то пожалуйста, включите Javascript или попробуйте открыть эту страницу другим браузером.