ritarock’s blog

プログラミングとか映画とか趣味とか

vimをちゃんとやる

\v

/\v で検索することで正規表現エンジンの振る舞いが切り替わる

\x

文字集合 [0-9a-fA-F] を \x で置き換える

\V

nomagic検索に切り替える
この場合、バックスラッシュだけが意味を持つ

/\v<検索したい単語>

単語単位で検索できる

<C-r>レジスタ

レジスタに検索したい文字をヤンクさせてから
/\v<C-r>レジスタ

?

前方一致検索

vimをちゃんとやる

@@

直前に呼び出されたマクロを繰り返す

~

カーソル下の文字を大文字/小文字に変換する

マクロにコマンドを追記する

qa で記録したマクロならば、qAでレジスタaの内容に追記する

:put

:put {レジスタ} でレジスタ内容を挿入する 内容を編集してレジスタに格納することで新しいマクロとして使用可能

vimをちゃんとやる

"{register}

"ayiw でレジスタaに単語をヤンク "ap でレジスタaの単語をプット

"0p

ヤンクレジスタは次のヤンクまで内容が留まる

:reg

レジスタの中身を見る

"_

ブラックホールレジスタ
消去専用レジスタ
"_diw で単語をレジスタに残さずに消去できる

"+

クリップボードのヤンクをプットできる

ビジュアルモードの選択範囲を置換

ビジュアルモードで置換対象を選択してヤンクヤンク内容をプット

インサートモードで<C-r>0

ヤンク内容をプット

vimをちゃんとやる

H, M, L

画面の先頭/真ん中/末尾にジャンプ

g;

直前の変更位置までジャンプして戻る

m {letter}

バッファにローカルなマークを作る
{letter}を大文字にすることでグローバルマークにできる

` {letter}

マークにジャンプする

vimをちゃんとやる

:tabedit {filename}

{filename}のタブを作る

<C-w>T

アクティブなウィンドウを独立したタブに移動する

:tabc[lose]

アクティブなタブを閉じる

@:

直前のコマンドライン入力を繰り返す

タブの移動

覚え方は「"g"oto "t"ab」

  • {N}gt
  • gt
  • gT

以下の通り

  • {N}番目のタブに移動
  • 次のタブに移動
  • 前のタブに移動

vimをちゃんとやる

;

fコマンドで実行した直前の検索を繰り返す

1文字ずつ置換する

  1. 置換対象の文字の上で *
  2. cw"文字入力"< ESC >
  3. n
  4. .

やってることは以下の通り

  1. 置換対象文字のハイライト
  2. 1文字置換
  3. 次の文字へ移動
  4. 変更を繰り返す

daw

覚え方は「delete a word 」
カーソルのある単語を削除

インサートモードで <C-w>

直前の単語まで削除

インサートモードで <C-u>

行頭まで削除

gv

直前のビジュアル選択範囲を再度選択

ビュジュアルモードで o

端点に移動

表のカラムの下の行に線を入れる

  1. 項目(先頭)行でyyp
  2. Vr-

やってることは以下の通り

  1. 項目(先頭)行の末尾までコピーして下の行に貼り付け
  2. 1で貼り付けた行末まで"-"に置換

選択した行末に ; を追加

  1. <C-v>でビジュアルブロックにする行を選択
  2. $
  3. A;
  4. < ESC >

やってることは以下の通り

  1. <C-v>でビジュアルブロックにする行を選択
  2. ビジュアルブロックにされた行の行末までビジュアルブロックにする
  3. 末尾に ; を挿入
  4. < ESC >

選択した行末に ; を追加②

範囲が広い時はこっちの方がよい(今の行から最後まで等) ノーマルモードでのコマンドを実行する :normarl を使う

  1. A; < ESC >
  2. jVG
  3. :'<,'>normal .

やってることは以下の通り

  1. カーソルのある行末に ; を追加
  2. 下の行に移動して、最後の行まで行選択
  3. 選択されている行に対して . コマンド(行末に ; を挿入)を繰り返す

<C-r><C-w>

* で単語をハイライト表示したとき、<C-r><C-w>でハイライトした単語をコマンドに入力できる