gpt4 book ai didi

python - 在 curses 中显示带有尾随空格的文本

转载 作者:行者123 更新时间:2023-12-01 14:59:18 27 4
gpt4 key购买 nike

我目前正在开发一个文本编辑器,这是我无法完全弄明白的怪事之一!

我将从一个减少问题的小演示脚本开始

import curses


def c_main(stdscr):
lines = (
'welcome to my simulation!',
'this line has trailing whitespace: ',
'q: quit',
'r: full redraw (removes trailing ws?)',
'',
)
x = y = 0

while True:
# RENDERING
for i, line in enumerate(lines):
stdscr.insstr(i, 0, lines[i].ljust(curses.COLS))
# END RENDERING

stdscr.move(y, x)

wch = stdscr.get_wch()
if wch == curses.KEY_RESIZE:
curses.update_lines_cols()
elif wch == curses.KEY_RIGHT:
x += 1
if x > len(lines[y]):
x = 0
y = min(y + 1, len(lines) - 1)
elif wch == curses.KEY_LEFT:
if x != 0 or y != 0:
x -= 1
if x < 0:
y = max(y - 1, 0)
x = len(lines[y])
elif wch == curses.KEY_DOWN:
y = min(y + 1, len(lines) - 1)
x = min(x, len(lines[y]))
elif wch == curses.KEY_UP:
y = max(y - 1, 0)
x = min(x, len(lines[y]))
elif wch == 'r':
stdscr.move(0, 0)
for i in range(len(lines)):
stdscr.insstr(i, 0, ' ' * curses.COLS)
stdscr.refresh()
elif wch == 'q':
return


if __name__ == '__main__':
exit(curses.wrapper(c_main))

大部分代码只是为了让您可以使用箭头键来演示问题。实际呈现代码标有 # RENDERING 注释。


演示问题:

  1. 使用python3 demo.py启动脚本
  2. 用鼠标突出显示第二行 -- 请注意尾随的空格不可突出显示
  3. 将光标导航到第二行的末尾(最短的组合是 downdownleft)
  4. ,然后按(不知道为什么,这是制作可重复指令所必需的)
  5. 离开第二行的末尾(最短的组合是down)
  6. 现在请注意尾随空格是突出显示的
  7. r触发全重绘
  8. 再次注意尾随的空格是不可高亮显示的

所以问题是,我如何正确呈现尾随空格,以便从终端复制粘贴保留该内容(并且不需要用户将光标导航到那里)

最佳答案

选择行为取决于终端。我认为您无法在诅咒级别控制它。

关于python - 在 curses 中显示带有尾随空格的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59521039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com