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]をクリックする必要がありますが、機能しますが、そのエラーメッセージを削除します。
そのリンク で同様のメッセージを見ました
このエラーメッセージを取り除くにはどうすればよいですか?
まず、次のように入力して.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に感謝
略して:お使いの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
zshを使用すると、
vim ~/.zshrc
次の行のコメントを外します:
export LC_ALL=en_US.UTF-8
魚を使えば
vim ~/.config/fish/config.fish
set -x LC_ALL en_US.UTF-8
どういうわけかあなたのロケールは "en_CH"に設定されています。このロケールはスイスで話されている英語用ですが、システム上では有効なロケールではありません。通常、ロケールには、「en_US.UTF-8」の「UTF-8」など、使用する文字セットも含まれていますが、ここにもありません。
MacOSは通常これらの特定の値を設定しないため、シェル構成の何かがこれらの値を設定している可能性があります。代わりに、LANG
環境変数を設定し、常にUTF-8ロケールを使用します。 .bashrc
および.bash_profile
設定またはおそらく.zshenv
、.zshrc
、.zprofile
設定と変更LANG
、LC_ALL
、またはその他のLC_*
設定した変数。
注意として、私はen_CHロケールを持つシステムを知りません。通常、国または地域で一般的に話されている言語のロケールのみがあります(多くの場合、公用語ではありませんが)。たとえば、米国には確かにフランス語の話者がたくさんいますが、ローカライズの基準を確立するのに十分な話者がいないため、システムは通常、fr_US.UTF-8ロケールを提供しません。 「en_GB.UTF-8」や「en_US.UTF-8」など、ニーズに十分近い別の英語ロケールを選択するか、選択する設定に応じて個々の「LC」変数を設定する必要がある場合があります。チョイス。
または、特定のロケールを作成できない場合(ルートレスMacOS *など)、すでにインストールされているロケールを設定します。
vim ~/.bash_profile
export LC_ALL=C
ロケールC
は、SSH経由のものも含めて、アクセスしたすべてのシステムで使用できることがわかりました。 locale -a
を使用して、利用可能なロケールを一覧表示できます。
* SIPをいじくるルートに行きたくない