[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:04733] Re: カーソル行にマークを付ける



金子さん、こんにちは。

	2000年7月4日(火)[10:52:59]の、
	[xyzzy:04732] カーソル行にマークを付ける
	への返事です。

|  Lisp でのプログラムははじめてですので「Lispでは、ここはこう書
| いた方がよい」みたいなところを添削していただけたらと思います。

特に悪くはないと思いますが、Lisp っぽく書くならこうで
しょうか。逆向きのを :from-end を使うようにした以外は、
やってることは一緒です。

(defun toggle-line-mark ()
  (interactive)
  (multiple-value-bind (from to tag)
      (find-text-attribute-point (point))
    (if (eq tag 'marked-line)
	(delete-text-attribute-point (point))
      (save-excursion
	(set-text-attribute (progn (goto-bol) (point))
			    (progn (goto-eol) (point))
			    'marked-line
			    :foreground 1 :background 0)))))

(defun search-forward-marked-line ()
  (interactive)
  (goto-char (or (find-text-attribute
		  'marked-line
		  :start (save-excursion (goto-eol) (point)))
		 (plain-error "マークされた行はありません"))))

(defun search-backward-marked-line ()
  (interactive)
  (goto-char (or (find-text-attribute
		  'marked-line
		  :end (save-excursion (goto-bol) (point))
		  :from-end t)
		 (plain-error "マークされた行はありません"))))

-- 
亀井哲弥(Tetsuya Kamei)
kamei@xxxxxxxxxxxx

Index Home