fudist

ホーム‎ > ‎vim UTF-8日本語版‎ > ‎

vim UTF-8日本語版 - 設定ファイルの解説

「vim/gvim用utf-8設定ファイル」の.vimrc、.gvimrc等について解説するページ
vim/gvimをutf-8(unicode)化することによって、ほとんどの文字コードについては自動で認識され、文字化けが無くなります。
このページでは、「vim UTF-8日本語版」で配布している「vim/gvim用utf-8設定ファイル」についての解説を行っています。
サンプル設定ファイルには、オプション設定とエンコード設定以外にも各種設定/スクリプトなどが追加されています。
設定ファイルはWindowsとLinux(Ubuntu)の vim / gvim 7.2 で動作確認しています。

「vim/gvim用utf-8設定ファイル」や vim/gvim 本体のダウンロードは「vim UTF-8日本語版」を参照して下さい。

vim UTF-8日本語版

すでにvim/gvimを使用している場合のUTF-8化や文字コード自動認識、文字化け対策について以下を参照して下さい。

vim/gvimのUTF-8化とファイルの文字コード自動認識
vimの文字化けについて


サンプル設定ファイルについて 内部エンコードについて (UTF8化の問題点と内部エンコードをcp932に設定する)
vimの文字化けについて  (文字化け対策としてファイルの文字エンコード判定をutf-8優先にする)

設定ファイルについて

Windowsの設定ファイルと他のOSの設定ファイルの違い

それぞれ次のように読み替えてください。

 Windows    unix
 備考
 vimrc vimrc vim/gvimの全ユーザ共通基本設定
 gvimrc gvimrc gvim固有の全ユーザ共通基本設定
 _vimrc
 .vimrc  vim/gvim共通の個人用設定
 _gvimrc  .gvimrc  gvim固有の個人用設定
 vimfiles  .vim  ユーザーランタイムディレクトリ
vimrc と gvimrcはシステム管理者が作成するもので、必要最小限の設定(エンコードの設定など)のみ設定して、基本的に変更しません。
個人的な設定は_vimrc と _gvimrcに保存します。

カスタマイズのために変更するのは、_vimrc、_gvimrc、vimfilesの中だけです。

vimrc、gvimrc、_vimrcと_gvimrc以外の各種設定ファイルやプラグインは、すべてvimfilesの中に作成/コピーして下さい。
vimfilesの中のファイルはデフォルトのランタイムディレクトリにコピーしたのと同じに扱われます。
Windowsの場合、vimrcとgvimrcは、_vimrcや_gvimrcと同じフォルダでかまわないでしょう。
本来なら環境変数$HOMEをWindowsに設定して、そのホームディレクトリに設定ファイル(_vimrc, _gvimrc, vimfiles)を置きます。

またunixのように '~/vim' などとpathを指定する場合、 '~' はWindowsでは、環境変数HOMEを設定していないと C:\Documents and Settings\...以下の個人フォルダになります。

サンプル設定ファイル(_vimrc、_gvimrc、vimfiles)はLinux(Ubuntu)でも使用可能です。
ただ、文字コードの自動認識はデフォルトの vimrcでは設定されていないことが多いと思いますので、その場合は .vimrc 内の「encode.vimを読み込む」を有効にしてください。

文字コードの自動認識

既にvim/gvimを導入している場合は以下を参照してください。
vim/gvimのUTF-8化とファイルの文字コード自動認識


サンプル設定ファイル(_vimrc、_gvimrc、vimfiles)はLinux(Ubuntu)でも使用可能です。
ただ、文字コードの自動認識はデフォルトの vimrcでは設定されていないことが多いと思いますので、その場合は .vimrc 内の「encode.vimを読み込む」を有効にしてください。
encode.vimは「vim/gvim用utf-8設定ファイル」で配布している設定ファイルの vimfiles/pluginjp の中にあります。

vimの文字コードの自動判定は、fileencodings の順番に変換をしてみて、エラーが出なかったらそのファイルエンコードと見なす、という処理を行っています。
encode.vimは fileencodings に適切な値を設定するためのものですが、fileencodingsに自分で明示的に順番を指定する事も出来ます。

vimの文字化けについて


_vimrc

_vimrcサンプルを表示
ダウンロード

_vimrc には vim/gvim 共通の個人設定を保存します。
メニューの編集(E)→起動時の設定(S)で_vimrcを編集できます。

_vimrcにもコメントを書いてあります。
また'K'か'<F1>'キーでカーソル下の単語のヘルプを検索できますので、そちらを参照してみてください。
以下標準と異なる点について列挙します。
不要なものについては_vimrcの該当部分を無効にして下さい
  • カーソルを表示行で移動させる。
    vim/gvimは行を折り返して表示している場合、カーソルが他のWindowsエディタと違い論理行単位で移動します。
    これを画面に表示された表示行単位で移動するように設定しています。
    キーボードマクロなどで論理行単位の移動が必要なら、<C-n>、<C-p>を使用して下さい。
  • h l と左右のカーソルキーでの移動時には行末で止まらないようにする。
    左右のカーソルキーにのみ whichwrapを設定して行末を超えて移動できるようにして、 ノーマルモードの h l には <Right> <Left> をマップしています。
    このため行末で l を押したり 99l のようなカーソル移動では行末を超えて移動しますが、 d99l のようにモーション指定で編集する場合は行末を超えることはありません。
  • <F1> : ヘルプ検索
  • <F8> : 現在開いているvimスクリプトファイルを実行します。
    _vimrcを書き換えた際に使うと、終了して立ち上げ直さなくても変更が反映されます。
  • ZZ   : 強制全保存終了を無効化しています。
    これは取り返しのつかない(アンドゥできない)コマンドだからです。
  • ファイルを開いたら前回のカーソル位置へ移動
  • 挿入モード時、ステータスラインの色を変更
  • ステータスラインに文字コードや行番号表示
    iconv が使用できる場合は、ファイルエンコードに合わせた文字コードを表示します。
  • 全角スペース、タブ、行末のスペースを表示。
    vim起動時にのみ設定を行うので、色テーマを変更した時などは無効になります。
    以下を追加すると常に再設定されるので無効になる事はありません。
    autocmd BufEnter * call ActivateInvisibleIndicator()
  • 公式ではデフォルトで有効になっているmswin.vimは無効になっています。
    必要な方は_vimrcの「mswin.vimを読み込む」を有効にしてください。
    mswin.vim はCtrl-X,C,Vのコピー&ペースト関係の編集やマウス操作をWindowsライクにするものです。

本ページで配布している設定ファイルではvimrc内で内部エンコードやファイルエンコードの自動判定が設定されています。
しかし vimrc がないか使用しない、あるいは何らかの理由でデフォルトではファイルエンコードの自動判定が設定されていない環境では、_vimrc の「encode.vimを読み込む」を有効にして下さい。
また本サイトで配布している設定ファイルを使用しない場合は以下を参照して下さい。
vim/gvimのUTF-8化とファイルの文字コード自動認識

差分表示用コマンド DiffOrig、 Diff は _vimrcで設定しています。
1.4.8 Diff
Windows用に公式で配布されている「diff」はvim72へコピーして使って下さい。


_gvimrc

_gvimrcサンプルを表示
ダウンロード

_gvimrc には gvim 固有の個人設定を保存します。
主にGUIのフォントとメニューなどgvim固有の設定を行うファイルです。
色設定など、設定自体は vim と共通でも _gvimrc で設定しないと gvim には反映されない項目もあります。
いくつかファイル(F)のメニューに追加しています。
  • 起動時に前回終了時のウィンドウ位置の保存と復帰を行う。
  • ファイル再読込(U)
  • 現バッファの削除(K)
  • ファイル更新時のみ保存(S)
  • 現バッファ差分表示(D)
    保存されているファイルと現在編集中のファイルとの差分(現バッファの変更点)を表示します。
  • 裏バッファと差分表示(D)
    現在編集中のバッファと裏バッファとの差分を表示します。
  • 差分表示(D)
    現在編集中のバッファと指定したファイルとの差分を表示します。



vimrc

vimrcサンプルを表示
ダウンロード

vim/gvim 共通の必要最小限の設定を行うファイルです。
通常は管理者が作成するもので、基本的には変更しません。
個人的な設定は_vimrcに保存します。

UTF-8化と文字コードの自動認識はここに含まれていますが、Windowsの場合はiconvが必要です。
何らかの理由でvimrcを使用しないか、デフォルトでファイルエンコードの自動判定が設定されていない環境では、_vimrcで自動認識を設定する必要があります。
詳しくは _vimrc を参照して下さい。

また本サイトで配布している設定ファイルを使用しない場合は以下を参照して下さい。
vim/gvimのUTF-8化とファイルの文字コード自動認識

自動認識の誤認識が気になる場合は以下を参照して下さい。
vimの文字化けについて


gvimrc

gvimrcサンプルを表示
ダウンロード

gvim用の必要最小限の設定を行うファイルです。
通常は管理者が作成するもので、基本的には変更しません。
個人的な設定は_gvimrcに保存します。


使用するフォント名について

フォント名は英語名を指定する方が問題が起こりにくくなります。
適当なフォントエディタなどで、書体の英語名を調べて指定して下さい。
また半角スペースは _ に置き換えて使用します。

(例) MS ゴシックはフォントの英語名が 「MS Gothic」 なので次のようになります。
" フォント設定:
set guifont=MS_Gothic:h11:cSHIFTJIS


Diffについて

差分表示用コマンド DiffOrig、 Diff は _vimrcで設定しています。
1.4.8 Diff
Windows用に公式で配布されている「 diff 」はvim72へコピーして使って下さい。




colorファイル(色設定)

_vimrc で色設定ファイルを指定しても vim では有効ですが、gvim では有効になりません。
gvimの色設定は _gvimrc で色設定ファイルを指定してやる必要があります。
" カラー設定:
colorscheme mycolor
vimはカラー設定でIMEの状態をカーソルの色で表示できるのですが、そのためにはCursorIMという色の定義が必要です。
本ページで配布している設定ファイル(gvimrc)ではデフォルトでは有効なものの、カラー設定ファイルを指定すると無効になります。
CursorIMやカラー設定については下記を参照して下さい。

IMEの状態でカーソル色を変えたい


その他

挿入モードのキーをカスタマイズしたい場合は「若干Emacs風味なvimのキー設定」が参考になるかもしれません。、
その他にも「vimのカスタマイズとTips」などもカスタマイズ設定の参考になるかもしれません。


ダウンロードは以下のページから可能です。

vim/gvim用utf-8設定ファイル

サンプル設定ファイルはリネームして使用して下さい。
 リネーム前
 Windows
 Linux
 _sample_vimrc
 _vimrc  .vimrc
 _sample_gvimrc  _gvimrc  .gvimrc

内部エンコードについて

vimrc(_vimrcで encode.vimを有効にしている場合はencode.vim)でvimの内部エンコードがutf-8に設定されています。
これはWeb関係のファイルなどで内部エンコードがcp932だと、開けないファイルが増えているためです。
Web関係のファイルを扱う場合には、内部エンコードはutf-8のままで使用することをおすすめします。

外部grepをそのまま使用する場合、内部エンコードと異なるエンコードのファイルを検索できません。
Windowsで内部エンコードをutf-8に設定した場合、shellから日本語を含むファイル名やpathを扱う場合も問題になる事があります。
OSのshellエンコードがcp932であるWindowsでは、内部エンコードをutf-8にした場合、そのままでは外部grepを使用してcp932のファイルを日本語で検索できなくなります。
外部grepの問題点」 (「vimのgrepの設定と使い方」)

vim/gvimの外部grepで日本語がうまく扱えない場合は、まずvimgrepを使用して下さい。
速度が問題で外部grepを使用したい場合は「QFixGrep」などのgrepヘルパーの使用を検討して下さい。
速度が問題にならない場合、文字エンコードの扱いについては外部grepより内部grep(vimgrep)が有利です。

本来は内部エンコードをOSのエンコードと同一にするのが望ましい設定です。
Windowsのshellエンコードはcp932なので、cp932のファイルしか扱わないならcp932にする方が良いかもしれません。
余談ですが、Windowsのshellの見かけ上は cp932(Shift-JIS) になっていますが、内部的にはunicode化されています。

何らかの理由で、内部エンコードをcp932にしたい場合には、vimrc(_vimrcで encode.vimを有効にしている場合はencode.vim)内の
set encoding=utf-8

set encoding=cp932
に変更して下さい。
内部エンコードをcp932に設定変更しても、大抵のutf-8やEUCのファイルは問題なく扱えます。

vimの文字化けについて

vimの文字化けについて」にまとめました。


前のページ「vim UTF-8日本語版」へ戻る

index



前のページ「vim UTF-8日本語版」へ戻る