Vim
theme
:r
と :w
HTMLタグに対するsurround.vim
refwordを <head></head>
で囲む
yswthead>
ブロックを <head></head>
で囲む
v
で選択して S<head>
例えば以下の場合
tsx<Button
title="hoge"
onClick={()=>console.log("hoge")}
/>
vapS<head>
とすると
tsx<head>
<Button
title="hoge"
onClick={()=>console.log("hoge")}
/>
</head>
となる
同様にして、挟んでるタグを消したいときは dst
で消える
changeも cs'<b>
とかで ''
が <b></b>
に変わる
gc
1行
gcc
で1行コメントアウト
gc2j
とかで2行コメントアウト
gC
ブロックのコメントアウト
gCi)
とかで ()
の中をコメントアウト
覚えたら消す
H
, M
, L
カーソルをウインドウ内の上/中/下に移動させる
ctrl-f
, ctrl-b
1画面分、上、下にスクロールする
2>>
2行に渡ってインデントを1つ増やします。
gn
前回の検索結果にジャンプしてから(gn)対象を削除してインサートモードに入る(c)といった動作
g系のやつ
知らんかったやつも多いけど、いつ使うねんみたいなのも多い

g*
*
と同じ
ただし単語区切りしない
例えば、「app」上で実行した場合、「application」とかもヒットする
gJ
J
と同じだが、空白文字を挿入せずに行を連結
これは便利かもね

gu
guiw
とかでカーソル下の単語を小文字にする
これとか、
viwu
の方が覚えること少なくて良くない?と思う

gq
選択している部分のテキストを整形する
整形されているのはわかるが、どういうロジックで整形しているのかわからない

コードリーディングしているときに、コメントが数行に渡っている時に使うと便利?
コメント開始の --
とか //
とかは良い感じに無視してくれるっぽい
g-
, g+
undo, redo
u
, <C-r>
より高機能らしいがどう違うのかわからない
vscode-vimは対応してないっぽい
gi
i
と同様だが、前回挿入モードを抜けた箇所から挿入モードに入る
良さそう、これを頭に入れて動けばちょっと効率良くなりそう

gv
前回の選択範囲を再選択する
インサートモード
ctrl-t
, ctrl-d
インデント、インデントの削除
ctrl-w
位置単語削除
ctrl-u
カーソルより前をすべて削除
ctrl-o
ノーマルモードに移って、コマンドを実行した後インターとモードに戻る
込められる弾丸は一発のやつ
レジスタ
普通に yiw
などでコピーしたものは無名レジスタに入る。
viwp
とかでペーストすると無名レジスタの内容が変わる
このときは viw"0p
とすると耐えたりする
レジスタ0
直前にヤンクしたテキストが格納される
ノーマルモード
"<名前:a-z><操作>
例えば "ayy
で a
というレジスタに一行コピーして登録する
"add
なら一行削除してをれをaレジスタに登録
"ap
で a
レジスタに登録していたものをペースト
インサートモード(vscodeでは使えない?)
ctrl-r
とすると、 "
が出てくるのでそこでレジスタ名(例えば a
)を打つとそこのレジスタに保存されていたものが表示される
コマンドモード
:registers
でレジスタ一覧の中身を確認できる
参考
vim本体のコード
Vimを学ぶ