前言
作为一个进场在Linux系统上写shell脚本的开发人员, 对每个shell脚本都要编写重复的头部信息.这是一个很麻烦的事情,所以,有什么办法,在新建.sh
文件的时候自动生成头部注释信息吗??
当然是有的. 一下介绍几种方式.都是可以使用的
一、创建脚本时自动添加头部信息(全自动)
- 在Home目录下,新建一个文件
.vimrc
文件. 内容如下:
autocmd BufNewFile *.sh exec ":call AddTitleForShell()"
function AddTitleForShell()
call append(0,"#!/bin/bash")
call append(1,"# **********************************************************")
call append(2,"# * Author : Dreamhai")
call append(3,"# * Email : xxxxx@163.com")
call append(4,"# * Create time : ".strftime("%Y-%m-%d %H:%M"))
call append(5,"# * Filename : ".expand("%:t"))
call append(6,"# * Description : ")
call append(7,"# **********************************************************")
endfunction
-
查看下
vimrc
文件
-
测试: 随意新建一个
.sh
文件
二、按快捷键的方式手动添加
- 在当前用户目录下建立一个·。vimrc·的文件,然后输入一下脚本.
map <F4> :call TitleDet()<cr>
function AddTitle()
call append(0,"\#!/bin/bash")
call append(1,"# ******************************************************")
call append(2,"# * Author : Dreamhai")
call append(3,"# * Email : xxxxx@163.com")
call append(4,"# * Create time : ".strftime("%Y-%m-%d %H:%M"))
call append(5,"# * Filename : ".expand("%:t"))
call append(6,"# * Description : ")
call append(7,"# ******************************************************")
echohl WarningMsg | echo "Successful in adding copyright." | echohl None
endf
function UpdateTitle()
normal m'
execute '/# Last modified/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
normal ''
normal mk
execute '/# Filename/s@:.*$@\=":\t".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copyright." | echohl None
endfunction
function TitleDet()
let n=1
while n < 10
let line = getline(n)
if line =~ '^\#\s*\S*Last\smodified\S*.*$'
call UpdateTitle()
return
endif
let n = n + 1
endwhile
call AddTitle()
endfunction
本可以自行修改一小部分。call append的0-5的部分可以自己稍作修改。
注意:mac下,写脚本vim一个文件以后,可能需要在非编辑模式下按fn+f4才会在脚本开头生成头部注释信息。
- 新建脚本,然后进入编辑状态后,按
F4
快捷键进行自动插入
效果不演示啦