启动 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 ~/.zshrc
或source ~/.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
设置并更改任何LANG
、LC_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++) 时出现错误消息