That's exactly what a lot of users that do development on a beefy remote machine from a light machine they use as a terminal want. Ssh+vim+tmux is a pretty common setup. That network request might add 20ms of lag, but means that anything that requires CPU power will be an order of magnitude faster. The unhappy path (a bad or absent connection) is bad, but the happy path is pretty damn happy.
I guess the combination is the holy grail, but the effort may not be worth it in alot of cases.
What I'm referring to would be a caching view which both hides latency, batches communication for efficiency and perhaps even does some actions on the client-side buffer if it's deemed appropriate.
code-server (vscode in gerneral with remote development extensions) does a lot of splitting of processes between the server and client. This makes normal code writing done on the client side. Intellisense still has the network delay, but is something that takes time anyway. The terminal doesnt get this benefit so they instead add local echo to make the delay a little easier to handle with [1]. I do not know if this works in code server.
ssh+vim+tmux actually unlocked my iPad as a coding tool, which is incredible. I can go on a bike ride, stop in the park, get a bit of work done with some tea in a thermos, and then bike back home.
Does tmux add anything in particular to SSH+Vim? I’ve never used it so I don’t know the connection, other than its obvious use as a multiview terminal with fabulous persistence?
Multiplexing in the ssh shell is way more convenient than opening a new ssh connection every time you need a new terminal. If vim is occupying your shell you definitely want a multiplexer instead of Ctrl+Z every time you need to do something in shell. I know vim 8 has an integrated terminal but I can't stand using the terminal with vim keystrokes.
tmux is also amazing for spotty ssh connections. For example, I had to run long jobs over ssh through a VPN. Tmux means you don't need to worry about the connection dropping and losing your current process