.vimrc

ikeda.vimrc,CentOS,utf-8,vim

池田です。

最近、僕のチームで「開発用エディタの保存時改行コードが LF か確認しましょう。」という話があり
普段使っている vim の設定を見直してみました。
テキストエディタは色々試してはみたものの、結局 vim (Unix標準エディタ)で作業してしまうことが多く、
少しでも使いやすいように過去に何度かカスタマイズしたことがあります。
その辺り、ちょっとハマったところとあわせてご紹介します。

.vimrc

vim の設定は各ユーザのホームディレクトリにある .vimrc に記述するだけです。
ここに指定する設定オプションは編集中にコロン : から実行することもできます。
vim を起動するときにこの設定ファイルが読み込まれるため、source コマンドは必要ありません。

便利なオプション

set number
行番号を表示します。基本です。

syntax on
構文ハイライトです。真っ黒なターミナルのデフォルトでは青が非常に見づらく、プログラムを
レビューしてくれている同僚に迷惑をかけますが、僕は好きです。
このオプションも基本ですが、普段仕事で使用しているCentOS5のデフォルト環境では、vim の
拡張パッケージをインストールしないと有効になりません。少しハマりました。

set fileformat
ここが今回確認した改行コードを設定するオプションです。
unix(LF)、mac(CR)、dos(CRLF)のいずれかの文字列を記述します。

set ambiwidth
たまに全角文字を含む文字列を編集中にカーソル位置と表示がおかしくなる現象にハマっていたのですが、
このオプションに double と設定すると解消。vim が文脈に依存する文字幅を半角か全角か判断できない時
に発生していたようです。

set encoding
文字エンコードを指定します。指定しないとOSのロケールが使われます。

set fileencoding
ファイルのデフォルトエンコーディングです。ここに指定した文字エンコードでファイルが保存されます。
新しいファイルもこの文字エンコードで作成されます。

set fileencodings
ファイルの文字エンコーディングを自動判別するためのオプションです。
vim はここに記述した文字エンコーディングの順番で fileencoding に指定した文字コードにエンコードを試み、
失敗しなければその文字エンコーディングで開きます。失敗した場合は fileencoding が使われます。
この設定は便利なのですが、融通が利きません。
例えば、

set fileencoding=utf-8
set fileencodings=cp932,iso2022-jp,euc-jp,sjis

と記述すると、日本語を含まないASCIIファイルは間違いなくcp932としてファイルエンコーディングされます。
utf-8だと思って日本語を記述して知らずに保存すると、shift-jisになっていて文字化けしていたりします。

vim の自動判別の誤判断は、/etc/vimrc にごりごり書かれているスクリプトを修正すればかなり改善されるよう
ですが、そこまでする気もありません。
最近はほとんどutf-8エンコーディング環境なのでこの設定オプションはあえて指定せず、たまに遭遇しても
: e++enc=utf-8
と打ってutf-8エンコーディングでファイルを開き直すようにしています。ちょっと煩わしいのですが、確実です。

vim はオプションが豊富でたまに調べると新しい発見があったりします。便利な設定をご存知の方はぜひ教えて
下さい。

ikeda.vimrc,CentOS,utf-8,vim

Posted by ikeda