vice (VIm-like Commands Extension for Emacs) is a package of
additional commands for Emacs that attempt to emulate the simplicity
of text processing with Vim.
It is an alternative to existing Emacs extensions to emulate vim, that adds on top of the vanilla text navigation flow without completely revamping Emacs keybinds. It attempts to complement Emacs with Vim commands that are missing or are too key-verbose with the default Emacs keybinds.
With use-package and straight.el.
(use-package vice-mode
:straight (vice
:host github
:repo "gpapadok/vice"
:local-repo "vice"
:branch "master"
:files (:defaults "vice-mode.el"))
:config (vice-mode))Otherwise clone the repo and add it to your load path.
(add-to-list 'load-path "/path/to/vice")
(require 'vice-mode)
(vice-mode 1)Deletes a surrounding balanced expression.
Like vim da( command. Default bind C-c v w .
Deletes the contents of a surrounding balanced expression.
Like vim di( command. Default bind C-c v C-w .
Saves the surrounding balanced expression to the kill ring.
Like vim ya( command. Default bind C-c v M-w.
Saves the contents of the surrounding balanced expression in the kill ring.
Like vim yi( command. Default bind C-c v M-W.
Comments the surrounding balanced expression.
Default bind C-c v ;.
Inserts a line below the current line.
Like vim o. Default bind C-c v j.
Inserts a line above the current line.
Like vim O. Default bind C-c v M-j.
Joins the current line with the next with one space in between.
Default bind C-c v k.
Joins the current line with the next without empty space.
Default bind C-c v M-k.
Replaces the balanced expression surrounding point with the first one in the kill ring.
Default bind C-c v y.
Saves the line at point to the kill ring.
Like vim yy. Default bind C-c v M-l.
Pastes a saved line above the current.
Like vim p. Default bind C-c v M-l.
Saves the current line from point to the end to the kill ring.
Like vim y S-$. Default bind C-c v e.
Kills the line at point.
Like vim dd. Default bind C-c v l.