在 emacs evil 中搜索视觉选择

Search visual selction in emacs evil

我想模拟我在 vim 中的行为,但在 emacs 邪恶模式下。我希望 * 搜索当前视觉选择的文本。下面的代码可以工作,但按 nN 不会保留搜索字符串

(define-key evil-visual-state-map (kbd "*")
  (lambda () (interactive)
    (let ((search-string (buffer-substring
                          (evil-range-beginning (evil-visual-range))
                          (evil-range-end (evil-visual-range)))))
      (evil-normal-state)
      (evil-search search-string t))))

我是 emacs/elisp 的新手。关于 "right way" 执行此操作的任何想法?在 evil-search.el source 中,我看到了一个可能有用的函数 evil-ex-search-update-pattern,但我不确定如何将它组合在一起。

谢谢!

Bailey Ling (a former Vim user) has made a plugin that accomplishes the same thing you're after: https://github.com/bling/evil-visualstar

您可以安装它,也可以查看源代码(这可能有助于解决您的问题)。