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

From: Alexey Vyskubov <alexey_at_pentode.fi>
Date: Wed, 28 Feb 2024 19:01:01 UTC
On Wed, Feb 28, 2024 at 10:29:42AM -0700, Modulok wrote:
> >> 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 have a headless FreeBSD server. I mostly do development with vim (I
have used it for like 25 years, switching, ahem, from emacs -- and it
helps) running in tmux (I have used screen before but about 10 years ago
I've made a mistake to look into its source code -- and since then I'm
using tmux and made a point never look into its sources).

For connection I normally use SSH, and sometimes VNC (with Xvnc running
on FreeBSD side). I can use both options on my iPad (with Blink and
Rvnc); actually, I'm writing now on iPad, with SSH connection to
FreeBSD.

I have several scripts/aliases to make working with tmux easier (think
listing sessions; show menu, allowing to choose to which session to
attach; something for tmux new -A -s <session>). To make working with
vim easier in terminal over SSH I use such options as colorcolumn,
numbers, rnu. I also use t_* settings in vim to make cursor of different
color and shape in different modes. I use "set -o vi" in my shell, and I
use starship prompt (some people strongly dislike it, by the way).

Useful thing, if your SSH connection is unstable, is mosh.

> 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 had a brief affair with helix, couple of months, and it did not fly
for me. I use alacritty as well and it works reasonably well over VNC
(keep in mind that though my connections usually -- not always -- over
WiFi, they are normally inside the same house).

> vim-like experience with far less configuration out of the box. Like

Well, helix has modes. Experience is quite far away from vim, though I
know what you mean.

> `neovim` it has built in LSP support and will use installed LSP servers

I never found a compelling reason to switch to neovim. I have started to
use LSP in vim a couple years ago with coc.nvim (yep, it works in plain
vim) plugin.

> I've run VS code in the past,

...and it works reasonably well over VNC.

> want to get in deep with X11 forwarding

While I prefer VNC, I had remote X servers connected to FreeBSD, it is
not that difficult.

> You can use these in `vi`, `vim`, `neovim`, `helix`, and there's even a
> plugin for `VS code` that supports them.

There is a VS Code plugin which connects to real neovim and uses its
engine, so it's not just emulation.

I can only approve learning vim way of editing, and not because of time
saving. It is very convenient, when you get used to it.

P.S. vim has a ton of options for programming, see things like makeprg,
errorformat, quickfix list, integration with tags. You definitely want
to know how to use 'make' and 'ctags' programs.

-- 
Alexey
I cannot receive HTML mail at this account.
Hi, I am a signature virus. Add me to your signature to help me spread.