【问题标题】:macOS vim locale different than shellmacOS vim 语言环境与 shell 不同
【发布时间】:2018-07-28 01:03:49
【问题描述】:

在我的 macOS 环境中,我的语言环境变量包含编码

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

但是,如果我打开 vim 然后运行语言环境,编码丢失了!

:!locale

LANG="en_US"
LC_COLLATE="en_US"
LC_CTYPE="en_US"
LC_MESSAGES="en_US"
LC_MONETARY="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_ALL="en_US"

Press ENTER or type command to continue

这会导致从 vim 运行 python 程序时出现问题

return io.open(self.dotenv_path)
    E   LookupError: unknown encoding:

寻找有关如何修复 vim 行为的想法,使其不再从环境中剥离编码信息

【问题讨论】:

  • 执行:!locale 的shell 与启动Vim 的shell 不同。你能告诉我们你在哪里以及如何设置你的语言环境吗?也是:set shell?:set shellcmdflag? 的输出。
  • shell=/bin/bash shellcmdflag=-c
  • 语言环境由我的终端模拟器 (iTerm2) 使用其“自动设置语言环境变量”首选项设置。我尝试禁用此首选项,转而在我的 $HOME/.bashrc 中设置语言环境变量,但我得到了相同的结果。如果它在新的 bash shell 中运行 locale,因为 vim 被配置为执行例如/bin/bash -c locale,语言环境具有预期值

标签: python macos shell vim encoding


【解决方案1】:

忽略,看起来我在 vimrc 中有一些设置破坏了环境设置。从 vimrc 中删除以下内容后一切正常

try
  lang en_US
catch
endtry

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多