Por que preciso de um vimrc e um gvimrc?

38

Parece haver duas maneiras de armazenar preferências específicas para o gvim:

  1. Mantenha um .vimrcarquivo para o vim e um .gvimrcarquivo para adições específicas do gvim.

  2. Mantenha todas as configurações .vimrce agrupe as configurações específicas do gvim em uma detecção de recurso condicional:

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

Dada a existência da última opção, por que eu precisaria de um .gvimrcarquivo?

Caleb
fonte
Um exemplo específico que eu acho útil é winposque muda a posição da janela usada pelo gvim. Isto não tem qualquer efeito (e não faz sentido) no interior ~/.vimrc, que tem que ser em~/.gvimrc
jalanb

Respostas:

29

Quando a GUI é iniciada, algumas configurações são redefinidas e .gvimrcprocessadas.

Conseqüentemente, se você quiser um valor não padrão para qualquer uma dessas configurações, precisará defini-lo em a .gvimrc; o teste do modo GUI no .vimrcnão funcionará.

Uma dessas configurações é t_vbo código do terminal usado para a campainha visual; de fato, todos os opcionais do terminal são redefinidos para os padrões do modo GUI (consulte :help terminal-options).

Além disso, várias configurações de GUI e personalização de menus são realizadas; se você quiser ajustar algo disso, é recomendável que em um .gvimrcou ele não tenha nenhum impacto.

A leitura :help gvimrcfornece uma boa visão geral das coisas que podem mudar entre você .vimrce sua fonte e .gvimrcque você pode considerar reajustar nesta última.


fonte
3
IIRC, você pode usar o :guicomando (dentro has("gui_running"), é claro) para forçar a sequência de inicialização da GUI a ocorrer antes de qualquer comando .vimrc subsequente. Meu .vimrc usa isso para permitir que a configuração padrão de claro / escuro seja definida com base na cor de fundo da GUI real.
Random832