LoginSignup
303

More than 5 years have passed since last update.

Vim 設定ガイド

Last updated at Posted at 2014-07-14

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

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

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

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
303