質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

2回答

1363閲覧

普段はutf-8、特定のファイルだけeuc-jpで開きたい

退会済みユーザー

退会済みユーザー

総合スコア0

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2021/04/01 15:45

macOS Catalinaで、エンコーディングまわりは以下の設定で使っています。

vimrc

1set encoding=utf-8 2" set fileencodings=euc-jp,utf-8
やりたいこと

普段はutf-8なんですが、特定のファイルだけeuc-jpで編集・保存しなくてはいけません。

現状

set encoding=utf-8 だけでそのファイルを開くと開いた時に文字化けします。
なのでそのファイルの時だけset fileencodings=euc-jp,utf-8を有効化してから開く→編集・保存しおわったらコメントアウトしてset encoding=utf-8だけに戻すという運用をしています。

やってみたこと

モードラインを使えばいいのでは?と思い、.vimrcのほうはset encoding=utf-8だけにして、該当ファイルの先頭に# vim: set fenc=euc-jp nomodified:としてみましたが、これでも開くときに文字化けしてしまいました。ヘルプにはモードラインからの変更は開いた後になるとあったので読み込む前にfencを変えないといけないということなんでしょうか。方法がわかりません。

なにか賢いやりかたはあるでしょうか?
また、汎用性の高いエンコーディング周りの設定があればそれも教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

:e ++enc=euc-jp をすることでeuc-jpで開き直すことができます(他の文字コードも同様)。
以下のように.vimrcにこの命令をコマンド化している人もいます。

command! Cp932 edit ++enc=cp932 command! Sjis edit ++enc=shift_jis command! Eucjp edit ++enc=euc-jp command! Jis edit ++enc=iso-2022-jp command! Utf8 edit ++enc=utf-8

投稿2021/04/01 16:22

rbtnn

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

fileencodingsは、ファイルを開く時に判定するエンコードの種類を指定するためのオプションなので、新しくファイルを作る時には影響しません。(こちらはencodingオプションもしくは、設定している場合fileencodingのグローバルオプションが使用されます)
なので、今回のケースではコメントアウトをせずにset fileencodings=euc-jp,utf-8で固定して常に判定を有効化するとで上手くいくと思います。

投稿2021/04/01 16:09

kuuote

総合スコア705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/02 02:00

ありがとうございます。コメントアウトせずにしたら判定されるようになりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問