Qualquer maneira de fornecer um arquivo vimrc separado apenas por 1 sessão

5

Eu gostaria de saber se existe uma maneira no vim / vi de fornecer um arquivo vimrc diferente. Eu estou olhando para gerenciar 2 arquivos vimrc diferentes. Para o conteúdo que eu checkout / checkin no controle de versão eu quero usar um conjunto diferente de comandos e não o normal no meu arquivo .vimrc

Por exemplo.

Meu arquivo .vimrc contém um comando para excluir automaticamente qualquer espaço ao salvar um arquivo. Mas não quero que esse recurso seja ativado para arquivos específicos.

Então, qualquer maneira de fornecer um arquivo vimrc diferente (talvez na linha de comando, dando-o como parâmetro cada vez que vim --vimrc = algum arquivo para abrir)?

    
por mtk 28.03.2014 / 11:29

3 respostas

7

Veja a manpage:

-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.

    
por 28.03.2014 / 11:39
10

So any way to provide a different vimrc file ( maybe at command line, giving it as parameter each time as vim --vimrc=somefile file-to-open) ?

Sim, use o parâmetro -u :

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.

My .vimrc file contains a command to automatically delete any trailing space while saving a file. But, I don't want this feature to be activated for specific files.

Existe uma solução diferente se você precisar de tratamento especial para alguns tipos de arquivos conhecidos; use o comando autocmd no 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 comando autocmd ):

" mapping of filenames to filetypes
au FileReadPost,BufReadPost,BufNewFile /etc/freeradius/* setl ft=freerad
au FileReadPost,BufReadPost,BufNewFile *.xt              setl ft=xt
    
por 28.03.2014 / 11:39
1

Você também pode set exrc em seu .vimrc principal para fazer o vim carregar um .vimrc do diretório atual automaticamente.

    
por 28.03.2014 / 12:50

Tags