Se 'exrc' for definido, o diretório atual será pesquisado por um arquivo chamado _vimrc
, .vimrc
ou _exrc
na inicialização . Isso não é feito toda vez que você :cd
para um novo diretório. Veja
:help .vimrc
Eu tenho alguns projetos que precisam de comandos diferentes para rodar, construir e testar, então eu coloquei um arquivo .vimrc em cada um dos diretórios do projeto que definem mapeamentos para alguns botões F. Nos arquivos de ajuda do vim, ele diz:
'exrc' 'ex' boolean (default off) global {not in Vi} Enables the reading of .vimrc, .exrc and .gvimrc in the current directory.
Portanto, eu tenho essa opção ativada, mas quando eu :cd
em um diretório, o arquivo .vimrc não é carregado. Se eu escrever :so .\.vimrc
, ele carrega bem. Por que não está sendo carregado automaticamente?
Estou usando o gVim 7.3 x64 para Windows.
Aqui está algo que você pode tentar:
autocmd BufEnter{,other event} {full path to file} {do blah}
E você colocaria isso em um grupo de comandos automático:
augroup {name you want here}
autocmd!
autocmd BufEnter{,other event} {full path to file} source {full path to vimrc file}
autocmd BufEnter{,other event} {full path to file} {define mapping here}
autocmd BufEnter{,other event} {full path to file} {do blah}
autocmd BufEnter{,other event} {full path to file} {do blah}
augroup END
Assim, você colocaria suas configurações aqui, dessa forma, se estiver em um buffer específico, esses mapeamentos serão carregados.
Eu também recomendo fazer alguns eventos BufLeave a fim de desfazer esses mapeamentos quando você não estiver nesses buffers, se quiser.
isso funcionaria para as suas necessidades? Eu não tenho certeza exatamente do que você precisa, então eu simplesmente fiz um modelo para você. :)
Como mostrei, você pode fazer isso de várias maneiras, e decidir qual é melhor para suas necessidades. Desculpe eu não estou realmente resolvendo o problema subjacente de que a configuração não está funcionando embora. : (
Apenas para registro, 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
.
Na minha opinião, essa é a melhor variante:
if getcwd() =~ '^\(/my/safe/dir1/\|/my/safe/dir2/\)'
set secure exrc
endif
Origem de: link mas sintaxe fixa