Réponse unifiée:
Si vous utilisez des onglets
J'essaierais d'utiliser des listchars:
:set listchars=tab:\|\
:set list
remarque: il y a un espace après le dernier \
ci-dessus.
Cette méthode est bonne car elle utilise le support intégré de Vim pour montrer ce genre de chose.
Exemple de sortie:
| if (1) {
| | func();
| }
Cependant, cela ne fonctionne pas pour les espaces de début. Comme l'a souligné @Josh Petrie, il existe un correctif pour les espaces , mais vous devrez alors recompiler Vim, ce qui dépasse le cadre de cette réponse.
Si vous utilisez des espaces et que cela ne vous dérange pas d'utiliser un plugin
Vaibhav Sagar indique que le plugin indentLine exécute cette fonctionnalité.
Installez-le normalement (voir installer des plugins ) et cela semble fonctionner comme par magie sans autre intervention. Si les barres ASCII ne vous dérangent pas, vous n'avez rien à faire avec vos polices. Exemple de sortie de votre exemple après avoir défini vos paramètres d'indentation et exécuté:IndentLinesReset
45 ¦ var move = function(direction) {
46 ¦ ¦ if(!initialized) { initialize(); }
47
48 ¦ ¦ if(shiftBoard(direction)) {
49 ¦ ¦ ¦ setTimeout(addRandomPiece, 100);
50 ¦ ¦ }
51 ¦ };
Le plugin nécessite Vim 7.3 ou une version ultérieure et permet à Cleaver d’utiliser la fonctionnalité Dissimulation de cette version. Au lieu de masquer du texte, il remplace le texte par des barres dans la vue, mais pas le tampon réel. Le résultat est que vous voyez les barres mais elles ne sont pas enregistrées dans le fichier (car ce sont en fait des espaces)
Caveat
Ces deux méthodes supposent du code "correctement" mis en retrait. Ils ne placent pas les lignes d'indentation au niveau d'indentation lorsqu'un "bloc" est ouvert (ce que le sublime semble faire), mais placent des lignes à intervalles réguliers en fonction de vos paramètres d'indentation. De plus, il ne montre que les barres sur les lignes où il y a réellement un espace (c'est pourquoi la ligne dans la sortie vim sous la première if
n'a pas de barres, ce qui crée un espace visuel)