玩转手机中的linux系统termux并搭建java开发环境

2023-05-16

目标

春节在家,偶尔要出门在外。出门在外的时候,没有电脑可以写代码。那么代码瘾上来了怎么办呢?我在想能不能在手机上写代码呢?

手机远程电脑是一种方式,但是远程开发这种方式,它的要求比较高,首先你要有台可以远程开发的电脑(24小时),而且你的手机网络环境要不卡。
在这里插入图片描述

然后你的流量还不缺。
因为我经常出入地铁,地下室等网络条件不稳定的地方,所以远程开发这种方式有局限性。

在这里插入图片描述
那么能不能直接在手机上搭建开发环境呢?今天它来了。以java为例,其他语言理论上也是可以的。
在这里插入图片描述

视频展示

手机Termux写Java代码

全屏观看

Termux下载

Termux官网:
https://termux.com/

官网推荐下载地址:
https://f-droid.org/packages/com.termux/

SSH远程管理

为了操作方法,我建议使用电脑ssh连接手机中的 termux来操作,连接方法见:
安装openssh

apt update
apt install openssh

启动sshd服务

sshd

这样手机上就安装好了 ssh并启动了服务。

哇,竟然真可以!这样直可以把安卓手机当Linux用啦!我在继续研究一下。
设置自动启动ssh服务

echo "sshd" >> ~/.bashrc

手机查看当前用户名

whoami

我的显示结果为:

u0_a131

手机查看当前ip

ifconfig -a

我的手机当前的ip为 :192.168.101.156
修改密码

passwd

pc连接ssh

ssh -p 8022 u0_a131@192.168.101.156

输入我新设置的密码 123456,成功进来啦!!!

Touch Keyboard

在这里插入图片描述

默认的只有一行,没有⬅️ ➡️ 按键使用起来不太方便,我自定义了按钮。
详细说明:https://wiki.termux.com/wiki/Touch_Keyboard

简洁教程:
编辑 ~/.termux/termux.properties文件,文件中写入以下内容:

extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]

在Termux中编辑这个文件哈,如果已经进入了Linux发行版本,要用exit暂时退出到termux;

使用配置立马生效:

termux-reload-settings

安装Linux发行版

我想在Termux 安装jdk11试了几种方式没有安装成功,安装jdk8到是可以成功。所以想安装个发行版本试试,看看能否成功。
Termux提供了一个proot-distro软件包,用于管理Termux内部的Linux发行版。据说几乎没有性能损失。

您可以通过执行以下命令安装该实用程序
安装proot-distro

pkg install proot-distro

目前,它支持以下发行版:

Alpine Linux(别名:alpine)-最小的可用发行版。
Arch Linux(别名:archlinux)
Debian 10 Buster(别名:debian-buster)
Kali Nethunter(别名:nethunter)-当前只有最小的构建。
Ubuntu 18.04 / 20.04(别名:ubuntu-18.04 / ubuntu-20.04)
要安装发行版,只需运行以下命令(假设已安装proot-distro):

proot-distro install <alias>

我安装的 是ubuntu-20.04,如下命令:

proot-distro install ubuntu-20.04

我的执行结果如下:

$ proot-distro install ubuntu-20.04
[*] Installing Ubuntu 20.04...
[*] Creating directory '/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu-20.04'...
[*] Creating directory '/data/data/com.termux/files/usr/var/lib/proot-distro/dlcache'...
[*] Downloading rootfs tarball...

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   663  100   663    0     0    352      0  0:00:01  0:00:01 --:--:--   352
100 25.0M  100 25.0M    0     0  1235k      0  0:00:20  0:00:20 --:--:-- 1442k

[*] Checking integrity, please wait...
[*] Extracting rootfs, please wait...
[*] Writing '/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu-20.04/etc/profile.d/termux-proot.sh'...
[*] Writing resolv.conf file (NS 1.1.1.1/1.0.0.1)...
[*] Writing hosts file...
[*] Registering Android-specific UIDs and GIDs...
[*] Running distro-specific configuration steps...
[*] Installation finished.

Now run 'proot-distro login ubuntu-20.04' to log in.

安装非常快,我都在怀疑是否真的安装成功了。

安装以后,proot-distro login <alias>用来登录。我的登录命令如下:

$ proot-distro login ubuntu-20.04
root@localhost:~# ls
root@localhost:~# pwd
/root

发现登录后就直接是root权限了,有点懵!ubuntu 就 25MB吗?

查询系统版本:

root@localhost:~# cat /etc/issue
Ubuntu 20.04.1 LTS \n \l

发现现在的版本确实是ubuntu 20.04版本了,我想这个可能是精简版本的吧。

这是可用的proot-distro功能的基本概述:

  • proot-distro list -显示受支持的发行版及其状态。
  • proot-distro install -安装发行版。
  • proot-distro login -启动分发的根外壳。
  • proot-distro remove -卸载发行版。
  • proot-distro reset -重新安装发行版。
    运行proot-distro help以获取内置的使用信息。请注意,每个命令(“ list”除外)都有自己的内置用法信息,可以通过提供“ --help”作为参数来查看它们。

设置自启动ubuntu-20.04
每次手动启动 ubuntu很麻烦,还是设置成自启动方便一些。

echo "proot-distro login ubuntu-20.04" >> ~/.bashrc

美化终端oh my zsh

安装zsh

自从使用了oh my zsh后,感觉就回不去啦,漂亮的颜色,实用的插件。必须配置一下。
更新一下apt-get

apt-get update

安装zsh

apt-get install zsh

查 zsh位置

which zsh

一般位置/usr/bin/zsh
切换到zsh,执行下面命令:

chsh -s /usr/bin/zsh

这个时候如果重启shell你可能会发现,一些常用命令无法使用了,比如之前可以正常使用的:vim。
所以把termux带的命令加到环境变量里,修改zsh的环境变量文件~/.zshrc

vim ~/.zshrc

增加以下内容:

#TERMUX
export TERMUX_HOME=/data/data/com.termux/files/usr
export PATH=$PATH:$TERMUX_HOME/bin:.

这样就可以正常使用之前在TERMUX中安装的一些命令了。
重启shell 就可以使用zsh了,下面我们来安装一下oh my zsh插件。

安装oh mhy zsh插件

如果访问github不卡,在线安装方法可以参考:
《Oh My ZSH让你的终端美如画》

如果访问github卡,可以使用离线安装方法:
《CentOS7安装Oh My ZSH解决raw.github.com访问不畅》

这里我使用的是离线版本安装方式,因为比较快也省的我安装插件了。

下载Oh My ZSH离线安装包
https://download.csdn.net/download/lxyoucan/15178337

解压oh_my_zsh_*.zip至用户目录

注意⚠️:如果用户目录中已经有.zshrc请先备份。

cp ~/.zshrc ~/.zshrc_bak

上传oh_my_zsh_*.zip到用户目录比如:/root,并使用zip命令解压,比如:

unzip oh_my_zsh_20210210离线安装包.zip
  • .zshrc.oh-my-zsh 文件是Oh My ZSH配置文件
  • .zshrc 是zsh默认配置文件,shell初始化时先加载它,环境变量一般在这里设置。

解压以后,重新进入shell就发现 Oh My ZSH已经可以正常使用了。

环境变量迁移
把你的环境变量信息,复制粘贴到 ~/.zshrc就可以了。

安装jdk11

下载解压

下载jdk11我下载的是解压版本的:jdk-11.0.10_linux-aarch64_bin.tar.gz
解压:

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

随便解压一个目录就可以了。
我解压的目录是:/data/data/com.termux/files/home/java/jdk-11.0.10/

修改环境变量配置vim ~/.zshrc,增加如下内容:

#JDK11
export JAVA_HOME=/data/data/com.termux/files/home/java/jdk-11.0.10
export PATH=$PATH:$JAVA_HOME/bin:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

这样jdk就配置完成了。

root@localhost: ~ # java --version                  
java 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)

Ubuntu安装设置中文

在我设置完成zsh后,我发现在编译java代码的时候会遇到中文乱码的问题。之前在用bash时是没有中文乱码的,我猜测是哪个地方的编码配置有问题导致的。然后我设置一下中文环境就解决了中文乱码的问题了,也许有更简单的解决办法。

查看当前语言环境

echo $LANG

查看当前系统是否有中文语言包

locale -a

执行结果如下:

localhost# locale -a
C
C.UTF-8
POSIX
zh_CN.utf8
zh_SG.utf8

如果没有中文则,安装中文语言包。

apt install language-pack-zh-hans

修改系统环境变量为中文

然后,修改/etc/environment(在文件的末尾追加):

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

再修改/var/lib/locales/supported.d/local(没有这个文件就新建,同样在末尾追加):

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312

最后,执行命令:

$ sudo locale-gen

对于中文乱码是空格的情况,安装中文字体解决。理论上下面中文字体选一个就可以了。

$ sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

以上,问题解决,中文显示正常。😃
现在是不是中文环境,可以运行 date命令看一下。

localhost# date
2021年 02月 17日 星期三 12:38:08 UTC

安装VIM常用插件

我在使用这个手机linux中,使用的最多的软件可能就是vim文本编辑器啦,插件肯定不能少。

nerdtree

文件管理好用的插件
安装方法:
https://github.com/preservim/nerdtree

~/.vim/pack/vendor/start/nerdtree

安装vim中文帮助文档

安装方法:
https://github.com/yianwillis/vimcdoc
~/.vim/pack/foo/start/vimcdoc
创建这个文件夹就可以了。

上面这两个插件,我电脑中本身就有,直接复制过去就可以了。

安装智能提示插件YouCompleteMe

注意:⚠️最终我没有使用YouCompleteMe,而是使用了SpaceVim体验更佳。所以此节可以跳过!
如果你的vim不支持python3,处理方法可以参考此节。

直接按照官方文档安装即可。https://github.com/ycm-core/YouCompleteMe

这是我的安装心得。
《macOS big Sur安装VIM插件YouCompleteMe爬坑记录》

细节操作参考上面的链接就可以了,我大概记录一下,我执行过的命令吧!

apt install build-essential cmake vim-nox python3-dev
apt install mono-complete golang nodejs default-jdk npm
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --java-completer

因为我之前使用Termux安装的vim不支持python3,所以要用apt在安装一下,apt安装完成后,发现vim还是以前的版本的。

# 备份一下Termux中安装的vim
cp /data/data/com.termux/files/usr/bin/vim /data/data/com.termux/files/usr/bin/vim-t
# 删除Termux中 vim,让新安装的vim可以正常使用
rm -rf /data/data/com.termux/files/usr/bin/vim

查询是否支持python3

vim --version | grep python
➜  ~ vim --version | grep python
+cmdline_hist      +langmap           -python            +visual
+cmdline_info      +libcall           +python3           +visualextra
链接方式: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lcanberra -lacl -lattr -lgpm -ldl     -L/usr/lib/python3.8/config-3.8-aarch64-linux-gnu -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --java-completer

理论上这样组件就可以正常工作了!
TODO:
这个组件我在mac上安装成功了,直接把mac上的程序包放到ubuntu上使用,无法正常启动。因为春节在家没有网,全靠流量的,这个组件太大,等有网络在从头搭一下试试。

SpaceVim

在我绞尽脑汁在安装各种vim插件,来让我在vim下开发java成为可能的时候。无意中发现了这个神器!
评价:**简单!方便!舒服!**安装体验对比其他的vim插件来说简直太舒服了。

安装其他的插件,各种踩坑,比如:YouCompleteMe,coc.nvim 实现java智能提示。过程中总会有点磕磕绊绊,网上搜索到解决办法,真的没这个爽,一步到位。一条龙服务的感觉。

安装非常简单,官方中文文档:
https://spacevim.org/cn/quick-start-guide/

一键安装

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

一点点小缺点:因为手机性能是无法跟电脑比的,所以在使用这个SpaceVim插件以后,用vim打开文件会有一些慢,但是打开以后就不算慢了。毕竟鱼和熊掌不能兼得。

字体乱码问题

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

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

设置iterm
在依次点击(或者直接使用快捷键command+O)Profiles->Open Profiles…,选择一个你的Profiles,我的是⭐️Default,点击Edit Profiles…,在弹出界面选择Text,在界面底部勾选☑️Use a different font for non-ASCII text,选择Change Font,在Family栏下方找到并选定DroidSansMono Nerd Font或者是Hack Nerd Font。退出Profiles界面。
查看:

Java智能提示支持

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

配置javalsp

这里我部署在 ~/.config/javalsp目录,这个可以根据需要自行修改,如果修改了,则上面配置文件中的路径也要同步修改。

#创建javalsp所需目录
mkdir -p ~/.config/javalsp/.cache/javalsp

下载eclipse.jdt.ls
默认下载速度很慢,推荐使用迅雷下载。
把下载下来的文件解压到 ~/.config/javalsp目录。我解压后的路径如下:

~/.config/javalsp $ ls
config_linux    config_mac      config_ss_linux config_ss_mac
config_ss_win   config_win      features        plugins

修改配置

编辑SpaceVim配置文件~/.SpaceVim.d/init.toml

vim ~/.SpaceVim.d/init.toml

SpaceVim默认是不开启java智能提示的,需要手动开启。增加以下内容:

[[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",
    "~/.config/javalsp/plugins/org.eclipse.equinox.launcher_1.6.0.v20200915-1508.jar",
    "-configuration",
    "~/.config/javalsp/config_linux",
    "-data",
    "~/.config/javalsp/.cache/javalsp"
    ]

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

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

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

配置完成以后,下一次打开vim 会自动安装一些插件。

在这里插入图片描述

虽然下次打开.java文件的时候,就可以有语法检查,代码智能提示啦。到这我们的最初目标基本就实现了。

SpaceVim 与普通 vim 切换

我这里说的普通vim就是指几乎不安装插件的vim。

SpaceVim 虽好,但是相对普通的vim来说太重了些。在做源码开发(比如:Java)开发,我会首选 SpaceVim来编辑代码,毕竟智能提示很好,质变!

在电脑上运行 SpaceVim速度不成问题,但是手机上还是有明显卡顿的。

但是如果普通就编辑个配置文件,修改参数的。在手机上运行 SpaceVim还是太卡了。
我在手机(坚果R1)上测试加载速度:

  • 普通vim 几乎秒开,加载速度不到1秒,几乎感觉不到延迟。回车按下时vim就打开了。
  • 安装了SpaceVim插件的vim,加载速度在 5~7秒。 这个体验就有些难受了。
    macOS电脑上,打开SpaceVim,加载速度不到1秒,所以电脑上不用切。
    我的想法:
    普通vim – 普通文件修改
    SpaceVim --当编程IDE使用

切换到普通vim

安装完SpaceVim后

  • ~/.vim 文件被 备份成 ~/.vim_back,并且会新建一个软链接,~/.vim -> ~/.SpaceVim
  • ~/.vimrc ->~/.vimrc_back
    那么我们只需要把软连接修改成~/.vim即可使用原来的配置了。
#修改成 vim
ln -snf ~/.vim_back ~/.vim

关于配置文件,建议保存在~/.vim_back/vimrc

# 此命令只执行一次即可!
mv ~/.vimrc_back ~/.vim_back/vimrc

切换到SpaceVim

#修改成 SpaceVim
ln -snf ~/.SpaceVim ~/.vim

别名快捷切换

如果要经常切换,那么上面的命令要经常执行。记我可记不住,就算记住了也麻烦。所以加个别名吧!
编辑~/.zshrc增加以下两行。

alias usevim='ln -snf ~/.vim_back ~/.vim && echo "vim普通版已启用"'
alias usesvim='ln -snf ~/.SpaceVim ~/.vim && echo "SpaceVim已启用"'

以后想使用 vim普通版本就执行:usevim
想使用SpaceVim就执行:usesvim
这样就可以快速切换了。

➜  ~ usevim
vim普通版已启用
➜  ~ usesvim
SpaceVim已启用

neovim(推荐)

如果感觉使用上面的切换还是感觉麻烦,那么还有一个办法。就是安装neovim用于使用SpaceVim插件。普通的vim用于普通的文件的编辑。
SpaceVim官网比较推荐使用neovim的。

  • neovim 启用 SpaceVim
  • vim 不启用 SpaceVim
    这样以后普通 文件就 vim filename 编辑写代码就用 nvim filename 这样就不用切来切去了。

因为很多插件都要求有python3支持,所以使用以下命令安装。

sudo apt-get install python3-neovim

安装完成以后,使用nvim命令编辑文件默认就有SpaceVim 功能了。

让vim使用普通形式:

#修改成 vim
ln -snf ~/.vim_back ~/.vim

这样就可以完成配置了。

为什么可以实现这样的功能呢?
因为在安装了SpaceVim后,vim做了软链接,其实nvim也做了软链接。
如下:
~/.config/nvim -> ~/.SpaceVim
知道这个原理就可以实现修改软链接来配置是否开启SpaceVim.

图形化

一开始折腾手机上的操作系统时第一个想折腾的就是图形界面,因为总觉得只有能展现图形界面了我才认为他是真正的操作系统。

毕竟手机屏幕小,真正用的时候我发现图形化的必要不是很大,本文暂时就不写了。

有需要的朋友可以看一下我之前写的文章。
《Android手机运行图形界面的LINUX环境》

当然如果通过电脑远程控制手机图形界面,那就可以类似老罗的TNT了,而且还真有一定生产力。

解决SpaceVim图标在termux中乱码

字体文件下载

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

没有乱码真舒服!这下感觉已经很代完美了!

修改欢迎提示语

在这里插入图片描述
默认的欢迎语,刚开始还有点帮助,熟练了就不需要了。

修改欢迎语,愉悦自己!

vim $PREFIX/etc/motd

在这里插入图片描述

vim 自选组件

2021年2月27日补允。

上面的SpaceVim 确实不错,也很适合vim新手,它的集成很方便。在我看来SpaceVim就像是一台组装好的电脑主机,并且帮你做了一系列的优化。自己安装vim组件就像是自己装机,要踩很多坑。

如果在性能好的电脑上使用,我倾向与直接使用SpaceVim 简单而且好看与IDE很接近。但是在手机上做java开发,我近期发现 SpaceVim在我手机上并不稳定

开发就几个java文件的小项目没什么问题,在我开发spring boot项目的时候,会发现在写完一个java类,:w保存以后,大概率会失去响应,整个界面就是卡死的状态按什么都没有反应,这种卡死现象,需要等待5分钟以上,才能有可能响应过来,我是没时间等待它的。无奈只能舍弃当前的session重新打开一个session继续开发。

出现这样的原因猜测:

  • 主要原因手机性能比较低,执行某种运算太卡导致。
  • 在:w保存后可能会触发一个编译操作,来检测语法错误或者为了更好的智能提示。因为spring boot项目文件和依赖就相对多一些,编译会比较久,就导致页面卡住了。
  • SpaceVim 默认安装了很多组件,有可能是哪个组件在这个状态下遇到bug了,然后就卡住了。
    为了探究这个问题,我在电脑上用SpaceVim 开发了同一个项目测试了一下,在执行:w瞬间电脑风扇声音会明显变大,界面上也会卡1到3秒这样子的。不过因为电脑运算要快很多,这个影响几乎可以忽略不计。
    在这里插入图片描述
    假如就是因为这个语法检测插件卡顿的。这个语法检测插件还算实用,但是也不是必须的,毕竟本身在代码编译的时候就能看出来代码错在哪。在相对低性能的手机上,这个组件在开发spring boot项目中代价有些大,每次保存一个文件就会整个项目编译一下,这个手机性能吃不消。

这种现象频发,我后来就无奈的直接使用没有智能提示的vim写代码。

手机上,我决定大项目用只包含必要插件的vim,小项目使用SpaceVim (nvim)来提升开发体验。

用习惯IDE的我,用没有智能提示的编辑器写代码,还是有些不适应的。智能提示用久了,有些方法名,都不会背了。对效率还是有极大的影响的。后来的我决定自己安装vim插件先解决智能提示的需求。

vim插件安装

我目前安装的插件如下:

  • Vundle – 插件管理器
  • artur-shaik/vim-javacomplete2 – Java语法智能提示插件
  • Shougo/deoplete.nvim – 智能提示通过组件。

安装方法不算难,详细了解点这面的项目主页查看就好了。
说说我遇到的一些小坑吧。主要在安装javacomplete2时遇到过一些坑。

  • 需要python3支持的vim或者nvim,如果不支持会报错,这个文章前面也有说过
  • 如果报javavi相关的错,要自己手动编译一javavi,没配置maven环境就要先配置一下。
cd ~/.vim/bundle/vim-javacomplete2/libs/javavi
rm -rf target
mvn compile
  • 智能提示的误解:插件安装完成了但是没有智能提示,我本以为我又安装错误了。但是没有报任何错误啊,这个项目主机的效果图里提示很顺滑,为什么我的代码没有任何提示呢?后来发现原来默认情况下如果需要提示需要按 ctrl -x ctrl-o 两组连续按就有效果了。后来我觉得按起来麻烦,我就用替代了,配置如:inoremap <F6> <C-x><C-o> 这样舒服些了。如果能像IDE在录入的时候自动提示就好了,后来发现只要安装Shougo/deoplete.nvim就可以输入时自动提示了。

我的配置如下仅供参考。

"------------ Vundle插件管理器start------------
set nocompatible              " 需要改进,必需
filetype off                  " 必需
" 设置运行时路径以包括Vundle并初始化
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'
Plugin 'artur-shaik/vim-javacomplete2'
Plugin 'Shougo/deoplete.nvim'
Plugin 'roxma/nvim-yarp'
Plugin 'roxma/vim-hug-neovim-rpc'
" 必须在下一行之前添加所有插件
call vundle#end()            " 必需


filetype plugin indent on    " 必需

" 帮助
" :PluginList       - 显示插件列表
" :PluginInstall    - 安装插件 ;包含 `!` 更新插件 或者 :PluginUpdate
" :PluginSearch foo - 搜索组件foo; 包含 `!` 刷新本地缓存
" :PluginClean      - 确认删除未使用的插件;附加``以自动批准删除
"
" :h vundle 查看详细的帮助
" 将您的非插件内容放在此行之后
"------------ Vundle插件管理器end------------
" 语法高亮开启
syntax on
set ruler
" 允许使用鼠标操作
set mouse=a
" 显示行号
set nonumber
" tab=4个空格
set tabstop=4
" 解决插入模式下delete/backspace键失效的问题
set backspace=2
" 配色方案
"colorscheme evening

"jk 替换Esc方案
" inoremap jk <esc>
" 设置<F7> 启动文件管理器
nnoremap <F7> :NERDTreeToggle<CR>
autocmd FileType java setlocal omnifunc=javacomplete#Complete
inoremap <F6>  <C-x><C-o>
nmap <F4> <Plug>(JavaComplete-Imports-AddSmart)
imap <F4> <Plug>(JavaComplete-Imports-AddSmart)
let g:deoplete#enable_at_startup = 1

总结

总算是折腾完了,还是有一些收获的。手机中开发大型项目还是不太方便。但是如果只是简单修改一下代码,小bug修复还是可以实现的。

如果出去玩,客户现场出故障临时用来维护还是很不错的。

因为我通勤很久,对我来说还是很有帮助的。地铁上突然在有灵感,写写代码也不错的。

如果配合蓝牙键盘的话,还是具有一定的生产力的。但是这样就少了便携性啦。

参考文献

《PRoot》https://wiki.termux.com/wiki/PRoot
《ubuntu18.04修改系统语言为中文》https://uscwifi.blog.csdn.net/article/details/83052915
《ubuntu中文支持,及中文乱码问题》https://www.centos.bz/2017/12/%E8%A7%A3%E5%86%B3ubuntu%E7%9A%84%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98/
《oh my zsh》https://ohmyz.sh/

《Oh My ZSH让你的终端美如画》

《CentOS7安装Oh My ZSH解决raw.github.com访问不畅》
《SpaceVim图标及部分字符显示乱码》
https://blog.csdn.net/Vinc_chen/article/details/89365832
《SpaceVim入门指南》https://spacevim.org/cn/quick-start-guide/

《使用 Vim 搭建 Java 开发环境》https://spacevim.org/cn/use-vim-as-a-java-ide/
《linux软链接的创建、删除和更新》
https://blog.csdn.net/m290345792/article/details/78518360

《19 个强大、有趣、好玩、又装B的 Linux 命令!》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

玩转手机中的linux系统termux并搭建java开发环境 的相关文章

  • Android——Keymaster安全检测

    Keymaster 概述 工作以来 xff0c 一直在负责Android系统安全漏洞的跟踪以及修复 最近在处理Android O以上机器的时候遇到了一个坑 当你的升级系统时 xff0c 如果后一个系统中修改了如 xff1a 系统版本 系统安
  • OpenCore版本升级实例-0.6.3升级至0.6.4

    OpenCore的版本升级还是挺快的 那么如何升级呢 xff1f 对于会自己制作EFI的人来说 xff0c 只是升级个OpenCore的版本真是小意思啦 想了解如何制作efi可以查看我之前写的文章 手把手教你安装黑苹果之openCore 0
  • 拯救者14OpenCore0.6.4黑苹果Big Sur 2020年12月11日

    型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX960M 原配置如上 后来又加了根内存 xff0c 机械盘换成了ssd 20
  • OpenCore制作EFI常用下载地址集合

    目录 前言必备OpenCoreHfsPlus efi下载必备KextsVirtualSMCLiluWhateverGreen 常用KextsUSBInjectAllAppleALCVoodooHDAWireless USB OC Big S
  • 联想拯救者14实现快捷键调屏幕亮度

    前言 我的EFI制作完成后 xff0c 快捷键调节声音大小的功能默认就支持 xff0c 但是快捷键调整亮度就不支持了 快捷键调节亮度这样的需求对我来话基本是可有可无 因为鼠标简单点点就可以调节亮度了 Big Sur调节亮度真的方便 xff0
  • Spring boot 与react单页应用部署在一个jar中

    前言 现在的应用开发越来越多的都是前后端分离的项目 比较常见的部署方法是使用nginx 部署 xff0c 日常项目中我也是用的 nginx 最近在开发一个非常小的项目 xff0c 想实现傻瓜式一键部署 43 运行的效果 xff0c 显然使用
  • 笔记本电脑Haswell黑苹果opencore睡眠实战

    前言 我的型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX960M 笔记本电脑Haswell平台的应该是类似的 完整版EFI
  • 拯救者14OpenCore0.6.8黑苹果Big Sur 2021年4月12日

    型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX960M 原配置如上 后来又加了根内存 xff0c 机械盘换成了ssd 特色
  • OpenCore黑苹果之拯救者14(HD4600)开启HDMI音频

    一般外接显示器用不到HDMI音频 xff0c 但是回家外接电视机有点用 我的型号 xff1a 联想 xff08 Lenovo xff09 拯救者 14 0英寸游戏本 xff08 i7 4720HQ 8G 128G SSD 43 1T GTX
  • OpenCore默认安装界面改成中文

    NVRAM Add 7C436110 AB2A 4BBB A880 FE41995C9F82 prev lang kbd lt 0x7a682d48616e733a323532 gt 将默认语言设置为简体中文 留空为英文 Rest NVRA
  • OpenCore安装黑苹果有感

    这里只讨论自己制作EFI的情况 xff0c 直接能从网上找到相同配置的EFI xff0c 安装黑苹果跟普通安装Windows差不多简单 最近终于把EFI折腾的基本完美了 xff0c 有感而发 声卡 xff0c 显卡 xff0c 键鼠 xff
  • 解决重写FragmentTabHost后,屏幕切换时Fragment显示空白的问题

    问题背景 xff1a 公司的App首页架构采用了FragmentTabHost 43 Fragment的结构 之前为了解决每次切换 tab 时 xff0c Fragment不重新加载的问题 xff0c 重写了FragmentTabHost类
  • OpenCore启动项打开Windows无法正常启动

    前言 安装黑苹果的小伙伴应该大部分都是玩双系统的吧 现在我用macOS多一些 xff0c 但是有时还是会简单用一下Windows的 Big Sur安装好后 xff0c 基本不用Windows了 xff0c 今天突然就发现Windows进不去
  • OpenCore机型设置(三码设置)备份转移

    有小伙伴想要把自己的三码保存下来 xff0c 更新EFI以后用自己的三码 方法一 xff1a OOC配置 最简单的图形化操作 xff0c 可以使用 OOC来配置 xff0c 具体的操作方法可以参考 xff1a https blog csdn
  • OpenCore启动项中无Install macOS Big Sur 的解决办法

    现象 最近遇到个问题 xff0c 有小伙伴跟我说 xff0c 用我的最新版本0 6 4的EFI没有Install macOS Big Sur项目 但是用老版的0 6 3的是可以正常安装的 我就很纳闷了 xff0c 自己觉得不可能 故障展示
  • OpenCore电池显示正在充电:1% 建议维修

    现象 电池显示正在充电 xff1a 1 状态栏显示 xff1a 建议维修 本来电池一直是显示正常的 xff0c 电量和充电状态都正常 升级 Big Sur 11 1 20C69 后 某天因为停电 xff0c 使用电池用了1个多小时 xff0
  • OpenCore黑苹果蓝牙能识别但是搜索不到设备

    问题描述 蓝牙正常驱动了 xff0c 在设置中已经有显示了 xff0c 如下 xff1a 但是怎么搜索都无法搜索到设备 其他设备也无法搜索到它 很奇怪啊 xff0c 之前明明是好好的啊 我在想是不是我的kexts版本比较旧导致的啊 最终发现
  • 黑苹果安装完以后的优化

    黑苹果安装完以后的优化 xff0c 可选的 xff0c 不一定对所有人有用 收藏备用 Misc after install Enable HiDPI span class token function bash span c span cl
  • OpenCore关闭开启macOS SIP

    SIP 全称为 System Integrity Protection 即 系统完整性保护 xff0c 是 OS X El Capitan 时开始采用的一项安全技术 xff0c SIP 将一些文件目录和系统应用保护了起来 但这会影响我们一些
  • macOS调整分辨率与HiDPI

    调整分辨率神器RDM 分辨率随便调甚至1080p的屏幕能用 2K甚至 4K的分辨率 xff0c 太神奇了带闪电 图标的就相当于调整HiDPI xff0c 图标和字体显示低分辨率的大小 xff0c 但是很清楚 这个让我惊呆了的神器 RDM主页

随机推荐

  • 禁止OpenCore修改电脑启动顺序

    大家有没有遇到这样的情况 xff0c 自己调整好的电脑启动顺序 xff0c 比如 xff1a 优化从U盘启动之类的操作 xff0c 老是被OpenCore自动修改顺序 因为这个问题我在调试的时候形成了一个习惯 xff0c 每次都要按F12来
  • Appstore下载Big Sur并使用U盘制作黑苹果系统安装盘

    就以目前最新的macOS Big Sur 11 1版本为例 方式一 xff1a 黑果小兵镜像下载 推荐 本人一直用这种方式 xff0c 使用简单方便 xff0c 极力推荐 感谢黑果小兵一直以来给大家提供的便利 黑果小兵的部落阁 xff1a
  • Unity中使用暴风魔镜进行VR游戏开发

    64 VR简介 虚拟现实VR Virtual Reality 和增强现实AR Argument Reality 的概念其实在很多年前就已经出现 xff0c 2015年下半年开始变得火热 xff0c 在各大媒体圈子中频繁出现 xff0c 而今
  • (暂未成功)论在U盘中安装黑苹果(macOS Big Sur)的可行性

    突发奇想 xff0c 如果能把黑苹果安装到U盘里 xff08 或者移动硬盘里 xff09 我是不是带着不同的EFI就可以在不同的电脑上用我的macOS了呢 xff1f 一个移动设备就可以带走我的系统和数据啦 试想一下 xff1a 下班带一个
  • 五笔中三个字的词组打法

    三个字的词组五笔打法是 xff1a 前两个字每个取头一个字根 xff0c 第三个字取头两个字根 xff0c 组成四个字根 xff0c 就可以输出这三个字的词组 参考 xff1a http www 360doc com content 18
  • Android手机运行图形界面的LINUX环境

    刚开始在我废弃在Android手机上运行 spring boot 我已经惊呆了 文章见 xff1a 树莓派 xff1f 云服务器 xff1f 小主机 xff1f 旧手机使用Termux安卓手机中跑Java跑spring boot不香吗 xf
  • 冬天的如何避免静电

    小时候喜欢折腾各种家电 xff0c 也没少挨电过 能活到现在真是庆幸 有一次差点被电死的经历 xff0c 从此以后对电有来自灵魂的恐惧 x1f631 xff0c 现在甚至静电都怕 家乡被电还有一个说法 xff1a 被电打到了 那种感觉真的像
  • Thymeleaf + Spring传参到Javascript

    自从使用前后端分离开发后 xff0c 几乎不使用Thymeleaf了 xff0c 忘记的差不多啦 传参到Javascript的实现还折腾了一小会 xff0c 还是记录一下吧 下面以传参 btData到js的变量里为例 Controller
  • 2021年CentOS7安装Oracle11g全记录

    文章目录 环境信息下载相关准备工作创建用户图形化CentOS7搭建VNC服务安装必备软件并配置防火墙放行VNC端口VNC 连接VNC远程 安装oracle安装中文字体解决中文乱码问题解压安装包修复先决条件检查Swap分区设置 xff08 若
  • Centos7安装和配置VNC服务器 - Xfce篇

    文章目录 VNC简介安装TigerVNC防火墙设置安装图形用户界面 xff08 GUI xff09 Xfce修改配置文件VNC 客户端连接关闭VNC服务删除Xfce参考文档 如果你图形界面使用GNOME xff0c 看这里 xff1a Ce
  • Centos7安装和配置VNC服务器 - openbox篇

    文章目录 VNC简介安装TigerVNC防火墙设置安装图形用户界面 xff08 GUI xff09 openbox配置openbox自启动文件lightdm 修改配置文件VNC 客户端连接关闭VNC服务参考文档 如果你图形界面使用GNOME
  • 黑苹果(OpenCore)踩坑之安装系统正常重启以后无法进入系统#[EB|WL] 0 0 0x01 0x0B 20 0x0E

    文章目录 前言现象思考与排错过程最终解决办法总结 前言 今天帮一个网友安装黑苹果 xff0c 他的机型跟我的完全一样 xff0c 用的是同样的EFI 然而还是遇到问题了 这个问题很不科学 xff0c 从下午5点多一直折腾到现在晚上 11点多
  • 2021年强迫症福音CentOS7零警告安装Oracle11g

    目录 前言环境信息准备工作一键安装和配置VNC图形化相关创建用户开启 VNC服务客户端连接VNC实现远程控制安装oracle安装程序依赖程序包安装中文字体解决中文乱码问题上传并解压安装包 安装oracle实战oracle用户登录vnc远程桌
  • [Maven学习笔记八]Maven常用插件应用

    常用插件及其用法位于 xff1a http maven apache org plugins 1 Jetty server plugin 2 Dependency copy plugin 3 Surefire Test plugin 4 U
  • oracle11整库导出导入

    DIRECTORY 首次需要创建 xff0c 一劳永逸 xff01 使用EXPDP工具时 其转储文件只能被存放在DIRECTORY对象对应的OS目录中 而不能直接指定转储文件所在的OS目录 因此 使用EXPDP工具时 必须首先建立DIREC
  • 腾讯大王卡免流手机投屏电视看春晚

    前言 过年回老家了 xff0c 因为我不在家的时候宽带使用频率很低 xff0c 老家的宽带到期就没有续啦 没有网家里的电视就是摆设啦 为了除夕能大家在电视上看春晚 xff0c 这篇文章就来了 虽然没有家庭宽带 xff0c 但是大家现在的手机
  • CentOS7安装ZSH终端

    安装zsh和git git用于pull代码 yum span class token function install span y zsh span class token function git span 切换使用zsh 查 zsh位
  • CentOS7离线安装Oh My ZSH

    前言 Oh My ZSH真香 xff0c 我一开始是在macOS中使用 xff0c 使用习惯了ssh远程我的服务器反而不习惯了 毕竟从奢入俭难 那么如何在CentOS中安装Oh My ZSH呢 xff1f 网上教程挺多的 xff0c 但是我
  • CentOS7安装Oh My ZSH解决raw.github.com访问不畅

    前言 Oh My ZSH真香 xff0c 我一开始是在macOS中使用 xff0c 使用习惯了ssh远程我的服务器反而不习惯了 毕竟从奢入俭难 那么如何在CentOS中安装Oh My ZSH呢 xff1f 网上教程挺多的 xff0c 但是我
  • 玩转手机中的linux系统termux并搭建java开发环境

    目标 春节在家 xff0c 偶尔要出门在外 出门在外的时候 xff0c 没有电脑可以写代码 那么代码瘾上来了怎么办呢 xff1f 我在想能不能在手机上写代码呢 xff1f 手机远程电脑是一种方式 xff0c 但是远程开发这种方式 xff0c