有没有办法在vim中查看当前的输入源?

Is there a way to view the current input source in vim?

在非英语语言环境下使用vim时,经常会出现输入错误命令的错误。

为了防止这种情况,有没有办法在状态栏上查看当前输入源? 例如,EN 或 JP。

like MS word底栏

Vim 没有该信息,因此无法公开它,这并不是什么问题,因为您的桌面环境已经有。

如果您真的想要在您的Vim状态行中复制该信息,那么您将必须找到要调用的外部命令,然后找到一种方法使用不会减慢 Vim 速度的信息,因为状态行每秒刷新几次。

现在,你的问题实际上是两个问题:

  • 如何获取信息?
  • 如何在状态栏中显示?

第一个问题的答案取决于您没有透露的桌面环境。您将不得不自己在更专业的论坛上四处看看。

如果没有第一个问题的答案,第二个问题的答案是无关紧要的,但是如果您好奇的话,您可以查看:help 'statusline':help system()

无论如何,您的桌面环境菜单中已经有了这些信息 bar/task bar/whatever,何必呢?

Vim 有模式。在正常模式下,大多数情况下它应该停留在默认情况下所有命令都由拉丁字母组成。因此,不推荐使用 OS 级键盘布局开关。相反,Vim 有一个称为“键盘映射”的功能。 Vim 键盘映射仅在插入或 Command-line 模式下有效,从不影响普通模式。

因此,Vim 从不关心您在 OS 级别上的活动键盘布局是什么,您不会期望有一种简单的方法来显示它。另一方面,Vim 键映射名称可以作为 b:keymap_name 变量或 %k 状态行选项的格式说明符访问。所以很容易添加它。