Используя скрытие, есть несколько способов, которыми это может пойти, в зависимости от того, чего вы хотите достичь.
Я буду использовать matchadd()
ниже, но теоретически вы можете сделать что-то подобноес syn-conceal
.Разница в том, что совпадение является локальным для окна.Синтаксис доступен там, где он определен - вы можете использовать любой тип файла или другой механизм для установки этого через синтаксис.
Я предполагаю, что регулярное выражение \s
(соответствует пробелу) соответствует тому, что вам нужно.Если вам нужны только пробелы, измените \s
на
(один пробел) в регулярном выражении.
Я предполагаю, что вы можете прочитать vim regexp.Страницы справки обширны, но обратите внимание, что ниже я использую \v
, чтобы явно установить магический тип (matchadd
чувствителен к опциям, влияющим на регулярные выражения, таким как 'magic'
), и я использую \zs
, когда это необходимо, чтобы начать совпадение.
Я буду использовать тестовый текст ниже.
Тестовый файл
word word word word
word word word word
set conceallevel=1
На уровне 1,нам разрешено использовать заменяющие символы в наших матчах.
Таким образом, мы можем заменить все лишние пробелы, например, .
, чтобы сделать их выдающимися:
let space_match = matchadd('Conceal', '\v\s\zs\s+', 10, -1, {'conceal': '.'})
(10 является приоритетом по умолчанию, а -1 запрашивает новый идентификатор для матча.)
Очистка
Чтобы избавиться от матча / скрыть, вы можете просто
call matchdelete(space_match)