Eu encontrei uma solução que depende muito do tmux. Como o tmux está trabalhando independentemente do shell e prevalece mesmo depois de fechar as janelas, pode-se preparar uma sessão do tmux e depois anexá-la. A coisa não sairá instantaneamente, já que o comando de anexo não retorna a menos que você saia dele.
Isso e o fato de você poder nomear e pesquisar uma sessão produz o seguinte Nautilus-Script:
#!/bin/bash
# nautilus script to start files in nvim under a tmux session
# place this script into ~/.local/share/nautilus/scripts/nvimOpen.sh
# presented without warranty by mike aka curvi
# nvim running in another session? -
# TODO tmux rename-session -t $whaever nvim
# Tmux session 'nvim' is running neovim always!
if tmux has-session -t nvim ; then
# test if it is open and split it
for selected_file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ; do
tmux send-keys -t nvim Escape # change to normal mode
tmux send-keys -t nvim ";vsp $selected_file" Enter # open file in vsplit
done
else
# or start it up freshly!
tmux new-session -d -s nvim ;
tmux send-keys -t nvim "nvim -O $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" Enter
tmux send-keys -t nvim Escape # change to normal mode
fi
# after the tmux session is prepared - attach to it in gnome-terminal!
gnome-terminal -e "tmux attach-session -d -t nvim"
Bônus: desde que eu mando as chaves, ao invés de emitir os comandos diretamente elas aparecem no histórico dos terminais, como esperado!
Atenção: meu nvim / init.vim contém um remapeamento de ;
to :
, o que significa que, para executar, é necessário verificar as chaves enviadas para as configurações "vim / neovim" regulares!