[求助]在doom-emacs 下怎么增加新的evil-surround pair?

这个方案好像不工作了,https://www.reddit.com/r/emacs/comments/e72m9j/evilsurround_shortcuts_in_doom_coming_from/

(after! evil-surround
  (let ((pairs '((?g "$" . "$") 
                 (?h "(" . ")") 
                 (?j "[" . "]") 
                 (?k "{" . "}") 
                 (?l "<" . ">") 
                 (?ø "'" . "'") 
                 (?æ "\"" . "\""))))
    (prependq! evil-surround-pairs-alist pairs)
    (prependq! evil-embrace-evil-surround-keys (mapcar #'car pairs))))

建议用 GitHub - meow-edit/meow: Yet another modal editing on Emacs / 猫态编辑 ,不想换的话可以试试 GitHub - meain/evil-textobj-tree-sitter: Tree-sitter powered textobjects for evil mode in Emacs

已经习惯了evil,meow暂时不会用,感觉更换成本比较高,没有足够的动机换。evil-textobj-tree-sitter和evil-surround结合起来用是可以的,不过evil-surround主页的设置,我在doom-emacs总是设置不成功,不知道doom-emacs有什么特别的处理。

你需要的是这个 GitHub - willghatch/evil-textobj-anyblock at fix-inner-block

我好像发错了,,,这个不是evil-surround,我建议看下doom emacs的源码,用embrace扩展,doom默认用的应该就是embrace

谢谢,等等看看能不能搞明白吧。

我也遇到过这个问题。其实这个问题的关键点是doom,不是evil-surround,如果是自己的配置,楼主那样就可以工作了,问题在于doomemacs已经给你配置好了这些东西,doom使用use-package,并且已经调用国use-package来加载这个包了,现在要它的基础上自己加东西,这个才是问题所在。

去看了下doom的源码,在modules/editor/evil/config.el里面,doom自己定义的surround-pair是定义在了加载evil-embrace里面。从第261行开始。我觉得你可以参照一下doom的方式自己改一下?

谢谢,等等看一下。这就是用doom-emacs的代价,有时候需要了解有些功能doom-emacs是怎么实现的,通用的方案可能不工作。

原来要在embrace里面设置才行。比如:

(add-hook 'LaTeX-mode-hook
    (lambda ()
       (embrace-add-pair ?e "\\begin{" "}")))
1 个赞