【问题标题】:Error message when starting vim: "Failed to set locale category LC_NUMERIC to en_CH" (or en_BR, en_RU & LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES)启动 vim 时出现错误消息:“无法将区域设置类别 LC_NUMERIC 设置为 en_CH”(或 en_BR、en_RU 和 LC_TIME、LC_COLLATE、LC_MONETARY、LC_MESSAGES)
【发布时间】:2019-11-05 02:31:12
【问题描述】:

我在带有 Homebrew 的 MacOS 10.14.5 上新安装了 vim (Vi IMproved 8.1) 作为文本编辑器。每次我运行 vim 时都会收到以下错误消息:

Warning: Failed to set locale category LC_NUMERIC to en_CH.
Warning: Failed to set locale category LC_TIME to en_CH.
Warning: Failed to set locale category LC_COLLATE to en_CH.
Warning: Failed to set locale category LC_MONETARY to en_CH.
Warning: Failed to set locale category LC_MESSAGES to en_CH.

我必须单击 ENTER 才能正常工作,但我想摆脱该错误消息。

我在that link看到了类似的消息

我怎样才能摆脱这个错误信息?

【问题讨论】:

  • 这对我来说也是一个经常出现的问题,我有一台德国笔记本电脑并使用英文布局。就我而言,en_DE 失败了。在.bash_profile/.zshrc 中导出为answered by @ecjb 是正确的解决方案????

标签: macos vim terminal locale local


【解决方案1】:

首先,通过键入以下内容(使用 vim 作为文本编辑器)访问您的 .bash_profile 文件:

vim ~/.bash_profile

在文件.bash_profile 中,插入以下行:

export LC_ALL=en_US.UTF-8

但是请注意,较新版本的 macOS 附带 zsh 而不是 bash 作为默认 shell。如果您的 Mac 出现这种情况,则必须编辑 ~/.zshrc 而不是 ~/.bash_profile

重新启动终端或source ~/.zshrcsource ~/.bash_profile 并再次启动vim:错误消息应该已经消失了。

感谢@geoyws - George Yong 和 pkropachev Pavel Kropachev 为他们找到了there 的答案,感谢@bk2204 在另一个答案中的提示

【讨论】:

  • 对于英国,您也可以使用 export LC_ALL=en_GB.UTF-8
  • 谢谢,它帮助我修复了gtypist,但我使用了导出而不是LC_ALL=en_US
【解决方案2】:

简而言之:您的 macOS/Unix/Linux 没有默认的语言环境配置,您应该在 bash 重新启动时连接它。因此解决方案是更新配置文件并重新加载(在我的示例中,语言为英语,默认编码为 UTF-8):

如果你使用 oh-my-zsh

vim ~/.zshrc
export LC_ALL=en_US.UTF-8

如果你使用 fish-shell

vim ~/.config/fish/config.fish
set -x LC_ALL en_US.UTF-8

其他(默认):

vim ~/.bash_profile 
#OR (vim  ~/.bashrc) 
export LC_ALL=en_US.UTF-8

【讨论】:

    【解决方案3】:

    如果你使用 zsh,你可以

    vim ~/.zshrc
    

    并取消注释下一行:

    export LC_ALL=en_US.UTF-8
    

    【讨论】:

      【解决方案4】:

      如果你用鱼,你可以

      vim ~/.config/fish/config.fish
      set -x LC_ALL en_US.UTF-8
      

      【讨论】:

      • 我用的是鱼壳,这救了我。
      【解决方案5】:

      不知何故,您的语言环境设置为“en_CH”。此语言环境适用于瑞士使用的英语,但在您的系统上,这不是有效的语言环境。通常,locales 还包含一个要使用的字符集,例如“en_US.UTF-8”中的“UTF-8”,这里也没有。

      很可能是您的 shell 配置中的某些东西设置了这些值,因为 macOS 通常不设置这些特定值;相反,它设置LANG 环境变量,并且始终使用UTF-8 语言环境。您应该检查您的.bashrc.bash_profile 设置,或者可能是您的.zshenv.zshrc.zprofile 设置并更改任何LANGLC_ALL 或您可能设置的其他LC_* 变量.

      请注意,我不知道任何具有 en_CH 语言环境的系统;通常只有在该国家或地区常用的语言(通常但不总是官方语言)的语言环境。例如,虽然美国肯定有很多说法语的人,但系统通常不提供 fr_US.UTF-8 语言环境,因为没有足够的人来建立本地化规范。您可能需要选择另一个足够接近您需要的英语语言环境,例如“en_GB.UTF-8”或“en_US.UTF-8”,或者根据您要选择的设置设置单独的“LC”变量,选择。

      【讨论】:

      • 非常感谢您的回答@bk2204。因此,我尝试实施以使用您答案中的信息,但无法解决问题。我相应地更新了问题。你还有什么想法吗?
      • 您可以尝试通过查看this answer 并相应地更改它来找到设置环境变量的位置。
      • 澄清一下,回复:“通常只有在该国家或地区常用的语言的语言环境”:在 macOS(我也认为 Windows)中,您可以设置系统语言到英语和地区(例如日期和数字格式)到完全不相关的东西。看起来 macOS 然后使用这两个东西来设置语言环境。例如,我的系统语言是英语,我的地区是巴西,我的 LC 最终是 en_BR ......这也没有正式存在。
      【解决方案6】:

      或者,如果您无法创建特定语言环境(例如,使用无根 MacOS*),请设置已安装的语言环境。

      vim ~/.bash_profile
      export LC_ALL=C
      

      我发现语言环境 C 在我访问的所有系统上都可用,包括通过 SSH 访问的系统。您可以通过locale -a列出可用的语言环境。

      *又不想走乱七八糟的路线

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-01
        • 2021-03-13
        • 1970-01-01
        • 2012-02-14
        • 2014-09-04
        • 1970-01-01
        • 1970-01-01
        • 2011-11-22
        相关资源
        最近更新 更多