<Vim, Cheatsheet> Vim かんぺ。

ちと忘れがちのものまとめておこう。

移動 motion

gm          "表示されている画面の真ん中にジャンプ
25%         "ファイル全体の25%位置にある行に移動。

http://vim-jp.org/vimdoc-ja/motion.html

ジャンプ jump-motion

CTRL+O      "ジャンプしてきた元の古いカーソル位置に戻る(移動)。
CTRL+I      "CTRL+Oの逆に移動。
:ju[mps]    "ジャンプリスト表示

http://vim-jp.org/vimdoc-ja/motion.html#jump-motions

g;          "最後の変更箇所へ移動
g,          "g;の逆の移動。

http://vim-jp.org/vimdoc-ja/motion.html#change-list-jumps

囲む surround

ds'         " d(elete)s(urrounding)'
di'         " d(elete)i(nside of)'

cs'"        " c(hange)s(urrounding)'(with)"
ci'         " c(hange)i(nside of)'

S'          " S(urrounded by visual mode with)'
vawS'       " v(isual)aw(ord)S(urround)(with)'

yss'        " y(ank)s(urround)s(entence with)'
ysiw'       " y(ank)s(urround)i(nner)w(ord with)'

http://vim-jp.org/vimdoc-ja/motion.html#object-select

https://github.com/tpope/vim-surround

繰り返しコマンド実行 repeating command

:g/hage/norm gJ   " g(パターンにマッチした行でコマンド実行) > /hage/とマッチ > gJ(空白無で2行にわたる行を連結) 
:g/^/m 0          " g(パターンにマッチした行でコマンド実行) > 行を逆順に並べ替える
:%g/^[0-9]/d      " 先頭が数字の行を削除。 %(全体選択) > g(パターンにマッチした行でコマンド実行) > d(削除)
:%s/\s\+$//       " 行末の空白を取り除く。 %(全体選択) > s(置換) > \s(空白メタ) > +(複数回マッチ) > $(行末マッチ)
:v/\S/d           " 空白行を消す。 v(パターンにマッチしない行でコマンド実行) > \S(空白以外メタ) > d(削除)

http://vim-jp.org/vimdoc-ja/various.html#:normal-range

http://vim-jp.org/vimdoc-ja/repeat.html#repeating

http://vim-jp.org/vimdoc-ja/usr_12.html

EXコマンド
http://vim-jp.org/vimdoc-ja/vimindex.html#ex-cmd-index

文字クラス(メタ文字)
http://vim-jp.org/vimdoc-ja/pattern.html#/character-classes

正規表現 regexp pattern

http://vim-jp.org/vimdoc-ja/pattern.html#pattern-overview