Vim est très pratique quand il s'agit de l'onglet Vs. l'espace des préférences. Si je comprends bien, l' tabstop
paramètre indique la largeur d'un caractère de tabulation. L' shiftwidth
paramètre spécifie le nombre de colonnes pour incrémenter/décrémenter lors de l'utilisation de la << et >> les commandes, tandis que l' softtabstop
paramètre a une incidence sur la quantité d'espaces à insérer lorsque vous appuyez sur l' Onglet de la clé en mode insertion. Si expandtab
est sur, la touche de tabulation insère softtabstop
nombre de caractères d'espacement. Alors qu'avec expandtab
éteint, en appuyant sur l' Onglet clés insère un nombre le plus petit possible d'onglet+espace de caractères qui correspond softtabstop
. (Corrigez-moi si je me trompe.)
Ce dernier point me fait me demander: est-il un cas pratique où vous ne voulez pas être shiftwidth == tabstop && tabstop == softtabstop
? Je ne peux pas penser à un. Pour autant que je suis concerné, il serait plus pratique si je pouvais tous les 3 de ces à la même valeur, en une seule mission. par exemple, en appelant:
:set stab=4
ce qui serait équivalent à l'exécution:
:set tabstop=4 softtabstop=4 shiftwidth=4
Quelqu'un peut-il suggérer comment cela pourrait être fait?
Mise à JOUR
Merci pour les réponses si loin de trop de php, hobbs et kaiser.se. Plutôt que de répondre à chacun individuellement, je suis à jour de la question.
Softtabstop avec expandtab éteint
Je l'ai dit ci-dessus qu'avec expandtab éteint, en appuyant sur la touche de Tabulation insère un nombre le plus petit possible d'onglet+espace de caractères qui correspond softtabstop
. Je m'en tiens à ça, mais je pense que j'ai besoin d'expliquer ce que je voulais dire. Je vais tenter de le faire par le moyen de quelques exemples. Pour suivre, exécutez :set list
, de sorte que vous pouvez voir les caractères de tabulation.
tabstop=4 softtabstop=2 shiftwidth=4 noexpandtab
En mode insertion, en appuyant sur la touche de tabulation des inserts de 2 caractères d'espace. Appuyez sur la touche tab une deuxième fois, et au lieu d'insérer deux plusieurs caractères espace (pour un total de 4 caractères d'espace), il remplace le précédent 2 places avec un caractère de tabulation. Tabstop est fixé à 4, de sorte qu'un seul caractère de tabulation a la même largeur que 4 espaces.
tabstop=4 softtabstop=6 shiftwidth=4 noexpandtab
En mode insertion, en appuyant sur la touche de tabulation insère 1 caractère de tabulation plus de 2 espaces. Le caractère de tabulation a une largeur de 4, de sorte que la largeur totale est de 6, et ceci est réalisé à l'aide de 3 caractères. En appuyant sur la touche tab une deuxième fois insère deux caractères de tabulation, et supprime les deux espaces qui ont été insérées précédemment. La largeur totale est de 12, et ceci est réalisé à l'aide de 3 caractères.
Dans ces deux exemples, Vim insère le nombre minimum de tab+espace de caractères qui correspond à softtabstop.
Si je travaille avec expandtab éteint, je ne me vois pas vouloir l'extra-granulaire de contrôle qui peut être atteint par la création de softtabstop à une valeur différente de tabulation. Il serait toujours utile pour moi d'être en mesure de fixer tabstop
, softtabstop
et shiftwidth
à la même valeur avec une seule commande.
Ne expandtab faire softtabstop redondant?
tabstop=4 softtabstop=0 shiftwidth=4 expandtab
En mode insertion, en appuyant sur la touche de tabulation des inserts de 4 espaces. En appuyant sur la touche suppr supprime un espace unique - donc, pour revenir en arrière 4 fois si vous appuyez sur la touche de tabulation par accident.
tabstop=4 softtabstop=4 shiftwidth=4 expandtab
En mode insertion, en appuyant sur la touche de tabulation des inserts de 4 espaces. En appuyant sur la touche retour arrière efface les 4 espaces.
Si je travaille avec des expandtab
allumé, je préfère la touche suppr pour supprimer la même quantité d'espace que la touche tab inserts. Donc dans ce cas, aussi, je pense qu'il serait utile d'être en mesure d'attribuer la même valeur à tabstop
, softtabstop
et shiftwidth
simultanément.
Un raccourci serait toujours utile
C'est génial que Vim offre beaucoup de flexibilité, mais je ne peux pas voir moi-même qui en ont besoin. Je veux juste être en mesure de choisir la largeur d'un onglet, et si c'est un " dur "de l'onglet (à l'aide d'un caractère de tabulation) ou un "soft" de l'onglet (faite d'espaces). Le basculement entre hard et soft tabs est assez facile (:set expandtab!
), mais je voudrais qu'il était plus simple de définir la largeur de l'onglet, sans avoir à jouer avec 3 différents paramètres.
Donc, ma suggestion pour quelque chose comme :set stab=4
sonne toujours bon pour moi.