Some items I cannot live without on a terminal are:
Ranger file manager
AstronVim text editor
LazyGit for a GitUI
GDB Dashboard for debugging
MidnightCommander for file transfers (advanced).
Now I have managed to get these working in my home directory without using sudo but I may also have more access rights than you – so your mileage may vary.
Nice thing about Ranger is that it can be installed via pip which is standard package manager for Python.
The problem is that EWS does not give you a working copy of pip – or if they do, it is the system pip and we don't want to mess around with that. Ideally we should install things in an isolated virtual environment. Fortunately, Miniconda installation can take place in your home directory.
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
After installation run
source ~/miniconda3/bin/activate
To get miniconda working in your current terminal. To have it always work, run
conda init --all
The last two commands should have activated the (base) environment from Conda.
Now that we have a working installation of pip we should be able to run:
pip install ranger-fm
to install the Ranger file manager.
After installation completes, just run ranger from your terminal and voila, a sensible file manager!
Read more about configuring the Ranger themes on the colorschemes repo.
Before proceeding it is highly recommended you learn the basics of the vim text editor. SSH into EWS Linux and run from the command line
vimtutor
Finish the tutorial before proceeding!
AstronVim requires you to first have neovim (a mightier version of plain vim) installed. We cannot do sudo apt or sudo dnf or anything of that sort because we don't have admin rights. So we need to download and make do with a precompiled binary of neovim.
Here are the steps:
Download the tarball from: https://github.com/neovim/neovim/releases/ using wget:
wget https://github.com/neovim/neovim/releases/download/v0.11.5/nvim-linux-x86_64.tar.gz
Extract it to your home directory using tar xvf <filename>.
Rename it to something less cumbersome, mv <extractedname> ~/neovim.
(Optionally) free space on your home directory by deleting the tarball: rm nvim-linux-x86_64.tar.gz
Add ~/neovim/bin to your path by adding below line to your .bashrc file in your home directory:
export PATH="$PATH:/home/<yournetid>/neovim/bin/"
Finally, restart your terminal or run source ~/.bashrc
Now that we have neovim installed, we should be able to install AstronVim using the bash commands provided on their installation page: https://docs.astronvim.com/#-installation
The first start-up will take some time due to it downloading and collecting necessary packages and plugins. After that it should be relatively fast to open nvim. You don't need to perform any of the Setup steps except maybe installation of a Langauge Server. I recommend clangd (more info). Run from nvim in command mode:
:LspInstall clangd
This is now easy. Download the right version for EWS PC's from Github.
Here is the link: https://github.com/jesseduffield/lazygit/releases/download/v0.45.2/lazygit_0.45.2_Linux_x86_64.tar.gz
Use wget to download it to your home directory and tar xvf to extract it. Then just move the executable lazygit to a directory already in your path.
mv lazygit ~/.local/bin
~/.local/bin and then add export
PATH="$PATH:/home/<yournetid>/.local/bin/" to the bottom of your .bashrc file in your home directory.Now you can invoke LazyGit from the terminal! I usually alias lazygit to lg.
If you have successfully done the above, I think GDB Dashboard should be a piece of cake.
wget -P ~ https://github.com/cyrus-and/gdb-dashboard/raw/master/.gdbinit
And install (with (base) from Conda activated):
pip install pygments
Midnight Commander offers a dual-pane file manager which makes moving things around a breeze. In addition, it offers the ability to have a remote server show up in the second pane!
To be honest, this doesn't require mc to be installed on the target machine so much as your personal/local machine. If you got mc installed and are curious on how to use it for file transfers, look at this link. Just be sure to use the shell link option.