Réponses:
La meilleure méthode consiste à définir ces paramètres ~/.vim/after/ftplugin/<filetype>.vim
.
Pour HTML (en supposant que vous vouliez des onglets de 4 caractères):
~/.vim/after/ftplugin/html.vim
setlocal shiftwidth=4
setlocal softtabstop=4
setlocal noexpandtab
Il est préférable d'utiliser un ftplugin plutôt que d'utiliser des autocommandes car Vim effectue déjà des vérifications de type de fichier et tente déjà de trouver le ftplugin adéquat. Il n'y a donc aucune raison de forcer encore plus de vérifications et de réimplémenter la molette.
-- modifier --
En supposant que vous ayez filetype plugin on
dans vimrc
- ce que vous devriez - Vim essaiera de détecter le type de fichier des fichiers que vous éditez et, une fois que le type de fichier correct est trouvé et défini pour le tampon, essayez de trouver le ftplugin correspondant dans ces emplacements standard:
$VIMRUNTIME/ftplugin/html.vim
~/.vim/ftplugin/html.vim
~/.vim/ftplugin/after/html.vim
Tout cela se produit automatiquement, donc si votre type de fichier est reconnu par Vim, il n’ya aucune raison d’ajouter une logique de détection de type de fichier: ajoutez simplement vos paramètres au bon ftplugin et vous êtes bon.
filetype plugin indent on
dans votre vimrc
.
filetype plugin on
est défini, le chemin d'accès de vim inclut les fichiers ftplugin/<filetype>.vim
et after/ftplugin/<filetype>/vim
dans son chemin d'accès.
Vous pouvez le faire avec des autocommandes dans votre .vimrc
.
Par exemple, j'ai une fonction html_like_mode
qui configure diverses choses pour l'édition de fichiers HTML. Dans mon .vimrc
, j'ai:
au BufNewFile,BufRead *.html call s:html_like_mode()
C'est la clé de l'extension de fichier. Vous pouvez également désactiver le type de fichier, si cela est activé:
au FileType perl setlocal equalprg=perltidy
Comme vous pouvez le voir, vous pouvez le faire exécuter n’importe quelle commande. Donc, vous pouvez facilement faire un setlocal shiftwidth 4
pour vos fichiers * .c.
augroup
vous permet de regrouper les autocommandes associées dans des groupes nommés. (Voir ici pour en savoir plus sur les groupes de commandes automatiques.) Nous utilisons augroup
s pour ajouter des commandes automatiques de ~/.vimrc
manière à ne pas ajouter de doublons à chaque fois que nous les fournissons.
augroup vimrc
autocmd!
augroup END
autocmd vimrc FileType html setlocal shiftwidth=4 tabstop=4