首页 > 解决方案 > 如何在 Windows Terminal Preview 中运行的 vim 中重新绑定 ctrl-space?

问题描述

因此,似乎 ctrl-space 被 Windows 终端错误地转换为 ctrl-@ ,我想知道是否有任何解决方法?我已经为其他终端看到了类似问题的答案,但它们似乎不起作用。

标签: vimwindows-terminal

解决方案


这基本上是大多数 Unix 终端工作方式的限制。控制键映射到一组有限的字符,因此 Ctrl-@、Ctrl-Space 和 Ctrl-` 都映射到相同的东西并以相同的方式工作。这发生在终端仿真器和在真实 Linux 系统上运行的 VT 中。

其他终端模拟器可能对此有一个选项,但 Windows 终端尝试模拟xterm-256color终端类型,这实现了您注意到的行为。即使其他终端仿真器确实支持它,但这并不意味着在其中运行的程序支持它;他们可能会收到这样的序列并且不知道如何处理它,特别是如果TERM设置为不支持区分的终端类型。

根据Windows 终端问题跟踪器,他们意识到了这一点,并且他们有可能在未来使用某些 xterm 特定的序列传递这些密钥,但目前这不起作用。我不确定即使他们确实实现了它,它是否会在 Vim 中按您期望的那样工作,尽管它有可能。

如果您不使用现有功能或只使用另一个键,则可以重新映射 Ctrl-@。


推荐阅读