Как показать вертикальную линию, чтобы обернуть линию в Vim? - программирование
Подтвердить что ты не робот

Как показать вертикальную линию, чтобы обернуть линию в Vim?

Мне интересно найти способ показать вертикальную линию в столбце 80 в Vim (не GVim).

Я использовал set wrap, но я просто хочу показать вертикальную линию, чтобы я мог обернуть длинную линию сам.

4b9b3361

Ответ 1

Изменить: для 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, выделенных.

Ответ 2

Новое в 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

Ответ 3

Существует еще один способ оповестить о длинной строке.

выделить OverLength ctermbg = red ctermfg = white guibg = # 592929
совпадение OverLength/\% 81v. */

Сопоставление столбцов Vim 80

Ответ 4

Я использую match ErrorMsg '\%>80v.\+', который выделит что-нибудь более 80 символов с красным.

Я поместил эту команду в мои python.vim и ruby.vim под ~/.vim/after/ftplugin/.

Ответ 5

Несколько ответов здесь 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)