如何使用 curses 滚动?

How to scroll with curses?

如何用curses滚动?我尝试了以下方法,但失败了:

import curses

def main(stdscr):

    stdscr.clear()

    # Display 10 numbered lines:
    for line in range(10):
        stdscr.addstr(line, 0, str(line))

    stdscr.getch()  # Wait for a key press

    # Scrolling:
    stdscr.setscrreg(0, 9)  # Set scrolling region
    for _ in range(5):
        stdscr.scroll()  # Fails!
        stdscr.getch()

curses.wrapper(main)

错误信息不多:

    stdscr.scroll()
_curses.error: scroll() returned ERR

我在 OS X 和 xterm(OS X 中都尝试了终端应用程序),但两种情况下的错误都是一样的。

好的:在滚动之前使用 stdscr.scrollok(True)(我以为我已经尝试过了,但显然那是在不同的上下文中)。

因此,似乎 scroll() 对光标做了一些操作,使其超出了 window 的底部。