はじめに
英語勉強のため、
少しでも英語に触れようとmacの言語設定を英語に変更しました。
そこから、vimを開くと以下のようなエラーが出るようになったので対応メモです。
Warning: Failed to set locale category LC_NUMERIC to en_JP.
目次
- なにをしたか
- どんなエラーか
- どう対応したか
- ロケールとは
- LANG環境変数
- locale
1. なにをしたか
macの言語設定を日本語->英語に変更しました。
以下の順で設定を開きます。
システム環境設定 > 言語と地域
希望の言語を「優先する言語」リストの先頭にドラッグします
これで再起動後、PCのデフォルト言語が英語に切り替わります。
2. どんなエラーか
GUIで使っている分には特に何も起きていませんでした。
しかし、vimを開こうとすると以下のようなエラーが出るようになりました。
$ vim Warning: Failed to set locale category LC_NUMERIC to en_JP. Warning: Failed to set locale category LC_TIME to en_JP. Warning: Failed to set locale category LC_COLLATE to en_JP. Warning: Failed to set locale category LC_MONETARY to en_JP. Warning: Failed to set locale category LC_MESSAGES to en_JP.
エラーと記載してますが、Warningなので気にしなければそのままvimは動作します。 しかし、毎回出るので直したくなります。
3. どう対応したか
対応は簡単で、~/.bash_profile
に環境変数LANG
を設定するだけです。
# 設定前のlocale確認 # おそらく英語に変えた事で変わってしまったと思われる $ locale LANG= LC_COLLATE="C" LC_CTYPE="UTF-8" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL= $ vim ~/.bash_profile -- vi編集 -- export LANG=ja_JP.UTF-8 ------------ # 設定後のlocale確認 $ locale LANG="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_CTYPE="UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_ALL=
4. ロケールとは
各言語などの地域情報を「ロケール」と呼びます。
日本の場合現在では「ja_JP.UTF-8」という文字コードです。
このja_JP.UTF-8が何を表しているかというと以下のフォーマットになっています。
言語_国.文字コード
5. LANG環境変数
上記のja_JP.UTF-8
ですが、LANG環境変数に設定します。
LANG系の環境変数は、
2. どんなエラーか
にも記載したとおりいくつかあります。
LANG
、LC_ALL
は特殊なものとなっています。
LC_ALL
が設定された場合は、全てのローカライゼーション系環境変数は必ずその値が使用されます。
LANG
の場合は、LC_TIME
などを個別に設定して上書きが可能です。
6. locale
locale
コマンドは現在のロケールを一覧表示します。
locale -a
で利用可能なロケール名を表示します。
参考サイト
- 【Linux入門】ローカライゼーションのためのロケール情報設定方法
- Linuxのローカライゼーション系LANG変数:langについて
- 【 locale 】コマンド――現在のロケールと使用可能なロケールの情報を表示する
おわりに
PCを英語に変えたので英語学習に向けて頑張ります\(^o^)/