如何检查点前的字符是否等于“\
”
(defun comment-latex ()
(interactive)
(if (region-active-p)
(comment-region (region-beginning) (region-end))
(if (= (char-before) ("\\") ;; how to fix this sentence?
(insert "%")
(if (= (point) (line-beginning-position)) ;; this part works
(insert "% ")
(end-of-line)
(insert " % "))))
)
(global-set-key LaTeX-mode-map (kbd "%") 'comment-latex)
作为示例的代码应该执行以下操作:
1)如果选择了某个区域,则应对该区域进行评论。
2)如果前面的字符是“\
”,则应在点处插入正常%。
3)如果point位于行的开头,请插入“%
”
4)如果点在其他地方,请转到句子的末尾并插入“SPC
%
SPC
”
答案 0 :(得分:3)
单个字符的语法是? char 。所以:
(= (char-before) ?\\)
答案 1 :(得分:1)
将其替换为
(= (char-before) 92)
92是\字符的ASCII码。
答案 2 :(得分:1)
在e-lisp中,字符与字符串不同。获取字符的ascii值的语法是?a
。尝试类似:
(if (= (char-before) ?\\))
DO-SOMETHING
DO-SOMETHING-ELSE)