【问题标题】:Sublime package LANG settingSublime 包 LANG 设置
【发布时间】:2016-07-29 23:23:18
【问题描述】:

我已经下载并解压了 Red Hat linux 的 Sublime 3 包。我的 /downloads/sublime_text_3 中有 sublime_text。

当我打开 ./sublime_text 时,出现以下错误

Package Control

Your system's locale is set to a value that can not handle non-ASCII characters. Package Control can not properly work unless this is fixed.

On Linux, please reference your distribution's docs for information on properly setting the LANG environmental variable. As a temporary work-around, you can launch Sublime Text from the terminal with:

LANG=en_US.UTF-8 sublime_text

我尝试更改setenv LANG en_US.UTF-8,但没有任何积极影响。

【问题讨论】:

  • 按照github.com/wbond/package_control/commit/…尝试LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 sublime_text
  • 感谢您的帮助。我尝试将 sublime_text.desktop 更改为上述命令。但是包控制错误依然存在。
  • 这样从控制台运行它是否有效?上面您刚刚提到使用 setenv 来执行此操作,但也许这没有传播到应用程序? (这不是我通常使用的构造)。

标签: sublimetext3 sublimetext


【解决方案1】:

您尝试过package control issue on Github中给出的解决方案吗?

如果LANG=en_US.UTF-8 sublime_textLANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 sublime_text 不起作用,您可以尝试以下方法:

定义系统范围的区域设置 [...]:

/etc/locale.conf:

LANG="en_US.UTF-8"

然后重启你的系统。

只需从我的/etc/locale.conf 中更改 LANG 变量 默认设置为en_US.UTF-8,因此 --

/etc/locale.conf:

LANG=en_US.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

-- 但是包控制继续抛出错误,直到我将文件剔除到仅第一行--

/etc/locale.conf:

LANG=en_US.UTF-8

希望对某人有所帮助!

您也可以查看this question

【讨论】:

  • 谢谢安德烈亚斯。它在设置 LC_ALL=en_US.UTF-8 后工作。我不知道为什么它只适用于 LANG 设置
【解决方案2】:

对于那些没有 sudo(例如在企业 CentOS 上),清除 LC_ALL,设置 LANG,然后运行:

setenv LC_ALL ''
setenv LANG en_US.UTF-8
subl

这是csh 的单行启动器:

/usr/bin/csh -c "setenv LC_ALL '' && setenv LANG en_US.UTF-8 && subl"

【讨论】:

  • 将 LC_ALL 设置为空字符串为我解决了这个问题。
【解决方案3】:

vim /etc/locale.gen

en_US.UTF-8 UTF-8  
en_US ISO-8859-1 

locale-gen

vim /etc/locale.conf

LANG=en_US.UTF-8

语言环境

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

【讨论】:

    【解决方案4】:

    您可以使用

    设置系统区域设置

    /etc/locale.conf

    LANG=en_US.UTF-8
    

    或 只需运行此命令

    localectl set-locale LANG=en_US.UTF-8
    

    然后重启系统。

    【讨论】:

      【解决方案5】:

      检查您的 ~/.bashrc 文件、~/.profile 文件或修改路径的其他文件中是否有 LANGLC_ALLLC_CTYPE 的导出。当我从我的 ~/.bashrc 中注释掉 export LC_ALL="C" 时(我不记得我最初为什么把它放在那里),该消息停止出现在 subl 启动中。

      即使我删除了根据最佳答案添加到 /etc/locale.conf 的两行(将其恢复到没有内容或不存在的原始状态)并重新启动,情况也是如此。

      【讨论】:

        猜你喜欢
        • 2013-09-27
        • 2013-10-26
        • 1970-01-01
        • 2012-11-29
        • 1970-01-01
        • 2020-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多