Правое поле в Vim - PullRequest
       21

Правое поле в Vim

71 голосов
/ 02 февраля 2010

Есть ли способ заставить Vim / gVim выделять правое поле в текущем документе? Я только недавно начал работать с Vim, и мне показалось, что он раздражен без правого поля в столбце 80.

Ответы [ 4 ]

109 голосов
/ 03 января 2011

Vim 7.3 представил цветную колонку.

:set colorcolumn=80

Возможно, вам будет проще запомнить короткую форму.

:set cc=80
19 голосов
/ 02 февраля 2010

Нет простого способа визуализировать вертикальный край textwidth -маргина (в Vim 7.2 и ранее). Тем не менее, можно выделить все символы за пределами ограничение в 80 столбцов с помощью команды :match.

:match ErrorMsg /\%>80v.\+/

Итак, общее решение - использовать следующую авто-команду.

:autocmd BufWinEnter * call matchadd('ErrorMsg', '\%>'.&l:textwidth.'v.\+', -1)
7 голосов
/ 13 января 2011

Я написал функцию vimscript в моем .vimrc для переключения цветовой колонки при нажатии, 8 (запятая, затем 8, где запятая - это определенный лидер для пользовательских команд, а восемь - моя мнемоническая клавиша для 'show a поле в 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>
2 голосов
/ 17 января 2016

Я переписал ответ из Джонатана Хартли для более старых версий Vim, таких как 7.2, поскольку в старых Vims нет colorcolumn.

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...