如何更改vim显示硬标签的方式

时间:2013-12-13 14:05:21

标签: vim

如何将vim显示标签设为4个空格? 我尝试使用set listset listchars进行游戏,但这只会更改代表该标签的8个字符。我想保留标签,但是它们需要4个空格而不是8个。这可能吗?

2 个答案:

答案 0 :(得分:5)

:h 'ts'
你会看到:

'tabstop' 'ts'      number  (default 8)
            local to buffer
    Number of spaces that a <Tab> in the file counts for.  Also see
    |:retab| command, and 'softtabstop' option.

    Note: Setting 'tabstop' to any other value than 8 can make your file
    appear wrong in many places (e.g., when printing it).

    There are four main ways to use tabs in Vim:
    1. Always keep 'tabstop' at 8, set 'softtabstop' and 'shiftwidth' to 4
       (or 3 or whatever you prefer) and use 'noexpandtab'.  Then Vim
       will use a mix of tabs and spaces, but typing <Tab> and <BS> will
       behave like a tab appears every 4 (or 3) characters.
    2. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use
       'expandtab'.  This way you will always insert spaces.  The
       formatting will never be messed up when 'tabstop' is changed.
    3. Set 'tabstop' and 'shiftwidth' to whatever you prefer and use a
       |modeline| to set these values when editing the file again.  Only
       works when using Vim to edit the file.
    4. Always set 'tabstop' and 'shiftwidth' to the same value, and
       'noexpandtab'.  This should then work (for initial indents only)
       for any tabstop setting that people use.  It might be nice to have
       tabs after the first non-blank inserted as spaces if you do this
       though.  Otherwise aligned comments will be wrong when 'tabstop' is


   changed.

答案 1 :(得分:2)

Tab字符的宽度由'tabstop'选项确定:

:set tabstop=4

请注意,将此值从默认值8更改可能会影响其他程序显示文件的方式,因此不鼓励使用。在这种情况下,更好地插入文字空格字符(通过:set expandtab)。