Perché ho bisogno sia di un vimrc che di un gvimrc?


38

Sembra che ci siano due modi per memorizzare le preferenze specifiche di gvim:

  1. Conservare un .vimrcfile per vim e un .gvimrcfile per aggiunte specifiche di gvim.

  2. Mantieni tutte le impostazioni .vimrce avvolgi le impostazioni specifiche di gvim in una condizione di rilevamento delle funzionalità:

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

Data l'esistenza di quest'ultima opzione, perché dovrei mai aver bisogno di un .gvimrcfile?


Un esempio specifico che trovo utile è winposche cambia la posizione della finestra utilizzata da gvim. Questo non ha alcun effetto (e non ha senso) all'interno ~/.vimrc, deve essere in~/.gvimrc
jalanb

Risposte:


29

All'avvio della GUI, alcune impostazioni vengono ripristinate e quindi .gvimrcelaborate.

Di conseguenza, se si desidera un valore non predefinito per una di queste impostazioni, è necessario impostarlo in un .gvimrc; il test per la modalità GUI in .vimrcnon funzionerà.

Una di queste impostazioni è t_vbil codice terminale utilizzato per la campana visiva; infatti, tutti gli optional del terminale sono ripristinati ai valori predefiniti per la modalità GUI (vedi :help terminal-options).

Inoltre viene eseguita una serie di impostazioni della GUI e personalizzazione dei menu; se vuoi modificarlo, lo vorrai in un .gvimrco potrebbe non avere alcun impatto.

Rileggere :help gvimrcoffre una buona panoramica delle cose che potrebbero cambiare su di te tra il tuo approvvigionamento .vimrce .gvimrcche potresti voler considerare di ri-aggiustare in quest'ultimo.


3
IIRC è possibile utilizzare il :guicomando (all'interno has("gui_running"), ovviamente) per forzare l'esecuzione della sequenza di avvio della GUI prima di qualsiasi successivo comando .vimrc. Il mio .vimrc lo utilizza per consentire l'impostazione di luce / buio di sfondo predefinita in base al colore di sfondo effettivo della GUI.
Casuale 832,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.