【问题标题】:Test whether the point is between matching quotes (emacs lisp)测试点是否在匹配的引号之间(emacs lisp)
【发布时间】:2013-02-25 23:11:03
【问题描述】:

我们如何检查(point) 是否在匹配的“引号”内

示例 1:“(point)”,

但不在内部

示例 2:“此处引用”(point)“此处引用”,

在 Emacs Lisp 中?

【问题讨论】:

  • 我能看到的唯一方法是检查附加的字体锁,但是字体锁怎么知道呢?也许来自 C 的函数。它是进行字体检查的唯一选择吗?

标签: emacs lisp quotes point


【解决方案1】:

您正在寻找的是syntax-ppss(在syntax.el 中定义)。 它返回 10 个值,第 4 个告诉您该点是否在字符串内。

【讨论】:

  • 总而言之,(nth 3 (syntax-ppss)) 是一个很好的简洁方法,可以根据这个答案来检查这个问题。
【解决方案2】:

(eq (nth 1 (text-properties-at (point))) font-lock-string-face)

这会检查点处的文本字体是否被识别为字符串(即是否具有文本属性 face font-lock-string-face)。

这寻找一个更优雅的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多