The complain about the weird and twenty year old issue in Gtk questionable[1]. Gtk2, X11 and disconnecting a display and Emacs calls abort(). I cannot speak about EMACS because I prefer VIM and NEOVIM. My requirements are usability - where VIM excels with your knowledge (learning curve) - and LSP-Support. The later is provided since NEOVIM '0.5`[2] nearly ready to use. A modern editor should know what the user is actually doing and interact with the compiler, spell-something (languagetool?) or whatever :)

LSP with NEOVIM? Requirements:

  1.) VIM-PLUG  
  2.) NVIM-LSPCONFIG  
  3.) NVIM-CMP
Your compiler will provide everything. In my case CLANGD for C and C++. Setup isn't hard but I would appreciate a HowTo directly at neovim.io or even built-in NVIM-LSPCONFIG and NVIM-CMP within the package. Because figuring out is hard, setup is not. Where GNU needs to catch up quickly is LSP with GCC, the compiler doesn't provide a user back-end. This is important and actually I want know what GCC things about my code - I'm using GCC to compile. EMACS and VI-Family will greatly improve through this. You don't need to like Microsoft because of LSP - but LSP is great.

[1] https://gitlab.gnome.org/GNOME/gtk/-/issues/221#note_577021

[2] https://github.com/neovim/nvim-lspconfig

Eglot is another excellent LSP client implementation: https://github.com/joaotavora/eglot

I slightly prefer Elgot's interface, which feels a bit more restrained, but both are excellent.