2

\ポイントの前の文字が " "に等しいかどうかを確認する方法

(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) ポイントが行の先頭にある場合は、" "を挿入します。

4) ポイントが別の場所にある場合は、文末に移動して " SPC % SPC"を挿入します。

4

3 に答える 3

3

The syntax for individual characters is ?char. So:

(= (char-before) ?\\)
于 2012-10-14T15:09:46.360 に答える
1

に置き換えます

(= (char-before) 92)

92は\文字のASCIIコードです。

于 2012-10-14T15:07:08.067 に答える
1

e-lispでは、文字は文字列と同じではありません。文字のASCII値を取得するための構文はです?a。次のようなものを試してください:

(if (= (char-before) ?\\))
    DO-SOMETHING
  DO-SOMETHING-ELSE)
于 2012-10-14T15:07:22.107 に答える