Como posso distinguir o sistema operacional atual no meu .vimrc?

20

Eu uso o Vim no OS X e no Windows, com configurações quase idênticas.

Eu gostaria de poder usar o mesmo .vimrc nos dois sistemas operacionais, mas há algumas coisas que preciso configurar de forma diferente.

O que eu gostaria de adicionar ao meu arquivo .vimrc é:

:if <windows>
  "some windows-specific settings here
:elseif <os x>
  "some os x-specific settings here
:endif

Mas não sei o que usar para <windows> e <os x> .

Isso é possível?

    
por Rich 27.09.2010 / 13:58

3 respostas

29

N.B. Embora ambas as respostas anteriores tenham me dado informações suficientes para descobrir como resolver o problema (e recebi votos positivos de mim), nenhum dos dois deu a resposta completa. Para que outras pessoas com a mesma pergunta não tenham que fazer a pesquisa, estou adicionando minha própria resposta. No entanto, se @googletorp ou @Azz editar sua resposta para incluir essa informação, removerei minha resposta e aceito a resposta dela.

A saída para :h feature-list sugere que você possa usar has("win32") e has("macunix") , mas o último não funciona na versão do Vim incluída no OS X. (Ele faz , no entanto, trabalhar em MacVim.

Aqui está o que acabei usando:

if has("win32")
  "Windows options here
else
  if has("unix")
    let s:uname = system("uname")
    if s:uname == "Darwin\n"
      "Mac options here
    endif
  endif
endif

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 de uname dentro do bloco if has("unix") para distinguir outros tipos de Unix. Basta executar uname ou uname -a na linha de comando para ver com o que você precisa comparar s:uname com. Veja também :h matchstr() se você precisa comparar apenas uma parte da saída de uname .

    
por 28.09.2010 / 15:22
4

Você pode dar uma olhada aqui

Basicamente, você pode usar has() , system() :

let os = substitute(system('uname'), "\n", "", "")
if os == "SunOS"
  ..
endif  
    
por 27.09.2010 / 14:13
2

Isso parece ser o que você procura, eu não entendo muito bem, então vou te vincular.

link

    
por 27.09.2010 / 14:07