如何在 vim 中更好的编辑 java 文件

原创 2004年10月22日 00:02:00

by camry.wu

这次介绍一下如何在 vim 中更好的编辑 java 文件

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

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

    1. 在 linux 系统中将 javabrowser.vim 拷贝到 ~/.vim/plugin/ 下.

    2. 然后在 ~./vimrc 做如下中配置: (即说明 ctags 程序的路径)

        let JavaBrowser_Ctags_Cmd = '/usr/bin/ctags'
    3. 假如 vim 不是 gui 版的, 那么可以做如下设置, 它将不改变窗口

        let JavaBrowser_Inc_Winwidth = 0
    4. 重新运行 vim

    5. 这下你打开一个 java 文件时, 输入 :JavaBrowser 就能看到漂亮的资源树了.
      不过这个文件必须是个实际存在的文件.

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

    我一般在java 宏文件中设置

    nmap <F11> :JavaBrowser<CR>
    imap <F11> <ESC><F11>

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

    在 vim online 中你会发现一个 taglist 的脚本也是用来显示类资源树的, 而且它
    运用的范围更广, 对多种语言都适合, 不过颜色似乎没有 JavaBrowser 好看.

  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 <ESC>:%s/_filename_//=bufname("%")/<CR>:%s/_datetime_//=strftime("%c")
      /<CR>Go<ESC>"%p$F.bd0f.Dviwx:%s/_classname_//=strtrans(@")/g<CR>Gdd:1<CR>/{<CR>

      " 输入 <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;<RIGHT>dw"aD0wwviw"bxwviw"cx0Da <ESC>"apa<CR>public void set<ESC>"
      cpb3<RIGHT>~$a(final <ESC>"bpa <ESC>"cpa) { this.<ESC>"cpa = <ESC>"cpa; }
      <CR>public <ESC>"bpa get<ESC>"cpb3<RIGHT>~$a() { return <ESC>"cpa; }<CR><ESC>0


最后更新: 2004年11月13日 星期六 15点13分4秒
HTML 转换程序: TeX2page 2004-09-11

教你如何在Linux下使用vi/vim编辑器

1、vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1...
  • dong_18383219470
  • dong_18383219470
  • 2017年01月18日 13:25
  • 541

测试博客编辑格式

这是黑体标题 这是斜体内容 加下划线 加删除线 字体 宋体 微软雅黑 大字体大字体字体颜色 public String getName(User user){ return u...
  • qq_35529682
  • qq_35529682
  • 2018年01月15日 16:01
  • 15

Java之美[从菜鸟到高手演练]之Linux下vi和vim编辑器的使用

作者:二青个人站点:zhangerqing.cn    邮箱:xtfggef@gmail.com    微博:http://weibo.com/xtfggefVi是一个常用的linux下文本编辑器,基...
  • zhangerqing
  • zhangerqing
  • 2015年01月19日 20:38
  • 10331

vim怎样打开多个文件并自由切换

vim怎样打开多个文件并象图形界面编辑器样自由切换 Fri Aug 12 03:32:23 EDT 2016 vim 打开可以一次打开多个文件 vim a b c 然后你会进入文件a的编辑...
  • matrixvirus
  • matrixvirus
  • 2016年08月12日 21:56
  • 1753

不同vim文件之间的复制粘贴

今天在写vim文件时,遇到了
  • chenhanzhun
  • chenhanzhun
  • 2014年11月04日 15:54
  • 1354

docker--制作自己的镜像(二)

前面从理论的角度给大家介绍了两种制作镜像的方式,这篇文章我们将针对第一种方式即使用dockerfile的方式来制作一个集成了ssh与tomcat的镜像文件。 首先为大家说明一下制作这个镜像所要达到的目...
  • u010820422
  • u010820422
  • 2017年08月02日 15:10
  • 109

VIM中运行shell

在VIM编辑器中有3中运行shell的方法: 1、如果想长时间的运行shell命令,则可以在命令模式下输入":sh",则可以运行相当于在字符模式下,到输入结束想回到VIM编辑器中可以用exit,...
  • velanjun
  • velanjun
  • 2013年11月15日 11:04
  • 1399

使用vim建立文件

刚开始接触linux(ubuntu)系统,不得不说确实很麻烦,就这个使用vim建立文件从网上看过几篇使用方法,但由于不详细,也没能成功使用。后来参照书上的详细步骤才学会使用,现在把详细步骤发出来,仅供...
  • yuechuxuan
  • yuechuxuan
  • 2017年04月10日 18:48
  • 973

[vim]怎样记忆 进入编辑模式的按键

前言总的来说VIM从命令模式进入插入模式总共有i, I, a, A, o, O, r, R, s, S这几个按键,但是单纯的记忆起来确是很困难的。总结的记忆方法插入(insert)i:从光标所在位置前...
  • weixin_36210698
  • weixin_36210698
  • 2017年06月06日 08:15
  • 919

如何使用ctags实现vim编辑器中的变量或函数追踪

相信大家在看很长很长的代码的时候常常会遇到以下的情况:看到一个变量或者函数的声明或调用的时候,不知道这个变量和函数到底是有什么作用的,这时就要很麻烦的在整篇代码中一行一行地来搜索变量或函数的出处,非常...
  • u013623867
  • u013623867
  • 2014年02月10日 00:43
  • 1465
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在 vim 中更好的编辑 java 文件
举报原因:
原因补充:

(最多只允许输入30个字)