The target
Spring Festival at home, occasionally to go out. When you’re away, there’s no computer to write code on. So what about code addiction? I was wondering if I could write code on the phone?
Mobile phone remote computer is a kind of way, but the remote development of this kind of way, its requirements are higher, first of all, you should have a computer that can be remote development (24 hours), and your mobile phone network environment should not card.
And then you have a lot of traffic. Remote development has limitations because I often go to places with unstable Internet conditions such as subways and basements.
Can you build your development environment directly on mobile? Today it came. In the case of Java, other languages are theoretically possible.
Video display
//cloud.mo4tech.com/images/ldWYtlmLrJXYtJXZ0F2dtA3YmBnYmFTdzsWL2xGc053NjZGN0UmMkF2M1U2MhJGOzUmY0MjNxEDNiFjZjNTYi9CcjZGciZWM1NzatkWLuNWLz9Gdv02bj5yZtlWZ0lnYu4WaqVWdq1yMw9yL6MHc0RHa/67d333eb9610b0fc237f249a0db406d1.image, ['TAB'.'CTRL'.'ALT'.'LEFT'.'DOWN'.'RIGHT'.'PGDN']] Copy the code
Edit the file in Termux. If you are already in the Linux distribution, use exit to temporarily exit Termux.
The configuration takes effect immediately:
termux-reload-settings
Copy the code
Install the Linux distribution
I have tried several ways to install JDK11 in Termux, but failed to install jdK8. So I wanted to try installing a distribution and see if it worked. Termux offers a Proot-Distro package for managing Linux distributions within Termux. There is said to be little performance loss.
You can install Proot-distro by executing the following command to install the utility
pkg install proot-distro
Copy the code
Currently, it supports the following distributions:
Alpine Linux (alias: Alpine) – The smallest available distribution. Arch Linux (alias: ArchLinux) Debian 10 Buster (alias: Debian-Buster) Kali Nethunter (alias: Nethunter) – Currently only minimal build. To install Ubuntu 18.04/20.04 (alias: Ubuntu-18.04 / Ubuntu-20.04) simply run the following command (assuming proot-distro is installed) :
proot-distro install <alias>
Copy the code
I installed Ubuntu-20.04 with the following command:
Proot - distro install ubuntu 20.04Copy the code
My execution result is as follows:
$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 00 1235K 0 0:00:20 0:00:20 --:--:-- 1442K [*] Checking integrity, pleasewait. [*] Extracting rootfs, pleasewait. [*] Writing'/ data/data/com. Termux/files/usr/var/lib/proot - distro/installed - rootfs/ubuntu 20.04 / etc/profile. D/termux - proot. Sh'. [*] their 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.
Copy the code
The installation was so quick that I wondered if it had actually happened.
Once installed, proot-distro login
is used to login. My login command is as follows:
$proot-distro login Ubuntu-20.04 root@localhost:~# ls
root@localhost:~# pwd
/root
Copy the code
I found that after logging in, I had the root permission directly. Ubuntu 25MB?
Querying the system version:
root@localhost:~# cat /etc/issueUbuntu 20.04.1 LTS \n \ LCopy the code
It turns out that the current version is indeed Ubuntu 20.04, and I think this is probably a lite version.
Here’s a basic overview of the proot-distro features available:
proot-distro list
– Displays supported distributions and their status.proot-distro install
– Install the distribution.proot-distro login
– Start the distributed root shell.proot-distro remove
– Uninstall the distribution.proot-distro reset
– Reinstall the distribution.
Run Proot-Distro Help for built-in usage information. Note that each command (with the exception of “list”) has its own built-in usage information, which can be viewed by providing “–help” as an argument.
Setting ubuntu to boot -20.04 Manually starting Ubuntu every time is a hassle, but setting Ubuntu to boot is easier.
echo "Proot - distro login ubuntu 20.04" >> ~/.bashrc
Copy the code
Beautify terminal OH my ZSH
Install the ZSH
Since using OH my ZSH, the feeling can not go back, beautiful colors, practical plug-ins. It has to be configured. Update apt-get
apt-get update
Copy the code
Install the ZSH
apt-get install zsh
Copy the code
Check the ZSH position
which zsh
Copy the code
/usr/bin/zsh switch to ZSH and run the following command:
chsh -s /usr/bin/zsh
Copy the code
If you restart the shell at this point, you may find that some common commands are not available, such as vim, which used to work normally. So add the termux command to the environment variable and modify the ZSH environment variable file ~/.zshrc.
vim ~/.zshrc
Copy the code
Add the following:
#TERMUX
export TERMUX_HOME=/data/data/com.termux/files/usr
export PATH=$PATH:$TERMUX_HOME/bin:.
Copy the code
This will allow you to use some of the commands you installed in TERMUX. Restart the shell to use ZSH. Let’s install the oh My ZSH plugin.
Install the OH MHY ZSH plugin
If github is not blocked, please refer to Oh My ZSH to make your terminal beautiful.
If accessing a Github card, you can use the offline installation method: CentOS7 Install Oh My ZSH
I’m using the offline version here because it’s faster and saves me the need to install plug-ins.
Download Oh My ZSH offline installer download.csdn.net/download/lx…
Decompress oh_my_zsh_*. Zip to the user directory
Note ⚠️ : If you already have. ZSHRC in the user directory, back it up first.
cp ~/.zshrc ~/.zshrc_bak
Copy the code
Upload oh_my_zsh_*. Zip to a user directory such as /root and decompress it using the zip command, such as:
Unzip oh_my_zsh_20210210 Offline installation package. ZipCopy the code
.zshrc.oh-my-zsh
The file is the Oh My ZSH configuration file.zshrc
Is the ZSH default configuration file, which is loaded first when the shell initializes and where environment variables are usually set.
After decompressing, re-enter the shell and find Oh My ZSH is working normally.
Environment variable migration Just copy and paste your environment variable information into ~/.zshrc.
Install jdk11
Download decompression
JDK 11.0.10_linux-aarch64_bin.tar.gz 下载 : jdk11.0.10_linux-aarch64_bin.tar. gz
The tar - ZXVF JDK - 11.0.10 _linux - aarch64_bin. Tar. GzCopy the code
Just unzip a directory. I extract the directory is: / data/data/com termux/files/home/Java/JDK – 11.0.10 /
Modify the environment variable vim ~/.zshrc and add the following information:
#JDK11
exportJAVA_HOME = / data/data/com. Termux/files/home/Java/JDK - 11.0.10export PATH=$PATH:$JAVA_HOME/bin:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
Copy the code
This completes the JDK configuration.
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)
Copy the code
Ubuntu installation setup in Chinese
After I set up ZSH, I found myself having problems with Chinese garbled characters when compiling Java code. There was no Chinese garble when I used bash before, I guess there was a problem with the encoding configuration somewhere. Then I set the Chinese environment to solve the problem of Chinese garble, maybe there is a simpler solution.
View the current locale
echo $LANG
Copy the code
Check whether the current system has a Chinese language package
locale -a
Copy the code
The result is as follows:
localhost# locale -a
C
C.UTF-8
POSIX
zh_CN.utf8
zh_SG.utf8
Copy the code
If no Chinese language is available, install the Chinese language package.
apt install language-pack-zh-hans
Copy the code
Example Change system environment variables to Chinese
Then, modify /etc/environment (append to the end of the file) :
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
Copy the code
To modify/var/lib/locales/supported. D/local (new, without this file also appended) :
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312
Copy the code
Finally, execute the command:
$ sudo locale-gen
Copy the code
If garbled Characters in Chinese are Spaces, install a Chinese font. Theoretically, one of the following Chinese fonts could be used.
$ sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming
Copy the code
Above, problem solved, Chinese display normal. You can run the date command to check if it is in Chinese.
localhost# dateWednesday, 17 February 2021 12:38:08 UTCCopy the code
Install common VIM plug-ins
The software I use most in Linux is probably the Vim text editor.
nerdtree
File management easy plug-in installation method: github.com/preservim/n…
~/.vim/pack/vendor/start/nerdtree
Install the ViM Chinese help document
Installation method: github.com/yianwillis/… . ~ / vim/pack/foo/start/vimcdoc create this folder.
The above two plug-ins, I have in the computer itself, directly copy the past can be.
Install the smart prompt plugin YouCompleteMe
Note: ⚠️ I ended up using SpaceVim instead of YouCompleteMe for a better experience. So this section can be skipped! If your vim does not support python3, refer to this section.
You can install it by following the official documentation. Github.com/ycm-core/Yo…
Here are my installation tips. MacOS Big Sur install VIM plugin YouCompleteMe
For details, please refer to the link above. I will probably record the commands I have executed.
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
Copy the code
Because the vim I installed using Termux does not support PYTHon3, SO I need to use apt to install it. After apt is installed, I find that vim is still the previous version.
Back up vim installed in Termux
cp /data/data/com.termux/files/usr/bin/vim /data/data/com.termux/files/usr/bin/vim-t
# Remove vim from Termux so that the newly installed VIm can be used normally
rm -rf /data/data/com.termux/files/usr/bin/vim
Copy the code
Query whether PYTHon3 is supported
vim --version | grep python
Copy the code
➜ ~ vim - version | grep python + cmdline_hist + langmap python + visual + cmdline_info + libcall + + visualextra python3 Link mode: 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 - lmCopy the code
cd ~/.vim/bundle/YouCompleteMe
python3 install.py --java-completer
Copy the code
In theory this component should work! TODO: I successfully installed this component on the MAC, directly put the MAC package into Ubuntu to use, and it does not boot properly. Because there is no network at home during the Spring Festival, it all depends on the flow, this component is too big, wait for the network to build from scratch to try.
SpaceVim
While I was racking my brains to install various ViM plug-ins to make it possible for me to develop Java under VIM. Stumbled across this artifact! Comment: ** easy! Convenient! Comfortable! ** The installation experience is simply too comfortable compared to other Vim plug-ins.
Install other plug-ins, various stomp pits, such as: YouCompleteMe, coc. Nvim to implement Java intelligent prompts. There will always be a bit of stumbling in the process, online search to the solution, really not this cool, one step in place. A sense of one-stop service.
Installation is very simple, the official Chinese document: spacevim.org/cn/quick-st…
A key to install
curl -sLf https://spacevim.org/cn/install.sh | bash
Copy the code
One minor downside: Vim is a bit slow to open files after using SpaceVim, since mobile phone performance is not as good as that of a PC, but it’s not slow after using SpaceVim. After all, you can’t have your cake and eat it.
Font garbled
Use Homebrew to install the nerd-font font and run the following commands in sequence:
brew tap homebrew/cask-fonts
brew install font-hack-nerd-font --cask
Copy the code
Set iterm to Profiles->Open Profiles in sequence by clicking (or directly using the shortcut command+O). , select one of your Profiles, mine is ⭐️Default, click Edit Profiles… At the bottom of the interface, select ☑️Use a different font for non-ASCII Text, and select Change font. Find and select DroidSansMono Nerd Font or Hack Nerd Font under the Family column. Exit the Profiles screen. To view:
Java intelligent prompt support
Using Vim to build Java development environment spacevim.org/cn/use-vim-…
Configuration javalsp
Here I deploy in the ~/.config/javalsp directory. This can be modified as needed, and if it is modified, the path in the configuration file above needs to be modified synchronously.
Create a javalsp directory
mkdir -p ~/.config/javalsp/.cache/javalsp
Copy the code
Download eclipse.jdt.ls the default download speed is very slow, the recommended use of thunderbolt download. Unzip the downloaded files to ~/.config/javalsp. My decompressed path is as follows:
~/.config/javalsp $ ls
config_linux config_mac config_ss_linux config_ss_mac
config_ss_win config_win features plugins
Copy the code
Modify the configuration
Edit the SpaceVim configuration file ~/.spacevim.d /init.toml
vim ~/.SpaceVim.d/init.toml
Copy the code
SpaceVim does not turn on Java intelligence hints by default. You need to turn it on manually. Add the following:
[[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. The eclipse equinox. Launcher_1. 6.0 v20200915-1508. The jar." "."-configuration"."~/.config/javalsp/config_linux"."-data"."~/.config/javalsp/.cache/javalsp"
]
Copy the code
The value of -jar-configuration-data can be adjusted based on the actual deployment position. Especially for -jar items, since jar versions are constantly being updated and probably not the same!
– Configuration Select a configuration file based on the current system:
Config_win, Windows system config_MAC, MacOS system config_Linux, Linux system config_linux
Once the configuration is complete, the next time you open Vim, some plug-ins will be automatically installed.
The next time you open a.java file, though, you’ll get syntax checks and code intelligence hints. At this point we have almost achieved our original goal.
SpaceVim toggles with normal Vim
When I say normal ViM, I mean viM with few plug-ins installed.
SpaceVim is good, but it’s too heavy for the regular Vim. When doing source code development (e.g. Java), I would prefer SpaceVim to edit the code, after all, intelligent hints are good, quality change!
Running SpaceVim on a computer was no problem, but there was a noticeable lag on the phone.
But if the general edit a configuration file, modify the parameters. SpaceVim is still too slow to run on your phone. I tested the loading speed on my phone (Nut R1) :
- Normal Vim turns on almost every second, loads less than a second, and feels almost no lag. When enter is pressed, VIm opens.
- Vim with the SpaceVim plug-in loads in 5 to 7 seconds. The experience is a little bit uncomfortable.
On macOS, when you open SpaceVim, it loads in less than a second, so you don’t have to cut it on your computer. My thoughts: Plain Vim — plain file modification SpaceVim — used when programming IDE
Switch to normal VIm
After installing SpaceVim
~/.vim
Files are backed up as~/.vim_back
And create a new soft link,~/.vim
->~/.SpaceVim
~/.vimrc
->~/.vimrc_back
Then we just need to change the soft connection to ~/.vim to use the original configuration.
# change to vim
ln -snf ~/.vim_back ~/.vim
Copy the code
You are advised to save the configuration file in ~/. Vim_back /vimrc
Run this command only once.
mv ~/.vimrc_back ~/.vim_back/vimrc
Copy the code
Switch to the SpaceVim
# change to SpaceVim
ln -snf ~/.SpaceVim ~/.vim
Copy the code
Alias shortcut switch
If you want to switch frequently, the above command should be executed frequently. I can’t remember it, and even if I did, it wouldn’t be easy. So add a personal name! Edit ~/.zshrc to add the following two lines.
alias usevim='ln -snf ~/.vim_back ~/.vim &&echo "Vim normal enabled "'
alias usesvim='ln -snf ~/.SpaceVim ~/. Vim && echo "SpaceVim enabled "'
Copy the code
In the future, if you want to use the normal version of vim, run: usevim If you want to use SpaceVim, run: usesvim so you can switch quickly.
➜ ~ usevim Common vim is enabled ➜ ~ usesvim SpaceVim is enabledCopy the code
Neovim (recommended)
If the above switch still feels cumbersome, there is another option. Is to install Neovim to use the SpaceVim plug-in. Plain VIm is used for plain file editing. Neovim is recommended by SpaceVim.
- Neovim enable SpaceVim
- Vim does not enable SpaceVim
So from now on, we’re just going to use vim filename to edit and write code and we’re going to use Nvim filename so we don’t have to cut and cut.
Since many plug-ins require python3 support, use the following command to install.
sudo apt-get install python3-neovim
Copy the code
Once installed, using the nvim command to edit files will default to SpaceVim.
Let vim use the normal form:
# change to vim
ln -snf ~/.vim_back ~/.vim
Copy the code
This completes the configuration.
Why is this possible? Because after SpaceVim was installed, Vim made soft links, and nvim also made soft links. SpaceVim: ~/.config/nvim -> ~/.SpaceVim
graphical
When I started working with the operating system on my phone, the first thing I wanted to work with was the graphical interface, because I didn’t think it was a real operating system until I could show the graphical interface.
After all, the screen of the mobile phone is small, and WHEN I really use it, I find it is not necessary to use graphics, so I will not write this article for the time being.
Friends in need can have a look at the article I wrote before. LINUX Environments for Android Phones running Graphical Interfaces
Of course, if you remotely control the graphical interface of the phone through a computer, it can be similar to The TNT of Lao Luo, and it really has some productivity.
Fixed SpaceVim icon garbled in Termux
Font file download
The font file upload/data/data/com termux/files/home /. Termux font. The vera.ttf directory can solve the problem of SpaceVim garbled.
No garbled so comfortable! It feels perfect!
Modify the welcome message
The default welcome language, just began to have a little help, skilled will not need.
Modify the welcome language, please yourself!
vim $PREFIX/etc/motd
Copy the code
Vim optional components
Granted on Feb 27, 2021.
SpaceVim above is really good, and it’s great for viM novices, and it’s easy to integrate. SpaceVim, in my opinion, is like an assembled mainframe computer with a bunch of optimizations for you. Installing vim components on your own is like installing your own, with lots of holes to tread.
If used on a good computer, I tend to be close to using SpaceVim for simplicity and good looks. But doing Java development on mobile, I recently found SpaceVim inconsistent on my phone.
Develop a few Java file small project will be a problem, when I was spring boot project, will find that after writing a Java class, : w after save, big lose response probability, and the interface is jammed by what all have no reaction, the status of the stuck phenomenon, need to wait for more than 5 minutes, can likely response to come over, I don’t have time to wait for it. I had no choice but to abandon the current session and reopen a session to continue development.
The reason for this speculation:
- The main reason is that the performance of mobile phones is relatively low, and the execution of certain operations is too card.
- A compilation operation may be triggered after saving :w to detect syntax errors or for better intelligence. Because there are more Spring Boot project files and dependencies, the compilation will take longer and the page will get stuck.
- SpaceVim has a lot of components installed by default, and it’s possible that one of them got bugged in this state and stuck.
To explore this question, I developed the same project on my computer with SpaceVim and tested it. After executing “W”, the computer fan became significantly louder and the interface froze for 1 to 3 seconds. But because computers are much faster, the effect is almost negligible.Let’s say the syntax checker is stuck because of this. This syntax checker is useful, but it’s not necessary because you can see what’s wrong when the code is compiled. On relatively low performance phones, this component is a bit costly in developing a Spring Boot project, and the entire project is compiled every time you save a file, which makes the performance of the phone too bad.
This happened so often that I had no choice but to write code directly using Vim without intelligent prompts.
On mobile, I decided to use Vim with only the necessary plug-ins for large projects and SpaceVim (Nvim) for small projects to enhance the development experience.
I used to IDE, with no intelligent prompt editor to write code, or a little uncomfortable. Intelligent tips with a long time, some method name, will not back. It has a huge impact on efficiency. Later, I decided to install vim plug-in to solve the need of intelligent prompt.
Vim plug-in installation
The plug-ins I have installed are as follows:
- Vundle – Plug-in manager
- Artur-shaik/VIm-Javacomplete2 — Java syntax smart hints plugin
- Shougo/deoplete.nvim — Intelligent prompts through components.
Installation method is not difficult, a detailed understanding of the project home page to view it. Tell me about some of my little hiccups. I encountered some potholes mainly when installing javacomplete2.
- Python3-supported vim or nvim is required, and an error will be reported if it is not supported, as mentioned earlier in this article
- If you report javavi related errors, you will need to manually compile a Javavi, without configuring the Maven environment first.
cd ~/.vim/bundle/vim-javacomplete2/libs/javavi
rm -rf target
mvn compile
Copy the code
- Misconception of smart prompt: The plugin was installed but there was no smart prompt. I thought I had installed it wrong again. But no error was reported. The prompt in the renderings of the project host is very smooth. Why is there no prompt in my code? Later I found out that by default, if you need a prompt, you need to press it
ctrl -x
ctrl-o
Two sets in a row will do the trick. Later, I felt that it was troublesome to press it, so I used it instead. The configuration was as follows:inoremap <F6> <C-x><C-o>
That’s better. It would be nice if you could automatically prompt when typing like IDE, as long as you install it laterShougo/deoplete.nvimYou can input automatic prompt.
My configuration is for reference only.
"-- -- -- -- -- -- -- -- -- -- -- -- Vundle plug-in manager start -- -- -- -- -- -- -- -- -- -- -- -- the set nocompatible"To improve, fileType off is required"Necessary"Set up the runtime path to include Vundle and initializeset 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'
"All plug-ins must be added before the next line."Filetype plugin indent on is required"Necessary"help":PluginList - Display list of plugins":PluginInstall - Install plugins; Contains `! 'Update plugin or :PluginUpdate":PluginSearch foo - Search component foo; Contains `! 'Refresh the local cache':PluginClean - Confirm to remove unused plug-ins; Additional `! 'to automatically approve deletion"":h Vundle View detailed help"Place your non-plug-in content after this line"------------ Vundle Plug-in manager end------------"Syntax on set ruler"Mouse operation is allowedset mouse=a
"Display line number set nonumber"TAB = 4 Spacesset tabstop=4
"Fix delete/backspace in insert mode set backspace=2"The color scheme"colorscheme evening "Jk replaces Esc" inoremap jk <esc>
"Set <F7> start file manager 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
Copy the code
conclusion
After all, there are some gains. It’s still not convenient to develop large projects on mobile. However, minor bug fixes are possible with simple code changes.
If you go out and play, it’s great for temporary maintenance when the customer site breaks down.
It helps because I have a long commute. It’s a good idea to write code on the subway.
If paired with a Bluetooth keyboard, there is some productivity. But that’s less portable.
reference
The PRoot wiki.termux.com/wiki/PRoot the ubuntu18.04 modify system language is Chinese “uscwifi.blog.csdn.net/article/det… Ubuntu Chinese support, and Chinese garble problems www.centos.bz/2017/12/%E8… Oh My ZSH ohmyz.sh/
Oh My ZSH Make your terminal beautiful
“CentOS7 install Oh My ZSH solve raw.github.com access blocked” “SpaceVim icon and some characters display garble” blog.csdn.net/Vinc_chen/a… SpaceVim primer spacevim.org/cn/quick-st…
Using Vim to build Java development environment spacevim.org/cn/use-vim-… The Linux soft links to create, delete, and update “blog.csdn.net/m290345792/…
19 Powerful, Fun, Fun, And B loaded Linux Commands!