Как показать вертикальную линию, чтобы обернуть линию в Vim?
Я заинтересован в том, чтобы найти способ показать вертикальную линию в столбце 80 в Vim (не GVim).
я использовал set wrap
, но я просто хочу показать вертикальную линию, чтобы я мог обернуть длинную линию сам.
5 ответов:
изменить: для Vim >=7.3 см. ответ ниже.
к сожалению, vim не имеет механизма для отображения вертикальной линии после столбца, как вы хотите (в отличие, скажем, TextMate). Однако, существуют альтернативные визуальные индикаторы, которые можно использовать, чтобы показать, что строка слишком длинная.
вот что я использую (вы можете поместить это в ваш
.vimrc
):nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr> hi OverLength ctermbg=none cterm=none match OverLength /\%>80v/ fun! s:LongLineHLToggle() if !exists('w:longlinehl') let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0) echo "Long lines highlighted" else call matchdelete(w:longlinehl) unl w:longlinehl echo "Long lines unhighlighted" endif endfunction
Так что вы можете использовать
<Leader>H
для переключения столбцов более 80 подсвечиваются.
новое в Vim 7.3:
'colorcolumn' - это разделенный запятыми список столбцов экрана, которые выделено с помощью ColorColumn. Полезно выровнять текст. Будет сделайте перерисовку экрана медленнее. Столбец экрана может быть абсолютным числом, или число, которому предшествует ' + 'или' -', которое добавляется или вычитается из 'textwidth'.
пример из документации:
:set colorcolumn=+1 " highlight column after 'textwidth' :set colorcolumn=+1,+2,+3 " highlight three columns after 'textwidth' :highlight ColorColumn ctermbg=lightgrey guibg=lightgrey
вы также можете использовать абсолютные числа:
:set colorcolumn=80
есть еще один способ уведомить о длинной линии.
выделите OverLength ctermbg=red ctermfg=white guibg=#592929
матч OverLength / \%81v.*/
Я использую
match ErrorMsg '\%>80v.\+'
который будет выделять что-нибудь более 80 символов с красным цветом.Я поместил эту команду в свой python.ВИМ и Руби.ВИМ в ~/.vim / after/ftplugin/.
несколько ответов здесь http://vim.wikia.com/wiki/Highlight_long_lines простая автокоманда
:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1) :au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)