3年ぶりのxyzzyタグとか。
バッファに行番号を付加するっての、確か昔どっかでそういうコードを拾った記憶があって、実際昔書いたドキュメントに使ってたりするんだけど、今日やろうと思ったら手元にもネットにも見当たらず。
なので、このへん参考に適当に作った。
でも、絶対どっかに落ちてると思うんだよなー。
(defun copy-buffer-as-kill-with-numbering () (interactive) (let ((str "")) (save-excursion (progn (beginning-of-buffer) (dotimes (i (buffer-lines)) (setq str (concat str (get-current-line-with-numbering (buffer-lines)) (format nil "~C" #\LFD))) (next-line)))) (ed::kill-new str))) (defun get-current-line-with-numbering (wid) (format nil (concat "~" (format nil "~D" (ceiling (log wid 10))) "D: ~A") (current-line-number) (buffer-substring (point) (save-excursion (goto-eol) (point)))))
ためしに、これ↑を書いたバッファをコピーしてみる。
1: (defun copy-buffer-as-kill-with-numbering () 2: (interactive) 3: (let ((str "")) 4: (save-excursion 5: (progn 6: (beginning-of-buffer) 7: (dotimes (i (buffer-lines)) 8: (setq str (concat str 9: (get-current-line-with-numbering (buffer-lines)) 10: (format nil "~C" #\LFD))) 11: (next-line)))) 12: (ed::kill-new str))) 13: 14: (defun get-current-line-with-numbering (wid) 15: (format nil (concat "~" 16: (format nil "~D" (ceiling (log wid 10))) 17: "D: ~A") 18: (current-line-number) 19: (buffer-substring 20: (point) 21: (save-excursion (goto-eol) (point))))) 22: