Quelqu'un pourrait-il m'expliquer simplement la manière la plus simple de modifier le comportement d'indentation de vim en fonction du type de fichier? Par exemple, si j'ouvre un fichier python, il indenterait avec 2 espaces, mais si j'ouvre powershell, il utiliserait 4 espaces.
Réponses
Trop de publicités?Vous pouvez ajouter .vim
fichiers à exécuter chaque fois que vim passe à un type de fichier particulier.
Par exemple, j'ai un fichier ~/.vim/after/ftplugin/html.vim
avec ce contenu:
setlocal shiftwidth=2
setlocal tabstop=2
Ce qui provoque vim utiliser les onglets avec une largeur de 2 caractères pour l'indentation ( noexpandtab
option est définie ailleurs dans le monde dans ma configuration).
Ce qui est décrit ici: http://vimdoc.sourceforge.net/htmldoc/usr_05.html#05.4, faites défiler jusqu'à la section sur le type de fichier plugins.
Utilisez ftplugins ou autocommands pour définir les options. (: h ftplugin pour plus d'informations)
Dans ~ / .vim / ftplugin / python.vim:
setlocal sw=2 sts=2 et
Et n'oubliez pas de les activer dans ~ / .vimrc
filetype plugin indent on
Ou dans ~ / .vimrc
au FileType python setl sw=2 sts=2 et
Je suggère également d'apprendre la différence entre «ts» et «m». Beaucoup de gens ne connaissent pas les «m».
Je travaille habituellement avec expandtab
set, mais c'est mauvais pour makefiles. J'ai récemment ajouté:
:autocmd FileType make set noexpandtab
à la fin de mon fichier .vimrc et il reconnaît Makefile, makefile, et * .mk comme makefiles et ne développe pas les onglets. Vraisemblablement, vous pouvez étendre cela.
Je suis toujours étonné par les gens qui changent la taille des onglets pour différents types de fichiers. Que diable faites-vous lorsque vous regardez un fichier en utilisant moins?
Personnellement, j'utilise ces paramètres dans .vimrc:
autocmd FileType python set tabstop=8|set shiftwidth=2|set expandtab
autocmd FileType ruby set tabstop=8|set shiftwidth=2|set expandtab