Comment mettre en retrait des espaces au lieu de tabuler?

21

Je code certains modèles html dans des fichiers JADE. Je veux indenter automatiquement le code avec des espaces au lieu de tabulation. J'ai essayé shiftwidth=2, tabstop=2mais peu importe quoi, ce sont toujours des retraits utilisant des tabulations au lieu de la barre d'espace, ce qui provoque la compilation des erreurs par la compilation JADE.

Comment mettre en retrait automatique de grandes sections de code en utilisant des espaces au lieu des tabulations?

John
la source

Réponses:

25

Vous recherchez l' expandtaboption. Lorsque cette option est définie, les espaces sont toujours utilisés. Vous pouvez set expandtabajouter votre vimrc pour que cette option soit toujours définie au démarrage de vim. Si vous ne souhaitez activer cette option que pour des langues spécifiques, consultez cette question . Pour obtenir de l'aide sur cette option, voir :help 'expandtab'.

Arbre à feuilles persistantes
la source
1
merci :set expandtabm'a permis d'utiliser des espaces au lieu des tabulations pour l'indentation
John
Est-il vrai que ça tsne sert à rien quand etc'est réglé?
iBug
@iBug Pas si vous créez le fichier vous-même, mais il peut être utile de le définir si vous modifiez des fichiers existants contenant des onglets. Voir vim.fandom.com/wiki/Indenting_source_code pour plus d'informations sur l'indentation, je l'ai trouvé beaucoup plus clair que les fichiers d'aide de vim.
EvergreenTree
22

Vous voulez expandtab.

Mais il y a généralement quelques options que vous souhaitez définir en même temps.

Si vous ajoutez ce qui suit à votre fichier ~ / .vimrc

" tabstop:          Width of tab character
" softtabstop:      Fine tunes the amount of white space to be added
" shiftwidth        Determines the amount of whitespace to add in normal mode
" expandtab:        When on uses space instead of tabs
set tabstop     =4
set softtabstop =4
set shiftwidth  =4
set expandtab

Vous pouvez également les exécuter manuellement à partir du mode normal en les procédant avec ':'

Martin York
la source