从零开始vim搭建Java开发环境[视频]

《从零开始vim搭建Java开发环境[视频]》

视频教程

从零开始vim搭建Java开发环境

全屏观看

前言

起初我仅仅是想在手机上搭建一套能开发Java的vim环境。《玩转手机中的linux系统termux并搭建java开发环境》 玩着玩着发现vim真香!不仅能搭建简单的Java开发环境,甚至中大型spring boot项目也能驾驭。最终成品不会输成熟IDE多少。
《从零开始vim搭建Java开发环境[视频]》
为了新手尽可能少踩坑,本文我尽可能写的详细一些,大佬自行跳跃观看。

成品效果

先展示一波最终效果。vim! 一个命令行程序,我第一次见到这效果确实是被惊艳到啦!
图片来自,https://spacevim.org/cn/use-vim-as-a-java-ide/ 我直接引过来了。跟我实测的效果一样。

代码补全

vim-javacomplete2 为 java 项目提供了很好的代码补全功能,配合 autocomplete 模块,可以在编辑代码时实时补全代码,并且可以模糊匹配。
《从零开始vim搭建Java开发环境[视频]》

语法检查

checkers 模块为 SpaceVim 提供了异步语法检查功能,该模块主要包括插件 neomake。 目前支持的项目包括 maven、gradle 以及 eclipse 下的配置文件。
《从零开始vim搭建Java开发环境[视频]》

光标符号文档查询

同样的,这一功能也依赖 lsp 模块,默认的快捷键为 SPC l d 或者 K:
《从零开始vim搭建Java开发环境[视频]》

截图比较多,我就不一一拿过来了,有兴趣可以点上面的链接去看。个人认为,只要有代码补全,和语法检测两个功能,大部分项目就可以开发啦。然而并不仅仅有这些,几乎你能想到的IDE有的功能,都有插件可以实现,或者有替代方案。当然最终效果肯定还是要比收费产品Intellj IDEA有不少差距的。

劝退提醒!折腾vim开发Java值不值?

vim好不好用?B站一个视频说的太好了,建议观看,给我很多灵感。
《上古神器Vim:从恶言相向到爱不释手 – 终极Vim教程01 – 带你配置属于你自己的最强IDE》

Vim是一个程序员中的上古神器。虽然它有一个公认的【难学】的名声,但一旦你熟练使用,它将使你的工作效率提升百倍!

问:把vim折腾成一个能流畅开发Java的IDE有没有必要?值不值?
这个要分情况来看,以我近10年的Java开发经验告诉你,对于大部分人来说是不值得的。

  • 如果你本身不喜欢vim,直接就不用考虑啦!

  • 如果你喜欢vim,那么我会建议你使用(Intellj IDEA + IdeaVim )完全足够啦。本人日常工作中,也是(Intellj IDEA + IdeaVim)组合。

  • 如果你已经不仅仅是喜欢vim,而是着迷于vim。用纯vim才叫爽!又爱折腾,那绝对是超值的。

而且还会带来以下其他开发环境很难达到的效果。

  • 相比较 Intellj IDEA vim更轻巧快捷,几乎可能秒开,比如:临时做少量修改,IDEA还没加载完成,vim已经修改完了。
  • 因为安卓系统是可以通过termux搭建linux环境的,所以完全可以用vim在手机或者平板电脑上搞Java开发。具了解iOS也有类似的软件可能搭建linux环境。安卓设备中的Linux性能有限,先不论能不能安装Intellj IDEA ,小屏使用体验好不好,就目前来说肯定很卡。
  • 使用ssh流畅远程开发维护,技术支持。相比图形化的远程桌面,SSH方式远程对网络要求更低,几乎对网络没有要求,能上网就行。图形化远程网络传输的是图片,SSH传输的是基本就是文本信息。对带宽要求极低,而且省流量。
    地铁实测手机SSH远程服务器做Java开发,持续2小时消息流量约 6MB 现在这个时代,6MB可能都不够刷一条短视频。
    在此之前我有用手机使用向日葵远程自己的电脑做开发,难受到几乎不能用。切出输入法,手机屏幕占了一半,而且手机上的输入法与远程桌面的输入法还有冲突。重点是在地铁信号不稳定,延迟很大,我字打完了,远程桌面有明显的延迟感。因为卡顿,还买了两年的向日葵VIP,只能说比之前好一些,依然会卡。流量消耗也大,估计要有几百MB,因为体验不好,没坚持过 2小时。

如果搭建好了vim 开发环境,随手拿一台可能用SSH的设备就可以开发了,云开发随时随地。甚至一台有蓝牙键盘的电视都能做开发。

准备材料

  • 网络能流畅访问github
    网络问题自己想办法解决,不妨试试你的手机热点,反正我的联通4G热点访问github很快。多处需要用到,做不到这一点就不用尝试了。
  • linux或者macOS或者windows电脑或者手机一台
    本人实测在ubuntu(手机模拟的),CentOS ,macOS都成功搭建了。因为我要考虑支持ssh远程,所以windows暂时没考虑,可以确定的是windows是支持的。

如果能达到上面要求,那么我们就开始折腾了。友情提示,因为不同的环境(系统版本与软件片)可能会有一些小的差异,都会带来一些小坑,我也是因为确实踩了不少坑才想起来写这篇文章的。我会尽量让大家避坑。

我的环境

为了做这个教程,我专门安装CentOS-7-x86_64-Minimal-2003.iso虚拟机。系统刚安装好几乎没做任何设置。
下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/

如果环境不一样也不用担心,大同小异的。
我在
Ubuntu 20.04.2.0 (arm手机),macOS Big Sur 11.2都可能完美安装,步骤几乎一样。不同的地方百度一下你就知道。

安装支持python3的neovim

不是说好了使用vim搭建Java开发环境的吗?挂羊头卖狗肉?客官息怒,不是这样的。
其实我最初就是使用vim+各种插件来搭建Java开发环境的,着实踩坑无数。搭建复杂,不适合vim初学者。直到我无意间发一个款神器 SpaceVim,它几乎帮你配置好了你想要的东西,不有自己东拼西凑踩坑了。

  • SpaceVim 支持什么版本的 Vim/Neovim?
    建议使用 Vim 7.4 或者 Neovim v0.1.7 及其以上版本。为了更好的使用体验,建议使用最新版的 Neovim。

为了大家少走弯路我个人建议先用neovim成功以后在慢慢折腾vim嘛。
neovim跟vim几乎是一样的,这样我就不多介绍了,有兴趣到网上查。

踩坑提醒:必须要支持python3的neovim版本。如果你使用vim也一样,为什么要支持python3,因为很多插件都依赖python3。有些插件项目主页跟本不会提到python3。很多系统会预装vim,但是几乎都是不支持python3的,安装插件时会报错。
我有文章是记录踩这个坑的《Javacomplete needs Python3 support to run!》
《CentOS 安装vim8 + python3》

不同系统版本的官方安装方法:
https://github.com/neovim/neovim/wiki/Installing-Neovim

我这里以CentOS 7为例。详细教程可以看我写的《Centos安装nvim并支持python3》

先安装python3git后面会用到,以下代码都是用root用户执行的。

yum install python3 python3-devel git -y

neovim我并不打算用yum安装,yum不是不行,众所周知yum安装的软件版本一般版本较低。我比较喜欢新一点的。
https://github.com/neovim/neovim/releases/latest

下载最新稳定版本的neovim,写教程之时最新版本是NVIM 0.4.4。下载nvim-linux64.tar.gz
下载好上传到用户目录,用你喜欢的软件上传就好了。命令方式上传:

scp ~/Downloads/nvim-linux64.tar.gz  @vmware:~/
tar -zxvf nvim-linux64.tar.gz
mv nvim-linux64 /usr/local/
cd /bin
ln -s /usr/local/nvim-linux64/bin/nvim nvim

这要就安装完成了,可以运行nvim --version查看是否安装成功和版本信息。

创建用户
初于安全考虑,强烈不建议使用root用户做日常开发。所以我们创建一下用户。如果你就想用root也不是不可能,操作都是一样的。以有普通用户的话可以忽略

# 创建名为vimer的用户,用户名没有要求,根据自己喜好
adduser vimer
# 设置vimer的密码
passwd vimer
# 切换到 vimer用户
su vimer

有时还是需要提升权限的,让vimer用户可以使用sudo提升权限。
root 用户执行 visudo找到 root ALL=(ALL) ALL并在下面加一行

vimer   ALL=(ALL)       ALL

《从零开始vim搭建Java开发环境[视频]》

增加python3支持,使用vimer用户执行:

pip3 install --user --upgrade pynvim

查看nvim是否已经支持python3,打开nvim执行以下命令。

:checkhealth

《从零开始vim搭建Java开发环境[视频]》
不用担心,只要你上面命令都执行了,应该已经支持啦。

安装SpaceVim

官方教程在此:https://spacevim.org/cn/quick-start-guide/

这里需要考验你的网络的时候到了。也许联通4G热点能到你。
如果你有加速器,这里提一下终端设置代理小技巧:

export http_proxy=http://192.168.0.101:1087;export https_proxy=http://192.168.0.101:1087;

一键安装脚本

curl -sLf https://spacevim.org/cn/install.sh | bash

如下图:
《从零开始vim搭建Java开发环境[视频]》
直到显示下面内容说明已经安装成功啦。

安装已完成!
==============================================================================
==               打开 Vim 或 Neovim,所有插件将会自动安装                   ==
==============================================================================

感谢支持 SpaceVim,欢迎反馈!

这时你在命令行中运行 nvim会发现你的nvim的样子已经大变。

《从零开始vim搭建Java开发环境[视频]》
按k Enter,然后:q退出重新进。就发现插件开始自动安装了。
《从零开始vim搭建Java开发环境[视频]》
运气好,一次就安装成功了!我就遇到过几次,第一次安装会失败,再次重新进又会把安装失败的重新安装成功了,如上图。

踩坑预警 [vimproc] vimproc’s DLL

如果你运行nvim报了以下的错误。
[vimproc] vimproc’s DLL: “/home/vimer/.SpaceVim/bundle/vimproc.vim/…oc_linux64.so” is not found. Please read :help vimproc and make it.

解决办法详解:
https://blog.csdn.net/lxyoucan/article/details/114384742

安装gcc相关用于编译:

sudo yum install gcc gcc-c++ -y

编译vimproc

cd ~/.SpaceVim/bundle/vimproc.vim
sudo make

《从零开始vim搭建Java开发环境[视频]》

解决乱码

如果你发现你显示的不是像我截图里的那样的,而是有乱码?之类的。那是因为字体的原因。
只要安装nerd-font字体,并设置终端模拟器的字体为nerd-font

以macOS为例。
使用Homebrew安装nerd-font字体,顺序运行如下命令行:

brew tap homebrew/cask-fonts
brew install font-hack-nerd-font --cask

设置iterm
《从零开始vim搭建Java开发环境[视频]》
设置Mac自带终端。
《从零开始vim搭建Java开发环境[视频]》
解决SpaceVim图标在termux中乱码
字体文件下载

把这个字体文件上传到 /data/data/com.termux/files/home/.termux/font.ttf目录即可解决SpaceVim 乱码的问题。

没有乱码真舒服!

其他情况,就不举例啦,不管是什么终端模拟器,只要设置好字体就可以啦。

oh my zsh

这个不是必须安装的,但是自从用了oh my zsh我就回不去啦。

安装配置zsh

sudo yum install -y zsh

查 zsh位置

[vimer@localhost vimproc.vim]$ which zsh
/usr/bin/zsh

设置zsh 为默认的。

chsh -s /usr/bin/zsh

如果执行结果如下:

chsh -s /usr/bin/zsh
Changing shell for vimer.
chsh: "/usr/bin/zsh" is not listed in /etc/shells.
Use chsh -l to see list.

编辑sudo nvim /etc/shells并增加一行/usr/bin/zsh
《从零开始vim搭建Java开发环境[视频]》
然后重新执行就不会报错啦:

[vimer@localhost vimproc.vim]$ chsh -s /usr/bin/zsh
Changing shell for vimer.
密码:
Shell changed.

然后下次重新登录vimer用户就会使用zsh了。

安装oh my zsh

官方主页:https://ohmyz.sh/
一条命令搞定安装:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

《从零开始vim搭建Java开发环境[视频]》
根据我个人习惯我把这个配置重命名。

# 重命名
mv ~/.zshrc ~/.zshrc.oh-my-zsh

nvim ~/.zshrc增加下面一行。

#加载oh my zsh插件
source ~/.zshrc.oh-my-zsh

安装高亮显示插件
我首先要做的是安装一个名为zsh-syntax-highlighting的插件。它为ZSH Shell提供语法高亮显示。

cd $HOME/.oh-my-zsh/plugins
#下载代码
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git
#自动配置
echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

source ~/.zshrc 发现输入指令可以高度显示了。
《从零开始vim搭建Java开发环境[视频]》
自动补全zsh-autosuggestions

cd $HOME/.oh-my-zsh/plugins
#下载代码
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
nvim ~/.zshrc.oh-my-zsh

修改,加入zsh-autosuggestions
《从零开始vim搭建Java开发环境[视频]》
source ~/.zshrc
这下可以自动补全啦,方便!
至此oh my zsh插件安装完成。

安装JDK11

这也是我遇到的一个坑,目前JDK8还算是主流。我之前就是安装JDK8的,SpaceVim代码补全就是不出来,也不报错。我有文章记录如下:《linux安装SpaceVim java开发环境踩坑》

这个估计能坑到一些人,因为官方文档中没有强调过这个。关键是功能出不来还不报错。

下载
https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

根据你自己的平台下载对应的jdk,一般来说下载jdk-11.0.10_linux-x64_bin.tar.gz
创建目录~/.soft用于保存jdk.

mkdir ~/.soft

上传文件到~/.soft目录。

scp ~/Downloads/jdk-11.0.10_linux-x64_bin.tar.gz  vimer@vmware:~/.soft

解压:

tar -zxvf jdk-11.0.10_linux-x64_bin.tar.gz

解压后的目录是:/home/vimer/.soft/jdk-11.0.10
配置环境变量
编辑 nvim ~/.zshrc

#JAVA
export JAVA_HOME=/home/vimer/.soft/jdk-11.0.10
export PATH=$PATH:$JAVA_HOME/bin:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

重新加载环境变量
source ~/.zshrc
检验java 是否配置成功!

 ~ java -version
java version "11.0.10" 2021-01-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)

这样就说明安装成功啦!

代码补全

这是最关键的一步,这步不成功,其他的全白费。SpaceVim为我们做的很多,我们只要做简单的配置即可。
下载eclipse.jdt.ls

http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/jdtls/snapshots/jdt-language-server-latest.tar.gz
这个链接下载比较慢,推荐使用迅雷等下载工具下载,耐心等待吧。

cd ~/.SpaceVim.d
#创建javalsp所需目录
mkdir -p ~/.SpaceVim.d/javalsp/.cache/javalsp

把下载下来的内容解压到~/.SpaceVim.d/javalsp目录
解压后的目录结构如下:
《从零开始vim搭建Java开发环境[视频]》
配置 nvim ~/.SpaceVim.d/init.toml
在文件下面增加如下内容:

[[layers]]
  name = "lang#java"

[[layers]]
  name = "lsp"
  filetypes = [
    "java"
  ]
  [layers.override_cmd]
    java = [
    "java",
    "-Declipse.application=org.eclipse.jdt.ls.core.id1",
    "-Dosgi.bundles.defaultStartLevel=4",
    "-Declipse.product=org.eclipse.jdt.ls.core.product",
    "-Dlog.protocol=true",
    "-Dlog.level=NONE",
    "-noverify",
    "-Xmx1G",
    "-jar",
    "~/.SpaceVim.d/javalsp/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar",
    "-configuration",
    "~/.SpaceVim.d/javalsp/config_linux",
    "-data",
    "~/.SpaceVim.d/javalsp/.cache/javalsp"
    ]

这里的-jar -configuration -data 的值根据实际部署位置调整即可。
特别是-jar项,因为jar的版本一直在升级,很有可能不一样!

-configuration根据当前系统,选择对应的配置文件:

config_win, Windows 系统
config_mac, MacOS 系统
config_linux, Linux 系统

配置完成以后,下一次打开nvim 会自动安装一些插件。
《从零开始vim搭建Java开发环境[视频]》
这样插件显然都是跟java相关的内容。
《从零开始vim搭建Java开发环境[视频]》
安装完以后,退出nvim。新创建一个目录写个java文件测试一吧!

踩坑提醒: 千万不要在文件多的目录创建java测试,一开始我不懂,把Java文件创建在用户目录
~,这样插件会把用户目录的所有文件当作当前项目遍历,智能提示来的非常的慢。
《从零开始vim搭建Java开发环境[视频]》
可以按 Space(空格) l r m 来运行当前项目。运行结果如下:
《从零开始vim搭建Java开发环境[视频]》

代码格式化

细心的朋友会发现,现在代码格式化(Space b f)并不能正常运行。会报如下的错误:

Neoformat: formatters java failed to run

如何解决呢?详见:《SpaceVim踩坑之java代码格式化》

  1. 下载 google-java-format
    我的保存路径如下:~/.SpaceVim.d/lib/google-java-format-1.9-all-deps.jar
    这个路径放哪里行,我主.SpaceVim.d目录为了方便我后期移到其他机器上使用。
scp  google-java-format-1.9-all-deps.jar vimer@vmware:~/.SpaceVim.d/lib
  1. 配置文件vim ~/.SpaceVim.d/init.toml增加一行

[[layers]]
name = “lang#java” 下面增加如下一行。

 java_formatter_jar = "~/.SpaceVim.d/lib/google-java-format-1.9-all-deps.jar"

《从零开始vim搭建Java开发环境[视频]》
重启nvim编辑java文件这下可以java代码格式化了。
可以通过:Neoformat格式化,或者快捷键:空格 b f

这下可以愉快的格式化java代码啦。

语法树报错

默认按F2可以显示语法树,但是你会发现会报错如下:
Tagbar: Exuberant ctags not found!
Please download Exuberant Ctags from ctags.sourceforge.net and install it in a directory in your
$PATH or set g:tagbar_ctags_bin.
Press ENTER or type command to continue

《从零开始vim搭建Java开发环境[视频]》
原因分析:缺少ctags,那我们就来安装一下。
macOS的同学可以参考:《macOS中SpaceVim搭建java开发环境》

CentOS7

sudo yum -y install ctags

重新打开nvim发现问题已经成功解决了!

参考文献

《使用 Vim 搭建 Java 开发环境》
https://spacevim.org/cn/use-vim-as-a-java-ide/

《Javacomplete needs Python3 support to run!》
《CentOS 安装vim8 + python3》
《macOS中SpaceVim搭建java开发环境》

    原文作者:ITKEY_
    原文地址: https://blog.csdn.net/lxyoucan/article/details/114444730
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞