在适用于 Linux 的 Windows 子系统中更改光标形状

ilv*_*ves 6 bash windows-subsystem-for-linux windows-10-v1607

有没有办法改变 Linux 终端的 Windows 子系统中的光标形状?我希望光标能够反映我在 vim 或 vi 模式下所处的状态。

例如,在 Git Bash 中,我可以使用echo -ne "\e[2 q"echo -ne "\e[6 q"在块光标和行光标之间切换。这些在WSL中似乎没有任何作用。

小智 6

既然现在有一个选项,我想在这里分享

在windows终端的settings.json中你可以设置

        "cursorColor" : "#FFFFFF",
        "cursorShape": "filledBox",
Run Code Online (Sandbox Code Playgroud)

在“个人资料”里面

取自https://docs.microsoft.com/pt-br/windows/terminal/custom-terminal-gallery/retro-command-prompt


小智 5

在设置 -> 配置文件(在所有配置文件的“默认”中,或选择特定配置文件) -> 其他设置 -> 外观 -> 光标 -> 光标形状。设置为“填充框”或您喜欢的任何内容。

(我猜当其他人回答这个问题时,这在 GUI 中不可用,例如两年前的答案说你必须在 JSON 中设置它。你现在可以在 GUI 中更改它,至少从 Windows 11 开始。)


Owe*_*ain 1

我假设您通过 WLS 附带的默认终端窗口使用 Bash。

如果是这样,那么您将需要更换该终端,因为它无法理解特殊的转义序列。我知道执行此操作的唯一方法是安装 GUI(例如 Unity 或 XFCE4),然后安装您首选的终端模拟器。此链接将告诉您如何执行此操作。

仅仅为了改变光标,这可能有点过分了,但它确实还有其他优点,安装了 GUI,你现在可以运行许多其他 Linux 应用程序,不是所有的都 100% 工作,但大多数都可以正常工作,你甚至可以设置一个统一的桌面Linux 任务栏和 Windows 任务栏都在一个屏幕上。