Jump to content

Alcor6L/eLua/term

From Wikibooks, open books for an open world

This module contains functions for accessing ANSI-compatible terminals (and terminal emulators) from Lua.

Functions

[edit | edit source]

term.clrscr

[edit | edit source]

Clear the screen

term.clrscr()

term.clreol

[edit | edit source]

Clear from the current cursor position to the end of the line

term.clreol()

term.moveto

[edit | edit source]

Move the cursor to the specified coordinates

term.moveto( x, y )
  • x - the column (starting with 1)
  • y - the line (starting with 1)

term.moveup

[edit | edit source]

Move the cursor up

term.moveup( delta )
  • delta - number of lines to move the cursor up.

term.movedown

[edit | edit source]

Move the cursor down

term.movedown( delta )
  • delta - number of lines to move the cursor down

term.moveleft

[edit | edit source]

Move the cursor left

term.moveleft( delta )
  • delta - number of columns to move the cursor left

term.moveright

[edit | edit source]

Move the cursor right

term.moveright( delta )
  • delta - number of columns to move the cursor right

term.getlines

[edit | edit source]

Get the number of lines in the terminal

numlines = term.getlines()

Returns:

  • numlines - The number of lines in the terminal

term.getcols

[edit | edit source]

Get the number of columns in the terminal

numcols = term.getcols()

Returns:

  • numcols - The number of columns in the terminal

term.print

[edit | edit source]

Write one or more strings in the terminal

term.print( [ x, y ], str1, [ str2, ..., strn ] )
  • x (optional) - write the string at this column. If x is specified, y must also be specified
  • y (optional) - write the string at this line. If y is specified, x must also be specified
  • str1 - the first string to write
  • str2 (optional) - the second string to write
  • strn (optional) - the nth string to write

getcx

[edit | edit source]

Get the current column of the cursor

cx = term.getcx()

Returns:

  • cx - The column of the cursor

term.getcy

[edit | edit source]

Get the current line of the cursor

cy = term.getcy()

Returns:

  • cy - The line of the cursor

term.getchar

[edit | edit source]

Read a char (a key press) from the terminal

ch = term.getchar( [ mode ] )
  • mode (optional) - terminal input mode. It can be either:
    • term.WAIT - wait for a key to be pressed, then return it. This is the default behaviour if mode is not specified.
    • term.NOWAIT - if a key was pressed on the terminal return it, otherwise return -1.

Returns:

  • ch - The char read from a terminal or -1 if no char is available. The 'char' can be an actual ASCII char, or a 'pseudo-char' which encodes special keys on the keyboard. The list of the special chars and their meaning is given in the table below:
Key code Meaning
KC_UP the UP key on the terminal
KC_DOWN the DOWN key on the terminal
KC_LEFT the LEFT key on the terminal
KC_RIGHT the RIGHT key on the terminal
KC_HOME the HOME key on the terminal
KC_END the END key on the terminal
KC_PAGEUP the PAGE UP key on the terminal
KC_PAGEDOWN the PAGE DOWN key on the terminal
KC_ENTER the ENTER (CR) key on the terminal
KC_TAB the TAB key on the terminal
KC_BACKSPACE the BACKSPACE key on the terminal
KC_ESC the ESC (escape) key on the terminal