meain/blog

Sep 29, 2021 . 2 min

Emacs alternatives for pouplar Neovim plugins

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)

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.

← Home