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

116

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

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

Jennifer
источник
Возможный дубликат проблем с расположением столбцов
Тревор Бойд Смит

Ответы:

15

Изменить: для 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, представляющий ключ лидера. См. Показать текущую настройку ключа <leader>
Rod
@Will, Learn Vimscript the Hard Way - хороший ресурс, чтобы узнать о кроличьей норе vim.
jazzabeanie
310

Новое в 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
UncleZeiv
источник
4
Я думаю, что здесь хорошо отметить, что цвет автоматически определяется цветом вашего выделения, если вы не установите его вручную, как в примере.
Alex Hart
Обратите внимание, что этот highlightпараметр должен быть установлен после любых colorschemeкоманд, поскольку это переопределит цвет выделения.
c4urself
7
Я выбрал яркий, красный для мозга ... потому что вы знаете ... длина строки
Рон Дальгрен
Вы знаете, как иметь два разных цвета для столбца color? Я хотел бы иметь два: простой на 80 символов для кода и очень слабый на 72 символа для текущего текста / комментариев.
Алиса
Было бы хорошо упомянуть, что это textwidthтакже приводит к переносу vim при вводе текста.
цыплята
6

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

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

Пьер-Антуан ЛаФайет
источник