web-dev-qa-db-ja.com

vimの起動時のエラーメッセージ:「ロケールカテゴリLC_NUMERICをen_CHに設定できませんでした」(またはen_BR、en_RU&LC_TIME、LC_COLLATE、LC_MONETARY、LC_MESSAGES)

vim(Vi IMproved 8.1)をHomebrewを搭載したMacOS 10.14.5にテキストエディターとして新しくインストールしました。 vimを実行するたびに、次のエラーメッセージが表示されます。

Warning: Failed to set locale category LC_NUMERIC to en_CH.
Warning: Failed to set locale category LC_TIME to en_CH.
Warning: Failed to set locale category LC_COLLATE to en_CH.
Warning: Failed to set locale category LC_MONETARY to en_CH.
Warning: Failed to set locale category LC_MESSAGES to en_CH.

[Enter]をクリックする必要がありますが、機能しますが、そのエラーメッセージを削除します。

そのリンク で同様のメッセージを見ました

このエラーメッセージを取り除くにはどうすればよいですか?

43
ecjb

まず、次のように入力して.bash_profileファイルにアクセスします(テキストエディターとしてvimを使用)。

vim ~/.bash_profile

ファイル.bash_profile内に、次の行を挿入します。

export LC_ALL=en_US.UTF-8

ただし、macOSの新しいバージョンには、デフォルトのシェルとしてbashではなくzshが同梱されています。 Macの場合は、~/.zshrcではなく~/.bash_profileを編集する必要があります。

ターミナルを再起動してvimをもう一度起動します。エラーメッセージが消えているはずです。

@geoywsに感謝-George Yongとpkropachev Pavel Kropachevの回答が見つかりました there 、他の回答のヒントを@ bk2204に感謝

87
ecjb

略して:お使いのmacOS/Unix/Linuxにはデフォルトのロケール設定がないため、bashを再起動したときに接続する必要があります。したがってsolutionは構成ファイルを更新して再ロードすることです(私の例では言語は英語で、デフォルトのエンコーディングはUTF-8です):

oh-my-zshを使用する場合:

vim ~/.zshrc
export LC_ALL=en_US.UTF-8

fish-Shellを使用する場合:

vim ~/.config/fish/config.fish
set -x LC_ALL en_US.UTF-8

その他(デフォルト):

vim ~/.bash_profile 
#OR (vim  ~/.bashrc) 
export LC_ALL=en_US.UTF-8
15
avivamg

zshを使用すると、

vim ~/.zshrc

次の行のコメントを外します:

export LC_ALL=en_US.UTF-8
9
Leah

魚を使えば

vim ~/.config/fish/config.fish
set -x LC_ALL en_US.UTF-8
5
Jim Han

どういうわけかあなたのロケールは "en_CH"に設定されています。このロケールはスイスで話されている英語用ですが、システム上では有効なロケールではありません。通常、ロケールには、「en_US.UTF-8」の「UTF-8」など、使用する文字セットも含まれていますが、ここにもありません。

MacOSは通常これらの特定の値を設定しないため、シェル構成の何かがこれらの値を設定している可能性があります。代わりに、LANG環境変数を設定し、常にUTF-8ロケールを使用します。 .bashrcおよび.bash_profile設定またはおそらく.zshenv.zshrc.zprofile設定と変更LANGLC_ALL、またはその他のLC_*設定した変数。

注意として、私はen_CHロケールを持つシステムを知りません。通常、国または地域で一般的に話されている言語のロケールのみがあります(多くの場合、公用語ではありませんが)。たとえば、米国には確かにフランス語の話者がたくさんいますが、ローカライズの基準を確立するのに十分な話者がいないため、システムは通常、fr_US.UTF-8ロケールを提供しません。 「en_GB.UTF-8」や「en_US.UTF-8」など、ニーズに十分近い別の英語ロケールを選択するか、選択する設定に応じて個々の「LC」変数を設定する必要がある場合があります。チョイス。

4
bk2204

または、特定のロケールを作成できない場合(ルートレスMacOS *など)、すでにインストールされているロケールを設定します。

vim ~/.bash_profile
export LC_ALL=C

ロケールCは、SSH経由のものも含めて、アクセスしたすべてのシステムで使用できることがわかりました。 locale -aを使用して、利用可能なロケールを一覧表示できます。

* SIPをいじくるルートに行きたくない

0
Cruiser