Vim代码缩进设置

此页由Linux Wiki用户Chenxing于2012年12月18日 (星期二) 08:02的最后更改。 在lzh的工作基础上。

出自Linux Wiki

提示:此文已超过 12 年(4388 天)未更新,如发现内容过时或有误,欢迎改进:)

目录

编程时代码缩进是相当必要的,使用Vim处理代码缩进并不困难,只要了解一些参数就可灵活运用。[1]

常用设置

缩进设置最常用的是:

:filetype indent on

它将开启针对文件具体类型的缩进。

下面的选项需要在命令模式下用set设置的选项的含义。使用方法如:

set ci       # 开启cindent
set noet     # 关闭expandtab
set sw=4     # shiftwidth=4
与自动缩进相关的变量表
变量名 缩写 含义
(no)autoindent ai 自动缩进,即为新行自动添加与当前行同等的缩进。
(no)cindent ci 类似C语言程序的缩进
(no)smartindent si 基于autoindent的一些改进


与TAB相关的变量表[2]
变量名 缩写 含义
tabstop=X ts 编辑时一个TAB字符占多少个空格的位置。
shiftwidth=X sw 使用每层缩进的空格数。
(no)expandtab (no)et 是否将输入的TAB自动展开成空格。开启后要输入TAB,需要Ctrl-V<TAB>
softtabstop=X sts 方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
(no)smarttab (no)sta 开启时,在行首按TAB将加入sw个空格,否则加入ts个空格。

设置样例

灵活使用上面的选项,就可以很好地调整缩进设置。

可以将下述设置加入到~/.vimrc中:

set sw=4
set ts=4
 
filetype indent on
autocmd FileType python setlocal et sta sw=4 sts=4

前面两行将shiftwidth和tabstop都设为4。第三行开启自动的缩进检测。最后一行则根据Python语言的建议(将tab展成四个空格)进行了专门设置。

Hint.gif
提示:
setlocal使set的效果只对当前buffer有效,不会影响到打开的其它文件。
Hint.gif
提示:
有关Python编程的更多设置,见配置基于Vim的Python编程环境

在编程中使用缩进功能

有了上面的设置,还可以在编程时利用快捷键调整缩进,参见VI(VIM)编写程序技巧#缩进

参考资料

  1. Vim帮助文档
  2. http://www.vex.net/~x/python_and_vim.html

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换