【问题标题】:ncurses curs_set(0) not working in vscode integrated terminalncurses curs_set(0) 在 vscode 集成终端中不起作用
【发布时间】:2021-11-29 08:20:01
【问题描述】:

目前使用 C++20 编码,使用 Ubuntu WSL2。

使用下面显示的代码,当在 Windows Terminal 中的 WSL2 中运行程序时,光标将不可见,按预期工作。

但是,当在 vscode 的集成终端中运行 WSL2 中的程序时,光标在整个程序中都是可见的(以防万一,我什至将 terminal.integrated.scrollback 设置为 0)。

函数curs_set(0) 在任一终端中运行时都不会返回ERR。这是vscode集成终端的问题吗?有没有办法解决这个问题?

代码:

#include <ncurses.h>

int main() {

    initscr();
    noecho();
    cbreak();
    

    if (curs_set(0) == ERR) {
        addstr("Not working");
    }
    mvaddstr(1, 1, "Random sentence.");
    refresh();

    getch();
    mvaddstr(2, 1, "Random sentence number two.");
    getch();

    endwin();

}

【问题讨论】:

  • 这听起来像是终端模拟器 (xterm-js) 中的错误。
  • @Locklan 你在使用 DOM 渲染器吗?刚刚发现,DECTCEM 在那里不起作用(请参阅github.com/xtermjs/xterm.js/issues/3502)。

标签: c++ visual-studio-code xtermjs


【解决方案1】:

在使用curs_set() 之前先调用refresh() 一次,我能够解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    相关资源
    最近更新 更多