一、标题:vim 新建文件后自动插入模板(ubuntu+centos)
二、概要
无论是Linux系统管理员,还是linux开发程序员,都经常驻足于linux环境下的vi 编辑器编程开发。本篇分享,工作中的实用的编程工具技巧,可轻松一键搞定你设计想要的模板格式。
三、需求
在vi编辑器里,新建编码文件总是空白,有什么办法可以创建时,预先就指定对应的模板格式呢?怎么可以节省注释啊、编码格式啊、更新创建日期啊等等的备注呢?
四、实现
4.1 本文亲测 Ubuntu 可行 #vi ~/.vimrc (没有则新建一个 -rw-r--r--)
4.2 将以下内容存入,保存即可
syntax on set nocompatible "set number filetype on set history=1000 set background=dark "set autoindent "set smartindent set tabstop=4 set shiftwidth=4 set showmatch set guioptions-=T set ruler set nohls set incsearch "set fileencodings=utf-8 if &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm set t_Sf=^[[3%dm endif function AddFileInformation_php() let infor = "<?php\n" \." ***************************************************************************\n" \." * \n" \." * Copyright (c) 2014 \n" \." * \n" \." **************************************************************************/ \n" \." \n" \." \n" \." \n" \."/** \n" \." * @file:".expand("%")." \n" \." * @author your name(Luolired@163.com) \n" \." * @date ".strftime("%Y-%m-%d %H:%M")." \n" \." * @version 1.0 \n" \." **/ \n" \." \n" \." \n" \." \n" \." \n" \." \n" \." \n" \."?>" silent put! =infor endfunction autocmd BufNewFile *.php call AddFileInformation_php() function AddFileInformation_sh() let infor = "#!/bin/bash\n" \."\n" \."# ***************************************************************************\n" \."# * \n" \."# * @file:".expand("%")." \n" \."# * @author:Luolired@163.com \n" \."# * @date:".strftime("%Y-%m-%d %H:%M")." \n" \."# * @version 1.0 \n" \."# * @description: Shell script \n" \."# * @Copyright (c) all right reserved \n" \."#* \n" \."#**************************************************************************/ \n" \."\n" \."\n" \."\n" \."\n" \."exit 0" silent put! =infor endfunction autocmd BufNewFile *.sh call AddFileInformation_sh() function AddFileInformation_py() let infor = "#!/usr/bin/env python\n" \."# -*- coding: utf-8 -*-\n" \."# ************************************************************************ \n" \."# * \n" \."# * @file:".expand("%")." \n" \."# * @author:Luolired@163.com \n" \."# * @date:".strftime("%Y-%m-%d %H:%M")." \n" \."# * @version 1.0 \n" \."# * @description: Python Script \n" \."# * @Copyright (c) all right reserved \n" \."# * \n" \."#************************************************************************* \n" \."\n" \."import os,sys" \."\n" \."print u'''中文'''\n" \."\n" \."exit()" silent put! =infor endfunction autocmd BufNewFile *.py call AddFileInformation_py()
五、总结
轻松搞定,新建php、python、sh等等插入模板格式。
良好的排版的格式,总是能让读者赏心悦目,格式的定义,就一步之遥,GTD!
----------------------------------------------------------------我是万恶的分割线--------------------------------------------------------------------------------
Centos 6.6 将上述内容添加到vimrc 会报错:
报错信息如下:
[root@Hero ~]# vi /root/.vimrc
Error detected while processing /root/.vimrc:
line 46:
E488: Trailing characters: silent put! =infor
line 68:
E488: Trailing characters: silent put! =infor
line 91:
E488: Trailing characters: silent put! =infor
需求:Centos下该如何让vim支持创建时自动添加预定模板信息呢?
google没找到解决错误方法,换其他思路了。
实践可行方法步骤:
1.Centos精简版没有预装vim。#yum install vim*
2.Create a template file
[root@Hero ~]# vi /root/.py_header.txt (注意:开头:insert 、和末尾 . 不能删;标题格式修改需要同时关联修改vimrc的 autocmd bufnewfile )
[root@Hero ~]# vi /root/.py_header.txt :insert #!/usr/bin/env python #-*- coding: utf-8 -*- #/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. # #* File Name : myfile.c # #* Purpose : # #* Creation Date : 20-12-2008 # #* Last Modified : # #* Created By : Luolired # #_._._._._._._._._._._._._._._._._._._._._.*/ import os,sys print u'''中文''' exit() .
3.Add autocmd commands to ~/.vimrc
[root@Hero ~]# vi .vimrc autocmd bufnewfile *.py so /root/.py_header.txt autocmd bufnewfile *.py exe "1," . 10 . "g/File Name :.*/s//File Name : " .expand("%") autocmd bufnewfile *.py exe "1," . 10 . "g/Creation Date :.*/s//Creation Date : " .strftime("%d-%m-%Y") autocmd Bufwritepre,filewritepre *.py execute "normal ma" autocmd Bufwritepre,filewritepre *.py exe "1," . 7 . "g/Last Modified :.*/s/Last Modified :.*/Last Modified : " .strftime("%c") autocmd bufwritepost,filewritepost *.py execute "normal `a"
4.Create a new *.py file with automatic header
注意是 vim *.py (vi *.py 是没有加载预先模板的!!)
在CentoS下面使用root登录,执行vi时会发现没有语法高亮.
一般系统默认就把vi alias到vim才对.
技巧: echo "alias vi='vim'" > /root/.bashrc && source /root/.bashrc
[root@Hero ~]# vim test.py [root@Hero ~]# ls anaconda-ks.cfg atomic test.py [root@Hero ~]# python test.py 中文