2010-05-07 7 views
4

Dans mon .gvimrc j'ai lignes suivantes:Comment montrer le caractère de tabulation sous réglage expandtab dans vim

set listchars=tab:\.\ ,trail:- 
set softtabstop=2 
set shiftwidth=2 
set tabstop=2 
set expandtab 

Quand je change la dernière ligne à set noexpandtab les tirets sont visibles et marqués par .

Est il ya un moyen de faire vim traiter les onglets étendus comme onglet "normal" de sorte que l'option list fonctionne comme prévu?

Répondre

2

L'option de liste fonctionne correctement. Il affiche les caractères de tabulation en fonction du paramètre de l'onglet 'listchars'. Il semble que vous confondiez «tabulation» avec «niveau d'indentation». Non, 'list' n'est pas conçu pour marquer distinctement les différents niveaux d'indentation.

1

Vous ne pouvez pas les voir car les onglets sont convertis en espaces. Vous pouvez convertir des espaces en onglets en émettant :retab!

+0

probablement vouloir ':% retab!', Qui convertit le fichier entier au lieu d'une seule ligne. –

+1

@MuMind Non. La plage par défaut de la commande 'retab' est le fichier entier. – Tassos

+0

Oh ouais, c'est comme ça. Je pourrais jurer avoir vu un comportement différent avant ... –

1

Autant que je peux voir, vous souhaitez mettre en évidence l'indentation. C'est possible en utilisant la surbrillance de match. S'il vous plaît, jetez un oeil à mon answer à l'question sur l'émulation des guides d'indentation.

1

Les options standard de vim impliquant ces caractères ne feront pas l'affaire avec expandtab set. Vous devrez soit ne pas marquer les onglets étendus, utiliser de véritables onglets, ou faire du piratage!