select navigate esc close

Emacs alternatives for pouplar Neovim plugins

meain/blog ·

I was a Neovim user for a long time, but I have switch to using Emacs for quite some time now. About 1.5 years. The transition for the most part was pretty smooth except for some initial hiccup. I am now in a state where I as productive or even more when compared to Neovim. So I thought I would write about my experience and what all plugins I have found here that helped me replicate my neovim setup.

You can find both my old neovim config and my new Emacs config at meain/dotfiles

Let me start of with things that I have found alternatives for.

Use Neovim Emacs Note Show indent lines Yggdroot/indentLine zk-phi/indent-guide Allows you to conditionally render as well Show git changes in buffer airblade/vim-gitgutter dgutov/diff-hl Emacs version is much more powerful Minimal writing env junegunn/goyo.vim joostkremers/writeroom-mode Highlight only current section junegunn/limelight.vim larstvei/Focus Emacs versino is more configurable Highlight hex or other color codes rrethy/vim-hexokinase rainbow-mode Fuzzy matching on stuff junegunn/fzf.vim raxod502/selectrum + raxod502/prescient.el + minad/marginalia Insanely more powerful in Emacs Markdown preview suan/vim-instant-markdown :custom Didn't like any of the Emacs builtin ones Move text vertically/horizontally zirrostig/vim-schlepp mkhl/drag-stuff Not as good as Neovim one for horizontal movement Run commands async tpope/vim-dispatch builtin - async-shell-command Auto set default dir for file airblade/vim-rooter :custom Auto set tabstop/indent tpope/vim-sleuth jscheid/dtrt-indent Git integration tpope/vim-fugitive magit/magit Way more powerful File symbol tree liuchengxu/vista.vim bmag/imenu-list Undo tree mbbill/undotree builtin - undo-tree File browser justinmk/vim-dirvish builtin - dired Way more powerful Tree browser scrooloose/nerdtree jaypei/emacs-neotree Just used dired Surround vim objects with stuff tpope/vim-surround emacs-evil/evil-surround Auto close brackets tmsvg/pear-tree builtin - electric-pair Commenting tomtom/tcomment_vim linktohack/evil-commentary Linting/Checking w0rp/ale builtin - flymake LSP builting - lsp eglot tree-sitter builtin - tree-sitter emacs-tree-sitter/elisp-tree-sitter Neovim ecosystem is a bit better Doc in echo area Shougo/echodoc.vim builtin - eldoc Run tests janko/vim-test :custom Neovim version is much better Git commit info rhysd/git-messenger.vim emacsorphanage/git-messenger Neovim version is better Linting for non-code davidbeckingsale/writegood.vim bnbeckwith/writegood-mode Autocomplete nvim-lua/completion-nvim company-mode/company-mode Emacs version is a bit more configurable Jump to def with regex pechorin/any-jump.vim jacktasia/dumb-jump Formatter w0rp/ale lassik/emacs-format-all-the-code

Beyond this, I have ported most of my plugins and themes as well to Emacs. I just have not separated them out and published yet. It was a relatively easy process to port them thought. Elisp is really good language to work with.

Now to things that Neovim cannot do (as far as I know)

  • dired-git-info Provides you with github like info in file browser thingy
  • projectile Project based workflows
  • forge Interactive with Github and other git hosting providers
  • winner Retain/Undo-Redo window configs
  • notmuch Email
  • elfeed RSS
  • tramp Rmote editing (not that reliable though)
  • docker Docker interface from Emacs
  • kubernetes Kubernetes interface from Emacs

None of this is to ask you to switch to Emacs or anything. It is more for people who are new to Emacs and are Vim converts trying to figure thing out.