Python:将关键代码诅咒为可读(类似 vim?)的语法

标签 python vim curses

我想在基于 curses 的 python 程序中提供键绑定(bind)。理想的解决方案是在 getch() 周围有一个抽象层,它产生可读的字符串,可能是类似 vim 的格式。

在 python 中:

def get_keycomb(wind):
    string = read_keycomb(wind) # read with wind.getch() as needed
    return string # something like '<C-S-a>'

然后我可以通过将字符串用作 dict 函数中的键来轻松实现映射。

是否有提供此类功能的 Python 库,或者比手动为所有内容提供名称更简单的实现方法?

最佳答案

所有非特殊键的代码都是字符的ascii码,所以这部分表很容易建。

char_codes = {chr(i):i for i in range(256)}

所有特殊字母的代码在 curses 模块中作为 KEY_* 常量可用,所以我们可以通过这种方式获得它们:

specials_codes = {name[4:]: value for name, value in vars(curses).items()
    if name.startswith('KEY_')}

因此您可以使用此代码构建映射:

import curses

mapping = {chr(i):i for i in range(256)}
mapping.update((name[4:], value) for name, value in vars(curses).items()
    if name.startswith('KEY_'))

print(mapping)

关于Python:将关键代码诅咒为可读(类似 vim?)的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769133/

相关文章:

python - 使用 BeautifulSoup 刮页面

python - python中的hadoop映射器/还原器

Python:检查网格中值的坐标是否相互连接

vim - 在 Vim 状态行中显示多行流错误?

vim - 如何在插入模式下滚动?

python - Setupterm 找不到终端,在 Python 程序中使用 curses

python - python 3.3.2 中仅允许整数输入

vim - 为什么 Nerd 评论者不为我工作

python - 诅咒 window.getstr()

Python Curses - 打印 Ascii 艺术