Emacsに黒魔道士
の Emacs版
コード
(require 'cl) (defun ff3 () (interactive) (save-excursion (goto-char (point-min)) (loop with chars = nil while (not (eobp)) do (let ((char (buffer-substring-no-properties (point) (1+ (point))))) (cond ((string-match "\\([0-9]\\)" char) (let* ((idx (string-to-number (match-string 1 char))) (color (car (tty-color-by-index idx)))) (push (propertize " " 'face `((:background ,color))) chars))) ((string= char "\n") (push "\n" chars)) (t (push " " chars))) (forward-char 1)) finally (let ((str (mapconcat 'identity (reverse chars) "")) (buf (get-buffer-create "*ff3*"))) (with-current-buffer buf (erase-buffer) (insert str) (goto-char (point-min))) (pop-to-buffer buf)))))