Vim
https://gyazo.com/37ddb540153f946decc961571dcf92f1
開発者はBram Moolenaar
https://en.wikipedia.org/wiki/Bram_Moolenaar
Vimのmark
Vimのmacro
theme
https://vimcolorschemes.com/
:rと:w
https://zenn.dev/skanehira/articles/2020-10-05-vim-about-rw
HTMLタグに対するsurround.vim ref
wordを<head></head>で囲む
yswthead>
code:html
<head>word</head>
ブロックを<head></head>で囲む
vで選択してS<head>
例えば以下の場合
code:tsx
<Button
title="hoge"
onClick={()=>console.log("hoge")}
/>
vapS<head>とすると
code: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)といった動作
http://tyru.hatenablog.com/entry/20130902/practical_vim_review
g系のやつ
https://h-miyako.hatenablog.com/entry/2015/01/31/185620
知らんかったやつも多いけど、いつ使うねんみたいなのも多いmrsekut.icon
g*
*と同じ
ただし単語区切りしない
例えば、「app」上で実行した場合、「application」とかもヒットする
gJ
Jと同じだが、空白文字を挿入せずに行を連結
これは便利かもねmrsekut.icon
gu
guiwとかでカーソル下の単語を小文字にする
これとか、viwuの方が覚えること少なくて良くない?と思うmrsekut.icon
gq
選択している部分のテキストを整形する
整形されているのはわかるが、どういうロジックで整形しているのかわからないmrsekut.icon
コードリーディングしているときに、コメントが数行に渡っている時に使うと便利?
コメント開始の--とか//とかは良い感じに無視してくれるっぽい
g-, g+
undo, redo
u, <C-r>より高機能らしいがどう違うのかわからない
vscode-vimは対応してないっぽい
gi
iと同様だが、前回挿入モードを抜けた箇所から挿入モードに入る
良さそう、これを頭に入れて動けばちょっと効率良くなりそうmrsekut.icon
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のレジスタを使う - Qiita
https://qiita.com/jnchito/items/57ffda5712636a9a1e62
https://qiita.com/y-mattun/items/45776b7e1942edb2f727
http://rbtnn.hateblo.jp/entry/2019/03/24/054919
vim本体のコード
vimium
Vimを学ぶ
https://vimate.jp/lessons
Vimの歴史
全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE
https://mattn.kaoriya.net/software/vim/20191231001537.htm
https://engineering.mercari.com/blog/entry/mercari_codecast_1/