syntax - 如何在主要模式下获取与语法对应的字符
问题描述
如何获取与 a 中给定语法字符相对应的字符(或其集合)major-mode
?
例如,我希望能够在 elisp 或 C 等大多数模式中获取转义字符,例如“\”。我找不到返回与语法类对应的字符的函数——在这个case 转义语法类,即。(string-to-syntax "\\") ;; => (9)
在 Lisp/C 模式下。
那么,我该如何走另一条路,例如。(some-function '(9) major-mode) ;; => "\\"
解决方案
语法表是字符表,您可以使用它map-char-table
来检查语法表中的每个规则,例如,
(defun foo (syntax-code syntax-table)
"Return chars (or char range) with SYNTAX-CODE in SYNTAX-TABLE."
(let (result)
(map-char-table
(lambda (k v)
;; k is either a char or (FROM . TO)
;; v is (SYNTAX-CODE . MATCHING-CHAR)
(when (= (car v) syntax-code)
(push (pcase k
(`(,from . ,to) (list (string from) (string to)))
(_ (string k)))
result)))
syntax-table)
(nreverse result)))
(foo 9 emacs-lisp-mode-syntax-table)
;; => ("\\")
推荐阅读
- python - django-simple-history 从 python shell 跟踪用户
- python - 将多个数据帧写入单个平面文本文件以输入到 Pandas
- r - 在裂区设计上使用 agricolae 进行 ANOVA 的最佳方法是什么?
- powershell - Powershell 将一个特定文件夹解压缩到具有动态名称的文件中
- php - 我的简单 PHP 登录脚本没有按预期工作,我不知道为什么
- vue.js - 如果使用 IE,请关闭 vuex-persist
- python - 如何在 Conda 中从 yaml 文件安装软件包
- python - 如何限制员工用户只能在 Django 管理页面中查看他们的信息?
- reactjs - 如何在 React 切换菜单中实现链接到部分
- c++ - 如何阻止 LWA_COLORKEY 制作灰色轮廓?