`

vim 中更好的編輯 java 文件.

    博客分类:
  • vim
阅读更多

這次介紹一下如何在 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

分享到:
评论

相关推荐

    hadoop大数据课件-实验说明.pptx

    Vi/VIM命令指导是Hadoop大数据处理中重要的一部分,Vi/VIM是Linux操作系统中的文本编辑器,读者需要熟练掌握Vi/VIM命令以便更好地进行文本编辑。 1. i命令:用于进入编辑状态 2. esc命令:用于退出编辑状态 3. h、...

    Hacking Vim

    VIM是VI的优秀后裔,虽然VI的后裔中不仅仅包括VIM,但是VIM是实现对VI的兼容性最好的编辑器,其他的后裔还包括STEVIE, ELvis, NVi, Vile等。除了实现对VI的兼容性外,VIM还扩展了很多的功能,包括语法高亮,代码折迭...

    leetcode下载-CVimTutorial:C语言基础教程和Vim的基本使用方法

    因为是摸索着前进,如果出现错误,请大家及时反馈,把这个教程做得更好。 —— 谢东方 第一个C程序 与Java不同,C语言中通过#include导入头文件/工具库,#include '库名'表示导入当前目录下的头文件,而#include &lt...

    java俄罗斯方块源码代码最少-vim-golf-challenges:全部(几乎所有vimgolf挑战都在一个组织文件中)

    我们一直在做的简单的事情应该可以通过很少的按键来完成,但有时我发现我需要做的事情让我觉得,“必须有更好的方法。” 这个挑战只是一个简单的动作并在某个地方输入文本。 启动文件 *temp var1

    Linux基础命令行操作.docx

    vim 的基本使用方法包括创建文件、编辑文件、保存文件和退出编辑器。 11. cd 命令 cd 命令可以切换工作目录或进入某个目录。例如,cd java/src/man/ 可以进入 java/src/man/ 目录。 12. 文件的复制粘贴 cp 命令...

    Linux常用的六十条命令

    下面我们将详细介绍 Linux 中常用的六十条命令,帮助您更好地掌握 Linux 的使用。 文件管理 1. pwd命令:显示当前工作目录的路径。 2. ll命令:显示当前目录下的文件和目录列表,包括文件的权限、所有者、大小和...

    java简易版开心农场源码-vim-golf-challenges:vim-高尔夫挑战赛

    我们一直在做的简单的事情应该可以通过很少的按键来完成,但有时我发现我需要做的事情让我觉得,“必须有更好的方法。” 这个挑战只是一个简单的动作并在某个地方输入文本。 启动文件 *temp var1 0 *temp var2 "hi" ...

    postgresql &pg源码安装编译教程

    在开始安装之前,需要准备好基础环境,包括配置主机的/etc/hosts文件,使用vim编辑器编辑文件,添加以下内容: ``` 192.168.99.50 postgres01 192.168.99.51 postgres02 ``` 依赖包安装 接下来,需要安装依赖包,...

    linux系统下各环境配置

    Linux 系统下各环境配置 Linux 系统是一个开源的操作系统,广泛应用于服务器和个人计算机上。 Linux 系统下的环境配置是指在 Linux 系统中对各种环境变量和配置...这些命令可以帮助用户更好地理解和使用 Linux 系统。

    MobaXterm_Setup_7.2

    (安装文件xshell应该是28MB)比SecureCRT小更多了~ 3.绿色,说到这个,很多人估计高兴死,什么,不用安装,双击打开就能用?我插,你怎么不早说?而且没有任何依赖,不需要安装flash,java,.Net等等~ 4.功能强大...

    高级java笔试题-awsome-mac:awsome-mac

    一种用于编辑纯文本文件的程序,建议使用免费开源的编辑器 - GitHub推出的开源编辑器。 通用 - 显示相对行号。 - 高亮多余的空格。 - 内嵌式全功能控制台。 - vim 模式。 - vim 模式的拓展。 - 右侧小地图。 - 对...

Global site tag (gtag.js) - Google Analytics