Зачем мне нужен и vimrc и gvimrc?

38

Кажется, есть два способа сохранить настройки, специфичные для gvim:

  1. Сохраните .vimrcфайл для vim и .gvimrcфайл для специфических дополнений gvim.

  2. Сохраните все настройки .vimrcи оберните конкретные настройки gvim в условное обозначение функции:

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

Учитывая наличие последнего варианта, зачем мне нужен .gvimrcфайл?

Калеб
источник
Один конкретный пример, который я считаю полезным, - winposэто изменение положения окна, используемого gvim. Это не имеет никакого эффекта (и не имеет смысла) внутри ~/.vimrc, оно должно быть внутри~/.gvimrc
jalanb

Ответы:

29

При запуске графического интерфейса некоторые настройки сбрасываются, а затем .gvimrcобрабатываются.

Следовательно, если вы хотите использовать значение не по умолчанию для любого из этих параметров, вам нужно установить его в a .gvimrc; тестирование в режиме графического интерфейса .vimrcне будет работать.

Одним из таких параметров является t_vbкод терминала, используемый для визуального звонка; фактически все опции терминала сбрасываются на значения по умолчанию для режима GUI (см. :help terminal-options).

Дополнительно выполняется множество настроек графического интерфейса пользователя и меню; если вы хотите настроить что-либо из этого, вы захотите, чтобы .gvimrcоно или оно не оказало никакого влияния.

Чтение :help gvimrcдает хороший обзор того, что может измениться между вами .vimrcи вашим источником, и .gvimrcвы можете подумать о перестройке последнего.


источник
3
IIRC вы можете использовать :guiкоманду ( has("gui_running")конечно, внутри ), чтобы заставить последовательность запуска графического интерфейса происходить перед любыми последующими командами .vimrc. Мой .vimrc использует это, чтобы разрешить настройку фонового освещения / темного цвета по умолчанию на основе фактического цвета фона графического интерфейса.
Random832