Gostaria de modificar meu .vimrc
para 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 .vim
arquivos, 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 .vimrc
controle comum fora do código-fonte, cada um de nós precisa alterar a let whoami
atribuiçã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 .vim
diretó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/catch
para 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 ~/.vim
não são carregados automaticamente, mas todos os arquivos ~/.vim/plugin
sã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