Вы можете использовать функцию 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
в этих синтаксических командах является произвольной группой выделения.