Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python macOS vim语言环境与shell不同_Python_Macos_Shell_Vim_Encoding - Fatal编程技术网

Python macOS vim语言环境与shell不同

Python macOS vim语言环境与shell不同,python,macos,shell,vim,encoding,Python,Macos,Shell,Vim,Encoding,在我的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,那么

在我的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,那么编码就会丢失

:!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的行为,使其不再从环境中剥离编码信息的想法

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

try
  lang en_US
catch
endtry

其中的shell
:!执行的locale
与启动Vim的shell不同。您能告诉我们您在哪里以及如何设置您的区域设置吗?另外,
:set shell?
:set shellcmdflag?
shell=/bin/bash
shellcmdflag=-c
区域设置的输出由终端仿真器(iTerm2)使用其“自动设置区域设置变量”首选项设置。我尝试禁用此首选项,转而在我的
$HOME/.bashrc
中设置区域设置环境变量,但得到了相同的结果。如果它在新的bash shell中运行
locale
,就像vim配置的那样,例如
/bin/bash-c locale
,则locale具有预期的值