手册说使用'\ |',如a \ | b匹配a或b。但是当我将其与regexp生成器或align-regexp一起使用时如果使用“ True \ | False”,则无法识别“ True”或“ False”。我收到以下消息:
Wrong argument type: integer-or-marker-p, nil
我究竟做错了什么?
最佳答案
使用双重转义:\\|
一些补充说明:
Emacs具有2种转义样式,一种在EmacsLisp中,另一种在命令中使用时,
即。从M-x
提示符(rgrep
,occur
,...)
在EmacsLisp中,使用双反斜杠\\|
…
在M-x …
中使用单个反斜杠\|
…作为旁注,例如在yasnippet动态扩展中编写嵌入式EmacsLisp时,您必须使用四倍反斜杠:\\\\|
(以避开双反斜杠。)
始终避免这种情况(如果可能),例如,在yasnippet中,您可以通过.yas-setup.el
提供与模式相关的emacslisp,而无需额外的转义