Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
139 lines
4.5 KiB
Markdown
139 lines
4.5 KiB
Markdown
---
|
||
title: "SpaceVim lang#java 模块"
|
||
description: "这一模块为 Java 开发提供支持,包括代码补全、语法检查、代码格式化等特性。"
|
||
lang: zh
|
||
---
|
||
|
||
# [可用模块](../../) >> lang#java
|
||
|
||
<!-- vim-markdown-toc GFM -->
|
||
|
||
- [模块描述](#模块描述)
|
||
- [功能特性](#功能特性)
|
||
- [启用模块](#启用模块)
|
||
- [模块选项](#模块选项)
|
||
- [快捷键](#快捷键)
|
||
- [导包相关快捷键](#导包相关快捷键)
|
||
- [代码生成相关快捷键](#代码生成相关快捷键)
|
||
- [代码格式化](#代码格式化)
|
||
- [Maven](#maven)
|
||
- [交互式编程](#交互式编程)
|
||
|
||
<!-- vim-markdown-toc -->
|
||
|
||
## 模块描述
|
||
|
||
这一模块为 Java 开发提供支持,包括代码补全、语法检查、代码格式化等特性。
|
||
|
||
## 功能特性
|
||
|
||
- 代码补全
|
||
- 代码格式化
|
||
- 重构
|
||
- 语法检查
|
||
- 交互式编程:需要 java8 的 jshell
|
||
- 调试
|
||
|
||
## 启用模块
|
||
|
||
可通过在配置文件内加入如下配置来启用该模块:
|
||
|
||
```toml
|
||
[[layers]]
|
||
name = "lang#java"
|
||
```
|
||
|
||
## 模块选项
|
||
|
||
- `format_on_save`: 启用/禁用保存文件时自动格式化,默认的值为 `false`,
|
||
可以使用如下配置启用该功能:
|
||
```toml
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
format_on_save = true
|
||
```
|
||
- `java_formatter_jar`: 设置 [谷歌格式化工具](https://github.com/google/google-java-format) 的具体路径。
|
||
```toml
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
java_formatter_jar = 'path/to/google-java-format.jar'
|
||
```
|
||
- `java_file_head`: 默认的文件头,当新建 Java 文件时自动加入。
|
||
```toml
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
java_file_head = [
|
||
'/**',
|
||
' * @author : `fnamemodify(expand("~"), ":t")`',
|
||
' * @created : `strftime("%Y-%m-%d")`',
|
||
'**/',
|
||
''
|
||
]
|
||
```
|
||
|
||
## 快捷键
|
||
|
||
### 导包相关快捷键
|
||
|
||
| 模式 | 快捷键 | 按键描述 |
|
||
| ------------- | --------- | ------------------ |
|
||
| Normal | `SPC l I` | 导入所有缺失的类 |
|
||
| Normal | `SPC l R` | 删除多余的导包 |
|
||
| Normal | `SPC l i` | 智能导入光标下的类 |
|
||
| Insert | `Ctrl-j I` | 导入所有缺失的类 |
|
||
| Insert | `Ctrl-j R` | 删除多余的导包 |
|
||
| Insert | `Ctrl-j i` | 智能导入光标下的类 |
|
||
|
||
### 代码生成相关快捷键
|
||
|
||
| 模式 | 快捷键 | 按键描述 |
|
||
| ------------- | ----------- | ------------------------------------- |
|
||
| Normal | `SPC l g A` | generate accessors |
|
||
| Normal/Visual | `SPC l g s` | generate setter accessor |
|
||
| Normal/Visual | `SPC l g g` | generate getter accessor |
|
||
| Normal/Visual | `SPC l g a` | generate setter and getter accessor |
|
||
| Normal | `SPC l g M` | generate abstract methods |
|
||
| Insert | `Ctrl-j s` | generate setter accessor |
|
||
| Insert | `Ctrl-j g` | generate getter accessor |
|
||
| Insert | `Ctrl-j a` | generate getter and setter accessor |
|
||
| Normal | `SPC l g t` | generate toString function |
|
||
| Normal | `SPC l g e` | generate equals and hashcode function |
|
||
| Normal | `SPC l g c` | generate constructor |
|
||
| Normal | `SPC l g C` | generate default constructor |
|
||
|
||
### 代码格式化
|
||
|
||
默认的代码格式化快捷键是 `SPC b f`,该快捷键由 `format` 模块定义,同时也可以通过 `g =` 来对齐整个文档。
|
||
|
||
为了使 format 模块支持 Java 文件,需要安装 [google's formater jar](https://github.com/google/google-java-format)。
|
||
同时,需要设置模块选项`java_formatter_jar`:
|
||
|
||
```toml
|
||
[[layers]]
|
||
name = 'lang#java'
|
||
java_formatter_jar = 'path/to/google-java-format.jar'
|
||
```
|
||
|
||
### Maven
|
||
|
||
| 快捷键 | 功能描述 |
|
||
| ----------- | ------------------------------ |
|
||
| `SPC l m i` | Run maven clean install |
|
||
| `SPC l m I` | Run maven install |
|
||
| `SPC l m p` | Run one already goal from list |
|
||
| `SPC l m r` | Run maven goals |
|
||
| `SPC l m R` | Run one maven goal |
|
||
| `SPC l m t` | Run maven test |
|
||
|
||
### 交互式编程
|
||
|
||
启动 `jshell` 交互进程,快捷键为: `SPC l s i`。
|
||
|
||
将代码传输给 REPL 进程执行:
|
||
|
||
| 快捷键 | 功能描述 |
|
||
| ----------- | --------------------------- |
|
||
| `SPC l s b` | 发送整个文件内容至 REPL |
|
||
| `SPC l s l` | 发送当前行内容至 REPL |
|
||
| `SPC l s s` | 发送已选中的内容至 REPL |
|