网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  如何在 vim 中更好的编辑 java 文件     
  文章作者:未知  文章来源:水木森林  
  查看:151次  录入:管理员--2007-11-17  
 
  这次介绍一下如何在 vim 中更好的编辑 java 文件.
作者: camry.wu@gmail.com

1. javabrowser
编辑类文件时, 类资源树是个有用的东西, 可以把类的成员, 方法等等很直观的
显示出来. 在 vim 中也可以实现好像 vc, jbuilder 那样的类资源树, 当然比
那些会简单些, 不过也够好用的了. 就是用 javabrowser.vim 这个脚本实现的.

先到 vim online 去找到这个脚本文件.(在这还能找到许多有用的其他脚本)
然后在 google 上找到 ctags 的安装方法,(一般的 linux 系统都带有这个程序)

1.1 在 linux 系统中将 javabrowser.vim 拷贝到 ~/.vim/plugin/ 下.
1.2 然后在 ~./vimrc 做如下中配置: (即说明 ctags 程序的路径)
let javabrowser_ctags_cmd = '/usr/bin/ctags'
1.3 假如 vim 不是 gui 版的, 那么可以做如下设置, 它将不改变窗口
let javabrowser_inc_winwidth = 0
1.4 重新运行 vim
1.5 这下你打开一个 java 文件时, 输入 :javabrowser 就能看到漂亮的资源树了.
不过这个文件必须是个实际存在的文件.

在 windows 系统中 可以将 javabrowser.vim 拷贝到 vim 目录下的 plugin 下.
同样也需要设置 javabrowser_ctags_cmd , 路径为 ctags 程序的路径.

我一般在java 宏文件中设置
nmap <f11> :javabrowser<cr>
imap <f11> <esc><f11>

这样我一按 f11 键就可以看到这个东西了, 很方便.

2. jcommenter
编程是肯定需要写注释的, 而编写 java 文件则需要写 javadoc 类型的注释.
jcommenter.vim 这个脚本可以帮助你轻松写注释.
到 vim online 可以找到这个脚本, 下载下来放到你的目录中, 我将它放在
~/.vim/files/ 目录下, 这个目录下真是放了很多东西.

使用时必须先读入脚本, 当然我们也不希望在编辑任意文件时都读入它, 如何
做在第三节中进一步说明. 读入脚本后在不同的地方输入 :call jcommentwriter()
就可以自动写注释了. 使用习惯后十分舒服.

我一般将 <f12> 定义为写注释.

3. autocmd
autocmd 十分强大, 在vim使用经验这篇文章中我已经提到过它了. 现在说明
如何让它来支持 java 文件的编写.

我在 .vimrc 中是这样设置我的 autocmd 的:
:autocmd!
autocmd filetype java source ~/.vim/files/java.vim
autocmd filetype java source ~/.vim/files/jcommenter.vim
autocmd bufnewfile *.java 0r ~/.vim/files/skeletons/java.skel
autocmd bufnewfile *.java normal gnp


说明如下:
1. 取消之前的 autocmd
2. 假如编辑的是 java 文件, 那么读入 java.vim 的宏定义(定义的内容下节说明)
3. 假如编辑的是 java 文件, 那么读入 jcommenter.vim 定义
4. 在新建 java 文件时, 预先将 java.skel 的内容复制进来
5. 在读入 java.skel 内容后, 运行 gnp 这个宏命令

我的 java.skel 内容是这样的:

/*
* -----------------------------------------------------------
* file name : _filename_
* authors : camry(camry.wu@gmail.com)
* created : _datetime_
* copyright : (c) 2004 vitular inc. all rights reserved.
*
* modifications:
*
* -----------------------------------------------------------
*/
package com.vitular.;

/**
* to-do.
*
* @author camry(camry.wu@gmail.com)
* @version 1.0
*/
public class _classname_ {

/**
* default constructor.
*/
public _classname_() {
super();
} // end: _classname_

/**
* for test.
* @param args commond line parameters
public static void main(final string[] args) {
} // end: main
*/
} // end: _classname_
///:~


运行 gnp 这个宏命令, 主要是为了替换其中的 _classname_, _datetime_, _filename_
这三个变量. gnp命令在 java.vim 这个宏文件中指定.

4. java 宏定义
这里说明一下我的 java.vim 宏文件是如何定义的.
首先, 文件中包含了另外一份宏定义, 在这里
以下是我自己做的一些定义:

" 输入转换
abbr sprt system.out.println
abbr psf public static final

" 将 _filename_, _datetime_, _classname_ 转换成正确名字
" 注意, 以下两行应该是连在一起的一行文字
map gnp :%s/_filename_//=bufname("%")/:%s/_datetime_//=strftime("%c")
/go"%p$f.bd0f.dviwx:%s/_classname_//=strtrans(@")/ggdd:1/{

" 输入 <f11> 可以看到类资源树
nmap <f11> :javabrowser<cr>
imap <f11> <esc><f11>

" 输入 <f12> 就能直接写入注释.
nmap <f12> :call jcommentwriter()<cr>
imap <f12> <esc><f12>

" 命令模式下, 在行如 private string s; /** comment */ 这样的文字上键入 gsg
" 可以自动变成 get set.
" 注意, 以下三行应该是连在一起的一行文字
map gsg 0f;dw"ad0wwviw"bxwviw"cx0da "apapublic void set"
cpb3~$a(final "bpa "cpa) { this."cpa = "cpa; }
public "bpa get"cpb3~$a() { return "cpa; }0
 
 
上一篇: 如何在 java 应用程序中读取 8 位和 24 位 microsoft windows 位图(转)    下一篇: 如何在applet中显示图象
  相关文档
java进阶:一个简单thread缓冲池的实现 03-20
实现基于spring技术应用的远程服务编程 11-16
新手指路灯-jsp程序员成长之路 11-17
js技巧:在ie浏览器中正确显示png透明图片 07-01
如何为java程序中添加播放midi音乐功能 11-16
在j2me程序中实现字符串分割 11-16
java基础:javascript cookie管理(程序) 11-16
log4j--新的日志操作方法 11-17
破解java struts web application开发工具 scioworks camino 11-17
spring aop在dwr安全上的应用 11-17
精典文萃:详细解述软件开发的七个原则 11-16
java相关名词用语 11-17
java 5.0中实现jsr-223的方法 11-17
使用技巧:通过jsp预编译消除性能瓶颈 11-16
xp让java项目获得更大成功 11-17
.net 和 java 之碰撞火花:到底谁快? 11-16
java入门-java对象及其引用 11-17
在java程序中截获控制台输出 11-17
eclipse下有用的包jadclipse和findbugs 11-17
在spring中配置hibernate事务(图) 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息