Я пишу плагин vim, в котором мне нужно определить все те файлы, которые в настоящее время проверяются.Это те, для которых установлено diff
.Я изучал руководство, но не смог найти много.
Возможно ли это сделать?
Этот вопрос на самом деле связан с вопросом как обнаружитьпозиционно-из-окна-в-Vim .В этом вопросе я пытался определить положение окна, чтобы определить, какой из различий является правильным, а какой - левым.Решение , которое я получил, состояло в том, чтобы использовать winnr ()
Это решение может работать, только если есть только 2 окна (те, которые выводятся).Я хочу сделать его общим, чтобы даже если в vim открыто несколько окон, я могу определить, какое из них слева, а какое - справа.Это то, что я думал, чтобы решить проблему
- Получить список всех перечисленных буферов
- Для каждого из этих буферов определить, является ли
diff
1
для этого - Если
diff
равен 1
, используйте bufwinnr()
, чтобы получить номер окна. - Из номеров окон определите, какой из них слева, а какой - справа.левый будет иметь меньший номер окна
- , а затем определить, будет ли текущий буфер (в котором нажата
alt-left
`alt-right`) левым или правым, используя winnr текущего буфера.
Теперь недостающие части - 1 и 2. Для 1 лс можно использовать, но мне нужно проанализировать его вывод.Есть прямой способ получить список всех перечисленных буферов.И затем есть способ проверить, для этого буфера diff
равен 1 или нет.
Любые предложения для более простого решения также приветствуются.