Instalei o vundle ontem e, desde que o fiz, a largura de tabulação que configurei no meu vimrc é ignorada e definida como 4 em vez de 2.
Eu descobri que a seguinte linha após o parágrafo do vundle está causando isso:
filetype plugin indent on
Meu recuo é configurado assim:
set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround " Round indent to multiple of 'shiftwidth'
set smartindent " Do smart indenting when starting a new line
set autoindent " Copy indent from current line, over to the new line
" Set the tab width
let s:tabwidth=2
exec 'set tabstop=' .s:tabwidth
exec 'set shiftwidth=' .s:tabwidth
exec 'set softtabstop='.s:tabwidth
Você pode conferir meu vimrc completo aqui .
Testei o problema do recuo usando um script python (onde o recuo realmente importa).
Eu já tentei mudar filetype plugin indent on
para, filetype plugin on
mas isso não muda nada. Apenas comentar essa linha ajuda.
Agora, o guia de instalação do vundle diz que esta linha é necessária.
Como corrijo esse problema de recuo? Posso simplesmente omitir a linha de tipo de arquivo ou é realmente obrigatório mantê-la no vimrc?
Solução:
Graças a @ChristianBrabandt e @romainl, agora encontrei uma solução que também pode residir em um único arquivo vimrc:
filetype plugin indent on
[...]
set noexpandtab " Make sure that every file uses real tabs, not spaces
set shiftround " Round indent to multiple of 'shiftwidth'
set autoindent " Copy indent from current line, over to the new line
" Set the tab width
let s:tabwidth=2
au Filetype * let &l:tabstop = s:tabwidth
au Filetype * let &l:shiftwidth = s:tabwidth
au Filetype * let &l:softtabstop = s:tabwidth
fonte
Respostas:
Primeiras coisas primeiro; a linha abaixo não tem absolutamente nada a ver com o Vundle ou com o gerenciamento de plugins:
Esse comando faz três coisas:
Essa linha existe porque alguns gerenciadores de plugins precisam garantir que a detecção de tipo de arquivo seja desativada antes de fazer sua mágica e o uso do Vim para programação seria muito mais difícil sem plug-ins e recuo adequado. É minha opinião que eles deveriam simplesmente lidar com a detecção de tipos de arquivos internamente, mas bem…
De qualquer forma, seu problema é causado por plug-ins excessivamente possessivos que substituem as configurações de indentação pelas deles. O python ftplugin é o culpado mais comum, porque foi decidido há pouco tempo que deveria aplicar o PEP8.
A saída mais fácil seria evitar o fornecimento completo de ftplugins:
mas eles geralmente vêm com coisas úteis, para que esse método não seja realmente recomendado.
A solução mais limpa é deixar a
filetype
linha em seu estado "ideal":e substitua as substituições deles pelas suas
after/ftplugin/python.vim
:Notas:
smartindent
porque não é tão inteligente assim e descontinuado pelos scripts de recuo específicos do tipo de arquivo.:execute
comandos por:let
comandos mais limpos para evitar concatenações desnecessárias.fonte
shiftwidth
zero esofttabstop
-1, seguirá a configuração tabstop.O problema do recuo vem do ftplugin, que carrega um arquivo .vim
/usr/share/vim/vim-version-/ftplugin/-filetype-.vim
que substitui o que você tem no seu.vimrc
arquivo. você pode descobrir onde está esse arquivo executando o seguinte comando no vim:verbose set tabstop?
. A saída apontará para o arquivo que está substituindo sua configuração.No meu caso, eu estava tendo problemas com minha configuração de indentação python.
Uma maneira fácil de resolver isso é fazer o seguinte:
Crie uma pasta .vim na sua pasta pessoal (se você não a tiver)
Adicione o seguinte:
Modifique o que você quiser no comando. O meu fica assim porque trabalho com guias em vez de espaços em branco.
fonte