プレーンテキストで引用テキストの別の顔を強調表示または使用する方法を探しています。洗練された/強化されたテキスト モードがあるはずですが、見つかりません。
簡単な解決策がない場合は、どこから関数を書き始めればよいか教えていただけますか?
どうもありがとうございました!
19.xxからEmacsを使っている初心者
プレーンテキストで引用テキストの別の顔を強調表示または使用する方法を探しています。洗練された/強化されたテキスト モードがあるはずですが、見つかりません。
簡単な解決策がない場合は、どこから関数を書き始めればよいか教えていただけますか?
どうもありがとうございました!
19.xxからEmacsを使っている初心者
すでにこれを行っているメジャーモードについてはわかりませんが、define-derived-mode を使用して十分に簡単に作成できます
(define-derived-mode rich-text-mode text-mode "Rich Text"
"text mode with string highlighting."
;;register keywords
(setq rich-text-font-lock-keywords
'(("\"\\(\\(?:.\\|\n\\)*?[^\\]\\)\"" 0 font-lock-string-face)))
(setq font-lock-defaults rich-text-font-lock-keywords)
(font-lock-mode 1))
別の方法として、テキストモードにフックを追加することもできます:
(defun add-quotes-to-font-lock-keywords ()
(font-lock-add-keywords nil '(("\"\\(\\(?:.\\|\n\\)*?[^\\]\\)\"" 0 font-lock-string-face))))
(add-hook 'text-mode-hook 'add-quotes-to-font-lock-keywords)
一般的に、テキストを編集するのに適したモードは org-mode です。ただし、デフォルトでは文字列をフォントロックしません。
"
正規表現については、エスケープされている場合を除いて、文字列の内容から自分自身を除外したいと思います。この --- のようなもの"
で、その後に非"
文字またはエスケープ文字が続き、その後に"
:
\"\\([^\"]\\|\\\\\\(.\\|[\n]\\)\\)*\"
ただし、一致する引用符「...」は悪名高いことに注意してください。私はInfo+\"
で正確にそれを行いますが、この強調表示が時折単独でまたは?\"
そのようなプログラミング構造を参照するマニュアルで破棄される Info ノードがいくつかあります。