Compartilho meu arquivo de configuração do VIM entre vários computadores. No entanto, quero que algumas configurações sejam específicas para determinados computadores.
Por exemplo, os tamanhos das fontes no laptop de alta resolução devem ser diferentes da área de trabalho de baixa resolução. E, mais importante, quero que o gVIM no Windows se comporte mais com janelas e o MacVim no OSX se comporte com mais maccy e o gVIM no Linux se comporte como sempre. (Isso pode ser um sentimento estranho, mas estou muito acostumado a mudar de modo mental ao mudar de SO)
Existe uma maneira de fazer algumas configurações na .vimrc
máquina ou no SO?
vim
operating-systems
vimrc
dependencies
bastibe
fonte
fonte
has('gui_running')
se você precisar diferenciar entre o modo tty e o modo GUI.has('mac')
é verdade para todos os Macs ou apenas para Macs pré-OS-X. Veja:help feature-list
a lista completa.has('unix')
. Meu erro.has("mac")
. Meu palpite é que eles usaram algum patch que realmente faz o teste de recurso funcionar. Se você confiar nohas("mac")
teste, faça um teste para garantir que ele seja suportado no seu vim.Para testar uma máquina específica, você pode testar a saída do
hostname
comando. Por exemplo,Você também pode testar o valor das variáveis de ambiente disponíveis:
A
$DISPLAY
variável também pode ser útil.fonte
system('hostname')
foimachine.mycompany.com\n
, então eu tive que mudar o comando substituto parasubstitute(system('hostname'), '\.\_.*$', '', '')
.Eu tenho esse trecho no meu
vimrc
:Isso simplesmente é executado
source $HOME/.$HOSTNAME.vimrc
se existir. Eu useihostname()
e concatenação, você também pode usar o mais sucintoexpand('$HOME/.$HOSTNAME.vimrc')
se souber que$HOSTNAME
está sempre definido.fonte
A resposta anterior sobre a detecção do sistema operacional não detecta o OS X no MacVim para mim (e nem usa
has("macunix")
como a documentação sugere).Aqui está o que eu uso para distinguir entre Windows e OS X:
Observe que
has("win32")
funcionou para mim, mesmo no Vim de 64 bits no Windows de 64 bits.Você também pode usar testes semelhantes
uname
dentro doif has("unix")
bloco para distinguir outros sabores do Unix. Basta executaruname
ouuname -a
na linha de comando para ver o que você precisa comparars:uname with
. Veja também:h matchstr()
se você precisa comparar apenas uma parte da produção da uname.fonte
Em muitas máquinas, listar todos os nomes de host em
.vimrc
pode se tornar entediante, pode ser mais fácil distinguir entre diferentes tipos de unix:fonte
Você pode simplesmente colocar as coisas específicas do sistema operacional em um .gvimrc personalizado para cada máquina e usar um .vimrc comum em todas elas. Ambos os arquivos são lidos quando o GVim é iniciado, apenas .vimrc é lido quando o Vim não gui é iniciado.
fonte
Em relação à separação entre Linux e Windows - você pode simplesmente colocar configurações diferentes
.vimrc
e_vimrc
, em conformidade.fonte