手册说使用'\ |',如a \ | b匹配a或b。但是当我将其与regexp生成器或align-regexp一起使用时如果使用“ True \ | False”,则无法识别“ True”或“ False”。我收到以下消息:

Wrong argument type: integer-or-marker-p, nil


我究竟做错了什么?

最佳答案

使用双重转义:\\|

一些补充说明:

Emacs具有2种转义样式,一种在EmacsLisp中,另一种在命令中使用时,
即。从M-x提示符(rgrepoccur,...)


在EmacsLisp中,使用双反斜杠\\|





M-x …中使用单个反斜杠\|


…作为旁注,例如在yasnippet动态扩展中编写嵌入式EmacsLisp时,您必须使用四倍反斜杠:\\\\|(以避开双反斜杠。)

始终避免这种情况(如果可能),例如,在yasnippet中,您可以通过.yas-setup.el提供与模式相关的emacslisp,而无需额外的转义

07-27 21:28