получить текущую строку состояния из буфера - PullRequest
0 голосов
/ 06 октября 2018

У меня есть плагин, который имеет некоторую функциональность, которая добавляет строку к statusline.У меня есть серия функциональных тестов, которые проверяют, что определенные действия производят некоторый вывод, и я хотел бы убедиться, что, если установлено, statusline изменится после некоторого триггера.

Мне не удалось найти что-то, что позволило бы мне захватить (сбросить?) Визуализированное содержимое statusline:help statusline, и :help status-line не намекают ни на что, что может это позволить.

Есть ли способ на самом деле это сделать?

1 Ответ

0 голосов
/ 08 октября 2018

Вы ищете :help screenchar().С его помощью вы можете захватить любую видимую ячейку экрана, контролируемую Vim (включая строки состояния), и ее основная цель - тестирование.Его использование немного неуклюже, потому что вы должны запрашивать каждую позицию в отдельности и явно преобразовывать обратно в символы / строки.Например, если строка состояния является строкой от второй до последней, она получит первый символ:

:echo nr2char(screenchar(&lines-1, 1))

И получит всю строку состояния (при условии, что у вас нет вертикальных разбиений окна):

:echo join(map(range(1, &columns), 'nr2char(screenchar(&lines-1, v:val))'), '')
...