緣起
需求來自于直接拷貝一段格式完好的 Bash 代碼粘貼到一個新(用 vim)打開的 Bash 文件時,代碼格式完全亂掉了,主要現(xiàn)象貌似是鎖進格式被 double 了,本來是一個 tab 的好像被敲了兩個 tab。這個問題怎么解決,不知道,不過馬上的需求是:能否自動重新把代碼重新格式化一下呢?
解決方案
vim配置
確保 vim 配置里有打開 filetype-indent,如果沒有的話,
echo "filetype indent on" >> ~/.vimrc
格式化代碼
然后,打開需要重新格式化的代碼文件,
vim xxx.sh
最后,在 vim 中直接敲入命令(不用先敲入冒號):
gg=G
成功!
進階閱讀
至于怎樣格式化代碼文件,是控制在 vim 的 runtimepath 目錄下的 indent 目錄下的"格式名.vim"這個文件里的,這里的格式名是 vim 自動檢測到的你的文件的格式,比如:sh
至于什么是 runtimepath,在 vim 中敲入
:help runtimepath
自己看吧