Re: Remote development with neovim, tmux and SSH from macOS?

From: Modulok <modulok_at_gmail.com>
Date: Wed, 28 Feb 2024 17:29:42 UTC
>> I've just set up a FreeBSD server and was curious about the best
practices for when it comes to developing on FreeBSD? I have a Mac Studio
but I'm not used to neovim or tmux at all and I get the feeling that
learning them is going to take some time.

>> What do you use for developing on FreeBSD servers? Unfortunately I can't
install FreeBSD on my machine (well I can but it would be in VMware Fusion
Pro).

I don't develop on FreeBSD remotely. I don't see why you couldn't. FreeBSD
is my daily driver. I write code in the `helix` text editor running inside
`tmux`, itself inside the `alaccrity` terminal emulator (which you wouldn't
have if developing remotely). I just use helix because it gives me a 90%
vim-like experience with far less configuration out of the box. Like
`neovim` it has built in LSP support and will use installed LSP servers
e.g. rust-analyzer, clangd, gopls, taplo, etc.

I've run VS code in the past, but mostly it's `helix` or occasionally `vim`
for me these days. I've used `neovim` for a while but never really liked it
as much. I found it was a lot more fragile - a lot of move fast and break
things going on. On the rare occasion I need something like Docker, I'll
boot a linux install running in `virtualbox`. For commercial solutions
there's been a few Jetbrains products that are supported on FreeBSD. I ran
`clion` for a bit and `pycharm` (Perhaps not remotely though, unless you
want to get in deep with X11 forwarding and debugging any issues that
arise, I don't know.) I also have a dedicated Windows box I can remotely
boot and `rdesktop` into when I need it. I once tried setting this up to
share the same physical CPU with virtualization running two operating
systems at once and while it did work, it was a rough sojourn! Not worth
the effort.

Probably the best time investment is getting comfortable with vim motions.
You can use these in `vi`, `vim`, `neovim`, `helix`, and there's even a
plugin for `VS code` that supports them. They feel really clunky for a
while, but save you tons of time later and are a transferable skill to
other operating systems, software and domains.

Best of luck!