Rote memorization of commands is a ridiculous way to interface with computers in 2019 IMO. I consider it a failure of modern computing every time I have to use a CLI.
Mostly, I blame the automation zealots who have thrown out the discoverability baby with the GUI bathwater. Yes, CLIs are easy to automate. Yay! Why not automate them with a GUI then?
ZSH takes some steps in the right direction with this, with how it handles tab completion.
I've gone as far as to open bug tickets for open source projects arguing that the defaults should be changed so I don't have to configure as much software when I move to another computer :D
I try to keep the defaults when they make sense, and I try to make my configs add to the experience but not change it too much. So it's nice if it's there but I'm still productive on a clean system.
But ^A in tmux is one of those changes, I think ^A is so much more ergonomic (and used alot) that I have it remapped for that reason. But I still have to remember the default binding.
I sort of feel like there should be something like a POSIX compliance standard for keybindings. But the Vim/Emacs divide is pretty big.
I wonder why people even work on remote servers? I write the server configuration as a Nix expression and deploy it on a remote machine. This has many benefits - machines become reproducible, you can use your local tools to edit the configuration (I use emacs with nix-mode), and you can deploy the same configuration in a virtual machine for testing with e.g. nixops.
On remote machines that I use interactively for e.g. machine learning, I set up nix + home-manager to have exactly the same configuration and packages as my local machine. On a new machine, I just install nix, checkout my home-manager configuration from git and run home-manager switch.
This setup adds a lot of additional benefits as well, I can always roll back to a previous generation of my configuration, I can use a package that I don't want to install with nix-shell -p <package>, and I can set up local environments with custom packages with nix-shell + direnv.
Unless it's a first-class, integral part of the experience (like VS Code), I don't even bother with any visual adjustments. It just adds cognitive dependencies and would only be there to satisfy some arbitrary aesthetic sensitivity. That's no good when things in the wild are rough and dirty. I don't want to be conditioned to some fragile setup of plugins upon plugins upon minute adjustments that only works perfectly in some certain pristine environment.
I enjoy having zero friction when moving around computers. I enjoy getting things done anywhere without anything ever getting in my way. It's very liberating.