Skip to content
Htkyama Blog

Vim 初心者の自分のためのチートシート

Vim, macOS1 min read

長い間 emacs 派だったため、あまりviのキーバインドになじめなかったのですが、少しずつ覚えてきたら便利になってきたので、備忘としてメモします。

Vim は macOS の Terminal から標準で搭載されている vim コマンドを利用しています。

ノーマルモードからの操作を中心に覚えていきます。

最低限知っているコマンド

これだけ知っていても、軽微なファイルの修正ぐらいはなんとかなります。
(自分はこの程度からのスタートです。)

  • i: インサートモードになる
  • Esc: インサートモードから抜ける
  • :wq: 保存して終了
  • j: 下に移動
  • k: 上に移動
  • h: 左に移動
  • l: 右に移動

しかし、これだけでは全く便利にViが使えません。。。

もう少しカーソルの移動やカットアンドペーストのような編集が楽になるためのキーバインドを覚えたいと思います。

Vim コマンドの覚え方のヒント

そのままコマンドになっているものもあれば、オペレータと呼ばれる動作を指定するキーバインドの覚え方のヒントです。 基本的には対応する英単語で覚えると良さそうです。

  • d: Delete(削除)
  • y: Yank(ヤンク/コピー)
  • c: Change(変更)
  • p: Paste(ペースト)
  • g: Go(移動)
  • u: Undo(操作の取り消し)
  • a: Append(追加)
  • i: Insert(挿入)
  • r: Replace(置き換え)
  • s: Substitute(代入)
  • w: Word(単語単位での移動)
  • e: End(単語の最後に移動)
  • b: Before(手前の単語に移動)

コピーはyを利用して、ペーストはpを使うといったように、ざっくりとキーを覚えておくと便利そうです。

Vim では、同じキーを連続で入力するものや、大文字で入力するコマンドが多いです。

これを覚えておくと、すぐに使えそうです。

キーが連続したコマンド

よく使いそうなキーを連続で入力するコマンドです。

  • dd: カーソルがある行を削除
  • yy: カーソルがある行全体をコピー
  • cc: カーソルがある行を削除してインサートモード
  • gg: 最初の行の行頭に移動

基本的には行全体を扱うものは、キーを連続してと覚えれば良さそうです。

大文字のコマンド

大文字で入力するコマンドは、カーソル位置から行末まで扱うものが多いです。

  • D: カーソルのある位置から行末まで削除
  • C: カーソルのある位置から行末まで削除してインサートモード
  • G: 最終行へ移動

数字を入力してからGを入力すると、その数字の行数へも移動できます。12Gだと12行目の先頭にカーソルが移動します。

Yはデフォルトでは行全体をコピー(ヤンク)する動きとなるので、DCと同様にカーソル位置から行末までコピーする動きにするため、.vimrcに以下の設定を追加すると良さそうです。

" 行末まで Y でヤンクする
nnoremap Y y$
  • Y: カーソルのある位置から行末までコピー 【要カスタマイズ】

インサートモードに入るときのコマンドも大文字を利用するものがあり、覚えておくと便利そうです。

  • O: カーソル行を空けてインサートモード
  • A: 行末移動 + インサートモード
  • I: 行頭移動 + インサートモード
  • S: カーソルのある行を削除してインサートモード(ccと同じ)

他にも、大文字のコマンドがありそうなので覚えていきたいです。

Escキーの jj へのバインド

インサートモードから抜けるときにEscキーを入力しますが、これがviを使い始めのときは使いづらく、viを避ける要因の一つでもありました。

なんとかならないかと調べていたら、やはり同じように思っている人がいるのですね。 素晴らしいカスタマイズの方法がありました。実はベビーユーザほど、Escキーを使っていないようです。

.vimrcに以下の設定を追加します。

" Esc の代わりに jj を利用
inoremap <silent> jj <ESC>
  • jj: インサートモードを抜ける 【要カスタマイズ】

このカスタマイズができたおかげで、viをいじる機会が増えました。

(参考)Vim幼稚園からVim小学校へ - Qiita

ビジュアルモードを使ってみる

ビジュアルモードにすると、選択範囲を決めてから挿入や削除などの操作ができます。

  • v: ビジュアルモードに入り、文字単位で選択
  • V: ビジュアルモードに入り、行単位で選択
  • Ctrl-v: ビジュアルモードに入り、矩形で範囲選択

ビジュアルモードを使うと、複数行をまとめて処理する操作が便利になります。

便利な使い方例

  • カーソル位置から最終行まで一気に削除

    1. vでビジュアルモードに
    2. Gで最終行まで選択
    3. dで選択部分を削除
  • 全体のインデント位置を修正

    1. ggで最初の行の先頭にカーソル移動
    2. Vでビジュアルモードで行単位での選択開始
    3. Gで最終行の行末まで選択
    4. =でインデントを自動修正
© 2021 All rights reserved.
RSS