vim チートシート(よく使うものだけ)
個人的によく使うコマンドのメモ
設定
設定ファイルの場所
- 自分用 : ~/.vimrc
- ユーザー共通 : /usr/share/vim/vimrc など
オススメ設定
" tab幅set tabstop=4
set shiftwidth=4
" 行番号表示set number
" 行頭, 行末を越えて移動set whichwrap=b,s,[,],<,>
" バッグスペースで改行削除set backspace=indent,eol,start
" 全角文字の設定 set ambiwidth=double
コマンド
ファイル操作系
コマンド 意味 :q
:q!ファイルを閉じる
!をつけると、変更を破棄して強制的に閉じる:w
:w!保存する
!をつけると、読み込み専用ファイルでも強制的に保存してしまう
(root権限で書き込める?):wq
:wq!保存してファイルを閉じる
!をつけると、強制的に保存して閉じられる
モード変更系
コマンド 意味 i, I 編集モードににする
iはカーソルの前に挿入
Iは行頭に挿入a, A 編集モードにする
aはカーソルのあとに挿入
Aは行末に挿入o, O 編集モードにする
行を追加して挿入
oは次の行に追加する
Oは現在行に追加するESC 編集モードから抜ける v ビジュアルモード。
任意の範囲をコピーしたいときなど。
→ビジュアルモード中の操作は別項目にまとめる<CTRL+v> 矩形選択のビジュアルモード
→矩形選択は別項目にまとめる
編集系
コマンド 意味 u やり直し(undo) <CTRL+r> やり直しを戻す(redo) x カーソル位置を一文字切り取り D カーソル位置から後ろを切り取り yy, Y カーソル行をコピー(ヤンク) dd カーソル行を切り取り p
P張り付け。ペースト
pはカーソルの後ろに張り付け
Pはカーソル位置に張り付けr(文字) カーソル位置にある文字を指定した文字で上書きする
設定ファイルのパラメーターを変える時などに便利
ビジュアルモード
コマンド 意味 v ビジュアルモードに入る
カーソルで範囲選択できるようになるy 文字列選択した範囲をコピー(ヤンク)する u, U uは選択範囲を小文字にする
Uは選択範囲を大文字にするESC ビジュアルモードから抜ける
矩形選択
コマンド 意味 <CTRL+v> 矩形選択モードに入る d 削除 I 選択範囲の先頭に挿入モード A 選択範囲の後に挿入モード s, c 矩形選択範囲を削除して挿入モードに入る
カーソル移動系
コマンド 意味 ←, h
↓, j
↑, k
→, l一文字(一行)だけ移動 数字↑
数字↓
数字→
数字←数式分だけ移動 0 (ゼロ)
^行頭に移動
^は空白, tabが行頭にある場合は文字の先頭に移動$ 行末に移動 + 次の行の先頭に移動 - 上の行の先頭に移動 gg ファイルの先頭に移動 G ファイルの末尾に移動 :数字
数字G指定した行に移動 w
W次の単語に移動
大文字(W)にすると"."を単語 の区切りとして扱わないe
E次の単語に移動(単語の最後)
大文字(E)にすると"."を単語 の区切りとして扱わないb
B次の単語に移動(単語の先頭)
大文字(B)にすると"."を単語 の区切りとして扱わないge 前の単語に移動 % 対応する括弧に移動 <CTRL+b> 1画面上へ移動 <CTRL+f> 1画面下へ移動 <CTRL+u> 半画面上へ移動 <CTRL+d> 半画面下へ移動
検索系
文字列検索
一文字検索
コマンド 意味 f(文字) カーソルより後ろの指定文字に移動。検索範囲はカーソル行のみ F(文字) カーソルより前の指定文字に移動。検索範囲はカーソル行のみ ; 次の検索文字 , 前の検索文字
置換
基本コマンド
:(検索対象)s/検索文字列/置換文字列/(オプション)
検索対象 意味 (指定なし) 検索対象はカーソル行のみ % 検索対象はファイル全体 ,$ 検索対象はカーソル行以降 (数字1),(数字2) 検索対象は(数字1)行から(数字2)行まで
オプション 意味 g ヒット文字列をすべて置換する c ヒット文字列ごとに確認しながら置換する
例
タブ
コマンド 意味 :tabe
:tabedit新しいタブを開く :tabe ファイル名
:tabedit ファイル名指定したファイルを新規タブで開く :tabc
:tabclose現在のタブを閉じる :tabn
:tabnext
gt次(右)のタブに移動 :tabp
:tabprevious
gT前(左)のタブに移動 :tabn数字 数字で指定したタブに移動
左のタブから順に1,2,3,…となる。
画面分割
コマンド 意味 :vs 縦に分割する。
新しい分割ウインドウには現在のファイルを表示する:vs ファイル名 縦に分割する。
新しい分割ウインドウには指定したファイルを表示する:sp 横に分割する。
新しい分割ウインドウには現在のファイルを表示する。:sp ファイル名 横に分割する。
新しい分割ウインドウには指定したファイルを表示する。<CTRL+w> c 現在のウインドウを閉じる <CTRL+w> w 次のウインドウへ移動 <CTRL+w> > 現在のウインドウの幅を1広げる <CTRL+w> < 現在のウインドウの幅を1狭める
整形
コマンド 意味 > 右へインデント < 左へインデント
マクロ
コマンド 意味 q[任意の文字] マクロ記録開始
記録したマクロは[任意の文字]に関連付けられるq マクロ記録終了 @[任意の文字]
[数字]@[任意の文字]記録したマクロを実行する
@の前に数字をつけると指定した数字の分だけ繰り返す@@
[数字]@@直前に実行したマクロを実行する
@の前に数字をつけると指定した数字の分だけ繰り返す:reg
:reg [任意の文字]登録したマクロを表示する
regの後に[任意の文字]をつけるとその文字に対応するマクロだけを表示する
その他