1. 设定 tab 的位置

1
:set tabstop=4

2. 输入 tab 时自动将其转化为空格

1
:set expandtab

如果此时需要输入真正的 tab,则输入 Ctrl+V, tab,在 Windows 下是 Ctrl+Q, tab

3. 将已存在的 tab 都转化为空格

1
:retab

4. 设定编辑模式下 tab 的视在宽度

1
:set softtabstop

这不改变 tabstop,但让编辑的时候 tab 看起来是指定的宽度,输入 tab 时会插入的 tab 和空格的混合,比如 tabstop=4,softtabstop=10,那么插入 tab 时会将光标移动 10 个字符,可能会是两个 tab 加两个空格,这对 backspace 也有效。

5. 解决 shiftwidth 和 tabstop 不等时的麻烦

1
:set smarttab

在行首输入 tab 时插入宽度为 shiftwidth 的空白,在其他地方按 tabstop 和 softtabstop 处理

6. 将 tab 显示为可见字符

1
:set list listchars=tab:>-

tab 将被显示为 >—- 的形式

7. 只在编辑特定类型的文件时展开tab

将如下代码加入 ~/.vimrc

1
2
autocmd FileType * set tabstop=4|set shiftwidth=4|set noexpandtab
autocmd FileType python set tabstop=4|set shiftwidth=4|set expandtab

原文链接:Vim Tab使用技巧