curses.so

终端操作库 curses 的 Ruby 接口。

Curses 模块

模块函数

init_screen

为curses初始化屏幕。在使用Curses模块中的任何方法之前,都必须调用该方法进行初始化操作。

close_screen

关闭curses 屏幕。此时若再调用Curses 模块中的方法的话,就会引发异常。

stdscr

返回代表整个画面的Curses::Window对象。

refresh

刷新stdscr。

doupdate

clear

删除stdscr的字符。该删除操作将立即进行而不会等待refresh

echo

启用输入回显。

noecho

停用输入回显。

cbreak
crmode

停用键盘输入缓冲。

nocbreak
nocrmode

启用键盘输入缓冲。

nl

在cooked 模式中,对return键返回LF (Ctrl-j)。

nonl

在cooked 模式中,对return键返回CR (Ctrl-m)。

raw

停止对键盘输入缓冲和Ctrl-C等特殊键的处理(raw 模式)。

noraw

启用对键盘输入缓冲和Ctrl-C登特殊键的处理(cooked 模式)。

beep

蜂鸣。若系统中没有该功能时,将被忽略。

flash

将画面变为闪动的点。若系统中没有该功能时,将被忽略。

getch

从标准输入中读入1字节。返回值是一个表示ASCII码的整数。

getstr

从标准输入中读入一行。返回值是字符串。

在不含getnstr()的平台上,该方法可能会导致缓冲溢出。

ungetch(ch)

将字符ch(表示ASCII代码的整数)置入流。

setpos(y, x)

stdscr的光标移动到坐标为(x,y)的地方。坐标起点为0。

若没有字符时,setpos的行为将取决于 OS 。

standout

突出显示其后的字符。“突出显示”常指反显,但也不尽然。

standend

在此处终止突出显示。

addch(ch)

在stdscr的光标处覆盖以ch (1 字节)。

insch(ch)

向stdscr的光标处插入ch (1 字节)。

addstr(str)

向stdscr的光标处插入字符串 str 。

delch

从stdscr 的光标处删除1 字节的内容。

deleteln

删除stdscr的光标所在行的内容,并将后续内容上调一行。

lines

返回画面中的可显行数。

cols

返回画面中的可显列数(字节)。但有时返回的结果会比实际值少1字节。

inch

从stdscr的光标处读取1 字节内容后将其返回。

Curses::Window 类

类方法

new(height, width, y, x)

生成一个以画面坐标(x,y)为左上顶点,宽widthheight的curses顶层窗口,并返回表示该窗口的Curses::Window对象。

方法

subwin(height, width, y, x)

生成一个以画面坐标(x,y)为左上顶点,宽widthheight的子窗口,并返回表示该窗口的Curses::Window对象。

close

关闭窗口。此后若对该窗口对象进行操作的话,就会引发异常。

clear

清除窗口。该操作会立即执行。

refresh

更新显示窗口。

box(ver_char, hor_char)

沿着窗口绘制方框,对竖线使用ver_char而对横线则使用hor_char。通常情况下,框体边线会被描画在窗口内部,请注意不要出现覆盖情况。

move(y, x)

将窗口移动到(x,y)。

若指定位置超出了父窗口的范围,则会被忽略。

setpos(y, x)

将光标移动到窗口内的 (x,y)位置。

cury

返回窗口内的光标行号。第一行为 0 。

curx

返回窗口内的光标列号。第一列为 0 。

maxy

返回可用的最大 y 坐标。其值为可显行数 + 1 。

maxx

返回可用的最大 x 坐标。其值为可显字节数 + 1 。

begy

返回父窗口中的窗口左上角的 y 坐标。 其起点为 0 。

begx

返回父窗口中的窗口左上角的 x 坐标。 其起点为 0 。

standout

突出显示后面的字符。

standend

在此处结束突出显示。

inch

在窗口光标处读入1字节的内容后将其返回。

addch(ch)

向窗口光标处覆盖以ch (1 字节)。

insch(ch)

向窗口光标处插入ch (1 字节)。

addstr(str)
self << str

向窗口光标处插入字符串 str

getch

从窗口输入中读入1 字节的内容。

getstr

从窗口输入中读入一行。

delch

从窗口光标处删除1 字节。

deleteln

删除窗口中光标所在的行。