写了一个vim 插件, nskeleton.vim

写了一个vim插件. 做两件事情:默认的skeleton, 更新last_update

skeleton 其实很简单:

autocmd BufNewFile *.py 0r ~/.vim/skeleton/py_skeleton.py

但是想插入一个自动的Date, author之类的字段, 搜了一下, 有现成的tskeleton: 但是居然有1万来行代码,我了个去,试用了一把,居然还有bug!!!!不能忍了,于是自己写了一个

结果满足自己的需求,代码只有30行左右:

if has("win32") || has ('win64')
    let $VIMHOME = $HOME."/vimfiles/"
else
    let $VIMHOME = $HOME."/.vim/"
endif

function! Replace()
    let n = min([20, line("$")])
    keepjumps exe '1,' . n . 's#<+DATE+>#\1' .  strftime('%F %T') . '#e'
    "Decho "debug message " . &ft. expand('%:t')
    keepjumps exe '1,' . n . 's#<+FILE_NAME+>#' .  expand('%:t') . '#e'
    "call histdel('search', -1)
endfun

au BufNewFile * :silent! exec ":0r ".$VIMHOME."skeletons/". &ft . ".skeleton" | call Replace()



function! LastModified()
  if &modified
    let save_cursor = getpos(".")
    let n = min([20, line("$")])
    keepjumps exe '1,' . n . 's#^\(.\{,10}Last modified: \)\S* \S*#\1' .
          \ strftime('%F %T') . '#e'

    "Decho "debug message " 

    "call histdel('search', -1)
    call setpos('.', save_cursor)
  endif
endfun

autocmd BufWritePre * call LastModified()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值