Dlaczego potrzebuję zarówno vimrc, jak i gvimrc?

38

Wydaje się, że istnieją dwa sposoby przechowywania preferencji specyficznych dla gvim:

  1. Zachowaj .vimrcplik dla vima i .gvimrcplik dla specyficznych dodatków gvim.

  2. Zachowaj wszystkie ustawienia .vimrci zawiń określone ustawienia gvima w warunku wykrywania funkcji:

    if has('gui_running')
        " gvim specific settings here
    endif
    

Biorąc pod uwagę istnienie tej drugiej opcji, dlaczego miałbym kiedykolwiek potrzebować .gvimrcpliku?

Caleb
źródło
Jednym konkretnym przykładem, który uważam za użyteczny, jest winposzmiana położenia okna używanego przez gvim. To nie ma żadnego efektu (i nie ma sensu) wewnątrz ~/.vimrc, musi być~/.gvimrc
jalanb

Odpowiedzi:

29

Po uruchomieniu GUI niektóre ustawienia są resetowane, a następnie .gvimrcprzetwarzane.

W związku z tym, jeśli chcesz mieć wartość inną niż domyślna dla któregoś z tych ustawień, musisz ustawić ją w .gvimrc; testowanie trybu GUI w .vimrcnie będzie działać.

Jednym z takich ustawień jest t_vbkod terminala używany dla dzwonka wizualnego; w rzeczywistości wszystkie opcje terminalu są resetowane do wartości domyślnych dla trybu GUI (patrz :help terminal-options).

Dodatkowo przeprowadzana jest konfiguracja GUI i dostosowywanie menu; jeśli chcesz coś poprawić, będziesz chciał, żeby .gvimrcto nie miało wpływu.

Czytanie powyżej :help gvimrczapewnia dobry przegląd rzeczy, które mogą się na ciebie zmienić między twoimi źródłami .vimrci .gvimrcktóre możesz rozważyć ponowne dostosowanie w tym drugim.


źródło
3
IIRC możesz użyć :guipolecenia ( has("gui_running")oczywiście), aby wymusić uruchomienie sekwencji GUI przed kolejnymi poleceniami .vimrc. Mój .vimrc używa tego, aby umożliwić ustawienie domyślnego jasnego / ciemnego tła w oparciu o rzeczywisty kolor tła GUI.
Random832