Como posso fazer com que o .vimrc seja lido de um arquivo externo?

Como posso fazer com que o .vimrc seja lido de um arquivo externo?

Gostaria de modificar meu .vimrcpara ler o valor de uma variável de um arquivo externo. Como posso fazer isso?

Especificamente, um amigo e eu compartilhamos um repositório git com nossos .vimarquivos, mas existem algumas pequenas diferenças no que queremos em nossas configurações. Portanto, a maior parte do arquivo é comum, mas usamos instruções if para determinar se devemos carregar seções específicas do usuário, como esta:

let whoami = "user2"
if whoami == "user1"
...

Depois de verificar nosso .vimrccontrole comum fora do código-fonte, cada um de nós precisa alterar a let whoamiatribuição para que nossa própria seção seja carregada. Em vez disso, gostaria de manter um arquivo separado, que pode ser diferente para cada um de nós, e do qual o vim carregará esse valor variável.

Talvez outro ângulo sobre isso seja:O vim lerá automaticamente todos os arquivos do meu .vimdiretório?Nesse caso, cada um de nós poderia colocar um link simbólico chamado username.vim e vinculá-lo a um arquivo externo que seria diferente para cada um de nós.

Responder1

no seu arquivo .vimrc principal:

source otherVimScriptFilePath.vim

então basta colocar sua instrução de variável nesse arquivo:

" otherVimScriptFilePath.vim
let whoami = "user1"

Responder2

Usando um try/catch

Desde que fiz esta pergunta, descobri outro caso de uso para carregar um arquivo externo: ajustes específicos da máquina.

Como posso ou não precisar fazer ajustes em uma determinada máquina, estou usando um try/catchpara carregar o arquivo externo; se não existir tal arquivo, deixo-o falhar silenciosamente.

" If there are any machine-specific tweaks for Vim, load them from the following file.
try 
  source ~/.vimrc_machine_specific
catch
  " No such file? No problem; just ignore it.
endtry 

Responder3

Para responder à última pergunta, os arquivos ~/.vimnão são carregados automaticamente, mas todos os arquivos ~/.vim/pluginsão.

Responder4

o nome do usuário logado está disponível na variável de ambiente $USER. você pode acessar essa variável facilmente:

:echo $USER

então, basta usar

execute "silent! source vimrc." . $USER

no seu vimrc e coloque as configurações específicas do usuário em

vimrc.joe

ou qualquer que seja o seu nome de login

informação relacionada