emacs及evil正则表达式转义字符能否模拟Vim的简化规则?

请教大家,Vim搜索时用的正则表达式这些规则(下面列出了三种示例)能否由evil或者Spacemacs借用?

一、 \v开启very magic模式可省去大量的转义符号:

二、 按原义查找文本时,使用\V原义开关以消除.*?等大多数字符的特殊含义,例如\Va.k.a.相当于\a\.k\.a\.。

三、 Vim还有以下简化的正则表达式(比如用\W代表[^0-9A-Za-z_]会简洁很多)

请问这些规则evil是不是用不了?evil或者Emacs有没有类似的简化规则?

;; Set before requiring evil module
(setq evil-magic 'very-magic)
(setq evil-search-module 'evil-search)
(setq evil-ex-search-vim-style-regexp t)
2 个赞

非常感谢您的回复,请问应该将这段放在哪个文件哪个位置? 我在Windows10用着Spacemacs0.300,在.emacs.d/init.el文件和/.spascemacs.d/init.el文件最前面都放了您的设置,但还是没有达到预期效果。

几个问题:

  • Spacemacs的tags以及master本质是deprecate的(准确说是崩的),几年没有人维护了,请直接用develop分支
  • 你放的地方不对,Spacemacs的话应该放在 .spacemacs 文件里的
(defun dotspacemacs/user-init ()
)

谢谢,我用的就是0.300的develop版,master版还是只到0.200吧。

我在.spacemacs.d/init.el文件的3个地方都加入了这段设置。分别是文件开头、(defun dotspacemacs/user-init () 、(defun dotspacemacs/user-config ()。依然没有生效。

spacemacs什么时候引入的 .spacemacs.d/init.el 这个机制,我好久没关注了,我这儿都是在 .spacemacs 文件里

还有,你用的develop是不是有点老?我这儿版本号都到 0.999 了

升版有这么快吗? 请问在这个网页能看到版本号吗?

哈哈,我都是直接 SPC b h 看主页右上角。网站我不知道,好像看不了

一开始就有

看来我没仔细读过文档

您用的是Spacemacs吗?我看Spacemacs的develop版本还是0.300吧?

请问应该在哪个文件的哪个位置添加您给的设置?

我在(defun dotspacemacs/user-init ()添加了但无效,Messages的buffer有两个报错,第一个是启动Spacemacs后就出现,最后一行是输入/\d后出现的,请问是不是哪里出问题了?

你这问我也没用啊……我现在根本不会用 Spacemacs

(setq evil-magic 'very-magic)
(setq evil-ex-search-vim-style-regexp t)
(evil-select-search-module 'evil-search-module 'evil-search)

试试这个,放在 user-config 里面,spacemacs 可能没法在 evil 加载之前执行用户自己的代码

1 个赞

非常感谢,您后面发的这个设置可以。在 user-config 里面添加

(setq evil-magic 'very-magic) (setq evil-ex-search-vim-style-regexp t) (evil-select-search-module 'evil-search-module 'evil-search)

之前您发的设置我下午多次测试发现,需要将

dotspacemacs-editing-style 'hybrid

改成

dotspacemacs-editing-style 'vim

才能生效。

请问您这些设置从哪里找到的?#+TITLE: e:/lxs/.emacs.d/layers/+spacemacs/spacemacs-evil/README.org只有66行,从哪找详细教程?

再次感谢~

那就是这个原因了。好几年前这几行放 user-config 里太晚了,需要放在 user-init 里。这几年可能evil修复了这个问题吧。 Enjoy evil. :+1:

几年前从 doom-emacs 仓库里面抄的,然后 evil-select-search-module 那个是结合自己 Elisp 理解改的。还有就是看 Evil 的源码了

evil-magic 这个变量的 magic 应该是和 vim 里面的意思是一样的。

1 个赞