I’m playing with a couple of routers and comparing proprietary to open source on the same hardware. I miss my .bashrc functions and aliases… and compgen, tree, manpages, detailed help, etc; the little things that get annoying when they are missing.
I was thinking about trying to mount the embedded system on my workstation (while it is running?), but I’m not clear how this would work in practice with permissions, users, groups, root, etc. I’m curious how others do this kind of development/screwing around, or if this is a crazy idea.
This is probably not a solution you would want, but I will mention it anyway…
Emacs has a built-in app called “TRAMP mode”, what it does is it works as back-end for all of Emacs’s own built-in text editing and file browsing commands, then it uses ordinary SSH and POSIX shell commands on a remote host as the primitive APIs for this back-end. You could say it uses SSH and a POSIX shell as a RPC mechanism.
What this means is you can use the ordinary Emacs editor with the entirety of your usual Emacs configuration, but all filesystem changes (including editing files, directories, and running shell processes) occur on the remote host via SSH. In order to activate it, you just use Emacs’s special TRAMP URL scheme as the file path you want to edit, and it works seamlessly, (especially if you setup your SSH agent so you don’t need a password). An example of such a URL would be
/ssh:user@remote-host:/etc/hosts
.Cries in vim
We’re gonna get through this
Vim has it’s own way to edit/brows remote files. Checkout netrw:
https://www.vim.org/scripts/script.php?script_id=1075
There are Vim emulator apps for Emacs, and you can use them with TRAMP mode for remote file editing as well. Doom Emacs and Spacemacs both provide extremely good Vim emulation that work consistently throughout all Emacs modes, including TRAMP mode.
Vim supports editing files through scp as well, no reason to cry here xD
I’ve discovered this not long ago and it makes my work way easier. Also, using the dired mode on the remote is useful.