viを使う上でよく使うコマンド、設定をまとめた。
コマンドモードへの切り替えは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>