Linux编辑器vim或vi文件模板脚本

Linux系统下,用vim或者vi编辑文件时,可以在启动时插入对应的模板信息,例如:

编写C文件时,需要有文件头注释。

文件名为.vimrc,需要放到期望生效的用户所在工作空间,如root用户需要放到/root目录下,普通用户需要放到/home/username/目录下,其中username依据实际来。

set nu
set mouse=a
set tabstop=4
filetype indent plugin on
set softtabstop=4
set shiftwidth=4
set ruler
set showcmd
set completeopt=preview,menu

autocmd BufNewFile *.c exec ":call Set_C_Files()"
autocmd BufNewFile *.h exec ":call Set_H_Files()"
autocmd BufNewFile *.asm exec ":call Set_ASM_Files()"
autocmd BufNewFile *.sh exec ":call Set_SHELL_Files()"

let $author_name = "username"
let $author_email = "someone@someserver.com"


func Set_C_Files()
		        call setline(1,"/*--------------------------------------------------------")
		call append(line("."), 	 "* Author      : ".$author_name)
		call append(line(".")+1, "* E-mail      : ".$author_email)
		call append(line(".")+2, "* File Name   : ".expand("%"))
		call append(line(".")+3, "* Created Time: ".strftime("%c"))
		call append(line(".")+4, "* Introduction:")
		call append(line(".")+5, "* ")
		call append(line(".")+6, "*-------------------------------------------------------*/")
		call append(line(".")+7, "")
		call append(line(".")+8, "#include <stdio.h>")
		call append(line(".")+9, "#include <stdlib.h>")
		call append(line(".")+10,"#include <string.h>")
		call append(line(".")+11,"")
		call append(line(".")+12,"")
		call append(line(".")+13, "int main(int argc,char *argv[])")
		call append(line(".")+14, "{")
		call append(line(".")+15, "")
		call append(line(".")+16, "	return 0;")
		call append(line(".")+17, "}")
endfun


func Set_H_Files()
		        call setline(1,"/*--------------------------------------------------------")
		call append(line("."), 	 "* Author      : ".$author_name)
		call append(line(".")+1, "* E-mail      : ".$author_email)
		call append(line(".")+2, "* File Name   : ".expand("%"))
		call append(line(".")+3, "* Created Time: ".strftime("%c"))
		call append(line(".")+4, "* Introduction:")
		call append(line(".")+5, "* ")
		call append(line(".")+6, "*-------------------------------------------------------*/")
		call append(line(".")+7, "")
		call append(line(".")+8, "#ifndef _".expand("%:r")."_H")
		call append(line(".")+9, "#define _".expand("%:r")."_H")
		call append(line(".")+10,"")
		call append(line(".")+11, "")
		call append(line(".")+12, "")
		call append(line(".")+13, "")
		call append(line(".")+14, "")
		call append(line(".")+15, "")
		call append(line(".")+16, "#endif")
endfun


func Set_ASM_Files()
		          call setline(1,";*--------------------------------------------------------")
		call append(line("."), 	 ";* Author      : ".$author_name)
		call append(line(".")+1, ";* E-mail      : ".$author_email)
		call append(line(".")+2, ";* File Name   : ".expand("%"))
		call append(line(".")+3, ";* Created Time: ".strftime("%c"))
		call append(line(".")+4, ";* Introduction:")
		call append(line(".")+5, ";* ")
		call append(line(".")+6, ";*--------------------------------------------------------")
		call append(line(".")+7, "")
		call append(line(".")+8, "")
		call append(line(".")+9, "")
		call append(line(".")+10,"")
		call append(line(".")+11, "")
		call append(line(".")+12, "")
		call append(line(".")+13, "")
endfun

func Set_SHELL_Files()
		          call setline(1," #--------------------------------------------------------")
		call append(line("."), 	 " # Author      : ".$author_name)
		call append(line(".")+1, " # E-mail      : ".$author_email)
		call append(line(".")+2, " # File Name   : ".expand("%"))
		call append(line(".")+3, " # Created Time: ".strftime("%c"))
		call append(line(".")+4, " # Introduction:")
		call append(line(".")+5, " #")
		call append(line(".")+6, " #--------------------------------------------------------")
		call append(line(".")+7, "")
		call append(line(".")+8, "")
		call append(line(".")+9, "")
		call append(line(".")+10,"")
		call append(line(".")+11, "")
		call append(line(".")+12, "")
		call append(line(".")+13, "")
endfun
"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
            return "\<Right>"
else
            return a:char
endif
endfunction
filetype plugin indent on 
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值