首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取大调模式下语法对应的字符

如何获取大调模式下语法对应的字符
EN

Stack Overflow用户
提问于 2020-03-25 10:31:50
回答 1查看 38关注 0票数 1

如何获取与major-mode中的给定语法字符对应的字符(或字符集

例如,我希望能够获得转义字符,例如在大多数模式下,如elisp或C。我找不到一个函数可以返回对应于语法类的字符--在本例中是转义语法类,即。Lisp/C模式下的(string-to-syntax "\\") ;; => (9)

那么,我怎么才能走另一条路呢?(some-function '(9) major-mode) ;; => "\\"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-25 19:00:00

语法表是字符表,您可以使用map-char-table检查语法表中的每个规则,例如,

代码语言:javascript
复制
(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)
;; => ("\\")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60842231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档