启动 vim 时出现错误消息:“无法将区域设置类别 LC_NUMERIC 设置为 en_CH”(或 en_BR、en_RU 和 LC_TIME、LC_COLLATE、LC_MONETARY、LC_ME

Posted

技术标签:

【中文标题】启动 vim 时出现错误消息:“无法将区域设置类别 LC_NUMERIC 设置为 en_CH”(或 en_BR、en_RU 和 LC_TIME、LC_COLLATE、LC_MONETARY、LC_MESSAGES)【英文标题】: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) 【发布时间】: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 是正确的解决方案???? 【参考方案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列出可用的语言环境。

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

【讨论】:

以上是关于启动 vim 时出现错误消息:“无法将区域设置类别 LC_NUMERIC 设置为 en_CH”(或 en_BR、en_RU 和 LC_TIME、LC_COLLATE、LC_MONETARY、LC_ME的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 Visual Studio 2010 调试 dll (C++) 时出现错误消息

安装 .apk 时出现模拟器超时错误消息 [重复]

启动RStudio时出现的问题

安装新的 Rails 应用程序时出现错误消息(安装 byebug 时出错)

使用不和谐机器人将多行字符串作为消息发送时出现布局错误

SwiftUI navigationBarItems:设备旋转时出现“通过属性检测到循环”错误