generated at
Vim

開発者はBram Moolenaar












theme


:r :w

HTMLタグに対するsurround.vim ref
wordを <head></head> で囲む
yswthead>
html
<head>word</head>
ブロックを <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> に変わる

vim-commentary ref
gc
1行
gcc で1行コメントアウト
gc2j とかで2行コメントアウト
gC
ブロックのコメントアウト
gCi) とかで () の中をコメントアウト


覚えたら消す
H , M , L
カーソルをウインドウ内の上/中/下に移動させる
ctrl-f , ctrl-b
1画面分、上、下にスクロールする
2>>
2行に渡ってインデントを1つ増やします。
gn
前回の検索結果にジャンプしてから(gn)対象を削除してインサートモードに入る(c)といった動作



g系のやつ
知らんかったやつも多いけど、いつ使うねんみたいなのも多いmrsekut
g*
* と同じ
ただし単語区切りしない
例えば、「app」上で実行した場合、「application」とかもヒットする
gJ
J と同じだが、空白文字を挿入せずに行を連結
これは便利かもねmrsekut
gu
guiw とかでカーソル下の単語を小文字にする
これとか、 viwu の方が覚えること少なくて良くない?と思うmrsekut
gq
選択している部分のテキストを整形する
整形されているのはわかるが、どういうロジックで整形しているのかわからないmrsekut
コードリーディングしているときに、コメントが数行に渡っている時に使うと便利?
コメント開始の -- とか // とかは良い感じに無視してくれるっぽい
g- , g+
undo, redo
u , <C-r> より高機能らしいがどう違うのかわからない
vscode-vimは対応してないっぽい
gi
i と同様だが、前回挿入モードを抜けた箇所から挿入モードに入る
良さそう、これを頭に入れて動けばちょっと効率良くなりそうmrsekut
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を学ぶ