Dans mon .vimrc J'ai un paramètre de tabulation générique de deux espaces, et j'aimerais le remplacer par un paramètre de base par langue (c'est-à-dire quatre pour Python, etc., sinon j'utilise le paramètre par défaut), mais j'ai du mal à trouver un bon exemple.
Réponses
Trop de publicités?Ces autres réponses semblent bien trop complexes. Au lieu de vous embrouiller avec encore plus de répertoires et de fichiers dans votre arbre ~/.vim, ajoutez simplement ce qui suit à votre ~/.vimrc.
autocmd Filetype python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4
(vous pouvez être l33t et abréger les paramètres en et ts=4 sw=4 sts=4
). J'ai trouvé ceci dans Configuration des préférences d'espacement de Vim par type de fichier
Il suffit de mettre les paramètres dans le fichier du plugin filetype ~/.vim/ftplugin/LANGUAGE.vim . Mon ~/.vim/ftplugin/perl.vim contient les lignes :
"
" ---------- tabulator / shiftwidth --------------------
" Set tabulator and shift width to 4 (Perl Style Guide)
"
setlocal tabstop=4
setlocal shiftwidth=4
"
Ces paramètres seront automatiquement appliqués pour chaque fichier de type "perl" (nouveau ou existant). (nouveau ou existant).
Ma réponse est basée sur ce conseil sur le VIM Wiki. Cette réponse utilise le répertoire "after" afin que vous n'ayez pas à manipuler les fichiers de plugins fournis pour les différents types de fichiers.
Par exemple, pour spécifier des paramètres personnalisés pour les fichiers Python, créez un fichier appelé python.vim
pour contenir vos paramètres Python :
setlocal expandtab
setlocal shiftwidth=4
setlocal softtabstop=4
Placez ce fichier dans l'un des deux endroits suivants
-
~/.vim/after/ftplugin
(Linux) -
$HOME/vimfiles/after/ftplugin
(Windows)
Et enfin, vous devez avoir ceci dans votre .vimrc
(Linux) ou _vimrc
(Windows) :
filetype plugin indent on
En général, il s'agit de configurer un fichier spécial de type vimrc avec les paramètres d'une langue particulière, puis d'utiliser des autocommandes dans votre fichier .vimrc principal pour exécuter le vimrc spécial lorsque cela est nécessaire. Voici ma configuration pour Haskell ( .hs
etc.) :
autocmd! BufNewFile,BufReadPre,FileReadPre *.hs so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre *.hsc so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre *.lhs so ~/.vim/haskell.vim
autocmd! BufNewFile,BufReadPre,FileReadPre *.cabal so ~/.vim/haskell.vim
Mon ~/.vim/haskell.vim
fait des choses comme "set expandtab" pour utiliser les espaces au lieu des tabulations, et toutes sortes d'autres magies pour le formatage et des choses comme ça. Vous pouvez souvent télécharger de bonnes versions de ces outils pour diverses langues à partir de http://vim.org et d'autres sites.
Notez que vous pouvez faire beaucoup plus que simplement modifier les paramètres de vim. Par exemple, vous pouvez faire passer le fichier par un filtre avant et après l'édition :
" Edit gpg-encrypted ascii-armoured files
autocmd! BufReadPre,FileReadPre *.asc set bin
autocmd BufReadPost,FileReadPost *.asc '[,']!gpg -q -d
autocmd BufReadPost,FileReadPost *.asc set nobin
autocmd! BufWritePre,FileWritePre *.asc set bin
autocmd BufWritePre,FileWritePre *.asc '[,']!gpg -e
autocmd BufWritePost,FileWritePost *.asc undo
autocmd BufWritePost,FileWritePost *.asc set nobin
J'utilise le configuration de l'éditeur et d'ajouter un fichier .editorconfig à tous mes projets - il vous permettra de définir différents paramètres d'indentation pour différents projets utilisant le même langage de programmation, ce qui peut être utile car souvent différents projets dans le même langage ont des normes de codage différentes.
Vous trouverez ici un exemple des types de configuration que vous pouvez définir : http://editorconfig.org/