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