You are looking at historical revision 17238 of this page. It may differ significantly from its current revision.

ansi-escape-sequences

Description

Procedures to generate ANSI escape sequences.

Author

Mario Domenech Goulart

Requirements

None

Procedures

[procedure] (cursor-position #!optional (line 0) (column 0))

Move the cursor to the specified position (coordinates). If a position is not specified, the cursor is moved to the home position at the upper-left corner of the screen (line 0, column 0).

[procedure] (cursor-up lines)

Move the cursor up by the specified number of lines without changing columns.

[procedure] (cursor-down lines)

Move the cursor down by the specified number of lines without changing columns.

[procedure] (cursor-forward columns)

Move the cursor forward by the specified number of columns without changing lines.

[procedure] (cursor-backward columns)

Move the cursor back by the specified number of columns without changing lines.

[procedure] (save-cursor-position)

Save the current cursor position. You can move the cursor to the saved cursor position by using the restore-cursor-position procedure.

[procedure] (restore-cursor-position)

Return the cursor to the position stored by the save-cursor-position.

[procedure] (erase-display)

Clear the screen and move the cursor to the home position (line 0, column 0).

[procedure] (erase-line)

Clear all characters from the cursor position to the end of the line (including the character at the cursor position).

[procedure] (set-mode attrib)

Change the screen width or type to the mode specified by one of the following values (symbols):

[procedure] (reset-mode attrib)

Reset the mode by using the same values as set-mode.

[procedure] (set-text attribs text #!optional (reset #t))

Change the colors and attributes of text (such as bold and underline) displayed on the screen. The following attributes are available (symbols):

bg- is for background. fg- is for foreground.

Examples

(use posix ansi-escape-sequences)

(set-buffering-mode! (current-output-port) #:none)

(display (save-cursor-position))
(for-each (lambda (letter)
            (display letter)
            (sleep 1)
            (cursor-forward 1))
          '("c" "h" "i" "c" "k" "e" "n"))

(display " ")
(for-each (lambda (letter)
            (display (set-text '(bg-black fg-yellow) letter))
            (sleep 1)
            (cursor-forward 1))
          '("r" "o" "c" "k" "s" "!"))

(display (restore-cursor-position))
(display (erase-line))

(for-each (lambda (letter)
            (display letter)
            (sleep 1)
            (cursor-forward 1))
          '("c" "h" "i" "c" "k" "e" "n"))

(display " ")
(for-each (lambda (letter)
            (display (set-text '(bg-red fg-white) letter))
            (sleep 1)
            (cursor-forward 1))
          '("r" "u" "l" "e" "s" "!"))

(print "")

License

BSD

Version history

0.1
Initial release