概要
ターミナルやVimのモード表示を英語化したいのですが、英語化したらVimで編集したファイルが文字化けするようになってしまいました。
日本語に戻すと文字化けは直るのですが、できれば英語化しつつ文字化けを解消したいのでその方法があれば教えていただければと思います。
詳細
プログラミング初学者です。
ターミナル.app(bash)とターミナル版のVimを使って学習を進めています。
先日「ターミナルメッセージとかを英語にした方が学習の伸びが良さそうだな」「Vimのモード表示英語だったらかっこいいな」と思い、bashrcに以下のコードを追記しました。
bash
1# ~/private/etc/bashrc 2export LANG=en_US
すると、日本語が含まれたファイルをVimで編集した時・保存した時に文字化けするようになってしまいました。具体的には下記のような感じです(この時点では.vimrcにはエンコード関連の設定は何も記述していません)。
$ vim sample.rb(新規作成)
ruby
1# ~/sample.rb 新規作成(保存前)時点 2# :set enc? => encoding=latin-1 3# :set fenc? => fileencoding= (空白) 4p "hello" 5p "?~A~S?~B~S?~A??~A??~A?" ← こんにちは と打って確定するとこう表示される 6# :wq
$ ruby sample.rb => "hello" => "\u3053\u3093\u306B\u3061\u306F" $ vim sample.rb (もう一回開いてみる)
ruby
1# ~/sample.rb 保存後、もう一回開いてみたところ 2# :set enc? => encoding=latin-1 3# :set fenc? => fileencofing= (空白) 4p "hello" 5p "~A~S?~B~S?~A??~A??~A?"
試したこと① export LANG=en_USの削除
bashrcに記述した英語化コードを削除して読み込み直したところ、文字化けは解消されました。
とりあえずそれでもいいのですが、可能であれば英語化しつつ文字化けを無くしたいです。
試したこと② .vimrcにエンコード関連設定を記述
やっぱり英語化したいなあと思ったので、bashrcに英語化コードを記述して文字化けしてる状態で.vimrcにエンコード関連の設定を記述してみました(参考ページ)。
vim
1" ~/.vimrcのエンコード関連部分 2set encoding=utf-8 3set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8 4set fileformats=unix,dos,mac
すると、エンコード設定をする前とは違う挙動になったものの、文字化け自体は直りません。文字コード設定の順番などがおかしいのでしょうか?具体的には、以下のような感じになります。
$ vim sample.rb(新規作成)
ruby
1# ~/sample.rb 新規作成(保存前)時点 2# :set enc? => encoding=utf-8 3# :set fenc? => fileencoding= (空白) 4p "hello" 5p "こんにちは" ← 日本語を打てるようにはなった 6# :wq
$ ruby sample.rb => "hello" => "\u3053\u3093\u306B\u3061\u306F" ← 保存して実行してみるとエンコード設定記述前と同じく文字化けする $ vim sample.rb (もう一回開いてみる)
ruby
1# ~/sample.rb 保存後、もう一回開いてみたところ 2# :set enc? => encoding=utf-8 3# :set fenc? => fileencofing=sjis 4p "hello" 5p "縺薙s縺ォ縺。縺ッ" ← ここの表示が変わった 6
質問まとめ
- 英語化設定しつつ、文字化けを解消できる方法はありますか?
- 英語化設定すると他にも何か致命的な不都合(?)があったりするのでしょうか?(日本語にしておいたほうが何かといいのでしょうか?英語の勉強になるかなと思って英語にしようと思ったのですが)
素人すぎて、まだ質問の仕方等もわかっておらずすみません。「こういう情報提示くれないと解決できないよ!」等ご指摘いただければすぐ対応しますので、何卒よろしくお願いいたします。
環境
- macOS Mojave 10.14.6
- terminal.app
- bash 3.2.57
- vim 8.1 macOS version
- rbenv 1.1.2
- ruby 2.6.3
現状の /private/etc/bashrc(全文)
bash
1# System-wide .bashrc file for interactive bash(1) shells. 2if [ -z "$PS1" ]; then 3 return 4fi 5 6PS1="\n[\033[36m]\t \w\n$ [\033[0m]" 7 8export LANG=en_US 9 10# Make bash check its window size after a process completes 11shopt -s checkwinsize 12 13[ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM" 14
現状の~/.vimrc(エンコード設定)
vim
1set encoding=utf-8 2set fileencodings=iso-2022-jp,euc-jp,sjis,utf-8 3set fileformats=unix,dos,mac 4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/09/24 12:07
2019/09/24 12:18 編集
退会済みユーザー
2019/09/24 12:33