我已经开始使用elisp在Emacs中创建字体锁定(语法高亮)。大部分教程都提到使用elisp函数“regexp-opt”来优化正则表达式,但是我的emacs版本(23.2)似乎没有这个功能。此外,谷歌搜索答案似乎没有得到有用的结果。有任何想法吗?emacs中缺少regexp-opt函数?
2
A
回答
6
正如你可以通过C-h f regexp-opt
发现:
正则表达式-opt是一个编译Lisp的 功能。
(正则表达式,选择字符串&可选的括号)
返回一个正则表达式中 列表中的字符串相匹配的字符串。每个字符串应该是 在字符串中是唯一的,并且不应该包含任何引用或不引用的正则表达式。 如果可选paren非零,请确保 返回的正则表达式至少包含 至少一个正则表达式分组 构造。返回的正则表达式是 通常比 相当于正则表达式更高效:
(让((打开(如果括号 “\(” “”)) (接近(如果括号 “\)”, “”)))
(开放的concat(mapconcat '的regexp引号 字符串 “\ |”)接近))如果括号是`词语',则 所得的regexp是另外 通过\ <和>包围。
请注意,这是在Lisp代码中使用的函数,而不是一个交互式命令,你可以用M-x
5
regexexp拉拢运行是一个elisp的功能,但不是一个emacs的命令。这就是为什么你不能通过运行来执行它:M-x regexp-opt
但是,你可以从elisp shell执行任何elisp函数。键入M-x eshell。从这个shell中你可以运行正则表达式
0
正如其他人所说,regexp-opt
不是一个命令(所以你不能使用M-x
调用它)。但是您可以使用M-:
以交互方式调用它的应用程序。
例如,M-: (regexp-opt '("foo" "toto" "blat" "total" "mistral")) RET
返回正则表达式"\\(?:blat\\|foo\\|mistral\\|tot\\(?:al\\|o\\)\\)"
。
相关问题
- 1. PHP中缺少Session_start函数
- 2. fftpack中缺少scipy函数
- 3. openMPI中缺少gethostname()函数
- 4. 函数缺少参数
- 5. PHP中缺少参数$ _POST函数
- 6. 在PHP函数中缺少参数?
- 7. 计数中缺少函数错误
- 8. PHP缺少mb_strpos函数?
- 9. DialogPreference缺少构造函数
- 10. 缺少函数头C++
- 11. Statsmodels API:缺少SARIMAX函数
- 12. 缺少dll函数检测
- 13. 缺少函数返回'UIImage'
- 14. 缺少python 3 API函数
- 15. 缺少文件()函数
- 16. 替代缺少setOnDateChangeListener() - 函数
- 17. 在Xcode中缺少导入函数SCM?
- 18. Haskell - 缺少函数中的模式
- 19. WinCE ASP服务器中缺少函数
- 20. 在函数中缺少返回 - 模型
- 21. 在函数调用中缺少哨兵?
- 22. 在Karma测试中缺少函数
- 23. 在Django中缺少'Median'聚合函数?
- 24. 转换函数中缺少表达式
- 25. 缺少来自GNU Emacs的软件包
- 26. Emacs的css模式语法表缺少?
- 27. GroupBy Datepart函数缺少数据
- 28. PHP缺少参数错误的函数
- 29. PHP函数缺少的参数错误
- 30. Azure函数 - VS2017工具 - 在函数.json中缺少绑定
你得到的错误是什么?我运行emacs 23.2,我有这个功能。 – 2010-09-26 22:56:54
M-x regexp-opt => [不匹配] – rehanift 2010-09-26 22:59:08