文字コードも改行コードも自由自在

どんなテキストファイルでも問題なし !

機能概要

他の環境とのやりとりのために, 編集前後に文字コードや改行コードの 変換ツールを使っている人も多いかと思います. でも実は そんなものをわざわざ使う必要は無いのです

JVim では, 改行コード

また, 文字コード

の任意の組合せのテキストファイルの読み込みも書き込みも自由にできます. わざわざ コード変換ツールのお世話になる必要は無いのです. ここでは この機能に関する知識や使いかたについて説明します

読み込み時の文字コードについて

ファイル読み込み時の文字コードは自動的に認識して適切に設定されるので,普段は意識する 必要はありません. どの文字コードとして認識されたのかは読み込み時に ファイル名などと同時に [E],[S],[J] などの表示が出るので分かります
編集中に確認したい場合は

:f

または

CONT-G

で,このファイル情報をいつでも表示できます

また,ファイルごとに設定されている文字コードは

:set jc?

で,いつでも見ることが可能です. jcは 略さずに jcodeと書いても同じです. この jcode の設定はファイル毎に設定されますので 同時に文字コード の異なるファイルを扱えるわけです

文字化けなどをしている場合は 設定を調べることになりますが, この時関連しそうな オプションは jmask です. jmask は,

のそれぞれについて

という文字で設定します. 例えば すべてEUCコードという設定にしたいのであれば

:set jmask=EEE

のような書き方となります. 普通は設定ファイル( ~/.vimrc など)に書きます
DOSやWindows版のJVimであれば SJISの設定とするべきでしょうから :set jmask=SSS …という設定となると思います

DOSの改行(CrLf)を unixで読み書きする場合

普通に読み込めば, 勝手に :set textmode のようにtextmodeオプションが設定 されるので 特に問題無く読み込むことができます. 読み込み時の画面下行のファイル情報 表示に [textmode] という表示があればそれは「改行コードをCrLfとして認識して 読み込みました」ということを示しています

これを unix改行でセーブしたければ

:set notextmode

と打ってtextmodeオプションを解除してから書き込み操作(セーブ)すれば良いのです

また, 普通のunix改行のテキストを DOSのために DOS改行でセーブしたければ

:set textmode

のように textmodeオプションを設定してからセーブすれば OKです

Macの改行(Cr)を unixで読み書きする場合

Mac=(マッキントッシュのことです)のテキストの改行コードのファイルを普通に読み込むと 何だか改行が無くなってて ぐちゃぐちゃに表示されるので Macのテキストファイルの読み書きは無理だと思ってしまう人もいるかも知れませんが 問題ないです. そのぐちゃぐちゃの表示でもあわてずに

:set option=1

と打って設定を変更してから

:e!

と打ってファイルを読み込み直してみましょう. これで正しく表示されると 思います. 二つもコマンドを打ちたくなければ まとめて :se option=1|e! でも同じ です. …とにかく, オプション option1に設定されている時は Macテキスト改行コードを認識して正しく表示をするというわけです

これをunix改行でセーブしたければ

:set option=0

のように, optionオプションを通常の unix改行用に設定してからセーブすればよいし, Macの改行で再びセーブしたいのであれば そのままセーブしましょう
もちろん, DOS改行にしたければ option=0かつtextmodeの両方の設定をして からセーブすればよいのです

要するに マックのテキストで読み書きするなら option=1 の状態であれば 良いわけです. この操作は わりと面倒なので 頻繁に マック改行テキストを扱うのであれば 操作をひとまとめにしてmap に 割り当てたほうが良いかと思います. ちなみに私の場合は

noremap #m :set option=1^M:e!^M:set option=0^M

という行(制御文字に注意 ! ) を 設定ファイルに書いているので 「#m」と 打つだけで変換できるようになってます

[ 注 意 !! ]

いくら Macのテキストが読めて便利だからといっても ".vimrc " などの設定ファイル に set option=1 という設定を書くことはお勧めしません. こうすると 普通のunixのファイルを開いても Macの改行で書かれてしまって 気が付かない うちにJVimで編集したファイルが次々とMac改行になっていた… という ような面倒なことになったりします

[ 注 意 !! ]

実は, option に設定できる数値は,他にもいろいろあるので詳しくは JVimに付属のREADME などを読むようにして下さい

セーブする時の文字コード

あまり知られていませんが, JVimは,セーブする時の文字コードを指定できます
例えば,編集中に

:set jc=s

のようにjcodeオプションの内容を自分で設定変更してからセーブするだけで, SJISコードのファイルとしてセーブすることができるのです. 意外と簡単ですね
jcode には, s , j , e の どれかひとつを設定でき ます. これでもうコード変更のためのツールを わざわざ使う手間は不要ですね

おまけ…日本語関連のその他のオプション紹介

日本語を扱う上で関連することなので, おまけとしてここに書いておきます

日本語の表示や挙動で気になる人は,以下の日本語特有のオプションについて調べて 設定してみて下さい. 説明の多くは, JVim付属のReadmeファイル に書いてあります


目次へ

次項目, 「便利なタグ機能を手軽に使おう」へ