如何在我的 curses 程序中实现类似于 vim 的 "command line"

How to implement a "command line" similar to vim in my curses program

我是 python 的新手,想用 curses 制作一个小的待办事项列表程序。

这是我现在拥有的基本代码:

import curses

mylist = ['item1', 'item2', 'item3']

def main(stdscr):
    y = 1
    x = 1

    for item in mylist:
        stdscr.addstr(y, x, item)
        y += 1

    stdscr.getch()

curses.wrapper(main)

它创建一个 window 并显示 "mylist" 中的每个项目,我想扩展它以便用户可以输入一个命令,比如说,向列表中添加一个新任务并拥有屏幕更新以显示新任务,我该如何实现呢?

如果您使用 curses.echo()stdscr.getstr(x, y),它会显示您输入的内容。

import curses

mylist = ['item1', 'item2', 'item3']

def main(stdscr):
    curses.echo()
    y = 1
    x = 1

    for item in mylist:
        stdscr.addstr(y, x, item)
        y += 1
    new_item = stdscr.getstr(y, x)

curses.wrapper(main)