Альтернативное отображение отступов в Vim - PullRequest
6 голосов
/ 28 июня 2011

Я наткнулся на этот вопрос: https://softwareengineering.stackexchange.com/questions/87077/how-can-a-code-editor-effectively-hint-at-code-nesting-level-without-using-inde и подумал, что Vim может сделать что-то похожее с плагином.

Я считаю, что уровень отступа можно обозначить знаком(значок в графическом интерфейсе, текст с подсветкой в ​​терминах).Часть, в которой я не уверен, отображает строки без отступа.Кто-нибудь знает, возможно ли и / или как бы вы это сделали?

Вопрос не в том, желательно ли отображение уровней отступов таким способом;но как это сделать в Vim.

Ответы [ 2 ]

3 голосов
/ 11 июля 2011

Вы можете использовать функцию conceal, новую в 7.3.

Вот функция, которая делает примерно то, что описывает статья (для пробелов; учет вкладок вместо этого будет довольно тривиальным дополнением):

function! IndentationHeatMap()
    set conceallevel=1
    for i in range(1,9)
        let indentation = repeat(" ", &sts * i)
        exe 'syntax match NonText "^' . indentation . '" conceal cchar=' . i
    endfor
endfunction

Решение, близкое к тому, что вы запрашиваете, может использовать conceal, чтобы скрыть все начальные пробелы с

syntax match NonText "^\s\+" conceal

, а затем используйте signs для предоставления показателей на основе пользовательских расчетов.

Примечание: NonText в этих синтаксических командах является произвольной группой выделения.

0 голосов
/ 28 июня 2011

Взгляните на эти плагины: Направляющие отступа и IndentHL Оба имеют скриншоты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...