Vimエディタの新規ファイルのfileencodingについて

このQ&Aのポイント
  • Vimエディタで新規ファイルを作成する際のfileencoding(ファイルの文字コード)について調べているのですが、保存後に再びファイルを開くと文字コードが変わってしまいます。
  • Vimの設定ファイルである.vimrcには文字コードの設定が記載されており、encodingにeuc-jpを指定しています。しかし、新規ファイルを作成した後に再び開くと文字コードがiso-2022-jpに設定されてしまいます。
  • ファイルの文字コードを指定する際に、fileencodingsという設定も行っていますが、これが新規ファイルには影響しないことが分かっています。なぜこのような現象が起こるのか、ご存知の方がいらっしゃいましたら教えてください。
回答を見る
  • ベストアンサー

Vimエディタ:新規ファイルのfileencodingについて

OS: Fedora Core4 editor: Vim version 6.3 shell: bash 3.00.16 私は.vimrcファイルに文字コードの設定を次のようにしています。 set encoding=euc-jp set fileencodings=iso-2022-jp,sjis,utf-8 この設定で新規ファイルを作って、「set fenc?」でファイルの文字コード(fileencoding)を調べると当然ながら何も指定されていません。 しかし、このファイルを保存した後に再び開くと「fenc=iso-2022-jp」となって、ファイルの文字コードがiso-2022-jpに設定されています。 fileencodingsが新規ファイルには使用されないことは分かっているのですが、Vimのhelpを参照(:h fileencoding)すると、 「"fileencoding"が空のときには、"encoding"が使用される」(意訳) と書かれています。 従って、(encodingをeuc-jpに設定した)私の環境では自動的にfileencodingがeuc-jpに設定されると思ったのですが、上記のように、ファイルを保存後に再び開くとiso-2022-jpに設定されていました。 なぜこのような現象が起こるかご存知の方がいらっしゃいましたら是非教えてください。(おそらく私が勘違いしている部分もあると思うので、そういった点も含めて指摘していただけるとありがたいです)

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

キーワード「vim fileencoding vimrc」でgoogleしたら次のページがヒットしました。ご参考まで。 日本語を含まないファイルを開いたときにfileencodingがiso-2022-jpになってしまう問題があったが、日本語の有無を再チェックしてより望ましい値(encodingの値)をfileencodingに設定するようにした。 2007-01-10 (水) http://www.kawaz.jp/pukiwiki/?vim#cb691f26

saraudon
質問者

お礼

迅速な回答ありがとうございます。 リンク先、早速確認してみました。 確かに、これが原因のようですね。 Vimのヘルプにもこういった記述があるのでしょうか? このリンク先の.vimrcファイルの設定を見ると、かなり複雑な条件設定がされているみたいですが、私はまだここに書かれていることがスラスラ理解できるレベルでは無いので、もっとしっかりとヘルプを調べてみる必要がありそうです。 「入門vi」にはそこまで書いて無いし・・・

関連するQ&A

  • viで開くと、utf8で保存した文書が文字化けして読めない

    vine linux4.2を使用しています。 vi(vim?)をutf8で使いたいと思います。どのようにしたらよいでしょうか? まずは、utf8で保存したファイルを読めるようにしたいと思って、今までに試したことは以下です。 */etc/vim/vimrcを~/にコピーして set fileencoding=utf-8 set fileencodings=iso-2022-jp,euc-jp,utf-8,ucs2le,ucs-2,cp932 の行を追加したが、読めなかった。 *evimで起動するとutf8で保存したファイルが開けた(が、モードが使用できないので迷っています)

  • vimの環境設定について

    http://www.kawaz.jp/pukiwiki/?vim#cb691f26 こちらのサイトを見ながら(というか自動認識の部分をコピペ)で文字コードの自動認識はクリアでき,文字化けは起こりませんでした.ですが,新しくファイルをvim上で作るときにまでそれが影響してきて*.texファイルはEUC-JPでコンパイルしないといけないのにUTF-8になってしまいます.:set fileenc~でEUCを指定しても結局はUTF-8で開かれてしまいます.しかもfile2でそのtexファイルの文字コードを確認してもASCIIとなりnkfで変換しても変わりませんでした. *質問:文字コードASCIIはnkfで変換できないのでしょうか? *質問:どうにか自動認識を保ったまま*.texファイルをeuc-jpで保存する方法はありませんか?

  • vimrc.jaとvimrc

    Vine Linux3.2を使用しています。 vimの設定ファイルを/etc/vim からコピーしてホームディレクトリに置こうと思うのですが、設定ファイルらしきものが2つあります。 vimrc.jaとvimrcですが、片方が日本語対応?なのでしょうか? ファイル内容を比べると、最後の方が異なり、vimrc.jaの方には次のような段落があります。 if $LANG =~ "ja.*" if has("multi_byte") set encoding=japan set termencoding=japan set fileencodings=iso-2022-jp,utf-8,utf-16,ucs-2-internal,ucs-2,shift-jis,euc-jp,japan endif endif この2つのファイルの違いは何でしょうか?場合によって使い分けられるのでしょうか?

  • vimで作ったファイルがUTF-8にならない

    touchでファイルを作るとUTF-8になるのに、vimでファイルを作るとASCIIになります。すべてのファイルをUTF-8で統一したいのですが、vimの文字コードはどこの設定の影響を受けているのでしょうか?

  • vimの設定法

    vimを使用しています。 画面を分割してひとつのファイルの別の部分を見ながら編集することが多いのです。そこで、vimを起動したときに自動で画面を分割したいのですが、どのようにしたらよいでしょうか。 (_vimrcにset numberと書いておけば、vimを起動したときにラインno付で画面がファイルが開けるのですが、set vsplitは使えないようです。)

  • VIMの設定ファイルの編集

    VIMを最近使い始めたのですが、設定ファイルの編集ができません。 open C:\Program Files\Vim\_vimrc としても、 "スワップファイを開けないのでリカバリ不能です。"等と出て、openできません。  対処方法ご存知の方いないでしょうか?

  • Macのターミナルvimでヤンクが反映されない

    Macのターミナルvimでヤンクを反映させる設定を.vimrcに記入し、+clipboardになっています。しかし、ヤンクが反映されずvim内もvimから他アプリにもヤンクが反映されません。 カットは問題なく使えていますので、原因が分かりません。 .vimrcには以下を記入しています。 set clipboard+=autoselect set clipboard+=unnamed set clipboard=unnamedplus 環境 MacOS エルキャピタン Vim IMproved 7.4 以上、分かりましたら回答の程宜しくお願いします。

  • Vimで改行コード、文字コードを指定して保存するには

    初歩的な質問です・・・。 操作を覚えたいため、WindowsでVimをはじめました。 Vimで文字コードを指定して保存する操作はできたのですが([ファイル]-[エンコード指定]-[保存]-[(指定の文字コード)])、 改行コードを指定して保存する方法がわかりませんでした・・・。 例えば、Shift-Jis,CR+LFのテキストをVimで開いて、文字を挿入した(編集した)あとに、UTF-8,LFで保存したいのですが・・・。 [ずんwiki - vim] http://www.kawaz.jp/pukiwiki/?vim#of617c72 を、今 参考にしているのですが、よくわかりません・・・。 よろしければ、教えてください。

  • vimのカラースキーマ変更方法について

    vimのカラースキーマ変更の方法を教えてください。 いろいろ調べて自分で設定をしたのですが、 molokaiのスキーマに変更できません。。(OS:CentOS 6) (デフォルトで入っているスキーマーには変更できました。darkblue等) 試した方法 1) molokai.vimのスキーマをダウンロード 以下のHPよりDL(Ver 1.1)   http://www.vim.org/scripts/script.php?script_id=2340 2) DLしたファイルをカラースキーマのディレクトリに設置。   場所:/usr/share/vim/vim72/colors   なお、このディレクトリにはデフォルトで入っているのスキーマが入っていました。 3)/etc/直下のvimrcファイルの末尾に colorscheme molokai と追加。 こうして、viを起動させてもデフォルトのスキーマーとなります。 なお、起動時に、スキーマーの設定ファイルがないと怒られることはありません。 (/usr/share/vim/vim72/colorsに入っていないスキーマをvimrcに記述すると怒られることを確認しました) さらに、/usr/share/vim/vim72/colorsに入っている他のデフォルトで入っているスキーマをvimrcで指定すると、きちんと反映されます。 このことから、 >パスの設定はうまく言っている。 >vimrcの記述の仕方も良い。 と思うのですが、 あとは、molokai.vimがおかしい?相性?などが考えられると思うのですが・・・。 どうやって解決したらいいでしょうか。 教えてください。

  • vim .vimrc whichwrap

    .vimrcの設定に set nocompatible set whichwrap=b,s,h,l,<,>,[,] という記述をしたのですが反映されません。 vimを開いている状態でコマンドモードで :set whichwrap=b,s,h,l,<,>,[,] とすれば反映されますが、新たにvimを開き直すと元に戻っています。 検索をしてもwhichwrapよりも前にset nocompatibleを記述すれば解決するというページにしかたどり着きませんでした。 どのようにすれば、常にwhichwrapが反映された状態になるのでしょうか? (ちなみに一応set compatibleともしてみましたが結果は同じでした)