Eu estava lutando e querendo a mesma coisa desde a mudança do Vim para o Emacs.
Após algumas pesquisas e experiências, criei a função abaixo, que permite que você faça a mesma coisa com o pacote Evil instalado ou usando o spacemacs.
Também funciona com a região ativa (ou seleção visual no termo vim) e pode ser bastante útil para substituir palavras 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) "/"))))
em seu init.el, defina a mesma ligação de chave:
(global-set-key (kbd "\C-co") 'evil-replace-word-selection)
keybinding é um pouco diferente do vim, que é o "espaço z", mas não descobri como mapear isso no emacs quando o modo maligno está lá. continue reclamando não é um prefixo etc e eu sou relativamente novo no emacs. Mas ainda não é tão ruim e eu estou feliz com esta solução no momento.