
Eu gostaria de saber se existe uma maneira no vim/vi de fornecer um arquivo vimrc diferente. Estou pensando em gerenciar 2 arquivos vimrc diferentes. Para o conteúdo que faço checkout/checkin no controle de versão, quero usar um conjunto diferente de comandos e não o normal em meu .vimrc
arquivo
Por exemplo.
Meu .vimrc
arquivo contém um comando para excluir automaticamente qualquer espaço à direita ao salvar um arquivo. Porém, não quero que esse recurso seja ativado para arquivos específicos.
Então, alguma maneira de fornecer um arquivo vimrc diferente (talvez na linha de comando, fornecendo-o como parâmetro sempre que vim --vimrc=somefile file-to-open)?
Responder1
Veja a página de manual:
-u {vimrc} Use os comandos do arquivo {vimrc} para inicializações. Todas as outras inicializações são ignoradas. Use isto para editar um tipo especial de arquivo. Também pode ser usado para pular todas as inicializações, dando o nome "NONE". Consulte ":help inicialização" no vim para obter mais detalhes.
Responder2
Então, alguma maneira de fornecer um arquivo vimrc diferente (talvez na linha de comando, fornecendo-o como parâmetro sempre que vim --vimrc=somefile file-to-open)?
Sim, use o -u
parâmetro:
vim -u ~/.my-custom-vimrc
De man vim
:
-u {vimrc} Use the commands in the file {vimrc} for initializations.
All the other initializations are skipped. Use this to
edit a special kind of files. It can also be used to skip
all initializations by giving the name "NONE". See ":help
initialization" within vim for more details.
Meu arquivo .vimrc contém um comando para excluir automaticamente qualquer espaço à direita ao salvar um arquivo. Porém, não quero que esse recurso seja ativado para arquivos específicos.
Existe uma solução diferente se você precisar de tratamento especial para alguns tipos de arquivos conhecidos; use o autocmd
comando em seu vimrc. Por exemplo, esta é minha configuração dependente do tipo de arquivo:
" Mapping of filetypes to options
au FileType freerad setl noexpandtab sts=0 sw=8
au FileType make setl noexpandtab sts=0
au FileType php let php_sql_query=1
au FileType php let php_htmlInStrings=1
au FileType python setl shiftwidth=2 expandtab
au FileType sql setl noexpandtab sts=0 sw=8
" global options I do not want any filetype to override
au FileType * setl formatoptions-=ro " don't continue comments
Se você precisar aplicar opções a algo que o vim não atribui automaticamente a um determinado tipo de arquivo, você pode adicionar seu próprio mapeamento (faça isso antes de usar o autocmd
comando):
" mapping of filenames to filetypes
au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad
au FileReadPost,BufReadPost,BufNewFile *.xt setl ft=xt
Responder3
Você também pode, set exrc
em seu .vimrc principal, fazer com que o vim carregue um .vimrc do diretório atual automaticamente.
Responder4
Se você armazenar seu diretório de configuração do Vim no Git (espero que sim) - você pode usar diferentes ramificações e fazer check-out entre elas.