curses是一个原生gem包,所以需要先安装curses库:
sudo apt-get install libncurses5-dev
然后再安装gem包即可:
gem install curses
以下是curses的api参考:
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)为左上顶点,宽width高height的curses顶层窗口,并返回表示该窗口的Curses::Window对象。
方法
subwin(height,y)为左上顶点,宽width高height的子窗口,并返回表示该窗口的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
删除窗口中光标所在的行。