点之前的emacs字符等于

时间:2012-10-14 14:36:43

标签: emacs comments char point

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

(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

3 个答案:

答案 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)