Vim 的 tab 设置

摘自 Vim 手册:

 

选项
1. tabstop:表示一个 tab 显示出来是多少个空格,默认 8
2. softtabstop:在编辑的时候(比如按退格或 tab 键)一个 tab 是多少个空格(有点不好理解。。。我也没完全弄明白)
3. expandtab/noexpandtab:将 tab 扩展/不扩展成空格
4. shiftwidth:每一级缩进是多少个空格
5. smarttab:根据文件中其他地方的缩进空格个数来确定一个 tab 是多少个空格

 

命令
:[range]retab [new_tabstop]:应用新的 tabstop 值,替换所有的 tab,如果设置了expandtab,还会把文件中 tab 都替换成空格。

 

几种常见用法

 

1. 保留 tab。让 tabstop 保持默认,将 softtabstop 和 shiftwidth 设为 4,并设置 noexpandtab。这样文件中本来有 tab 的话会保留,新增的缩进处也会使用 tab。

 

2. 全部用空格。将 tabstop 和 shiftwidth 设置成相同的值,如 4,并设置 expandtab。这样新增的缩进会用空格,你按下 tab 键,出来的也全是空格。如果文件里本来就有 tab 的话,可以再用一次 :retab 命令,将所有 tab 扩展成空格,这样就完美了。

 

我一般在 .vimrc 中这样设置:


相关日志:

Vim 的 tab 设置(2): 使用 autocmd 为不同的文件类型应用不同的 tab 设置:http://blog.youkuaiyun.com/shell_picker/archive/2010/12/13/6073125.aspx

### 如何在VIM设置Tab键的宽度或间隔 在VIM编辑器中,可以通过配置文件 `.vimrc` 来设置Tab键的行为和宽度。以下是一些关键设置方法和参数说明: #### 配置Tab键为4个空格 将以下内容添加到用户的 `.vimrc` 文件中(通常位于用户主目录下)[^1]: ```vim set tabstop=4 " 设置Tab键显示的宽度为4个字符 set shiftwidth=4 " 设置自动缩进时使用的空格数为4 set softtabstop=4 " 设置按下Tab键时插入的空格数为4 set expandtab " 将Tab键替换为空格 ``` #### 参数解释 - `tabstop`:定义Tab字符显示的宽度。例如,`set tabstop=4` 表示Tab键显示为4个空格的宽度。 - `shiftwidth`:定义自动缩进时使用的空格数。例如,`set shiftwidth=4` 表示每次缩进使用4个空格。 - `softtabstop`:定义按下Tab键时实际插入的空格数。例如,`set softtabstop=4` 表示按下Tab键时插入4个空格。 - `expandtab`:启用后,Tab键会被替换为指定数量的空格。例如,`set expandtab` 表示Tab键会插入等效的空格。 #### 配置特定文件类型的Tab宽度 如果需要为某些特定文件类型(如Python、C等)设置不同的Tab宽度,可以使用以下代码: ```vim if has("autocmd") autocmd FileType python set tabstop=4 shiftwidth=4 softtabstop=4 expandtab autocmd FileType c set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab endif ``` 上述代码表示: - 当文件类型为Python时,Tab键被设置为4个空格[^1]。 - 当文件类型为C时,Tab键保持为8个字符宽度,并不替换为实际空格[^1]。 #### 禁用自动缩进以避免粘贴代码时的问题 在粘贴代码时,VIM可能会自动缩进导致格式混乱。可以通过以下方法禁用自动缩进: - 方法一:在 `.vimrc` 中添加以下内容以设置快捷键切换自动缩进功能: ```vim set pastetoggle=<F9> ``` 按下F9键可以在插入模式下切换自动缩进功能[^1]。 - 方法二:临时禁用自动缩进功能: ```vim set paste ``` 粘贴完成后恢复自动缩进功能: ```vim set nopaste ``` ### 注意事项 - 如果 `.vimrc` 文件不存在,可以手动创建并保存在用户主目录下。 - 修改 `.vimrc` 文件后,需重新启动VIM或执行 `:source ~/.vimrc` 命令以使更改生效。 ```python # 示例:验证Tab设置是否生效 print("Hello\tWorld") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值