【发布时间】: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/bashshellcmdflag=-c -
语言环境由我的终端模拟器 (iTerm2) 使用其“自动设置语言环境变量”首选项设置。我尝试禁用此首选项,转而在我的
$HOME/.bashrc中设置语言环境变量,但我得到了相同的结果。如果它在新的 bash shell 中运行locale,因为 vim 被配置为执行例如/bin/bash -c locale,语言环境具有预期值
标签: python macos shell vim encoding