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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.