~/.vimrc
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
tabstop
tabstop 的意思是,当 Vim 发现内容中有一个 <Tab>
的时候,显示的宽度为 4 个空格(也即 <Space>
),当然,那个的确是 <Tab>
而不是 4 个空格。
softtabstop
这个参数一般是默认是 0,如果修改了 tabstop
的话建议这一个值设置为和 tabstop
相同的值,表示当你输入一个 <Tab>
的时候 Vim 会自动变成对应的 <Tab>
和 <Space>
的组合,例如设置为 softtabstop = 7
但 tabstop = 4
的话,当输入一个 <Tab>
的时候会自动变成一个 <Tab>
和 3 个 <Space>
的组合。
expandtab
这个设置表示所有的 <Tab>
会被自动替换成对应的 <Space>
,如果你希望你的程序中没有真正的 <Tab>
,但是输入的时候还是通过按 <Tab>
来缩进,且希望所有的缩进显示为 4 个 <Space>
的话,可以使用以下组合:
:set tabstop=4
:set shiftwidth=4
:set expandtab
shiftwidth
这个需要和 expandtab
联合在一起使用,用来表示输入一个 <Tab>
的时候 Vim 会自动替换成多少个 <Space>
。