Corredor

ウェブ、プログラミングの勉強メモ。

これだけ覚えておくと Vim に拒絶反応がなくなると思うキー操作・コマンド一覧

[rakuten:book:13886422:detail]

CUI を使い始めで、Vim の独特な操作方法に慣れない人は、以下のコマンド類だけ覚えておくと少しは苦手意識が減ると思う。

必須で覚えておく使い方

大前提として、Vim にはコマンドでテキストを操作する「コマンドモード」を中心に、そこから入力方法を変えていく「挿入モード」や「ビジュアルモード」といった、複数のモードが存在する。

Esc キーを押すとコマンドモードに戻れるので、何かあったらまずは Esc キーを何度か叩いて、確実にコマンドモードにしてから操作を始めると良い。

その上で、以下の操作だけ覚えておけば、まずはファイルの書き換えができるようになる。

  • Esc
    • 上述のとおり、コマンドモードに戻る。
  • 矢印キー
    • カーソル移動
    • h (左)、j (下)、k (上)、l (右) でも良いが、まずは矢印キーで良い。
    • コマンドモードでも挿入モードでも、矢印キーならカーソル移動できる。
  • (コマンドモードで) a または i
    • 挿入モードにする。この状態が、通常のテキストエディタと同様の使い勝手になる。
    • 矢印キーでカーソル移動し、テキスト入力が終わったら Esc でコマンドモードに戻り、保存したり、破棄したりして終了すればテキスト編集が完了する。
    • ai は挿入モードに入った時のカーソル位置が若干異なるだけで大体同じ。
  • (コマンドモードにしてから) :q! (と入力して Enter)
    • :q で保存せず終了、なのだが、ファイルに変更を加えている時は警告が出る。
    • そこで、ファイルの変更を破棄して終了するには :q! と打つ。
  • :w
    • ファイルの変更を保存する
  • :wq
    • 保存して終了する。コマンドは複数繋げたりできる。

まずはコレだけで、一応ファイルの読み書きができるようになった。

もう少しだけ覚えておくと良いコマンド

詳しくは vimtutor で勉強すると良いが、その中でも以下だけ覚えておくと、Vim のコマンドをもう少し便利に使えると思う。

neos21.hatenablog.com

  • x
    • 1文字削除する
  • dwde
    • 単語を削除 (de は単語の後ろのスペースも消す)
    • d3w とかすると3単語消せる (「オペレータ・数値・モーション」の順にコマンドを構築する)
  • dd
    • 行削除する
    • xdd で消した文字は Vim のメモリ上で保持されており、p で挿入できる。つまり「削除」ではなく (クリップボードに入る)「切り取り」的な動きだ。
  • u
    • 最後の操作のやり直し
  • U
    • その行の変更を取り消せる
  • 0
    • 行頭に戻る
  • ^
    • 行頭の文字があるところに戻る (行頭のインデントは無視する)
  • Ctrl + G
    • ファイルの情報や現在の行数を取得する
  • (数値)G
    • 数値 + スペースなどは開けずに Shift + G で、その数値の行に移動
  • G (Shift + G)
    • ファイル末尾に移動
  • gg
    • ファイル先頭に移動
  • /(文字列) <Enter>
    • 文字列の検索。次の一致に飛ぶには n。戻るには N
  • :s/(変更前の文字)/(変更後の文字)/g
    • 文字列置換。「/g」なしで最初にヒットした1つだけ、「/g」付きでその行の全てを変更する。
    • :%s/old/new/g」でファイル全体置換。
    • :%s/old/new/gc」で確認しながら全体を置換
  • :w (ファイル名)
    • ファイル名を入れると別名保存できる。
  • テキストのコピー
    • v でビジュアルモードにする。ビジュアルモードにした時のカーソル位置が、コピーする文字列の始点となる。
    • そこからカーソル移動すると選択状態になる。これで「y」を押すとそこまでがヤンク (コピー) できる。
    • 貼り付ける時は、貼り付けたい場所までカーソル移動して「p」。複数行のコピペもできる。
  • 外部アプリからの貼り付け
    • Vi (Vim) はクリップボードではなく、ヤンクバッファという領域にコピーしたものを保持している。そのため、普通のコピペではうまく貼り付けできない。
    • 別のエディタなどから貼り付けたいものをクリップボードにコピーしたら、Vi で挿入モード (a) になり、Shift + Insert で貼り付ける。

vi/Vim コマンドポケットリファレンス

vi/Vim コマンドポケットリファレンス