改変スクリプト



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

設定ファイルについて

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

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

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

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

vimrc、gvimrc、_vimrc、_gvimrc以外の各種設定ファイルやプラグインは、すべてvimfilesの中に作成/コピーして下さい。
vimfilesの中のファイルはデフォルトのランタイムディレクトリにコピーしたのと同じに扱われます。

設定ファイルは本来なら環境変数 HOME をWindowsに設定して、そのホームディレクトリに設定ファイル(_vimrc, _gvimrc, vimfiles)を置きます。
Windowsの ~ は環境変数HOMEを設定していないと C:\Documents and Settings 以下の個人フォルダになります。
~ ($HOME)がどのディレクトリを指しているかは、コマンドモードから確認できます。
:echo $HOME
HOME に設定ファイルがある場合は HOMEから優先して読み込みますが、存在しない場合は vimの実行ファイルと同じディレクトリにある設定ファイルを読み込みます。
読み込むディレクトリと順番は versionコマンドでも確認可能です。
:version

オールインワンパッケージ」ではUSBメモリからの起動なども考えて、vimの実行ファイルと同じディレクトリにvimfilesを作成してありますが、HOMEに設定ファイルがある場合はHOMEの設定ファイルを読み込みます。

サンプル設定ファイル」(_vimrc、_gvimrc、vimfiles)はLinux(Ubuntu)でも使用可能です。

なお設定ファイルの fileformat(改行コード)は unixでないとLinuxではエラーが出ます。
Windowsで使用する場合も fileformat=unix にしておいたほうが良いかと思います。

文字コードの自動認識

文字コードの自動認識は vimfiles(.vim)の /pluginjp/encode.vimで設定されてます。
vim/gvimのUTF-8化とファイルの文字コード自動認識


.vimrc (_vimrc)

.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   : 強制全保存終了を無効化しています。
    これは取り返しのつかない(アンドゥできない)コマンドだからです。
    慣れてきたら好みで有効にしてください。
    (7.3以降では終了後のアンドゥが可能です。「Persistent undoの設定
    有効にするとundoファイルが編集したファイルと同じディレクトリに作成されるので、好みに応じて保存ディレクトリを指定してもよいかもしれません。)
  • ファイルを開いたら前回のカーソル位置へ移動
  • 挿入モード時、ステータスラインの色を変更
  • ステータスラインに文字コードや行番号表示
    iconv が使用できる場合は、ファイルエンコードに合わせた文字コードを表示します。
  • 全角スペースを表示
  • タブ、行末のスペースを表示
  • 公式ではデフォルトで有効になっているmswin.vimは無効になっています。
    必要な方は_vimrcの「mswin.vimを読み込む」を有効にしてください。
    mswin.vim はコピー&ペースト関係の編集やマウス操作を Ctrl-X,C,Vのように Windows風に設定するものです。

Windows用に公式で配布されている「diff」 はランタイムディレクトリか vimの実行ファイルと同じフォルダへコピーして使って下さい。
オールインワンパッケージには含まれていますが、空白を含むパスにある場合はvim.exeと同じフォルダにある事を確認して下さい。
1.4.8 Diff

その他

内部エンコーディングを UTF-8に設定していて環境変数に日本語を使用する場合は以下を参照してください。
日本語を含む環境変数の設定

以下は好みですが、評判の良かったスクリプトをあげておきます。
  1. 1.4.1 縦に連番を入力する
  2. 1.4.2 カーソル位置の単語をヤンクした単語に置換
  3. 1.4.3 ヒストリ貼り付け
  4. 1.4.4 ヒストリ貼り付け2
USBメモリからの実行を考えている場合は以下も参照してみてください。
USBメモリからvim/gvimを実行する場合のTips

UTF-8化と文字コード自動認識設定ついては以下を参照して下さい。
vim/gvimのUTF-8化とファイルの文字コード自動認識



.gvimrc (_gvimrc)

.gvimrc (_gvimrc)サンプルを表示
ダウンロード

_gvimrc には gvim 固有の個人設定を保存します。
主にGUIのフォントとメニューなどgvim固有の設定を行うファイルです。
色設定など、設定自体は vim と共通でも _gvimrc で設定しないと gvim には反映されない項目もあります。
いくつかファイル(F)のメニューに追加しています。
  • 起動直後の挿入モードでは日本語入力を有効にしない。
  • 起動時に前回終了時のウィンドウ位置の保存と復帰を行う。
  • ファイル再読込(U)
  • 現バッファの削除(K)
  • ファイル保存(W)
  • ファイル更新時のみ保存(S)
  • 現バッファ差分表示(D)
    保存されているファイルと現在編集中のファイルとの差分(現バッファの変更点)を表示します。
  • 裏バッファと差分表示(D)
    現在編集中のバッファと裏バッファとの差分を表示します。
  • 差分表示(D)
    現在編集中のバッファと指定したファイルとの差分を表示します。
gvimではカーソルの色で IMEの状態を表示可能ですが、カラーファイルを使用する場合以下を参照してみてください。
IMEの状態でカーソルの色を変更する

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

特に WindowsでUTF-8化している場合、set guifontのフォント指定に日本語が含まれると cp932で指定する必要があるので面倒な事になります。
内部エンコーディングがcp932の場合はフォント指定に日本名も使用できますが、フォント指定は英語名を指定する方が問題が起こりにくいのでおすすめです。
gvimのメニューの 編集(E)→フォント設定(N)で好みのフォントを探してから、適当なフォントエディタで書体の英語名を調べて指定して下さい。
使用可能なフォントは等幅のみです。

Windowsなら Vectorなど適当なサイトで探して下さい。
http://www.vector.co.jp/vpack/filearea/win/writing/fonttool/edit
個人的にはシェアウェアですが TTEdit が良いかと思います。
フォント名を知りたいだけなので、レジストする必要はありません。
TTEditで C:\Windows\Fonts から使用したいフォントファイルを開き、設定(S) → フォント情報(F)で確認できます。
Linuxやcygwinの FontForge でも問題ないかと思います。

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

半角スペースは _ に置き換えるか \ でエスケープして使用してください。


vimrc

vimrcを表示

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

UTF-8化と文字コードの自動認識はここに含まれていますが、Windowsの場合はiconvが必要です。


gvimrc

gvimrcを表示

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

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



colorファイル(色設定)

_vimrc で色設定ファイルを指定しても vim では有効ですが、gvim では有効になりません。
gvimの色設定は _gvimrc で色設定ファイルを指定してやる必要があります。
" カラー設定:
colorscheme mycolor
vim/gvimの色設定周りは以下にまとめました。
vim/gvimの色設定について

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


その他

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


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

vim/gvim用サンプル設定ファイル

サンプル設定ファイルはリネームして使用して下さい。
 リネーム前
 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にしたい場合には、ユーザーランタイムディレクトリに cp932というファイルを作成してください。

ユーザーランタイムディレクトリ(Windowsはvimfiles、unixなら .vim)に特定のファイルが存在する場合、内部エンコーディングは以下の表の様に設定されます。
デフォルトはUTF-8です。
ファイルネームしか見ないので内容は何でもかまいません。

 ファイル名  内部エンコーディング
 cp932  cp932
 utf-8-console  Windowsの非GUI(コンソール版)のみUTF-8

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

vimの文字化けについて

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


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