Vi/Vimのtips

viを使う上でよく使うコマンド、設定をまとめた。




vi/vimのコマンド


コマンドモードへの切り替えはESCキーでコマンドモードになる。

よく使うコマンド(コマンドモードでの動作)

動作 コマンド
入力モードの切り替え(カーソル位置に入力) i
入力モードの切り替え(カーソル位置の後ろに入力) a
入力モードの切り替え(カーソルの下の行に入力) o
入力モードの切り替え(カーソルの上の行に入力) O
入力モードの切り替え(行末に入力) A
入力モードの切り替え(行頭に入力) I
コマンドモードへの切り替え esc
保存 :w
閉じる :q
保存して閉じる :wq
保存しないで閉じる :q!
カーソル位置の文字を削除 x
行削除 dd
カーソル行のコピー yy
カーソルの下の行に p
最終行に移動 G
先頭行に移動 1G
○行目に移動 ○G
単語検索 /(単語) (nで次の候補、Nで前の候補)

設定


以下は自分の設定。

" setting
"文字コードをUFT-8に設定
set fenc=utf-8
" バックアップファイルを作らない
set nobackup
" スワップファイルを作らない
set noswapfile
" 編集中のファイルが変更されたら自動で読み直す
set autoread
" バッファが編集中でもその他のファイルを開けるように
set hidden
" 入力中のコマンドをステータスに表示する
set showcmd


" 見た目系
" 行番号を表示
set number
" 現在の行を強調表示
set cursorline
" 現在の行を強調表示(縦)
"set cursorcolumn
" 行末の1文字先までカーソルを移動できるように
set virtualedit=onemore
" インデントはスマートインデント
set smartindent
" ビープ音を可視化
set visualbell
" 括弧入力時の対応する括弧を表示
set showmatch
" ステータスラインを常に表示
set laststatus=2
" コマンドラインの補完
set wildmode=list:longest
" 折り返し時に表示行単位での移動できるようにする
nnoremap j gj
nnoremap k gk
" シンタックスハイライトの有効化
syntax enable


" Tab系
" 不可視文字を可視化(タブが「▸-」と表示される)
"set list listchars=tab:\▸\-
" Tab文字を半角スペースにする
set expandtab
" 行頭以外のTab文字の表示幅(スペースいくつ分)
set tabstop=2
" 行頭でのTab文字の表示幅
set shiftwidth=2


" 検索系
" 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト表示
set hlsearch
" ESC連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>