移動系
w次の単語に移動
b前の単語に移動
fマッチする文字に移動 ;次のマッチに移動,で戻る
gg先頭の行に移動
G最終行に移動
0行の先頭へ(インデント無視して先頭へ)
^行の先頭へ
$行の末尾へ
+下の行の先頭へ
-上の行の先頭へ
zzカーソルの位置をウィンドウの中心に移
z<CR>カーソルの位置をウインドウの最上部に移動
削除系
daw単語を削除
ciw, caw単語を削除後インサートモード
dd行を削除
d0, d$行頭、行末までを削除
df<文字>カーソル位置から<文字>の位置まで削除
C行を削除後インサートモード
:ndn行目に移動して削除
:{start},{end}dアドレス範囲で行を削除
挿入系
I行の先頭に挿入
i文字の前に挿入
A行の最後に挿入
a文字の後ろに挿入
ea単語の末尾に挿入
gea前の単語の末尾に挿入
di"delete inside ""(di', di( など応用可能)
ci"""の中身を消して挿入
ca"""ごと消して挿入
ビジュアルモード
<C-v>短径選択 2l3j2×3で選択
vaw,viw単語をビジュアル選択
va"""ごとビジュアル選択
検索系
fマッチする文字に移動 ;次のマッチに移動 ,で戻れる
*, #下、上方向に検索
g*, g#部分一致検索
補完系
<C-p>,<C-n>補完
<C-d>補完(コマンドラインモードにて)
置換系
:%s/置換したい文字/置換後の文字/g全置換
コピー&ペースト
:6t.6行目を現在行の下にコピー
:t6現在行を6行目の下にコピー
t.現在行をコピー(ノーマルモードのyyp)
yw単語をヤンク
ファイル移動系
gfカーソル位置に記述されているファイル名にジャンプ
<C-w>f画面を水平分割してジャンプ
<C-o>/<C-i>戻る/進む
:vimgrep /hoge/ **hogeを含むファイルを検索
<C-]>宣言元にジャンプ
ディレクトリ操作
:cd %:hカレントディレクトリをファイルのディレクトリに変更する
ファイルの検索
:vim hoge **/* | cwvimを開いた階層以下のファイルをhogeという文字列で検索
タブ機能
:tabnew新規タブを作成
gt, gT次のタブ、前のタブ
Case
確認しながら置換したいとき
*で検索
cwで削除してインサートモードに入り、入力
nで次のマッチへ(Nで戻る)
.で繰り返し
その他
画面分割
:vsp {file}, <C-w>v縦に分割
<C-w>w>フォーカスを変更
<C-w><現在のウィンドウの横幅を1文字分狭くする
:clo閉じる
<C-w>x分割した画面の入れ替え
<C-w>H, <C-w>K横→縦、縦→横
バッファ関連
:lsバッファを表示
:b バッファの番号開く
json綺麗
:%!jq '.'
vim-surround
ysiw'''You surround inside word
cs'"'を"に変更Change surround' "
ds"Delete surround"
S<div class="important">Vで選択した行を