Edited at

Vim 設定ガイド

More than 5 years have passed since last update.

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



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

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