代码模板


  1. Java 模板
  2. 自定义模板
在写代码的过程中,我们有许多的经常使用的代码片段,而且被反复使用.
如一个 if-else 代码块,一个 while 块,一个 for 循环,等等.如何有效而且快速的输入这些代码呢?
在 VIM 中,有一个 insert abbreviations功能.详情请参考:h iabbr.而VJDE则提供了一个更有效而且强大的方法.
注意:要使用本功能必须安装 ruby ,请参考安装指南.其中,windows 用户请一定要将 VIM 升级到7.0.20 以后.推荐最新版
Java 模板
首先,来看看在Java代码里面,我们如何来使用代码模板的.
package test;

import java.util.*;

public class Test  {
	public static  void main(String[] args) {
		System.out.println(HELLO);
		Vector v;
		|
	}
}
		

我们希望写一个 for 循环遍历我们的 v,由于内置了很多的Java模板,因此,我们只需要在光标所在行,以Alt-.
则屏幕如下图:

显示在前的,是名称,分号后的,是模板的一个简单解释.
我们将选择 forie
提示我们输入类型,这里,我们的类型应该是String
然后,就自动生成了如下的代码,并将光标放置到了|的位置.
package test;

import java.util.*;

public class Test  {
	public static  void main(String[] args) {
		System.out.println(HELLO);
		Vector v;
		for ( Iterator iter = |.iterator() ; iter.hasNext() ; ) {
			String it =  iter.next();

		}
	}
}
		
到此为止,我们已经生成了我们需要的一个 for 循环.是不是很方便呢?

到发布为止,已经有jsp,html的很多模板.而且模板间是可以互相引用的.
注意:你不必为JSP单独建立模板,它自动会引用html和java的模板.如下图:

注意到没有,上面部分是Java的代码模板,下面部分是HTML的代码模板.

如果你嫌这样选择模板太麻烦的话,你可以输入模板名字的一部分,VJDE会自动匹配相应的模板,如果只有一个的时候,会直接生成代码.

使用自己的模板
如果说模板让人兴奋的话,那么,可以完全自由定义的模板,则让人欣喜若狂了.
我们简单说一个 VJDE 的模板实现的方法.VJDE以文件类型为标识来创建和使用模板.
这就是说,每一种不同的类型的文件,都可以有自己的模板.这主要是为要在各种不同文件类型上开发时使用的.
如果你不知道 VIM 的文件类型是什么,可以打开一个文件用,使用命令:set ft,则会显示filetype=jsp这样的字样,这里的jsp就是你当前文件在 VIM中的类型了.
知道文件类型后,只需要在你的Home目录下,windows 用户,可能是C:\Documents and Settings\Administrator,LINUX 用户,呵呵.
创建一个文件夹和子文件夹.vim\vjde
如果你弄不明白,用如下命令来创建:
:call mkdir(expand('~').'/.vim/vjde','p')
然后,把你写好的模板以 文件类型.iab 的样子放在目录中.如,为html写的模板,则应该是$HOME/.vim/vjde/html.iab.
做好这些工作后,你打开新文件这前,还要告诉VJDE,你要在什么文件扩展名上使用代码模板.
需要添加let g:vjde_iab_exts='cpp;c;h;hpp;rb' 到你的vimrc,修改成你需要的展名,然后,重新启动 vim,一切总算可以工作了.

我们忘记了一件重要的事情,就是模板文件的写法.^_^
我们以Java的代码模板为例来解释这个东西的文件格式.它的位置在 $VIM/vimfiles/plugin/vjde/tlds/java.iab
文件有点长,我们取出我们刚才使用的 forie 的模板来看看吧.
template forie ; for block with iterator with jdk1.5
param vartype ;the type of each object
body
for ( Iterator iter = |.iterator() ; iter.hasNext() ; ) {
	%{vartype} it =  iter.next();
	%{VIM::command('call Vjde_import_check("java.util.Iterator")')}
}
endt
		
重要提示:在写模板文件的时候,如果希望有语法高亮,使用命令:set ft=vjde.或者在模板文件最后加上如下行,重新打开:
// vim: ft=vjde
		

在JSP中使用VJDE 主目录