在VIM中重新格式化(代码)文件

缘起

需求来自于直接拷贝一段格式完好的 Bash 代码粘贴到一个新(用 vim)打开的 Bash 文件时,代码格式完全乱掉了,主要现象貌似是锁进格式被 double 了,本来是一个 tab 的好像被敲了两个 tab。这个问题怎么解决,不知道,不过马上的需求是:能否自动重新把代码重新格式化一下呢?

解决方案

vim配置

确保 vim 配置里有打开 filetype-indent,如果没有的话,

1
echo "filetype indent on" >> ~/.vimrc

格式化代码

然后,打开需要重新格式化的代码文件,

1
vim xxx.sh

最后,在 vim 中直接敲入命令(不用先敲入冒号):

1
gg=G

成功!

进阶阅读

至于怎样格式化代码文件,是控制在 vim 的 runtimepath 目录下的 indent 目录下的”格式名.vim”这个文件里的,这里的格式名是 vim 自动检测到的你的文件的格式,比如:sh

至于什么是 runtimepath,在 vim 中敲入

1
:help runtimepath

自己看吧