Estaba luchando y deseando lo mismo desde que me mudé de Vim a Emacs.
Después de un poco de investigación y experimentación, se me ocurrió la siguiente función que le permite hacer lo mismo con el paquete Evil instalado o usando spacemacs.
También funciona con región activa (o selección visual en término vim) y eso puede ser bastante útil para reemplazar palabras como abc-def-hij:
; replace current word or selection using vim style for evil mode
(defun evil-replace-word-selection()
(interactive)
(if (use-region-p)
(let (
(selection (buffer-substring-no-properties (region-beginning) (region-end))))
(if (= (length selection) 0)
(message "empty string")
(evil-ex (concat "'<,'>s/" selection "/"))
))
(evil-ex (concat "%s/" (thing-at-point 'word) "/"))))
luego, en su init.el, defina el mismo enlace de teclas:
(global-set-key (kbd "\C-co") 'evil-replace-word-selection)
la combinación de teclas es ligeramente diferente de vim uno, que es "espacio z", pero no he descubierto cómo mapear eso en emacs cuando el modo malvado está allí. sigo quejándome, no es un prefijo, etc. y soy relativamente nuevo en emacs. Pero todavía no está tan mal y yo mismo estoy contento con esta solución en este momento.