読者です 読者をやめる 読者になる 読者になる

継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

20151003 学習まとめ

学習ノート Vim

このまとめでは、Vimチートシートをまとめます。

ノーマルモード

ファイル操作

アクション コマンド
ファイルを開き直す :e,:e!
ファイルを開く :e ファイル名
ウィンドウを消す :q,:q!
上書き保存 :w,:w!
上書き保存してウィンドウを消す :wq(もしくは:x,ZZ),:wq!
全て上書き保存して終了 :wqallm:wqall!
保存せずにウィンドウを消す ZQ

モード切り替え

アクション コマンド
インサートモード i
行頭でインサートモード I
カーソル直後でインサートモード a
行末でインサートモード A
行を追加してインサートモード o
上に行を追加してインサートモード O
ノーマルモード Esc

ウィンドウ操作

アクション コマンド
新しいウィンドウを開く :new ,:new ファイル名
新しいタブを開く :tabnew,:tabnew ファイル名
ウィンドウを分割してファイルを開く :split ファイル名
ウィンドウを横分割してファイルを開く :vsplit ファイル名
ウィンドウを隠す :hide
ウィンドウを閉じる :close
現在のウィンドウのみを表示する :only
ウィンドウの縦幅を広げる/狭める CTRL-w + / CTRL-w -
ウィンドウの横幅を広げる/狭める CTRL-w > / CTRL-w
1つ前のウィンドウに移動 CTRL-w w
上下左右のウィンドウに移動 CTRL-w k,CTRL-w w,CTRL-w H,CTRL-w l
近接したウィンドウと入れ替える CTRL-w r
上下左右のウィンドウと入れ替え CTRL-w K,CTRL-w J,CTRL-w H,CTRL-w L
ウィンドウを閉じる CTRL-w c
ウィンドウを消す CTRL-w q

バッファ操作

アクション コマンド
バッファ一覧 :ls
指定のバッファ :b バッファ番号
次のバッファ :bn
バッファを消す :bd
バッファを閉じる :bw

移動

アクション コマンド
上/下/左/右 k/j/h/l
ページアップ/ページダウン CTRL-u/CTRL-d
行頭/行末 0/$(^は最初の文字へ)
次の単語/前の単語 w/b(W/Bは空白区切りでジャンプ)
文字xが見つかるまで fx
文字xまで fx
逆方向で文字xまで Fx
(や{、[の対へ移動 %
先頭行へ移動 gg
最終行へ移動 G

検索

アクション コマンド
textを検索 /text
textを逆方向に検索 ?text
次を検索 n
逆方向に次を検索 N
カーソル下の単語を検索 *

置換

アクション コマンド
行内で置換(fooをbarに変換) :s/foo/bar/
全置換(fooをbarに置換) :s/foo/bar/g

編集

アクション コマンド
カーソル下の文字をxで置換 rx
行を連結 J
カーソル下の文字を削除 x
大文字/小文字に変更 ~、gU/guのあとのモーションを指定
行をヤンク yy、Y
貼り付け p
前方向に貼り付け P
削除 dの後にモーションを指定
行を削除 dd
カーソル位置から行末までを削除 D
指定の部分を変更 cの後にモーションを指定
インデント ==、選択して=
やりなおし u
繰り返し .

モーション

アクション コマンド
上/下/左/右 k/j/h/l
次の単語/前の単語 w/b(W/Bは空白区切りでジャンプ)
文字xが見つかるまで fx
行頭/行末 0/$(^は最初の文字へ)
文字xまで fx
逆方向で文字xまで Fx

ヴィジュアル操作

アクション コマンド
領域選択 v
矩形選択 CTRL-v
行選択 V
全ての行を選択 ggVG

レジスタ

アクション コマンド
レジスタ一覧 :register
選択レジスタ「a」に格納 選択しながら"ay
レジスタ「a」をペースト "@a

マクロ

アクション コマンド
レジスタaに対してマクロ登録を開始 qa
マクロ登録を終了 q
レジスタaのマクロを再生 @a

テキストオブジェクト

以下はv(選択)、c(変更)、d(削除)などのオペレータに続いてタイプすることで作用する。

アクション コマンド
単語 iw、awは終端の空白を含む
空白区切りの単語 iW,aWは終端の空白を含む
(から) aB,a(,a)、内側はib,i(,i)
{から} aB,a{,a}、内側はiB,i{,i}
[から] a[,a]、内側はi[,i]
<から> a<,a>、内側はi<,i>
からのようなタグブロック at,内側はit
クォート a",a',a`,内側はi",i',i`
is,asは終端の空白を含む
段落 ip,apは終端の空白を含む

インサートモード

挿入操作

アクション コマンド
レジスタaの中身を貼り付け CTRL-r a(CTRL-r +でクリップボードからペースト)
特殊文字を挿入 CTRL-v CTRL-aで^Aを挿入
特殊文字を挿入(コード指定) CTRL-v 005で^Eを挿入

補完

アクション コマンド
前の候補(もしくはバッファない補完) CTRL-p
次の候補(もしくはバッファない補完) CTRL-n
ファイル内の行 CTRL-x CTRL-l
ファイル内のキーワード CTRL-x CTRL-n
ファイル内のincludeファイル CTRL-x CTRL-i
タグ CTRL-x CTRL-J
ファイル名 CTRL-x CTRL-f
ユーザ定義補完 CRTL-x CTRL-u
omni補完 CTRL-x CTRL-o
スペル修正 CTRL-x CTRL-s

コマンドモード

挿入操作

アクション コマンド
レジスタaの中身を貼り付け CTRL-r a(CTRL-r +でクリップボードからペースト)
編集中カーソル下の単語 CTRL-v CTRL-w(CTRL-r CTRL-aで空白区切りの単語)
編集中カーソル下のファイル名 CTRL-v 005で^Eを挿入

特別文字

アクション コマンド
現在のファイル名 %
編集中の別のファイル名 #
N番目の別のファイル #N
すべての引数(オプション以外、空白区切り) ##