跳转到内容

Alcor6L/PicoLisp/term

来自维基教科书,开放的书籍,为开放的世界

此模块包含用于从 PicoLisp 访问 ANSI 兼容终端(和终端模拟器)的函数。

term-clrscr

[编辑 | 编辑源代码]

清除屏幕。

(term-clrscr)

term-clreol

[编辑 | 编辑源代码]

从当前光标位置清除到行尾。

(term-clreol)

term-moveto

[编辑 | 编辑源代码]

将光标移动到指定的坐标。

(term-moveto x y)
  • x - 列(从 1 开始)
  • y - 行(从 1 开始)

term-moveup

[编辑 | 编辑源代码]

将光标向上移动。

(term-moveup delta)
  • delta - 将光标向上移动的行数。

term-movedown

[编辑 | 编辑源代码]

将光标向下移动。

(term-movedown delta)
  • delta - 将光标向下移动的行数。

term-moveleft

[编辑 | 编辑源代码]

将光标向左移动。

(term-moveleft delta)
  • delta - 将光标向左移动的列数。

term-moveright

[编辑 | 编辑源代码]

将光标向右移动。

(term-moveright delta)
  • delta - 将光标向右移动的列数。

term-getlines

[编辑 | 编辑源代码]

获取终端中的行数。

(setq numlines (term-getlines))

返回

  • numlines - 终端中的行数。

term-getcols

[编辑 | 编辑源代码]

获取终端中的列数。

(setq numcols (term-getcols))

返回

  • numcols - 终端中的列数。

term-prinl

[编辑 | 编辑源代码]

在终端中写入一个或多个(PicoLisp)值。

(term-prinl [x y] any1 [any2 ... anyn])
  • x(可选) - 在此列写入任何 PicoLisp 值。如果指定了 x,则也必须指定 y
  • y(可选) - 在此行写入任何 PicoLisp 值。如果指定了 y,则也必须指定 x
  • any1 - 要写入的第一个 PicoLisp 值(可以是数字、列表或瞬态符号)。
  • any2(可选) - 要写入的第二个 PicoLisp 值。
  • anyn(可选) - 要写入的第 n 个 PicoLisp 值。

term-getcx

[编辑 | 编辑源代码]

获取光标的当前列。

(setq cx (term-getcx))

返回

  • cx - 光标的列。

term-getcy

[编辑 | 编辑源代码]

获取光标的当前行。

(setq cy (term-getcy))

返回

  • cy - 光标的行。

term-getchar

[编辑 | 编辑源代码]

从终端读取一个字符(一个按键)。

(setq ch (term-getchar ['mode]))
  • mode(可选) - 终端输入模式。它可以是
    • *term-wait* - 等待按键,然后返回它。这是未指定 mode 时的默认行为。
    • *term-nowait* - 如果终端上按下了键,则返回它,否则返回 NIL。

返回

  • ch - 从终端读取的字符,或者如果没有字符可用,则为 NIL。'char' 可以是实际的 ASCII 字符,也可以是编码键盘上特殊键的'伪字符'。下表列出了特殊字符及其含义
键代码 意义
KC_UP 终端上的向上键
KC_DOWN 终端上的向下键
KC_LEFT 终端上的向左键
KC_RIGHT 终端上的向右键
KC_HOME 终端上的 HOME 键
KC_END 终端上的 END 键
KC_PAGEUP 终端上的 PAGE UP 键
KC_PAGEDOWN 终端上的 PAGE DOWN 键
KC_ENTER 终端上的 ENTER(CR)键
KC_TAB 终端上的 TAB 键
KC_BACKSPACE 终端上的 BACKSPACE 键
KC_ESC 终端上的 ESC(转义)键
华夏公益教科书