ansi-escape-sequences

  1. ansi-escape-sequences
    1. Description
    2. Author
    3. Requirements
    4. Procedures
    5. Examples
    6. License
    7. Version history
      1. Version 0.3
      2. Version 0.2
      3. Version 0.1

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] (hide-cursor)

Hide the cursor.

[procedure] (show-cursor)

Show the cursor.

[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

There are videos showing the execution of the program below: OGV (Theora), AVI

(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

Version 0.3

Version 0.2

Fixed escape sequences with more than one argument (reported by Felix)

Version 0.1

Initial release