You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Windows Terminal及控制台应用的光标(caret)显示形状

Windows控制台光标样式修改方案

实现原理

修改控制台光标样式的核心是调整SetConsoleCursorInfoAPI传入的光标高度参数,不同高度对应不同的显示效果:

  • 10~25:对应你需要的下划线/竖线样式(旧版CMD渲染为下划线,新版Windows Terminal渲染为竖线)
  • 50:半高块样式
  • 100:默认全高块样式

C/C++ 可直接复用代码

#include <windows.h>
#include <stdio.h>

// 光标样式预设
#define CURSOR_STYLE_UNDERLINE_OR_LINE 15
#define CURSOR_STYLE_HALF_BLOCK 50
#define CURSOR_STYLE_FULL_BLOCK 100

void set_cursor_style(int style) {
    HANDLE output_handle = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_CURSOR_INFO cursor_config;
    // 先读取现有配置,避免修改无关参数
    GetConsoleCursorInfo(output_handle, &cursor_config);
    cursor_config.dwSize = style;
    SetConsoleCursorInfo(output_handle, &cursor_config);
}

int main() {
    // 测试修改为下划线/竖线样式
    set_cursor_style(CURSOR_STYLE_UNDERLINE_OR_LINE);
    printf("当前为下划线/竖线样式,按回车切换下一个样式\n");
    getchar();
    
    // 改回默认块样式
    set_cursor_style(CURSOR_STYLE_FULL_BLOCK);
    printf("已恢复默认块样式\n");
    getchar();
    return 0;
}

PowerShell 临时修改命令

如果是脚本场景直接执行以下命令即可:
(Get-Host).UI.RawUI.CursorSize = 15

注意事项

  • 上述方法仅对系统自带的传统CMD、PowerShell和Windows Terminal生效
  • 第三方终端模拟器需要在终端自身设置面板中修改光标样式,系统API调用不会覆盖第三方终端的全局配置

内容的提问来源于stack exchange,提问作者elcuco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:54:07