Eu tenho alguns projetos que precisam de comandos diferentes para executar, criar e testar, então coloquei um arquivo .vimrc em cada um dos diretórios do projeto que definem os mapeamentos para alguns botões F. Nos arquivos de ajuda do vim, diz:
'exrc' 'ex' booleano (padrão desativado) global {não no Vi} Permite a leitura de .vimrc, .exrc e .gvimrc no atual diretório.
Portanto, tenho essa opção ativada, mas quando estou :cd
em um diretório, o arquivo .vimrc não é carregado. Se eu escrever :so .\.vimrc
, ele carrega bem. Por que ele não está sendo carregado automaticamente?
Estou usando o gVim 7.3 x64 para Windows.
.vimrc
arquivo do diretório atual é uma péssima idéia. Esse arquivo pode facilmente pertencer a um arquivo que você baixou e, automaticamente, fornecê-lo permitiria que quem criou esse arquivo executasse código arbitrário no seu computador.set exrc
nunca funcionou para mim. Você pode tentar este plugin . Provavelmente existem outros no vim.org.Respostas:
Se 'exrc' é definido, o diretório atual é pesquisada por um arquivo chamado
_vimrc
,.vimrc
ou_exrc
na inicialização . Isso não é feito toda vez que você entra:cd
em um novo diretório. Vejofonte
exrc
completamente a coisa. Google aqui estou eu:help
entradas paraargv()
efnamemodify()
. Eu escrevi um plug-in para isso, que examina o caminho de cada arquivo quando ele é aberto e fornece um arquivo dependente de projeto de configurações locais de buffer.Aqui está algo que você pode tentar:
E você colocaria isso em um grupo de comando automático:
Então você colocaria suas configurações aqui, desta maneira, se você estiver em um buffer específico, esses mapeamentos serão carregados.
Também recomendo a realização de alguns eventos BufLeave para desabilitar esses mapeamentos quando você não estiver nesses buffers, se desejar.
isso funcionaria para as suas necessidades? Não tenho certeza exatamente do que você precisa, então simplesmente criei um modelo para você. :)
Como mostrei, você pode fazê-lo de várias maneiras e decidir o que é melhor para suas necessidades. Desculpe, na verdade, não estou resolvendo o problema subjacente dessa configuração. :(
fonte
exrc
não está funcionando como anunciado. Entendi mal o que significa a opção?set exrc
no seu arquivo .vimrc real? Além disso, em vez de um arquivo .vimrc, você sabia que também pode usar um arquivo .exrc para essas personalizações?Na versão 8.1 ^ do vim, há um evento autocmd chamado DirChanged que você pode usar para avaliar o seu projeto específico
.vimrc
. Aqui está mais detalhes sobre quando este evento é acionado:Exemplo de trabalho
Não sou especialista em vim-script, mas criei a seguinte função que carrega meu
.vimrc
arquivo específico do projeto , uma vez que eu entreicd
na pasta do projeto. Após esta função no seu~/.vimrc
arquivo principal .fonte
Apenas para constar, o que acabei fazendo foi criar um atalho para cada um dos meus projetos e carregar um arquivo de configuração específico do projeto como um arquivo de sessão usando
-S session.vim
.fonte
Na minha opinião, esta é a melhor variante:
Fonte: http://vim.wikia.com/wiki/Open_vimrc_file, mas sintaxe corrigida
fonte