Vim'den Emacs'a taşındığından beri aynı şeyi istiyordum.
Bazı araştırma ve deneylerden sonra, aynı şeyi Evil paketinin kurulu olduğu veya ara boşlukları kullanarak yapmanıza izin veren aşağıdaki işlevi gördüm.
Ayrıca bölge aktif (veya vim teriminde görsel seçim) ile çalışır ve abc-def-hij gibi bir sözcüğün yerini alması oldukça yararlı olabilir:
; 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) "/"))))
sonra init.el dosyasında aynı anahtar bağlayıcıyı tanımlayın:
(global-set-key (kbd "\C-co") 'evil-replace-word-selection)
keybinding, "space z" olan vim'den biraz farklıdır, ancak kötü mod varken emacs'ta bunun nasıl haritalandırılacağını çözemedim. Önek vb. değil şikayet etmeye devam edin ve emacs konusunda nispeten yeniyim. Ama hala çok da kötü değil ve şu anda bu çözümden mutluyum.