初期設定ファイルを書こう

はじめに

JVimには,細かい挙動の設定項目が数多くあります
ここでは,設定の変更方法や,基本的な設定項目について解説します
同時に,起動時に読み込まれる設定ファイルについても書きます

オプションとは

例えば, :set number と打ってみましょう. 画面の左側に 常時「行番号」が表示されるようになります. 今の操作で,「JVimの状態を 変化させた」わけです

JVimには「オプション」とか「パラメーター」と呼ばれる「変数みたいなモノ」が いくつもあって, この変数の状態を変更することで挙動を変更できます. 今 変更したのは number という名前のオプションです. この number と いうオプションは「画面に常時行番号を表示されるかどうか」を覚えておく場所 (変数みたいなもの)なのです

この number というオプションは 「必ずいつも"ON"か"OFF"の状態のどちらか」の 状態でいます. そして"ON"の状態の時は行番号が表示され,"OFF"の時は表示は 出ません

:set number

と打つと,"ON"の状態になったというわけです
これを"OFF"の状態にするには

:set nonumber

と打ちます. すると行番号表示が消えますね

このように,設定を変更するということは「オプションの状態を変更すること」です
そして,数あるオプションの一つの項目である number :set number で"ON"になり, :set nonumber で"OFF"の状態となるわけです

数多くあるオプションの中でも,この number のように「"ON"か"OFF"の状態だけをとる」 性質のものは非常に多く, 一般的に

:set (オプション名)

で,"ON"の状態になります. このように"ON"の状態にすることを「 オプションを設定する 」 などと言います. そして

:set no(オプション名)

で,"OFF"の状態になります. このように"OFF"の状態にすることを「 オプションを解除する 」 などと言います

数値や文字列を設定するタイプのオプション

「"ON"か"OFF"のどちらかの状態しかない」オプション以外に,数値や文字列を 設定するタイプのオプションもあります

例えば,オプション tabstop は,「タブの見掛けの表示幅」を設定するものです
数値を設定するオプションなので"number"の時とは設定方法がちょっと 違います. たとえば,「タブの見掛けの表示幅は半角8文字分に設定する」なら

:set tabstop=8

とします. このように数値を設定するオプションは

:set (オプション名)=(数値)

の形式で設定します

また,別のタイプのオプションの例を書きます
オンラインヘルプの内容が書かれたファイルの位置を設定するのには helpfile というオプションに設定内容を書きます. これは
:set helpfile=/usr/local/text/vim.help のように

:set (オプション名)=(文字列)

の形式で設定します

現在の設定状況を見るには

どのタイプのオプションでも

:set number?

のように :set (オプション名)? とすると, 現在のそのオプションの設定状況が表示されます

例えば number の場合は,行番号が表示されているかどうかなので一目瞭然なのですが :set number? と打ってみれば number nonumber のどちらかの 表示が出るはずです

どんなオプションがあるのか

もちろん,他にも数多くのオプションがあります. どれくらい種類があるのかを見るためには
:set all と打ちます. 一時的にすべてのオプションの設定状況を 一覧表示します. かなりたくさんの種類のオプションがあることがわかると 思います. さっき説明した number / nonumbertabstophelpfile も探すとあるはずです

number のように「"ON"か"OFF"の状態しかとらないオプション」は,設定内容を 「オプション名」あるいは「noオプション名」の形で表示するので 先頭に no がついているものは,「先頭のnoを取った名前のオプションが 解除されているという意味」です

オプションの意味を知るには

さて,設定できるオプションの名前も分かったら,あとはそれぞれのオプションの意味 さえ分かれば,自分の好みに設定できるわけです. どうやって調べましょうか

まず,考えられるのは, 付属のREADMEやマニュアルなどの文章を読むこと です. ここのWebページでも,いろいろなオプションの解説をしているので参考になると 思います

または :help で表示されるオンラインヘルプに 各種のオプションの 簡単な説明が書いてあります. まぁ最初のうちはあまり細かい部分に凝らなくても 特に問題は無いとは思います

初期設定ファイルとは

せっかく各種のオプションを一生懸命意味を調べたりしながら設定しても JVimを終了させれば, すべてが水の泡です. でも,「起動するたびに設定をやりな おす」なんて,したくないですよね. そこで「初期設定ファイル」の登場となるわけです

JVimは起動時に,自分のホームディレクトリの下の .vimrc という名前のファイル または .exrc という名前のファイルを自動的に読み込んで 初期設定として使います. .vimrc .exrc の両方あった場合は, .vimrc だけを使い, .exrc は無視されます. とりあえず すでに存在しているかどうか確認してみて下さい. すでにあるならそれを 自分の好みに応じて編集すればよいし, なければ新しい .vimrc ファイルを新規に書けばよいのです. 以下に書き方を説明します

たとえば .vimrc ファイルの中身が

set number

という一行だけだったとします.([注] "set"の行頭には : は書きません)

すると,JVimが起動した時にこれを読み込んで オプション"number"を 自動的に設定した状態で起動 します

この要領で,もっといろんな設定を盛り込んだ例が…以下の"set"で始まる5行です

set noerrorbells ignorecase ruler nobackup notitle
set expandtab smarttab autoindent smartindent
set nonumber fepctrl hidden
set fepkey=@ backspace=2 tabstop=4
set tags=~/.vimtags

このように,先頭に set と書いてあれば, 空白で区切って複数のオプション指定を まとめて書けます. 初期設定ファイルを作れば,設定しておきたいオプションが どんなに多くても自動的に設定されます

変更されたオプションを知るには

どのオプションも,「何も指定しない場合に」どの設定値になっているのかが 決められていて,これを「 デフォルト の状態」などと言います. 例えば, number オプションの場合は, 何も設定しなければ「行番号表示しない」 ということは"number"のデフォルトは"nonumber"だというわけです. また "number"を設定したということは,デフォルトの状態から変更されたという ことでもあります

このような「意図的に変更されたオプション」だけを表示させるには
:set とだけ打つと表示されます. 「何を設定ファイルに書けばよいか」の 参考になることでしょう

また,デフォルトから変更されているオプション設定を自動的に設定ファイル形式で 書き出す機能もあります
:mkvimrc というコマンドを打つだけで, 現在変更のある設定内容を すべて .vimrc という名前のファイルを作って自動的に書き出してくれます
なお,このコマンドを実行させる時は,あらかじめ .vimrc というファイルが存在して いないことを確認しておいて下さい. もしすでに同名のファイルが存在していた 場合は,このコマンドは失敗(何もしない)します

オプションの短縮名

ほとんどのオプションは,正式な名前の他に 省略名 または 短縮名 と 呼ばれる「短い名前」を持っています. たとえば
:set number と打つかわりに :set nu としても同じです. nu は"number"の省略名だということです. ついでに, "set"というコマンドも se と省略できるので

:se nu

と打っても同じなのです

短縮名は,JVimを起動中に気楽に設定を変えたい時に便利なのですが, 省略された 名前なので覚えにくく,忘れやすいという欠点もあります. 設定ファイルには, 長くても分かりやすい名前のほうが見やすいと思うので 長い名前で書いたほうが良いと思います. なお, 短縮名は オンラインヘルプに 書いてあるので,簡単に調べることが可能です

設定ファイルを読み込みなおす

新しく設定ファイルを手書きで変更などをした場合は, 設定ファイルを読みなおさな いと,新しい内容は有効になりません. 一度起動しなおさなくても

:source ~/.exrc

などとすれば読み直せます. 省略して :so ~/.exrc と 書いても同様です

コメントも書ける

設定ファイルには,後で読みやすいように「コメント」を書けます. コメント用文字 としては珍しく,JVimでは, " (引用符)以降, 行末までをコメントと して無視するので, 任意のメモなどを書いておくことができます. たとえば

set number " 行番号を表示させる

などとメモが書けるわけです

設定項目の例

各種のオプションの説明は, 別文章にまとめてありますので,そちらを参照して 下さい. また,初期設定ファイルの実例もありますので参考にどうぞ

ちなみに,JVim付属の "README"ファイル にも,初期設定ファイルの実例が 載っています.あと,世界中のWebページなどにも,自分のViやVimの設定ファイルを 公開している人もいますので調べて見ると勉強になると思います

拡張子別に設定ファイルを使い分けられる

:set fexrc として, fexrc オプションが設定されている場合には, ファイルの読み込み時に,その読み込むファイルの 拡張子に応じて,別々の 設定ファイルを使える ようになります

例えば,"test.c" という 拡張子が".c"となっているファイル を読み込んだ時に, 通常の設定ファイル".vimrc"の中に fexrc を設定する記述があった場合には ~/.vimrc.c という名前のファイルを探しに行き, あればこれも追加設定として 読み込みます. 要するに

~/.vimrc.(拡張子)

という名前のファイルを拡張子ごとの設定ファイルとして認識するということです
拡張子ごとのファイルは,通常の設定ファイルを読み込んだ後で 重ねて読み込まれ ます ので, 通常の設定との差分だけを書いておけばよいのです

もし拡張子ごとのファイルが見付からなければ,通常の挙動と同じで,通常の設定 ファイルだけを読み込みますので, 挙動を変更したい拡張子に対してだけ 差分の設定ファイルを用意しておくだけでよいのです

その他の設定項目

設定ファイルを自動書き出しさせたり,他人の初期設定を見ると分かると思いますが 初期設定できる項目は "set"コマンド以外にもいろいろなものが書けるのです
その中でも主に map ab といった機能を設定ファイルに入れておく人が多い ようです. これらのコマンドについては,別文章で解説します


前項目, 「文字のコピーや移動の基本」へ

目次へ

次項目, 「挿入モード時のコマンド」へ