B-Teck!

お仕事からゲームまで幅広く

【Vim】vimtutorを終わらせたので内容を自分用にメモ

基本操作

  • カーソルの移動はhjkl(左下上右)で行う
  • vimの起動は vim {ファイル名}
  • vimの終了
    • 変更を破棄 :q!
    • 変更を保存 :wq
  • テキストの追加
    • i/I 挿入モード/行末から挿入モード
    • a/A 追加モード/行頭から追加モード
    • o/O 下の行を追加して挿入モード/上の業を追加して挿入モード
  • 操作の取り消し
    • 前回の操作を取り消し u
    • 行全体の操作を取り消し U
    • 取り消し操作の取り消し CTRL-R
  • キーを押すとノーマルモードに戻る
  • 文字の削除 x
  • 削除/ヤンクはそれぞれ対象をレジスタに格納する
  • レジスタに登録されている文字列をカーソルの後に挿入
    行単位で格納されている場合はカーソル行の次の行に挿入
  • カーソルの下の文字を置き換え r
  • 検索
    • / の後に語句をタイプすると前方に語句を検索
    • ? の後に語句をタイプすると後方に語句を検索
    • 検索後のカーソル
      • nは同じ方向の次の検索
      • Nは逆方向の検索
  • 文字列の置換
    • 現在行の最初の old を new に置換する :s/old/new
    • 現在行の全ての old を new に置換する :s/old/new/g
    • 2つの # 間で語句を置換する :#,#s/old/new/g
    • ファイルの中の全ての検索語句を置換する %s/old/new/g
    • 'c' を加えると置換の度に確認を求める :%s/old/new/g
  • (,),[,],{, もしくは } 上にカーソルがある状態で % をタイプすると対になる文字へ移動
  • :!command によってOSの外部コマンドを実行
  • :r ファイル名で、指定したファイルの内容がカーソル位置に挿入される
  • vを押すとVisualモードになり、カーソルを動かすことで、選択範囲を変更することができる
    選択範囲に対してオペレータを入力することで適用できる(dで範囲削除など)
  • コマンドで記載するモーションはノーマルモードで入力したとき対応した場所へカーソルをジャンプさせる
  • ":set xxx" とタイプするとオプション "xxx" が設定される。
    • ic 検索時に大文字小文字の区別しない
    • noic 検索時に大文字小文字の区別する
    • nu ファイルの行数を表示
    • nonu ファイルの行数を非表示

vimのコマンド

  • vimのコマンドは オペレータ [数値] モーション
    • オペレータ 削除を示すdなどのコマンド
    • 数値 その操作を何回繰り返すか(任意)
    • モーション w(単語) $(行末) などの、コマンドを適用する範囲
      例)
      カーソル位置から単語の末尾までを削除 dw
      カーソル位置から行の末尾までを削除 d$
      行全体の削除 dd
  • オペレータ
    • d : 削除
    • y : ヤンク(コピー)
    • c : 変更
  • モーション
    • 0 : 行頭
    • $ : 行末
    • w : カーソル位置から空白を含む単語の末尾
    • e : カーソル位置から空白を含まない単語の末尾
    • G : ファイルの最終行
    • 数値G : カーソル行から数値で指定した行までの範囲指定
    • gg : ファイルの先頭行