vim 新建文件后自动插入模板

一、标题: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
中文

转载于:https://www.cnblogs.com/fiddler/p/4506260.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值