Цветовая подсветка синтаксиса Vim: Как выделить только длинные строки? - PullRequest
18 голосов
/ 27 декабря 2008

Я бы хотел, чтобы vim раскрасил для меня "длинные" линии. Используя в качестве примера 80 столбцов, я бы хотел выделить строки, которые превышают эту длину. Вот примерно то, что, я думаю, должен содержать файл .vimrc, хотя он (1) не работает и (2) использует синтаксис регулярных выражений Perl для иллюстрации моей точки зрения, потому что я недостаточно хорошо знаю Vim:

...
highlight Excess ctermbg=0
au Syntax * syn match Excess /.{80,}$/
...

Это (по крайней мере, на мой взгляд) должно отмечать строки, которые превышают 80 столбцов. В идеале мне бы хотелось иметь возможность окрашивать только ту часть строки, которая превышает 80 столбцов, поэтому, если строка имеет 85 столбцов, то будут выделены столбцы с 81-го по 85-й.

Я уверен, что Вим может сделать это, только не со мной у руля.

Ответы [ 5 ]

29 голосов

Мне нужно, чтобы автокоманда работала на меня:

augroup vimrc_autocmds
  autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#111111
  autocmd BufEnter * match OverLength /\%75v.*/
augroup END

Также как идея использовать 75, если вы стремитесь в среднем на 80 столбцов.

Взято из:

http://blog.ezyang.com/2010/03/vim-textwidth/

Возможная причина сбоя без BufEnter: выделение + совпадение можно использовать только один раз. Многократное использование означает, что старые переопределяются. Как добавить несколько бликов

16 голосов
/ 27 декабря 2008

У меня есть это в моем vimrc.
Я нашел это здесь: Проблемы макета столбца Vim 80

highlight OverLength ctermbg=darkred ctermfg=white guibg=#FFD9D9
match OverLength /\%81v.*/

Возможно, вы захотите настроить цвета в соответствии со своими предпочтениями.

3 голосов
/ 22 марта 2014

Поскольку мне не нравится маркер столбца Vim 7.3, я просто использую выделенный текст после столбца 80 ... по крайней мере, это то, что я хочу в 95% случаев.

В остальные 5% случаев я написал это небольшое расширение, чтобы также иметь быстрый способ отключить выделение:

https://gist.github.com/fgarcia/9704429#file-long_lines-vim

1 голос
/ 31 марта 2017

Используется автокоманда для настройки значения OverLength в соответствии с типом файла.

" highlight lines longer than `textwidth` size for each filetype
autocmd FileType *
    \ if &textwidth |
    \    exec 'match OverLength /\%' . string(&textwidth+2) . 'v.*/' |
    \ endif
1 голос
/ 27 декабря 2008

Я использую следующий метод:

hi gitError ctermbg=Red
match gitError /^.*\s$/
2match gitError /^.\{120\}.*$/

(Они соответствуют некоторым хитам git pre-commit)

Вторая строка должна вас интересовать.

...