按题主的意思, 应该是编辑好代码后, 按一个快捷键直接自动编译并运行.
方案
在vim中, 可通过:!cmd来执行外部命令. 对应于题主写的单文件:
:!javac % #=> 编译, % 为正在编辑的文件名
:!java %:r #=> 运行, %:r 去掉文件名的后缀
原理如此, 只是接下来设定键映射. 在.vimrc文件中, 添加以下内容
autocmd BufNewFile,BufReadPre *.java nmap rn :!javac %:!java %:r
意为, 新建或读入.java文件前, 自动映射快捷钕rn到指定命令.
当然你也可以设置成两个快捷键. 这里并不推荐使用Command快捷键, 而是使用Leader. 而事实上, 终端的vim也不能映射Command, 只有MacVim可以.
进阶一: 多文件
多文件其实也没什么, 只是在javac时, 换%为*.java, 换%:r为真正的main所在文件名.
进阶二: 项目
如果你的项目有固定的结构, 本质上是差不多的.
在编译时, 可能添加-cp选项指定依赖路径, 添加-d选项指定输出路径. 如要打包为jar, 再加快捷键.
你可以在项目根目录定义一个.project属性文件, 描述项目结构和依赖, 再用VimL语言或python语言, 读取属性文件, 分别编译再输出. 至于依赖, 去~/.m2/目录找, 它们的位置非常有规律.
现在, 你可以将键映射到上述操作了, 不就是快捷键吗, vim多的是. 除了Ctrl/Alt/Shift, 还有每个字母和数字, 还有leader加任意长度字母和数字, leader不够了, 还是mapleader前缀. 对了, 你可能更喜欢F1-F12.
进阶三: 依赖
OK, 你基本上已经重新发明了maven了, 只是差自动下载依赖的功能. 但python的网络库那么