Well, if that information is truely useful and what you want to know, you can always
        :set list

Displays "^I" just fine, but trashes actual indentation, at least for me
(dunno if there's any magical 'vim' setting, like ":set keepindent" or
something).  Iow, I wanna be able to see

                                indented text...

and just see whether it's indented with spaces or tabs, not

        ^I^I^Iindented text...$

with everything squooshed to the left of the screen.

Now, maybe if there were a "show" character in list-mode, so it'd look
like

        >    >    >indented text

that'd work for me, too.

Looks like you want the "listchars" setting:

        :set listchars+=tab:>.

That will turn your above example into

      >...>...>.indented text

when you use ":set list". If there isn't a "tab" clause in your 'listchars' setting, it defaults to the standard "^I" that you see by default.

You can choose your characters to be anything[*] you like, and as they have their own syntax group, they should stand out and not get confused with "regular" characters. To duplicate your above, you want your listchars to be "> " (with the space), which you'd have to enter as ":set listchars+=tab:>\ " (with the escaping backslash before the space) or possibly

        :let &listchars=&listchars.'tab:> '

You can read more at

        :help 'listchars'

I personally find it horribly distracting 99.9% of the time, but for that 0.1% of the time that I find it useful, nothing compares to having the feature already available and just turning it on. :)

-tim

(okay...not quite anything, I tried setting it with

        :set listchars+=^I.

where ^I was a literal tab, and Vim choked on it...I suspect it's the same for other control characters, and perhaps other odd characters such as multi-byte characters or double-wide characters. But ASCII 0x20-0x7e should work fine. YMMV)

Reply via email to