Eu gostaria de modificar meu .vimrc
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 nosso .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, assim:
let whoami = "user2"
if whoami == "user1"
...
Depois de verificar o nosso comum .vimrc
fora do controle de origem, cada um de nós tem que mudar o 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á o valor dessa variável.
Talvez outro ângulo sobre isso seja: O vim vai ler automaticamente todos os arquivos da minha .vim
diretório? Em caso afirmativo, cada um 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.
let whoami = ""
logo antes dosource
linha, de modo que, se não conseguir carregar o arquivo externo, a variável existe e recebo a mensagem de erro que havíamos configurado anteriormente para a variável não sendo definida.silent! source
partePara responder a última pergunta, os arquivos em
~/.vim
não são automaticamente carregados, mas todos os arquivos~/.vim/plugin
está.fonte
after
,autoload
)Usando um try / catch
Desde que fiz esta pergunta, eu criei 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
try/catch
para carregar o arquivo externo; se não houver tal arquivo, eu deixo falhar silenciosamente.fonte
Você pode fazer com que seu ~ / .vimrc carregue outro arquivo usando o
:source
comando. Por exemplo, cada um poderia colocar seus comandos exclusivos em ~ / .myvimrc e carregar esses comandos comOu, como você estava pensando, cada um poderia colocar seu nome nesse arquivo assim:
e depois coloque isso no seu ~ / .vimrc:
Em vez de colocar seus nomes em arquivos, você poderia usar $ USER como akira sugerido ou definido
user
usandowhoami
, como isso:A função substitute () é necessária porque a saída de system () geralmente tem um '\ n' no final.
fonte
whoami
não funciona no windowswhoami
gera um novo processo, quando você abre seu editor, ele deve ser rápido e não (inútil) fazer o trabalho várias vezes novamente.o nome do usuário que efetuou login está disponível na variável de ambiente $ USER. você pode acessar essa variável facilmente:
então, basta usar
no seu vimrc e colocar suas configurações específicas do usuário em
ou seja qual for o seu nome de login é
fonte
Eu não tenho certeza do seu vimrc, então isso pode não ser viável, mas se houver partes grandes que você e seu amigo compartilham, você pode querer separá-los em plugins separados. Você pode adicionar arquivos ao
~/.vim/plugin
diretório para que eles sejam carregados na inicialização. (Eles são carregados em ordem alfabética - use:scriptnames
checar.)Dessa forma, cada um de vocês pode ter um vimrc que é completamente único, mas todas as suas configurações comuns estão em plugins. Se você dividi-los logicamente, isso torna mais fácil compartilhar com os outros também.
fonte