在终端问题中设置语言环境和语言

setting locale and language in terminal problem

我在带有 iterm2 (macOS 14 Mojave) 的终端上使用 zsh。我在设置语言环境和语言方面遇到了无数问题。最近的问题是我不能将 cocopods 用于我的离子应用程序,因为 gems 不能作为 root。这个问题之所以出现,是因为我的终端需要有 UTF-8 编码,它确实如此。我遇到这个问题太多了,以至于我将 export LANG=en_US.UTF-8 放入 .zshrc 文件、.profile 文件和 .bashrc 文件中。我对上述所有文件都有 运行 命令 $ source ~/.zshrc。我已经完全关闭了终端,并重新启动了我的电脑。无论发生什么,无论何时我查看文件内部,所有信息都在那里。每当我尝试打开 neo vim 时都会发生同样的问题我得到输出:

Warning: Failed to set locale category LC_NUMERIC to en_ES.UTF-8.
Warning: Failed to set locale category LC_TIME to en_ES.UTF-8.
Warning: Failed to set locale category LC_COLLATE to en_ES.UTF-8.
Warning: Failed to set locale category LC_MONETARY to en_ES.UTF-8.
Warning: Failed to set locale category LC_MESSAGES to en_ES.UTF-8.

这是我的 .zshrc


export ZSH="/Users/me/.oh-my-zsh"

export LC_ALL=en_ES.UTF-8
export LC_NUMERIC=en_ES.UTF-8.
export LC_TIME=en_ES.UTF-8.
export LC_COLLATE=en_ES.UTF-8.
export LC_MONETARY=en_ES.UTF-8
export LC_MESSAGES=en_ES.UTF-8.
export LANG=en_US.UTF-8

ZSH_THEME="powerlevel9k/powerlevel9k"
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir rbenv vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=’red’

POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="%f"

local user_symbol="$"
if [[ $(print -P "%#") =~ "#" ]]; then
    user_symbol = "#"
fi
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%{%B%F{black}%K{yellow}%} $user_symbol%{%b%f%k%F{yellow}%} %{%f%}"

plugins=(
  git
  zsh-autosuggestions
)

source $ZSH/oh-my-zsh.sh

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
echo -e "3]6;1;bg;red;brightness;18\a"
echo -e "3]6;1;bg;green;brightness;26\a"
echo -e "3]6;1;bg;blue;brightness;33\a"


那么这就是我从 nvim 得到的结果 运行 :checkhealth

========================================================================
## Configuration
  - OK: no issues found

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=^H
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $TERM_PROGRAM='vscode'
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================

无论我做什么,我都无法设置 lang 或 utf 或与之相关的任何东西

尝试在您的 .zshrc

中导出以下内容
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

答案基于:https://github.com/vim/vim/issues/4556#issuecomment-503030484

在我的 .zshrc 文件中添加了以下内容

export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

答案基于:https://github.com/vim/vim/issues/4556#issuecomment-503030484

请注意,当我找到答案时,我不允许 post 回答,因为时间不够。

至于为什么这有效。我不知道,我对这种Linux/shell权限、编码等不太熟悉