我正在研究如何在 vim 中使用快速的 java 语法检查器。我受到@Fidel 的回答的启发(感谢示例检查器!)但这还不够,因为我需要它以独立的方式工作。
以下是为了获得可运行命令而必须完成的操作的分步过程:
# download and generate .java classes
wget https://repo1.maven.org/maven2/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar -O antlr4-4.5.3.jar
wget https://raw.githubusercontent.com/antlr/grammars-v4/master/java8/Java8.g4 -O Java8.g4
java -jar antlr4-4.5.3.jar ./Java8.g4
# prepare directory structure and compile
mkdir -p checker && mv *.java ./checker/
javac -cp antlr4-4.5.3.jar ./checker/*.java
Class-Path: antlr4-4.5.3.jar
Main-Class: checker.<name-of-your-checker-class>
# package into a jar file and run to test everything works
jar cfm checker.jar Manifest.txt checker/*.class
java -jar ./checker.jar <filename-you-want-to-run-syntax-check-against>
为了我在 vim 中的使用,我创建了一个简单的 shell 脚本来包装运行 java jar 的过程的执行,如下所示:
#!/bin/bash
DIR=$(readlink -f $0)
DIR=${DIR:0:(-3)} # put the length of the script name here instead of '3'
java -jar ${DIR}checker.jar $@
然后使其可执行并在$PATH下符号链接:
chmod a+x <file-name>
sudo ln -s /path/to/the/script /usr/bin/java-syntax
最后将这样的键绑定添加到.vimrc 文件中(即在按下 F10 键时映射运行语法检查):
" java syntax validation
map <F10> :!java-syntax % <CR>
我还将进程存储到github repository 中,其中所有命令都准备在一个makefile 中,运行make 就足够了,以便构建和打包检查器。随意将其用作灵感。