Tout d'abord, n'utilisez pas la Tabclé dans Vim pour une indentation manuelle. Vim dispose d'une paire de commandes en mode insertion pour augmenter ou diminuer manuellement la quantité d'indentation. Ces commandes sont Ctrl-Tet Ctrl-D. Ces commandes respectent les valeurs de tabstop
, shiftwidth
et expandtab
, et à maintenir le mélange correct des espaces et des pattes (nombre maximal de languettes suivie d'un nombre quelconque d'espaces nécessaires).
Deuxièmement, ces touches de mise en retrait manuelle ne doivent de toute façon pas être très utilisées si vous utilisez la mise en retrait automatique.
Si Ctrl-Tau lieu de Tabvous déranger, vous pouvez le remapper:
:imap <Tab> ^T
Vous pouvez également remapper Shift-Tabpour faire le Ctrl-Ddéindent:
:imap <S-Tab> ^D
Ici, ^ T et ^ D sont des caractères de contrôle littéraux qui peuvent être insérés en tant que Ctrl-VCtrl-T.
Avec ce mappage en place, vous pouvez toujours taper Tab littéral dans le tampon en utilisant Ctrl-VTab. Notez que si vous faites cela, même s'il :set expandtab
est activé, vous obtenez un caractère de tabulation non développé.
Un effet similaire à la <Tab>
carte est obtenu à l'aide de :set smarttab
, ce qui entraîne également un retour en arrière intelligent à l'avant d'une ligne.
En smarttab
mode, lorsqu'il Tabn'est pas utilisé en début de ligne, il n'a pas de signification particulière. C'est différent de ma carte ci - dessus Tabà Ctrl-T, parce que Ctrl-Tpartout utilisé dans une ligne (en mode d'insertion) augmentera l'empreinte de cette ligne.
D'autres mappages utiles peuvent être:
:map <Tab> >
:map <S-Tab> <
Maintenant, nous pouvons faire des choses comme sélectionner certaines lignes et appuyer Tabpour les mettre en retrait. Ou appuyez Tabdeux fois sur une ligne (en mode commande) pour augmenter son retrait.
Si vous utilisez les commandes appropriées de gestion de retrait, alors tout est contrôlé par les trois paramètres: shiftwidth
, tabstop
et expandtab
.
Le shiftwidth
paramètre contrôle votre taille d'indentation; si vous voulez quatre retraits d'espace, utilisez :set shiftwidth=4
ou l'abréviation :set sw=4
.
Si seulement cela est fait, une indentation sera créée en utilisant un mélange d'espaces et de tabulations, car noexpandtab
c'est la valeur par défaut. Utilisez :set expandtab
. Cela provoque les caractères de tabulation que vous saisissez dans le tampon à se développer dans des espaces et à l'indentation gérée par Vim d'utiliser uniquement des espaces.
Quand expandtab
est activé, et si vous gérez votre indentation à travers tous les mécanismes Vim appropriés, la valeur de tabstop
devient non pertinente. Il contrôle l'apparence des onglets s'ils se produisent dans le fichier. Si vous avez set tabstop=8 expandtab
puis glissez un onglet dur dans le fichier en utilisant Ctrl-VTab, cela produira un alignement sur la position de tabulation à 8 colonnes suivante, comme d'habitude.