[xyzzy:03648] Re: 小ネタ還元
- Subject: [xyzzy:03648] Re: 小ネタ還元
- From: masahito henmi <henmi@xxxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
Hiroshi Saito <HiroshiSaito@xxxxxxx> さん、こんにちは。masahito です。
|;; M-x で ラインをコピー
|(defun copy-line ()
| (interactive)
| (save-excursion
| (setq b (point)) <---
| (goto-eol)
| (setq e (point)) <---
| (copy-region-as-kill b e)
| (message "line copied")
| ))
これだとbとeが大域変数になっちゃうので、
(defun copy-line ()
(interactive)
(let ((b nil) ;; 局所変数を定義してやる
(e nil))
(save-excursion
(setq b (point))
(goto-eol)
(setq e (point))
(copy-region-as-kill b e)
(message "line copied")
)))
とか、lispディレクトリの下を見ると亀井さんがよくやっているのが
(buffer-substring (progn (goto-bol) (point))
(progn (goto-eol) (point)))
みたいなパターン
(copy-region-as-kill (progn (goto-bol) (point))
(progn (goto-eol) (point)))
↑
ここらへんにsave-excursion入れてるパターンも
あります。
慣れないと読みにくいですけどね^^;
私も最初のころは上の let と setq のパターンが好きでした。
------------------------------------------------------------
逸見雅人 Masahito Henmi henmi@xxxxxxxxxxxxx
♪あなたの願いも仕事もうまくいきますように・・・