vim 模板 设置

原文链接:http://blog.sina.com.cn/s/blog_69b830910101bfem.html  点击打开链接

很完美的vim模板设置方式,当在创建新的文件时,会自动插入固定的文本,比如,自动加入main函数,自动插入头文件等等。为了不要遗失,在此收录,感谢楼主的无私奉献。相关插件请到原链接处下载,谢谢。如果下载不了请联系我。

 

再加一个设置vim的链接:http://www.blogjava.net/MEYE/articles/355888.html

 


 

当新建莫类型文件时,用editplus会有模板文件提供使用,就是会自动生成文档的部分内容。在vim中可以通过autocmd+BufNewFile 来实现静态的模板文件。

1)首先编写模板文件
建立目录~/.vim/template

 makdir ~/.vim/template
然后编写模板文件

 vim c.tlp  
将需要自动生成的内容插入其内

2)修改vimrc
 autocmd BufNewFile *.c 0r ~/.vim/template/c.tlp
这样就开以在新建*.c文件时自动插入内容了。







智能灵活的自动加载模板的Vim插件

[介绍]
其实是昨天晚上刚想到要在Vim中使用模板的, 可是我为对Vim Script知之甚少. 都是根据需要现查手册的.

其实脚本很简单, 不仅简短, 而且没有什么复杂度. 但是我感觉它的设计理念很特别.

该脚本是根据新建文件的名字来确定模板的. 它不仅仅参考扩展名, 还要看有没有对应的全名模板.
例如, main.cc 文件中会写main函数, 而其他的 .cc 文件则不然. 显然它们需要使用不同的模板. 如果你为 main.cc 提供了模板, 就不会再应用为 .cc 文件提供的模板了.

另一个创新机制是, 该插件把模板分为普通的静态模板和更为灵活的动态模板.
普通模板机制需要有一些模板文件, 当对应的文件被创建时, 直接使用模板文件的内容. 而动态模板需要一些可执行的程序(或脚本), 被称为模板生成器. 当相应的文件被创建时, 把这样的程序的输出作为缓冲区的内容.
例 如, 每个 C/C++ 头文件中都会有头文件保护符(就是一个条件宏定义). 需要定义的宏是和当前的文件名相关联的, 所以这时用静态模板就无法实现了. 所以该插件引入了动态模板机制. 你只需要为相应类型的文件提供一个模板生成器, 该脚本会使用新建的文件名作为参数调用你的生成器, 而生成器的标准输出将作为模板的内容送往缓冲区.


[使用]
首先需要在~/.vimrc文件中定义一些全局变量.


代码:
let g:enable_template = 1
let g:template_dir = "~/.vim/templates"


g:template_dir 告诉插件存放模板文件(和模板生成器)的顶层目录.
其中, 普通的静态模板放在 g:template_dir/common 目录下面.
动态模板生成器放在 g:template_dir/dynamic 目录下面.
这两个目录下面都有两个相同的子目录, "ext/" 和 "full/". ext/ 目录中存放的是按扩展名提供的模板, full/ 目录中提供全名模板.

[示例 1] 为 .sh 文件应用静态模板.
假如在.vimrc中设置的模板顶层目录是 "~/.vim/templates", 那么该 .sh 模板文件应该是: ~/.vim/templates/common/ext/sh
[注: 因为是普通静态模板, 所以放在 common 目录, 因为是特定于扩展名的模板, 所以放在 ext 目录下]
向 ~/.vim/templates/common/ext/sh 文件中写入如下内容:
#!/bin/bash
# Author: Wonder
# Description:

上面的内容就会变成我们每次在Vim中新建的 .sh 文件的初始内容.

[示例 2] 为 C/C++ 头文件(.h文件)应用动态模板
基于同示例1中相同的假设. 现在我们要写一个模板生成器: ~/.vim/templates/dynamic/ext/h
内容可以象下面这样:
#!/bin/sh
# Generate template content for a c/c++ header file.
# usage: $0
[ -z "$1" ] && exit 1

head_def=`echo __${1}__ | tr "a-z.-" "A-Z__"`
cat << EOF
#ifndef $head_def
#define $head_def

#endif // #ifndef $head_def
EOF

别忘了生成器是要被插件调用的, 所以请给它执行权限:

代码:
chmod +x ~/.vim/templates/dynamic/ext/h

这样, 当头文件 say-hello.h 被创建时, 它的初始内容是这样的:

引用:
#ifndef __SAY_HELLO_H__
#define __SAY_HELLO_H__

#endif // #ifndef __SAY_HELLO_H__






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值