这份笔记由来主要是同事在服务器提交任务时。很多人是每次都将 PBS 头部配置重新复制一次。

比如:

#!/bin/bash
#PBS -N:作业名称。
#PBS -q:队列名称。
#PBS -l:资源请求。
#PBS -j oe:将标准输出和标准错误合并到一个文件中。

其实,可以在 ~/.vimrc 上进行配置,在用 VIM 新建文件时,可以根据文件后缀自动生成初始化文本。

以下为参考脚本,可根据自己需求更改。

打开并修改 ~/.vimrc

$ cat .vimrc

au BufNewFile *.mk,[Mm]akefile exec ":call SetNewFileHeader()"
au BufNewFile *.sh,*.py exec ":call SetNewFileHeader()"
 
" SetNewFileHeader for new buffer
func SetNewFileHeader()
    " set author_name here
    let $author_name = $USER
 
    if &filetype == 'make'
        call setline(1,  "####################################################")
    call setline(2,  "# Author      : ".$author_name )
        call setline(3,  "# Created date: ".strftime('%F %T'))
        call setline(4,  "# Describe    : " )
        call setline(5,  "####################################################")
        call setline(6,  "")
        call setline(7,  "#target: prerequisites ")
        call setline(8,  "#\tcommand")
        call setline(9,  "")
 
    elseif &filetype == 'sh'
        call setline(1,  "#!/bin/bash")
        call setline(2,  "#PBS -l nodes=1:ppn=20")
        call setline(3,  "#PBS -j oe")
        call setline(4,  "#PBS -V")
        call setline(5,  "#PBS -q comput")
        call setline(6,  "#PBS -N run")
    call setline(7,  "cd $PBS_O_WORKDIR")
        call setline(8,  "####################################################")
        call setline(9,  "# Author      : ".$author_name )
        call setline(10,  "# Created date: ".strftime('%F %T'))
        call setline(11,  "# Describe    : ")
        call setline(12,  "####################################################")
        call setline(13,  "beginTime=`date +%s`")
        call setline(14,  "####################################################")
        call setline(15,  "")
        call setline(16,  "")
        call setline(17,  "")
        call setline(18,  "")
        call setline(19,  "")
        call setline(20,  "####################################################")
        call setline(21,  "endTime=`date +%s`")
        call setline(22,  "echo -n '总共耗时: ';time=$(printf '%.5f' `echo \"scale=5;($endTime-$beginTime)/3600\"|bc`);echo -n $time;echo ' 小时'")

    elseif &filetype == 'python'
        call setline(1,  "#! /usr/bin/env python3")
        call setline(2,  "# coding=utf-8")
        call setline(3,  "####################################################")
        call setline(4,  "# Author      : ".$author_name )
        call setline(5,  "# Created date: ".strftime('%F %T'))
        call setline(6,  "# Describe    : " )
        call setline(7,  "####################################################")
        call setline(8,  "")
        call setline(9,  "if __name__ == '__main__':")
        call setline(10,  "    print(\"hello ".expand('%:t')."\")")
        call setline(11, "")
    endif
endfunc

" vim 打开文件时显示行号
set number

本文由mdnice多平台发布


染山
1 声望0 粉丝