Pourquoi ai-je besoin d'un vimrc et d'un gvimrc?

38

Il semble y avoir deux façons de stocker les préférences spécifiques à gvim:

  1. Conservez un .vimrcfichier pour vim et un .gvimrcfichier pour les ajouts spécifiques à gvim.

  2. Conservez tous les paramètres dans .vimrcet encapsulez les paramètres spécifiques à gvim dans une condition de détection de fonctionnalité:

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

Compte tenu de l'existence de cette dernière option, pourquoi aurais-je besoin d'un .gvimrcfichier?

Caleb
la source
Un exemple spécifique que je trouve utile est celui winposqui modifie la position de la fenêtre utilisée par gvim. Cela n'a aucun effet (et n'a pas de sens) à l'intérieur ~/.vimrc, il doit être~/.gvimrc
jalanb

Réponses:

29

Lorsque l'interface graphique démarre, certains paramètres sont réinitialisés, puis .gvimrctraités.

Par conséquent, si vous souhaitez une valeur autre que celle par défaut pour l'un de ces paramètres, vous devez la définir dans un paramètre .gvimrc; tester le mode graphique .vimrcne fonctionnera pas.

Un de ces paramètres est t_vble code de terminal utilisé pour la sonnerie visuelle; en fait, toutes les options du terminal sont réinitialisées aux valeurs par défaut pour le mode interface graphique (voir :help terminal-options).

En outre, un ensemble de configurations d’interface graphique et de personnalisation de menus est effectué; si vous voulez modifier tout cela, vous voudrez que ce soit dans un .gvimrcou cela n'aura aucun impact.

La lecture :help gvimrcdonne un bon aperçu de ce qui peut changer entre l’approvisionnement de votre compte .vimrcet .gvimrccelui que vous voudrez peut-être envisager de réajuster.


la source
3
IIRC, vous pouvez utiliser la :guicommande (dans has("gui_running"), bien sûr) pour forcer la séquence de démarrage de l’interface graphique à se produire avant toute commande .vimrc ultérieure. Mon fichier .vimrc l'utilise pour permettre au paramètre d'arrière-plan clair / sombre par défaut d'être défini en fonction de la couleur d'arrière-plan de l'interface graphique réelle.
Random832