xyzzyではてな記法の見出しを実装してみる

挨拶

つかさです。
今日は、xyzzyはてな記法を使う方法について。

表示をはてな記法

エディタに、つらつら文章を書いていくと次のような感じになる。文の長さが短いのならいいが、ある程度の文字数になると、内容が把握しにくくなる。そのとき、はてな記法を利用しています。

はてな記法といっても、利用しているのは"**"で小見だしと"***"で小々見出しのみ。


こんな感じですね。
このようにする方法を今回は紹介します。

行頭に**をつける

はてな記法では、行頭に**がついているものは小見出し。***とついているのは小々見出しになります。

ですが、一々文章を書いているとき、行頭までカーソルを移動して**をつけ、また元の箇所に戻るというのは面倒。そこで、スクリプトを用い、カーソルを移動させないまま行頭に**がつくようにします。

.xyzzyに、次をコピペ。

;;行頭に見出しマーク
(defun hateda-heading ()
  (interactive "*")
  (save-excursion
  (goto-bol)
  (insert "**")
  (fix-selection-point)))
(global-set-key #\C-: 'hateda-heading)

(defun hateda-headingsec ()
  (interactive "*")
  (save-excursion
  (goto-bol)
  (insert "*")
  (fix-selection-point)))
(global-set-key #\C-] 'hateda-headingsec)

これで、Ctrl+:を押したときには、行頭に"**"が。Ctrl+]を押したときには、行頭に"*"がつくようになりました。

見出しに色を付ける

見やすいように、見出しのある行は色が付くように設定します。

.xyzzy

以下を.xyzzyにコピペ。

;;テキストの色を変更する
(defvar *text-mode-formats*
  (compile-regexp-keyword-list
   '(
	 ("^[=].*" t (:color 7 13 :line :bold ))
     ("^[*][*][^*].*" t (:color 10 15 :line ))
     ("^[*][*][*][^*].*" t (:color 9 12 :line ))
	 )
   )
  ) ;

;
(setq regexp-keyword-list *text-mode-formats*)   
(add-hook 'text-mode-hook 'my-color-text-mode)

(defun my-color-text-mode ()
  (make-local-variable 'regexp-keyword-list)       
  (setq regexp-keyword-list *text-mode-formats*)   
  )

これで、行頭に"**"がある行と、"***"がある行の背景に色が付くように設定しました。また、タイトル行(行頭に"="がある行)の文字にも色が付くよう設定してます。

	 ("^[=].*" t (:color 7 13 :line :bold ))
     ("^[*][*][^*].*" t (:color 10 15 :line ))
     ("^[*][*][*][^*].*" t (:color 9 12 :line ))

の箇所で、どの形式の文字列を、何色にするか、の設定をしています。("^[*][*][^*].*" t (:color 10 15 :line ))だったら、「行頭が**の行を」「文字色10、背景色15に色づけして、下線を引く」ということです。

色の設定

次に、色の設定をします。
ツール−共通設定−フォントタブを開いてください。

表示色をスクロールさせてください。文字1とか文字2とかが並んでいる箇所があります。ここで適当な色を選択します。小見出し(**)の色を設定したいのであれば、文字10と背景15を、適当な色に変更しましょう。ちなみに、色の設定の時には、パワースポイトのようなソフトを使うと便利です。