LoginSignup
26
13

More than 5 years have passed since last update.

Vim 8.0 Advent Calendar 8 日目 defaults.vim

Posted at

この記事は Vim 8.0 Advent Calendar の 8 日目の記事です。

今回は新しく Vim に追加された defaults.vim という機構について解説します。

背景

Vim には今でも多くの新機能が追加され便利になっていっていますが、一方で互換性も重視しています。
中には、シンタックスハイライトなど明らかに便利であるにも関わらず、デフォルトでは有効になっていない機能があります。
新しく Vim を使い始めるユーザーにとって、互換性が理由で便利な機能がすぐに使えないことはあまり嬉しくはないでしょう。
そこで追加されたのが defaults.vim です。あくまで Vim 自体のデフォルト値は変えずに、ユーザーに便利な設定を提供します。

defaults.vim の読み込み

ユーザーの vimrc ファイルが存在しない場合、$VIMRUNTIME/defaults.vim ファイルは自動で読み込まれます。
読み込みたくない場合は、vimrc を読み込まない場合と同様に vim -u NONEvim -u NORC などを指定して Vim を起動します。
また、システム管理者が defaults.vim を読み込ませたくない場合、システムワイドの vimrc にて let g:skip_defaults_vim = 1 を行うことで defaults.vim の設定は適用されなくなります。

なお、この defaults.vim の追加によって、Vim は通常の起動でコンパチブルモードで起動することがなくなりました。このことは非互換の変更として help にも記載されています。

defaults.vim の内容

例えば以下のような設定があります。

  • Vi 互換モードをオフにする (set nocompatible)
  • filetype の検出やプラグインなどを有効にする
  • シンタックスハイライトを有効にする
  • 'nrformats' オプションの値から octal を取り除く
  • 間違えて <C-u> したときに undo できるようにする
  • :DiffOrig Ex コマンドの定義 (:help :DiffOrig)

詳細は実際にファイルの中身を見てみてください。:e $VIMRUNTIME/defaults.vim で開けます。

defaults.vim から始める vimrc

defaults.vim は最初に使い始める vimrc の叩き台としても機能します。
新しく自分用の vimrc を書き始めたいと思ったとき、defaults.vim の内容を継承したい場合は、defaults.vim ファイルを vimrc ファイルにコピーするか、もしくは vimrc の先頭に以下のように書きます。

source $VIMRUNTIME/defaults.vim

ここから、自分の気に入らない部分をちょっとずつ手を加えていくとよいでしょう。

逆に言うと、これらを行わずにユーザーの vimrc ファイルを作成すると、defaults.vim が読み込まれなくなることから、挙動が変わってしまうことに注意してください。

26
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
13