Есть ли способ сделать Vim/gVim подсветкой правого поля в текущем документе? Я только начал работать с Вимом некоторое время, и я нашел его раздраженным без правого края в колонке 80.
Правый край в Vim
Ответ 1
Vim 7.3 ввел цветную колонку.
:set colorcolumn=80
Вам может быть проще запомнить короткую форму.
:set cc=80
Ответ 2
Нет простого способа визуализации вертикального края textwidth
-margin
(в Vim 7.2 и ранее). Однако можно выделить все символы за пределами
80 столбцов ограничены использованием команды :match
.
:match ErrorMsg /\%>80v.\+/
Итак, общее решение заключается в использовании следующей автоматической команды.
:autocmd BufWinEnter * call matchadd('ErrorMsg', '\%>'.&l:textwidth.'v.\+', -1)
Ответ 3
Я написал функцию vimscript в моем .vimrc, чтобы переключать colorcolumn, когда я нажимаю, 8 (запятая, за которой следует 8, где запятая - это определенный лидер для пользовательских команд, а восемь - мой мнемонический ключ для 'show a margin в 80-й колонке):
" toggle colored right border after 80 chars
set colorcolumn=81
let s:color_column_old = 0
function! s:ToggleColorColumn()
if s:color_column_old == 0
let s:color_column_old = &colorcolumn
windo let &colorcolumn = 0
else
windo let &colorcolumn=s:color_column_old
let s:color_column_old = 0
endif
endfunction
nnoremap <Leader>8 :call <SID>ToggleColorColumn()<cr>
Ответ 4
Я переписал ответ Джонатана Хартли для более старых версий Vim, таких как 7.2, поскольку есть no colorcolumn
в старых Vims.
highlight OverLength ctermbg=red ctermfg=white guibg=#592929
let s:OverLengthToggleVariable=0
function! ToggleOverLength()
if s:OverLengthToggleVariable == 0
match OverLength /\%81v.\+/
let s:OverLengthToggleVariable=1
else
match OverLength //
let s:OverLengthToggleVariable=0
endif
endfunction
" I like <leader>h since highlight starts with h.
nnoremap <leader>h :call ToggleOverLength()<cr>