优雅的编码习惯总是让人心情愉悦(Shell篇)
前言
今天公司生产有个作业出现了故障,依次排查追溯到了一个SHELL脚本。使用VIM打开该脚本后直接麻了,所有人都不知道这是谁写的脚本,脚本对应的执行代码在哪里,没有出处,没有标注,没有创建时间,简直是“三无产品”。

为了彻底杜绝这种问题再次发生,指望口头约束肯定是没太大用处的。使用下文的方式来解决此类问题发生。
就像你编写代码时使用类似IDEA的功能

实战
生效范围设置
当前用户:
[root@xinxing01 ~]# vim ~/.vimrc
全局:
[root@xinxing01 ~]# vim /etc/vimrc
追加写入如下内容(不要把原来的东西覆盖或删除!)
set ignorecase
set autoindent
set paste
autocmd BufNewFile *.sh exec ":.call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"#***********************************************")
call setline(3,"#Author: Administrator")
call setline(4,"#Args:1.xxxxx 2.xxxxxx 3.xxxxxxx ")
call setline(5,"#Version: 1.0")
call setline(6,"#Date: ".strftime("%Y-%m-%d HH:mm:ss"))
call setline(7,"#FileName: ".expand("%"))
call setline(8,"#Description: The test script")
call setline(9,"#***********************************************")
call setline(10,"")
endif
endfunc
autocmd BufNewFile * normal G
参数解释
set ignorecase:忽略大小写
set autoindent:自动缩进
set paste: 设置粘贴模式
autocmd:自动执行命令
autocmd [group] events pattern [nested] command
详情参考:https://zhuanlan.zhihu.com/p/98360630
效果演示
直接使用 vim命令新建一个文件,效果如下

用户处可以动态获取当前Linux登录用户,自己实现吧,随便百度
shell其他参数设置
如果你想关闭某个选项,在命令前加即可 如:set 就是不显示行号啦
参考链接
https://dougblack.io/words/a-good-vimrc.html
http://vimdoc.sourceforge.net/htmldoc/options.html