Dans mon travail, je suis obligé de suivre le style de la maison pour l'indentation, qui va comme suit:
Quelle est la meilleure façon de spécifier différentes préférences d'espace blanc par type de fichier?
il existe de nombreuses façons, mais voici une méthode simple et facile à comprendre. ajoutez ces lignes à votre ~/.vimrc
:
autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType Ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4
La réponse de Peter est assez simple, mais malheureusement, les options ne sont pas bonnes. Vous devez plutôt utiliser les options suivantes:
autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype Ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab
Notez également:
:set list
.:retab!
commande.+1 à la réponse de Peter, mais Vim propose également une autre solution. Si vous voulez faire quelque chose de plus compliqué qu'un seul setlocal
, comme configurer tout un tas d'options, de commandes et de mappages à la fois, alors la fonction de plugin de type de fichier de vim vient à la rescousse.
Vous devez avoir filetype plugin on
ou filetype plugin indent on
dans votre .vimrc
, puis pour créer un plugin pour par exemple Ruby vous pouvez créer ~/.vim/ftplugin/Ruby.vim
. Techniquement, vous pouvez utiliser toutes les commandes que vous aimez ici, à exécuter lorsqu'un fichier Ruby est chargé, mais les recommandations incluent setlocal
, map <buffer>
, command -buffer
et la définition des fonctions. Beaucoup plus d'informations sont dans le Guide de l'utilisateur; si vous connaissez assez bien le script vim, passez à :help 41.11
, sinon lire :help usr_40
et :help usr_41
.
Il y a aussi un script Nice vim: DetectIndent qui essaie de détecter l'indentation d'un fichier que vous ouvrez. C'est très pratique si vous travaillez avec de nombreux fichiers avec un style de codage différent.
J'utilise une autocommande dans mon . Vimrc :
:autocmd BufReadPost * :DetectIndent
Pour insérer des caractères d'espace chaque fois que vous appuyez sur la touche de tabulation, définissez l'option 'expandtab':
:set expandtab
L'étape suivante consiste à contrôler le nombre de caractères d'espace qui seront insérés lorsque vous appuyez sur la touche de tabulation, définissez l'option 'tabstop'. Par exemple, pour insérer 2 espaces pour un onglet, utilisez:
:set tabstop=2