快速从模板建立文件October 8, 2008

最近很多人被我「拉下水」尝试 (g)Vim ,为了支持他们,我会编写些 Vim 脚本方便大家。

这里有个现成的需求,就是很多从 Editplus 转过来的同学,想让 Vim 有从模板新建文件的功能。那么,这篇文章可能就是你们想要的。

安装步骤

下载代码包 以后,解压缩到 $VIMRUNTIME 目录。重新启动 Vim,输入

:NewTemplate xhtml

就可以建立个 XHTML 模板,如果是 Vim 7.0 以上的版本,还有个命令

:NewTemplateTab xhtml

即可在新的标签页中新建文件。当然可以映射快捷键,快速新建常用的文件类型,比如我的

" 新建 XHTML 的快捷键
map nn :NewTemplateTab xhtml<cr>

在 normal 模式下,连续按两次 n 就可以在新标签页建立 xhtml 文件了。

配置脚本

此插件文件的路径在

$VIMRUNTIME/plugin/Template.vim

下,主要有两个配置选项,默认为

let g:TemplatePath=$VIM.'/vimfiles/template/'
let g:TemplateCursorFlag='#cursor#'

其中,g:TemplatePath 为模板路径,而 g:TemplatePathCursorFlag 则为新建模板以后鼠标移动到的位置(如无指定,则移动到文件底部)。

增加模板

脚本支持用户新建模板,找到 g:TemplatePath 中的 xhtml.tpl 目录。参考其中的内容

<html>
...
    <body>
        #cursor#
    </body>
</html>

应该很容易理解。比如需要新建 python 模板。则在 g:TemplatePath 中建立 python.tpl 并加入 #cursor# 的位置即可。

§ 15 条评论

  1. 多谢多谢
    辛苦了

    希望这种初级文章多些:D

  2. sevear sevear

    多谢,这就学习下

  3. like like

    我发现一个问题,如果为c/c++头文件建立一个名为h.tpl的模板,执行:NewTemplate h后,语法没有加亮。

    经过检查脚本发现,它执行了execute 'setlocal filetype='.a:name;然而.h的filetype=cpp

    请问有何办法解决?

  4. @like 可以加个判断,考虑有空再继续完善一下~

  5. 呵呵。不错。学习了

  6. Hi, thx for your script. I have adding inclusion of date like this :
    In Template.vim:
    line 10
    let g:TemplateDate='#date#'
    and after line delete G :
    let hasfind=search(g:TemplateDate)
    if hasfind
    let line = getline('.')
    let repl = substitute(line, g:TemplateDate, strftime("%d/%m/%Y"), '')
    call setline('.', repl)
    endif


    by

  7. 谢谢了,很实用

  8. 我也从Editplus“转”过来的(这么说不准确,其实我还是很喜欢Editplus的,没有喜新厌旧,两个都喜欢,彪悍地:“这个XX我喜欢,但是那个我也要!”),想请教下,有没有像Editplus里按Ctrl+B在“无缝浏览器”或指定浏览器快捷预览html文档的方法?

    在随手写些代码片段测试的时候,可以不用保存(自动保存在临时文件夹),快速测试演示。

  9. 另外,Eclipse的大纲视图也是一个不错的设计,可以快速定位到目标代码块。期待类似的功能出现在vim里,不知道是否已有类似的插件呢,Google没找到合适的(包括搜索关键字)。

  10. fantasybei fantasybei

    兄弟你这个是专门用在windows下的吧,我看了里面还有Template.vim还有vimfiles目录呢,- -!

  11. fer fer

    gvim启动,默认的文件名是“未命名”

    执行:NewTemplate html之后,新建的html模版也是“未命名”,这样VIM就提示错误:

    “无法打开‘未命名’文件,请问这个有办法解决下文件名冲突吗?

  12. [...]Vim Template (以模板新建文件)[...]

  13. 在Macvim Snapshot-49下出现Unknown function: NewTemplate会是什么原因?

  14. 找到原因了,下载的文件在Windows下编辑的,改成Mac合适的编码就好了

  15. 水中月明 水中月明

    刚刚试了一下,很不错啊,还自己修改了html的模板,改为html5类型的,然后添加了个jQuery的,以后打开就方便多了

添加评论




* Required (but your email address will never be published)

Yahoo 统计