Neovimacs is vimacs for the neovim age.
This project is a pure-lua rewrite of the original vimacs scripts (emacs key
emulation for vim), rebuilt on neovim APIs (vim.keymap, vim.on_key,
buffer APIs, native incsearch). Requires neovim 0.10+ (tested on 0.12).
See MAPPINGS.md for the full keybinding reference and notes on what changed relative to the original vimscript implementation.
stty -ixon -ixoff
{
"millerjason/neovimacs.nvim",
opts = {},
}
To install the plugin with custom options (lazy example provided):
{
"millerjason/neovimacs.nvim",
opts = {
VM_Enabled = true,
VM_StartInsert = false, -- Start in normal (not insert) mode
},
}
C-x C-f uses :hide editM-x to : in normal mode tooC-y / M-yF10 to :emenuRemoved: VM_UnixConsoleMetaSendsEsc โ neovim receives Meta natively, so the termcap workaround this enabled no longer exists (setting it shows a warning and is ignored). Configure your terminal to send proper Meta/Alt key codes instead.
nvim --clean --headless -l tests/smoke.lua
Warning: there are numerous nvim plugins that will introduce conflicting key mappings.
In addition to installing which-key, you can use the following nvim commands to help you track down key bindings and conflicts:
:verbose imap <C-n> -- for insert mode
:verbose nmap <C-n> -- for normal mode
:nmap <localleader> -- to see leader commands
:WhichKey -- see above
Many of the emacs control and meta keys (movement, kill buffers, file operations, marking) will work while you're running vimacs in neovim. Neovim does not allow all bindings to work in all modes, although this module supports most of what is possible.
Plus you still get the full power of vim moded editing as well, so vimacs can be used as a module to transition you from emacs to vim until you have mastered the vim bindings.