La respuesta básica es :set list, lo que hace que las pestañas se muestren como ^I.
Sin embargo, recomiendo ir más allá de eso. Simplemente :set listes problemático porque no puede preservar la alineación visual en la pantalla. Por ejemplo:
%.o: %.cpp
^Ig++ -c $<
no se ve bien, especialmente cuando esperas que aparezca gof g++debajo del primero pde cpp(suponiendo tabstop=8).
Por lo tanto, le sugiero que .vimrcponga algo como :set listchars=tab:␉· (Para ser claros, ese es el carácter Unicode U + 2409 SÍMBOLO PARA TABULACIÓN HORIZONTAL seguido de U + 00B7 PUNTO MEDIO ).
Como se explica en :help listchars, una configuración de dos caracteres para que se tab:xymantenga la alineación visual:
tab:xy Two characters to be used to show a tab. The first
char is used once. The second char is repeated to
fill the space that the tab normally occupies.
"tab:>-" will show a tab that takes four spaces as
">---". When omitted, a tab is show as ^I.
El ejemplo anterior aparecería en la pantalla como:
%.o: %.cpp
␉·······g++ -c $<
Personalmente, hago todo lo posible con mi listchars:
:set listchars=eol:⏎,tab:␉·,trail:␠,nbsp:⎵
Estos caracteres son lo suficientemente distintivos que rara vez aparecen literalmente en el texto del documento.
Para escribir estos caracteres especiales en su vimrc, escriba Ctrl-vu23CEmientras está en Modo Insertar, como se explica en :help utf-8-typing.
retabcada vez que guarde el archivo.