Vimの操作
vim のプラグインは無しで、 VSCode の vim 拡張でできることに絞った。
モードについて
- ノーマルモード
- ビジュアルモード
- インサートモード
- コマンドラインモード
ノーマルモード
移動
| コマンド | 動作 |
|---|---|
| k | 上に移動 |
| j | 下に移動 |
| h | 左に移動 |
| l | 右に移動 |
| w | 次の単語の先頭に移動 |
| b | 前の単語の戦闘に移動 |
| e | 単語の末尾に移動 |
| ge | 前の単語の末尾に移動 |
| f{char} | 次の {char} まで移動 |
| <shift>f{char} | 前の {char} まで移動 |
| ; | 次の {char} まで移動 |
| , | 前の {char} まで移動 |
| 0 | 行頭へ移動 |
| $ | 行末へ移動 |
| <shift>f | ページ送り |
| <shift>b | ページ戻し |
| zz | カーソルの行を中央にする |
| % | 体操する文字 ( 括弧 ) へ移動 |
| gg | ファイル先頭へ移動 |
| <shift>g | ファイル末尾へ移動 |
| {count}<shift>g | { count } 行目に移動 |
削除
| コマンド | 動作 |
|---|---|
| x | 文字を削除 |
| dd | カーソルのある行をすべて削除 |
| <shift>d | カーソルの位置から行の末尾までを削除 |
| db | カーソルの位置から単語の先頭まで削除 |
| de | カーソルの位置から単語の末尾まで削除 |
| daw | カーソルの位置の単語をスペース含めて削除 |
| diw | カーソルの位置の単語をスペース含めず削除 |
ヤンク/プット
| コマンド | 動作 |
|---|---|
| yy | 行をコピー |
| yiw | カーソルの単語をコピー |
| p | ヤンクしているものをペースト |
検索
| コマンド | 動作 |
|---|---|
| /{word} | {word} を検索 ( ハイライトにする ) |
| n | 次の {word} へ移動 |
| N | 前の {word} へ移動 |
| * | カーソルの下の単語をハイライト |
ビジュアルモード
| コマンド | 動作 |
|---|---|
| v | ビジュアルモードを有効にする |
| <shift>v | 行指向でビジュアルモードを有効にする |
| gv | 前回のビジュアルモードを再度有効にする |
| o | ( ビジュアルモードで ) 端点に移動 |
| <shift>v | 矩形選択 |
| u | ( ビジュアルモードで ) 文字を小文字に変換する |
| <shift>u | ( ビジュアルモードで ) 文字を大文字に変換する |
インサートモード
| コマンド | 動作 |
|---|---|
| o | 下の行に改行を入れてからインサートモードを有効にする |
| <shift>o | 上の行に改行を入れてからインサートモードを有効にする |
| ci' | 「'」で囲まれた文字を削除してからインサートモードを有効にする |
| ci" | 「"」で囲まれた文字を削除してからインサートモードを有効にする |
| ca' | 「'」を含む囲まれた文字を削除してからインサートモードを有効にする |
| ca" | 「"」を含む囲まれた文字を削除してからインサートモードを有効にする |
| <shift>i | 行頭へ移動してからインサートモードを有効にする |
| <shift>a | 行末へ移動してからインサートモードを有効にする |
| s | カーソルの位置の文字を削除してからインサートモードを有効にする |
| r{char} | カーソルの位置の単語を{char}に置換する |
| <ctrl>o | ノーマルモードのコマンドを実行する |
| <shift>j | ( ノーマルモードで ) 下の行を現在の行の末尾に結合する |
コマンドラインモード
| コマンド | 動作 |
|---|---|
| :w | 保存 |
| :q | ファイルを閉じる |
| :tabnew | タブを開く |
| gt or gT | タブを移動 |
| :sp | 画面を横に分割 |
| :vsp | 画面を縦に分割 |
| <ctrl>w{h,j,k,l} | ウィンドウを移動 |
| :noh | ハイライトを解除 |
| :sort | ( ビジュアルモードで ) ソートする |
繰り返し
| コマンド | 動作 |
|---|---|
| . | 直前の動作を繰り返す |
| u | 直前の動作を取り消す |
レジスタ
"{ register } で指定。
無名レジスタ
何も指定しなければ " に格納される。
ブラックホールレジスタ
_ に格納する。取り出しはできない。
削除と組み合わせることでレジスタに残さず文字を削除できる。
レジスタの中身を見る
コマンドモードで :reg
マクロ
q{ register } から q までの動作をキャプチャする。
@{ register } でキャプチャした動作を再生
@@ 直前のマクロを再実行
{ count }@{ register } { count } 回マクロを実行。