MyDocs

# 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 } 回マクロを実行。