Hacker News new | ask | show | jobs
by brainsmith 2235 days ago
When I started programming on ruby my laptop couldn’t handle IntelliSense and tests which required too much cpu and ram. So I’ve switched to vim on server through ssh. Later I’ve switched to emacs as it seemed to me more powerful than him back then.

After I got MacBook I’ve switched to TextMate utilizing powerful macOS keyboard shortcuts for text navigation. MacBook was pretty fast to handle ruby-related tasks.

Later I found myself in IntelliJ idea working on my Scala projects with emacs keybindings. I intuitively used emacs keybindings everywhere - from terminal to text fields in browser (without changing defaults!). Pretty comfortable until...

I started programming in Rust. It’s compiler and lsp servers use very much cpu, ram, compilation is really slow heating laptop like a frying pan. Here comes VSCode with vscode-remote which allows to write code on desktop gui while compiling, executing IntelliSense commands (lsp server to be exact), etc on a powerful cloud server. As I understand it executes everything remotely except GUI rendering and interaction. On network interruptions it restores connection seamlessly, I barely noticed. It was a salvation. VSCode has a bunch of predefined hotkeys which can be customized to fit my emacs-like navigation habits but there are always conflicts with some already existing bindings, also extension tend to add their own defaults. Too messy. Vim/emacs emulators are incomplete and buggy. This led me to weird trackpad&keybindings experience for navigating, building, debugging... Remembering how productive I was in vim/emacs I couldn’t handle this despite perfect state of the art vscode-remote.

So I decided to give vim/emacs a try, discover how ecosystem changed during 10+ years. After some investigation I’ve landed on neovim and tried to work on a rented server as I used to in my first programming years. Experience was far away from VSCode-remote. Due to network lags and ssh overhead I can’t be productive with all the benefits neovim offers. So I ended up buying a powerful home server, connecting to it from my MacBook and work in neovim over ssh. It’s ok but I really miss the “true” remote mode which offers local almost zero-latency editing with remote everything else. Renting powerful servers which has access to the whole dev infrastructure. Paying for them hourly. There are so many discussions about/plugins implementing VSCode and its extensions features in (neo)vim/emacs but in my opinion the really missing piece which don’t turn (neo)vim/emacs to VSCode but instead makes them as powerful as VSCode in cloud-powered code development. Am I the only one who miss this feature?

2 comments

I think what you're looking for is TRAMP [0,1]. After resisting it and continuing to ssh into remote hosts in a shell, I finally started to switch my workflows over, and the improvement is substantial. Async remote compiling might work out of the box in some cases, or it might require some additional configuration.

0. https://www.gnu.org/software/tramp/ 1. https://www.emacswiki.org/emacs/TrampMode

I have always used emacs inside tmux over ssh with <50ms latency to remote servers, I can barely perceive the difference in typing. As good as vscode remote capabilities are, it can't really beat having your editor local to your dev environment (in my case, emacs inside the server).

However, if you truly want your code editor to be local, vscode has truly become king for working with remote environments, nothing else comes close to it, it's really good. They have achieved this by installing a component on on the server that syncs with your local editor, which they won't open source of course.