点之前的emacs字符等于

点之前的emacs字符等于,emacs,comments,char,point,Emacs,Comments,Char,Point,如何检查点之前的字符是否等于“\” 作为示例的代码应执行以下操作: 1) 如果选择了区域,则应注释该区域 2) 如果点之前的字符是“\”,则应在点处插入一个正常的百分比 3) 如果点位于行的开头,请插入“%” 4) 如果点在其他地方,请转到句子末尾并插入“SPC%SPC”将其替换为 (= (char-before) 92) 92是\字符的ASCII码。在e-lisp中,字符与字符串不同。获取字符ascii值的语法是?a。尝试以下方法: (if (= (char-before) ?\\))

如何检查点之前的字符是否等于“
\

作为示例的代码应执行以下操作:

1) 如果选择了区域,则应注释该区域

2) 如果点之前的字符是“
\
”,则应在点处插入一个正常的百分比

3) 如果点位于行的开头,请插入“
%

4) 如果点在其他地方,请转到句子末尾并插入“
SPC
%
SPC

将其替换为

(= (char-before) 92)

92是\字符的ASCII码。

在e-lisp中,字符与字符串不同。获取字符ascii值的语法是
?a
。尝试以下方法:

(if (= (char-before) ?\\))
    DO-SOMETHING
  DO-SOMETHING-ELSE)

单个字符的语法为?char。因此:


要查找的字符是\,而equal是没有意义的,因为我们正在比较整数。修复了“vs.\”问题(读取原始代码太快)。此外,我放弃了使用
equal
的建议,因为我找不到一个很好的参考来说明
eq
equal
=
函数正在讨论的位置。感谢您的反馈。基本上:如果值相同,eq和=比较。即,10是10。如果它们具有相同的值,则进行相等比较。(equal)(foo.bar)(foo.bar))是正确的,但是(((foo.bar)(foo.bar))不是因为他们是两个不同的囚徒。我给你答案的原因是,显然你帮助了另一个人的答案。从技术上讲,他的答案更完整。我不确定该交给谁。
(if (= (char-before) ?\\))
    DO-SOMETHING
  DO-SOMETHING-ELSE)
(= (char-before) ?\\)