入力乗っ取り+疑似バックグラウンド実行
よい子は真似しちゃダメ
;;; キーボードの入力を乗っ取る ;;; とりあえず乗っ取ってみたかっただけなので、入力されたキーを ;;; そのまま buffer に insert ;;; C-g か RET で終了 (defun read-input () (popup-string "*** キーボード入力 横取り中 ***" (point)) (let (c) (handler-case (while (setq c (read-char *keyboard*)) (case c ((#\C-g #\RET) (unread-char c *keyboard*) (quit)) (t (insert (format nil "~A" c)) (refresh-screen)) ) (continue-popup)) (quit () (ed::erase-popup) ;ac-mode が必要 :done)))) => read-input ;;; これを評価するとキーボードからの入力が乗っ取られる ;;; "hello world[RET]" と打ってみた (read-input) hello world => :done ;;; 疑似バックグランド実行でも同じように動く (start-timer 0 'read-input t) => t hello world