Как я могу установить линейку на определенный столбец?
50
При кодировании на разных языках, я склонен ограничивать свои строки определенной длиной (обычно 79 или 80 символов).
Я видел это в других редакторах с помощью линейки (сплошная линия отображается в столбце) или путем изменения цвета текста, чтобы показать, что он перешел.
Как я могу указать, чтобы Vim указывал мне, когда я подхожу к 79 символам в одной строке?
Вы можете отобразить линейку в определенной строке, используя опцию :set colorcolumn( :set ccдля краткости), которая доступна только в Vim 7.3 или более поздней версии .
set colorcolumn=80
Это установит красный цвет фона этого столбца, предоставляя вам визуальную линейку для работы.
Если вы хотите использовать другой цвет, отличный от красного (который действительно выделяется), вы можете изменить цвет, установив highlightдля ColorColumn.
highlight ColorColumn ctermbg=0 guibg=lightgrey
Вы можете установить цвет для терминальных версий Vim, используя ctermаргумент, и версии графического интерфейса Vim, используя guibgаргумент. Это 0значение escape-кода ASCII для черного, которое становится серым, когда оно становится ярким (по умолчанию это так). Это значение lightgreyиспользуется для версий Vim с графическим интерфейсом, например gVim, для изменения цвета фона на светло-серый.
Вы даже можете иметь несколько цветовых колонок через запятую!
200_success
4
Объедините это с join & range, и вы можете получить группу столбцов, раскрашенных очень небольшим кодом. Мой .vimrc имеет:execute "set colorcolumn=" . join(range(81,335), ',')
Опрос Коди
19
В качестве дополнения к ответу Кевина, вы можете иметь несколько цветовых колонок. Когда я кодирую, у меня иногда есть «мягкий» лимит в 80 столбцов и «жесткий» лимит в 120 столбцов. Поэтому я хочу, чтобы линия на 80, а затем каждый столбец после 120, чтобы быть цветными.
Я делаю это с
let &colorcolumn="80,".join(range(120,999),",")
Конечно, это может быть легко изменено на другие предпочтения.
Vim 7.3 предлагает эту colorcolumnопцию, как очень подробно описано в других ответах.
Однако, если у вас нет версии 7.3 по какой-либо причине, вы все равно можете получить визуальную индикацию того, что вы превысили определенное количество столбцов, используя matchфункциональность vim (см. :help matchПодробности).
По сути, команды соответствия позволяют создавать постоянные блики для текста, соответствующего заданному регулярному выражению. :match ColorColumn "\%80v."выделит текст в столбце 80 с группой «ColorColumn». Конечно, вы можете заменить любую группу выделения и любое значение столбца. Если вам нужна четкая визуальная индикация, выражение "\%>79v.\+"выделит столбец 80 и далее.
( \%80vозначает «сопоставить в виртуальном столбце 80» и \%>79vозначает «сопоставить после виртуального столбца 79; см. :help /\%cподробнее»).
Этот подход будет выделен только тогда, когда в указанных столбцах присутствуют действительные символы, что делает его визуально менее согласованным, чем colorcolumn.
Лично я нахожу менее последовательный подход matches лучше, поскольку он выделяет только те строки, где я превышаю предел в 80 столбцов, вместо того, чтобы показывать (для меня) навязчивую большую красную линию в правой части экрана. Следовательно, в моем vimrc для Python я использую call matchadd('ColorColumn', '\(\%80v\|\%100v\)')(80 и 100 - рекомендуемые длины в PEP 8)
execute "set colorcolumn=" . join(range(81,335), ',')
В качестве дополнения к ответу Кевина, вы можете иметь несколько цветовых колонок. Когда я кодирую, у меня иногда есть «мягкий» лимит в 80 столбцов и «жесткий» лимит в 120 столбцов. Поэтому я хочу, чтобы линия на 80, а затем каждый столбец после 120, чтобы быть цветными.
Я делаю это с
Конечно, это может быть легко изменено на другие предпочтения.
источник
Vim 7.3 предлагает эту
colorcolumn
опцию, как очень подробно описано в других ответах.Однако, если у вас нет версии 7.3 по какой-либо причине, вы все равно можете получить визуальную индикацию того, что вы превысили определенное количество столбцов, используя
match
функциональность vim (см.:help match
Подробности).По сути, команды соответствия позволяют создавать постоянные блики для текста, соответствующего заданному регулярному выражению.
:match ColorColumn "\%80v."
выделит текст в столбце 80 с группой «ColorColumn». Конечно, вы можете заменить любую группу выделения и любое значение столбца. Если вам нужна четкая визуальная индикация, выражение"\%>79v.\+"
выделит столбец 80 и далее.(
\%80v
означает «сопоставить в виртуальном столбце 80» и\%>79v
означает «сопоставить после виртуального столбца 79; см.:help /\%c
подробнее»).Этот подход будет выделен только тогда, когда в указанных столбцах присутствуют действительные символы, что делает его визуально менее согласованным, чем
colorcolumn
.источник
match
es лучше, поскольку он выделяет только те строки, где я превышаю предел в 80 столбцов, вместо того, чтобы показывать (для меня) навязчивую большую красную линию в правой части экрана. Следовательно, в моем vimrc для Python я используюcall matchadd('ColorColumn', '\(\%80v\|\%100v\)')
(80 и 100 - рекомендуемые длины в PEP 8)