自动格式化对齐代码
vim可以用 =
命令对代码文件自动格式化对齐。具体用法说明如下:
==
对光标所在行进行自动格式化对齐,会根据代码情况增加或减少缩进。可以在==
前面加上数字,指定要同时处理多少行。例如,4==
会格式化对齐当前行、以及后面的三行。gg=G
对整个文件都重新格式化对齐。={motion}
自动格式化{motion}
操作前后的行。{motion}
可以是 vim 里面任意移动光标的操作。例如常见的 j、k、G、% 等。%
用于移动光标到匹配的括号上。当光标在{
或者}
上时,=%
会格式化整个{}
括起来的内容,包括{}
自身。
下面的 a{
、i{
也是 {motion}
的一种:
=a{
当光标所在行位于{}
花括号内时,自动格式化对齐整个{}
里面的内容,包括{}
这两个花括号所在的行也会一起格式化,以{
的上一行为基准来对齐。如果{
自身的对齐错乱了,可以把{
所在的行也一起对齐。=i{
当光标所在行位于{}
花括号内时,自动格式化对齐整个{}
里面的内容,不包括{}
这两个花括号所在的行,以{
所在的行为基准来进行对齐。如果{
自身所在行的对齐错乱,不会把{
所在的行也一起对齐。
手动增加或减少代码缩进
用 =
命令自动格式化,默认使用C语言的对齐风格。如果不喜欢这种风格,也可以手动增加或减少缩进来对齐。下面几个命令可以用于手动缩进:
>>
把光标所在行向右增加缩进,缩进空格数由 shiftwidth 选项指定。>{motion}
对{motion}
操作前后的行向右增加缩进。缩进空格数由 shiftwidth 选项指定。{motion}
可以是 vim 里面任意移动光标的操作。<<
把光标所在行向左减少缩进,缩进空格数由 shiftwidth 选项指定。<{motion}
对{motion}
操作前后的行向左减少缩进。缩进空格数由 shiftwidth 选项指定。{motion}
可以是 vim 里面任意移动光标的操作。
下面的 a{
、i{
也是 {motion}
的一种,可以用于 >
或者 <
命令。
>a{
当光标所在行位于{}
花括号内时,将整个{}
里面的内容向右增加缩进,包括{}
这两个花括号所在的行也会一起缩进。>i{
当光标所在行位于{}
花括号内时,将整个{}
里面的内容向右增加缩进,不包括{}
这两个花括号所在的行,它们自身的行不会被缩进。
用 :help =
命令查看 =
的帮助说明。
用 :help <
和 查看 <
和 >
的帮助说明,这两个命令的说明是相邻的。
用 :help motion.txt
命令查看有哪些 {motion}
操作可以移动光标。
用 :help usr_30.txt
查看 =
、>
命令在对齐方面的举例说明。