vim配置——新建文件添加自定义模板

最近迷上了vim,喜欢它完全是由于它强大的自定义配置功能,为了更好的使用,最近查了很多资料和帮助文档,专注于写配置。

这是一个新建的文件时自动创建模板的功能,看了很多网上的教程,感觉那些对于模板修改不是很友好,每次修改都需要添加重复的代码。于是就有了调用外置模板的想法,这样一来就可以减少对配置文件的频繁修改了。

废话不多说,直接上代码了

#######  文件操作  ########
"
"新建文件添加模板
autocmd BufNewFile *.html,*.htm,*.py,*.sh exec "call UseTemp()"
"自定义函数UseTemp
func UseTemp()
    "使用if语句判断文件类型
    if &filetype=="htm"||&filetype=="html"
        "使用寄存器添加模板
        0r ~/storage/documents/termux/vim_files/template/web/demo.html
    elseif &filetype=="python"
        "定义列表
        let lnlist=["\#!/usr/bin/python3","\#coding=utf-8"]
        "调用setline函数将列表中的元素逐个加入行,列表中每个元素会被分别加入到行内
        call setline(".",lnlist)
    elseif &filetype=="sh"                                                               0r ~/storage/documents/termux/vim_files/template/general.txt
        "for循环找出需要修改的行                         for i in range(line("$")-1)
            let lnum=i+1
            if getline(lnum)=="# File Name:"
                "调用setline命令替换指定行的内容
                call setline(lnum,getline(lnum).expand("%"))
            elseif getline(lnum)=="# Created Time:"
                call setline(lnum,getline(lnum).strftime("%Y %b %d %X"))                    

             endif
        endfor                                                          endif
endfunc

本例中着重强调0r的使用,看的网友的资料,测试过0其实就是行首,如果将0改为1或者其他数字,新建的文件会空出相应行数再添加模板文件内容。

r有些像是register,具体的含义查过资料,并不能确定下来,不过目前只找到了这一种加入模板内容的方式。这样就可以只修改模板文件,不用大量修改配置文件。

在创建python文件模板时,因为模板中需要添加的内容较少,通过查找帮助文档,添加的内容可以先添加到列表中,当调用setline函数进行添加内容时,setline函数会降到列表种的元素逐个添加到新行中,可以减少很多的代码!

对于特定信息需要即时更改的模板,在新建sh脚本模板的代码块中有所提现,首先依然是0r替换模板内容到新建得文件中,然后再用for循环语句进行遍历行。当遍历到需要更改的行是,运行函数setline,使用新的格式化内容将其替换掉即可以。

本例仅仅提供思路,可以进行参考,适合自己的才是最好的。如果有更好的见解,欢迎评论区进行讨论

 

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值