Vim 設定ガイド

  • 176
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Vimは設定を変更することで、更に快適にファイルの編集ができるようになる。

関連する拙稿

設定ファイル?

要するに、vimの起動時にexモードのコマンドを実行してくれるもの。
設定ファイルというよりは、.bashrcなどのファイルと同様の性質のもの。
まずは、設定ファイルを置く場所を確認する。
vimがインストールされているなら

$ vim --version

と入力すると、こんな感じの情報が出てくる。

システム vimrc: "$VIM/vimrc"
    ユーザ vimrc: "$HOME/.vimrc"
 第2ユーザ vimrc: "~/.vim/vimrc"
     ユーザ exrc: "$HOME/.exrc"
   省略時の $VIM: "/usr/share/vim"

\$HOMEや~の解釈はログインユーザによって変わるので、私はrootでvimを起動した時などに設定が反映されるように、"\$VIM/vimrc"に設定ファイルを置いている。

$VIMの場所については、vimを起動した状態で

:echo $VIM

と入力すれば確認できる。

内容を見てみる

大抵の場合は、初期状態でもある程度の設定がされているか、コメントアウトしてある。(vimのコメントは、ダブルクォート)

Ubuntu13.10で確認できた初期設定を紹介するので、必要とあればアンコメントする。

vimrc
    if has("syntax")
      syntax on
    endif

    "set showcmd        " Show (partial) command in status line.
    "set showmatch      " Show matching brackets.
    "set ignorecase     " Do case insensitive matching
    "set smartcase      " Do smart case matching
    "set incsearch      " Incremental search
    "set autowrite      " Automatically save before commands like :next and :make
    "set hidden     " Hide buffers when they are abandoned
    "set mouse=a        " Enable mouse usage (all modes)

このあたりの設定は有効化してもいいだろう。

コメントに設定の内容も書いてあるので、詳細な解説は省略。

カスタマイズ

今回の本題。
まずは私が環境を作る度に設定している内容をそのまま。

vimrc
    set number
    set title
    set ambiwidth=double
    set tabstop=4
    set expandtab
    set shiftwidth=4
    set smartindent
    set list
    set listchars=tab-,trail:-,eol:↲,extends:»,precedes:«,nbsp:%
    set nrformats-=octal
    set hidden
    set history=50
    set virtualedit=block
    set whichwrap=b,s,[,],<,>
    set backspace=indent,eol,start
    set wildmenu

読んだだけではパッとわからなそうなものについての解説

項目名 内容
number 行番号の表示
title ターミナルのタイトルをセットする
e.g.) vimrc=(/usr/shere/vim...)
ambiwidth=double 文脈によって解釈が異なる全角文字の幅を、2に固定する
tabstop=4 タブ幅をスペース4つ分にする
expandtab tabを半角スペースで挿入する
shiftwidth=4 vimが自動で生成する(読み込み時など)tab幅をスペース4つ文にする
smartindent 改行時などに、自動でインデントを設定してくれる
list 空白文字の可視化
listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:% 可視化した空白文字の表示形式について。詳細な解説は、こちら
nrformats-=octal "0"で始まる数値を、8進数として扱わないようにする
hidden ファイルの保存をしていなくても、べつのファイルを開けるようにする
virtualedit=block 文字のないところにカーソル移動できるようにする
whichwrap=b,s,[,],<,> カーソルの回り込みができるようになる
(行末で→を押すと、次の行へ)
backspace=indent,eol,start バックスペースを、空白、行末、行頭でも使えるようにする

大雑把な解説なため、詳しく知りたい場合は適宜調べて欲しい。(いつか書くかもしれない)
後は、好みに合わせて設定していただきたい。

補足

  • 起動しているvim上で設定を切るには

    :set noXXXX

を入力すればいい。

  • smartindentについて

    これが有効化されていると、複数行のクリップボードからの貼付けがおかしくなる。

    :set paste

を入力してから貼り付けをすれば、問題なく貼り付けができる。

これらの設定をしておけば、結構高性能なエディタであると感じられるようになるはず。