Dyuichi Blog

Vimの操作方法メモ

1. モードについて

  • ノーマルモード: 移動やテキストの変更など、基本的なコマンドを実行するモードです。
  • インサートモード: テキストの入力を行うモードです。
  • ビジュアルモード: テキストを選択するモードです。
  • コマンドラインモード: コマンドを入力して実行するモードです。

2. ノーマルモード

移動
  • h : 左に移動
    • H : 今見えている場所の先頭にカーソル移動
  • j : 下に移動
    • J : 今見えている場所の最終行の先頭にカーソル移動
  • k : 上に移動
  • l : 右に移動
  • w : 次の単語へ移動
    • 2w のように手前に数字を付けることで単語数を指定可能
  • b : 前の単語へ移動
    • 2b のように手前に数字を付けることで単語数を指定可能
  • 0 : 行の先頭に移動
  • $ : 行の末尾に移動
  • Ctrl + u : Page Up
  • Ctrl + d : Page Down
削除
  • dw : カーソル位置後方の単語を削除
    • 次の単語手前のスペースも削除
    • 移動の時と同様,d2w のようにして単語数を指定可能
  • de : カーソル位置後方の単語を削除
    • 次の単語手前のスペースは削除しない
  • d$ or D : カーソル位置後方の行を削除
  • dd : 行を丸ごと削除
    • 2dd のようにして行数を指定可能
検索
  • /[検索キーワード] : 文字列を前方検索
    • n : 次の検索一致場所に飛ぶ
    • N : 前の検索一致場所に飛ぶ
    • /[検索キーワード]\c : 大文字小文字の区別なく検索
  • ?[検索キーワード] : 文字列を後方検索
テキスト変更
  • x : カーソル位置の1文字を削除
  • r : カーソル位置の1文字を置換
  • R : カーソル位置から文字の置換を開始
  • u : 最後の操作をアンドゥ
  • Ctrl + r : アンドゥをリドゥ

3. インサートモード

  • i : ノーマルモードからインサートモードへ変更(カーソル位置で開始)
  • I : 行の先頭でインサートモードに入る
  • a : カーソルの次の位置からインサートモードに入る
  • A : 行の末尾でインサートモードに入る
  • ce : カーソル位置後方の単語を削除し,インサートモードに入る
  • c$ : カーソル位置後方の行を削除し,インサートモードに入る
  • o : 下に行を追加してインサートモードに入る
  • O : 上に行を追加してインサートモードに入る
  • Esc : インサートモードからノーマルモードへ戻る

4. ビジュアルモード

  • v : 文字単位での選択モードに入る
  • V : 行単位での選択モードに入る
  • Ctrl + v : 矩形選択モードに入る
  • y : 選択範囲をコピー

5. コマンドラインモード

Tab補完,Ctrl + d によるコマンド一覧表示が可能

  • : : ノーマルモードからコマンドラインモードに入る
  • :w : ファイルを保存
    • :w [ファイルパス] : 指定したファイルパスに保存
  • :q : Vimを終了
  • :wq : ファイルを保存して終了
  • :e [ファイルパス] : ファイルを開く
  • :![コマンド] : コマンド実行(例 : :!ls

6. テキスト編集の一例

  • コピー & ペースト
    • yw : 単語をコピー
    • yy : 行をコピー
    • p : ペースト
      • 直前に削除したものもペースト可能
  • カット & ペースト
    • dd : 行をカット
    • p : ペースト

7. その他の便利なキーバインド

  • gg : ファイルの先頭へ移動
  • G : ファイルの末尾へ移動
    • 100G のように指定することで,100行目に移動可能
  • Ctrl + g : ファイル名,ファイル内のカーソル位置(行数)が分かる
  • :s/old/new : カーソル位置以降で最初の「old」を「new」で置換
    • :s/old/new/g : カーソル位置の行内の全ての「old」を「new」で置換
    • :#,#s/old/new/g : #~#行内の全ての「old」を「new」で置換
    • :%s/old/new/g : ファイル内の全ての「old」を「new」で置換
    • :%s/old/new/gc : ファイル内の全ての「old」を探し,ひとつずつ「new」で置換するかの確認を行う
    • :%s/\Cold/new : 大文字,小文字を区別して置換
  • u : アンドゥ
  • Ctrl + r : リドゥ
  • % : (,[,{ にカーソルを合わせて実行すると,対応する),],}に飛ぶ(逆もしかり)

8. 練習

vimtutor

ターミナルで以下を実行すると,チュートリアルが始まる.とりあえずで操作感を掴むのにちょうどいい.ただし英語.これが一番体系的に知ることができる.

shellvimtutor
VIM Adventures

基本的な移動だけを使ったゲーム.

VimGenuus

クイズ形式で,出されたお題に対してコマンドを押して答える.

OpenVIM

キーボードを押しながら,Vimのチュートリアルができる.

9. 参考

かなり多くのコマンドが知れる.たぶんここで紹介されているコマンドをすべて使いこなせていたらかなりの上級者.

↓日本語訳