J'ai installé vundle hier et depuis que je l'ai fait, la largeur de tabulation que j'ai configurée dans mon vimrc est ignorée et remise à 4 au lieu de 2.
J'ai découvert que la ligne suivante après le paragraphe vundle le provoque:
filetype plugin indent on
Mon retrait est configuré comme ceci:
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
Vous pouvez consulter mon vimrc complet ici .
J'ai testé le problème d'indentation en utilisant un script python (où l'indentation est vraiment importante).
J'ai déjà essayé de passer filetype plugin indent on
à filetype plugin on
mais cela ne change rien. Seul le fait de commenter cette ligne aide.
Maintenant, le guide d'installation de vundle indique que cette ligne est requise.
Comment résoudre ce problème de retrait? Puis-je simplement supprimer la ligne de type de fichier ou est-il vraiment obligatoire de la conserver dans le vimrc?
Solution:
Grâce à @ChristianBrabandt et @romainl, j'ai maintenant trouvé une solution qui peut également résider dans un seul fichier 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
la source
Réponses:
Tout d'abord; la ligne ci-dessous n'a absolument rien à voir avec Vundle ou la gestion des plugins:
Cette commande fait trois choses:
Cette ligne est là parce que certains gestionnaires de plugins doivent s'assurer que la détection de type de fichier est désactivée avant de faire leur magie et utiliser Vim pour la programmation serait beaucoup plus difficile sans ftplugins et sans indentation appropriée. À mon avis, ils devraient simplement gérer la détection de type de fichier en interne, mais bien…
Quoi qu'il en soit, votre problème est dû à des plugins ft trop possessifs qui remplacent vos paramètres d'indentation par les leurs. Le ftplugin python est le coupable le plus courant car il a été décidé il n'y a pas longtemps qu'il devait appliquer PEP8.
La solution la plus simple consisterait à éviter de se procurer complètement des plugins ftp:
mais ils viennent généralement avec des trucs utiles, donc cette méthode n'est pas vraiment recommandée.
La solution la plus propre est de laisser la
filetype
ligne dans son état "optimal":et remplacez leurs remplacements par les vôtres
after/ftplugin/python.vim
:Remarques:
smartindent
car ce n'est pas si intelligent au début et de toute façon déconseillé par les scripts de retrait spécifiques au type de fichier.:execute
commandes par des:let
commandes plus propres pour éviter une concaténation inutile.la source
shiftwidth
à zéro etsofttabstop
à -1, il suivra le paramètre tabstop.Le problème d'indentation vient du ftplugin, qui charge un fichier .vim
/usr/share/vim/vim-version-/ftplugin/-filetype-.vim
qui remplace tout ce que vous avez dans votre.vimrc
fichier. vous pouvez savoir où se trouve ce fichier en exécutant la commande suivante dans vim:verbose set tabstop?
. La sortie vous dirigera vers le fichier qui remplace votre configuration.Dans mon cas, j'avais des problèmes avec ma configuration d'indentation python.
Un moyen simple de résoudre ce problème consiste à procéder comme suit:
Créez un dossier .vim dans votre dossier d'accueil (si vous ne l'avez pas)
Ajoutez ce qui suit:
Modifiez ce que vous voulez dans la commande. Le mien ressemble à ça parce que je travaille avec des tabulations au lieu d'espaces.
la source