xyzzy-lisp

http://www.geocities.jp/m_hiroi/xyzzy_lisp.html

リストをアトム毎に表示する

  • ソース
(defun print-list (lst)
  (while lst
    (insert (format nil "~D~%" (car lst)))
    (setq lst (cdr lst))))
  • 実行結果
(print-list '(1 2 3 4 5 6))
1
2
3
4
5
6
nil
  • ミニバッファから利用する
(defun test-print-list (str)
  "スペース区切りの文字列を、リストにして、1行に1個表示する"
  (interactive "sスペースで区切って数字を入れてください: ")
  (let ((tmp) (tmp2 ()))
    (setq tmp (split-string str #\ ))
    (while tmp
      (setq tmp2 (append tmp2 (list (parse-integer (car tmp)))))
      (setq tmp (cdr tmp)))
    (print-list tmp2)))

バッファの内容をファイルに保存する

  • ソース
(defun copy-buffer-to-file (fn)
  "現在のバッファを指定ファイルにコピーする"
  (interactive "F")
  (save-excursion
    (with-open-file (out fn :direction :output)
      (goto-line 1)
      (let ((a t))
	(while a
	  (princ (concat (buffer-substring
			  (progn (goto-bol) (point))
			  (progn (goto-eol) (point))) "\n") out)
	  (setq a (forward-line)))))))

wikiで整形済みテキストを表示する形式に編集

  • ソース
(defun wiki_form ()
  "wikiで整形済みテキストを表示する形式に編集後、クリップボードにコピーします"
  (interactive "*p")
  (save-excursion
    (goto-line 1)
    (insert "  ")
    (while (forward-line)
      (insert "  "))
    (selection-whole-buffer)
    (copy-selection-to-clipboard)
    (undo)))