Czy mogę sprawić, by Vim był biegły w różnych kolorach w oparciu o „źródło zasilania”, „wyjście monitora”?

0

Opis wyzwania / przypadku użycia

Po przejściu na nowy laptop z fantazyjnym procesorem, ale gównianym monitorem, chciałbym ograniczyć się backgrounddo „ciemności”, gdy korzystam z laptopa w podróży. Jednak spędzam większość czasu na zadokowaniu laptopa, a tym samym korzystam z mojego normalnego zestawu monitorów.

Oto moje zwykłe ustawienie, które dostosowuje backgroundsię do pory dnia: darkkiedy jest noc i lightkiedy jest w ciągu dnia. Mógłbym to udoskonalić, ale działa dobrze.

if has("gui_running")
    " My time-keeper and eye-saver
    if strftime("%H") < 6  
        set background=dark
    elseif strftime("%H") >18
        set background=dark
    else
        set background=light
    endif
else
    set background=dark
endif

Pytanie:

  1. Czy istnieje warunek, który mogę wywołać / określić, aby wskazać wyświetlany monitor?
  2. Lub powiedzmy warunek, który odzwierciedla stan źródła zasilania?

Potencjalne rozwiązanie (w oczekiwaniu na wdrożenie)

  1. Jak sugeruje @ Heptite , narzędzie wiersza polecenia systemu Windows, które zwraca coś o systemie, załatwi sprawę . Oto najbliższe trafienie, które może załatwić sprawę:

    • Aby zgłosić / wydrukować / wyświetlić rozdzielczość ekranu „bieżącego” monitora:
    • Próbowałem uruchomić !wmic path Win32_VideoController get CurrentHorizontalResolution,CurrentVerticalResolutionnatywny wiersz poleceń dla Vima, ale pojawia się dodatkowe okno wiersza polecenia.
    • Formalne rozwiązanie (w toku) : ten ekran powinien służyć jako dobry identyfikator stanu, w którym laptop znajduje się na małym 1366 * 768monitorze.
  2. Powinien istnieć inny sposób identyfikacji źródła baterii, ale nie byłem w stanie odtworzyć niczego zbliżonego do identyfikacji rozdzielczości ekranu, jak pokazano powyżej.

llinfeng
źródło
Czy istnieje polecenie systemu operacyjnego lub wywołanie biblioteki, które mogą dostarczyć niezbędnych informacji do testów warunkowych?
Heptyt
Och, sugerujesz, że istnieje jakieś polecenie zewnętrzne, które można wykonać za pomocą wiersza poleceń Vima? Nie mam pojęcia, jak system Windows działa na poziomie wiersza polecenia. [Bardziej prawdopodobne, że otrzymam zamianę jak najszybciej.] Dziękuję za wskazanie rozsądnego kierunku, @Heptite :)
llinfeng 27.10.17
To nie miało być pytanie retoryczne. Jeśli znasz jakikolwiek sposób zewnętrzny dla Vima w celu uzyskania tych informacji, prawdopodobnie może on zostać użyty przez Vima do zrobienia tego, co chcesz.
Heptyt
Cześć @Heptite, myślę, że znalazłem wstępne rozwiązanie, ale nie udało mi się stworzyć rozsądnej zwięzłej funkcji / warunków Vima do wykonania prawdziwej pracy. Miałem problem: 1. pobrać wyniki z wiersza polecenia z powrotem do Vima; 2. wydać przetworzony wyświetlany wynik za pomocą RegEX i 3. wdrożyć „proces nasłuchiwania” w Vimie, który zostanie uruchomiony, gdy wykryje zmianę rozdzielczości ekranu.
llinfeng