VimとUTF-8

Vimについて

Vimは http://www.vim.orgで配布されているUnix由来のvi派生エディタでWindowsでも使用することができます。

操作体系が独特でとっつきはあまり良くありませんが、なれると非常に効率のよい編集を行えるようになります。

Vim(vi)自体の簡単な使い方(操作方法入門)は「はじめてのvi」にまとめました。

市販の入門書としては「入門vi 第6版(amazon)」が訳自体も読みやすくチートシートもついているのでおすすめです。

表面的なコマンド解説だけの本ではないので viを理解するために最適な一冊と思います。

第6版では viだけでなく Vimについても触れられています。

VimをUTF-8化する

日本語版WindowsでのVimはデフォルトがcp932(Shift JIS)で動作するため、最近増えてきたWeb系のファイル等で開くことができないファイルもあります。

基本的には内部エンコーディングをUTF-8にすれば解決しますがWindowsのshellエンコーディングと異なる環境で動作することになるため(主に外部コマンドの日本語がらみで)問題が起きることもあります。

特に不都合がなければ内部エンコーディングは cp932(Shift_JIS)のままの方が問題は起きません。

すでにVimを使用している場合

すでにVimを使用している場合は_vimrc(.vimrc)の先頭でencodingを設定してやればUTF-8化されます。

set encoding=utf-8
scriptencoding utf-8

2行目のscriptencoding(.vimrcのエンコーディング)は本来vimrcで指定するべきですが、.vimrcで内部エンコーディングを変更した場合はあらためて指定する必要があります。

(設定値に英数字以外を利用している場合は指定しないと問題が起きます)

また各所で日本人向けに配布されている最近のWindows用Vimでは、内部エンコーディングをutf-8に変更するファイルが用意されているものもあるようなので実際に変更してなにか問題があるか試してみてください。

具体的にはVimフォルダ内に /switches/catalog/utf-8.vim があれば /switches/enabled へコピーすることで内部エンコーディングがutf-8に変更されるようです。

Windows用UTF-8日本語対応Vim

Vimの最新ソースコードはgithubで配布されています。

https://github.com/vim

この公式githubではソースだけではなく自動更新されるWindows用Vimの実行パッケージも配布されています。

このWindows用Vimパッケージに設定ファイルを作成してやれば、すぐに日本語対応Vimとして使用可能です。

インストール方法とUTF-8化設定ファイルは以下にあるので参考にしてください。

設定ファイルのアーカイブ内には_vimrcと_gvimrcの「サンプル設定ファイル」も同梱しています。

「サンプル設定ファイル」には、UTF-8化だけでなく、以下のような補助機能設定も追加されています。

  • ファイルを開いたら前回のカーソル位置へ移動
  • ステータスラインに文字コード等表示
  • 挿入モード時、ステータスラインのカラー変更
  • 全角スペースを強調表示
  • 前回終了時のウィンドウサイズと位置を保存

インストール

Windows用公式配布Vim (最新版スナップショットパッケージ)

https://github.com/vim/vim-win32-installer/releases

https://github.com/vim/vim-win32-installer

ダウンロードするファイルはファイル名に_x64がついているのが64bit版で_86が32bit版です。pdbとあるのはデバッグ用なので実行するだけなら不要です。

(使用したいバリエーションがビルドされていない場合は、以前のバージョンを探してください)

インストールにはzipファイルを解凍する方法とインストーラ版を使用する方法がありますが、おすすめはzipファイルを解凍する方法です。

単純にダウンロードしたzipファイルを(パスに日本語を含まない)適切なディレクトリに解凍すればVimがそのまま使用可能になります。

実行ファイルはvim\vim80 (番号部分はバージョンによって異なります)以下にあるので必要ならショートカットを作成してください。

実行するのはGVim(gvim.exe)ですが、コマンドプロンプト内で使用したい場合はVim(vim.exe)を使用します。

特に設定しなくてもVimは正常に動作しますが、次節で説明する「設定ファイルの読み出し先」に設定ファイルを作成することによりカスタマイズを行なうことが出来ます。

(注意)

いずれの実行ファイルも署名がなされていないため、インストールまたは実行時に「Windows SmartScreenは認識されないアプリの起動を停止しました。」と表示されることがあります。

(またはInternet Explorerでのダウンロード時に「*.exeはダウンロードしたユーザーの人数が少ないため、コンピューターに問題を起こす可能性があります。」と表示される)

この場合は「詳細情報」から実行を許可する必要がありますが、一度許可すれば次回以降は問題なく起動します。

設定ファイルの読み出し先

Vimの設定ファイルの_vimrc(unixでは .virmc)、_gvimrc(unixでは .gvimrc)、vimfiles(unixでは .vim)は、通常$HOME$VIM(Vim実行ファイルが存在する場所)から読み出されます。

実際のパスはVimを起動して :echo $HOME:echo $VIM を入力することで確認してください。

ただし$HOMEは使用するWindowsのバージョンにより C:\Documents and Settings\<ユーザー名>C:\Users\<ユーザー名>になるのでWindowsのバージョンやユーザー名によってパスが変わりますし、ユーザー名に日本語が含まれていたりすると問題がおきるため、$VIMに設定ファイルを作成する方が扱いやすくなります。

なお$HOME$VIMの両方に設定ファイルが存在する場合は$HOMEが優先されます。

Vimのzipファイルを解凍して使用する場合は$HOME$VIMのどちらでも良いのですが、$VIMに設定ファイルを作成することをおすすめします。

zip解凍の場合の$VIMは解凍して出来たvimディレクトリになります。

D:\Tempにzipを解凍した場合の$VIM

D:\Temp
└─vim       ←ここが$VIM
    └─vim80   ←ここにgvim.exe, vim.exeの実行ファイルが存在する
        ├─autoload
        ├─ ....

本来$VIMはVimの実行ファイルがあるディレクトリを指しますが、利便性のために実行ファイルの存在する一つ上位のディレクトリも$VIMとして扱われます。

(注意) インストーラを使用してインストールした場合は、$VIMへの設定ファイル作成は望ましくないので、$HOMEへ作成することになります。

設定ファイルの作成

あとは$VIM$HOME_vimrc(.vimrc)を作成して以下の内容をコピーしてやればUTF-8化したVimとして使えるようになります。

set nocompatible

set enc=utf-8

set fencs=ucs-bom,utf-8,iso-2022-jp,euc-jp,cp932,utf-16le,utf-16,default

サンプル設定ファイル

UTF-8日本語対応Vimサンプル設定ファイル (2019/02/20)

windows-vim-utf-8-cfg-master.zip

上記zipの設定ファイルを「設定ファイル読み出し先」にコピーすればすぐにUTF-8化したVimとして扱うことができます。

使用環境に応じて前述した$HOME$VIMのいずれかにコピーしてください。(「設定ファイルの読み出し先」)

設定ファイルに含まれるのは以下の通りです。

  • vimfiles
    • (ユーザーランタイムディレクトリ)
  • _gvimrc
    • (GVim専用設定ファイル)
  • _vimrc
    • (Vim/GVim共通設定ファイル)
  • _encodings.vim
    • (UTF-8化とファイルエンコーディング判定用設定)
    • _vimrcから呼び出されます。
  • _keymaps.vim
    • (キーマップ設定)
    • _vimrcから呼び出されます。
  • _scripts.vim
    • (各種Vimスクリプト)
    • _vimrcから呼び出されます。

基本的には_vimrcに設定を追加し、GVimでしか使用しない/GVimのみ有効な設定を_gvimrcに追加して使用します。

/vimfiles以下には必要に応じて自分用のプラグイン、日本語ヘルプ等を追加してください。

またこのサンプル設定ファイルはunixでも使用可能ですが、_vimrc, _gvimrc, vimfilesではなく.vimrc, .gvimrc, .vimにリネームする必要があります。

日本語ヘルプ

日本語ヘルプは以下から入手可能です。

https://github.com/vim-jp/vimdoc-ja

ヘルプはruntimepathの通った場所(/vimfilesなど)に/doc/syntaxをコピーして使用します。

ただしコピーしただけでは有効にならないので、:helptagsでタグファイルを作成する必要があります。

:helptags ALL

githubからcloneして.vimrc等でruntimepathを通すのも良いかもしれません。

set runtimepath+=/path/to/vimdoc-ja

grepを使用する

Windowsの場合は標準ではgrepが存在しないため、:grepを実行するとデフォルトでfindstrが使用されますがcp932(Shift_JIS)が前提のためUTF-8の日本語は検索できません。

速度面を気にしないなら内部grep(:vimgrep)で文字エンコーディングを気にせず検索は可能ですが、grep検索をよく使用する場合は外部grepの使用を検討してください。

grepの設定と使い方

その他の設定

特に必要というわけではありませんが、その他の設定については以下に記事がありますので参考にしてみてください。

Vim(vi)自体の簡単な使い方(操作方法入門)は「はじめてのvi」にまとめました。

実行ファイルはgithubでビルド用のスクリプトが配布されているので自分でビルドすることも可能です。

python等の使用バージョンが違う場合や、OLEを無効化したい場合などに有用です。

個人的にはWindowsのMinGWでビルドしています。

vimをビルドする